MTN Mobile Money
A USSD prompt opens on the customer's phone. They enter their PIN and the payment goes through.
Early access · test mode open
Your customer enters their number and approves on their phone. Your server receives a signed confirmation as soon as the operator accepts, and your dashboard updates itself.
Your test key arrives when you sign up. No paperwork needed to try it.
Paying
Boutique Mbolo
15,000 FCFA
How would you like to pay?
MTN number
MTN number detected
Approve on your phone
Enter your MTN MoMo PIN in the prompt that has just opened.
MTN MoMo
Payment of 15,000 FCFA to BOUTIQUE MBOLO. Enter your PIN:
••••
Payment successful
MTN Mobile Money · ORD-1042
Secure payment by
Payment methods
One payment page offers all three. Your customer chooses, Kola talks to the operator.
A USSD prompt opens on the customer's phone. They enter their PIN and the payment goes through.
Same flow, same page. Kola recognises the operator from the first digits of the number.
For customers who prefer their bank card. Same page, same notification on your side.
How it works
Your server sends the amount and the order reference. Kola replies with the address of the payment page.
They choose MTN, Orange or their card, enter their number and confirm with their PIN, on their own phone.
Kola notifies your server with a signed webhook. You mark the order as paid and serve your customer.
Developers
A TypeScript SDK with zero dependencies, and test keys kept apart from live keys from day one.
1import { Kola } from "@kola/checkout-sdk";2 3const kola = new Kola(process.env.KOLA_SECRET_KEY);4 5const payment = await kola.payments.create({6 amount: 15000, // 15,000 F, a whole number7 reference: "ORD-1042",8 returnUrl: "https://my-shop.cm/thank-you",9});10 11res.redirect(payment.checkoutUrl);Response · 201 Created
{ "id": "pi_8Kq2vN4rTx", "status": "requires_payment_method", "amount": 15000, "currency": "XAF", "checkoutUrl": "https://…/pay/pi_8Kq2vN4rTx?cs=…"}After the payment
Net collected · 30 days
1,284,500 FCFA
94% success rate
Net collected, success rate, daily volume and each operator's share. CSV export filtered by status, method and period.
Illustrative figures.
In full or in part, from the dashboard or through the API. The money goes back to the customer's Mobile Money account.
Your server is not answering? Kola retries seven times over twenty hours. Every delivery carries an HMAC-SHA256 signature that the SDK checks for you.
Do you host your clients' shops? Create their merchant accounts through the API and collect payments for each of them with a single key.
A customer picks MTN, then types an Orange number? The page corrects the choice before they wait for a prompt that would never reach their phone.
Security
Your customer pays from their Mobile Money account or card at the moment of purchase. No wallet to top up.
Hashed with argon2id, today's recommended algorithm against cracking.
Kola only keeps their fingerprint. Nobody can display them again, not even us.
Encrypted with AES-256-GCM in the database, decrypted only at the moment of signing.
Every sensitive action records its author: API key, merchant account or platform.
FAQ
No. Signing up opens test mode and generates your test key on the spot. Your business is only verified when you move to live payments.
No. They enter their number on the payment page and approve on their phone, just like a transfer.
The payment page follows the language of your customer's phone, English or French, and they can switch with one tap. You can also set the language when you create the payment.
In test mode, the last four digits of the number decide the outcome: 0001 simulates insufficient funds, 0003 an unreachable operator, 0004 a customer refusal. You see every failure before your customers do.
Kola retries the webhook seven times over twenty hours. In the meantime, your server can ask for the payment status at any time.
Platform mode lets you create and manage their merchant accounts through the API, with your own key alone. Bikus Group turns it on upon request.
A test key as soon as you sign up, and a payment page ready to use.