Checkout
The Checkout API covers the steps between cart-building and payment: setting the shipping address, reviewing and recording buyer consents, and — for a subset of merchants — staging billing info on the cart.
Typical Flow
Set Shipping Info
Send one shipping address for the cart via Set Shipping Info. The same address is used by every shipment; the response carries per-shipment cost and tax breakdowns.
Handle Consents (when applicable)
Call Get Consents to retrieve any consents the merchant has configured for this cart. The endpoint returns an empty array for merchants without consents — skip the next step in that case.
When the array is non-empty, present each item to the buyer (using text / html and the ui_slot placement hint) and submit the buyer’s selections via Set Consents. Required consents (required: true) must be signed before payment — see Set Consents for the enforcement rule.
Place / Complete Order
Pass billing_info directly in the body of Place Order or Complete Order. This is the standard path for nearly all merchants.
Available Endpoints
Shipping Address
One shipping address applies to the whole cart. The address is validated for supported country and state/province, then used to recalculate shipping methods and tax. See Set Shipping Info for the full field list and response example.
The shipping address may also be used for billing when billing_info is omitted from the place-order request. Whether the merchant accepts the shipping address as the billing address depends on the merchant: many do, but for merchants that require a distinct billing address, omitting billing_info causes place-order to reject the request (an OperationNotSupported-class or validation error). If you are unsure, pass billing_info explicitly.
Consents
Consent objects are returned as a top-level array from Get Consents. Each carries a stable id, a type (MARKETING / TERMS_AND_CONDITIONS / PRIVACY_POLICY / OTHER), placement hint (ui_slot), and three booleans that drive integration logic:
| Field | Meaning |
|---|---|
explicit |
When true, the buyer must take an action (e.g. tick a box). When false, granted implicitly. |
required |
When true, must be signed before the order can be placed. A required consent that is also explicit: true must be actively accepted by the buyer via Set Consents; a required consent that is explicit: false is auto-signed (see Get Consents). |
revokable |
When true, the buyer can revoke after signing. |
The accepted/revoked state is recorded by calling Set Consents with { consents: [{ id, revoke? }, ...] }. Required-explicit consents are enforced at place-order: an unsigned required-explicit consent rejects the order.
Payment
Card data and final order placement are handled by the Payment endpoints. The Checkout endpoints never receive card numbers; card data is encrypted client-side and sent only to the Payment endpoints.