eSMS Africa sends bulk SMS to eight Southern African countries today: South Africa, Zambia, Zimbabwe, Malawi, Mozambique, Botswana, Angola and Eswatini. South Africa is the region's biggest and most regulated market, governed for marketing messages by POPIA's opt-in rule, while Mozambique and Angola are Portuguese-speaking and need a different approach to message length.
Last reviewed: 28 October 2026. Network rules change without notice; this is general guidance, not legal advice.
Namibia and Lesotho are coming soon. We do not accept live traffic for them yet; tell us if you need them and we will let you know when they open.
Southern Africa at a glance
| Country | Dial code | Main networks | Sender ID | Language note | From (basic tier) | Guides |
|---|---|---|---|---|---|---|
| South Africa | +27 | Vodacom, MTN, Cell C, Telkom | Register through us; POPIA consent for marketing | English, Afrikaans, isiZulu (GSM-7) | ZAR 0.2743 ($0.0165) | bulk SMS, sender ID |
| Zambia | +260 | MTN, Airtel, Zamtel | Register with each network; numeric senders not supported | English, Bemba, Nyanja (GSM-7) | ZMW 0.2104 ($0.0104) | bulk SMS, sender ID |
| Zimbabwe | +263 | Econet, NetOne, Telecel | Register through us before campaigns | English, Shona, Ndebele (GSM-7) | ZIG 0.693 ($0.0252) | bulk SMS, sender ID |
| Malawi | +265 | Airtel, TNM | Register with both networks | English, Chichewa (GSM-7) | MWK 78.3391 ($0.0451) | bulk SMS, sender ID |
| Mozambique | +258 | Vodacom, Movitel, Tmcel | Register through us before campaigns | Portuguese (often Unicode) | MZN 3.5 ($0.0548) | bulk SMS, sender ID |
| Botswana | +267 | Mascom, Orange, BTC | Register through us before campaigns | English, Setswana (GSM-7) | BWP 0.35 ($0.0255) | bulk SMS, sender ID |
| Angola | +244 | Unitel, Africell, Movicel | Register through us before campaigns | Portuguese (often Unicode) | AOA 89.53 ($0.0977) | bulk SMS, sender ID |
| Eswatini | +268 | MTN, Eswatini Mobile | Register with both networks | English, siSwati (GSM-7) | SZL 1.2 ($0.0732) | bulk SMS, sender ID |
| Namibia | +264 | MTC, TN Mobile | Coming soon | English | Coming soon | register interest |
| Lesotho | +266 | Vodacom, Econet | Coming soon | English, Sesotho | Coming soon | register interest |
The price column is the live basic-tier rate per SMS segment in local currency and USD. Higher volumes move you to the business and enterprise tiers; see SMS pricing for the full table and pricing for how billing works. All markets on our network are on the coverage page.
South Africa and POPIA
If you send marketing SMS to South African numbers, the Protection of Personal Information Act, 2013 (POPIA) is the rule to design around. Section 69 prohibits direct marketing by electronic communication, which explicitly includes SMS, unless the recipient has consented or is an existing customer. In plain terms:
- Consent is opt-in. You may ask a person for consent once, in the prescribed form, and only if they have not refused before.
- Existing customers are an exception, with conditions. You can market to a customer whose details you obtained in a sale, but only for your own similar products or services, and only if you gave them a free, simple way to object when you collected the details and in every message since.
- Every message must identify you and give an address or other contact detail where the recipient can ask you to stop.
The Information Regulator issued a Guidance Note on Direct Marketing in December 2024 that expands on these points, and it has issued enforcement notices for marketing sent without consent. Transactional messages (OTPs, delivery notices, account alerts) are not direct marketing, which is another reason to keep them on a separate sender ID from promotions. If you are unsure whether a message counts as marketing, check the Regulator's guidance or ask your legal adviser.
A POPIA-friendly promotional SMS looks like this:
KhumaloHome: 20% off bedding this weekend at Sandton City for loyalty members. Info 011 555 0100. Opt out: reply STOP to 4xxxx
The opt-out route needs a two-way number; with a one-way sender ID, use a short link to an unsubscribe page instead. Our South Africa SMS page and bulk SMS in South Africa cover networks and setup, and the older South Africa bulk SMS article has more background.
The Zambezi markets: Zambia, Zimbabwe, Malawi
These three are English-first, and local languages such as Bemba, Nyanja, Shona, Ndebele and Chichewa are written in Latin script, so messages stay in GSM-7 at 160 characters. Each has two or three networks:
- Zambia: MTN, Airtel and Zamtel. Networks typically do not support numeric senders and treat unregistered sender IDs as best effort, and ZICTA has acted against spam, so register first. Zambia is also one of the five countries where you can top up your eSMS balance with mobile money, and where two-way short codes can be ordered online. See SMS in Zambia and the Zambia use cases.
- Zimbabwe: Econet, NetOne and Telecel. See SMS in Zimbabwe.
- Malawi: Airtel and TNM. With only two networks, registering your sender ID with both covers the whole market. See SMS in Malawi.
Botswana and Eswatini
Botswana (Mascom, Orange, BTC) and Eswatini (MTN, Eswatini Mobile) are smaller markets with strong ties to South Africa. Businesses based in Johannesburg often add them to the same campaign. English and Setswana or siSwati all fit GSM-7. Remember they are separate countries for routing and pricing: a +267 or +268 number is billed at its own rate, not South Africa's. See SMS in Botswana and SMS in Eswatini.
Mozambique and Angola: Portuguese messaging
Mozambique (Vodacom, Movitel, Tmcel) and Angola (Unitel, Africell, Movicel) send in Portuguese, and Portuguese is hard on SMS length. The GSM-7 alphabet lacks ã, õ, á, ó, ê, â and lowercase ç, so a normal Portuguese sentence often switches to Unicode at 70 characters per SMS (67 per part when split), instead of 160 (153 per part).
Two ways to keep costs down:
- Write short.
Unitec: Pagamento de 2.500 MZN confirmado. Promoção válida até 30/11.uses ç, ã and á, so it is Unicode, but at under 70 characters it is still one SMS. - Choose words without the problem characters where it still reads naturally, for example "Pedido 3381 entregue hoje" rather than a sentence with "não" and "você". Do not strip accents from words that need them; customers notice, and it looks like spam.
The dashboard composer shows the encoding and number of parts as you type. See SMS in Mozambique and SMS in Angola.
Sending to the region from one integration
All eight countries use the same API and the same E.164 number format: plus sign, country code, then the number without its leading zero. A South African 082 123 4567 becomes +27821234567; a Zambian 097 123 4567 becomes +260971234567.
curl -X POST https://sms.esmsafrica.io/api/messages/send \
-H "Authorization: Bearer esms_live_..." \
-H "Content-Type: application/json" \
-d '{"to": "+27821234567", "text": "KhumaloHome: your delivery is booked for Thu 6 Nov, 08:00-12:00. Ref KH2219.", "sender_id": "KHUMALO"}'
Use an esms_test_... key while you build: it simulates sends and delivery reports without charge. The HTTP API docs cover bulk sends, scheduling and webhooks, and SMPP is available for high-volume senders who prefer a bind.
Checklist for a Southern Africa launch
- Register your sender ID in each country you send to; we handle the network requests (sender ID).
- For South Africa, record how and when each person consented, and include an opt-out route in every marketing message.
- Separate OTPs and alerts from promotions with their own sender IDs.
- Write a short Portuguese version for Mozambique and Angola rather than translating a long English message word for word.
- Most of the region is on UTC+2 (South Africa, Zambia, Zimbabwe, Malawi, Mozambique, Botswana, Eswatini); Angola is on UTC+1. Schedule in the recipient's time.
Frequently asked questions
Does POPIA apply to OTP and transactional SMS?
Section 69 of POPIA covers direct marketing. OTPs, delivery notices and account alerts are not marketing, but you still need a lawful reason to process the phone number. Keep marketing off your transactional sender ID.
Can I send to Namibia or Lesotho?
Not yet. Both are coming soon, and we do not accept live traffic for them today. Use the contact page to register interest.
Why are Portuguese messages more expensive?
Common Portuguese characters such as ã, õ and ç are not in the GSM-7 alphabet, so messages are sent as Unicode at 70 characters per SMS. You pay per part, so longer Portuguese texts use more parts.
Can I pay in rand or kwacha?
Your balance is in US dollars, paid by card or crypto, and Zambian customers can also top up by mobile money. The pricing pages show local-currency equivalents for reference.
Sources
- POPIA - Section 69: Direct marketing by means of unsolicited electronic communications
- DLA Piper Africa - Information Regulator Guidance Note on Direct Marketing
- Information Regulator - Enforcement notice for direct marketing without consent (PDF)
- ITWeb: ZICTA limits spam
- 3GPP TS 23.038 - Alphabets and language-specific information (GSM-7 and UCS-2)
- 3GPP TS 23.040 - Technical realisation of SMS (concatenation headers)
Ready to reach Southern Africa? See live rates on SMS pricing, browse the use cases by industry, and create a free account to send your first test message today.


