Accepting Mobile Money looks complicated from a distance. In practice the road is short and it is always the same one: an account, a declared activity, a first collection made by hand, then the site plugged in. Here is that route in order, with what each step actually asks of you and what it opens up.
Before you start: what to have within reach
Three things are enough to begin: an email address you actually read, an active Mobile Money number in your name or your company's, and a clear idea of what you sell. That last point is not a formality. "I sell online" will not survive the verification stage; "I deliver food ordered on WhatsApp, paid in advance, inside Yaounde" is plenty.
If you have a registered company, pull out your trade register entry and your taxpayer certificate now. You will need them later, and hunting for them at the last minute is the number one cause of a file that drags on for weeks.
Step 1 - Open the account and collect your test keys
Creating the account takes a few minutes: shop name, email, phone, password. The moment you are signed up, your merchant space already holds a pair of API keys in test mode.
Those keys are not a crippled demo. They run exactly the same code as production: same endpoints, same responses, same statuses, same notifications. The only difference is that no franc moves. That is what lets you integrate on the day you sign up, without waiting for anything.
Learn the rule right away: the mode follows the key, never a parameter. An sk_test_... key produces test payments, an sk_live_... key produces real ones. There is no mode field to pass in your requests, so there is no way to go live by accident.
Step 2 - Declare your service
One merchant account can carry several activities: a shop, an app, a content site. Each is declared separately and gets its own keys.
Declaring a service means saying what you sell and where. That declaration is what gets checked before live mode opens, and it also protects you: if someone ever collects under your name for something other than your activity, the mismatch shows.
Here too, approval does not block integration. The service's test keys work immediately.
Step 3 - Collect without writing a line of code
Plenty of merchants never need to go further than this. From your dashboard you can create a payment link: an amount, a label, optionally the customer's number. You get an address to send over WhatsApp, drop into a post, or turn into a button.
The customer opens the link, types their number, confirms on their phone. You watch the payment flip in real time in your dashboard. It is the fastest way to prove the whole chain works, and for a good share of businesses - deposits, orders taken by message, one-off invoices - it is a permanent solution rather than a stepping stone.
Run that test in test mode first. Then, once the account is live, do it once for real with a small amount. Watching your first real collection land is worth more than any documentation.
Step 4 - Wire up your site
If you run an online shop or an app, the integration is three calls.
- Create the payment server-side, with the amount in whole francs, the customer's number and your own order reference. You get back a payment identifier and a checkout page address.
- Send the customer to that page. It handles the waiting, the retries and the errors for you.
- Wait for the notification on the address you configured, then confirm the status against the API before you deliver.
That third point is the one most often skipped, and it is the only one that costs money when you neglect it. An incoming notification is a signal, not a proof: it says "go and check", not "this is paid". Until your code has re-read the status from the API, release nothing.
If you run WooCommerce, PrestaShop or another common platform, start by looking at the modules that already exist. Most of the work is done.
Step 5 - The verification file
To collect real money, we need to know who is behind the shop. A company supplies its trade register entry, its taxpayer registration certificate and the identity document of its director. A sole trader supplies a national ID card, front and back, plus proof of activity: a business licence, a taxpayer certificate, or simply a screenshot of the online shop.
One piece of advice that saves days: photograph your documents flat, in daylight, with all four corners inside the frame. An unreadable document is refused, and a refusal sends you back to the start.
Step 6 - Going live
When the file is approved, live mode opens. In practice you swap one key for another in your configuration. Nothing else changes: not the code, not the endpoints, not the shape of the responses. That is the whole point of having integrated in test mode from day one.
Check two things before you open the tap: that your notification address is genuinely reachable from the outside - not a local address left behind in a config file - and that your payout number is correct and in the right name.
What happens after a collection
Every successful payment credits your balance, less the commission. You then request a payout to your Mobile Money number. Balance, commissions and payouts appear line by line in your operations: that ledger is what counts, not the sum of your SMS messages.
The three mistakes we see most
Delivering on a screenshot. A screenshot takes thirty seconds to fake. Only the status returned by the API commits anyone.
Forgetting that the cents do not exist. The CFA franc has no sub-unit. An amount of 1,500 francs is sent as 1500, not 150000 and not 1500.00.
Testing only the happy path. The customer who cancels, who is short of balance, who lets the request expire: those are the most common cases in production. Put them through their paces in test mode while it costs nothing.
In short
Open the account today, integrate in test mode straight after, prepare your file in parallel. The day approval arrives, you change one key - and you collect.