KVK-nummer, RSIN of btw-nummer: welk nummer sla je op?
KVKBase Team

KVK-nummer, RSIN of btw-nummer: welk nummer sla je op?

Een Nederlands bedrijf heeft een KVK-nummer, RSIN, btw-nummer en vestigingsnummer. Zo kies je de juiste sleutel en koppel je de rest op de goede manier.

kvkrsinbtwdatamodel

Je ontwerpt een klantentabel en zoekt een kolom waarmee je een Nederlands bedrijf eenduidig herkent. Een collega zegt: “gewoon het btw-nummer”. Een ander zegt: “het KVK-nummer natuurlijk”. Een derde noemt het RSIN. Ze hebben alle drie een beetje gelijk, en een verkeerde keuze merk je pas maanden later, als de eerste eenmanszaak zich aanmeldt en je btw-kolom leeg blijft.

In dit artikel zetten we de vier nummers van een Nederlands bedrijf naast elkaar, leggen we uit waar elk nummer goed voor is en eindigen we met een datamodel dat in de praktijk standhoudt.

Vier nummers, vier taken

Nederland kent niet één bedrijfsnummer maar meerdere, elk uitgegeven voor een ander doel. Die door elkaar halen is de meest gemaakte fout bij koppelingen met Nederlandse bedrijfsdata.

Het KVK-nummer heeft 8 cijfers en identificeert de inschrijving in het Handelsregister. Het RSIN heeft 9 cijfers en identificeert een rechtspersoon voor de belastingdienst. Het btw-nummer ziet eruit als NL + 9 cijfers + B + 2 cijfers en identificeert de btw-plichtige eenheid. Het vestigingsnummer heeft 12 cijfers en identificeert één locatie of vestiging van een bedrijf.

De verdeling is makkelijk te onthouden. Het KVK-nummer beantwoordt “bestaat dit bedrijf en wie is het”, het btw-nummer “wat zet ik op de factuur”, het RSIN komt terug bij fiscale en rapportagetoepassingen en het vestigingsnummer beantwoordt “welke locatie bedoelen we”. Meer over de basis lees je op onze pagina’s over het KVK-nummer en het RSIN.

Waarom het KVK-nummer je sleutel is

Als je maar één nummer opslaat, sla dan het KVK-nummer op. Elk bedrijf in het Handelsregister heeft er een: een BV, een stichting, een maatschap en een eenmanszaak. Het is openbaar, stabiel en je kunt het op elk moment in het register opzoeken.

Kijk naar de alternatieven. Het btw-nummer bestaat niet voor elk bedrijf, want wie niet btw-plichtig is heeft er geen en sommige ondernemers zijn vrijgesteld. Het RSIN bestaat voor eenmanszaken helemaal niet. Een naam is niet uniek, zoals we lieten zien bij bedrijf zoeken op naam. Het KVK-nummer is het enige nummer dat je bij elke inschrijving vindt.

Er is één kanttekening: het nummer identificeert de inschrijving, niet de persoon erachter. Een eenmanszaak die stopt en opnieuw begint krijgt een nieuw KVK-nummer. Wil je een persoon over de tijd volgen, dan heb je extra gegevens uit je eigen proces nodig, niet uit het register.

RSIN en btw-nummer zijn afgeleid, niet uitwisselbaar

De hardnekkigste mythe is dat je het btw-nummer kunt maken als NL + KVK-nummer + B01. Dat kan niet. Een KVK-nummer heeft 8 cijfers en het cijferblok van een Nederlands btw-nummer heeft er 9, omdat het het RSIN is. Voor een BV of NV is NL + RSIN + B01 een goede kandidaat, maar zelfs dat is een vuistregel. Een fiscale eenheid of een tweede subnummer doorbreekt het patroon, dus controleer het resultaat altijd bij VIES voordat het op een factuur komt. De regel staat uitgebreid op onze pagina over het btw-nummer afleiden uit een KVK-nummer.

Bij eenmanszaken werkt het patroon helemaal niet. Sinds 2020 wordt hun btw-identificatienummer willekeurig toegekend, bewust los van elk ander nummer, zodat het openbaar kan zonder dat een burgerservicenummer zichtbaar wordt. Zo’n bedrijf heeft een KVK-nummer en een btw-nummer, maar geen RSIN en geen manier om het ene uit het andere af te leiden.

Daarom geeft de KVKBase API het btw-nummer alleen terug bij rechtspersonen. Vraag je het uitgebreide profiel op met vat=true, dan komt een BV terug met een gevalideerd btw-nummer en krijgt een eenmanszaak of VOF vat: null. Dat is geen fout, zo werkt het register.

curl "https://api.kvkbase.nl/v1/lookup/12345678?enrich=true&vat=true" \
  -H "Authorization: Bearer jouw_api_key"

Heb je al een btw-nummer van een klant, bijvoorbeeld ingetikt in een checkout, dan controleer je dat los voor 1 token via /v1/validate/vat/{vatNumber}. Alle parameters staan in de API-documentatie.

Een datamodel dat standhoudt

Zet het KVK-nummer in een eigen kolom, als tekst en niet als geheel getal, want voorloopnullen zijn mogelijk. Maak het uniek per bedrijf, of per klantaccount als je B2B werkt. Al het andere hangt eraan.

Sla het btw-nummer op in een aparte kolom die leeg mag zijn, samen met de datum waarop je het voor het laatst controleerde. Btw-nummers veranderen van status: een bedrijf kan zich voor de btw laten uitschrijven terwijl het nog in het Handelsregister staat. Een “gecontroleerd op”-datum vertelt hoe oud je kennis is en laat je opnieuw controleren voor een grote factuur.

Bewaar het RSIN alleen als je het echt nodig hebt, bijvoorbeeld voor jaarrekeningen of een fiscale koppeling, en laat ook die kolom leeg mogen zijn. Geef vestigingen een eigen tabel met een verwijzing naar het bedrijf en het vestigingsnummer van 12 cijfers als sleutel. Het verschil tussen die twee staat in vestigingsnummer versus KVK-nummer.

create table company (
  kvk_number     text primary key,
  name           text not null,
  rsin           text,
  vat_number     text,
  vat_checked_at timestamptz
);

create table branch (
  branch_number  text primary key,
  kvk_number     text not null references company (kvk_number)
);

Valideer bij binnenkomst

Een nummer dat iemand heeft ingetikt is een bewering, geen feit. Controleer eerst het formaat: een KVK-nummer is precies 8 cijfers, en ons artikel over KVK-nummer validatieregels laat zien wat je offline wel en niet kunt controleren. Zoek het nummer daarna op, zodat je weet dat het bedrijf bestaat, actief is en de naam heeft die de klant opgeeft.

Doe dit één keer, op het moment dat het nummer je systeem binnenkomt, en bewaar het resultaat. Daarna werk je intern met het KVK-nummer en haal je alleen verse data op als dat nodig is, bijvoorbeeld bij een periodieke verversing of als er een statuswijziging wordt gemeld.

Samengevat

Gebruik het KVK-nummer als sleutel, behandel het btw-nummer als optioneel gevalideerd kenmerk, bewaar het RSIN als je toepassing erom vraagt en geef elke vestiging een eigen record. Zo dek je eenmanszaken, BV’s en alles ertussenin af zonder uitzonderingen in je code.

Wil je zien hoe een bedrijf er in al die nummers uitziet? Maak een KVKBase-account aan, zoek een KVK-nummer op met enrich=true&vat=true en vergelijk de identificatiegegevens in één antwoord.