Immatriculation des entreprises néerlandaises : guide développeur
KVKBase Team

Immatriculation des entreprises néerlandaises : guide développeur

Guide du registre néerlandais du commerce pour développeurs : numéro KVK, formes juridiques, codes SBI et numéros d'établissement expliqués.

kvkregistre-du-commercedéveloppeurs

Lorsque vous développez avec des données d’entreprises néerlandaises, vous rencontrez vite des termes comme numéro KVK, numéro d’établissement, code SBI et forme juridique. Cela peut sembler écrasant, mais le système est plus logique qu’il n’y paraît au premier abord.

Dans cet article, nous expliquons le système néerlandais du registre du commerce du point de vue d’un développeur : quelles données sont disponibles, ce qu’elles signifient et comment les exploiter efficacement dans votre application.

Qu’est-ce que le KVK ?

La Kamer van Koophandel (KVK), ou chambre de commerce, gère le Handelsregister (registre du commerce) : la base de données centrale de toutes les entreprises et personnes morales des Pays-Bas. Chaque entrepreneur et chaque société aux Pays-Bas a l’obligation de s’y inscrire.

Le registre du commerce contient des informations sur :

  • Le nom et l’adresse de l’entreprise
  • La forme juridique (BV, NV, entreprise individuelle, etc.)
  • Les activités de l’entreprise (codes SBI)
  • Les dirigeants et les représentants autorisés
  • Les établissements

Ces données sont en grande partie publiques et peuvent être consultées et utilisées dans des applications.

Le numéro KVK

Le numéro KVK (aussi appelé numéro de dossier) est l’identifiant principal d’une entreprise ou d’une personne morale dans le registre du commerce.

Spécifications techniques :

  • Longueur : exactement 8 chiffres
  • Type : numérique, mais à stocker toujours sous forme de chaîne de caractères (à cause des zéros initiaux)
  • Unicité : unique par entité juridique
  • Durée de vie : attribué à l’immatriculation et ne change jamais
  • Exemples : 12345678, 01234567
// Validation
const isValidKvk = (nr) => /^\d{8}$/.test(nr);

// Stockage en base de données
// SQL: kvk_number CHAR(8) NOT NULL
// MongoDB: kvkNumber: { type: String, match: /^\d{8}$/ }

Le numéro d’établissement (vestigingsnummer)

En plus du numéro KVK, chaque entreprise possède un ou plusieurs numéros d’établissement. Un établissement (vestiging) est un lieu physique où l’entreprise exerce son activité.

Spécifications techniques :

  • Longueur : exactement 12 chiffres
  • Relation : une entreprise (1 numéro KVK) peut avoir plusieurs établissements (plusieurs numéros d’établissement)
  • Exemple : 000012345678

La relation se présente ainsi :

Company (KVK: 12345678)
  |
  +-- Head office (Branch: 000012345678)
  +-- Amsterdam office (Branch: 000012345679)
  +-- Rotterdam office (Branch: 000012345680)

Dans la plupart des applications, vous travaillez avec le numéro KVK. Le numéro d’établissement devient pertinent lorsque vous devez identifier des sites précis, par exemple en logistique ou pour des services basés sur la localisation.

Les formes juridiques : les types d’entreprises

Les Pays-Bas connaissent diverses formes juridiques. Chacune a des caractéristiques juridiques différentes qui peuvent compter pour votre application.

Formes juridiques dotées de la personnalité juridique

Ce sont des entités juridiques indépendantes, distinctes de leurs propriétaires :

BV (Besloten Vennootschap, société à responsabilité limitée)

  • Forme juridique la plus répandue pour les entreprises de taille moyenne
  • Les actionnaires ne sont pas personnellement responsables
  • Capital social minimum : 0,01 EUR
  • Reconnaissable à la mention « B.V. » après le nom

NV (Naamloze Vennootschap, société anonyme)

  • Pour les grandes sociétés, souvent cotées en bourse
  • Les actions sont librement cessibles
  • Capital social minimum : 45 000 EUR
  • Reconnaissable à la mention « N.V. » après le nom

Stichting (fondation)

  • Ni membres ni actionnaires
  • Ne peut pas distribuer de bénéfices
  • Utilisée à des fins non lucratives, mais aussi pour des structures de holding

Vereniging (association)

  • Compte des membres
  • Deux variantes : avec ou sans pleine capacité juridique
  • Pensez aux clubs sportifs et aux associations professionnelles

Formes juridiques sans personnalité juridique

Avec ces formes juridiques, il n’y a pas de séparation entre l’entreprise et son propriétaire :

Eenmanszaak (entreprise individuelle)

  • Un seul propriétaire, entièrement responsable sur ses biens personnels
  • Pas de capital minimum
  • La forme juridique la plus simple
  • Attention : pour une entreprise individuelle, le nom commercial peut contenir un nom de personne (pertinent pour le RGPD)

VOF (Vennootschap Onder Firma, société en nom collectif)

  • Deux associés ou plus
  • Tous les associés sont solidairement responsables
  • Fréquente chez les professionnels qui collaborent

Maatschap (société civile professionnelle)

  • Similaire à la VOF, mais chaque associé n’est responsable que de sa propre part
  • Fréquente chez les médecins, avocats et experts-comptables

CV (Commanditaire Vennootschap, société en commandite)

  • Combinaison d’associés commandités (responsables) et d’associés commanditaires (responsabilité limitée)

Impact sur votre application

La forme juridique influence la manière dont vous traitez les données :

function getCompanyContext(legalForm) {
  switch (legalForm) {
    case 'Eenmanszaak':
      return {
        hasPersonalData: true,    // Le nom peut être un nom de personne
        addressMayBeHome: true,   // L'adresse peut être un domicile
        gdprSensitive: true       // Prudence accrue requise
      };
    case 'BV':
    case 'NV':
      return {
        hasPersonalData: false,
        addressMayBeHome: false,
        gdprSensitive: false
      };
    case 'VOF':
    case 'Maatschap':
      return {
        hasPersonalData: true,    // Les associés sont identifiables
        addressMayBeHome: true,   // Peut être une adresse résidentielle
        gdprSensitive: true
      };
    default:
      return {
        hasPersonalData: false,
        addressMayBeHome: false,
        gdprSensitive: false
      };
  }
}

Codes SBI : les activités de l’entreprise

SBI signifie Standaard Bedrijfsindeling (classification standard des entreprises). C’est un système de classification qui indique quelles activités une entreprise exerce. Chaque entreprise du registre du commerce possède un ou plusieurs codes SBI.

Structure

Les codes SBI sont organisés de façon hiérarchique :

Section:     J - Information and communication
  Division:  62 - Information technology
    Group:   620 - Information technology
      Class: 6201 - Software development and production
             6202 - IT consultancy
             6203 - Computer facilities management

Les codes comptent 4 ou 5 chiffres. Une entreprise peut avoir plusieurs codes SBI si elle exerce plusieurs activités.

Utilisation dans votre application

Les codes SBI sont utiles pour :

  • La segmentation du marché : filtrer les clients par secteur
  • L’évaluation des risques : certains secteurs présentent un profil de risque plus élevé
  • La conformité : certaines activités nécessitent des autorisations
  • Les statistiques : analyser votre base clients par secteur
// Trouver toutes les entreprises IT de votre base clients
const itCompanies = companies.filter(c =>
  c.sbiCodes.some(sbi => sbi.code.startsWith('62'))
);

// Catégoriser par grand secteur
function getSector(sbiCode) {
  const division = parseInt(sbiCode.substring(0, 2));

  if (division >= 1 && division <= 3) return 'Agriculture';
  if (division >= 10 && division <= 33) return 'Manufacturing';
  if (division >= 41 && division <= 43) return 'Construction';
  if (division >= 45 && division <= 47) return 'Trade';
  if (division >= 58 && division <= 63) return 'Information and communication';
  if (division >= 64 && division <= 66) return 'Financial services';
  if (division >= 69 && division <= 75) return 'Specialist business services';

  return 'Other';
}

Autres numéros d’identification utiles

Outre le numéro KVK et le numéro d’établissement, vous rencontrerez d’autres numéros en pratique :

Numéro de TVA (omzetbelastingnummer)

  • Format : NL + 9 chiffres + B + 2 chiffres
  • Exemple : NL123456789B01
  • Délivré par l’administration fiscale (Belastingdienst), pas par le KVK
  • Pas toujours disponible via l’API KVK

RSIN (numéro d’information des personnes morales et sociétés)

  • 9 chiffres
  • Identifie une personne morale auprès des systèmes de l’administration
  • Utilisé notamment pour la base de données des registres de la population

BSN (numéro de service citoyen)

  • 9 chiffres
  • Numéro d’identification personnel des personnes physiques
  • Jamais disponible via des API publiques
  • Pertinent uniquement pour les entreprises individuelles, et seulement pour le propriétaire

Exploiter efficacement les données

Conception de la base de données

Un schéma de base de données solide pour les données d’entreprises néerlandaises :

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), -- 'visiting' ou 'postal'
  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)
);

Fonction de recherche

Lorsque vous construisez une fonction de recherche d’entreprises, prévoyez plusieurs champs de recherche :

async function searchCompanies(query) {
  // Est-ce un numéro KVK ?
  if (/^\d{8}$/.test(query)) {
    return kvkbase.lookup(query);
  }

  // Est-ce un numéro de TVA ?
  if (/^NL\d{9}B\d{2}$/.test(query.replace(/[\s.]/g, ''))) {
    return kvkbase.searchByVat(query);
  }

  // Est-ce un code postal ?
  if (/^\d{4}[A-Z]{2}$/.test(query.replace(/\s/g, ''))) {
    return kvkbase.searchByPostalCode(query);
  }

  // Recherche par nom d'entreprise
  return kvkbase.search(query);
}

Conclusion

Le registre néerlandais du commerce est une riche source de données d’entreprises, dotée d’une structure logique. En tant que développeur, vous manipulez un nombre limité de concepts clés :

  • Numéro KVK (8 chiffres) : identifie l’entreprise
  • Numéro d’établissement (12 chiffres) : identifie le site
  • Forme juridique : détermine le caractère juridique
  • Codes SBI : décrivent les activités

En comprenant ces concepts et en les intégrant correctement dans votre modèle de données, vous posez des bases solides pour toute application qui travaille avec des entreprises néerlandaises.

Avec KVKBase, vous pouvez interroger toutes ces données via une seule API bien documentée, des simples recherches par numéro aux fonctions de recherche avancées. Vous évitez ainsi de vous perdre dans une documentation administrative complexe et vous vous concentrez sur l’essentiel : créer un excellent produit.