X-Minisend-Signature header as checkout events. You check the signature the same way, and if a message doesn’t get through, we try again up to 8 times over about 33 hours.
offramp.completed
string
required
Always
offramp.completed.string
required
The order this event is about. Use it together with
event to spot repeats, since we may send a message again if your server was slow to reply.string
Your
reference, if you set one when creating the order.number
required
The order’s USDC amount.
number
required
The local amount before the fee, at the rate we actually paid out at. The recipient got
amount_local − fee.string
required
KES, NGN, GHS, or UGX.number
required
How much local currency 1 USDC was worth when we paid out.
number
Minisend fee in local units.
0 for NGN.string
required
string
required
The payout receipt. For send-and-confirm orders to M-Pesa, it’s the M-Pesa code. For automatic orders (all NGN, and some KES), it’s a blockchain transaction ID.
string
required
ISO 8601.
string
required
ISO 8601.
offramp.failed
We couldn’t pay the recipient after you sent your USDC.On automatic orders, your USDC goes back to the order’s
refund_address by itself. For send-and-confirm orders, send the order_id to support. Your money is not lost.offramp.expired
No USDC arrived beforeexpires_at. Nothing was sent and nothing is owed. Create a new order to try again.
Handling pattern
Same as checkout webhooks: reply200 straight away, do your processing afterwards, and check for repeats using the order and the event together.

