EU- btw-nummervalidatie API
Valideer elk Europees btw-nummer bij VIES, het officiële register van de Europese Commissie. Realtime bevestiging plus de geregistreerde naam en het adres waar de lidstaat die vrijgeeft.
Heb je geen API key?
Meld je aan bij je account om je API keys aan te maken en te beheren.
Integratiegids
Kopieer een snippet, vervang je API key, draaien. Werkt in elke HTTP-client — voorbeelden hieronder in cURL, JavaScript en Python.
/api/validate-vathttps://www.apipick.comValidate an EU VAT number against the official VIES registry
vat_numberstringverplichtFull VAT number with its two-letter member-state prefix. Spaces, dots, and hyphens are stripped. IE6388047V
countrystringoptioneelMember-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
}Gebouwd voor praktijksituaties
Facturen met verleggingsregeling
Bevestig de btw-registratie van de koper voordat je een grensoverschrijdende B2B-factuur tegen nultarief opstelt, en leg de controle vast.
B2B-onboarding
Valideer bij aanmelding en vul statutaire naam en adres automatisch uit het register in, in plaats van de klant te laten typen.
Fraudepreventie
Onderschep verzonnen of vervallen btw-nummers voordat ze je facturatiesysteem of een belastingaangifte bereiken.
Agent-workflows
Geef een financiële agent een tool met één parameter die hij tijdens het verwerken van een factuur kan aanroepen, met een ondubbelzinnig booleaans antwoord.
Responsvelden
| Veld | Type | Beschrijving |
|---|---|---|
| valid | boolean | Of het nummer momenteel geregistreerd is voor grensoverschrijdende handel |
| country_code | string | Landcode van de lidstaat zoals aangegeven (EL voor Griekenland, XI voor Noord-Ierland) |
| number | string | Het btw-nummer zonder landcode |
| name | string | null | Geregistreerde naam van de ondernemer, waar de lidstaat die vrijgeeft |
| address | string | null | Geregistreerd adres, waar de lidstaat dat vrijgeeft |
| name_disclosed | boolean | False wanneer de lidstaat identiteitsvelden om beleidsredenen achterhoudt (DE, ES) |
| request_date | string | null | Tijdstempel die VIES voor de controle heeft vastgelegd |
| consultation_number | string | null | VIES-aanvraagnummer, bruikbaar als bewijs van verificatie |
| credits_used | integer | Voor dit verzoek afgeschreven credits |
| remaining_credits | integer | Resterende credits in je account |
Rate limits
Throttling is per API key, een verschuivend venster van 60 seconden. Bereik je de limiet, dan krijg je een nette 429 met een Retry-After-header.
20req/min
Per API key, per endpoint. Verschuivend venster van 60 seconden.
3concurrent
Max. gelijktijdig lopende verzoeken per API key.
X-RateLimit-LimitMaximaal toegestane verzoeken per minuutX-RateLimit-RemainingResterende verzoeken in het huidige vensterX-RateLimit-ResetSeconden tot het huidige venster opnieuw startRetry-AfterSeconden te wachten voor opnieuw proberen (alleen bij 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
}Gegevensbron en licentie
Controles lopen via VIES, het btw-informatie-uitwisselingssysteem van de Europese Commissie, dat elke opvraging realtime doorstuurt naar de belastingdatabase van de betreffende lidstaat. Wij bewaren geen kopie van het register — het antwoord is dat van de belastingdienst, door ons geleverd als nette JSON met de storings- en niet-openbaarmakingsgevallen expliciet benoemd.
Veelgestelde vragen
V: Is dit de officiële EU-controle?
A: Ja. De aanvraag gaat naar VIES, het btw-informatie-uitwisselingssysteem van de Europese Commissie, dat realtime de belastingdatabase van de betreffende lidstaat bevraagt. Er zit geen tussenliggende database tussen, dus het antwoord komt overeen met dat van het webformulier van de Commissie.
V: Waarom is de naam bij Duitse nummers leeg?
A: Duitsland en Spanje geven naam en adres van de ondernemer principieel niet vrij via VIES. Of het nummer geregistreerd is, wordt nog steeds duidelijk bevestigd — alleen de identiteitsvelden blijven achterwege. De respons zet name_disclosed: false, zodat je beleidsmatig achterhouden kunt onderscheiden van een werkelijk leeg veld.
V: Wat gebeurt er als het systeem van een lidstaat plat ligt?
A: VIES routeert naar de database van elke lidstaat, en die gaan voor onderhoud offline. Gebeurt dat, dan krijg je HTTP 503 met een duidelijke melding en worden er geen credits afgeschreven. Probeer het na een paar minuten opnieuw — de storing zit bij de belastingdienst, niet bij ons.
V: Welke landcodes worden ondersteund?
A: Alle 27 lidstaten plus XI voor Noord-Ierland onder het Windsor-kader. Let op: Griekenland geeft btw op als EL, niet met de ISO-code GR. Groot-Brittannië (GB) is na de brexit uit VIES gestapt en valt er niet onder.
V: Kan ik een raadplegingsnummer krijgen voor mijn audittrail?
A: Het veld consultation_number bevat het VIES-aanvraagnummer wanneer dat wordt afgegeven. Precies dat nummer accepteert een belastingdienst als bewijs dat je de btw-status van een tegenpartij op een bepaalde datum hebt geverifieerd, wat van belang is bij de verleggingsregeling.