E.164: How to Write a Phone Number Any System Will Accept
What is E.164?
E.164 is the international standard that defines how a telephone number is written so that any network anywhere in the world can route it without knowing where the caller is. It is published by the International Telecommunication Union and it is the reason a number beginning with a plus sign works from any country.
The rule is short. An E.164 number is:
- a leading
+, - the country calling code (1 to 3 digits),
- the national number,
- with a total of at most 15 digits after the plus,
- and no spaces, brackets, hyphens or dots.
+14155552671 is E.164. +442071838750 is E.164. (415) 555-2671 is not, and neither is 020 7183 8750.
The standard is officially ITU-T Recommendation E.164, and the country codes it assigns are the ones every phone system in the world uses.
Why does every form ask for this format?
Because a number written in local convention is ambiguous, and a number in E.164 is not.
Consider 020 7183 8750. In the United Kingdom that is a London number. Written that way it carries no indication of which country it belongs to, and the leading zero is a trunk prefix — a dialling instruction meaningful only inside the UK, not part of the number itself. Handed to a system in another country it is unroutable.
The same digits in E.164 are +442071838750: unambiguous, self-contained, and identical whether the call originates in London, Lagos or Lima. That is the entire value of the standard, and it is why banks, airlines, payment processors, two-factor authentication systems and messaging platforms all insist on it.
There is a second, less obvious reason. E.164 gives every telephone number on Earth exactly one canonical string. A database that stores numbers in local format has to treat 0207 183 8750, 020-7183-8750 and +44 20 7183 8750 as potentially the same customer. A database that stores E.164 does not, because there is only one way to write it.
How to convert a local number to E.164
Three steps, and the middle one is where people go wrong.
- Find the country calling code.
+1for the United States and Canada,+44for the United Kingdom,+91for India,+49for Germany,+7for Russia and Kazakhstan. Every country's code is listed on the area codes section. - Remove the trunk prefix. Most countries put a digit — usually
0, sometimes8— in front of a number when it is dialled domestically. It is a routing instruction, not part of the number, and it must be deleted before the country code goes on. This is the single most common mistake. - Join them with a leading plus, and remove every space and separator.
| Country | Written locally | Trunk prefix | E.164 |
|---|---|---|---|
| United Kingdom | 020 7183 8750 | 0 | +442071838750 |
| Germany | 030 901820 | 0 | +4930901820 |
| India | 022 2202 4000 | 0 | +912222024000 |
| Australia | (02) 9374 4000 | 0 | +61293744000 |
| Russia | 8 495 123-45-67 | 8 | +74951234567 |
| United States | (415) 555-2671 | none | +14155552671 |
| Mexico | 55 1234 5678 | none since 2019 | +525512345678 |
The United States and Canada have no trunk prefix — the "1" people dial before a long-distance number is the country code itself, which is why a US number needs nothing removed. Mexico abolished its trunk prefix and its separate mobile prefix in August 2019, so guidance written before then is wrong.
If you would rather have it checked than reason it out, paste the number into the phone number validator and it will identify the country, the expected length and whether the leading digits mark it as mobile or landline.
The five mistakes that break a conversion
Each of these produces a number that looks plausible and does not work.
Keeping the trunk prefix. +44 020 7183 8750 is the most common error in the world. The 0 must go.
Dropping a leading zero that is part of the number. The opposite error, and it happens in countries where the national number legitimately begins with a zero after the trunk prefix is removed. Italy is the classic case: Italian fixed numbers keep their leading 0 in international format, so Rome's 06 1234567 is +3906 1234567, not +396 1234567. Italy is the exception people trip over precisely because everywhere else the rule is the reverse.
Including the exit code as well as the plus. +01144… is not a number. It is 00 and + doing the same job twice.
Using +1 for anything in North America without checking the area code. The +1 country code is shared by the United States, Canada and twenty Caribbean nations. +1 876 is Jamaica and +1 242 is the Bahamas, and both are priced very differently from a US number. The phone number validator resolves which country a +1 number actually belongs to.
Storing the number in a numeric column. Covered below, and it is unrecoverable.
What about numbers written with letters?
Numbers like 1-800-FLOWERS are a North American marketing convention that maps letters to keypad digits — ABC on 2, DEF on 3, and so on. They are not a different kind of number; they are the same digits written memorably.
Two things to know. They only work on a keypad laid out to that mapping, which is standard in North America and not universal elsewhere. And a phone number field will not translate them for you — convert to digits before storing or dialling. 1-800-FLOWERS is +18003569377.
What E.164 does not include
Three things are frequently mistaken for part of the number and are not.
The exit code. 00 in most of the world, 011 in the United States and Canada, 810 in a few countries. This is what you dial instead of the plus sign when your phone or handset does not support it. It belongs to the caller's country, not the number's, so it never appears in E.164. +44 and 01144 are the same destination dialled from two different places.
The extension. An internal extension behind a switchboard is dialled after the call connects, using tones, and is not part of the E.164 number. Systems that need to store one keep it in a separate field. See dialling extensions and phone menus for how to send one automatically.
Formatting. Spaces, hyphens, brackets and dots are display conventions. +44 20 7183 8750 is a human-readable presentation of +442071838750; the standard form has none of them.
Is a longer number always a real number?
No, and the 15-digit ceiling is often misread. E.164 caps the total at 15 digits after the plus, but almost no country uses all 15. National numbers are typically 8 to 11 digits, so a complete international number is usually 10 to 13 digits including the country code.
Length is a useful but imperfect validity check. Each country publishes a numbering plan that specifies how long numbers are and which prefixes are in use, and a number outside those bounds is invalid. But length alone cannot tell you whether a number is assigned — whether there is a real subscriber on the end of it. Only placing a call or querying a carrier database can do that, and no offline validator, including ours, claims otherwise.
Does E.164 tell me the carrier or whether it is a mobile?
Historically the prefix told you both. Today it reliably tells you neither.
The prefix ranges within a national numbering plan were allocated to specific operators and to specific service types, so +447… marked a UK mobile and the digits after it identified the network. Then number portability arrived and let subscribers keep their number when changing operator, which broke the operator half of that mapping permanently in most of the world.
The mobile-versus-landline distinction survives better, because portability is usually restricted to moving between operators of the same type. A number that starts in a mobile range almost always stays in one. It is a strong signal, not a guarantee — and it matters for pricing, since mobile and landline are quoted at different rates in most countries. Number portability explained covers what remains reliable.
Storing numbers properly
If you are building anything that keeps telephone numbers, three rules save a great deal of later pain.
Store E.164, display local. Keep the canonical string in the database and format it for the reader at the moment you show it. The reverse — storing what the user typed — produces a table where the same person appears three times.
Store it as text, never as a number. An integer column silently destroys the leading plus, and in any country with a trunk prefix it destroys the leading zero too. This is a genuinely common data loss bug and it is unrecoverable after the fact.
Ask for the country separately when collecting a number, or default it from a known signal. A form that accepts a bare local number and guesses the country will guess wrong for exactly the users who most need it to be right — people abroad.
Bottom line
E.164 is a plus sign, a country code, and the national number with its trunk prefix removed, written as a single unspaced string of at most 15 digits. +442071838750, not 020 7183 8750.
Converting correctly comes down to one step people skip: delete the leading trunk digit — the 0 in the UK, Germany, India and Australia, the 8 in Russia — before adding the country code. Exit codes like 00 and 011 are never part of the number, extensions are never part of the number, and formatting characters are never part of the number. Store the canonical form as text, show whatever local format your reader expects, and every downstream system will route it without asking where you are.
Try Telvio for your next call
Download free. First minute included, no registration needed.
Download TelvioSources and citation
Telvio rates on this page are read from our own published tariff at build time and were last rebuilt on August 7, 2026. Country codes, exit codes and area codes come from published national numbering plans. Roaming charges, calling-card prices and competitor rates are third-party figures and are labelled where they appear.
Tleugazin, M. (2026). E.164: How to Write a Phone Number Any System Will Accept. Telvio. https://telvio.app/guide/e164-phone-number-format/
Written by Merey Tleugazin