Skip to main content
Checkout sessions represent an individual purchase attempt. They are created server-side (typically from a payment link) and consumed by the hosted checkout page. Sessions track PENDING → PAID / EXPIRED / CANCELLED / FAILED and, when paid, produce the on-chain payment receipt.

Session object

Create a checkout session

POST /api/v1/checkout-sessions creates a session. Provide either an existing paymentLinkId (the session inherits amount, token, chain, and recipients from the link) or a raw session definition. Auth: legacy api_… key or dashboard session.

Auth matrix note

The payment link to create a session for.
string
Company to associate with the purchase.
string
Customer email (receipts).
string
Customer wallet address.
string
Customer name/identifier.
string
Redirect URL after successful payment.
string
Redirect URL after cancelled payment.
string (ISO 8601)
Session expiry.
purpose, amount, acceptedToken, and recipientWallet are all required.

Response

201 with { "checkoutSession": { ...session } }.

Get a checkout session

GET /api/v1/checkout-sessions/:id returns one session scoped to your team. Auth: legacy api_… key or dashboard session.

List checkout sessions

GET /api/v1/checkout-sessions returns the most recent 100 sessions for your team, ordered newest first, including related payment link, company, add-on, invoice, and payment info. Auth: legacy api_… key or dashboard session.

Hosted checkout & public confirm

The hosted /pay/:slug page and the public confirmation endpoints are unauthenticated by design — the customer (or agent) opens them with the session attached. See Payment Links & Spec API for the public confirm contract and receipt shape.

Checkout session webhooks

Last modified on September 19, 2026