# Phone Number (E.164)

Key: `identity.person.phone_e164`

International phone number in strict E.164 format: plus sign followed by country code and subscriber number, digits only, no formatting. Maximum 15 digits total.

Page: <https://meridian.online/docs/projects/finetype/types/identity/person/phone_e164>

Samples: `+61412345678`, `+14155552671`, `+442071234567`, `+33142685300`, `+8613800138000`

## Background

### Origin

E.164 is an ITU-T Recommendation titled The international public telecommunication numbering plan.[[1]](https://www.itu.int/rec/T-REC-E.164) The ITU lists the Recommendation as replacing the former E.163 numbering plan.[[1]](https://www.itu.int/rec/T-REC-E.164) The earliest version in the ITU's catalogue, dated 11/88, was titled Numbering plan for the ISDN era.[[1]](https://www.itu.int/rec/T-REC-E.164) That 1988 version was also carried under the alias numbers I.331 and Q.11bis.[[1]](https://www.itu.int/rec/T-REC-E.164) The first issue of E.164 was published in 1988 in Blue Book Fascicle II.2.[[2]](https://en.wikipedia.org/wiki/E.164) The version dated 05/97 took the current title, The international public telecommunication numbering plan.[[1]](https://www.itu.int/rec/T-REC-E.164) The version of E.164 in force, according to the ITU's catalogue, is dated 02/26.[[1]](https://www.itu.int/rec/T-REC-E.164)

Plan-conforming telephone numbers are limited to only digits and to a maximum of fifteen digits.[[2]](https://en.wikipedia.org/wiki/E.164)[[3]](https://www.twilio.com/docs/glossary/what-e164) Before 1997, only twelve digits were allowed.[[2]](https://en.wikipedia.org/wiki/E.164) The specification divides the digit string into a country code of one to three digits and a subscriber number.[[2]](https://en.wikipedia.org/wiki/E.164) A number written with a leading plus sign is meant to be dialled with the caller's international call prefix in place of the plus.[[2]](https://en.wikipedia.org/wiki/E.164)[[4]](https://github.com/google/libphonenumber/blob/master/FALSEHOODS.md) The ITU-T notation standard E.123 uses the plus sign as an international prefix symbol, immediately followed by the country code.[[5]](https://en.wikipedia.org/wiki/E.123) E.123 recommends that spaces separate the country code, area code and local number in international notation.[[5]](https://en.wikipedia.org/wiki/E.123) In practice, the compact plus-and-digits form is best read as a storage convention, not a layout meant for human readers. (Meridian's view)

### Use

Google's libphonenumber offers an E164 output format alongside INTERNATIONAL and NATIONAL formats.[[6]](https://github.com/google/libphonenumber/blob/master/README.md) In libphonenumber's README, a Swiss number shown nationally as 044 668 18 00 is formatted in E164 as +41446681800.[[6]](https://github.com/google/libphonenumber/blob/master/README.md)

libphonenumber's notes point out that in Italy the leading zero has been part of the number since 1998, so it is kept after the country code, as in +39012345.[[4]](https://github.com/google/libphonenumber/blob/master/FALSEHOODS.md) libphonenumber also notes that valid numbers longer than fifteen digits have been assigned in Germany.[[4]](https://github.com/google/libphonenumber/blob/master/FALSEHOODS.md) Treat the fifteen-digit ceiling as the standard's rule rather than a guarantee about every number in a real file. (Meridian's view)

The country calling code +1 is shared by the USA, Canada and several Caribbean islands.[[4]](https://github.com/google/libphonenumber/blob/master/FALSEHOODS.md) Russia and Kazakhstan share the country calling code +7.[[4]](https://github.com/google/libphonenumber/blob/master/FALSEHOODS.md) So a country code tells you a numbering zone, not reliably a country, and still less where the person lives. (Meridian's view)

libphonenumber warns never to store phone numbers as an int or any other numeric data type.[[4]](https://github.com/google/libphonenumber/blob/master/FALSEHOODS.md)

Twilio's explainer notes that a regular expression cannot guarantee a match with a valid number.[[3]](https://www.twilio.com/docs/glossary/what-e164)

OpenID Connect Core recommends E.164 as the format of the phone\_number claim.[[7]](https://openid.net/specs/openid-connect-core-1_0.html) Its own examples of that claim, such as +1 (425) 555-1212, include spaces and parentheses.[[7]](https://openid.net/specs/openid-connect-core-1_0.html) When phone\_number\_verified is true, OpenID Connect Core says the phone\_number claim must be in E.164 format.[[7]](https://openid.net/specs/openid-connect-core-1_0.html) Because even specifications that name E.164 sometimes show spaced or bracketed examples, normalise to the plus-and-digits form before comparing or joining phone columns. (Meridian's view)

### Where you'll meet it

Twilio's Messages API describes the recipient's phone number for SMS and MMS as being in E.164 format.[[8]](https://www.twilio.com/docs/messaging/api/message-resource) Twilio's Messages API also describes the sender's Twilio phone number as being in E.164 format.[[8]](https://www.twilio.com/docs/messaging/api/message-resource) Amazon Cognito requires a user's phone number to start with a plus sign followed immediately by the country code.[[9]](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-attributes.html) Amazon Cognito accepts only the plus sign and digits in a phone number, and asks for parentheses, spaces and dashes to be removed first.[[9]](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-attributes.html) Amazon Cognito gives +14325551212 as an example of the format for a United States number.[[9]](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-attributes.html)

## Sources

1. [E.164 : The international public telecommunication numbering plan](https://www.itu.int/rec/T-REC-E.164) — catalogue entry
2. [E.164 - Wikipedia](https://en.wikipedia.org/wiki/E.164) — secondary source
3. [What is E.164? \| Twilio](https://www.twilio.com/docs/glossary/what-e164) — secondary source
4. [libphonenumber/FALSEHOODS.md at master · google/libphonenumber · GitHub](https://github.com/google/libphonenumber/blob/master/FALSEHOODS.md) — secondary source
5. [E.123 - Wikipedia](https://en.wikipedia.org/wiki/E.123) — secondary source
6. [libphonenumber/README.md at master · google/libphonenumber · GitHub](https://github.com/google/libphonenumber/blob/master/README.md) — documentation
7. [Final: OpenID Connect Core 1.0 incorporating errata set 2](https://openid.net/specs/openid-connect-core-1_0.html) — standard
8. [Messages resource \| Twilio](https://www.twilio.com/docs/messaging/api/message-resource) — organisation
9. [Working with user attributes - Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-attributes.html) — organisation
