Vérifier le format d’un numéro de TVA de l’UE
Vérifiez qu'un numéro de TVA a la bonne forme pour son pays de l'UE : « DE 136-695-976 » est lu comme DE136695976 et respecte le modèle allemand. Les espaces, points et tirets copiés depuis une facture sont ignorés. Le format est contrôlé, pas l'immatriculation. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Texte
- DE 136-695-976
- Normalisé
- DE136695976
- Code pays
- DE
- Nom du pays
- Germany
- Format attendu
- DE123456789
Un numéro de TVA peut sembler plausible tout en ayant une structure incorrecte pour son pays. Cet outil lit le préfixe à deux lettres, sélectionne le format européen correspondant et compare les caractères restants au modèle publié pour ce pays. Il gère les différentes longueurs et les lettres obligatoires utilisées dans l’UE, tout en ignorant les espaces, points et tirets courants. Le résultat constitue un contrôle syntaxique rapide, et non la confirmation qu’une entreprise existe ou que son immatriculation à la TVA est active.
Ce qu’un contrôle de format de TVA peut vous apprendre
Un contrôle de format répond à une question précise mais utile : cette chaîne pourrait-elle être un numéro de TVA émis selon la syntaxe du pays de l’UE indiqué ? Le préfixe national détermine le test. Les numéros allemands, par exemple, n’ont pas la même longueur que les numéros belges, tandis que les formats autrichien, néerlandais, irlandais, espagnol, chypriote et français peuvent imposer des lettres à des positions précises.
L’outil convertit les lettres en majuscules, supprime les espaces, points et tirets courants, puis applique la règle nationale correspondante. Il renvoie la valeur normalisée, le pays reconnu, un exemple du format attendu et un résultat booléen. Vous pouvez ainsi repérer des chiffres manquants, des lettres mal placées, un identifiant fiscal national saisi sans son préfixe international ou un numéro copié avec un suffixe incomplet.
L’outil ne calcule ni ne valide délibérément les clés de contrôle propres à chaque pays. Une chaîne peut donc réussir le test structurel tout en étant erronée, non attribuée, expirée ou liée à une autre organisation. Considérez un résultat positif comme une invitation à poursuivre la validation, jamais comme une preuve d’immatriculation ou d’identité.
Comment saisir les préfixes nationaux et les séparateurs
Saisissez le numéro de TVA complet en commençant par son préfixe TVA à deux lettres. La plupart des préfixes correspondent au code pays habituel, mais la Grèce utilise EL aux fins de la TVA européenne : une saisie grecque doit donc commencer par EL et non par GR. L’outil reconnaît les préfixes TVA des 27 États membres actuels de l’UE et renvoie une erreur de saisie lorsque le préfixe est inconnu.
Cette distinction est importante : un pays reconnu avec un numéro mal formé produit un résultat normal dont valid vaut false, alors qu’un préfixe inconnu signifie qu’aucune règle nationale ne peut être appliquée. Les espaces, points et tirets sont acceptés comme séparateurs visuels et supprimés avant la comparaison, ce qui facilite l’utilisation de valeurs copiées depuis des factures. Les autres signes de ponctuation sont conservés et rendent généralement le format invalide.
N’ajoutez pas de libellés tels que VAT, TVA ou MwSt autour du numéro. Si de nombreux formats ne comportent que des chiffres après le préfixe, plusieurs pays imposent une ou plusieurs lettres. Conservez-les : les remplacer par des chiffres modifie le format et doit faire échouer le contrôle.
La valeur normalisée de la réponse montre exactement la chaîne compacte évaluée.
Validation du format ou vérification de l’immatriculation
La validation syntaxique intervient idéalement au début d’un processus de collecte. Elle est déterministe, immédiate et n’envoie pas l’identifiant fourni à un registre externe. Utilisez-la pendant qu’une personne remplit un formulaire de facturation, lors de l’importation de fournisseurs ou avant de placer des numéros de TVA dans une file destinée à une consultation officielle plus lente.
Un résultat false vous donne une raison claire de demander une correction avant toute requête réseau. Un résultat true indique seulement que les caractères occupent des positions autorisées pour ce préfixe. L’outil ne consulte ni VIES, ni une administration fiscale nationale, ni un registre des entreprises ; il ne peut donc pas établir si le numéro a été attribué, s’il est actif pour les opérations transfrontalières ou s’il appartient au client indiqué.
Pour une décision fiscale, une facturation sans TVA ou une preuve de conformité, faites suivre le contrôle de format réussi de la vérification officielle appropriée et conservez les justificatifs requis par votre procédure. Cette séparation clarifie aussi les échecs : les erreurs syntaxiques locales sont corrigées immédiatement, tandis que les indisponibilités du registre, les services nationaux inaccessibles et les immatriculations réellement inactives restent dans l’étape ultérieure sans être confondus avec des erreurs de format.
Cas d’usage
Valider un formulaire de facturation
Repérez un préfixe non pris en charge ou une longueur incorrecte pour le pays avant l’envoi du profil de facturation.
Nettoyer les données fournisseurs
Normalisez les séparateurs et détectez les numéros de TVA structurellement invalides pendant un import de fournisseurs ou de clients.
Préparer les consultations officielles
Éliminez localement les erreurs syntaxiques évidentes avant d’envoyer les numéros plausibles à un service officiel.
Questions fréquentes
Un résultat valide prouve-t-il que le numéro de TVA est immatriculé ?
Non. Il prouve uniquement que le numéro respecte le modèle de caractères du pays reconnu. Consultez un registre officiel pour confirmer son statut.
Quels pays sont reconnus ?
L’outil reconnaît les préfixes TVA des 27 États membres actuels de l’UE. La Grèce doit employer le préfixe TVA EL.
La partie située après le préfixe national peut-elle contenir des lettres ?
Oui. Plusieurs formats officiels de TVA imposent des lettres à des positions précises ; l’outil les conserve et les valide.
Les espaces et les tirets sont-ils autorisés ?
Oui. Les espaces, points et tirets sont supprimés avant le test du modèle national, puis la valeur compacte normalisée est renvoyée.
Pourquoi un numéro de TVA grec doit-il commencer par EL ?
Parce que la Grèce utilise EL et non GR pour la TVA européenne. Un numéro grec saisi avec GR est traité comme un préfixe inconnu et renvoie une erreur, puisqu'aucune règle de pays ne peut lui être appliquée.
Outils associés
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/data/vat-number-format-check \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"DE 136 695 976"}'const res = await fetch("https://api.kit.forhosting.com/data/vat-number-format-check", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "DE 136 695 976"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/data/vat-number-format-check",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "DE 136 695 976"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/data/vat-number-format-check", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"DE 136 695 976"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"DE 136 695 976"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/data/vat-number-format-check", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"text": "DE 136 695 976"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "data.vat_number_format_check",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Limites
max_mb | 25 |
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
Questions techniques
Que se passe-t-il lorsque le préfixe national est inconnu ?
La requête renvoie une erreur invalid_input, car aucun modèle national de TVA n’est disponible pour ce préfixe.
Quel est le coût d’une requête API ?
Chaque requête API coûte $0.002. La version pour navigateur s’exécute localement sans consulter le réseau.