Start here
This guide contains public integration notes for Belgium. Use it for identifier formats, search behavior, and country-specific caveats. The live source of truth for coverage, pricing, data sources, documents, legal forms, roles, and status values is the pricing page.Belgium coverage, pricing, and sources
Table of Contents
- Data Sources
- Company Identifiers
- Search Capabilities
- Compliance Flags
- Quirks & Gotchas
- Mappings
- Data Availability
- Example API Responses
Data Sources
Belgium combines open data with the official register service. For a given entity, base data comes from BCE Open Data and CBE Public Search adds the fields the open data does not carry (legal representatives, other key persons, share capital). Each datapoint is delivered as soon as it is ready.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 official public search service of the Crossroads Bank for Enterprises. It provides the data not available in the open dataset: legal representatives, other key persons (auditors, supervisory board) and share capital. For companies not found in BCE Open Data (e.g., closed companies), CBE provides the complete profile in verification 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 Register: The official UBO register operated by the FPS Finance (Treasury). Provides ultimate beneficial owner data and UBO extract PDFs.
company and establishments are served from BCE Open Data only, so these companies return not found. Retry in verification mode to get the full profile.How do the two sources work together?
How do the two sources work together?
- BCE Open Data: base company data (name, status, legal form, activities, address, contact info, establishments)
- CBE Public Search: legal representatives and other key persons (both modes), and share capital (verification mode only)
company and establishments return not found for these companies.Each datapoint (company, legalRepresentatives, establishments, …) is delivered as soon as it is ready. For current response times, see the Speed section of the pricing page.Source labels in dataSources
In verification mode, fields from BCE Open Data are labelled live_from_registry (register bce_opendata) when our copy holds the register’s latest daily publication. That is checked on every request.
If the copy cannot be confirmed current, verification does not use it. Company details and establishments are fetched live from CBE Public Search instead (register bce). If that live lookup fails, the datapoint fails with a retryable source_unavailable error rather than returning older data. The registration date is the one field only BCE Open Data carries, and it keeps cached_from_registry in that case.
Prefill results always carry cached_from_registry for BCE Open Data fields. Share capital, legal representatives and other key persons come from CBE Public Search and are labelled live_from_registry (register bce).
Compliance Flags
Belgium covers two independent UBO compliance signals undercompany.complianceFlags. They describe register-reported obligations and notices; they do not change retrieval status in request.dataStatus or the company’s legal status.
company object limited to the confirmation flag; it does not include an unrequested company profile. A document-only request does not provide these flags.
The SPF Finances guidance requires annual confirmation even when ownership has not changed.
A modification date, an owner’s control-start date, or a document’s creation date cannot establish overdue confirmation. Topograph returns the register’s explicit statement; an absent flag means unknown, including when access or confirmation evidence is unavailable.
Each flag carries its own source (ubo_register or bce) and an observedAt timestamp. This is when the statement was observed, not a confirmation or modification date.
Reused results retain that observation time. Per-flag provenance is available under dataSources.company.
Example: valid confirmation and an administrative notice
Example: valid confirmation and an administrative notice
Company Identifiers
company.identifiers.euid is an optional European Unique Identifier. Supported for domestic company forms registered in BRIS: SA/NV, SRL/BV (and former SPRL/BVBA), SCA/Comm.VA, Societas Europaea and new-statute cooperatives (SC/CV), including their public-law and social-purpose variants. Example: BEKBOBCE.0403.170.701. It is returned as an output identifier and cannot be used as a search input. See EUID coverage and interpretation.
Query Identifiers
Belgium uses a single identifier system through the BCE/KBO (Crossroads Bank for Enterprises):Identifiers in API Response
ondernemingsnummer (Dutch: enterprise number, issued by the Crossroads Bank for Enterprises). This is the single, universal identifier for all Belgian entities (commercial companies, sole proprietors, non-profits, and public entities alike). The legacy Numéro BCE key was retired on 1 September 2026. In verification mode, the VAT number is also returned in taxId with its VIES check (see VAT Verification).Legal Entity Identifier (LEI)
GLEIF is the supplementary data source for this identifier.company.identifiers.lei is optional. It is returned when the enterprise number (ondernemingsnummer) matches exactly one LEI through a GLEIF registration or validation reference.
The Legal Entity Identifier has 20 uppercase alphanumeric characters, ending in two check digits.
Coverage varies by entity. An absent lei does not prove that the company has no LEI. Lapsed, retired or merged LEIs may be returned; annulled LEIs are excluded.
Search Capabilities
Active companies only
WithactiveOnly=true, every result is checked against the status the register reports, and entities it reports stopped are removed, also from streamed results. An entity that is legally created but not yet active is still returned.
Quirks & Gotchas
Mappings
Company Status
Company status is determined deterministically from BCE Open Data and CBE Public Search. No AI inference is involved. The BCEstatus field provides a binary active flag (AC / ST). The juridicalSituation code adds a richer layer, surfaced in the status.statusDetails object:
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:Active states
Active states
Insolvency proceedings (company still exists)
Insolvency proceedings (company still exists)
Closed: dissolution
Closed: dissolution
Closed: mergers & splits
Closed: mergers & splits
Closed: bankruptcy concluded
Closed: bankruptcy concluded
Other / Unknown
Other / Unknown
status.statusDetails.Registration & Incorporation Dates
BothregistrationDate and incorporationDate return the same value, the BCE/KBO enterprise start date. In Belgium’s BCE/KBO system, registration and legal creation happen simultaneously upon filing. The register maintains a single date per enterprise.
registrationDate and incorporationDate.establishments[].creationDate), which represent when individual branch locations were opened, and these can differ from the enterprise start date.VAT Verification
Verification mode only. The Belgian VAT number equals the enterprise number prefixed withBE (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.
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.legalAddress.Legal Forms
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.015, the former SPRL/BVBA) are returned under their current equivalent (Société à responsabilité limitée, 3W7E). The tables below show the values the API returns for each code.Sole Proprietors (Natural Persons)
Sole Proprietors (Natural Persons)
Key Business Forms (2019 Code of Companies and Associations)
Key Business Forms (2019 Code of Companies and Associations)
Pre-2019 Business Forms (Old Statutes)
Pre-2019 Business Forms (Old Statutes)
Cooperative Companies
Cooperative Companies
Non-Profit Organizations
Non-Profit Organizations
Civil Companies
Civil Companies
Public Law & Government Entities
Public Law & Government Entities
Foreign Entities & Branch Offices
Foreign Entities & Branch Offices
Economic Interest Groupings & Partnerships without Legal Personality
Economic Interest Groupings & Partnerships without Legal Personality
Other & Miscellaneous Forms
Other & Miscellaneous Forms
Legal Representatives
The sameentityId can appear in several entries when a person holds multiple roles. For example, Administrateur (Director) and Membre du comité de direction (Member of the management committee) are separate roles, but both have role.standardized: "Director". Group by entityId to identify the person while preserving each role and its appointment dates. See Person identities and role entries.
Legal representatives come from CBE Public Search. 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 returned with its enterprise number and legal name. Its permanent representative (the natural person acting on behalf of the company) appears as a separate legal representative entry with the role Représentant permanent.
Legal Representative Roles
Legal Representative Roles
Person Enrichment
Base person data (names, roles, start dates) comes from the register. WhenagenticEnrichment: true is passed in the request, the system attempts to enrich the details of individuals in legalRepresentatives, otherKeyPersons, shareholders and ultimateBeneficialOwners from eJustice publications (Moniteur Belge).
This is best effort. Enrichment depends on publication availability and content. Not all fields are guaranteed for every person. Older founding acts typically contain birth date, birth place and nationality; appointment notices typically contain residence addresses. Recent founding acts print the birth details as ”(…)”, so a newly incorporated company rarely gets a birth date from its publications. Recently appointed representatives or companies with sparse publication history may have partial or no enrichment. Sole traders and co-ownership associations publish nothing in the Moniteur Belge and get no enrichment from it.
What can be enriched:
- Birth date
- Birth place (
birthAddress.city) - Nationality
- Residence address (geocoded)
- Signing powers of legal representatives (
signingPowers,signingAuthority), for individuals and companies alike
ultimateBeneficialOwners of the same request, or, when the request asks for no UBOs, from the latest UBO register read your account made for the company (birth date and nationality only, since an address may have changed). Enrichment never runs a UBO lookup of its own, uses no other customer’s data, and copies nothing when UBO access is turned off for the workspace.
Signing powers: the articles of association say how the company is represented towards third parties: every director alone, two directors jointly, the managing director alone within daily management, and so on. The notarial extracts published in the Moniteur Belge restate that clause. Enrichment reads the most recent publication that restates it, not the founding act, since companies change the rule over time. It then keeps, for each legal representative, the sentences that apply to their role:
signingPowers.localTextis the publication’s own wording, verbatim, andsigningPowers.englishTranslationits translation.signingAuthorityis an AI reading of that text: averdict(sole,sole_within_limits,jointorunclear), one rule per scope with its mode and any required co-signers, and the verbatim excerpt each rule was read from.representationModeis also set when that reading is confident and one mode covers the representative’s general representation of the company:solewhen they can bind the company alone for all acts,joint(withminimumSignatories) when every way they can bind it needs a co-signer. It is absent when the authority is conditional, for example a managing director who may sign alone only within daily management. ReadsigningAuthorityfor those. For Belgium this mode is read from the published articles, not stated by the register as a field.
enriching status. Enriched fields are attributed to ejustice in dataSources. Values copied from the UBO register are attributed field by field, under keys such as individual.birthDate and individual.nationality, to ubo_register: live_from_registry when they come from the same request, cached_from_registry when they come from an earlier read.
Other Key Persons
Other key persons include supervisory, audit, advisory and membership offices whose title does not establish general authority to bind the company. A non-administrator representative can hold a delegated representation mandate and appears among legal representatives; its scope still depends on the appointment and applicable law.Other Key Person Roles
Other Key Person Roles
Shareholders
Belgium has no structured shareholder register. Shareholder data is reconstructed by AI from company documents: annual accounts filed with NBB CBSO and Moniteur Belge publications (constitution, capital increases). Sole traders and non-profit forms (ASBL/VZW, foundations and similar) have no share capital. For these,shareholders returns a not-applicable response.
Activity Code Mapping
Belgium uses the NACE-BEL classification, the Belgian extension of the European NACE standard. BCE Open Data provides three versions of NACE codes (2003, 2008, 2025); the system automatically selects the most recent version available.69.201). Standard NACE codes are class-level codes (e.g., 69.20), derived by truncating the 5th digit. Multiple NACE-BEL codes can map to the same NACE class and are de-duplicated. If a code is already at class level, it appears in NACE only, not in NACE_BEL.
You get one NACE and one ISIC code per declared NACE-BEL code. A company with three declared
activities returns three of each. Where a Belgian code has no single equivalent in NACE Rev.2.1, the
shared parent class is returned rather than every candidate — see
One code in, one code out.
NACE_BEL_2025, NACE_BEL_2008 or NACE_BEL_2003 keys for stamped national records and NACE and ISIC for standardized codes. Bare NACE_BEL contains only unstamped records. See the standardization guide.Activity Code Versions
isMainActivity: true on the NACE_BEL code, and the derived NACE and ISIC codes inherit the flag. At most one code per classification is flagged; activities without the flag are not necessarily secondary, the register may simply not classify them.
Data Availability
Data Availability Matrix
Subsidiaries
subsidiaries is available for Belgium. It returns the equity participations the queried company holds in other entities, AI-extracted from section 6.5.1 “Participating interests and other rights in other companies” of the latest annual accounts filed at the National Bank of Belgium Central Balance Sheet Office. Verify the values against the filing before relying on them for compliance.
Availability follows the filing: a company that has filed no annual accounts returns no subsidiaries, and small or micro-schema filers frequently omit the participating-interests section entirely. subsidiaries is a separate data block from company, and it is available in verification mode only. See the Subsidiaries guide for the response shape.
Documents by Company Type
articlesOfAssociation[] is the full coordinated text of a company’s statutes, held in the Belgian notaries’ database and covering legal persons incorporated or amended before a Belgian notary since 1 May 2019 (BV/SRL, CV/SC, NV/SA). officialPublications[] holds the Moniteur Belge publications, which are short deed extracts — including statute-change extracts — and never the complete statutes. Entities whose statutes were never amended after 1 May 2019, and forms with no notarial deed (CommV/SComm, VOF/SNC, maatschap), have no coordinated version and must be ordered from the enterprise court registry.Example API Responses
All examples use placeholder data. Query:POST /v2/company with { "id": "<id>", "countryCode": "BE", "dataPoints": ["company", "legalRepresentatives"] }
Active SA (Société anonyme), with legal representatives
Active SA (Société anonyme), with legal representatives
Closed Company
Closed Company
active: false, and status.localName carries the juridical situation label. Closed companies are not in BCE Open Data, so in verification mode all data comes from CBE Public Search, without registrationDate and incorporationDate. The pre-2019 legal form code (015, SPRL) is returned as its current equivalent. In prefill mode, company returns not found for these companies.Sole Proprietor (Entreprise individuelle)
Sole Proprietor (Entreprise individuelle)
3N94) is returned instead. The legalName is the individual’s name. The founder role (00001) is mapped as the legal representative.Non-Profit Association (ASBL)
Non-Profit Association (ASBL)
UBO Response (dedicated datapoint)
UBO Response (dedicated datapoint)
"dataPoints": ["ultimateBeneficialOwners"]:nature field is always null because the Belgian registry does not specify whether ownership is direct or indirect. null means the register stated the control but not its nature; an absent nature means the source said nothing about nature at all. Birth dates are in DD/MM/YYYY format from the API, parsed into structured components.Available Documents (example list)
Available Documents (example list)
"dataPoints": ["availableDocuments"] is requested.