Non-custodial by design
Minisend never holds your funds. USDC moves directly from your wallet into settlement, and Minisend delivers the local currency payout. The deposit flow depends on the payout currency:| Payout currency | Deposit flow |
|---|---|
| KES, GHS, UGX | Send USDC to the settlement address, then submit your transaction hash |
| NGN | Send USDC to a single-use deposit address. Detected automatically |
refund_address. If a payout cannot be delivered, funds return there. Minisend never keeps them.
How it works
Create an order
POST /api/offramp/orders validates the recipient’s account, then returns a deposit_address and the exact amount to send.Send USDC on Base
Transfer
total_deposit_usdc from your wallet to deposit_address before expires_at.Submit the hash (KES, GHS, UGX only)
POST /api/offramp/orders/{order_id}/deposit with your transaction hash. NGN deposits are detected automatically.Order lifecycle
| Status | Meaning |
|---|---|
pending | Waiting for your USDC deposit |
settling | Deposit accepted, payout in flight |
completed | Recipient paid. settlement_receipt holds the payout reference |
failed | Payout failed. NGN deposits are refunded to refund_address automatically |
expired | No deposit before expires_at. Nothing was sent, nothing is owed |
completed, failed, and expired are final. Track orders by polling or with webhooks.
Fees and rates
| Currency | Fee | Rate |
|---|---|---|
| KES, GHS, UGX | 1% of the local amount | Executed live when your deposit is processed; quotes are indicative |
| NGN | 0%, included in the rate | Locked when the order is created |
amount_local − fee. Every quote includes recipient_amount, so you can show the exact payout before creating an order.
Limits
Orders accept 0.5 – 50,000 USDC, and the local equivalent must fall inside the per-transaction range for the currency:| Currency | Per-transaction range |
|---|---|
| KES | 20 – 250,000 |
| GHS | 5 – 5,000 |
| UGX | 500 – 5,000,000 |
400, before any funds move.
Getting access
Off-ramp access is enabled per account. Contact Minisend to activate it. Once enabled, your existingms_live_ API key carries the offramp scope and every endpoint in this section works. Calls without the scope return 403.
Make your first payout
Quote, create, deposit, and confirm an order end to end.

