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:
Every order includes a
refund_address. If a payout cannot be delivered, funds return there. Minisend never keeps them.
How it works
1
Quote
POST /api/offramp/quote returns the rate, the fee, and what the recipient will receive.2
Create an order
POST /api/offramp/orders validates the recipient’s account, then returns a deposit_address and the exact amount to send.3
Send USDC on Base
Transfer
total_deposit_usdc from your wallet to deposit_address before expires_at.4
Submit the hash (KES, GHS, UGX only)
POST /api/offramp/orders/{order_id}/deposit with your transaction hash. NGN deposits are detected automatically.5
Payout delivered
The order completes and an
offramp.completed webhook delivers the payout receipt.Order lifecycle
completed, failed, and expired are final. Track orders by polling or with webhooks.
Fees and rates
The recipient receives
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:
Amounts outside these ranges are rejected at quote time with a
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.

