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.789et les numéros d’unité d’établissement2.123.456.789. Les colonnesEntityNumberpeuvent 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.
- Chargez d’abord un fichier Full.
- Pour chaque table, supprimez toutes les lignes des numéros listés dans
<table>_delete.csv. - Insérez ensuite toutes les lignes de
<table>_insert.csv. - Remplacez votre table des codes par le
code.csvdu 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) ; danscode.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.csvdé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’
Idd’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,BE0123456789ou0123.456.789, et normalisez le numéro avant de chercher. - Le volume. Dans le fichier complet du 26 septembre 2026,
activity.csvcompte à 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.