MeridianMERIDIAN

Phone Number (E.164)

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.

Worked samples

DuckDB 1.5.5 · finetype 0.6.64

ValueAs VARCHARcountry_codesubscriber
+61412345678+6141234567861412345678
+14155552671+1415555267114155552671
+442071234567+442071234567442071234567
+33142685300+3314268530033142685300
+8613800138000+86138001380008613800138000
Personal data
Yes — treat as PII

Shape

Length 8 to 16 characters.

Pattern
^\+[1-9]\d{6,14}$
ValueLengthShape
+6141234567812matches
+1415555267112matches
+44207123456713matches
+3314268530012matches
+861380013800014matches
6141234567811rejected: first character dropped

Told apart

1 of the 13 other person types accept every one of these samples on shape alone.

E.164 is digits-only with mandatory + prefix.

Background

Origin

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

Plan-conforming telephone numbers are limited to only digits and to a maximum of fifteen digits.[2][3] Before 1997, only twelve digits were allowed.[2] The specification divides the digit string into a country code of one to three digits and a subscriber number.[2] 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][4] The ITU-T notation standard E.123 uses the plus sign as an international prefix symbol, immediately followed by the country code.[5] E.123 recommends that spaces separate the country code, area code and local number in international notation.[5] 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] In libphonenumber's README, a Swiss number shown nationally as 044 668 18 00 is formatted in E164 as +41446681800.[6]

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] libphonenumber also notes that valid numbers longer than fifteen digits have been assigned in Germany.[4] 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] Russia and Kazakhstan share the country calling code +7.[4] 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]

Twilio's explainer notes that a regular expression cannot guarantee a match with a valid number.[3]

OpenID Connect Core recommends E.164 as the format of the phone_number claim.[7] Its own examples of that claim, such as +1 (425) 555-1212, include spaces and parentheses.[7] When phone_number_verified is true, OpenID Connect Core says the phone_number claim must be in E.164 format.[7] 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] Twilio's Messages API also describes the sender's Twilio phone number as being in E.164 format.[8] Amazon Cognito requires a user's phone number to start with a plus sign followed immediately by the country code.[9] 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] Amazon Cognito gives +14325551212 as an example of the format for a United States number.[9]

Detection notes

ITU-T E.164 canonical form. Distinct from phone_number which allows formatting variations (spaces, hyphens, parentheses). E.164 is digits-only with mandatory + prefix. Max 15 digits after +.

Use it

CLI · DuckDB
$ finetype infer -i "+61412345678" --mode column
→ identity.person.phone_e164

SELECT ft_infer('+61412345678');
-- → 'identity.person.phone_e164'
Cast expression
CAST({col} AS VARCHAR)

Schema

https://meridian.online/schemas/identity.person.phone_e164 · Frictionless type string

finetype taxonomy identity.person.phone_e164 -o json-schema

Aliases

e164international_phone

Type Registry