Skip to main content
No API key needed, so it’s safe to call from a browser or app. Each time you call it, we also bring the session up to date. A pending session past its deadline is marked expired, and a session that has been settling for more than 2 minutes is checked with our payout partner.

Endpoint

Path

string
required
The ID you got back from POST /api/merchant/checkout. Starts with cs_.

Examples

Response

string
required
Where the session is now. See status values.
number
required
The amount in USDC. Your customer can pay it in USDC or USDT.
string
required
Takes USDC or USDT on any of six networks.
number
What you received in local currency, after the platform fee. Only once status is "completed".
number
How much local currency 1 USDC was worth at payout. Only once status is "completed".
string
The payout receipt, such as an M-Pesa code. Only once status is "completed".
string
Date and time it completed, ISO 8601. Only once status is "completed".
string
Only on USDC sessions. The network this payment ends up on.
string | null
The full return URL, with session_id and status already added, or null if you didn’t set one. The status inside it always matches the status field above. See sending the customer back.
object
Only on USDC sessions going to a network other than Base. Tracks the move of your USDC from Base to the network you chose.
object
required
Your business details, for showing on a page.

Status values

Checking repeatedly

Webhooks are usually easier than checking over and over. Add your URL under Dashboard → Webhooks to get checkout.completed, checkout.failed, and checkout.expired sent to you.
completed means the payment arrived, not that your USDC has finished moving to another network. On a USDC session going somewhere other than Base, check forward.status too, or wait for checkout.forwarded.