Skip to main content
Public — no API key needed. Safe to call from a frontend. On every call, this endpoint also expires stale pending sessions past their deadline and cross-checks settling sessions that have been in flight >2 minutes against the settlement provider.

Endpoint

No auth.

Path

string
required
Returned from POST /api/merchant/checkout. Starts with cs_.

Examples

Response

string
required
Current status. See lifecycle.
number
required
USDC-equivalent. Customer may pay in USDC or USDT.
string
required
Accepts USDC (19 chains) and USDT (14 chains).
number
Net local currency after the platform fee. Present when status is "completed".
number
The USDC-to-local exchange rate at settlement. Present when status is "completed".
string
Payout provider receipt (e.g., M-Pesa code). Present when status is "completed".
string
ISO 8601. Present when status is "completed".
string
Present on USDC sessions. Which chain this payment settles to.
object
Present on USDC sessions off Base. Tracks the bridge that moves USDC from Base to your chosen chain.
object
required
Display info.

Status lifecycle

Polling

Prefer webhooks over polling. Configure webhook_url in Settings to receive checkout.completed, checkout.failed, and checkout.expired events.
completed means the payment landed, not that bridging finished. On a USDC session off Base, check forward.status separately, or listen for checkout.forwarded.