What is E.164? The ITU Phone Number Standard Explained (2026)
E.164 Format Converter
Default country (used when the number has no “+”): change it in the country selector at the top of the page.
If you have ever integrated Twilio, WhatsApp, Stripe, or Salesforce, you have hit the same docs note: "phone numbers must be in E.164 format." Most developers learn the format by example (+15551234567) and move on. But E.164 is a real published standard with structural rules, length limits, and edge cases — and understanding it pays off the first time you debug a SMS delivery failure or deduplicate a 100k-row contact list.
This guide explains what E.164 is, where it comes from, the exact structure rules, and how it relates to the other phone-number formats you will encounter. If you just need to convert a number, scroll up — the E.164 converter at the top of this page handles single numbers and bulk lists. If you want to compare E.164 against the human-readable international format, see the dedicated E.164 vs international format guide.
E.164 in One Sentence
E.164 is the ITU-T standard that defines a globally unique phone-number representation: a + followed by a country calling code and a national number, with a maximum of 15 digits and no spaces, dashes, or parentheses.
That is the entire definition. Everything else in this post is detail on top of that.
The Standard Itself
E.164 is published as ITU-T Recommendation E.164 by the International Telecommunication Union's Telecommunication Standardization Sector. The full title is The international public telecommunication numbering plan. The standard:
- Defines the maximum number length (15 digits)
- Allocates country calling codes (
+1,+44,+33, etc.) - Specifies the structure of the national number portion
- Coordinates with companion recommendations:
- E.123 — notation conventions (international, national, and local notation for human reading)
- E.161 — keypad mapping
- E.214 — numbering for mobile roaming
The current edition was published in November 2010, but the core structure traces back to the early 1980s. ITU-T Study Group 2 maintains it; new country code allocations and changes appear in the ITU-T Operational Bulletin.
The Three-Part Structure
Every E.164 number has the same logical structure:
+ CC NDC SN
+ 1 212 5551234
+ 44 7911 123456
+ 971 50 1234567
- CC — Country Calling Code, 1 to 3 digits. Allocated by the ITU.
- NDC — National Destination Code. In landline numbers this is usually an area code; in mobile numbers it is a mobile network code or mobile area.
- SN — Subscriber Number. The unique identifier inside that NDC.
The combination CC + NDC + SN must not exceed 15 digits.
Country Calling Codes (CC)
Country codes were originally allocated by world zone:
| Zone | Codes | Examples |
| ---- | ----------- | ------------------------------------------- |
| 1 | +1 | US, Canada, Caribbean |
| 2 | +20–+29 | Egypt (+20), South Africa (+27) |
| 3, 4 | +30–+49 | Greece (+30), UK (+44), Germany (+49) |
| 5 | +50–+59 | Mexico (+52), Brazil (+55) |
| 6 | +60–+69 | Malaysia (+60), Australia (+61) |
| 7 | +7 | Russia, Kazakhstan |
| 8 | +80–+89 | Japan (+81), South Korea (+82) |
| 9 | +90–+99 | Turkey (+90), India (+91), UAE (+971) |
Codes can be 1, 2, or 3 digits — there is no overlap because the CC is read left-to-right until a unique allocation is matched. The full list appears in ITU-T E.164 Annex A (the country code listing) and ITU-T Operational Bulletin updates.
National Destination Code (NDC)
The NDC is what most non-technical users call the "area code." In E.164 it can be:
- A geographic area code (US
212for Manhattan, UK020for London — note the leading 0 is not part of the international form) - A mobile network code (UK
7911covers mobile) - A non-geographic service prefix (US
800for toll-free)
NDC length varies by country and number type. Some countries (Italy, Belgium) have variable-length NDCs.
Subscriber Number (SN)
The SN is the number assigned to a specific subscriber line within the NDC. It must be unique inside that NDC but not across NDCs — 212-555-1234 and 415-555-1234 are different subscribers in the same country.
The 15-Digit Maximum
E.164 caps the total at 15 digits after the +, including the country calling code. This limit was set when the standard was modernised to accommodate growing networks while keeping numbers within hardware and signalling system constraints.
Examples:
| Country | Example E.164 | Total Digits |
| -------------------- | ---------------- | ------------ |
| United States | +15551234567 | 11 |
| United Kingdom | +447911123456 | 12 |
| Germany | +49301234567 | 11 |
| China | +8613812345678 | 13 |
| United Arab Emirates | +971501234567 | 12 |
No country uses the full 15 digits in routine subscriber numbers, but the budget exists for premium services, machine-to-machine numbering, and future expansion.
Why E.164 Exists
Before the international numbering plan, phone systems were national: a number was meaningful only inside its country. As subscriber direct dialling went international in the 1960s and 70s, networks needed:
- A unique global address for every subscriber line — so a US switch could route a call to a Japanese subscriber
- A length budget that signalling systems (SS7 then, SIP / Diameter now) could carry
- A delegation mechanism so countries could administer their own numbers without coordinating each individual assignment with the ITU
E.164 solved all three at once. The same scheme later became the foundation for SMS routing, GSM mobile networks, VoIP, and modern messaging APIs.
Related Tools
The + Prefix
The + symbol in +15551234567 is more than cosmetic — it is the ITU-T E.123 way of writing "prefix this with the international access digits appropriate for the calling location." When a US handset sees +44, the user agent dials 01144. When a UK handset sees +1, it dials 001.
In data systems:
- Storage — most modern databases store the
+because it is the canonical written form - APIs — Twilio, WhatsApp, Stripe, AWS End User Messaging all expect the
+ - WhatsApp
wa.melinks — exception: these strip the+because the URL itself implies international format. So+15551234567becomeswa.me/15551234567
When in doubt, store with the +. You can always strip it; reattaching it requires inferring the country code, which is harder.
Where E.164 Is Required
| System | E.164 required? |
| --------------------------- | -------------------------------------- |
| Twilio (SMS, Voice, Verify) | Yes |
| WhatsApp Business API | Yes (digits-only after + is implied) |
| Stripe Identity | Yes |
| Salesforce Phone field | Recommended |
| HubSpot | Recommended |
| MS Dynamics | Recommended |
| GSMA SS7 routing | Yes (it is E.164) |
If you are integrating with telephony, identity, or compliance systems, E.164 is non-negotiable. For internal CRMs, E.164 is best practice because it is the only format that prevents deduplication failures across countries.
Common E.164 Mistakes
Including a leading 0 from the national format
Many countries use a leading 0 (the "trunk prefix") for domestic dialling — UK 07911 123456, Germany 0301234567, France 0123456789. The leading 0 is dropped in E.164:
07911 123456 → +447911123456 (UK)
0301234567 → +49301234567 (Germany)
0123456789 → +33123456789 (France)
Using the IDD prefix instead of +
Numbers written as 0044… or 0114… are mixing the international direct dialling prefix (which differs by country: 00 in most of Europe, 011 in North America) with the international number. E.164 always uses +, never the IDD prefix:
00447911123456 → +447911123456 ✗ wrong → ✓ correct
01115551234567 → +15551234567 ✗ wrong → ✓ correct
Including separators
E.164 is digits only after the +. No spaces, dashes, parentheses, or dots:
+1 (555) 123-4567 → +15551234567
+44 7911 123 456 → +447911123456
The human-readable formatting belongs to E.123 — the companion notation standard — not E.164.
Storing without the +
15551234567 could be a US number (country code 1, area 555, subscriber 1234567) or it could be partial. The + removes the ambiguity. Always store with the + unless you have a hard column-width reason not to.
E.164 vs Other Formats
For a side-by-side comparison with international, national, and local formats, see Phone Number Formats Explained. For the specific distinction between E.164 and the human-readable international format that confuses most developers, see E.164 vs International Format.
Validating E.164 Programmatically
The reference implementation is Google's libphonenumber library, which has ports for Java, JavaScript, Python, Ruby, Go, and C++. The JavaScript port libphonenumber-js is what powers the converter at the top of this page:
import { parsePhoneNumberFromString } from 'libphonenumber-js';
const parsed = parsePhoneNumberFromString('+15551234567');
parsed?.isValid(); // true
parsed?.format('E.164'); // '+15551234567'
parsed?.format('INTERNATIONAL'); // '+1 555 123 4567'
parsed?.country; // 'US'
Naive regex validation (^\+\d{6,15}$) catches structural errors but does not validate that the country code exists or that the NDC is a real allocation. For anything customer-facing, use libphonenumber.
For a worked walk-through of converting numbers from messy real-world formats to E.164, see How to Convert a Phone Number to E.164.
Bottom Line
E.164 is the ITU-T standard that gives every phone-number address in the world a unique, machine-readable form: + followed by country code and national number, max 15 digits, digits only. Use it everywhere you store or route phone numbers — it is the format every modern telephony, messaging, and identity API expects. The free E.164 converter at the top of this page handles the conversion for single numbers or bulk lists, and you can also bookmark the standalone E.164 format converter tool for repeat use.