TchokoPay

Quickstart

A working call in five minutes.

1. Get a key

From your merchant dashboard → Developers → New API key. Tick Collect, and copy the key — it is shown once.

See API keys for choosing permissions properly.

2. Check what you can use

curl https://connect.tchokopay.com/v1/account/providers \
  -H "Authorization: Bearer tchoko_live_..."
[
  { "provider": "mtn_cm", "name": "MTN MoMo", "method": "MOBILE_MONEY", "country": "CM" },
  { "provider": "orange_cm", "name": "Orange Money", "method": "MOBILE_MONEY", "country": "CM" }
]

The provider values are what you send when collecting or disbursing. Build your network picker from this rather than hardcoding it.

3. Take a payment

Two ways. Try whichever fits your product.

Your customer stays in your app and approves a prompt on their phone.

curl -X POST https://connect.tchokopay.com/v1/collect/charge \
  -H "Authorization: Bearer tchoko_live_..." \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: order-4821" \
  -d '{
    "amount": 5000,
    "currency": "XAF",
    "country": "CM",
    "provider": "mtn_cm",
    "phone": "670000000",
    "merchantReference": "order_4821"
  }'
{
  "reference": "REQ-1788042194995-AB9B94",
  "status": "PENDING",
  "amount": 5000,
  "currency": "XAF",
  "provider": "mtn_cm",
  "merchantReference": "order_4821",
  "createdAt": "2026-08-29T22:23:15.010Z"
}

The prompt is on its way. Nobody has paid yet — watch for the result in step 4.

Full reference →

4. Find out what happened

Either works. Webhooks are better — you find out the moment it resolves instead of asking.

Register your endpoint once:

curl -X PUT https://connect.tchokopay.com/v1/webhook \
  -H "Authorization: Bearer tchoko_live_..." \
  -H "Content-Type: application/json" \
  -d '{ "url": "https://yourapp.com/webhooks/tchokopay" }'

You get a signing secret back — shown once. Verify every delivery with it.

Setting up webhooks →

5. Send money out

When you are ready to pay somebody from your balance. This needs a key with the Disburse permission — a separate one from the key above.

curl -X POST https://connect.tchokopay.com/v1/disburse \
  -H "Authorization: Bearer tchoko_live_..." \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: payout-8821" \
  -d '{
    "amount": 5000,
    "currency": "XAF",
    "country": "CM",
    "provider": "mtn_cm",
    "phone": "670000000",
    "recipientName": "Amina Njoya",
    "merchantReference": "supplier-invoice-8821"
  }'

Always send an Idempotency-Key on a disbursement. A repeated request without one is a second payment, and money that has left cannot be recalled.

Full reference →

Next

On this page