Understanding the ITU-T E.164 International Phone Numbering Plan

Telecom Standards • International Routing, Trunk Prefixes & Validation

← Back to All Telecom Guides • Reading time: 6 minutes

What Is the E.164 Standard?

When a software application sends an SMS message or places a voice call across international borders, telecommunication carriers rely on a universal addressing system to route the packet to the correct destination handset. That standard is ITU-T Recommendation E.164, titled The international public telecommunication numbering plan, maintained by the International Telecommunication Union (ITU).

Without a unified numbering architecture, domestic telephone numbers would collide globally. For example, a 10-digit subscriber number in the United Kingdom could easily match a 10-digit subscriber number in India or the United States. E.164 solves this by defining a strict, globally unique hierarchical structure limited to a maximum of 15 digits, typically written with a leading plus sign (+).

Anatomy of an E.164 Phone Number

Every E.164-compliant telephone number consists of three distinct components concatenated together without spaces, dashes, or parentheses:

ComponentLengthDescription & Example
Country Calling Code (CC)1 to 3 digitsIdentifies the destination country or integrated numbering zone (e.g., 1 for NANP/USA/Canada, 44 for the UK, 380 for Ukraine).
National Destination Code (NDC)VariableIdentifies a geographic area code or mobile network range (e.g., 7418 in the UK or 646 in New York).
Subscriber Number (SN)VariableThe unique local line identifier assigned to the individual mobile SIM or virtual endpoint.

Combined, the National Destination Code (NDC) and Subscriber Number (SN) form the National Significant Number (NSN). Under ITU-T E.164 rules, the Country Code plus the National Significant Number may never exceed 15 digits in total.

Why National Trunk Prefixes Are Dropped in E.164

One of the most frequent bugs in international web forms occurs when users or developers confuse a country's domestic trunk prefix with its international format. In many countries—including the United Kingdom, Germany, France, Ukraine, and Croatia—domestic callers dial a leading 0 before the mobile or area code when calling within the same country.

How Software Developers Should Validate Phone Inputs

When building sign-up or verification forms that accept international phone numbers, relying on simple length checks (such as requiring exactly 10 digits) breaks compatibility for users in countries like Denmark (8 digits), China (11 digits), or Germany (10 to 11 digits).

  1. Store Numbers Strictly in E.164 Format: Always normalize user input before saving it to your database or passing it to an SMS gateway API. Strip all whitespace, hyphens, and parentheses, remove any leading international call prefixes (like 00 or 011), strip the national trunk zero if present, and store the canonical string (e.g., +447418342671).
  2. Use Standards-Compliant Parsing Libraries: Libraries such as Google’s open-source libphonenumber maintain up-to-date metadata for every country’s mobile range, length rules, and trunk prefix conventions.
  3. Provide Clear UI Country Selectors: Separating the country dial code dropdown from the national number input field—while automatically stripping a leading 0 if the user types one—eliminates over 90% of formatting failures during SMS delivery.

Related Technical Guides