API de vérification de la TVA intracommunautaire

Un numéro de TVA français se construit à partir du SIREN, mais le calculer ne prouve pas que l’entreprise est assujettie. Voici comment obtenir le numéro, puis le faire contrôler par VIES avec un seul appel d’API.

Le problème : un numéro bien formé n’est pas un numéro valide

Avant de facturer une entreprise de l’Union européenne en exonération de TVA (livraison intracommunautaire) ou d’émettre une facture électronique, il faut s’assurer que le numéro de TVA du client existe et est actif. Deux choses sont souvent confondues : la forme du numéro, que l’on peut calculer, et l’immatriculation à la TVA, que seul le système d’échange d’informations sur la TVA de la Commission européenne (VIES) confirme.

En France, le numéro de TVA est composé du préfixe FR, d’une clé à deux chiffres et du SIREN à neuf chiffres. La clé se calcule : (12 + 3 × (SIREN modulo 97)) modulo 97. Cette règle donne un numéro de forme correcte. Elle ne dit pas si l’entreprise est assujettie, ni si elle a cessé son activité.

Comment faire avec l’API

Deux appels suffisent. Le premier part du SIREN et renvoie la fiche de l’entreprise, avec vat_number et vat_number_source. Pour la France, la source est rule : le numéro est construit à partir de l’identifiant, sa forme est juste, mais l’inscription n’est pas confirmée. Le second appel, GET /vat/{numéro}, interroge VIES.

curl 'https://api.prometiam.com/functions/v1/risk-api/companies/search?country=FR&siren=303265045' \
  -H 'Authorization: Bearer rk_live_...'
curl 'https://api.prometiam.com/functions/v1/risk-api/vat/FR40303265045' \
  -H 'Authorization: Bearer rk_live_...'

Les réponses sont dans data. Le contrôle VIES renvoie notamment si le numéro est valide ; selon l’État membre, VIES peut aussi renvoyer le nom et l’adresse déclarés. Un numéro valide dans VIES signifie que l’entreprise est actuellement identifiée à la TVA pour les échanges intracommunautaires ; un numéro refusé n’est pas une preuve de fraude, il se vérifie auprès du client et du service des impôts des entreprises.

Deux cas d’usage courants

Facturation électronique. À la création d’un client dans votre outil de facturation, vous résolvez son SIREN, vous lisez la dénomination et l’état de l’entreprise, puis vous contrôlez le numéro de TVA : une facture adressée à une entreprise radiée ou à un numéro inactif est une erreur évitable. Le guide sur la validation du SIREN avant une facture électronique détaille les vérifications.

Intégration d’un client ou d’un fournisseur (KYB). Le numéro de TVA est l’un des éléments du dossier, à côté du statut, des dirigeants et des procédures collectives. La vérification d’entreprise par SIREN, le contrôle de TVA et le criblage de sanctions (bêta) se chaînent avec la même clé : voir l’API KYB. La surveillance par webhook, elle, ne couvre pas les entreprises françaises ; pour une société française, consultez les avis du BODACC et les procédures collectives par API.

Ce que vous obtenez

  • vat_number et vat_number_source sur chaque fiche d’entreprise, y compris dans identifiers (clé vat).
  • Un contrôle VIES par GET /vat/{numéro} pour les numéros de TVA de l’Union européenne.
  • La recherche par vat= pour retrouver une entreprise à partir d’un numéro de TVA dans les pays où un numéro de TVA est servi.
  • Le même objet JSON pour tous les pays servis : le code qui lit un numéro français lit aussi un numéro belge.

Ce qui n’est pas couvert

Le numéro de TVA français est calculé, pas confirmé par le registre : contrôlez-le avec VIES avant d’en faire une preuve. Pour certains pays, aucun numéro de TVA n’est servi (Royaume-Uni, Irlande, Slovaquie, Chypre, États-Unis, Canada, Japon, Israël, Brésil, Colombie, Singapour, République tchèque) et une recherche vat= y est refusée ; l’Estonie sans KMKR publié n’a pas de numéro non plus. VIES ne couvre que l’Union européenne. L’API ne remplace pas l’avis de situation de l’Insee ni l’extrait Kbis.

Quelle offre choisir

Une recherche, une fiche ou un contrôle de TVA coûte 1 crédit ; une erreur ne coûte rien. Starter (9,99 € par mois) comprend 1 000 crédits, Professional (29,99 €) 10 000, Scale (99,99 €) 50 000. L’essai de 14 jours comprend 500 crédits ; une carte est demandée, rien n’est prélevé pendant l’essai. Les tarifs sont publics.

Pour contrôler plusieurs clients en une fois, POST /companies/lookup résout une liste d’identifiants : chaque élément compte pour un appel. Un outil gratuit, sans inscription, calcule déjà le numéro : numéro de TVA intracommunautaire : calcul et vérification.

Pages associées

Démarrez votre essai gratuit de 14 jours · Documentation de l’API

L’essai dure 14 jours et comprend 500 crédits. Une carte bancaire est demandée, rien n’est prélevé pendant l’essai ; ensuite l’offre Starter (9,99 € par mois) s’applique, sauf résiliation.

Frequently asked questions

Comment vérifier un numéro de TVA intracommunautaire par API ?
Appelez GET /vat/{numéro} avec le numéro complet, préfixe du pays compris (par exemple FR40303265045). L’API interroge VIES et renvoie le résultat dans data.
Comment retrouver le numéro de TVA d’une entreprise française à partir de son SIREN ?
Le numéro est FR, une clé à deux chiffres calculée à partir du SIREN, puis le SIREN. La fiche renvoyée par GET /companies/search?country=FR&siren=... porte ce numéro dans vat_number, avec la source rule.
Le numéro de TVA calculé prouve-t-il que l’entreprise est assujettie ?
Non. Il a la forme correcte, mais l’inscription n’est pas confirmée. Seul VIES, interrogé avec GET /vat/{numéro}, confirme que le numéro est actif.
L’API Sirene donne-t-elle le numéro de TVA intracommunautaire ?
Le répertoire Sirene identifie l’entreprise par son SIREN ; le numéro de TVA se déduit du SIREN ou se vérifie dans VIES. Voir l’alternative à l’API Sirene.