Een btw-nummer controleren
Tik een nummer in en je ziet wat het open eindpunt antwoordt: naam, adres en bron. Hetzelfde verzoek mag je zelf sturen, zonder sleutel.
Punten en spaties mag je laten staan. Een Belgisch nummer mag ook zonder BE ervoor. Een bot-controle van Cloudflare kijkt mee, en die laat zich zelden zien.
Zelf verzoeken sturen
Het eindpunt is open: geen sleutel, geen token, geen registratie. Een GET volstaat, het antwoord is altijd JSON. De rem staat op vijf verzoeken per minuut per ip-adres. Daarboven krijg je een 429 met een Retry-After. Hoeveel je er nog over hebt staat in X-RateLimit-Remaining.
Het nummer mag met of zonder punten en spaties. Een Belgisch ondernemingsnummer van negen of tien cijfers krijgt er vanzelf BE voor. Wat je terugkrijgt blijft een dag in cache, dus hetzelfde nummer twee keer opzoeken kost de bron niets.
Het antwoord
Bestaat het nummer, dan ziet het er zo uit:
Bestaat het niet, dan blijft de status 200: de vraag was geldig, het antwoord is enkel negatief.
De velden
| Veld | Wat het is |
|---|---|
| valid | true of false. Staat altijd in het antwoord, ook bij een fout. |
| vat_number | Het nummer zoals het opgezocht is: hoofdletters, landcode ervoor, zonder punten of spaties. |
| name | De naam waarop het nummer staat. |
| address.street | De straat, zonder huisnummer. |
| address.number | Het huisnummer, apart. Niet elke bron levert dat, dan blijft het leeg. |
| address.zip_code | De postcode. |
| address.city | De gemeente. |
| address.country | Het land voluit, in het Nederlands. Leeg voor landen buiten de lijst. |
| address.country_code | De landcode van twee letters. |
| source | Welke bron antwoordde: vies, cbw (controleerbtwnummer.eu) of btwo (btw-opzoeken.be). |
| error | Staat er enkel bij valid: false, en zegt waarom. |
De statussen
| Status | Wanneer |
|---|---|
| 200 | Er is een antwoord. Lees valid om te weten of het nummer bestaat. |
| 422 | Wat je stuurde heeft de vorm van geen enkel btw-nummer. Er is niets opgezocht. |
| 429 | Meer dan vijf verzoeken in een minuut vanaf hetzelfde ip. Retry-After zegt hoe lang je moet wachten. |
In een Laravel-project
In de browser
Het eindpunt stuurt de nodige cors-koppen mee, dus een fetch vanaf je eigen site werkt. Hou er rekening mee dat de vijf per minuut dan per bezoeker tellen, niet per site.
Waar het op steunt
De opzoeking vraagt het eerst aan VIES, de databank van de Europese Commissie. Antwoordt die niet, dan gaan controleerbtwnummer.eu en btw-opzoeken.be de vraag na. Welke bron het werd, staat in source.
Er hangt geen sla aan dit eindpunt: het draait mee op deze site en ligt eruit wanneer VIES eruit ligt. Zit het in een stroom die niet mag haperen, installeer dan het pakket en laat de opzoeking bij jou draaien:
Dezelfde code, dezelfde bronnen, jouw server. Het staat bij de andere Laravel packages.
Meer dan naam en adres
Dit eindpunt zegt of een nummer bestaat en op welke naam het staat, en daar stopt het. Gaat het over een Belgische onderneming en wil je de rest van de fiche … bestuurders, vestigingen, jaarrekeningen, akten en subsidies … dan staat die op btwzoeken.be, een eigen site op de openbare registers. Zoeken en een fiche lezen kan er zonder aanmelding en zonder betaalmuur, en er hangt een json-api aan voor wie die gegevens in zijn eigen toepassing wil.
Meer dan vijf per minuut
Er bestaat een ruimere versie met een sleutel, en een variant op RapidAPI. Laat weten wat je nodig hebt, dan zetten we dat op: [email protected].
Even controleren
Cloudflare gaat kort na of je geen robot bent. Dat duurt een paar tellen.