Companies in France, Belgium, Portugal, Germany and the rest of the EU can send SMS to African numbers through an SMS API or SMPP, with numbers in E.164 format and a sender ID registered in each destination. The two things that most often go wrong are legal and technical: GDPR treats sharing numbers outside the EU as a transfer that needs a safeguard, and French or Portuguese text with the wrong accents silently switches a message to Unicode, which more than doubles the number of segments you pay for.
This guide covers both, plus sender IDs, time zones and EUR versus USD billing, for teams messaging Francophone and Lusophone Africa.
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.
GDPR: scope and transfers
Under Article 3(1) of the GDPR, the regulation applies to processing in the context of the activities of an establishment in the EU, regardless of whether the processing itself takes place in the EU. A Paris retailer texting customers in Dakar, or a Brussels NGO messaging partners in Kinshasa, is processing personal data under the GDPR.
Chapter V (Articles 44 to 49) restricts transfers of personal data to countries outside the EU. When you pass phone numbers and message content to a provider or network outside the EU, you need one of the transfer tools:
- Adequacy decision (Article 45). The European Commission's current list covers countries such as Japan, the UK, Switzerland, Brazil and the US (for organisations in the Data Privacy Framework). At the time of review no African country is on the list, so you cannot rely on adequacy for African destinations.
- Appropriate safeguards (Article 46), most commonly the Commission's standard contractual clauses (SCCs), supported by a transfer impact assessment.
- Derogations (Article 49), such as transfers necessary for a contract with the data subject. These are narrow and suited to occasional transfers, not a routine marketing programme.
Practical steps: sign a processing agreement with your SMS provider (Article 28), put SCCs in place, note the transfer in your record of processing, and send only what delivery needs. A number and the message text are enough; there is no need to send dates of birth or account data in the message.
Consent for marketing
EU member states implement the ePrivacy Directive with their own rules on marketing texts, and the destination country has its own too. Nigeria, for instance, filters promotional traffic to numbers on the NCC Do Not Disturb list. Collect clear consent, keep proof of it, and give an opt-out in every promotional message. Our transactional vs promotional guide explains where most networks draw the line.
French and Portuguese: accents and GSM-7
SMS uses the GSM-7 alphabet by default: 160 characters in one segment, or 153 per segment when a message is split. If even one character falls outside GSM-7, the whole message is sent as Unicode (UCS-2): 70 characters in one segment, 67 per segment when split. GSM-7 includes some accented letters but not all of those used in French and Portuguese.
| Language | In GSM-7 (1 character) | Not in GSM-7 (forces Unicode) |
|---|---|---|
| French | é è à ù ü É and upper case Ç | ê â î ô û ë ï œ, lower case ç (handling varies) and curly apostrophes |
| Portuguese | é à ü Ç | á í ó ú â ê ô ã õ and lower case ç |
| Both | Plain letters, digits, most punctuation, € is in the extension table (2 characters) | Emoji, typographic quotes, ellipsis character |
Lower case ç is a common trap: the GSM-7 table has upper case Ç, and handling of lower case ç varies between systems, so treat it as Unicode unless your tests show otherwise. The euro sign is in the GSM-7 extension table and counts as two characters.
You have two honest options. Keep full accents and accept Unicode pricing for those messages, or write templates that avoid characters outside GSM-7 without looking misspelt. Examples:
- French, GSM-7 (76 characters):
BanqueSud: votre code est 482913. Il expire dans 10 min. Ne le partagez pas. - French with "reçu" and "à bientôt": the ç and ô make it Unicode. "Paiement confirmé, merci" stays in GSM-7.
- Portuguese, GSM-7:
LojaLuz: o seu pedido 4821 foi enviado. Entrega prevista sexta-feira em Luanda. - Portuguese "Olá" or "não" force Unicode; "Bom dia" and "sem custos" do not.
Test each template in the dashboard composer, which shows the encoding and segment count before you send. If a native speaker would find the text unnatural without accents, keep them: a clear message is worth the extra segment.
Sender IDs for Francophone and Lusophone markets
Sender IDs are registered per destination country, often with each network. eSMS Africa handles the registration; the published fee is USD 100 one-time in most countries, with per-network tables in Kenya and Uganda. See sender ID in Senegal or sender ID in Cote d'Ivoire for country steps. While a request is pending, you can test on the eSMS default sender.
Use the brand your customers see locally. A Lisbon parent company trading as a different brand in Maputo should register the Maputo brand. Up to 11 characters; avoid generic words such as "INFO" or "PROMO", which networks typically reject.
Destinations EU senders use most, with live prices
Historic, language and business ties mean EU senders often reach West and Central Africa in French, the Great Lakes from Belgium, and Angola, Mozambique and Cape Verde from Portugal. Numbers are written as + country code + national number without the leading zero.
| Destination | Code | E.164 example | Main networks | Local route (USD) | International route (USD) |
|---|---|---|---|---|---|
| Senegal | +221 | +221 77 123 45 67 | Orange, Yas, Expresso | $0.0113 | $0.0433 |
| Cote d'Ivoire | +225 | +225 07 12 34 56 78 | Orange, MTN, Moov | $0.0514 | $0.406 |
| Cameroon | +237 | +237 6 71 23 45 67 | MTN, Orange, Nexttel, Camtel | $0.0514 | $0.266 |
| DR Congo | +243 | +243 81 234 5678 | Vodacom, Airtel, Orange, Africell | $0.059 | $0.2591 |
| Morocco | +212 | +212 6 12 34 56 78 | Maroc Telecom, Orange, Inwi | $0.055 | $0.2219 |
| Madagascar | +261 | +261 34 12 345 67 | Telma, Orange, Airtel | $0.0688 | $0.784 |
| Angola | +244 | +244 923 123 456 | Unitel, Africell, Movicel | $0.0977 | $0.196 |
| Mozambique | +258 | +258 84 123 4567 | Vodacom, Movitel, Tmcel | $0.0548 | $0.462 |
| Cape Verde | +238 | +238 991 23 45 | CVMovel, Unitel T+ | $0.1274 | $0.1274 |
Prices are per segment and refresh from the live price list. The local route rate applies to traffic networks treat as local; the international route rate is for cross-border traffic that keeps your sender ID end to end. Which applies is confirmed during onboarding. Rwanda and Burundi, often messaged from Belgium, are on SMS in Rwanda and SMS in Burundi.
Time zones from CET
Africa runs from UTC-1 in Cape Verde to UTC+4 in Mauritius, and most African countries do not change clocks, while EU countries move between CET and CEST. DR Congo has two time zones: Kinshasa is UTC+1 and Lubumbashi UTC+2, so a single national send can land at two local times.
| Destination | UTC offset | Paris in winter (CET) | Paris in summer (CEST) |
|---|---|---|---|
| Cape Verde | -1 | 2 hours behind | 3 hours behind |
| Senegal, Cote d'Ivoire, Mali, Morocco | +0 | 1 hour behind | 2 hours behind |
| Cameroon, Kinshasa, Angola | +1 | Same time | 1 hour behind |
| Lubumbashi, Mozambique, Rwanda, Burundi | +2 | 1 hour ahead | Same time |
| Madagascar | +3 | 2 hours ahead | 1 hour ahead |
Morocco used UTC+1 for years, dropping to GMT during Ramadan. It announced a move to permanent GMT (UTC+0) from 20 September 2026, so older scheduling rules for Morocco may be an hour out; confirm the current local time before a campaign.
EUR or USD?
Your eSMS Africa wallet is in USD. You can top up by card with a European card (your bank converts EUR to USD at its rate) or with crypto, from USD 20, with no monthly minimum. Many African rates are set in USD or in local currencies such as XOF and XAF, which are pegged to the euro; our price list shows both the local and the USD figure. Budget in USD, convert at top-up time, and download receipts from the dashboard for accounting.
Sending the message
The REST API takes one JSON call per message, or a bulk call with merge fields. A French delivery notice to Abidjan:
POST https://sms.esmsafrica.io/api/messages/send
Authorization: Bearer esms_live_your_key_here
Content-Type: application/json
{"to": "+2250712345678", "sender_id": "LivraRapid",
"text": "LivraRapid: votre colis 4821 arrive demain entre 9h et 12h. Suivi: livrarapid.ci/4821"}Use a test key (esms_test_...) first. Delivery reports come back by webhook. See the HTTP API docs or the PHP guide.
Frequently asked questions
Is there an adequacy decision for any African country?
Not at the time of review. The Commission's adequacy list includes countries such as Japan, the UK, Switzerland and Brazil but no African country, so transfers usually rely on standard contractual clauses.
Why did my French SMS cost two or three segments?
Characters outside GSM-7, such as ê, ô, lower case ç or curly apostrophes, switch the whole message to Unicode at 70 characters per segment. Check the encoding in the composer before sending.
Can I send in Portuguese to Angola and Mozambique?
Yes. Both are live. Portuguese uses several characters outside GSM-7 (ã, õ, á), so test whether to keep them and accept Unicode, or rephrase.
Do you deliver SMS inside the EU?
Our live coverage is 46 African countries. EU destinations are priced on request; see SMS to Europe, France or Portugal.
Sources
- GDPR (Regulation (EU) 2016/679), EUR-Lex
- European Commission: Adequacy decisions
- European Commission: Standard contractual clauses for international transfers
- GSM 03.38 / 3GPP TS 23.038 character set (overview)
- NCC consumer portal: Do Not Disturb (DND) service in Nigeria
- time.is: Morocco changes time zone to permanent GMT (20 September 2026)
- Wikipedia: Time in the Democratic Republic of the Congo
Messaging Francophone or Lusophone Africa from Europe? Check coverage and live SMS prices, and open an account to test your templates with a free test key.


