E.164 Phone Number Format Explained
Published on October 19, 2026 • 7 min read • Written by SMS OTPS Team
E.164 is the international standard for writing phone numbers. It is the reason a number typed in Karachi can be routed correctly to a handset in London or Los Angeles. If you have ever pasted a number into a sign-up form and had it rejected, or received a verification code hours late because the message took a wrong turn, the format was often the problem.
The rule itself is short: an E.164 number starts with a plus sign, followed by the country code, followed by the national number, with a hard limit of 15 digits and nothing else. No spaces, no dashes, no brackets, no leading zero.

The anatomy of an E.164 number
Take the US example +14155552671. It splits into three parts:
- + marks the number as international.
- 1 is the country code for the United States and Canada.
- 415 555 2671 is the national number, written with no separators: the area code first, then the subscriber number.
The same pattern holds everywhere. A UK number keeps its country code 44 and drops the domestic trunk zero: 07911 123456 becomes +447911123456. A Pakistani mobile like 0300 1234567 becomes +923001234567.
The rules in one list
- Start with + and the country code.
- Never keep the domestic trunk prefix (the leading 0 used for local calls in most countries).
- Use digits only after the plus: no spaces, dashes, dots, or parentheses.
- Stay within 15 digits in total, country code included.
- Do not replace the plus with 00. The double zero is a dialing prefix that only works from some countries; the plus works everywhere.
Country code examples
Country codes are one to three digits, and the local number fills whatever space is left within the 15-digit ceiling. A few common ones:
| Country | Code | E.164 example |
|---|---|---|
| United States / Canada | +1 | +14155552671 |
| United Kingdom | +44 | +447911123456 |
| Pakistan | +92 | +923001234567 |
| India | +91 | +919876543210 |
| United Arab Emirates | +971 | +971501234567 |
| Germany | +49 | +4915112345678 |
The full list of country calling codes lives in our dial codes tool, which is handy when you are working with numbers from a country you do not know by heart.

Why E.164 matters for SMS verification
Verification systems are strict about format because routing is strict about format. When you request a code, the platform hands your number to an SMS gateway, and the gateway expects E.164. A number with a leftover trunk zero or a missing country code either gets rejected at the door or routed nowhere, and you sit there refreshing a code that was never sent.
This applies in both directions. If you are requesting a code on your own number, format it correctly before you blame the app. And if you are renting a number to receive an OTP, copy it exactly as shown, including the plus and country code, into the service you are verifying.
To check a number before you rely on it, the number formatter converts any local or loosely formatted number into clean E.164, and the carrier lookup confirms which network and line type sits behind it.
The mistakes that break delivery
Almost every formatting failure comes from the same handful of habits. Keeping the trunk zero (+4407911...) is the classic one, since most of us learned to dial numbers with it. Writing 00 instead of + is the second; 00 is the exit code for many countries but not all, so the number works from some places and fails from others. Spaces and dashes are the third: fine for humans, rejected by machines. Strip them, keep the plus, and the number works everywhere.