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
With a payment link
string
required
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.
As a raw session (no payment link)
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
Related
- Payment Links & Spec API — public session and confirm endpoints
- Checkout concept — the four payment paths
- Checkout session methods —
createCheckoutSession,createHostedCheckout,chargeCustomer

