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.
