Data Checker

Accueil Vérifier un numéro de téléphone

Vérifier un numéro de téléphone valide

En résumé : collez un numéro, on contrôle qu'il respecte le plan de numérotation de son pays, on le normalise au format international E.164 et on renvoie son type de ligne (mobile, fixe, VoIP). Ce n'est pas de l'annuaire inversé : on ne dit pas à qui appartient le numéro, mais s'il est bien formé — de quoi fiabiliser une base ou un formulaire.

Dernière mise à jour : juillet 2026.

Validité et format international (E.164), type de ligne, indicatif pays.

Le widget affiche le verdict de format tout de suite ; le type de ligne et la normalisation E.164 par pays (via libphonenumber) se débloquent avec la clé API gratuite.

Ce n'est pas de l'annuaire inversé

Deux intentions se cachent derrière « vérifier un numéro », et elles n'ont rien à voir. La première : « qui m'a appelé depuis ce numéro ? » — c'est l'annuaire inversé, un autre métier, souvent au bord de la légalité côté données personnelles, et ce n'est pas ce qu'on fait.

La seconde, la nôtre : « ce numéro est-il bien formé, de quel pays, quel type de ligne ? ». C'est de la validation de format et de plan de numérotation. On ne cherche pas d'identité. On fiabilise une colonne de numéros avant un import CRM, avant un envoi de SMS, avant d'accepter un formulaire. Si vous cherchez à savoir qui se cache derrière un appel, cette page ne vous servira pas — autant le dire tout de suite.

Pourquoi une regex FR casse dès qu'un numéro étranger arrive

Le réflexe, en validation maison, c'est /^0[1-9]\d{8}$/ : « 0, puis un chiffre de 1 à 9, puis 8 chiffres ». Ça marche pour un mobile français. Ça ment dans les deux sens dès qu'on sort de France :

Cas où la regex française donne un mauvais verdict
Numéro saisiRéalitéVerdict de la regexProblème
02 345 67 89Fixe belge (9 chiffres)RejetéFaux négatif : bon numéro perdu
079 123 45 67Mobile suisse (10 chiffres)Accepté comme FRFaux positif : mauvais pays, mauvais routage SMS
621 123 456Mobile luxembourgeoisRejetéFaux négatif : pas de 0 de départ, longueur variable
06 12 34 56 78Mobile françaisAcceptéCorrect — mais sans le type de ligne ni l'E.164

Et surtout, aucune regex ne vous dit si c'est un mobile ou un fixe : elle voit des chiffres, pas des tranches allouées. C'est pour ça que le contrôle complet passe par libphonenumber (la bibliothèque de Google, celle d'Android), qui embarque les règles à jour de chaque pays et rend le type de ligne.

Le plan de numérotation change à chaque frontière

Quatre pays voisins, quatre plans différents. La longueur, le préfixe mobile et même l'existence d'un 0 de départ varient — d'où l'impossibilité d'une seule regex universelle.

Plans de numérotation France, Belgique, Suisse, Luxembourg
PaysIndicatif0 de départLongueur nationalePréfixe mobile
France FR+33010 chiffres (0 + 9)06, 07
Belgique BE+3209–10 chiffres04xx
Suisse CH+41010 chiffres (0 + 9)076–079
Luxembourg LU+352aucun6–9 chiffres, variable621–691

Le piège classique : la Suisse et la France utilisent toutes deux 10 chiffres avec un 0 de départ. Un numéro suisse collé dans une base française « passe » la regex et repart en SMS au mauvais indicatif. Seul l'indicatif pays (E.164) tranche.

« Valide » ne veut pas dire « attribué »

Ce que la validation garantit : le numéro respecte une tranche existante du plan national, il a la bonne longueur, le bon type. Ce qu'elle ne garantit pas : qu'un abonné le détient aujourd'hui et qu'il est joignable. Le parallèle est le même que sur nos autres contrôles — un IBAN dont le mod-97 tombe juste peut pointer sur un compte clôturé ; un email avec un MX peut désigner une boîte jamais créée. La forme, ici ; le réel (l'attribution), du côté de l'opérateur, via une interrogation HLR qu'on ne pratique pas.

À quoi ça sert, concrètement

Dédoublonner et normaliser une base contacts. Le même mobile s'écrit 06 12 34 56 78, +33 6 12 34 56 78, 0033612345678. Normalisés en E.164, ce sont trois fois la même ligne : le doublon saute.

Réduire les SMS non délivrés. Filtrer le format cassé et écarter les fixes d'une campagne SMS (le type de ligne le dit) évite de payer pour des envois perdus.

Fiabiliser un formulaire. Un appel API sur le champ téléphone refuse le numéro mal saisi et devine le pays — moins de contacts injoignables dans le CRM.

Valider des numéros en masse

Le widget fait un numéro à la fois. Pour une base entière, le nettoyeur de liste (CSV) traite une colonne d'un coup. Dans votre code, l'endpoint REST renvoie E.164, type de ligne et pays :

curl -X POST https://data-checker.fr/api/v1/validate \
  -H "Authorization: Bearer dck_live_votreCle" \
  -H "Content-Type: application/json" \
  -d '{"type":"phone","value":"06 12 34 56 78","country":"FR"}'

Réponse : valid, e164, national, international, country, type_line. Le country (indicatif par défaut) sert à interpréter un numéro saisi au format national. Détail dans la documentation.

Questions fréquentes

Un numéro « valide » est-il forcément attribué et actif ?

Non. La validation vérifie que le numéro respecte le plan de numérotation du pays : bon indicatif, bonne longueur, préfixe rattaché à une tranche existante (mobile, fixe…). Elle ne dit pas qu'un abonné précis détient ce numéro aujourd'hui, ni qu'il est en service. 06 12 34 56 78 est un mobile français parfaitement bien formé — sans qu'on sache s'il sonne chez quelqu'un. Savoir si un numéro est réellement attribué demande une interrogation HLR de l'opérateur, intrusive et payante, qu'on ne fait pas.

Pourquoi une regex maison /^0[1-9]\d{8}$/ ne suffit pas ?

Parce qu'elle est fausse dans les deux sens dès qu'un numéro étranger arrive. Elle exige 10 chiffres commençant par 0 : elle rejette un fixe belge à 9 chiffres (02 345 67 89) et un numéro luxembourgeois qui ne commence pas par 0. Pire, elle accepte à tort un mobile suisse (079 123 45 67) ou un mobile belge (0470 12 34 56) qui font aussi 10 chiffres, alors que ce ne sont pas des numéros français. Une regex ne connaît ni les tranches réellement allouées, ni le type de ligne. libphonenumber, la bibliothèque de Google, porte les règles de chaque pays et se met à jour.

Comment distinguer un mobile d'un fixe ?

Par le préfixe, selon le plan de numérotation national. En France, après le 0 : 1 à 5 = fixe géographique (01 Île-de-France, 04 Sud-Est…), 6 et 7 = mobile, 8 = numéro spécial (surtaxé ou gratuit), 9 = non géographique / VoIP. La validation renvoie ce type de ligne (mobile, fixe, VoIP, surtaxé) là où une simple regex de format ne le donne jamais. Utile pour n'envoyer des SMS qu'aux mobiles.

Le format E.164, c'est quoi ?

La norme internationale d'écriture d'un numéro : un + suivi de l'indicatif pays puis du numéro national sans le 0 de départ, 15 chiffres maximum. 06 12 34 56 78 devient +33 6 12 34 56 78. C'est le format à stocker en base : non ambigu (l'indicatif lève le doute France/Belgique/Suisse), directement utilisable par les passerelles SMS et la téléphonie. La validation normalise vos numéros en E.164, ce qui règle au passage le dédoublonnage.

Est-ce un annuaire inversé ? Puis-je savoir à qui appartient un numéro ?

Non, et c'est volontaire. Cet outil valide le format et le plan de numérotation ; il ne dit pas qui détient le numéro, ni son opérateur nominatif, ni son adresse. Chercher l'identité derrière un numéro (« annuaire inversé ») relève d'un autre métier, souvent au bord de la légalité côté données personnelles. Ici, on fiabilise des bases et des formulaires : est-ce un numéro bien formé et de quel type — pas « qui appelle ».

À quoi sert la validation avant un envoi de SMS ?

À ne pas payer pour des SMS qui ne partiront jamais. Un numéro mal saisi (chiffre en trop, indicatif absent), un fixe glissé dans une colonne de mobiles, un format local non normalisé : autant d'envois perdus. Valider et normaliser en E.164 avant l'envoi filtre le format cassé et le type de ligne inadapté, et dédoublonne les mêmes numéros écrits différemment (06 12…, +33 6 12…, 0033 6 12…).

Références : format international E.164 (UIT-T), plan de numérotation français (Arcep), bibliothèque libphonenumber (Google).

À contrôler aussi : une adresse email (syntaxe, MX, jetable), un SIRET (existence réelle), un IBAN (clé mod-97). Pour tout intégrer, la documentation de l'API.

Vérifier un numéro de téléphone valide (E.164, type de ligne) — 2026 | Data Checker