跳到主要内容

New: the Landed Cost API quotes duties and taxes at checkout in 40 markets. About the Landed Cost API

International OrdersInternational Orders

Payments

Orders

Create, update and cancel orders. An order holds the items, destination, currency and status of one cross-border purchase.

An order is the centre of every integration. It holds what the shopper is buying, where it's going, the currency they pay in, and the currency you settle in. Payments, refunds and landed-cost quotes all attach to an order.

This is preview documentation for a prototype. Endpoints, fields and keys are illustrative.

Create an order

curl https://api.international-orders.com/v1/orders \
  -u sk_test_51Hx...: \
  -H "Idempotency-Key: 6f1c2b9e-checkout-1042" \
  -H "Content-Type: application/json" \
  -d '{
    "currency": "EUR",
    "amount": 12900,
    "settlement_currency": "USD",
    "capture_method": "automatic",
    "shipping": { "country": "DE", "postal_code": "10115" },
    "items": [
      { "name": "Wool scarf", "hs_code": "6117.10", "quantity": 1, "unit_amount": 12900 }
    ],
    "metadata": { "cart_id": "1042" }
  }'

The response is the new order:

{
  "id": "ord_7Hc2kQ9xL4mP",
  "object": "order",
  "status": "requires_payment",
  "currency": "EUR",
  "amount": 12900,
  "settlement_currency": "USD",
  "client_secret": "ord_7Hc2kQ9xL4mP_secret_x8Yb...",
  "shipping": { "country": "DE", "postal_code": "10115" },
  "created": "2026-10-01T09:14:22Z"
}

Pass client_secret to Checkout Components in the browser. It lets the browser confirm this order and nothing else.

Key fields

FieldRequiredDescription
currencyYesThe currency the shopper pays in
amountYesTotal in minor units, including shipping
shipping.countryYesDestination country, used for methods, duties and tax
itemsRecommendedLine items. HS codes improve landed-cost accuracy
settlement_currencyNoThe currency you're paid out in. Defaults to your account currency
capture_methodNoautomatic (default) or manual. See capture
metadataNoUp to 20 key-value pairs of your own data

Order status

An order moves through a small set of states. Listen for the matching webhooks rather than polling.

StatusMeaning
requires_paymentCreated, waiting for the shopper to pay
requires_actionThe shopper must complete a step, such as 3-D Secure
authorizedFunds are held but not captured (manual capture only)
paidPayment captured. Safe to fulfil
cancelledCancelled before payment was captured
refundedFully refunded

Update an order

While an order is in requires_payment, you can change its amount, items or shipping address. This is useful when the shopper changes their basket or the delivery country.

curl https://api.international-orders.com/v1/orders/ord_7Hc2kQ9xL4mP \
  -u sk_test_51Hx...: \
  -H "Content-Type: application/json" \
  -d '{ "amount": 15400, "shipping": { "country": "AT" } }'

Changing the country can change which payment methods are offered. Checkout Components refresh automatically.

Cancel an order

Cancel an order you no longer intend to collect. If a payment was authorised but not captured, the hold is released.

curl -X POST https://api.international-orders.com/v1/orders/ord_7Hc2kQ9xL4mP/cancel \
  -u sk_test_51Hx...:

You can't cancel a paid order. Issue a refund instead.

Next steps