Numbers and senders

What is E.164 phone number format?

E.164 is the international numbering plan that writes any phone number as a country calling code followed by the national number.

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, 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 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 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 covers the accepted forms, and what is a virtual phone number covers what a number can do once you hold it.

In short

  1. It is an ITU recommendation, not a formatting convention.

    ITU-T E.164 defines the number structure for eight categories of international numbers, including one for machine-to-machine services.

  2. The plus sign is notation, not a digit.

    It marks what follows as an international number rather than something to dial, which is why the digits are the part that has to be right.

  3. Do not validate by length.

    Google's number library reports a fifteen-digit guidance from the ITU standard and says it is not followed by all countries.

  4. A number with no country code is not an E.164 number.

    Bird rejects a national-only number rather than guessing which country it belongs to. Store the country code with it.

Put it into practice.

Continue with the documentation, guides and examples for this topic. Resources are in English.

Get an implementation brief

Build on the same network.

A test API key is yours immediately. Production unlocks when you add a payment method and verify a sender.

Starten Sie mit einem Kanal.
Fügen Sie die anderen hinzu, wenn Sie bereit sind.

Ein Test-API-Key steht Ihnen sofort zur Verfügung. Der Produktivzugang wird freigeschaltet, sobald Sie eine Zahlungsmethode hinzufügen und einen Absender verifizieren.

Sie nutzen Claude Code, Cursor oder Codex? Kopieren Sie einen Setup-Prompt und Ihr Agent installiert die Bird CLI und Skills für Sie. Wählen Sie Ihren:

Cursor