A2P SMS prices in Africa differ because each mobile network sets its own fee for delivering business messages, and most networks charge more for traffic that arrives from outside the country (international A2P) than for local traffic. On top of that you pay per segment, so the length and character set of your message change the cost, and sender ID registration adds a one-off or recurring fee in some countries.
This article explains why prices differ between countries, routes and message types, so you can read a rate card with confidence. For the mechanics of how your eSMS Africa wallet is charged, see how billing works; for the market picture, see the state of A2P SMS in Africa 2026.
Last reviewed: 28 October 2026. This is general information, not legal advice. Network rules change without notice; check with the regulator or your counsel for edge cases.
The price stack: what you are paying for
Every business SMS price is built from a few layers. Knowing them explains most of the differences you see on a rate card.
- Network termination fee. The receiving network (MTN, Safaricom, Vodacom, Orange and so on) charges to deliver an A2P message to its subscriber. Each network sets its own fee, and it can change it.
- Route type. Networks distinguish local traffic, from businesses and connections registered in the country, from international traffic arriving from abroad. International A2P is usually charged at a higher rate.
- Traffic type and controls. Some networks price or filter OTP, promotional and transactional traffic differently, and apply firewalls to traffic they cannot identify.
- Provider costs and volume tier. Platform, routing, delivery reports, support and fraud controls, with lower per-message prices at higher monthly spend.
- Segments. You pay per segment, not per message.
- One-off fees. Sender ID registration, and in some countries a recurring network fee.
- Currency. Many rates are set in local currency, so the USD equivalent moves with exchange rates.
Local route vs international route: the biggest difference
The table shows live prices per segment for twelve markets, in three views: the local route rate in local currency, the same local rate in USD, and the international route rate in USD for cross-border traffic that keeps your sender ID end to end.
| Country | Local route (local currency) | Local route (USD) | International route (USD) |
|---|---|---|---|
| Nigeria | NGN 9.1 | $0.0068 | $0.532 |
| Kenya | KES 1.08 | $0.0083 | $0.308 |
| Ghana | GHS 0.09 | $0.0077 | $0.476 |
| South Africa | ZAR 0.2743 | $0.0165 | $0.112 |
| Egypt | EGP 0.8047 | $0.0143 | $0.3886 |
| Morocco | MAD 0.5411 | $0.055 | $0.2219 |
| Senegal | XOF 6.5928 | $0.0113 | $0.0433 |
| Cote d'Ivoire | XOF 30 | $0.0514 | $0.406 |
| Tanzania | TZS 18.2819 | $0.0069 | $0.434 |
| Uganda | UGX 35 | $0.0083 | $0.308 |
| Zambia | ZMW 0.2104 | $0.0104 | $0.448 |
| Ethiopia | ETB 5.7959 | $0.0356 | $0.3247 |
In most of these markets the international route is several times the local one. That gap is not a provider markup; it reflects what networks charge for traffic arriving from abroad. Which rate applies to you depends on how the destination networks classify your traffic, which we confirm during onboarding. A business registered or represented in the country, sending under a locally registered sender ID, is more likely to qualify for the local route.
Why networks charge more for international A2P
- It is a revenue line networks protect. The GSMA has long encouraged operators to secure their networks so they can monetise A2P traffic rather than lose it to unofficial routes. Firewalls identify international A2P and bill it at the published rate.
- Grey routes undercut official prices. Business traffic sent through consumer SIM cards or unofficial interconnects avoids the A2P fee. Networks respond with firewalls and blocking, which is why cheap unofficial routes tend to have unreliable delivery.
- Global verification traffic is concentrated. Large international apps send one-time passwords to every country, and networks price that traffic as a distinct category.
- Fraud raises the cost of risk. Artificially inflated traffic (AIT), fake sign-ups that trigger SMS to earn revenue for parties in the chain, is described by the GSMA as a growing problem. Monitoring and blocking it is a cost carried by the whole chain.
This is why an OTP from a foreign app to a Nigerian number can cost more than a local bank's alert to the same handset. Our help article on whether OTP costs more than bulk SMS gives the short version.
Why some countries cost more than others
Even on local routes, prices vary widely between countries. Common reasons:
- Market structure. Where one or two networks carry most subscribers, termination fees face less competitive pressure.
- Regulation and taxes. Licensing, levies and sector taxes vary by country and feed into network pricing.
- Currency. A rate fixed in local currency gets cheaper in USD when that currency weakens, and dearer when it strengthens. Rates for markets that use the XOF and XAF, both pegged to the euro, move with the euro against the USD.
- Route options. In smaller markets there may be fewer direct connections, which affects both price and reliability.
Within a country, networks can charge different termination fees. Like most providers, we publish one price per country, so you do not need to price each network separately; behind it sits a mix of network fees, which is why a country price can change when one network revises its rate. The live price list updates automatically, which is why prices in our articles always come from it. For more on this, see why pricing varies by country.
Segments: the cost you control
SMS is billed per segment. The character set decides how much fits in one.
| Message length | GSM-7 segments | Unicode (UCS-2) segments |
|---|---|---|
| Up to 70 characters | 1 | 1 |
| 71 to 160 | 1 | 2 or 3 |
| 161 to 306 | 2 | 3 to 5 |
| 307 to 459 | 3 | 5 to 7 |
GSM-7 fits 160 characters in a single segment and 153 per segment when split. Unicode fits 70, or 67 per segment when split. One character outside GSM-7 switches the whole message to Unicode: emoji, curly quotes, many French and Portuguese accents (ê, ô, ã), and scripts such as Arabic and Amharic. For a 140-character marketing message, that one character can more than double the cost.
Sender ID fees
Sender ID registration is a separate cost from the per-message price. eSMS Africa's published fee is USD 100 one-time in most countries, covering registration on all networks. Kenya and Uganda have per-network tables: in Kenya, one-off fees per network (for example KES 8,700 for Safaricom or KES 14,100 for Safaricom and Airtel together); in Uganda, MTN charges UGX 250,000 per month and Airtel UGX 250,000 one-off. Fees and steps are on each sender ID page. You pay only when a request is approved.
Volume tiers
Prices step down as your monthly spend grows, through three tiers: Basic, Business and Enterprise. In Kenya, for example, the live local-route price per segment is $0.0083 on Basic, $0.0069 on Business and $0.0012 on Enterprise. The spend bands for each tier are on the pricing page. There is no monthly minimum: you can start pay as you go from USD 20.
How to estimate your monthly cost
The formula is: recipients x messages per recipient x segments per message x price per segment for that country and route. Add sender ID fees once.
Worked example: an app sends 10,000 one-segment login codes a month to Kenyan numbers. On the local route the cost is 10,000 x $0.0083; if the traffic is classed as international, it is 10,000 x $0.308. If a template accidentally contains an emoji and grows to two Unicode segments, both figures double. The calculator on pricing does this per country and tier.
Ways to lower the bill without hurting delivery
- Keep templates in GSM-7 and under 160 characters. Replace long URLs with short links from eSMS Links.
- Clean your list: remove duplicates, wrong formats and numbers that repeatedly fail, using delivery reports.
- Honour opt-outs. Sending to people who do not want messages costs money and complaints.
- Rate-limit OTPs and use eSMS Verify so retries and fraud do not multiply your spend.
- If you have a local entity in a market, ask whether your traffic qualifies for local routes.
- Avoid "cheap" routes that bypass official A2P pricing. Low prices with poor delivery reports usually mean grey routes; see direct routes vs aggregators.
Frequently asked questions
Why is the international rate so much higher than the local rate?
Networks charge more to deliver business traffic that arrives from abroad, use firewalls to enforce it, and carry the cost of fighting fraud such as artificially inflated traffic. The provider passes that network fee on.
Do different networks in one country have different prices?
Networks can charge different termination fees, but we publish one price per country so you do not need to price each network. The country price reflects the mix of networks.
Why did my message cost two segments when it was under 160 characters?
It probably contained a character outside GSM-7, such as an emoji, a curly quote or an accent like ê. That makes it Unicode, where one segment holds 70 characters.
Are sender ID fees charged per message?
No. They are one-off in most countries, USD 100 covering all networks. Kenya has one-off per-network fees, and in Uganda MTN charges a monthly fee.
Do prices change?
Yes. Networks revise fees and exchange rates move. Our price list is live, and the prices shown in this article update automatically.
Sources
- GSMA: Secure networks key to A2P monetisation (white paper, 2015)
- GSMA: Let's protect the A2P SMS ecosystem (AIT and IRSF)
- GSMA: Fraud types (security landscape)
- GSM 03.38 / 3GPP TS 23.038 character set (overview)
Sending to Africa from abroad? Our guides for senders in the USA, UK, Europe, China and India cover the local details. Check live SMS prices and create an account to start with a free test key.


