Flow overview
Session fields
| Field | Description |
|---|---|
amount | Amount to collect from the payer |
currency | Fiat currency of the collection (e.g. KES, NGN) |
redirect_url | Where to send the payer after payment completes or fails |
reference | Your internal reference for the payment |
expires_at | When the session expires if unused |
Session statuses
| Status | Meaning |
|---|---|
PENDING | Created, awaiting payer action |
SUBMITTED | Payer has submitted payment details |
COMPLETED | Payment confirmed and funds credited |
FAILED | Payment failed or was cancelled |
EXPIRED | Session expired before payer completed payment |
Security
Theby-token endpoints used by the hosted page are public and require no API key — they are scoped to the session token embedded in the session_url. Your API key is never exposed to the payer’s browser.
Webhooks
Subscribe tocheckout.session.completed and checkout.session.failed to receive real-time status updates without polling.