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

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

Examples

Response

status
string
required
Current status. See lifecycle.
amount_usdc
number
required
USDC-equivalent. Customer may pay in USDC or USDT.
deposit_address
string
required
Accepts USDC (19 chains) and USDT (14 chains).
amount_local
number
Net local currency after the 1% fee. Present when status is "completed".
exchange_rate
number
USDC → local rate at settlement. Present when status is "completed".
settlement_receipt
string
Payout provider receipt (e.g., M-Pesa code). Present when status is "completed".
completed_at
string
ISO 8601. Present when status is "completed".
merchant
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.