Start collecting and disbursing
payments in 5 minutes.
Plug us into your app or website. Collect from across Africa and the world, and pay anyone out across the continent.
- collect/charge
- collect/checkout
- disburse
- webhooks
- providers
Money in, and money back out.
The same rail, the same settlement, the same webhook. What changes is which way it runs.




POST /v1/collect/chargePOST /v1/collect/checkoutCollect
Push a prompt straight to a number you already have, or hand the payer a hosted page and let them choose. The money settles the same way either way.
You collect the number, or nothing at all.




POST /v1/disburseDisburse
Settle a seller, pay a supplier, send a refund. You name the network and the number exactly as you do for a charge — the endpoint is what changes.
Needs a key carrying the Disburse permission.
A payment is one request.
Flat body, no nesting, nothing inferred. You name the country, the network and the number — we never guess which, because a guessed network sends a prompt nobody can answer.
- 202
- Returns immediately. The prompt is on its way.
- collect.succeeded
- Arrives at your webhook the moment it clears.
curl -X POST https://connect.tchokopay.com/v1/collect/charge \
-H "Authorization: Bearer tchoko_live_..." \
-H "Idempotency-Key: order-4821" \
-d '{
"amount": 5000,
"currency": "XAF",
"country": "CM",
"provider": "mtn_cm",
"phone": "670000000"
}'The same body, the other direction.
Settle a seller, pay a supplier, send a refund. You name the network and the number exactly as you do for a charge — the endpoint is what changes.
- POST /v1/disburse
- Money leaves your balance for any number on a supported network.
- disburse.succeeded
- Fires when the recipient is credited, not when we accept the request.
curl -X POST https://connect.tchokopay.com/v1/disburse \
-H "Authorization: Bearer tchoko_live_..." \
-H "Idempotency-Key: payout-4417" \
-d '{
"amount": 25000,
"currency": "XAF",
"country": "CM",
"provider": "mtn_cm",
"phone": "670000000"
}'- Idempotency-Key
A retry is never a second payment
Send the same key again and you get the original back — not a second prompt on your customer’s phone, and never a second disbursement.
- X-TchokoPay-Signature
Webhooks you can trust
Every delivery is HMAC-signed with the timestamp bound in, so a captured payload cannot be replayed at you later.
- GET /v1/providers
Nothing to hardcode
Ask which countries, networks and amounts are live. Your integration keeps working as we open new markets.
- scopes
A key that cannot spend
Keys carry fixed permissions. The one in your checkout collects and nothing else — it can never move money out.
Your first payment is about five minutes away.
Generate a key from your dashboard, then follow the quickstart.