Developer docs
StatusDashboard
Free account

Create Checkout Session

Create a new checkout session for merchants to process payments with customizable settings. **Authentication:** - **Payment and subscription sessions:** Use `MerchantBearerAuth` (Checkout Merchant Token) - **Payout sessions:** Use `CoreBearerToken` (Payments capability bearer token: the site credential or merchant auth token you use with the Gateway) This endpoint enables merchants to initiate a checkout session by providing customer and transaction details. The session supports various payment methods, shipping configurations, and notification preferences. **Shipping:** Send `customer.shipping_address_info` or a non-zero `shipping_info.cost` only when at least one item is `physical`; otherwise creation fails with `Shipping info should not be provided for digital items.` or `Shipping cost requires at least one physical item in the cart.` If customer-profile editing is off for your site, include `customer.shipping_address_info` when the cart has a `physical` item, or creation fails with `422` (`Shipping info is required when there are physical items`). Unless every item is `digital`, Checkout checks the session's shipping address against your site's required customer fields when the shopper pays, and a missing field fails `POST /payment/{session_id}` with `422` (`Validation errors occurred`), for example `Shipping Address - Address is required`. **Payout recipients:** Send the recipient's `customer.email` and a complete `customer.billing_info`: `first_name`, `last_name`, `phone` in E.164 format, `address`, `city`, `state`, `zip_code`, and `country`. A value still missing when the recipient claims fails the claim.

Signing up takes about a minute and comes with a sandbox site and test API keys.