https://a.storyblok.com/f/270183/1368x665/0e228316b7/what-is-e164.png

Qu'est-ce que le format E.164 ?

Publié le October 23, 2024

Temps de lecture : 4 minutes

Cet article a été mis à jour en juin 2026

E.164 est une norme internationale qui définit un système de numéros de téléphone garantissant que chaque utilisateur dans le monde dispose d'un numéro de téléphone unique et leur permettant de se connecter les uns aux autres pour passer des appels téléphoniques et envoyer des messages. En conséquence, la norme simplifie les appels internationaux et réduit le risque de composer un mauvais numéro.

Selon la norme norme E.164il existe différentes façons de spécifier un numéro de téléphone : zones géographiques, services globaux, réseaux, etc. Dans cet article, nous utiliserons la représentation standard pour les zones géographiquescar c'est le format utilisé dans les API de Vonage.

Le format E.164

Les numéros de téléphone E.164 contiennent un maximum de 15 chiffres, à l'exclusion du signe de tête. + et suivent le format suivant :

[indicatif de pays] [indicatif national de destination] [numéro d'abonné].

où :

  • Code pays (CC) correspond aux indicatifs internationaux codes d'appel internationaux des pays (1 à 3 chiffres). Par convention, les numéros de téléphone internationaux sont représentés en faisant précéder l'indicatif du pays d'un signe plus (+).

  • Code national de destination (NDC) identifie une zone, une région ou un réseau spécifique à l'intérieur du pays.

  • Le numéro d'abonné (SN) est le numéro de téléphone individuel attribué à l'utilisateur. La longueur du NDC et du SN doit être égale à 15 moins la longueur du CC.

Exemples

États-Unis

Le numéro de téléphone 212 123 1234 peut être représenté au format E.164 par +12121231234, où :

  • +1 est l'indicatif de pays pour les États-Unis.

  • 212 est le NDC.

  • 1231234 est le numéro d'abonné.

Royaume-Uni

Le numéro de téléphone 020 1234 5678 peut être représenté au format E.164 par +442012345678, où :

  • +44 est l'indicatif de pays pour le Royaume-Uni.

  • 20 est le NDC pour Londres.

  • 12345678 est le numéro d'abonné.

Espagne

Le numéro de téléphone 91 234 5678 peut être représenté en E.164 par +34912345678, où :

  • +34 est l'indicatif de pays pour l'Espagne.

  • 91 est le NDC pour Madrid.

  • 2345678 est le numéro d'abonné.

Allemagne

Le numéro de téléphone 030 12345678 peut être représenté en E.164 par +493012345678, où :

  • +49 est l'indicatif de pays pour l'Allemagne.

  • 30 est le NDC pour Berlin.

  • 12345678 est le numéro d'abonné.

Pourquoi l'E.164 est-il important ?

Nombre de nos API utilisent des numéros de téléphone conformes à la norme E.164. En particulier, les API de réseau attendent des consommateurs d'API qu'ils respectent ce format lorsqu'ils appellent certains points d'extrémité.

Par exemple, l Identity Insights API Identity Insights accepte le numéro de téléphone de l'abonné au format E.164. Elle renvoie des informations telles que le fait de savoir si la carte SIM a été récemment liée à ce numéro, ainsi que l'opérateur d'origine et l'opérateur actuel.

Comment valider un numéro de téléphone E.164 ?

En tant que développeurs, il est essentiel de s'assurer que les données saisies par l'utilisateur sont correctes. Il s'agit notamment d'assainir, de valider et de confirmer que le numéro de téléphone respecte le format E.164 avant d'effectuer tout appel à l'API. Cela nous fera gagner du temps et de la bande passante.

Une solution consiste à utiliser l'une des bibliothèques existantes pour aider à valider les numéros de téléphone.

Il peut être utile de vérifier le phone si vous codez en JavaScript. L'exemple suivant montre la validation d'un numéro de téléphone :

const {phone} = require('phone');

phone('+1(817) 569-8900', {country: 'USA'}); 

/* 
{  isValid: true, 
    phoneNumber: '+18175698900', 
    countryIso2: 'US', 
    countryIso3: 'USA', 
    countryCode: '+1'
}
/*

Si vous êtes un programmeur Python, phonenumbers est votre bibliothèque. Voici un exemple :

import phonenumbers

my_number = phonenumbers.parse("+34911234567", "ES")
print(phonenumbers.is_valid_number(my_number)) # True

Vous pouvez également créer votre propre validateur à l'aide d'expressions régulières. Selon le langage des expressions régulières, quelque chose comme :

^\+?[1-9]\d{1,14}$

Le code Python suivant utilise cette expression régulière pour valider certaines données d'entrée :

import re

def validate_e164(phone_number):
    pattern = r'^\+?[1-9]\d{1,14}$'
    return bool(re.match(pattern, phone_number))

# Test the function
test_numbers = [
    "+14155552671",      # Valid E.164 number (US)
    "+442071838750",     # Valid E.164 number (UK)
    "+493012345678",     # Valid E.164 number (Germany)
    "+34916543210",      # Valid E.164 number (Spain)
    "1234567890",        # Invalid (missing +)
    "+1234567890123456"  # Invalid (too long)
]

for number in test_numbers:
    print(f"{number}: {validate_e164(number)}")

Prenez contact !

Dans cet article, nous avons exploré le format de numéro de téléphone E.164, sa structure et plusieurs approches pour valider les numéros de téléphone avant d'envoyer des demandes aux API de Vonage. Dans une prochaine étape, vous pourriez explorer l'API Vonage Identity Insights ou d'autres API de réseau qui reposent sur des numéros au format E.164.

Vous avez une question ou souhaitez partager ce que vous construisez ?

Restez connecté et tenez-vous au courant des dernières nouvelles, astuces et événements concernant les développeurs.

Partager:

https://a.storyblok.com/f/270183/405x400/2b811a162d/alvaro-navarro.jpg
Alvaro NavarroAnciens de Vonage

Alvaro est un ancien membre de l'équipe Vonage. Il y occupait le poste de « developer advocate », spécialisé dans les API réseau. Il est passionné par l'expérience développeur, les API et l'open source. En dehors du travail, on le retrouve souvent en train d'explorer des boutiques de bandes dessinées, d'assister à des festivals de science-fiction et d'horreur, ou de bricoler des constructions avec ces célèbres petites briques en plastique.