Markets

Mobile money in Cameroon, Côte d’Ivoire and Senegal: operators, formats and timing

Three markets, two CFA francs and around ten operators. What to know before you offer mobile money to customers in Cameroon, Côte d’Ivoire and Senegal.

By Monerails TeamPublished 6 min read

Cameroon, Côte d’Ivoire and Senegal are among the most active mobile money markets in French-speaking Africa. On paper they look alike: the same business language, the same family of currencies, operators with familiar names. In practice, each has its own rules. This guide gathers what you need to know to collect and pay out in these three countries without surprises.

Two CFA francs, two zones

Cameroon uses the Central African CFA franc (XAF), issued by the BEAC for the six CEMAC countries. Côte d’Ivoire and Senegal use the West African CFA franc (XOF), issued by the BCEAO for the eight WAEMU countries. Both francs have the same fixed parity with the euro (€1 = 655.957 CFA francs), but they are two separate currencies: an XAF balance cannot pay in XOF.

For your integration, this has two consequences:

  • No decimals. Amounts in XAF and XOF are whole francs: 5000 means 5,000 CFA francs.
  • The currency does not identify the country. XOF is shared by eight countries and XAF by six. At Monerails, without more detail, XAF means Cameroon and XOF means Senegal; for Côte d’Ivoire, add "country": "CI".

Cameroon: MTN MoMo and Orange Money

In Cameroon, two operators share consumer mobile money: MTN Mobile Money and Orange Money. An online shop in Cameroon that offers both covers most of its customers.

Phone number format

The country code is +237, followed by 9 digits; mobile numbers start with 6. Customers will often type their number without the country code (670000999): accept it, and normalise it to 237670000999 before sending.

How customers approve

The two operators work differently. With MTN MoMo, the customer gets a prompt on their phone and approves with their PIN. With Orange Money in Cameroon, the customer receives a one-time code by SMS and has to enter it in your checkout: the collection moves to requires_otp and you pass the code on with authorize.

Côte d’Ivoire: five options

Côte d’Ivoire offers the widest choice of the three: Orange Money, MTN MoMo, Moov Money, Wave and Djamo. Offering all four is the best way to lose no customer at checkout.

Phone number format

Since 2021, Ivorian numbers have 10 digits after the +225 country code. The first two digits of a mobile number point to the original operator (07 for Orange, 05 for MTN, 01 for Moov), but do not use them to guess the wallet: a customer can hold a Wave account on any number. Let them choose their operator.

Getting the country right

This is the most common mistake in XOF integrations: forgetting "country": "CI". Without it, the request goes to Senegal, where the operators are not the same.

Senegal: Orange Money, Wave, Mixx by Yas and E-money

In Senegal, the three wallets to offer are Orange Money, Wave, Mixx by Yas (formerly Free Money) and E-money. Wave is widely used for everyday payments there: a Senegalese checkout without Wave lets a large share of customers walk away.

Phone number format

The country code is +221, followed by 9 digits; mobile numbers start with 7. As elsewhere, accept the local format and normalise it.

At a glance

CountryCurrencyDiallingOperatorscountry field
CameroonXAF+237 · 9 digitsMTN MoMo, Orange MoneyOptional (CM by default)
Côte d’IvoireXOF+225 · 10 digitsOrange Money, MTN MoMo, Moov Money, Wave, DjamoCI required
SenegalXOF+221 · 9 digitsOrange Money, Wave, Mixx by Yas, E-moneyOptional (SN by default)

This table is a guide. The source of truth is the list of operators returned by the API, which also tells you, for each one, whether the customer approves with a PIN or a one-time code. The coverage page details all 22 countries Monerails covers.

Timing, in practice

Mobile money timing depends mostly on the customer and the operator, rarely on the technology.

  • Collections. Once the customer approves, the payment is usually confirmed within seconds. The total time therefore depends mostly on the customer: they need their phone in hand and enough balance. A request that is not approved eventually expires; simply create a new one.
  • Payouts to a wallet. Usually instant once the operator accepts the operation. The recipient receives the full amount; the fee is debited on your side on top of it.
  • Bank transfers. In Cameroon, Côte d’Ivoire and Senegal, Monerails can also pay out to a local bank account; expect same-day arrival in most cases.

Either way, do not keep your server waiting: follow the outcome by webhook (collection.succeeded, payout.succeeded and so on) and show the customer a clear waiting screen.

A checkout that converts

A few simple rules make a real difference to your success rate:

  1. Show the operators’ logos for the customer’s country, in the order most used around you.
  2. Prefill the country code and accept numbers with or without spaces.
  3. Display the message returned by the API (next_action): “Approve the payment on your phone”, with the USSD code to dial if the prompt does not arrive.
  4. Plan for code entry with operators that send one.
  5. Offer a one-click retry after a failure or an expiry, possibly with another operator.

Customers also have limits set by their operator, which vary with their verification level. For large amounts, warn them or offer a bank transfer.

One account for all three countries

Many businesses start in one country, then expand to a second, often between Douala, Abidjan and Dakar. Opening a merchant account with each operator, in each country, takes time: separate contracts, different integrations, statements to reconcile one by one.

With Monerails, one account and one integration cover all three countries, and 19 more. Your collections land on one balance per currency: an XAF balance for Cameroon, an XOF balance for Côte d’Ivoire and Senegal. From those balances, you pay suppliers and teams locally, or settle the funds to your bank or mobile money account.

The most common mistakes

In these three markets, the same mistakes come up in the first weeks of an integration:

  • Sending decimals in XAF or XOF (5000.00): amounts are integers.
  • Forgetting the country for Côte d’Ivoire, which sends the request to Senegal.
  • Ignoring the requires_otp status, so payments with operators that send a code expire.
  • Delivering before confirmation, because the customer reached the success page rather than because the webhook arrived.
  • Hard-coding the operator list, which changes over time: read it from the API.

Collect without building

No website yet, or no developer? A Monerails payment link opens a page where your customer chooses their country and operator, enters their number and approves, whether they are in Cameroon, Côte d’Ivoire or Senegal. For a full integration, our mobile money API guide covers flows, statuses and webhooks.

Collection and payout fees for each country are published on the pricing page, with no subscription: every fee is shown before you confirm.

Ready to collect, pay out and issue cards?

Open an account in minutes. The sandbox is free, with no subscription.

Markets

Mobile money in Cameroon, Côte d’Ivoire and Senegal: operators, formats and timing

Three markets, two CFA francs and around ten operators. What to know before you offer mobile money to customers in Cameroon, Côte d’Ivoire and Senegal.

By Monerails TeamPublished 6 min read

Cameroon, Côte d’Ivoire and Senegal are among the most active mobile money markets in French-speaking Africa. On paper they look alike: the same business language, the same family of currencies, operators with familiar names. In practice, each has its own rules. This guide gathers what you need to know to collect and pay out in these three countries without surprises.

Two CFA francs, two zones

Cameroon uses the Central African CFA franc (XAF), issued by the BEAC for the six CEMAC countries. Côte d’Ivoire and Senegal use the West African CFA franc (XOF), issued by the BCEAO for the eight WAEMU countries. Both francs have the same fixed parity with the euro (€1 = 655.957 CFA francs), but they are two separate currencies: an XAF balance cannot pay in XOF.

For your integration, this has two consequences:

  • No decimals. Amounts in XAF and XOF are whole francs: 5000 means 5,000 CFA francs.
  • The currency does not identify the country. XOF is shared by eight countries and XAF by six. At Monerails, without more detail, XAF means Cameroon and XOF means Senegal; for Côte d’Ivoire, add "country": "CI".

Cameroon: MTN MoMo and Orange Money

In Cameroon, two operators share consumer mobile money: MTN Mobile Money and Orange Money. An online shop in Cameroon that offers both covers most of its customers.

Phone number format

The country code is +237, followed by 9 digits; mobile numbers start with 6. Customers will often type their number without the country code (670000999): accept it, and normalise it to 237670000999 before sending.

How customers approve

The two operators work differently. With MTN MoMo, the customer gets a prompt on their phone and approves with their PIN. With Orange Money in Cameroon, the customer receives a one-time code by SMS and has to enter it in your checkout: the collection moves to requires_otp and you pass the code on with authorize.

Côte d’Ivoire: five options

Côte d’Ivoire offers the widest choice of the three: Orange Money, MTN MoMo, Moov Money, Wave and Djamo. Offering all four is the best way to lose no customer at checkout.

Phone number format

Since 2021, Ivorian numbers have 10 digits after the +225 country code. The first two digits of a mobile number point to the original operator (07 for Orange, 05 for MTN, 01 for Moov), but do not use them to guess the wallet: a customer can hold a Wave account on any number. Let them choose their operator.

Getting the country right

This is the most common mistake in XOF integrations: forgetting "country": "CI". Without it, the request goes to Senegal, where the operators are not the same.

Senegal: Orange Money, Wave, Mixx by Yas and E-money

In Senegal, the three wallets to offer are Orange Money, Wave, Mixx by Yas (formerly Free Money) and E-money. Wave is widely used for everyday payments there: a Senegalese checkout without Wave lets a large share of customers walk away.

Phone number format

The country code is +221, followed by 9 digits; mobile numbers start with 7. As elsewhere, accept the local format and normalise it.

At a glance

CountryCurrencyDiallingOperatorscountry field
CameroonXAF+237 · 9 digitsMTN MoMo, Orange MoneyOptional (CM by default)
Côte d’IvoireXOF+225 · 10 digitsOrange Money, MTN MoMo, Moov Money, Wave, DjamoCI required
SenegalXOF+221 · 9 digitsOrange Money, Wave, Mixx by Yas, E-moneyOptional (SN by default)

This table is a guide. The source of truth is the list of operators returned by the API, which also tells you, for each one, whether the customer approves with a PIN or a one-time code. The coverage page details all 22 countries Monerails covers.

Timing, in practice

Mobile money timing depends mostly on the customer and the operator, rarely on the technology.

  • Collections. Once the customer approves, the payment is usually confirmed within seconds. The total time therefore depends mostly on the customer: they need their phone in hand and enough balance. A request that is not approved eventually expires; simply create a new one.
  • Payouts to a wallet. Usually instant once the operator accepts the operation. The recipient receives the full amount; the fee is debited on your side on top of it.
  • Bank transfers. In Cameroon, Côte d’Ivoire and Senegal, Monerails can also pay out to a local bank account; expect same-day arrival in most cases.

Either way, do not keep your server waiting: follow the outcome by webhook (collection.succeeded, payout.succeeded and so on) and show the customer a clear waiting screen.

A checkout that converts

A few simple rules make a real difference to your success rate:

  1. Show the operators’ logos for the customer’s country, in the order most used around you.
  2. Prefill the country code and accept numbers with or without spaces.
  3. Display the message returned by the API (next_action): “Approve the payment on your phone”, with the USSD code to dial if the prompt does not arrive.
  4. Plan for code entry with operators that send one.
  5. Offer a one-click retry after a failure or an expiry, possibly with another operator.

Customers also have limits set by their operator, which vary with their verification level. For large amounts, warn them or offer a bank transfer.

One account for all three countries

Many businesses start in one country, then expand to a second, often between Douala, Abidjan and Dakar. Opening a merchant account with each operator, in each country, takes time: separate contracts, different integrations, statements to reconcile one by one.

With Monerails, one account and one integration cover all three countries, and 19 more. Your collections land on one balance per currency: an XAF balance for Cameroon, an XOF balance for Côte d’Ivoire and Senegal. From those balances, you pay suppliers and teams locally, or settle the funds to your bank or mobile money account.

The most common mistakes

In these three markets, the same mistakes come up in the first weeks of an integration:

  • Sending decimals in XAF or XOF (5000.00): amounts are integers.
  • Forgetting the country for Côte d’Ivoire, which sends the request to Senegal.
  • Ignoring the requires_otp status, so payments with operators that send a code expire.
  • Delivering before confirmation, because the customer reached the success page rather than because the webhook arrived.
  • Hard-coding the operator list, which changes over time: read it from the API.

Collect without building

No website yet, or no developer? A Monerails payment link opens a page where your customer chooses their country and operator, enters their number and approves, whether they are in Cameroon, Côte d’Ivoire or Senegal. For a full integration, our mobile money API guide covers flows, statuses and webhooks.

Collection and payout fees for each country are published on the pricing page, with no subscription: every fee is shown before you confirm.

Ready to collect, pay out and issue cards?

Open an account in minutes. The sandbox is free, with no subscription.