Endpoint
onramp scope. Orders you don’t own return 404.
Example
Response (200), KES
Response (200), NGN pending
string
required
pending, deposit_received, completed, failed, cancelled, or expired. See order statuses. deposit_received only happens on NGN orders. cancelled only happens on KES orders, when your customer dismissed the M-Pesa prompt. A KES order still pending after expires_at shows as expired when you fetch it. An NGN order becomes expired shortly after its bank account deadline passes with nothing sent.string
required
mpesa or bank_transfer.object
NGN only. The payer’s own bank account, as we checked it when the order was created.
object
NGN only. Only here while the order is
pending and the account still works. It’s removed once the order becomes deposit_received, completed, failed, or expired. Don’t keep showing it after expires_at.string
KES only. The M-Pesa confirmation code, once the order is
completed.string
The ID of the Base transaction that sent you the USDC. It appears when the order completes, or shortly after.
string
Set on
failed and cancelled orders. For KES, it’s the reason in words after a stk_failed: label, for example stk_failed: The payer cancelled the M-Pesa prompt. For NGN, it’s one of refunded_to_payer, deposit_not_settled, cancelled, provision_failed, persist_failed, or price_moved. See webhooks for what each one means.string
Date and time the order completed, ISO 8601.

