Non-custodial by design
Minisend never holds the USDC. The customer pays with a mobile money prompt on their phone, and the equivalent USDC is released directly to the Base address you specify when creating the order. If a payout cannot be delivered, nothing was collected in the first place, so there is nothing to refund.How it works
1
Quote
POST /api/onramp/quote returns the rate and the fee for a given amount, in either direction.2
Create an order
POST /api/onramp/orders creates the order and sends a payment prompt to the customer’s phone in the same call.3
Customer pays
The customer confirms the prompt on their phone. No further action from you.
4
USDC arrives
Once payment is confirmed, USDC lands at the address you provided. An
onramp.completed webhook fires immediately, and onramp.released follows once the on-chain transfer is confirmed.Order lifecycle
completed, failed, and expired are final. Each order is one-shot: a failed or expired order is never retried automatically. Create a new order if the customer wants to try again.
Fees and rates
The fee is 1%, always collected on top of the amount you receive. You can quote either direction:
Every quote returns both figures so you can show the customer the exact prompt amount before creating the order.
Limits
Orders accept KES 20 to KES 250,000 per transaction, checked at quote time. Only KES (M-Pesa) is supported in this version.Getting access
Onramp access is enabled per account. Contact Minisend to activate it. Once enabled, your existingms_live_ API key carries the onramp scope and every endpoint in this section works. Calls without the scope return 403.
Make your first collection
Quote, create an order, and confirm a collection end to end.

