Skip to main content
Creates a checkout session, assigns your deposit address, returns a hosted checkout URL. Expires in 30 minutes.
Backend only. Never call from frontend.

Endpoint

See Authentication. Capped at 30 session creations per minute per account; see rate limits.

Body

number
required
USDC amount (>0, two decimals). Customer pays as USDC or USDT-equivalent.
string
Shown to the customer on the checkout page.
string
Your reference (e.g., order ID). Echoed back in webhooks.
string
Stored on the session for receipts.
string
fiat or usdc. Defaults to your account setting. usdc skips conversion and keeps the deposit in your wallet instead of paying it out.
string
Only matters when settlement_mode is usdc. One of BASE, ARB, AVAX, OP, ETH, MATIC. Defaults to your account setting. An unrecognized value returns a 400.

Examples

Response (201)

string
required
Unique identifier. Always starts with cs_.
string
required
Hosted checkout page. Redirect the customer here.
string
required
Accepts USDC on 19 chains and USDT on 14 chains. See supported networks.
number
required
USDC-equivalent amount.
string
required
ISO 8601, 30 minutes after creation. After that, status becomes expired.
string
required
Always "pending" on creation. Track via the status endpoint or webhooks.
string
required
fiat or usdc, whichever this session ended up with.
string
Present when settlement_mode is usdc. The chain this payment will land on.