A phone number written for someone standing in the same country is ambiguous everywhere else. The same digits mean a different number depending on whether a leading zero or a country calling code is present. E.164 removes the ambiguity by fixing one written form.

## What does the standard actually define?

The structure of international numbers, in eight separate categories.

[Recommendation ITU-T E.164](https://www.itu.int/ITU-T/recommendations/rec.aspx?rec=E.164&lang=en), from the International Telecommunication Union, the UN agency that administers the numbering plan, fixes both the digit structure and the routing analysis for each category of international number:

> Recommendation ITU-T E.164 provides the number structure and functionality for the eight categories of numbers used for international public telecommunication:

Those categories cover more than country numbers. Geographic areas are one of the eight, alongside global services, other global services, global satellite services, networks, groups of countries, resources for trial, and services and applications for the Internet of things and machine-to-machine traffic. It also supplies the name for the numbers themselves:

> Annex A provides additional information on the structure and function of international public telecommunication numbers (hereafter referred to as "international E.164 numbers").

## What does a correctly written number look like?

A country calling code, then the national number, and nothing else.

`+31612345678` is a Dutch mobile number. The `31` is the country calling code and `612345678` is the national number. What is absent matters as much as what is present: no spaces, no hyphens, no brackets, no leading zero from the national dialing convention, and no international access prefix such as `011` or `00`.

The leading `+` is notation rather than a digit. It tells whatever reads the string that an international number follows. Nobody dials it. So store the digits. Treat the punctuation as presentation.

## How long can a number be?

Long enough that you should not check.

The readable source states this more narrowly than the rule is usually quoted. [Google's libphonenumber FAQ](https://github.com/google/libphonenumber/blob/master/FAQ.md) puts the fifteen-digit figure on the national part alone, and says countries do not all observe it:

> We support parsing and storing numbers from a minimum length of two digits to a maximum length of 17 digits currently (excluding country calling code). The ITU standard says the national significant number should not be longer than fifteen digits, but empirically this has been proven not to be followed by all countries.

So a validator that rejects anything over fifteen digits will reject real numbers.

The practical rule is to parse rather than measure. A library or a lookup answers whether a number sits in an assignable range, which a length comparison cannot. [What does phone number validation check](/explained/numbers/what-does-phone-number-validation-check) covers what each kind of check establishes.

## What forms does Bird accept?

The country code and national number, with the punctuation optional.

You send the country calling code followed by the national number. How you mark the international part is deliberately relaxed. The leading `+` is optional and `00` works in its place, so `+31612345678`, `31612345678` and `0031612345678` all name the same number.

What it will not do is guess. A number written for dialing inside one country, with no country code, is rejected rather than assumed to belong to any particular country. A form that collects a national number without also collecting the country produces exactly that rejection. Capture both together.

When you buy a number, the value to send is the exact one inventory returned rather than a reformatted copy of it. The [lookup guide](/docs/guides/lookup/phone-numbers) covers the accepted forms, and [what is a virtual phone number](/explained/numbers/what-is-a-virtual-phone-number) covers what a number can do once you hold it.

## Related resources

- [SMS numbers](/products/sms/numbers) (product)
- [Number types](/docs/guides/numbers/number-types) (docs)

[Get an implementation brief](/learn/workspace?topic=phone-numbers)
