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.
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.
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.