BCE Open Data : le guide du développeur

La Banque-Carrefour des Entreprises (BCE, KBO en néerlandais) publie le registre des entreprises belges en open data. Ce guide explique comment obtenir les fichiers, ce qu’ils contiennent et comment en tenir une copie à jour, avec les pièges rencontrés en faisant tourner notre propre import chaque jour.

Dernière vérification : septembre 2026
Basé sur le cookbook officiel version R018.00 (décembre 2025) et sur les fichiers publiés en septembre 2026.

Ce qu’est BCE Open Data

BCE Open Data est l’extrait officiel et gratuit du registre tenu par le SPF Economie. Il couvre toutes les entités enregistrées et unités d’établissement actives : le fichier complet du 26 septembre 2026 comptait 1 964 143 entreprises et 1 699 251 unités d’établissement.

Il ne contient que la situation actuelle, sans historique : quand une entreprise déménage, seule sa nouvelle adresse figure dans le fichier.

Obtenir l’accès

Créez un compte gratuit sur le portail KBO Open Data et acceptez la licence. Aucun téléchargement anonyme n’est possible. Une fois inscrit, vous téléchargez les fichiers depuis le portail.

Le téléchargement automatisé par SFTP se demande séparément au SPF Economie, comme l’explique la page officielle BCE Open Data.

Fichiers Full et Update

Un fichier Full et un fichier Update sont publiés chaque jour, et chacun reste disponible 31 jours. Le fichier Full est un instantané complet ; le fichier Update contient les changements depuis le fichier Full précédent. Certains documents plus anciens, dont la licence, parlent encore de fichiers mensuels : ils sont quotidiens depuis fin 2025.

Le nom des fichiers contient un numéro d’extrait, qui augmente de un chaque jour, et la date. Le fichier Update porte le même nom, terminé par _Update.zip.

KboOpenData_0494_2026_09_26_Full.zip

Chaque zip contient un meta.csv avec la date de l’instantané, le numéro d’extrait, le type d’extrait (full ou update) et la version du format, qui indique quelle version du cookbook lire.

Les fichiers et leurs colonnes

Fichier Contenu Colonnes principales
enterprise.csv
Une ligne par entreprise active : situation juridique, type (personne physique ou morale), forme juridique, date de début
EnterpriseNumber, Status, JuridicalSituation, TypeOfEnterprise, JuridicalForm, JuridicalFormCAC, StartDate
establishment.csv
Les unités d’établissement, les lieux où une entreprise exerce ses activités
EstablishmentNumber, StartDate, EnterpriseNumber
denomination.csv
Les noms : dénomination, abréviation et nom commercial, par langue
EntityNumber, Language, TypeOfDenomination, Denomination
address.csv
Les adresses, en néerlandais et en français
EntityNumber, TypeOfAddress, Zipcode, MunicipalityNL, MunicipalityFR, StreetNL, StreetFR, HouseNumber, Box
contact.csv
Numéros de téléphone, adresses e-mail et sites web
EntityNumber, EntityContact, ContactType, Value
activity.csv
Les activités, en codes NACE, par groupe d’activités
EntityNumber, ActivityGroup, NaceVersion, NaceCode, Classification
branch.csv
Les succursales d’entités étrangères en Belgique
Id, StartDate, EnterpriseNumber
code.csv
La description de chaque code, par langue
Category, Code, Language, Description
meta.csv
Les informations sur l’extrait lui-même
SnapshotDate, ExtractTimestamp, ExtractType, ExtractNumber, Version

Inutile de charger tous les fichiers : prenez ceux dont votre application a besoin.

Format des fichiers

  • Valeurs séparées par des virgules, texte entre guillemets doubles, avec une ligne d’en-tête.
  • Un champ vide signifie : pas de valeur.
  • Les dates sont écrites dd-mm-yyyy, pas au format ISO 8601.
  • Les numéros d’entreprise s’écrivent 0123.456.789 et les numéros d’unité d’établissement 2.123.456.789. Les colonnes EntityNumber peuvent contenir les deux.

Appliquer les fichiers Update

Les fichiers Update remplacent les données par entité, pas par ligne. Pour chaque table, le zip contient un fichier _delete et un fichier _insert. Dès qu’une donnée d’une entité change dans une table, son numéro figure dans le fichier delete, et toutes ses lignes actuelles pour cette table, modifiées ou non, figurent dans le fichier insert.

  1. Chargez d’abord un fichier Full.
  2. Pour chaque table, supprimez toutes les lignes des numéros listés dans <table>_delete.csv.
  3. Insérez ensuite toutes les lignes de <table>_insert.csv.
  4. Remplacez votre table des codes par le code.csv du zip : les fichiers Update contiennent toujours la liste complète des codes.
-- for each table, e.g. denomination, after loading
-- denomination_delete.csv and denomination_insert.csv
BEGIN;
DELETE FROM denomination
  WHERE entity_number IN (SELECT entity_number FROM denomination_delete);
INSERT INTO denomination SELECT * FROM denomination_insert;
COMMIT;

Chaque fichier Update s’appuie sur le précédent : appliquez-les dans l’ordre. Les fichiers ne restent disponibles que 31 jours : si votre import prend plus de retard, repartez d’un fichier Full.

Les pièges à éviter

  • Les personnes physiques n’ont ni adresse de siège ni forme juridique. Elles représentent environ 39 % des entreprises (770 175 au 26 septembre 2026), et seules leurs unités d’établissement ont une adresse. Rendez optionnelles les jointures sur les adresses et les formes juridiques.
  • Une entité, plusieurs noms. Une entreprise peut avoir une dénomination, une abréviation et un nom commercial, chacun en plusieurs langues. Dans denomination.csv, la langue est un nombre (1 français, 2 néerlandais, 3 allemand, 4 anglais, 0 inconnue) ; dans code.csv, c’est un code en lettres.
  • Gardez les codes en texte. Formes juridiques, situations juridiques et groupes d’activités ont des zéros en tête (014, 000, 006). Stockés comme nombres, ils ne correspondent plus à code.csv.
  • Trois versions NACE-BEL côte à côte. Un code d’activité n’a de sens qu’avec sa NaceVersion : NACE-BEL 2003, 2008 ou 2025. 62010, par exemple, existe dans la table 2008 mais pas dans les tables 2003 ou 2025.
  • Pas de descriptions en anglais. code.csv décrit chaque code en néerlandais et en français, certains en allemand, et aucun en anglais pour l’instant.
  • Des adresses en deux langues. Les rues et les communes existent en néerlandais et en français seulement, et le pays est vide pour les adresses belges.
  • Les identifiants de succursale ne sont pas des numéros officiels. L’Id d’une succursale n’est utilisable nulle part ailleurs, et des noms et adresses peuvent appartenir à des succursales. Si vous ne chargez que les entreprises et les unités d’établissement, ces lignes n’ont rien à quoi se rattacher.
  • Personne ne tape le format avec points. Attendez-vous à 0123456789, BE0123456789 ou 0123.456.789, et normalisez le numéro avant de chercher.
  • Le volume. Dans le fichier complet du 26 septembre 2026, activity.csv compte à lui seul environ 34 millions de lignes. Lisez les fichiers CSV en flux plutôt que de les charger en mémoire, et prévoyez l’espace disque pour le zip, les fichiers extraits et votre base de données en même temps.

Ce que la licence vous demande

  • Mentionner la source et la date de la dernière mise à jour des données.
  • Ne pas modifier les données ni en dénaturer le sens, et les utiliser pour la finalité déclarée lors de l’inscription.
  • Ne pas utiliser les données à caractère personnel pour du marketing direct. Cela vise toutes les données des entreprises personnes physiques.
  • Pour les données à caractère personnel que vous conservez, vous êtes responsable du traitement au sens du RGPD et devez traiter les demandes d’accès, de rectification et d’opposition.
  • La licence prend fin si vous ne téléchargez rien pendant un an.

Ceci est un résumé pour développeurs, pas un avis juridique. Lisez la licence avant d’utiliser les données.

BCE Open Data ou CBE2JSON ?

BCE Open Data CBE2JSON
Fichiers ZIP / CSV
API REST JSON
Import Full + Update
Synchronisation gérée
Plusieurs tables à joindre
Objet entreprise prêt à l’emploi
Des dizaines de millions de lignes d’activités à gérer
Infrastructure hébergée
Base de données locale à maintenir
Aucun stockage requis
Recherche à développer
Recherche via API
Changements de format à surveiller
Maintenance assurée

BCE Open Data reste le meilleur choix si vous avez besoin de posséder ou d’analyser le dataset complet. CBE2JSON est conçu pour les applications qui veulent consulter les données sans maintenir l’infrastructure d’import.

Besoin des données, pas de l’infrastructure ?

CBE2JSON télécharge, importe et synchronise BCE Open Data chaque jour, puis vous expose les données via une API JSON prête à l’emploi.

Requête

POST https://api.cbe2json.be/byCBE
Content-Type: application/json

{ "clientId": "…", "secretKey": "…", "data": { "cbe": "0202.239.951" } }

Réponse (abrégée)

{
  "enterpriseNumber": "0202.239.951",
  "status": "AC",
  "startDate": "1930-07-19T00:00:00.000Z",
  "juridicalFormDescription": {
    "FR": "Société anonyme de droit public",
    "NL": "Naamloze vennootschap van publiek recht", …
  },
  "denominations": [
    { "language": 1, "typeOfDenomination": "001", "denomination": "PROXIMUS", … },
    { "language": 2, "typeOfDenomination": "001", "denomination": "PROXIMUS", … }
  ],
  "addresses": [
    { "typeOfAddress": "REGO", "zipcode": "1030", "municipalityFR": "Schaerbeek", … }
  ],
  "activities": [ … ],
  "establishments": [ … ],
  "meta": { "source": "CBE", "dataUpdatedAt": "2026-09-26" }
}
Essayer gratuitement Voir la documentation

50 crédits gratuits par mois, sans carte de crédit. Besoin de plus ? Lancez un essai Developer de 30 jours depuis votre dashboard.

Ressources liées

Sources : le cookbook BCE Open Data (SPF Economie), la licence Open Data et notre propre import quotidien des fichiers. Les chiffres proviennent du fichier complet du 26 septembre 2026.