Validation de TVA intracommunautaire API
Validez n'importe quel numéro de TVA européen auprès de VIES, le registre officiel de la Commission européenne. Confirmation en temps réel, plus la raison sociale et l'adresse enregistrées lorsque l'État membre les divulgue.
Pas encore de clé API ?
Connectez-vous à votre compte pour créer et gérer vos clés API.
Guide d'intégration
Copiez un extrait, remplacez votre clé API, exécutez. Fonctionne avec n'importe quel client HTTP — exemples ci-dessous en cURL, JavaScript et Python.
/api/validate-vathttps://www.apipick.comValidate an EU VAT number against the official VIES registry
vat_numberstringrequisFull VAT number with its two-letter member-state prefix. Spaces, dots, and hyphens are stripped. IE6388047V
countrystringoptionnelMember-state code, if the number is supplied without its prefix. Greece is EL, not GR. IE
curl -X GET "https://www.apipick.com/api/validate-vat" \
-H "x-api-key: YOUR_API_KEY"{
"vat_number": "IE6388047V",
"country_code": "IE",
"number": "6388047V",
"valid": true,
"name": "GOOGLE IRELAND LIMITED",
"address": "3RD FLOOR, GORDON HOUSE, BARROW STREET, DUBLIN 4",
"name_disclosed": true,
"request_date": "2026-09-01T11:52:22.440Z",
"consultation_number": null,
"source": "European Commission VIES",
"credits_used": 3,
"remaining_credits": 97
}Conçu pour des cas d'usage réels
Autoliquidation
Confirmez l'immatriculation à la TVA de l'acheteur avant d'exonérer une facture B2B transfrontalière, et conservez la trace du contrôle.
Onboarding B2B
Validez dès l'inscription et pré-remplissez la raison sociale et l'adresse depuis le registre, au lieu de demander au client de les saisir.
Prévention de la fraude
Interceptez les numéros de TVA inventés ou périmés avant qu'ils n'atteignent votre facturation ou une déclaration fiscale.
Workflows d'agents
Donnez à un agent financier un outil à un seul paramètre, appelable pendant le traitement d'une facture, avec une réponse booléenne sans ambiguïté.
Champs de la réponse
| Champ | Type | Description |
|---|---|---|
| valid | boolean | Indique si le numéro est actuellement immatriculé pour les échanges transfrontaliers |
| country_code | string | Code de l'État membre tel que déclaré (EL pour la Grèce, XI pour l'Irlande du Nord) |
| number | string | Le numéro de TVA sans son préfixe pays |
| name | string | null | Raison sociale enregistrée, lorsque l'État membre la divulgue |
| address | string | null | Adresse enregistrée, lorsque l'État membre la divulgue |
| name_disclosed | boolean | False lorsque l'État membre retient les champs d'identité par principe (DE, ES) |
| request_date | string | null | Horodatage enregistré par VIES pour ce contrôle |
| consultation_number | string | null | Identifiant de consultation VIES, utilisable comme preuve de vérification |
| credits_used | integer | Crédits déduits pour cette requête |
| remaining_credits | integer | Crédits restants sur votre compte |
Limites de débit
La limitation est par clé API, fenêtre glissante de 60 secondes. En cas de dépassement, vous recevez un 429 propre avec un en-tête Retry-After.
20req/min
Par clé API, par endpoint. Fenêtre glissante de 60 secondes.
3concurrent
Nombre maximal de requêtes simultanées en cours par clé API.
X-RateLimit-LimitNombre maximal de requêtes autorisées par minuteX-RateLimit-RemainingRequêtes restantes dans la fenêtre actuelleX-RateLimit-ResetSecondes avant la réinitialisation de la fenêtre actuelleRetry-AfterSecondes à attendre avant de réessayer (uniquement sur 429)HTTP/1.1 429 Too Many Requests
Retry-After: 12
X-RateLimit-Limit: 20
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 12
{
"error": "rate_limit_exceeded",
"message": "Rate limit exceeded: 20 requests/minute per API key. Retry after 12s.",
"retry_after": 12
}Source des données et licence
Les contrôles interrogent VIES, le système d'échange d'informations sur la TVA de la Commission européenne, qui transmet chaque requête en temps réel à la base fiscale de l'État membre concerné. Nous ne conservons aucune copie du registre : la réponse est celle de l'administration fiscale, restituée en JSON propre, avec les cas d'indisponibilité et de non-divulgation explicités.
Questions fréquentes
Q : S'agit-il du contrôle officiel de l'UE ?
R : Oui. La requête est adressée à VIES, le système d'échange d'informations sur la TVA de la Commission européenne, qui interroge en temps réel la base fiscale de l'État membre concerné. Il n'y a pas de base intermédiaire : la réponse correspond donc à celle du formulaire web de la Commission.
Q : Pourquoi la raison sociale est-elle vide pour les numéros allemands ?
R : L'Allemagne et l'Espagne ne divulguent pas la raison sociale ni l'adresse via VIES, par principe. Le numéro reste confirmé comme immatriculé ou non ; seuls les champs d'identité sont retenus. La réponse positionne name_disclosed: false pour vous permettre de distinguer une rétention réglementaire d'un champ réellement vide.
Q : Que se passe-t-il si le système d'un État membre est hors service ?
R : VIES achemine la requête vers la base de chaque État membre, et celles-ci se déconnectent pour maintenance. Le cas échéant, vous recevez un HTTP 503 avec un message explicite, et aucun crédit n'est débité. Réessayez quelques minutes plus tard : la panne est du côté de l'administration fiscale, pas du nôtre.
Q : Quels codes pays sont pris en charge ?
R : Les 27 États membres, plus XI pour l'Irlande du Nord dans le cadre de Windsor. Notez que la Grèce déclare sa TVA sous le code EL, et non sous son code ISO GR. La Grande-Bretagne (GB) a quitté VIES après le Brexit et n'est pas couverte.
Q : Puis-je obtenir un numéro de consultation pour ma piste d'audit ?
R : Le champ consultation_number contient l'identifiant de requête VIES lorsqu'il est délivré. C'est cet identifiant qu'une administration fiscale accepte comme preuve que vous avez vérifié le statut TVA d'une contrepartie à une date donnée, ce qui compte pour l'autoliquidation.