When creating an Express Checkout order, there are two key differences – you must specify the mode as express and set a single popupOriginUrl instead of redirectConfirmUrl and redirectCancelUrl. Unlike standard checkout, only amount, merchant, and mode are required for the Create Checkout API call:

The Data Payload Properties:

Attribute

Type

Description

amount

Money (required)

Total amount to be charged to the consumer, excluding shipping and taxes. This can be dynamically updated during the checkout by setting mode to express

mode

String (default standard)

Set to express for an express-flow checkout. This allows the amount to adjust
based on events during the checkout, such as shipping costs and sales tax based on a selected address

merchant

Merchant
(required)

You must provide a new URL, popupOriginUrl, to receive Javascript callbacks from Afterpay (e.g. onComplete, onShippingAddressChange, etc). Include the scheme, hostname and port. Port is optional.

items, discounts, shipping, merchantReference

(optional)

Optional fields as per the API reference docs.

curl --request POST \
  --url https://api.us.afterpay.com/v2/checkouts \
  --header 'accept: application/json' \
  --header 'content-type: application/json' \
  --data '{"amount":{"amount":"100.00", “currency”: “USD”}, “mode”: “express”, "merchant": {"popupOriginUrl": "https://example.com/cart"}}'

🚧

The amount provided in this call should be the order amount before shipping and taxes.