CompanyBelgium

Belgian Crossroads Bank for Enterprises (BCE/KBO) API: complete English developer documentation

English developer documentation for the Belgian Crossroads Bank for Enterprises API. Overview of the BCE/KBO registry, legal context, access options, quick start with cURL examples, and integration patterns for international developers.

May 14, 20268 min read

In brief

The Belgian Crossroads Bank for Enterprises (BCE/KBO) is the official central registry for all Belgian legal entities, managed by the SPF Economie. Company Belgium provides the fastest REST/JSON access to its 2 million companies, with enrichments for UBO, Peppol and real-time webhooks — plus SDKs for Python and TypeScript.

What is the Belgian Crossroads Bank for Enterprises?

The Belgian Crossroads Bank for Enterprises (abbreviated BCE in French — *Banque-Carrefour des Entreprises* — and KBO in Dutch — *Kruispuntbank van Ondernemingen*) is the official central registry of every legal entity active in Belgium: companies, self-employed individuals, non-profit associations, foundations and public bodies.

It is managed by the Belgian Federal Public Service for Economy (SPF Economie / FOD Economie). All data are public except those legally protected (e.g. private addresses of natural persons).

Key figures (2026)

  • ~2 million active legal entities
  • ~1.7 million establishments (physical locations attached to entities)
  • ~34 million NACE activity assignments
  • ~3.3 million company denominations across FR, NL, EN
  • Updated daily via incremental delta files

Why integrate the BCE/KBO

Use cases that justify accessing the BCE:

  • Supplier verification (existence, legal status, address, ID)
  • Auto-fill of business signup forms by VAT number
  • Sales prospecting by sector (NACE code), city or company size
  • Peppol invoicing (linking the BCE number to an electronic invoicing endpoint)
  • Beneficial ownership transparency via the UBO register — see our UBO article

Identifier formats

The BCE uses two main identifier types:

Enterprise number

10-digit identifier for legal entities. Format: NNNN.NNN.NNN (with dots) or NNNNNNNNNN (without). The Belgian VAT number is the enterprise number prefixed with BE.

Example: 0200.065.765 → VAT: BE0200065765

Establishment number

10-digit identifier for physical sites. Format: NNNN.NNN.NNN starting with 2. An entity can have multiple establishments.

Example: 2.100.000.123

Official access options

The Belgian government provides three official channels:

1. KBOPublicSearch (SOAP)

The official SOAP web service at kbopub.economie.fgov.be. Free, no API key required for public reads. Returns XML envelopes. No REST, no JSON.

Documentation in French/Dutch only. Best suited to enterprise integrations with existing SOAP tooling.

2. EnterpriseRegister (SOAP, authenticated)

A second SOAP service for accredited actors only: notaries, court clerks, banks, government partners. Requires an explicit agreement with the SPF Economie.

3. Open Data (FTP)

A daily FTP drop of ZIP files containing the full registry as CSV. Two variants:

  • Full: complete snapshot (~500 MB compressed)
  • Update: daily delta (insert + delete pairs)

Suitable for bulk processing and data warehouses. Not suitable for real-time lookups.

Third-party REST APIs

Because the official SOAP API is unwieldy in 2026 stacks, several third-party REST APIs have emerged. We cover them in detail in our comparison article and discuss the limits of the official API. The main ones:

  • CBEAPI (cbeapi.be) — free community project
  • Banque Carrefour Entreprises (banquecarrefourentreprises.fr) — French paid service
  • Kruispuntdatabank (kruispuntdatabank.be) — Dutch paid service
  • Company Belgium (companybelgium.be) — multilingual freemium with UBO, Peppol and webhooks

Quick start with Company Belgium

The fastest path for a developer with no Belgian-context expertise.

Get API credentials

  • Sign up at companybelgium.be
  • Generate an API key + secret from the dashboard
  • Free plan: 5 requests/day, no credit card
  • First call

    Terminal
    1
    2
    3
    4
    curl -X GET "https://api.companybelgium.be/v1/companies/0200065765" \
      -H "X-API-Key: pk_live_xxxxxxxxxxxx" \
      -H "X-API-Secret: sk_live_xxxxxxxxxxxx" \
      -H "Accept: application/json"

    Response:

    JSON
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    {
      "success": true,
      "data": {
        "enterpriseNumber": "0200065765",
        "vatNumber": "BE0200065765",
        "name": "Espero-Soft Informatiques SRL",
        "legalForm": "Limited liability company",
        "status": "AC",
        "address": {
          "fullAddress": "Example Street 12, 1000 Brussels"
        },
        "mainActivity": {
          "code": "62.010",
          "label": "Computer programming",
          "version": "2008"
        }
      },
      "timestamp": "2026-05-14T10:32:18.421Z"
    }
    Terminal
    1
    2
    3
    curl -X GET "https://api.companybelgium.be/v1/companies/search?q=espero&limit=10" \
      -H "X-API-Key: pk_live_xxxxxxxxxxxx" \
      -H "X-API-Secret: sk_live_xxxxxxxxxxxx"

    Check UBO cascade

    Terminal
    1
    2
    3
    curl -X GET "https://api.companybelgium.be/v1/companies/0200065765/ubo" \
      -H "X-API-Key: pk_live_xxxxxxxxxxxx" \
      -H "X-API-Secret: sk_live_xxxxxxxxxxxx"

    Full endpoint list: see the endpoints reference.

    Data model essentials for non-Belgian developers

    A few specifics that surprise newcomers:

    Enterprise status

    • AC — Active (operational)
    • ST — Ceased (struck off the registry)

    A ceased entity still appears in the BCE with all historical data preserved.

    Belgium has dozens of legal forms, often with distinct French/Dutch names. The most common:

    • SA / NV — Public limited company
    • SRL / BV — Limited liability company (since 2019 reform)
    • SC / CV — Cooperative company
    • ASBL / VZW — Non-profit association
    • Self-employed — Independent natural person with VAT

    NACE codes

    The BCE assigns one main NACE code (mandatory) and zero or more secondary ones. NACE versions used:

    • NACE 2003 — legacy data
    • NACE 2008 — current default
    • NACE 2025 — new revision

    When integrating, always check the version field of activity records.

    Multilingual denominations

    A company can have denominations in French, Dutch and English — sometimes different names per language. Always fetch the language matching your user.

    Compliance considerations

    If you process BCE data, be aware of:

    GDPR

    BCE data on legal persons (companies) is not personal data under GDPR. But:

    • BCE data on natural persons (self-employed) is personal data
    • Director information (linked to companies) is personal data
    • Beneficial owners (UBO) are natural persons → strict access rules

    The UBO register itself has had its access rules tightened by the CJEU judgment of 22 November 2022 (cases C-37/20 and C-601/20). Public access is no longer free; only authorities and parties with legitimate interest can query it.

    Belgian AML obligations

    If you operate in a regulated profession in Belgium (lawyer, accountant, real-estate agent, company service provider, etc.), you are subject to the Act of 18 September 2017. See our compliance guide and KYC obligations.

    Data freshness

    Even daily-updated BCE data can be 24-48 hours stale relative to the underlying ledger. For real-time decisions (signing a contract, releasing a payment), cross-check with the entity directly.

    Scaling considerations

    Pre-built guidance for production traffic — caching, retry, webhooks, observability — is covered in our reference architecture article.

    In short:

    • Use webhooks for change tracking instead of polling
    • Cache static data (NACE labels, legal forms) for hours
    • Cache company records for 5-30 minutes depending on volatility
    • Maintain a local snapshot of companies you actively track

    SDKs and tooling

    For Company Belgium specifically:

    • OpenAPI 3.1 spec at https://api.companybelgium.be/v1/docs/openapi.json — generate clients in any language
    • Sandbox at https://sandbox.api.companybelgium.be with test data

    Support

    If you hit issues:

    • Open a ticket via the dashboard
    • Status page at https://status.companybelgium.be (uptime, incidents)
    • Documentation portal: https://companybelgium.be/en/api-docs

    For Belgian-specific legal questions, the SPF Economie helpdesk is the authoritative source.

    How Company Belgium serves international developers

    We have first-class support for non-French/Dutch speakers:

    • English documentation for every endpoint
    • Pricing in EUR with VAT handling for EU/non-EU customers
    • API responses in English when requested via Accept-Language: en
    • Webhooks with multilingual payloads (the name field returns the language requested)
    • Support in English via email and chat

    For an international developer, this removes the friction of integrating a Belgian-only registry into a global product.

    Bottom line

    The Belgian Crossroads Bank for Enterprises is one of the most complete, freshest and most accessible company registries in Europe. The official API is SOAP-only, but multiple modern REST alternatives exist, with Company Belgium offering the most enriched stack (UBO cascade, Peppol verification, webhooks).

    For an international developer, the recommended path is:

  • Read this article (you just did)
  • Sign up for a free Company Belgium API key
  • Run the cURL examples above
  • Pick a language tutorial — Python or Node.js/TypeScript
  • Scale with the architecture guide
  • You can be live in production within a day.

    Frequently asked questions

    What is the Belgian Crossroads Bank for Enterprises (BCE/KBO) ?

    The Belgian Crossroads Bank for Enterprises (abbreviated BCE in French and KBO in Dutch) is the official central Belgian registry of all legal entities: companies, self-employed individuals, non-profits, foundations and public bodies. It is managed by the SPF Economie and contains approximately 2 million active entities updated daily.

    How can an international developer access Belgian BCE/KBO data ?

    An international developer has three access channels: the free official SOAP API (kbopub.economie.fgov.be), the FTP download of Open Data files (full plus daily delta), or a third-party REST API like Company Belgium which offers a free plan with no credit card, English documentation and Python and TypeScript SDKs.

    What identifiers are used in the Belgian BCE/KBO database ?

    The BCE uses two main identifiers. The enterprise number is a 10-digit code in the format NNNN.NNN.NNN that identifies legal entities; the Belgian VAT number is the enterprise number prefixed with BE. The establishment number, also 10 digits starting with 2, identifies the physical sites (branches, offices) of an entity.

    Does GDPR compliance apply when using the BCE API ?

    Data on legal persons (companies) is not personal data under GDPR. However, information on self-employed natural persons, director data and UBO beneficial owners is personal data subject to GDPR and the strict access rules resulting from the CJEU judgment of 22 November 2022 (cases C-37/20 and C-601/20).

    Ready to get started?

    Create your free account and get your API keys in minutes.

    Comments

    Loading comments…

    Leave a comment

    Not published — used only to notify you.

    Comments are moderated before publication.

    Related articles