Rechtsvormen in België en NACE-codes uitgelegd
Rechtsvormen in België (BV, NV, CV, VZW, eenmanszaak) en NACE-codes uitgelegd, met tabel, API-velden en codevoorbeeld voor segmentatie en leadlijsten.
Rechtsvorm en NACE-code zijn de twee velden waarmee je een bedrijfslijst het snelst betekenis geeft. De rechtsvorm zegt iets over aansprakelijkheid, schaal en hoe formeel een partij werkt. De NACE-code zegt wat het bedrijf doet. Wie facturen, CRM-segmenten of leadlijsten bouwt met Belgische gegevens komt ze voortdurend tegen. Deze gids legt uit wat de afkortingen betekenen en hoe je ze uit de KVKBase API haalt en gebruikt.
Rechtsvormen: het overzicht
Een Belgische onderneming is ofwel een rechtspersoon (legal_person in de API), ofwel een natuurlijke persoon (natural_person, bijvoorbeeld een eenmanszaak). De rechtsvorm bepaalt vooral wie aansprakelijk is en hoe het bedrijf bestuurd wordt.
| Nederlandse naam | Frans | Aansprakelijkheid (in grote lijnen) | Typisch gebruik |
|---|---|---|---|
| BV (besloten vennootschap) | SRL | Beperkt tot de inbreng | Kmo’s, zelfstandigen in bedrijfsvorm, startups |
| NV (naamloze vennootschap) | SA | Beperkt tot de inbreng | Grotere of kapitaalintensieve bedrijven, beursgenoteerde bedrijven |
| CV (cooperatieve vennootschap) | SC | Beperkt tot de inbreng | Samenwerkingsverbanden, landbouw, sociale ondernemingen |
| CommV (commanditaire vennootschap) | SComm | Beherende vennoten onbeperkt, stille vennoten beperkt | Familiale structuren, investeringsvehikels |
| VOF (vennootschap onder firma) | SNC | Vennoten persoonlijk en hoofdelijk | Kleine samenwerkingen tussen vennoten |
| VZW | ASBL | Beperkt, geen winstoogmerk | Verenigingen, clubs, scholen, zorg, cultuur |
| IVZW | AISBL | Beperkt, internationaal doel | Internationale organisaties met zetel in België |
| Stichting | Fondation | Beperkt tot het vermogen van de stichting | Goede doelen, vermogensbeheer met een vast doel |
| Maatschap | Société de droit commun | Meestal persoonlijk bij de vennoten | Samenwerking van vrije beroepen |
| Eenmanszaak | Personne physique | Onbeperkt, met privévermogen | Zelfstandigen in hoofd- of bijberoep |
Lees de kolom aansprakelijkheid als een eerste indicatie, niet als juridisch advies: bijzondere bepalingen in statuten of wet kunnen het beeld wijzigen.
Wat veranderde in 2019
Het Wetboek van vennootschappen en verenigingen (2019) maakte het vennootschapsrecht eenvoudiger. De BVBA werd de BV, andere vormen werden samengevoegd of afgeschaft. Dat laat sporen na: in oudere bestanden, contracten en handtekeningblokken staan nog oude benamingen. Voor je gegevens koppelt, is het slim om rechtsvormen te normaliseren op één lijst. De API helpt daarbij met legalFormCode (stabiel), legalFormShort (zoals “BV” of “NV”) en legalForm (de volledige, vertaalde omschrijving).
NACE-codes: wat zijn ze
NACE is de Europese indeling van economische activiteiten. In België gebruikt men de Belgische uitwerking, NACE-BEL, met codes van vijf cijfers. De structuur is hiërarchisch en je kan de code van links naar rechts “inzoomen” lezen:
| Niveau | Cijfers | Voorbeeld (illustratief) | Betekenis |
|---|---|---|---|
| Sectie | letter | J | Informatie en communicatie |
| Afdeling | 2 | 62 | Computerprogrammering en adviesactiviteiten |
| Groep | 3 | 62.0 | Idem, verder opgesplitst |
| Klasse | 4 | 62.01 | Verfijning van de groep |
| Subklasse | 5 | 62.010 | Belgische detaillering |
Een paar afdelingen ter illustratie: 41 is het bouwen van gebouwen, 47 is detailhandel, 56 is eet- en drinkgelegenheden, 62 is computerprogrammering en 69 is juridische en boekhoudkundige activiteiten. Wie op een grover niveau wil segmenteren, kijkt dus naar de eerste twee cijfers.
Versies
Er bestaan in België versies 2008 en 2025 van de nomenclatuur. Codes kunnen tussen versies verschuiven of worden opgesplitst, dus vergelijk codes enkel binnen dezelfde versie. Het antwoord van de API geeft de toegepaste versie weer in naceVersion.
Hoe de API rechtsvorm en activiteiten teruggeeft
Een lookup (GET /v1/be/lookup/{ondernemingsnummer}) bevat onder meer deze velden, hier ingekort en met een illustratief nummer:
{
"country": "BE",
"cbeNumberFormatted": "0123.456.789",
"name": "Voorbeeld BV",
"entityType": "legal_person",
"legalForm": "Besloten vennootschap",
"legalFormShort": "BV",
"naceVersion": "2008",
"activities": [
{ "sbiCode": "62010", "description": "Computerprogrammeringsactiviteiten", "isMain": true },
{ "sbiCode": "62020", "description": "Adviesactiviteiten op informaticagebied", "isMain": false }
]
}
Let op de naam: het veld sbiCode draagt hier de NACE-code. Elke activiteit heeft een omschrijving, en één ervan is als hoofdactiviteit gemarkeerd met isMain. Met ?lang=fr, de of en krijg je de labels in die taal. Bestaat het nummer niet, dan krijg je NOT_FOUND (404). Over de technische kant van de integratie lees je meer in de integratiegids.
Segmenteren en leadlijsten maken
Combineer de twee velden en je krijgt bruikbare segmenten:
- Rechtsvorm
BVofNVmet hoofdactiviteit in afdeling 62: IT-bedrijven in vennootschapsvorm. - Rechtsvorm
VZWin afdeling 85 (onderwijs) of 88 (maatschappelijke dienstverlening): scholen en zorgorganisaties. entityType: "natural_person"apart behandelen: dat zijn zelfstandigen, vaak met een privéadres, dus voorzichtig onder de AVG.
Zoek je bedrijven in een regio, dan combineer je GET /v1/be/search?q=...&postalCode=9000 met een lookup op de resultaten. Een search geeft maximaal 25 resultaten per pagina en bevat al legalForm, entityType, postcode en gemeente. De activiteiten haal je met een lookup of een batch van maximaal 25 nummers. Elke search, lookup en elk nummer in een batch kost 1 token, dus filter eerst op rechtsvorm en postcode voor je verrijkt. Een lijst bouwen op basis van ondernemingen die ook effectief nog actief zijn? Controleer isActive en lees de checklist voor klant- en leveranciersonderzoek.
Codevoorbeeld: groeperen per NACE-afdeling
// results: array of lookup responses from the Belgian lookup endpoint
function groupByNaceDivision(results) {
const groups = new Map();
for (const company of results) {
const main = company.activities?.find((a) => a.isMain);
if (!main) continue;
const digits = String(main.sbiCode).replace(/\D/g, "");
const division = digits.slice(0, 2); // first two digits = NACE division
if (!groups.has(division)) groups.set(division, []);
groups.get(division).push({
number: company.cbeNumberFormatted,
name: company.name,
legalForm: company.legalFormShort,
naceVersion: company.naceVersion,
});
}
return groups;
}
// usage: print the size of each division
for (const [division, list] of groupByNaceDivision(results)) {
console.log(`${division}: ${list.length} companies`);
}
Twee opmerkingen. De code gebruikt enkel de hoofdactiviteit, wil je bedrijven ook vinden via nevenactiviteiten, loop dan over alle activities. En groepeer enkel gegevens met dezelfde naceVersion, anders vergelijk je codes uit twee verschillende lijsten.
Aandachtspunten
- De gegevens zijn officiële Belgische bedrijfsgegevens, geen realtime feed en niet gegarandeerd volledig. Een lead die je nodig hebt voor een belangrijke beslissing check je best nog eens.
- Een NACE-code is een classificatie, geen vergunning of kwaliteitslabel. Wat een bedrijf registreert en wat het effectief doet, kan verschillen.
- Wil je het verschil tussen ondernemingsnummer en btw-nummer opfrissen, lees dan deze gids. Voor een eerste test zonder code bestaat de gratis tool /be/ondernemingsnummer-opzoeken, en /be/bedrijven toont een overzicht van bedrijven.
Aan de slag: maak gratis een account via /signup (50 tokens per maand, geen kredietkaart), bekijk de API-referentie en de prijzen. Meer over het Belgische aanbod vind je op /be.