Flow
1
Backend creates the session
POST to /api/merchant/checkout with the USDC amount. Receive checkout_url + session_id.2
Redirect the customer
Send them to
checkout_url. The page shows your business name, the amount, and a deposit address.3
Customer sends USDC or USDT
Any of 19 USDC chains or 14 USDT chains. Same address.
4
Minisend normalises and settles
USDC on non-Base → CCTP bridge. USDT → swap to USDC on Base (30–50s). Then conversion to local currency, then payout.
5
You receive the result
Webhook on
completed, failed, or expired. Or poll the status endpoint at any time.Customers paying in KES can also choose M-Pesa on the checkout page. The payment prompt includes the 1% fee, and the equivalent USDC is credited to your wallet when the payment completes.
Create a session
POST https://merchant.minisend.xyz/api/merchant/checkout Auth: Authorization: Bearer ms_live_...
Request fields
Response (201)
Using external_id
Pass your order ID asexternal_id when you create the session. Minisend echoes it back in every webhook so you can reconcile without maintaining a session-to-order mapping.
Check session status
GET https://merchant.minisend.xyz/api/merchant/checkout/{session_id} — no auth.

