To send SMS through an API in Egypt you need a registered sender ID on the Egyptian networks, numbers in +20 format, and message templates written for Arabic Unicode, where a single SMS holds 70 characters instead of 160. For marketing, Egypt's Personal Data Protection Law No. 151 of 2020 (Articles 17 and 18) requires prior consent, a clear sender identity, a working opt-out and three years of consent records, and its executive regulations, issued in November 2025, start a one-year compliance period.

Last reviewed: 28 October 2026

This article is for developers and product teams adding SMS to an Egyptian app, store or fintech product. Our earlier SMS API Egypt overview shows the basics; here we go deeper on the legal requirements that affect your data model, sender ID registration, number handling across Vodafone, Orange, Etisalat by e& and WE, Arabic segment maths, and a production checklist.

Regulators and laws

Body or lawWhat it covers for SMS
National Telecom Regulatory Authority (NTRA)Licenses the networks and sets the sender ID and content rules that operators apply
Personal Data Protection Law No. 151 of 2020Consent, identification and opt-out for electronic marketing (Articles 17 and 18); licences and permits
Personal Data Protection Center (PDPC)Issues licences and permits, including for electronic direct marketing

What Law 151/2020 requires for marketing SMS

Article 17 prohibits electronic communications for direct marketing unless all of these are true:

  • prior consent has been obtained from the person;
  • the message clearly identifies who it is from;
  • the sender has a valid, accessible address;
  • the message says it is for marketing;
  • there is a clear, easy way to opt out or withdraw consent.

Article 18 adds that the marketing purpose must be clear, the sender must not disclose the person's contact details, and the sender must keep electronic records of consent and any changes for three years from the last message.

The executive regulations were issued on 1 November 2025 by Ministerial Decree No. 816 of 2025. Law firm CMS notes a one-year grace period from that date, a requirement for a specific permit for electronic direct marketing, and recognition of a soft opt-in for existing customers during the grace period. If you send marketing in Egypt, plan for enforcement from November 2026 and check the PDPC's licensing requirements with local counsel.

What this means for your database

Article 18's record-keeping duty translates directly into schema. For each phone number keep: consent status, timestamp, source (form, checkout tick box, keyword), the wording shown, the channel, and every change. Keep the history for at least three years after the last marketing message, and keep transactional permissions separate so an opt-out from offers never blocks an OTP.

Sender ID registration

Egyptian networks require alphanumeric sender IDs to be registered before local traffic is delivered with your brand name. Industry guidance commonly lists a commercial registration certificate, a tax card and a signed authorisation letter for Egyptian companies, and reports that Arabic-script sender IDs and special characters are not accepted, so register a Latin-character name such as NILESTORE. Approval typically takes a few weeks. eSMS Africa handles the submission, and you can build and test on the eSMS default sender in the meantime. See the Egypt sender ID page and our Egypt sender ID article for the current steps and fee.

Networks and number format

Egypt has four mobile operators: Vodafone Egypt, Orange Egypt, Etisalat by e& and WE (Telecom Egypt's mobile service). Mobile numbers are 11 digits locally (01X XXXX XXXX). In E.164 drop the leading 0 and add +20, so 010 1234 5678 becomes +201012345678. The original prefixes were 010 (Vodafone), 011 (Etisalat), 012 (Orange) and 015 (WE), but number portability means a prefix is only a hint. Validate shape, not network, and use delivery reports to see which network handled each message.

Arabic, Franco-Arabic and segment maths

Arabic letters are outside the GSM-7 alphabet, so any Arabic message is sent as Unicode (UCS-2): 70 characters fit in one SMS and longer texts split into 67-character parts. A 140-character Arabic order notice therefore costs three segments, while the same message in English might cost one. Practical tips:

  • Write short Arabic templates and test the character count, including spaces and punctuation.
  • Use Western digits (4521) rather than Arabic-Indic digits if you need the text to be copied into forms; both count the same in Unicode.
  • One Arabic word, or a curly quote pasted from a word processor, turns an English message into Unicode.
  • Many younger Egyptians read Franco-Arabic (Arabic written in Latin letters and numbers, such as "3arabeya"). It fits GSM-7, but keep it for informal brands and test it first.

The Unicode and emoji note explains how billing follows segments.

Code: normalise, count, send

This Python example normalises Egyptian numbers, estimates segments, and sends an Arabic message. The segment function is simplified; the API returns the real count.

import re
import requests

API = "https://sms.esmsafrica.io/api/messages/send"
KEY = "esms_live_your_key"

def to_e164_egypt(raw: str) -> str:
    """01012345678 / +20 10 1234 5678 / 00201012345678 -> +201012345678"""
    digits = re.sub(r"\D", "", raw)
    if digits.startswith("0020"):
        digits = digits[4:]
    elif digits.startswith("20") and len(digits) == 12:
        digits = digits[2:]
    if digits.startswith("0"):
        digits = digits[1:]
    if not re.fullmatch(r"1[0125]\d{8}", digits):
        raise ValueError(f"not an Egyptian mobile number: {raw}")
    return "+20" + digits

def segments(text: str) -> int:
    gsm = all(ord(c) < 128 for c in text)  # simplified check
    single, multi = (160, 153) if gsm else (70, 67)
    n = len(text)
    return 1 if n <= single else -(-n // multi)

text = "متجر النيل: طلبك رقم 4521 في الطريق، التوصيل غدا. للاستفسار 0220000000"
print(segments(text))  # Arabic is sent as Unicode

r = requests.post(API, timeout=10,
    headers={"Authorization": f"Bearer {KEY}"},
    json={"to": to_e164_egypt("010 1234 5678"),
          "text": text,
          "sender_id": "NILESTORE"})
print(r.status_code, r.json())

Use a test key (esms_test_...) while you build; it simulates sends without charge. The full reference is in the HTTP API docs, and the Python guide covers retries and error handling.

OTP in Egypt

For login and payment codes, use eSMS Verify rather than building your own: it generates, sends, rate-limits and checks the code. Keep OTP text short and in English or brief Arabic so it stays in one segment, and put the code early so it shows in the notification preview. See OTP SMS in Egypt and the OTP guide.

Timing and local habits

The Egyptian weekend is Friday and Saturday, and working hours shift during Ramadan, when evening hours after iftar are often busy for shopping. Schedule promotions for when your customers are awake and receptive, and send service messages whenever they are needed. Customers commonly pay through cards, mobile wallets such as Vodafone Cash, Fawry reference codes and InstaPay, so payment reminders should include the exact reference to use.

Pricing

An Egypt SMS starts at EGP 0.8047 ($0.0143) per segment at the entry tier, and EGP 0.7484 at the business tier. Remember that Arabic messages use more segments. Pay as you go from USD 20 by card in USD or crypto; see pricing.

Production checklist

  1. Register a Latin-character sender ID and keep the approval reference.
  2. Store numbers in E.164 (+20) and validate shape on input.
  3. Build consent records that meet Article 18 and keep them three years.
  4. Add the sender identity, marketing label and opt-out to every promotional template.
  5. Check the PDPC licence and electronic marketing permit with counsel.
  6. Count characters in every Arabic template and budget segments.
  7. Handle delivery reports by webhook and retry only on temporary failures.
  8. Use Verify for OTPs and keep them in one segment.

Frequently asked questions

Can my sender ID be in Arabic?

Industry guidance reports that Egyptian networks do not accept Arabic-script sender IDs, so register a Latin-character brand name. The message body can be in Arabic.

Does Law 151/2020 apply to OTPs and order updates?

Articles 17 and 18 cover electronic direct marketing. OTPs and order updates are not marketing, but the general rules on processing personal data still apply, so collect only what you need and keep it secure.

Why does my Arabic message cost more than English?

Arabic is sent as Unicode, which fits 70 characters per SMS instead of 160, so the same message uses more segments.

Do I need a local company to send SMS to Egypt?

Requirements for sender ID registration differ between local and international companies. Tell us where you are registered and we will confirm what the networks need during onboarding.

Sources

See coverage details on the Egypt SMS page and the Egypt SMS API page, or read the Egypt compliance summary. Create an eSMS Africa account to get a test key and start building.