EU VAT validation API
One call: the authoritative VIES answer when it's available, the last known good answer when it isn't, and national-registry company data VIES never gives you.
Measuring VIES availability…
We query each member state's live backend every 10 minutes with a real VAT
number. The Commission's own status endpoint reports Available for member
states that are in fact refusing most requests — only a real call tells the truth.
This data is free and needs no account: GET /v1/uptime.
Try FR59542051180 · CZ45274649 · RO14399840 · PL5260250995 · a bad checksum
→ response appears here
stale with its original timestamp. No cache → the offline
structural verdict. Always HTTP 200, always a usable body — and never an invented verdict:
if we don't know, valid is null and we say why."---"
instead of a company name for DE and ES, and never tells you whether a business is still
trading. We add name, address, legal status, activity code, headcount and incorporation
date from free national registries — France, Czechia, Finland, Romania and Poland.?requester= your own VAT number
and we return the VIES requestIdentifier — the consultation proof to keep
for a reverse-charge audit.Hit a VIES error in production? Every VIES error code explained — what it means, whose fault it is, and how to stop it breaking your checkout.
curl -H "X-API-Key: $KEY" \ "https://vat.ouvamataxe.fr/v1/check/FR59542051180"
GET /v1/check/{vat} — ?enrich=0 · ?fresh=1 ·
?requester=
POST /v1/batch up to 50 · GET /v1/uptime ·
GET /v1/status — free, no key ·
OpenAPI spec