Skip to main content

Table of Contents

Data Sources

Belgium uses a dual-source strategy combining open data with live registry enrichment. For a given entity, base data comes from BCE Open Data (fast, pre-loaded) and is enriched in parallel by CBE Public Search (slower, extracted from the public portal) for fields not available in the open data. Both sources run in parallel and their results are streamed progressively to the client.

All entity types

  • BCE Open Data (Banque-Carrefour des Entreprises / Kruispuntbank van Ondernemingen) — The Belgian open data portal operated by the FPS Economy. Updated regularly, this dataset covers ~2.5 million enterprises and provides base company data: legal name (multilingual), status, legal form, registration date, NACE activity codes, registered address, contact information (phone, website), and establishments. This is the primary source for fast company profiles.
  • CBE Public Search (kbopub.economie.fgov.be) — The public web interface of the Crossroads Bank for Enterprises. Used as an enrichment source running in parallel with BCE Open Data, providing data not available in the open dataset: legal representatives, other key persons (auditors, supervisory board), share capital, and additional establishment details. For companies not found in BCE Open Data (e.g., recently closed companies), CBE provides the complete profile in full mode.

Documents

  • NBB CBSO (National Bank of Belgium — Central Balance Sheet Office) — Official API (consult.cbso.nbb.be) operated by the National Bank of Belgium. Provides financial statements (annual accounts, consolidated accounts, holding company accounts) filed by Belgian companies. Documents are available in PDF, XBRL, and CSV formats depending on how they were submitted.
  • eJustice / Moniteur Belge (Belgian Official Gazette) — The official publication portal (ejustice.just.fgov.be) operated by the FPS Justice. Provides legal publications including articles of association, appointments/resignations, capital changes, registered office changes, and other official company modifications. All publications are in PDF format.
  • Belgian UBO Registry — The official UBO register operated by the FPS Finance (Treasury). Provides ultimate beneficial owner data and UBO extract PDFs. No public API exists; data is extracted from the registry’s web interface.
BCE Open Data is batch-synced from the FPS Economy because this is the only available access method for the full open dataset. The CBE Public Search portal provides live data but no structured API exists — data must be extracted from the web interface. This is a Belgian government infrastructure limitation.
The system runs both sources in parallel for maximum speed:
  1. BCE Open Data (fast, ~1s): Returns base company data immediately — name, status, legal form, activities, address, contact info, establishments
  2. CBE Public Search (slower, ~5-10s): Returns enrichment data — legal representatives, other key persons, share capital
If a company is not found in BCE Open Data (e.g., recently closed or recently created), CBE switches to full mode and returns all company data including base fields.Key Principle: Both sources are streamed progressively. The client receives base data almost immediately, then enrichment data arrives as CBE completes.

Company Identifiers

Query Identifiers

Belgium uses a single identifier system through the BCE/KBO (Crossroads Bank for Enterprises):
IdentifierFormatExampleNotes
Enterprise Number10 digits: 0XXX.XXX.XXX0403.227.515Primary identifier for all entity types
Enterprise Number (no dots)10 digits: 0XXXXXXXXX0403227515Also accepted, auto-normalized
Enterprise Number (9 digits)9 digits: XXXXXXXXX403227515Missing leading zero, auto-padded
VAT NumberBE + 10 digitsBE0403227515Also accepted as query input
Automatic Normalization: The API accepts enterprise numbers in any of the above formats. All inputs are automatically normalized to the canonical format 0XXX.XXX.XXX (with dots) before querying.

Identifiers in API Response

Identifier TypeFormatExampleNotes
Numero BCE0XXX.XXX.XXX0403.227.515Always present, canonical format with dots
Identifier naming: The identifier key in the API response is Numero BCE (French: Crossroads Bank for Enterprises number). This is the single, universal identifier for all Belgian entities — commercial companies, sole proprietors, non-profits, and public entities alike.

Search Capabilities

Search TypePatternExampleMatch TypeExpected Results
By Enterprise Number (dots)0XXX.XXX.XXX0403.227.515ExactSingle company (1 result)
By Enterprise Number (no dots)0XXXXXXXXX0403227515ExactSingle company (1 result)
By VAT NumberBE + 10 digitsBE0403227515ExactSingle company (1 result)
By Company NameText string"KBC Group"FuzzyMultiple results
Search uses both a pre-built index and live registry lookups. Name searches query an index built from BCE Open Data for fast results. Identifier searches also perform live CBE Public Search lookups as a fallback to ensure the most up-to-date data.
Multilingual names: Belgian companies have names in up to four languages (French, Dutch, German, English). Search matches across all language variants. The API returns the English name when available, falling back to French, then Dutch, then German.

Quirks & Gotchas

QuirkDetails
Dual-source streaming modelCompany profiles are assembled from two sources running in parallel (BCE Open Data + CBE). Initial data arrives fast (~1s), enrichment data (legal reps, capital) arrives later (~5-10s).
Multilingual company namesBelgium has four official languages. Legal names follow priority: English > French > Dutch > German. Other language variants appear as commercialNames.
BCE Open Data has no legal repsThe open dataset does not include legal representatives, other key persons, or capital. These come exclusively from CBE Public Search.
CBE has no structured APIThe CBE Public Search portal is a web interface, not a structured API. Data extraction depends on the portal’s format, which may change without notice.
Shareholders are AI-extractedBelgium has no structured shareholder registry. Shareholders are reconstructed by AI from financial documents (annual accounts). Quality depends on document availability.
UBO data has no public APIThe Belgian UBO Registry has no public API. Data is extracted from the registry’s web interface, which is slower and may occasionally be unavailable.
Company status uses juridical situation codesBCE distinguishes AC (Active) and ST (Stopped/Ceased) at the top level. The juridicalSituation code provides a richer standardised status in statusDetails, including UNDER_INSOLVENCY_PROCEEDING for ongoing bankruptcy or reorganisation proceedings and specific closureReason values (e.g. BANKRUPTCY, VOLUNTARY_DISSOLUTION, MERGER, SPLIT). See Juridical Situation Codes for the full mapping.
Registration date = Incorporation dateBoth registrationDate and incorporationDate return the same value — the BCE start_date field. In Belgium, registration and incorporation happen simultaneously upon filing with the BCE. The registry does not distinguish between the two concepts.
VAT is verified via VIESThe VAT number (which equals the enterprise number with a BE prefix) is verified against the EU VIES registry using a qualified check. The response includes a consultationNumber that serves as legal proof of verification. See VAT Verification for details.
Establishments are branch locationsEstablishments represent physical branch/office locations where the company operates, separate from the registered office. A company can have multiple establishments, each with its own ID, name, creation date, and address. BCE Open Data only includes active establishments.
NACE codes without descriptionsBCE Open Data provides NACE codes but no descriptions. CBE provides both code and description. When BCE is the source, NACE descriptions may be absent.
Financial statements in 3 formatsNBB CBSO financial statements filed electronically (XBRL/ZIP) are available in PDF, XBRL, and CSV. Paper-filed statements are not downloadable.
eJustice publications are freeAll Moniteur Belge publications are free to download. They cover the full publication history of a company.
Establishment addresses as fallbackFor sole proprietors with no registered seat address, the system uses the sole establishment address as the legal address.

Mappings

Company Status

Company status is determined deterministically from BCE Open Data and CBE Public Search — no AI inference is involved. The BCE status field provides a binary active flag (AC / ST). The juridicalSituation code adds a richer layer, surfaced in the status.statusDetails object:
FieldDescription
status.activetrue (BCE code AC) or false (BCE code ST)
status.localNameFrench label from the juridical situation code (e.g. Ouverture de faillite)
status.statusDetails.statusStandardised enum: ACTIVE, UNDER_INSOLVENCY_PROCEEDING, CLOSED, UNKNOWN
status.statusDetails.closureReasonClosure reason enum when applicable (see table below)
status.statusDetails.insolvencyStartDateDate insolvency proceedings began (for ongoing proceedings)
status.statusDetails.closureDateDate the company was formally closed

Juridical Situation Codes

The KBO/CBE assigns each enterprise a juridical situation code from the official A152 code list. The mapping to standardised values is:
CodeFrench labelStandardised status
000Situation normaleACTIVE
001Création juridiqueACTIVE
002ProrogationACTIVE
003Remplacement du numéroACTIVE
090Nouveaux statutsACTIVE
100Identification de l’entrepriseACTIVE
CodeFrench labelStandardised statusClosure reason
048Ouverture faillite (excusable)UNDER_INSOLVENCY_PROCEEDINGBANKRUPTCY
049Ouverture faillite (inexcusable)UNDER_INSOLVENCY_PROCEEDINGBANKRUPTCY
050Ouverture de failliteUNDER_INSOLVENCY_PROCEEDINGBANKRUPTCY
091Sursis (réorganisation)UNDER_INSOLVENCY_PROCEEDING
040Sursis provisoireUNDER_INSOLVENCY_PROCEEDING
041Sursis définitifUNDER_INSOLVENCY_PROCEEDING
030Concordat avant failliteUNDER_INSOLVENCY_PROCEEDINGBANKRUPTCY
CodeFrench labelStandardised statusClosure reason
010Dissolution de plein droitCLOSEDADMINISTRATIVE_DISSOLUTION
012Dissolution anticipéeCLOSEDVOLUNTARY_DISSOLUTION
013Dissolution judiciaireCLOSEDCOURT_ORDER
014Clôture de liquidationCLOSEDLIQUIDATION
011Arrêt des activités en BelgiqueCLOSEDOTHER
015Arrêt d’une entrepriseCLOSEDOTHER
016Cessation d’activitéCLOSEDOTHER
017Transfert d’une entrepriseCLOSEDOTHER
018Cessation de l’identificationCLOSEDOTHER
019Cessation EDRL ou Non UECLOSEDOTHER
CodeFrench labelStandardised statusClosure reason
020Réunion des partsCLOSEDMERGER
021Fusion par absorptionCLOSEDMERGER
022Fusion par constitutionCLOSEDMERGER
023ScissionCLOSEDSPLIT
024Scission par absorptionCLOSEDSPLIT
025Scission par constitutionCLOSEDSPLIT
026Scission mixteCLOSEDSPLIT
CodeFrench labelStandardised statusClosure reason
051Clôture faillite (excusable)CLOSEDBANKRUPTCY
052Clôture faillite (inexcusable)CLOSEDBANKRUPTCY
053Clôture de failliteCLOSEDBANKRUPTCY
031Concordat après failliteCLOSEDBANKRUPTCY
042Révocation du sursisCLOSEDOTHER
043Fin du sursisCLOSEDOTHER
006Arrêtée pour remplacementCLOSEDOTHER
CodeFrench labelStandardised status
999Dossier annuléUNKNOWN
The BCE Open Data uses the juridical situation code directly. The CBE Public Search portal displays the French label (e.g. “Ouverture de faillite”) which is reverse-mapped to the same standardised values. Both paths converge on status.statusDetails.

Registration & Incorporation Dates

Both registrationDate and incorporationDate return the same value — the BCE start_date field. In Belgium’s BCE/KBO system, registration and legal creation happen simultaneously upon filing. The registry maintains a single date per enterprise.
FieldValueSource
registrationDateEnterprise start datebce_enterprises.start_date
incorporationDateEnterprise start date (same)bce_enterprises.start_date
This is distinct from establishment creation dates (establishments[].creationDate), which represent when individual branch locations were opened — these can differ from the enterprise start date.

VAT Verification

The Belgian VAT number equals the enterprise number prefixed with BE (e.g. BE0403227515). VAT verification is performed against the EU VIES registry (VAT Information Exchange System) using a qualified check that includes a requester VAT number.
FieldDescription
taxId.typeEU_VAT
taxId.valueEnterprise number without BE prefix (e.g. 0403227515)
taxId.countryBE
taxId.verification.statusVERIFIED, UNVERIFIED, or UNAVAILABLE
taxId.verification.verifiedAtISO 8601 timestamp of the verification
taxId.verification.verifiedNameCompany name as registered with VIES
taxId.verification.verifiedAddressAddress as registered with VIES
taxId.verification.consultationNumberLegal proof of the VIES verification
Legal proof: The consultationNumber returned by VIES serves as official proof that the VAT number was verified at the given time. This is the same identifier you would get from the EU VIES web portal.

Establishments

Establishments represent physical branch locations where a company operates (offices, warehouses, retail locations), separate from the company’s registered office. A company can have multiple establishments.
FieldCompany RegistrationEstablishment
IdentifierEnterprise number (0XXX.XXX.XXX)Establishment number (separate ID)
DateregistrationDate / incorporationDatecreationDate (when the branch was opened)
AddresslegalAddress (registered office)address (branch physical location)
CountOne per companyMultiple per company
Each establishment includes:
FieldDescription
idUnique establishment number
nameBranch name (from denominations, or fallback to company name + city)
creationDateDate the branch was established
activeWhether the branch is currently active
addressPhysical address of the branch
BCE Open Data only includes active establishments. Inactive/closed establishments are only available through CBE Public Search. If a sole proprietor has no registered office address but has exactly one establishment, that establishment’s address is used as the legalAddress.
Belgium uses the KBO/BCE juridical form codelist maintained by the FPS Economy. The mapping to standardized forms and ISO 20275 (ELF) codes is deterministic — a formal lookup table maps each code to its French name, English translation, standardized category, and ISO 20275 code.
These are the modern legal forms introduced by the 2019 Code of Companies and Associations (CSA/WVV), which replaced most older forms:
CodeFrench NameEnglish TranslationStandardizedISO 20275
610Societe a responsabilite limiteePrivate Limited Company (BV/SRL)Limited Liability Company3W7E
014Societe anonymePublic Limited CompanyCorporationR85P
612Societe en commanditeLimited Partnership (CommV/SComm)PartnershipMQH3
706Societe cooperativeCooperative CompanyCooperative28FE
027Societe europeenne (Societas Europaea)European Company (Societas Europaea)Corporation36KV
Companies incorporated before the 2019 reform may still carry these legal forms:
CodeFrench NameEnglish TranslationStandardizedISO 20275
015Societe privee a responsabilite limiteePrivate Limited Liability CompanyLimited Liability CompanyN5NT
010Societe privee a responsabilite limitee unipersonnelleSingle-Member Private Limited Liability CompanyLimited Liability CompanyC609
011Societe en nom collectifGeneral PartnershipPartnershipUW1Y
012Societe en commandite simpleLimited PartnershipPartnershipLWV6
013Societe en commandite par actionsPartnership Limited by SharesPartnershipU2PN
016Societe cooperative (ancien statut)Cooperative Company (Old Statute)Cooperative28FE
CodeFrench NameEnglish TranslationStandardizedISO 20275
001Societe cooperative europeenneEuropean Cooperative SocietyCooperativeYBHM
006Societe cooperative a responsabilite illimiteeCooperative Company with Unlimited LiabilityCooperativeLWHF
007Societe cooperative a responsabilite illimitee et solidaireCooperative Company with Unlimited and Joint LiabilityCooperativeLWHF
008Societe cooperative a responsabilite limiteeCooperative Company with Limited LiabilityCooperative8E2A
009Societe cooperative a responsabilite limitee, cooperative de participationCooperative Company with Limited Liability, Participation CooperativeCooperative8E2A
106Societe cooperative a responsabilite illimitee de droit publicPublic Law Cooperative Company with Unlimited LiabilityCooperativeEXY8
107Cooperative a responsabilite illimitee de droit publicPublic Law Cooperative with Unlimited LiabilityCooperativeEXY8
108Societe cooperative a responsabilite limitee de droit publicPublic Law Cooperative Company with Limited LiabilityCooperativeX8ZK
109Societe cooperative a responsabilite limitee de droit publicPublic Law Cooperative Company with Limited LiabilityCooperativeX8ZK
116Societe cooperative de droit public (ancien statut)Public Law Cooperative Company (Old Statute)CooperativeJAM3
716Societe cooperative de droit publicPublic Law Cooperative CompanyCooperativeJAM3
CodeFrench NameEnglish TranslationStandardizedISO 20275
017Association sans but lucratifNon-Profit AssociationNonprofit OrganizationW3WH
018Etablissement d’utilite publiquePublic Utility InstitutionNonprofit OrganizationQZIS
019Mutualite / Societe MutualisteMutual Society / Mutual Insurance CompanyNonprofit Organization-
020Union professionnelleProfessional AssociationNonprofit Organization-
021Association d’assurances mutuellesMutual Insurance AssociationNonprofit Organization-
022Organisation scientifique internationale de droit belgeInternational Scientific Organization under Belgian LawNonprofit Organization-
026Fondation priveePrivate FoundationNonprofit OrganizationY1Q4
028Institution sans but lucratifNon-Profit InstitutionNonprofit Organization8YLB
029Fondation d’utilite publiquePublic Utility FoundationNonprofit OrganizationZUHK
070Association des coproprietairesCo-Owners’ AssociationNonprofit Organization-
117Association sans but lucratif de droit publicPublic Law Non-Profit AssociationNonprofit OrganizationEDMK
123Corporation professionnelle / OrdreProfessional Corporation / OrderNonprofit Organization-
125Association internationale sans but lucratifInternational Non-Profit AssociationNonprofit OrganizationV03J
128Temporel des cultes / Etablissement cultuel publicReligious Temporal / Public Religious InstitutionNonprofit Organization-
217Parti politique europeenEuropean Political PartyNonprofit Organization-
218Fondation politique europeenneEuropean Political FoundationNonprofit Organization-
325Association internationale sans but lucratif de droit publicPublic Law International Non-Profit AssociationNonprofit OrganizationV03J
724SyndicatTrade UnionNonprofit Organization-
CodeFrench NameEnglish TranslationStandardizedISO 20275
206Societe civile sous forme de societe cooperative a responsabilite illimiteeCivil Company as Cooperative with Unlimited LiabilityCooperativeWTLP
208Societe civile sous forme de societe cooperative a responsabilite limiteeCivil Company as Cooperative with Limited LiabilityCooperativeO5HQ
211Societe civile sous forme de societe en nom collectifCivil Company as General PartnershipPartnershipU5KF
212Societe civile sous forme de societe en commandite simpleCivil Company as Limited PartnershipPartnershipT922
213Societe civile sous forme de societe en commandite par actionsCivil Company as Partnership Limited by SharesPartnershipKLBO
214Societe civile sous forme de societe anonymeCivil Company as Public Limited CompanyCorporationXQZX
215Societe civile sous forme de societe privee a responsabilite limiteeCivil Company as Private Limited Liability CompanyLimited Liability CompanyV8L7
225Societe civile sous forme de societe agricoleCivil Company as Agricultural CompanyPartnershipUCT9
CodeFrench NameEnglish TranslationStandardizedISO 20275
506Societe cooperative a responsabilite illimitee a finalite socialeCooperative with Unlimited Liability with Social PurposeCooperative4E5P
508Societe cooperative a responsabilite limitee a finalite socialeCooperative with Limited Liability with Social PurposeCooperative2QSA
510Societe privee a responsabilite limitee unipersonnelle a finalite socialeSingle-Member Private Limited Company with Social PurposeLimited Liability CompanyPVT3
511Societe en nom collectif a finalite socialeGeneral Partnership with Social PurposePartnershipB910
512Societe en commandite simple a finalite socialeLimited Partnership with Social PurposePartnershipXLEO
513Societe en commandite par actions a finalite socialePartnership Limited by Shares with Social PurposePartnership1TX8
514Societe anonyme a finalite socialePublic Limited Company with Social PurposeCorporationV7FT
515Societe privee a responsabilite limitee a finalite socialePrivate Limited Liability Company with Social PurposeLimited Liability CompanyJNAD
560Groupement d’interet economique a finalite socialeEconomic Interest Grouping with Social PurposePartnershipO59C
606Societe cooperative a responsabilite illimitee et a finalite socialeCooperative with Unlimited Liability and Social PurposeCooperative4E5P
608Societe cooperative a responsabilite limitee a finalite socialeCooperative with Limited Liability and Social PurposeCooperative2QSA
614Societe anonyme a finalite socialePublic Limited Company with Social PurposeCorporationV7FT
651Autre forme a finalite sociale de droit publicOther Public Law Form with Social PurposeGovernment-Owned Entity-
CodeFrench NameEnglish TranslationStandardizedISO 20275
110Etat, Province, Region, CommunauteState, Province, Region, CommunityGovernment-Owned Entity-
114Societe anonyme de droit publicPublic Law Public Limited CompanyGovernment-Owned EntityTPTU
124Etablissement publicPublic InstitutionGovernment-Owned EntityQZIS
126Centre public d’action socialePublic Social Welfare CentreGovernment-Owned Entity-
127Monts-de-PietePawnshopGovernment-Owned Entity-
129Polder / wateringuePolder / WateringueGovernment-Owned Entity-
155Zone de police localeLocal Police ZoneGovernment-Owned Entity-
160Organisme public etranger ou internationalForeign or International Public BodyGovernment-Owned Entity-
301Service public federalFederal Public ServiceGovernment-Owned Entity-
302Service public federal de programmationFederal Public Programming ServiceGovernment-Owned Entity-
303Autre service federalOther Federal ServiceGovernment-Owned Entity-
310Autorite de la Region flamande et de la Communaute flamandeFlemish Region and Community AuthorityGovernment-Owned Entity-
320Autorite de la Region wallonneWalloon Region AuthorityGovernment-Owned Entity-
330Autorite de la Region de Bruxelles-CapitaleBrussels-Capital Region AuthorityGovernment-Owned Entity-
340Autorite de la Communaute francaiseFrench Community AuthorityGovernment-Owned Entity-
350Autorite de la Communaute germanophoneGerman-speaking Community AuthorityGovernment-Owned Entity-
370Ministere des Affaires economiquesMinistry of Economic AffairsGovernment-Owned Entity-
371Ministere des Affaires etrangeres, Commerce exterieur et Cooperation au DeveloppementMinistry of Foreign Affairs, Foreign Trade and Development CooperationGovernment-Owned Entity-
372Ministere de l’AgricultureMinistry of AgricultureGovernment-Owned Entity-
373Ministere des Classes moyennesMinistry of Small and Medium EnterprisesGovernment-Owned Entity-
374Ministere des CommunicationsMinistry of CommunicationsGovernment-Owned Entity-
375Ministere de la DefenseMinistry of DefenceGovernment-Owned Entity-
376Ministere de l’Education nationale et de la CultureMinistry of National Education and CultureGovernment-Owned Entity-
377Ministere de l’Emploi et du TravailMinistry of Employment and LabourGovernment-Owned Entity-
378Ministere des FinancesMinistry of FinanceGovernment-Owned Entity-
379Ministere de l’InterieurMinistry of the InteriorGovernment-Owned Entity-
380Ministere de la JusticeMinistry of JusticeGovernment-Owned Entity-
381Ministere de la Prevoyance socialeMinistry of Social WelfareGovernment-Owned Entity-
382Ministere de la Sante publique et de la FamilleMinistry of Public Health and FamilyGovernment-Owned Entity-
383Services du Premier MinistrePrime Minister’s ServicesGovernment-Owned Entity-
384Ministere des Communications et de l’InfrastructureMinistry of Communications and InfrastructureGovernment-Owned Entity-
385Ministere de la Communaute flamandeFlemish Community MinistryGovernment-Owned Entity-
386Ministere de la Communaute francaiseFrench Community MinistryGovernment-Owned Entity-
387Ministere de la Region de Bruxelles-CapitaleBrussels-Capital Region MinistryGovernment-Owned Entity-
388Ministere de la Region wallonneWalloon Region MinistryGovernment-Owned Entity-
389Ministere de la Communaute germanophoneGerman-speaking Community MinistryGovernment-Owned Entity-
390Ministere de la Fonction publiqueMinistry of Public ServiceGovernment-Owned Entity-
391Ministere des Classes moyennes et de l’AgricultureMinistry of SMEs and AgricultureGovernment-Owned Entity-
392Ministere des Affaires sociales, de la Sante publique et de l’EnvironnementMinistry of Social Affairs, Public Health and EnvironmentGovernment-Owned Entity-
400Autorite provincialeProvincial AuthorityGovernment-Owned Entity-
401Organisme immatricule par l’ONSS-APLOrganization Registered with NSSO-LPAGovernment-Owned Entity-
411Ville / communeTown / MunicipalityGovernment-Owned Entity-
412Centre public d’action socialePublic Social Welfare CentreGovernment-Owned Entity-
413Police localeLocal PoliceGovernment-Owned Entity-
414IntercommunaleIntermunicipal CompanyGovernment-Owned Entity-
415Association de projetProject AssociationGovernment-Owned Entity-
416Association prestataire de services (Region flamande)Service Provider Association (Flemish Region)Government-Owned Entity6DGX
417Association chargee de mission (Region flamande)Mission-Assigned Association (Flemish Region)Government-Owned EntityMGCM
418Regie communale autonomeAutonomous Municipal EnterpriseGovernment-Owned Entity-
419Regie provinciale autonomeAutonomous Provincial EnterpriseGovernment-Owned Entity-
420Association de CPASPCSW AssociationGovernment-Owned Entity-
421PrezonePre-ZoneGovernment-Owned Entity-
422Zone de secoursEmergency ZoneGovernment-Owned Entity-
616Societe a responsabilite limitee de droit publicPublic Law Private Limited CompanyGovernment-Owned EntityL05H
617Societe en commandite de droit publicPublic Law Limited PartnershipGovernment-Owned Entity-
Codes 370–392 are historical ministry forms, replaced by Federal Public Services (301–303) following the 2002 Copernicus reform. They remain in the KBO to preserve historical records.
CodeFrench NameEnglish TranslationStandardizedISO 20275
023Association etrangere privee avec etablissement en BelgiqueForeign Private Association with Establishment in BelgiumBranch or Representative Office3LMA
030Entite etrangereForeign EntityBranch or Representative Office3LMA
230Entite etrangere avec un bien immobilier en BelgiqueForeign Entity with Real Estate in BelgiumBranch or Representative Office3LMA
235Entite etrangere sans etablissement belge avec representant responsable TVAForeign Entity without Belgian Establishment with VAT RepresentativeBranch or Representative Office3LMA
453Societe etrangere sans etablissement belge cotee en bourseForeign Listed Company without Belgian EstablishmentBranch or Representative Office3LMA
454Entite etrangere avec un bien immobilier en Belgique (sans personnalite juridique)Foreign Entity with Real Estate in Belgium (without Legal Personality)Branch or Representative Office3LMA
CodeFrench NameEnglish TranslationStandardizedISO 20275
002Organisme de financement de pensionsPension Financing InstitutionOther-
003Unite TVAVAT UnitOther-
040Societe congolaise (loi de 1927)Congolese Company (1927 Law)Other-
051Autre forme de droit privé avec personnalite juridiqueOther Private Law Form with Legal PersonalityOther-
121Association d’assurances mutuelles de droit publicPublic Law Mutual Insurance AssociationGovernment-Owned Entity-
151Autre forme legaleOther Legal FormOther-
200Societe en formationCompany in FormationOther-
393DiversMiscellaneousOther-
451Organismes immatricules pour l’O.N.P.Organizations Registered with NPOGovernment-Owned Entity-
452Organisme immatricule pour l’Administration des PensionsOrganization Registered with Pension AdministrationGovernment-Owned Entity-
790Divers sans personnalite juridiqueMiscellaneous without Legal PersonalityOtherCFH5
999Forme legale inconnue (ONSS)Unknown Legal Form (NSSO)Other-
Legal representatives are extracted from the CBE Public Search portal. Role classification is deterministic — a formal lookup table maps each official CBE function code to its French name, English translation, and whether it constitutes a legal representative role. Both individuals and companies can hold legal representative roles. When a company is a legal representative, it is displayed with its enterprise number, and its permanent representative (the natural person acting on behalf of the company) is linked via the representedBy field.

Other Key Persons

Other key persons include supervisory, audit, and advisory roles that do not carry statutory authority to bind the company.
CodeFrench RoleEnglish TranslationStandardized
00003Associe ou membreAssociate or memberBoard Member
00004Representant de l’unite TVAVAT-grouping representativeOther
10001Fondateur d’une entite sans personnalite juridiqueFounder of a body without legal personalityOther
10011SecretaireSecretarySecretary
10012TresorierTreasurerOther
10016Membre du conseil de surveillanceMember of the supervisory boardSupervisory Board Member
10020CommissaireStatutory AuditorAuditor
10021Representant permanent du commissairePermanent representative of the auditorAuditor
10022Representant (non administrateur)Representative (non-administrator)Other
10045Membre du college de zoneMember of area associationBoard Member
10500Personne de contact EDRLEDRL contact personOther
11000Notaire suppleantSupply solicitorOther
12000Huissier de justice faisant fonctionActing bailiffOther
90003Commissaire au sursis (designation par tribunaux)Deferment auditor (designated by court)Auditor
90004Conseil judiciaire (prodigues)Judicial board (prodigals)Advisory Board Member

Shareholders

Belgium has no structured shareholder registry. Shareholder data is reconstructed by AI from financial documents (annual accounts filed with NBB CBSO).
AI-extracted data: Shareholders are inferred by AI from PDF documents. The quality and completeness depends on document availability and readability. This is not structured registry data.
FieldDescriptionSource
sharePercentageOwnership percentageAI-extracted from financial documents
typeIndividual or CompanyAI-inferred from document context

Activity Code Mapping

Belgium uses the NACE-BEL classification, which is the Belgian extension of the European NACE Rev. 2 standard. BCE Open Data provides three versions of NACE codes (2003, 2008, 2025); the system automatically selects the most recent version available.
NACE-BEL (Belgian) --> NACE Rev. 2 (European) --> ISIC Rev. 4 (International)
ClassificationSourceExampleAI Inferred?
NACEBCE Open Data / CBE64.19No (official)
ISICDerived from NACE (formal mapping)6419No (formal mapping)
NACE-to-ISIC mapping uses a formal lookup table and is never AI-inferred for Belgium. NACE codes from BCE Open Data may lack descriptions (codes only); CBE provides both codes and English descriptions.

Activity Code Versions

NACE VersionPriorityNotes
NACE 2025HighestNewest version, preferred when available
NACE 2008MediumMost common in existing data
NACE 2003LowestLegacy, only used when newer versions are absent
Within each version, activities are ordered by classification: MAIN (primary activity) first, then SECO (secondary), then ANCI (ancillary).

Data Availability

Data Availability Matrix

Data TypeBCE Open DataCBE Public SearchNotes
Company name (multilingual)YesYesBCE: FR > NL > DE > EN priority. CBE: EN > FR > NL
Company statusYesYesBinary: Active / Ceased
Legal formYesYesFormal mapper with ISO 20275 codes
Registration dateYesYesStart date of the enterprise
NACE activity codesYesYesBCE: codes only. CBE: codes + descriptions
Registered addressYesYesAvailable from both sources
Contact info (phone, website)YesNoOnly from BCE Open Data
EstablishmentsYesYesBCE: active only. CBE: active + inactive
Legal representativesNoYesFrom CBE functions section
Other key personsNoYesAuditors, supervisory board, etc.
Share capitalNoYesAmount and currency
ShareholdersNoNoAI-reconstructed from financial documents
Ultimate Beneficial OwnersNoNoFrom Belgian UBO Registry (separate source)

Documents by Company Type

Document TypeAPI CategoryFormatSKUAvailabilityNotes
Trade Register ExtracttradeRegisterExtractPDFBEL_TRADE_REGISTER_EXTRACTAll companiesCBE page converted to PDF (free)
UBO ExtractultimateBeneficialOwnersCertificatePDFBEL_UBO_FORMAll companiesFrom Belgian UBO Registry
Financial StatementsfinancialStatements[]PDF, XBRL, CSVBEL_FINANCIAL_STATEMENTSWhen filedFrom NBB CBSO (free)
Official PublicationsarticlesOfAssociation[] / otherDocuments[]PDFBEL_OTHER_DOCUMENTSWhen publishedFrom eJustice / Moniteur Belge (free)
Financial statement formats: Statements filed electronically (XBRL/ZIP submission) are available in PDF, XBRL, and CSV formats. Statements originally filed on paper or microfilm are not downloadable.
Publication types from eJustice include: Articles of Association, Appointments, Resignations, Capital changes, Shares, Company Name changes, Registered Office changes, Corporate Purpose changes, General Assembly decisions, Legal Form changes, Restructuring, Formation, Dissolution, Annual Accounts, and more. Each publication is categorized by type and available as a free PDF download.

Example API Responses

All examples use placeholder data. Query: POST /company with { "id": "<id>", "countryCode": "BE", "dataPoints": ["companyProfile"] }
{
  "company": {
    "id": "0414.138.629",
    "countryCode": "BE",
    "identifiers": { "Numero BCE": "0414.138.629" },
    "legalName": "Ancien Restaurant SPRL",
    "registrationDate": "1991-05-15",
    "incorporationDate": "1991-05-15",
    "status": { "localName": "Cesse", "active": false, "statusDetails": { "status": "CLOSED" } },
    "legalForm": { "localName": "Societe privee a responsabilite limitee", "englishTranslation": "Private Limited Liability Company", "standardized": "Limited Liability Company", "iso20275Code": "N5NT" },
    "activities": {
      "NACE": [{ "code": "56.10", "description": "Restaurants and mobile food service activities", "isAIInferred": false }],
      "ISIC": [{ "code": "5610", "description": "Restaurants and mobile food service activities", "isAIInferred": false }]
    },
    "legalAddress": { "addressLine1": "Rue de la Montagne 12", "postalCode": "1000", "city": "Bruxelles", "countryCode": "BE" }
  },
  "legalRepresentatives": [
    {
      "type": "individual",
      "role": { "localName": "Gerant", "englishTranslation": "Manager", "standardized": "Manager" },
      "individual": { "name": { "fullName": "Pierre Vandenberghe", "firstName": "Pierre", "lastName": "Vandenberghe" } }
    }
  ]
}
Note: Closed companies have active: false and status Cesse. When the company no longer exists in BCE Open Data, all data comes from CBE Public Search in full mode.
{
  "company": {
    "id": "0715.648.281",
    "countryCode": "BE",
    "identifiers": { "Numero BCE": "0715.648.281" },
    "legalName": "Dupont, Marc",
    "registrationDate": "2018-04-01",
    "incorporationDate": "2018-04-01",
    "status": { "localName": "Actif", "active": true, "statusDetails": { "status": "ACTIVE" } },
    "activities": {
      "NACE": [{ "code": "90.02", "isAIInferred": false }],
      "ISIC": [{ "code": "9002", "description": "Support activities to performing arts", "isAIInferred": false }]
    },
    "legalAddress": { "addressLine1": "Steenweg 45", "postalCode": "3000", "city": "Leuven", "countryCode": "BE" }
  },
  "legalRepresentatives": [
    {
      "type": "individual",
      "role": { "localName": "Fondateur d'une entite enregistree personne physique", "englishTranslation": "Founder registered entity natural person", "standardized": "Owner" },
      "individual": { "name": { "fullName": "Dupont, Marc", "firstName": "Marc", "lastName": "Dupont" } }
    }
  ],
  "establishments": [
    { "id": "2282534813", "name": "Dupont, Marc", "active": true, "creationDate": "2018-04-01", "address": { "addressLine1": "Steenweg 45", "postalCode": "3000", "city": "Leuven", "countryCode": "BE" } }
  ]
}
Note: Sole proprietors have no legal form code in BCE. The legalName is the individual’s name. The founder role (00001) is mapped as the legal representative.
{
  "company": {
    "id": "0456.123.789",
    "countryCode": "BE",
    "identifiers": { "Numero BCE": "0456.123.789" },
    "legalName": "Association Sportive de Bruxelles",
    "commercialNames": ["Brusselse Sportvereniging"],
    "registrationDate": "2010-09-15",
    "incorporationDate": "2010-09-15",
    "status": { "localName": "Actif", "active": true, "statusDetails": { "status": "ACTIVE" } },
    "legalForm": { "localName": "Association sans but lucratif", "englishTranslation": "Non-Profit Association", "standardized": "Nonprofit Organization", "iso20275Code": "W3WH" },
    "activities": {
      "NACE": [{ "code": "93.12", "isAIInferred": false }],
      "ISIC": [{ "code": "9312", "description": "Activities of sports clubs", "isAIInferred": false }]
    },
    "legalAddress": { "addressLine1": "Rue du Sport 8", "postalCode": "1050", "city": "Ixelles", "countryCode": "BE" }
  },
  "legalRepresentatives": [
    {
      "type": "individual",
      "role": { "localName": "President", "englishTranslation": "Chairman", "standardized": "President" },
      "individual": { "name": { "fullName": "Sophie Peeters", "firstName": "Sophie", "lastName": "Peeters" } }
    },
    {
      "type": "individual",
      "role": { "localName": "Administrateur", "englishTranslation": "Director", "standardized": "Director" },
      "individual": { "name": { "fullName": "Luc Van Damme", "firstName": "Luc", "lastName": "Van Damme" } }
    }
  ],
  "otherKeyPersons": [
    {
      "type": "individual",
      "role": { "localName": "Secretaire", "standardized": "Secretary" },
      "individual": { "name": { "fullName": "Emma Claes", "firstName": "Emma", "lastName": "Claes" } }
    },
    {
      "type": "individual",
      "role": { "localName": "Tresorier", "standardized": "Other" },
      "individual": { "name": { "fullName": "Thomas Willems", "firstName": "Thomas", "lastName": "Willems" } }
    }
  ]
}
Query with "dataPoints": ["ultimateBeneficialOwners"]:
{
  "ultimateBeneficialOwners": [
    {
      "entityId": "be-ubo-12345",
      "name": { "fullName": "Jan De Smedt", "firstName": "Jan", "lastName": "De Smedt" },
      "birthDate": { "day": 15, "month": 3, "year": 1975 },
      "nationality": "BE",
      "residenceAddress": { "addressLine1": "Koningsstraat 100", "postalCode": "1000", "city": "Brussel", "countryCode": "BE" },
      "control": {
        "types": ["OWNERSHIP_OF_SHARES", "VOTING_RIGHTS"],
        "details": [
          { "type": "SHARES", "percentageValue": 60, "nature": "unknown" },
          { "type": "VOTING_RIGHTS", "percentageValue": 60, "nature": "unknown" }
        ],
        "startDate": "2020-01-15"
      }
    },
    {
      "entityId": "be-ubo-67890",
      "name": { "fullName": "Marie Janssens", "firstName": "Marie", "lastName": "Janssens" },
      "birthDate": { "day": 22, "month": 8, "year": 1982 },
      "nationality": "BE",
      "residenceAddress": { "addressLine1": "Avenue Louise 200", "postalCode": "1050", "city": "Ixelles", "countryCode": "BE" },
      "control": {
        "types": ["OWNERSHIP_OF_SHARES", "VOTING_RIGHTS"],
        "details": [
          { "type": "SHARES", "percentageValue": 40, "nature": "unknown" },
          { "type": "VOTING_RIGHTS", "percentageValue": 40, "nature": "unknown" }
        ],
        "startDate": "2020-01-15"
      }
    }
  ]
}
Note: UBO data comes from the Belgian UBO Registry. The nature field is always "unknown" because the Belgian registry does not specify whether ownership is direct or indirect. Birth dates are in DD/MM/YYYY format from the API, parsed into structured components.
Documents are returned when "dataPoints": ["documents"] is requested.
API CategoryDocumentSourceNotes
tradeRegisterExtractCBE page as PDFCBE Public SearchAlways available, free
ultimateBeneficialOwnersCertificateUBO extract PDFBelgian UBO RegistryAlways listed
financialStatements[]Annual accountsNBB CBSOMultiple years, up to 3 formats per filing
articlesOfAssociation[]Statutes from Moniteur BelgeeJusticeWhen published
otherDocuments[]Other publicationseJusticeAppointments, capital changes, etc.