{ "diy" :
Zelf bouwen of scrapen tegenover een API
Kort antwoord
Handelsregisterdata is openbaar en de KVK publiceert een gratis open dataset met basisgegevens, dus het zelf bouwen is een echte optie, zeker voor eenmalig of laagvolume werk. Het werk zit niet in de eerste versie maar in het onderhoud: VIES is SOAP en valt per lidstaat uit, adressen moeten genormaliseerd worden, rechtsvormen gemapt, en een cache moet vers blijven. Het scrapen van de KVK-website in plaats van de API gebruiken is bovendien een voorwaardenprobleem.
# Zelf: KVK-call, dan VIES SOAP,
# dan mappen, dan cachen.
# Of 1 call:
curl ".../v1/lookup/68750110" \
-H "Authorization: Bearer KEY"
{
"vat": {
"valid": true,
"validatedAt": "2026-08-22"
}
}
Zelf bouwen is een serieuze optie
Dit is geen strohalm om omver te blazen. Handelsregisterdata is openbaar, de KVK publiceert een gratis open dataset met basisgegevens, en er is een gedocumenteerde API. Voor een eenmalige verrijking van een bestand, een migratie, een analyse of een intern hulpmiddel is zelf bouwen vaak gewoon de juiste keuze. Je hebt niemand nodig die daar een abonnement voor verkoopt.
Het beeld kantelt zodra het iets wordt dat blijft draaien.
| Onderdeel | Zelf bouwen | KVKBase |
|---|---|---|
| Bedrijfsprofiel ophalen | KVK API of open dataset | één call |
| Zoeken, profiel en vestiging samenvoegen | zelf, meerdere calls | in de response |
| BTW-nummer afleiden | zelf, alleen geldig voor BV en NV | ingebouwd |
| VIES-controle | zelf, SOAP, met retries en cache | live in de response |
| Adresnormalisatie | zelf | gestructureerde velden |
| Rechtsvormmapping | zelf onderhouden | legalForm |
| Cacheverversing | jouw schema, jouw probleem | 24 uur op actieve bedrijven |
| Kosten per maand | infrastructuur plus uren | gratis, EUR 19 of EUR 49 |
Scrapen tegenover de API
Kort en zonder preek. De data is openbaar, maar de KVK-website heeft gebruiksvoorwaarden en geautomatiseerd uitlezen valt daar doorgaans niet onder. Er staat een API en een open dataset naast die hetzelfde doel dienen. Als je het toch overweegt: een scraper is ook technisch de slechtste optie van de drie, want elke wijziging aan de frontend breekt je parser en je merkt het pas als je data stilvalt.
De open dataset gebruiken is geen scrapen en heeft dat probleem niet.
Waar de uren echt heen gaan
Vier plekken, in volgorde van hoe vaak ze mensen verrassen.
VIES. Het BTW-nummer staat niet in het Handelsregister. Je leidt het af als NL + KVK-nummer + B01, en dat geldt alleen voor BV en NV. Daarna moet het gecontroleerd worden bij VIES, en dat is SOAP. VIES is regelmatig traag en lidstaten gaan onafhankelijk van elkaar offline. Je hebt dus retries, een timeout die je checkout niet ophangt, en een cache met een eigen geldigheidsduur.
De gotcha die het vaakst in productie stukgaat: “ongeldig” en “VIES was onbereikbaar” zijn niet hetzelfde. Als je die twee op één false afbeeldt, blokkeer je tijdens een storing legitieme klanten en heb je geen idee waarom. Bewaar de reden apart, ook als je UI er maar één ding mee doet. De achtergrond staat in de gids over btw-nummers valideren via VIES.
Adressen. Straat, huisnummer en toevoeging komen niet in één keer schoon binnen. Toevoegingen als A, bis, 2-hoog en zwart moeten van het huisnummer gescheiden blijven, anders matcht je adres later nergens meer op. Wij geven houseNumber en houseNumberAddition als aparte velden terug, precies om die reden.
Rechtsvormen. De register-notaties zijn niet wat je in je UI wilt tonen en niet wat je in je facturatielogica wilt gebruiken. Je bouwt een mappingtabel, en die tabel is nooit af.
Verversing. Een kopie van de open dataset is per definitie een momentopname. Inschrijvingen, verhuizingen en naamswijzigingen lopen door. Je hebt een importschema nodig, een manier om te weten hoe oud je kopie is, en een besluit over wat je doet met een KVK-nummer dat je nog niet hebt. Dat is geen bouwwerk maar onderhoud.
Geen van deze vier is moeilijk. Ze zijn alleen alle vier nooit af, en ze komen terug op een moment dat je aan iets anders werkt. Dat is het echte verschil met de eerste versie, die je op een middag schrijft.
Voor de validatieregels op het KVK-nummer zelf hoef je niets te verzinnen, die staan in de post over KVK-nummervalidatie en de elfproef.
Wie zelf moet bouwen
Bouw zelf als het eenmalig is, als het intern blijft, als je volume laag genoeg is dat een storing niemand raakt, of als je al een team hebt dat dit soort integraties toch onderhoudt. Dat is geen tweede keus, dat is de goedkoopste oplossing voor die situatie.
Kom je bij ons uit, dan is dat omdat het in een klantpad zit en moet blijven werken zonder dat iemand er wekelijks naar kijkt: één call voor bedrijf plus btw, of de embeddable widget als je helemaal geen backend wilt schrijven. En als je toch zelf bouwt, neem dan in elk geval het onderscheid tussen ongeldig en onbereikbaar mee. Dat is de fout die het meeste geld kost.
Veelgestelde vragen
Mag ik de KVK-website scrapen?
Is zelf bouwen goedkoper?
Wat is het lastigste stuk om zelf te bouwen?
Wanneer is zelf bouwen de juiste keuze?
Kan ik de open dataset gewoon in mijn database laden?
Bijgewerkt:
Eén call geeft je het hele bedrijf
KVK-data, het afgeleide BTW-nummer en een live VIES-controle in één request. Het gratis plan geeft je 50 lookups per maand, zonder creditcard.
- 50
- gratis lookups per maand
- 1
- request in plaats van drie
- 0
- creditcards, contracten of salesgesprekken