[ validatie · fiscaal ]● 3 cred. · 20 verz./min

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.

Officiële VIES-bron27 lidstaten + XIRealtime controle
auth · x-api-key

Heb je geen API key?

Meld je aan bij je account om je API keys aan te maken en te beheren.

[ 02 · integrate ]

Integratiegids

Kopieer een snippet, vervang je API key, draaien. Werkt in elke HTTP-client — voorbeelden hieronder in cURL, JavaScript en Python.

spec
GET/api/validate-vat
base
https://www.apipick.com

Validate an EU VAT number against the official VIES registry

parameters
vat_numberstringverplicht

Full VAT number with its two-letter member-state prefix. Spaces, dots, and hyphens are stripped. IE6388047V

countrystringoptioneel

Member-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"
● 200 · reactie
{
  "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

VeldTypeBeschrijving
validbooleanOf het nummer momenteel geregistreerd is voor grensoverschrijdende handel
country_codestringLandcode van de lidstaat zoals aangegeven (EL voor Griekenland, XI voor Noord-Ierland)
numberstringHet btw-nummer zonder landcode
namestring | nullGeregistreerde naam van de ondernemer, waar de lidstaat die vrijgeeft
addressstring | nullGeregistreerd adres, waar de lidstaat dat vrijgeeft
name_disclosedbooleanFalse wanneer de lidstaat identiteitsvelden om beleidsredenen achterhoudt (DE, ES)
request_datestring | nullTijdstempel die VIES voor de controle heeft vastgelegd
consultation_numberstring | nullVIES-aanvraagnummer, bruikbaar als bewijs van verificatie
credits_usedintegerVoor dit verzoek afgeschreven credits
remaining_creditsintegerResterende credits in je account
[ 03 · limits ]

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.

verzoeksnelheid

20req/min

Per API key, per endpoint. Verschuivend venster van 60 seconden.

gelijktijdigheid

3concurrent

Max. gelijktijdig lopende verzoeken per API key.

response headers
X-RateLimit-LimitMaximaal toegestane verzoeken per minuut
X-RateLimit-RemainingResterende verzoeken in het huidige venster
X-RateLimit-ResetSeconden tot het huidige venster opnieuw start
Retry-AfterSeconden te wachten voor opnieuw proberen (alleen bij 429)
● 429 · te veel verzoeken
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.