Sigmera.

What is E.164 phone number format?

Published June 1, 2026 · Last updated: September 2026

E.164 is the international standard for telephone numbers, defined by the ITU. An E.164 number is written as a leading plus sign, a 1-to-3 digit country calling code, and the national number — no spaces or punctuation — for a maximum of 15 digits total. Example: +14155552671. Written without the dot — E164 — it is the same standard; CRMs, SMS gateways, and import screens use both spellings for the identical format.

The structure of an E.164 number

Every valid E.164 number has the same three parts, in the same order, with nothing between them:

  1. 1. The leading plus sign (+). It signals “what follows is a full international number.” The plus is the only non-digit character allowed.
  2. 2. The country calling code. One to three digits — 1 for the US and Canada, 44 for the UK, 49 for Germany.
  3. 3. The national (subscriber) number. The rest of the number, with any national trunk prefix (often a leading 0) removed.

The whole thing, counting the country code and national number but not the plus sign, is capped at 15 digits. There are no spaces, hyphens, dots, or parentheses anywhere.

Examples

CountryHow it's often writtenE.164 form
United States(415) 555-2671+14155552671
United Kingdom020 7946 0958+442079460958
Germany030 901820+4930901820

Notice the UK and German examples: the local leading 0 disappears and is replaced by the country code. That trunk zero is for dialing within the country only and is never part of the E.164 form.

Why CRMs and SMS tools demand it

A number like “555-2671” is meaningless without context — which country, which area? E.164 removes that ambiguity by baking the country code into the number itself, so it means exactly one thing anywhere in the world. That property is why:

  • SMS and voice gateways (Twilio, Vonage, MessageBird) accept E.164 and often nothing else — it is the only format that routes correctly across borders.
  • CRMs and marketing platforms store phones in E.164 so a number deduplicates cleanly and matches the same contact across systems.
  • Validation and lookup APIs expect E.164 input, so storing it that way avoids a conversion step on every call.

Common mistakes to avoid

  • Keeping the national trunk zero after the country code.
  • Leaving spaces, dashes, or parentheses in the stored value.
  • Omitting the plus sign — 14155552671 is ambiguous; +14155552671 is not.
  • Storing numbers without a country code at all, so imports guess wrong.

E164 phone number format by country

The plus sign and the fifteen-digit ceiling are the same everywhere. What changes country to country is the trunk prefix — the digit a local dialler adds in front of an area code — and handling it wrongly is what turns a valid column into a rejected import. Numbering plans fall into three groups, and the ITU’s numbering-resource register is the authority on which country code belongs to which plan.

PatternWhere it appliesWhat to do
No trunk prefixUnited States, Canada, and the rest of the North American Numbering PlanPrepend +1 to the ten digits. Nothing is removed.
Trunk zero, droppedUnited Kingdom, Germany, France, Australia, the NetherlandsDelete the leading 0, then prepend the country code.
Trunk zero, keptItaly — landlinesKeep the 0 and prepend +39. A Rome landline written 06 1234 5678 becomes +390612345678.

Italy is the exception that catches teams out. Its leading zero stopped being a trunk prefix in 1998 and became part of the subscriber number, so the leading zero has to be included when calling from abroad. Strip it the way you would for a German number and the line does not ring. Italian mobile numbers start with a 3 and never carry a zero, so they need no special handling.

This is the practical argument for setting a default country before you normalize a column rather than after. A file of purely national numbers carries no country code to read, so the rule above has to come from somewhere — and picking that default up front is what decides whether the trunk zero is dropped or kept.

How to validate E.164 format

Four rules decide whether a value is well-formed E.164. They are cheap to check and catch most import failures before they happen.

  1. It starts with a plus sign. Not 00, not 011 — those are country-specific ways to dial out, not part of the number.
  2. Everything after the plus is a decimal digit. No spaces, hyphens, dots, parentheses, or extension markers.
  3. The first digit is not zero. No country calling code begins with 0, so a leading zero means a trunk prefix was left in by mistake.
  4. The total is 15 digits or fewer. The ITU numbering plan caps an international number at 15 digits after the plus sign (ITU-T Recommendation E.164), a limit Twilio’s own E.164 reference restates for anyone sending SMS.

There is no universal minimum length, because national numbering plans differ. That is why a length test alone can only tell you a number is too long — never that it is real. Confirming a line actually exists takes a carrier lookup, which is a separate step from formatting.

Running these checks by hand across a few thousand rows is where spreadsheets fall down. The step-by-step Excel and Sheets walkthrough shows the formula route, and preparing a contact list for a HubSpot import shows where the phone column fits in the wider cleanup.

E164 format vs. the other ways a number gets written

One line, four notations. Knowing which column your export landed in tells you what has to change before an importer will take it.

NotationSame US numberWhere it belongs
National(415) 555-2671Printing on a business card. No country code, so it is ambiguous outside the US.
International dial string011 1 415 555 2671Dialing from one specific country. The 011 (or 00 in much of Europe) is a local exit code, not part of the number.
E.164 / E164+14155552671Storage and import. The machine form — one plus, digits only, 15 maximum.
tel: URItel:+1-415-555-2671A clickable link on a web page. Wraps the E.164 number so a browser or phone can dial it.

The last row is the one people confuse with E.164 most often. RFC 3966 defines the tel URI as a name for a phone number, and requires a global number in it to carry the leading plus and the country code exactly as E.164 specifies — but it tolerates hyphens as visual separators, which E.164 storage does not. Strip them before the value goes in a CRM field.

Extensions are the other difference. An E.164 number has no room for one; a tel URI carries it in a separate ;ext= parameter. If your export has +1 415 555 2671 x204 in a single cell, the extension needs its own column before the phone column can be normalized.

Why a spreadsheet breaks E.164 numbers

The format is only as durable as the file holding it. Excel and Google Sheets read a phone column as arithmetic unless you tell them otherwise, and two of their defaults destroy a valid E.164 value.

  • The plus sign disappears. In a General cell, a leading + reads as the opening of a formula. Excel evaluates the value and keeps the digits without the sign, so +14155552671 is stored as 14155552671 — ambiguous again, and rejected by anything that requires the international form. Microsoft’s answer to this class of auto-conversion is to format the cells as Text first, or prefix a value with an apostrophe.
  • Long numbers lose their tail. Excel carries a maximum of 15 significant digits, rounds anything past the 15th down to zero, and renders long values as scientific notation like 1.23E+15. E.164 caps a number at exactly 15 digits, so a full-length international number sits on that ceiling with no margin.
  • Trunk zeros vanish before you convert them. A UK number still written as 020 7946 0958 loses its leading zero the moment the column is numeric — and now you cannot tell a trunk prefix from a missing one when you go to add the country code.

Three habits prevent all of it: set the phone column to Text before any data arrives, use the import dialog rather than double-clicking a CSV (the walkthrough on opening a CSV in Excel without breaking it covers the settings), and check that the plus sign survived a round-trip before you hand the file to an importer. A browser tool that reads the CSV as text has nothing to infer in the first place — which is the shortest path to a phone column that arrives intact.

Convert a whole column of messy numbers to E.164 — in your browser, nothing uploaded.

Frequently asked questions

What is the E.164 phone number format?
E.164 is the international telephone numbering standard published by the ITU. An E.164 number starts with a plus sign, followed by a country calling code (1 to 3 digits) and the national subscriber number, with no spaces, dashes, or parentheses. The total length, excluding the plus sign, is at most 15 digits.
Why do CRMs and SMS tools require E.164?
E.164 is globally unambiguous: the country code is built in, so the same number means the same thing everywhere. SMS and voice gateways like Twilio, and CRMs that integrate with them, require E.164 because it is the only format that routes correctly across borders and deduplicates cleanly.
Does E.164 include the leading zero of a local number?
No. Many countries write local numbers with a leading trunk zero, such as 020 7946 0958 in the UK. In E.164 that trunk zero is dropped and replaced by the country code, giving +442079460958. Keeping the zero is one of the most common formatting mistakes.
How do I convert a column of messy numbers to E.164?
Sigmera's clean phone numbers tool formats a whole column to E.164 in your browser. You set the default country for numbers that lack a code, and it strips spacing and punctuation, drops trunk zeros, and adds the plus sign — without uploading your file anywhere.
How many digits can an E.164 number have?
Fifteen. An E.164 number carries at most 15 digits after the plus sign, counting the country calling code and the national number together. There is no fixed minimum — national numbering plans vary — so a length check alone cannot confirm a number is valid, only that it is not too long.
Is E.164 the same as international phone format?
They overlap but are not identical. People write an international number many ways — +1 415-555-2671, 00 1 415 555 2671, (+1) 415.555.2671 — and all of them describe the same line. E.164 is the strict machine form of that idea: one plus sign, then digits only, with no separators and no 00 international prefix.
How do I validate an E.164 number?
Check four things: it starts with a plus sign, everything after it is a decimal digit, the first digit is not a zero (no country calling code begins with zero), and the total is 15 digits or fewer. Those checks catch formatting errors but cannot prove the line exists — only a carrier lookup can do that.
Why does Excel drop the plus sign from my E.164 numbers?
Because a General-formatted cell reads a leading plus as the start of a formula, not as text. Excel evaluates the value and stores the digits without the sign, so +14155552671 comes back as 14155552671. The fix is to format the phone column as Text before the data lands in it, or to prefix the value with an apostrophe, which Microsoft documents as its own workaround for automatic conversion.
Can Excel corrupt a 15-digit E.164 phone number?
Yes, if the column is treated as a number. Excel holds a maximum of 15 significant digits and rounds anything past the 15th down to zero, and it converts long values to scientific notation such as 1.23E+15. A full-length E.164 number sits exactly at that 15-digit ceiling, so a phone column stored as a number is one edit away from a silently truncated tail. Storing the column as text avoids the problem entirely.
Should I store phone numbers in E.164 as text or as a number?
Always as text. E.164 is a string of characters that begins with a symbol, not a quantity you would ever add or average. Numeric storage strips the plus sign, deletes trunk zeros in national numbers you have not converted yet, and risks precision loss at 15 digits. Text storage keeps every character exactly as written, which is what an SMS gateway or CRM import expects.
Is it written E.164 or E164?
Both spellings refer to the same ITU recommendation. The formal name carries the dot — E.164 — because ITU-T recommendations are numbered by series letter and number. In software, field labels, and CRM import screens you will more often see E164 without the dot, simply because a period is awkward in a column name or an API parameter. There is no difference in meaning or in the format itself.
Where does a phone extension go in E.164 format?
Nowhere — E.164 has no extension field. The standard covers the country code and the national subscriber number only, so an extension has to live in its own column or field. If you need one identifier that carries both, RFC 3966's tel URI appends the extension as a separate parameter, as in tel:+14155552671;ext=204. Splitting 'x204' out of the phone cell before you normalize the column avoids an importer treating the extension digits as part of the number.

Sources