v2.checkout_sessions

Confirm a v2 Checkout Session

Confirms the session. In sandbox the outcome follows the test card (see the response codes). When the session was created by a platform key on behalf of an account (Cooud-Account) — through this operation with the key, or through Cooud Elements with cooud_session_secret — a successful sandbox confirmation also enqueues a simulated cooud.order.paid (livemode: false, data.id ord_sim_<ULID>, data.checkout_session_id = this session) to the platform's sandbox webhook endpoints that subscribe to it, once per session; the webhook never changes the confirmation response.

post/checkout-sessions/{id}/confirm

Request

  • Base URL: https://api.cooud.com/v2
  • URL: https://api.cooud.com/v2/checkout-sessions/{id}/confirm
  • Auth: HTTP bearer

Path parameters

idstring required

Cooud checkout session id.

Headers

Cooud-Compat-Datestring date required

Required per-request compat-date. Format: ISO calendar date YYYY-MM-DD. Merchants pinned to an older date have their request and response transformed by every gate whose appliesAfter is strictly greater than this date.

Cooud-Accountstring

Cooud Connect: connected account a PLATFORM key acts on behalf of, in the form cooud_acct_<26-char ULID> (the seller's store; list them with GET /accounts). Required on every store-scoped operation when the bearer is a platform key (cooud_account_required otherwise); rejected with cooud_account_not_allowed when the bearer is a store key or on platform operations such as GET /accounts. An account whose owner is not an active managed seller of the platform yields 403 account_not_connected and nothing is created. For an explicitly enabled central-receiving platform, cooud_subacct_<26-char ULID> selects an internal subaccount from GET /subaccounts. These IDs are not accepted by /accounts KYC routes. Existing cooud_acct IDs never alias central subaccount stores.

Request body

OR

Response

Sandbox payment succeeded.

amountinteger required
cancel_urlstring required
cooud_session_secretstring

Opaque Cooud session secret returned for v2 custom/own-site checkout. Send it from your backend to POST /v2/checkout-sessions/{id}/confirm; never expose a Cooud secret key in browser code.

createdinteger required
currencystring required
customer_emailstring nullable
idstring required
livemodeboolean required
metadataobject required
mode'payment' | 'subscription' required
object'checkout_session' required
request_idstring required
status'open' | 'complete' | 'expired' required

expired exists from compat-date 2027-02-01, only on a Cooud LLC hosted session that reached expires_at unpaid (before 2027-02-01 the same session says open).

success_urlstring required
urlstring uri required

Hosted checkout URL for redirect-capable sessions. Sandbox hosted redirects are served from checkout-sandbox.cooud.com. Custom own-site checkout must not redirect to this URL. For an account that sells through Cooud LLC (stripe_platform: us), the Cooud LLC product page https://checkout.cooud.com/<price ULID>?cooud_cs=<id>: the buyer pays there in the local currency (Adaptive Pricing) and comes back through Cooud to the success_url (paid or processing) or the cancel_url recorded on create. A Cooud LLC session with ui_mode: custom is paid in Cooud Elements on your page: that product page does not open it.

accountstring

Cooud Connect: present when a platform key created the session on behalf of a connected account (Cooud-Account); the account (seller store) that sells.

application_fee_amountinteger nullable

Cooud Connect: the platform fee requested on create, in minor units of the base currency. Present only on platform sessions; null when the platform did not request a fee.

subscriptionstring nullable

Stable public subscription id after successful confirmation; null before creation or when the financial record is still awaiting reconciliation. Sandbox ids are simulated and cannot be read via /subscriptions.

receiving_mode'platform_central'

Present for a centrally received company sale.

merchant_namestring

Company selling to the buyer. Display it in the checkout.

payouts_managed_by'platform'

The company handles payouts to internal users outside Cooud.

stripe_platform'us'

Cooud LLC hosted session only (C-API-3): the session sells through Cooud LLC. Absent on every other session.

payment_status'unpaid' | 'processing' | 'paid'

Cooud LLC hosted session only: paid once the order is paid, processing while an asynchronous method (OXXO, Multibanco, ACH, Pix and similar) waits for the money, unpaid otherwise. With processing, status is complete and payment.state is processing from compat-date 2027-02-01 (requires_action before it).

orderstring nullable

Cooud LLC hosted session only: the paid order of the session (the same order GET /orders?checkout_session=<id> returns); null before payment.

expires_atinteger

Cooud LLC hosted session only: Unix seconds after which an unpaid session no longer opens (24 h after creation).

Changes

No recorded changes to this operation across all 1 revision of this API.