Using PayTomorrow

At checkout

PayTomorrow is presented as a payment option at checkout, but only when all of the following conditions are met:

  • Currency is USD
  • Customer first name is present
  • Customer last name is present
  • Customer email is present
  • A shipping address is present
  • Basket line items are present

It will not be presented if a saved card is required — for example a recurring payment, a scheduled payment, or any flow where save_card = true. If you are unsure whether this applies, check with your platform.

The option appears at checkout as shown below (subject to any CSS customisation):

PayTomorrow option at checkout

Payment (immediate capture)

When a customer selects PayTomorrow, they complete the financing application on PayTomorrow's hosted flow.

📘

Tip

When testing in sandbox, follow PayTomorrow's test data guide. Always use a unique name, email, phone, and alt_key, append 999 to the last name if you want an approval, and use a real person's shipping address.

PayTomorrow application step PayTomorrow application step PayTomorrow application step PayTomorrow application step PayTomorrow application step PayTomorrow application step PayTomorrow application step PayTomorrow application step PayTomorrow application step

Once approved in PayTomorrow, the payment shows in Shuttle as a Pending payment:

Pending payment in Shuttle

This is sent back to the originating system as a PAYMENT.PENDING webhook.

Settling a payment

The order shows in the PayTomorrow backend as Ready to Settle. Click the eye icon in the Options column to view it:

Ready to Settle in PayTomorrow

To complete the payment, with the order in Ready to Settle, select Settle, then Settle Order XXXX. The order changes status to Funded:

Funded order in PayTomorrow

Shuttle automatically reflects the change and transitions the order to Approved, typically within a few seconds:

Approved payment in Shuttle

This is sent back to the originating system as a PAYMENT.SUCCESS webhook.

Authorisation and capture

For an auth/capture flow, the customer experience on PayTomorrow is the same:

PayTomorrow authorisation step PayTomorrow authorisation step PayTomorrow authorisation step PayTomorrow authorisation step PayTomorrow authorisation step PayTomorrow authorisation step PayTomorrow authorisation step

Once approved in PayTomorrow, this shows as a successful authorisation (rather than a pending payment):

Authorisation successful in PayTomorrow

In the Shuttle backend it shows as an Approved authorisation:

Approved authorisation in Shuttle

This is sent back to the originating system as a PAYMENT.SUCCESS webhook. In the PayTomorrow backend the order shows as Ready to Settle:

Ready to Settle in PayTomorrow

You can capture the authorisation in one of two ways:

  • Capture via the Shuttle merchant view or the Shuttle API (initiating a capture from the source system)
  • Capture via the PayTomorrow backend

Capture via Shuttle

In the Shuttle merchant view, or using the capture API, select the Capture link at the top of the authorisation:

Capture link in Shuttle Capture confirmation in Shuttle

The originating system receives a CAPTURE.SUCCESS webhook, and the transaction is automatically settled in PayTomorrow:

Settled transaction in PayTomorrow

Capture via PayTomorrow

In the PayTomorrow backend, find the order and select the Settle option:

Settle option in PayTomorrow Settle order in PayTomorrow Settle order confirmation in PayTomorrow

After a few seconds Shuttle is notified and automatically generates a capture transaction, which is sent to the source system as a CAPTURE.SUCCESS:

Capture transaction in Shuttle Capture transaction in Shuttle Capture transaction in Shuttle Capture transaction in Shuttle Capture transaction in Shuttle

If you view the timeline of the capture, you can see it was initiated by the gateway (PayTomorrow) — programmatically this is the field offline: true.