Skip to main content
Off-ramp events are delivered to the same webhook URL you configure in Settings, signed with the same secret and X-Minisend-Signature header as checkout events. Signature verification is identical, and failed deliveries retry up to 5 times with exponential backoff.

offramp.completed

string
required
Always offramp.completed.
string
required
Use as an idempotency key. Minisend may redeliver if your server timed out.
string
Your reference, if set at creation.
number
required
The order’s USDC amount.
number
required
Gross local amount at the executed rate. The recipient received amount_local − fee.
string
required
KES, NGN, GHS, or UGX.
number
required
Local currency per 1 USDC, as executed.
number
Minisend fee in local units. 0 for NGN.
string
required
string
required
Payout receipt: an M-Pesa code for KES mobile payouts, an on-chain settlement hash for NGN.
string
required
ISO 8601.
string
required
ISO 8601.

offramp.failed

The payout could not complete after your deposit.
NGN deposits are refunded automatically to the order’s refund_address. For KES, GHS, and UGX failures, contact support with the order_id. Funds are not lost.

offramp.expired

No deposit arrived before expires_at. Nothing was sent and nothing is owed. Create a new order to retry.
If you sent USDC but the order still expired (e.g. the transfer confirmed after the window, or you never submitted the hash), contact support with the order_id and transaction hash.

Handling pattern

Same as checkout webhooks: respond 200 immediately, process async, and dedupe on order_id.