Nederlandse Bedrijfsregistratie: Wat Developers Moeten Weten
· KVKBase Team

Nederlandse Bedrijfsregistratie: Wat Developers Moeten Weten

Compleet overzicht van het Nederlandse Handelsregister voor developers. KVK-nummers, rechtsvormen, SBI-codes en vestigingsnummers uitgelegd.

kvkhandelsregisterdevelopers

Nederlandse Bedrijfsregistratie: Wat Developers Moeten Weten

Als developer die werkt met Nederlandse bedrijfsdata kom je al snel termen tegen als KVK-nummer, vestigingsnummer, SBI-code en rechtsvorm. Het kan overweldigend lijken, maar het systeem is logischer dan het op het eerste gezicht lijkt.

In dit artikel leggen we het Nederlandse handelsregistersysteem uit vanuit een developer-perspectief: welke data is er, wat betekent het en hoe gebruik je het effectief in je applicatie.

Wat is de KVK?

De Kamer van Koophandel (KVK) beheert het Handelsregister: de centrale database van alle ondernemingen en rechtspersonen in Nederland. Elke ondernemer en elk bedrijf in Nederland is verplicht zich hier in te schrijven.

Het Handelsregister bevat informatie over:

  • De naam en het adres van het bedrijf
  • De rechtsvorm (BV, NV, eenmanszaak, etc.)
  • De activiteiten van het bedrijf (SBI-codes)
  • De bestuurders en gemachtigden
  • De vestigingen

Deze data is grotendeels openbaar en kan worden opgezocht en gebruikt in applicaties.

Het KVK-nummer

Het KVK-nummer (ook wel dossiernummer) is de primaire identifier van een onderneming of rechtspersoon in het Handelsregister.

Technische specificaties:

  • Lengte: exact 8 cijfers
  • Type: numeriek, maar altijd opslaan als string (vanwege voorloopnullen)
  • Uniciteit: uniek per rechtspersoon
  • Levensduur: wordt toegekend bij inschrijving en verandert nooit
  • Voorbeeld: 12345678, 01234567
// Validatie
const isValidKvk = (nr) => /^\d{8}$/.test(nr);

// Opslag in database
// SQL: kvk_number CHAR(8) NOT NULL
// MongoDB: kvkNumber: { type: String, match: /^\d{8}$/ }

Het vestigingsnummer

Naast het KVK-nummer kent elk bedrijf een of meer vestigingsnummers. Een vestiging is een fysieke locatie waar het bedrijf activiteiten uitvoert.

Technische specificaties:

  • Lengte: exact 12 cijfers
  • Relatie: een bedrijf (1 KVK-nummer) kan meerdere vestigingen (meerdere vestigingsnummers) hebben
  • Voorbeeld: 000012345678

De relatie is als volgt:

Bedrijf (KVK: 12345678)
  |
  +-- Hoofdvestiging (Vestiging: 000012345678)
  +-- Filiaal Amsterdam (Vestiging: 000012345679)
  +-- Filiaal Rotterdam (Vestiging: 000012345680)

In de meeste toepassingen werk je met het KVK-nummer. Het vestigingsnummer is relevant als je specifieke locaties moet identificeren, bijvoorbeeld bij logistiek of locatiegebonden dienstverlening.

Rechtsvormen: de soorten bedrijven

Nederland kent diverse rechtsvormen. Elke rechtsvorm heeft andere juridische eigenschappen die relevant kunnen zijn voor je applicatie.

Rechtsvormen met rechtspersoonlijkheid

Deze rechtsvormen zijn zelfstandige juridische entiteiten, los van de eigenaren:

BV (Besloten Vennootschap)

  • Meest voorkomende rechtsvorm voor middelgrote bedrijven
  • Aandeelhouders zijn niet persoonlijk aansprakelijk
  • Minimaal startkapitaal: 0,01 euro
  • Herkenbaar aan “B.V.” achter de naam

NV (Naamloze Vennootschap)

  • Voor grote, vaak beursgenoteerde bedrijven
  • Aandelen zijn vrij overdraagbaar
  • Minimaal startkapitaal: 45.000 euro
  • Herkenbaar aan “N.V.” achter de naam

Stichting

  • Geen leden of aandeelhouders
  • Mag geen winst uitkeren
  • Wordt gebruikt voor ideele doelen, maar ook voor holdings

Vereniging

  • Heeft leden
  • Twee varianten: met en zonder volledige rechtsbevoegdheid
  • Denk aan sportclubs, brancheverenigingen

Rechtsvormen zonder rechtspersoonlijkheid

Bij deze rechtsvormen is er geen scheiding tussen het bedrijf en de eigenaar:

Eenmanszaak

  • Eén eigenaar, die volledig persoonlijk aansprakelijk is
  • Geen minimaal kapitaal
  • De meest eenvoudige rechtsvorm
  • Let op: bij eenmanszaken kan de bedrijfsnaam de persoonsnaam bevatten (GDPR-relevant)

VOF (Vennootschap Onder Firma)

  • Twee of meer vennoten
  • Alle vennoten zijn hoofdelijk aansprakelijk
  • Veel gebruikt bij samenwerkende professionals

Maatschap

  • Vergelijkbaar met VOF, maar elke maat is alleen aansprakelijk voor zijn eigen deel
  • Veel gebruikt door artsen, advocaten, accountants

CV (Commanditaire Vennootschap)

  • Combinatie van beherende vennoten (aansprakelijk) en stille vennoten (beperkt aansprakelijk)

Impact op je applicatie

De rechtsvorm beinvloedt hoe je met de data omgaat:

function getCompanyContext(legalForm) {
  switch (legalForm) {
    case 'Eenmanszaak':
      return {
        hasPersonalData: true,    // Naam kan persoonsnaam zijn
        addressMayBeHome: true,   // Adres kan woonadres zijn
        gdprSensitive: true       // Extra voorzichtigheid geboden
      };
    case 'BV':
    case 'NV':
      return {
        hasPersonalData: false,
        addressMayBeHome: false,
        gdprSensitive: false
      };
    case 'VOF':
    case 'Maatschap':
      return {
        hasPersonalData: true,    // Vennoten zijn identificeerbaar
        addressMayBeHome: true,   // Kan een woonadres zijn
        gdprSensitive: true
      };
    default:
      return {
        hasPersonalData: false,
        addressMayBeHome: false,
        gdprSensitive: false
      };
  }
}

SBI-codes: bedrijfsactiviteiten

SBI staat voor Standaard Bedrijfsindeling. Het is een classificatiesysteem dat aangeeft welke activiteiten een bedrijf uitvoert. Elk bedrijf in het Handelsregister heeft een of meer SBI-codes.

Structuur

SBI-codes zijn hiërarchisch opgebouwd:

Sectie:       J - Informatie en communicatie
  Afdeling:   62 - Informatietechnologie
    Groep:    620 - Informatietechnologie
      Klasse: 6201 - Ontwikkelen en produceren van software
              6202 - Advisering op het gebied van IT
              6203 - Beheer van computerfaciliteiten

De codes zijn 4 of 5 cijfers lang. Een bedrijf kan meerdere SBI-codes hebben als het meerdere activiteiten uitvoert.

Gebruik in je applicatie

SBI-codes zijn nuttig voor:

  • Marktsegmentatie: filter klanten op branche
  • Risicobeoordeling: bepaalde branches hebben een hoger risicoprofiel
  • Compliance: sommige activiteiten vereisen vergunningen
  • Statistiek: analyseer je klantenbestand per sector
// Zoek alle IT-bedrijven in je klantenbestand
const itCompanies = companies.filter(c =>
  c.sbiCodes.some(sbi => sbi.code.startsWith('62'))
);

// Categoriseer op hoofdsector
function getSector(sbiCode) {
  const section = {
    'A': 'Landbouw',
    'B': 'Winning van delfstoffen',
    'C': 'Industrie',
    'F': 'Bouwnijverheid',
    'G': 'Handel',
    'J': 'Informatie en communicatie',
    'K': 'Financiele dienstverlening',
    'M': 'Specialistische zakelijke diensten',
    // ... etc
  };

  // Eerste twee cijfers bepalen de afdeling,
  // die past binnen een sectie (letter)
  const division = parseInt(sbiCode.substring(0, 2));

  if (division >= 1 && division <= 3) return section['A'];
  if (division >= 10 && division <= 33) return section['C'];
  if (division >= 41 && division <= 43) return section['F'];
  if (division >= 45 && division <= 47) return section['G'];
  if (division >= 58 && division <= 63) return section['J'];
  if (division >= 64 && division <= 66) return section['K'];
  if (division >= 69 && division <= 75) return section['M'];

  return 'Overig';
}

Andere relevante identificatienummers

Naast het KVK-nummer en vestigingsnummer kom je in de praktijk nog andere nummers tegen:

BTW-nummer (omzetbelastingnummer)

  • Format: NL + 9 cijfers + B + 2 cijfers
  • Voorbeeld: NL123456789B01
  • Uitgegeven door de Belastingdienst, niet door de KVK
  • Niet altijd beschikbaar via de KVK API

RSIN (Rechtspersonen en Samenwerkingsverbanden Informatienummer)

  • 9 cijfers
  • Identificeert een rechtspersoon voor overheidssystemen
  • Wordt onder andere gebruikt voor de Basisregistratie Personen

BSN (Burgerservicenummer)

  • 9 cijfers
  • Persoonlijk identificatienummer voor natuurlijke personen
  • Nooit beschikbaar via openbare APIs
  • Alleen relevant bij eenmanszaken en dan alleen voor de eigenaar

Data effectief gebruiken

Databaseontwerp

Een goed databaseschema voor Nederlandse bedrijfsdata:

CREATE TABLE companies (
  id UUID PRIMARY KEY,
  kvk_number CHAR(8) UNIQUE NOT NULL,
  trade_name VARCHAR(255) NOT NULL,
  legal_form VARCHAR(100),
  is_active BOOLEAN DEFAULT true,
  vat_number VARCHAR(14),
  created_at TIMESTAMPTZ DEFAULT NOW(),
  updated_at TIMESTAMPTZ DEFAULT NOW(),
  verified_at TIMESTAMPTZ
);

CREATE TABLE company_addresses (
  id UUID PRIMARY KEY,
  company_id UUID REFERENCES companies(id),
  vestiging_number CHAR(12),
  address_type VARCHAR(20), -- 'bezoek' of 'post'
  street VARCHAR(255),
  house_number VARCHAR(10),
  postal_code CHAR(6),
  city VARCHAR(100),
  country CHAR(2) DEFAULT 'NL'
);

CREATE TABLE company_sbi_codes (
  company_id UUID REFERENCES companies(id),
  sbi_code VARCHAR(5),
  description VARCHAR(255),
  is_primary BOOLEAN DEFAULT false,
  PRIMARY KEY (company_id, sbi_code)
);

Zoekfunctionaliteit

Bij het bouwen van een zoekfunctie voor bedrijven, overweeg meerdere zoekvelden:

async function searchCompanies(query) {
  // Is het een KVK-nummer?
  if (/^\d{8}$/.test(query)) {
    return kvkbase.lookup(query);
  }

  // Is het een BTW-nummer?
  if (/^NL\d{9}B\d{2}$/.test(query.replace(/[\s.]/g, ''))) {
    return kvkbase.searchByVat(query);
  }

  // Is het een postcode?
  if (/^\d{4}[A-Z]{2}$/.test(query.replace(/\s/g, ''))) {
    return kvkbase.searchByPostalCode(query);
  }

  // Zoek op bedrijfsnaam
  return kvkbase.search(query);
}

Conclusie

Het Nederlandse Handelsregister is een rijke bron van bedrijfsdata met een logische structuur. Als developer heb je te maken met een beperkt aantal kernconcepten:

  • KVK-nummer (8 cijfers): identificeert het bedrijf
  • Vestigingsnummer (12 cijfers): identificeert de locatie
  • Rechtsvorm: bepaalt het juridische karakter
  • SBI-codes: beschrijven de activiteiten

Door deze concepten te begrijpen en correct in je datamodel op te nemen, bouw je een solide basis voor elke applicatie die werkt met Nederlandse bedrijven.

Met KVKBase kun je al deze data opvragen via een enkele, goed gedocumenteerde API — van basale lookups tot uitgebreide zoekfuncties. Dat scheelt het navigeren van complexe overheidsdocumentatie en laat je focussen op wat ertoe doet: een goed product bouwen.