Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.minisend.xyz/llms.txt

Use this file to discover all available pages before exploring further.

Five steps from sign-up to a working checkout.
1

Sign up

Create an account at merchant.minisend.xyz with email or Google.
2

Configure payout

In Settings, set your business name, payout currency (KES, NGN, GHS, or UGX), and payout method (M-Pesa, mobile money, or bank).
3

Generate an API key

Open API KeysNew Key. Copy the ms_live_... value immediately — it’s shown only once.
Never expose your API key in frontend code or public repos. Call the checkout endpoint from your backend only.
4

Create a checkout session

amount is in USDC. The customer can pay it as USDC or USDT-equivalent.
curl -X POST https://merchant.minisend.xyz/api/merchant/checkout \
  -H "Authorization: Bearer ms_live_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 25.00,
    "description": "Order #4821",
    "external_id": "order-4821"
  }'
Response (201):
{
  "session_id": "cs_7f8a9b2c-...",
  "checkout_url": "https://merchant.minisend.xyz/checkout/cs_7f8a9b2c-...",
  "deposit_address": "0x1234...5678",
  "amount_usdc": 25.00,
  "expires_at": "2026-04-13T14:30:00Z",
  "status": "pending"
}
Sessions expire after 30 minutes with no deposit.
5

Redirect and listen

Send the customer to checkout_url. When settlement completes, Minisend POSTs to your configured webhook URL:
{
  "event": "checkout.completed",
  "session_id": "cs_7f8a9b2c-...",
  "amount_usdc": 25.00,
  "amount_local": 3225.00,
  "currency": "KES",
  "exchange_rate": 129.00,
  "receipt": "SHQ1234ABC",
  "status": "completed",
  "external_id": "order-4821",
  "completed_at": "2026-04-13T14:08:22Z",
  "created_at": "2026-04-13T14:00:00Z"
}
Or poll GET /api/merchant/checkout/{session_id} — no auth required.