·5 min read·by ByeBouncer

E.164 format: organizing your phone numbers

What the E.164 phone number format is, how to write it, common mistakes such as +54 9, and what it does not tell you about the line or carrier.

phoneE.164formatlatam

E.164 is the standard way to write a phone number so any system reads it the same way: a plus sign, the country code and the national number, with no spaces, dashes or parentheses. If you store phone numbers in a CRM or send them to an API, putting them in E.164 format is the first step. It is a short step: it organizes the data, but says nothing about the line itself.

What the E.164 phone number format is

E.164 is the ITU-T recommendation that defines the international numbering plan. A conforming number contains only digits, at most 15 including the country code, and is written with a leading +. The country code is one to three digits and the rest is the national number, without the leading trunk 0 or dialing prefixes such as 00 or 011, which depend on where you call from.

As the user types itLocal parts removed+ country code + number
From what a person types to an E.164 number: drop the local parts, add the country.

For example, a Buenos Aires mobile typed as 011 15-2345-6789 becomes +5491123456789. The numbers in this article are fictional and only serve as examples.

Common mistakes when storing phone numbers

The third one trips up most Latin American data. For the country-specific detail on Argentina, see our guide to Argentine phone numbers.

The country is defined, not guessed

When someone types a number without a +, it has to be interpreted against a reference country, such as the form’s or your market’s. That interpretation country is your decision and should be stored with the number. Do not infer it from the IP address: a person may be traveling, on another provider’s network, or entering a relative’s phone.

What the format tells you and what it does not

A well-formed E.164 number means the structure is right. It does not mean the line exists, is active, belongs to the person who entered it, or will answer a call. It does not tell you whether it has WhatsApp either: ByeBouncer does not check that and does not promise it. A regex that accepts any string of up to 15 digits also does not tell you whether the prefix belongs to a real range in that country.

E.164 formatCarrier, type and networkvs
Format, carrier and mobile network are different questions with different answers.

How to convert a number to E.164 step by step

  1. Remove spaces, dashes, parentheses and any letters or text.
  2. If it starts with the international call prefix (00 or 011, depending on the origin country), replace it with +.
  3. If there is no country code, add it based on the reference country you defined.
  4. Drop the trunk 0 that goes with the area code and, on Argentine mobiles, the 15.
  5. For Argentine mobiles, insert the 9 after +54 and before the area code.
  6. Check that the result has only digits after the + and does not exceed 15.

A numbering library does these steps better than a homemade regex, because it knows each country’s rules and they change over time. Even so, the result is a normalization: if the input had a plausible typo, you will get a well-formed but wrong E.164 number. That is why you should keep the original too.

What to store in your database

That date matters: numbers change carrier through portability and get reassigned, so a carrier or line status obtained months ago may have changed. Deduplicating by E.164 avoids repeated contacts that only differ in how the number was written, but it does not decide which of two records is the right one; that rule belongs to your process.

Where ByeBouncer phone validation fits

ByeBouncer validates the phone number separately from your other data. It normalizes the number to E.164 and compares it against the country’s numbering rules. Depending on the query it also returns the carrier and line type; the mobile network status is an additional, optional query. Each result is a separate data point: your team decides what to do with a landline, an unidentified carrier or an undetermined lookup. There is no overall score and no authenticity decision.

If a number cannot be interpreted, do not discard it without reading the reason: the reference country may be missing or there may be a fixable typo. Keep the original number, the normalized one and the country you used to interpret it.

See how phone validation works →

A practical way to start

Normalize in a single place in your system, always store the E.164 value next to the original, and record the interpretation country. Then decide whether your case needs carrier or line type. You can try it with your own numbers and review each result before integrating.

Create an account and try your own numbers →

Sources reviewed

Related guides