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.

LanguageIn 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 ç
BothPlain 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.

DestinationCodeE.164 exampleMain networksLocal route (USD)International route (USD)
Senegal+221+221 77 123 45 67Orange, Yas, Expresso$0.0113$0.0433
Cote d'Ivoire+225+225 07 12 34 56 78Orange, MTN, Moov$0.0514$0.406
Cameroon+237+237 6 71 23 45 67MTN, Orange, Nexttel, Camtel$0.0514$0.266
DR Congo+243+243 81 234 5678Vodacom, Airtel, Orange, Africell$0.059$0.2591
Morocco+212+212 6 12 34 56 78Maroc Telecom, Orange, Inwi$0.055$0.2219
Madagascar+261+261 34 12 345 67Telma, Orange, Airtel$0.0688$0.784
Angola+244+244 923 123 456Unitel, Africell, Movicel$0.0977$0.196
Mozambique+258+258 84 123 4567Vodacom, Movitel, Tmcel$0.0548$0.462
Cape Verde+238+238 991 23 45CVMovel, 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.

DestinationUTC offsetParis in winter (CET)Paris in summer (CEST)
Cape Verde-12 hours behind3 hours behind
Senegal, Cote d'Ivoire, Mali, Morocco+01 hour behind2 hours behind
Cameroon, Kinshasa, Angola+1Same time1 hour behind
Lubumbashi, Mozambique, Rwanda, Burundi+21 hour aheadSame time
Madagascar+32 hours ahead1 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

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.