> This page is for version v2 (default).
> For other versions, use one of these documentation indexes:
> - v2 (default): https://developers.clearpay.co.uk/v-2/llms.txt
> - v1: https://developers.clearpay.co.uk/v-1/llms.txt

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://developers.clearpay.co.uk/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://developers.clearpay.co.uk/_mcp/server.

# Express Checkout Payload (Create Checkout)

> **Supported Countries**
>
> Express Checkout is currently available in the following countries:
>
> 🇬🇧 UK\
> 🇺🇸 United States\
> 🇦🇺 Australia\
> 🇳🇿 New Zealand\
> 🇨🇦 Canada

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. 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 Clearpay (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
curl --request POST \
  --url https://global-api.afterpay.com/v2/checkouts/ \
  --header 'accept: application/json' \
  --header 'content-type: application/json' \
  --data '{"amount":{"amount":"100.00", “currency”: “GBP”}, “mode”: “express”, "merchant": {"popupOriginUrl": "https://example.com/cart"}}'
```

> **Warning**
>
> The `amount` provided in this call should be the order amount **before shipping and taxes**

> **Warning**
>
> The `shippingOptions` to be applied if a merchant wishes to support shipping to addresses outside of the Afterpay/Clearpay region the customer belongs to.

| Attribute                    | Type   | Description                                                                                  |
| :--------------------------- | :----- | :------------------------------------------------------------------------------------------- |
| `shippingCountry`            | string | Default shipping country in ISO 3166-1 country code.  Limited to 2 characters                |
| `supportedShippingCountries` | string | An array of supported shipping address countries (in ISO 3166-1 alpha-2 country code format) |