Official KBO API vs third-party APIs: limitations of the public BCE service and why move to a modern API
The official SPF Economie API is free — but it's SOAP, without webhooks, without UBO or Peppol enrichment, and without SLA. Here is why 80% of serious projects end up migrating to a third-party API, and how to evaluate if it's your case.
In brief
The official SPF Economie SOAP API is free and reliable, but it imposes a high technical cost in 2026: no REST/JSON, no webhooks, no UBO, no Peppol, no SLA. For production projects with a client SLA or KYC/AML needs, migrating to a modern third-party API is economically advantageous once you account for the hidden costs.
What no one tells you about the official API
First: the official SPF Economie API is a free public service and a precious one. Without it, the entire Belgian company data ecosystem would not exist. Everything else, including Company Belgium, depends on it.
But in 2026, starting a serious project directly against the official API means imposing on yourself a needless technical and functional burden. Here is precisely why.
What the official API offers
SPF Economie exposes three channels:
All free, daily-fed. Official source, trusted data.
The 6 concrete limitations
1. SOAP in 2026
KBOPublicSearch is SOAP/XML. Your modern stack (Node.js, Python, Go, Ruby) must:
- Generate a SOAP client (wsdl2java, suds-jurko, gsoap, etc.)
- Parse XML envelopes with namespaces
- Handle SOAP fault codes, not HTTP
- Serialize requests manually
Cost: +3 to 5 days on initial integration, and a permanent cluster of bugs on schema updates.
2. No webhooks
If you want to react to changes (a client becomes inactive, a new director is appointed, accounts are filed), you must poll. For 10,000 monitored clients:
- Hourly polling = 240,000 requests/day
- Detection with average 30-minute delay
- Official quota frequently hit
With a webhook API, you receive one HTTP notification when the event occurs.
3. No enriched UBO
The official API exposes BCE data (company, address, directors, NACE, establishments). But the UBO register is a separate service (MyMinFin), with:
- Separate eID authentication
- No public REST API
- Limitation to manual consultation for most professional accesses
To run a full KYC, you need to cross BCE + UBO. The official API does not do it for you.
4. No Peppol
Verifying if a company is registered on Peppol (to send it an electronic invoice) requires querying a separate directory (Peppol SMP/SML). Not exposed by the official API.
5. No developer support
The official API offers no:
- Maintained OpenAPI/Swagger documentation
- Test sandbox
- Developer chat or email
- Contractual SLA
- Public status (uptime, incidents)
If you have a bug at 3 a.m. on a Friday, you are alone.
6. No business enrichment
The official API exposes raw data. No:
- Data quality score (flagged inconsistencies)
- Computed financial indicators (company size per EU definition)
- Semantic full-text search
- Advanced filtering (by revenue, headcount, etc.)
- Establishment mapping
- Change tracking (timeline)
When the official API remains the right choice
Let's be honest — there are cases where the official API is amply sufficient:
In those cases, paying for a third-party API would be a waste.
When to migrate to a third-party API
Conversely, migrating makes sense as soon as:
- You are in production with a client SLA: your revenue depends on availability
- You do KYC or AML: need for UBO cascade, archiving, traces
- You invoice via Peppol: verification of registration and reception capability
- You track changes: monitoring, alerts, webhooks
- You have volume > 1000 req/day: the official SOAP starts to choke
- Your team lacks SOAP skills: training cost > API cost
- You want OpenAPI / official SDKs: essential for new integrations
The hidden cost of "staying free"
An honest 12-month calculation for a production project:
| Item | Official API | Third-party API (€200/mo) |
|---|---|---|
| Initial dev (SOAP, parsing) | 5 d × €600 = €3,000 | 1 d × €600 = €600 |
| Polling (200,000 req/day, infra) | €80/mo × 12 = €960 | €0 |
| SOAP bugs (1 d/quarter) | 4 × €600 = €2,400 | €0 |
| Manual UBO cascade (KYC) | 30 min/file × 200 files = €6,000 | €0 |
| API subscription | €0 | €200 × 12 = €2,400 |
| Total | €12,360 | €3,000 |
The gap is systematically in favor of the third-party API once hidden costs are included.
How Company Belgium fills these gaps
For serious projects, Company Belgium provides the bricks missing from the official API:
- Modern REST/JSON with up-to-date OpenAPI doc — see the endpoints reference
- Webhooks: receive a notification as soon as a company changes (new director, accounts filing, corporate purpose change, UBO declaration)
- Automatic UBO cascade, crossed with the UBO register
- Integrated Peppol check
- SDKs Python / Node.js / TypeScript (see the Python tutorial)
- Contractual SLA on paid plans
- Caching, transparent rate limits — see the reference architecture
All this while remaining synchronized with the official BCE (so the legal source of truth is not lost).
Bottom line
The official API remains an essential tool: it is the source. But for most production projects that do more than read VAT numbers, it imposes a hidden cost (SOAP, polling, manual cross-checks) that quickly exceeds the price of a third-party API.
The right reflex: start with the official API if you prototype, then migrate to an enriched API as soon as a real client expects an SLA. It is not an ideological choice, it is an economic calculation.
Frequently asked questions
What is the difference between the official KBO API and a third-party API like Company Belgium ?
The official SPF Economie API (KBOPublicSearch) is free but SOAP/XML-based, with no OpenAPI documentation, no webhooks and no SLA. A third-party API like Company Belgium exposes the same BCE data as REST/JSON with webhooks, UBO cascade, Peppol verification and developer support, reducing integration time from 3-5 days to less than a day.
Can the official BCE API be used for a production project ?
Yes, it works for simple use cases like occasional VAT number checks or weekly bulk processing. But for projects with a client SLA, KYC/AML requirements or real-time change tracking, the hidden costs of the SOAP API (development, polling, manual UBO cross-checks) quickly exceed the cost of a third-party API.
What is KBOPublicSearch and how do you access it ?
KBOPublicSearch is the official SPF Economie SOAP service at kbopub.economie.fgov.be. It is free with no API key required, but returns XML. Access requires generating a SOAP client (wsdl2java, suds, etc.) and handling XML envelopes with namespaces, which adds several development days on a modern stack.
Is the BCE Open Data different from KBOPublicSearch ?
Yes. BCE Open Data is an FTP download of compressed CSV files (full plus daily delta, about 500 MB), while KBOPublicSearch is a SOAP service for real-time queries. Open Data is ideal for populating a data warehouse or batch processing, but unsuitable for spot checks or online applications.
Comments
Related articles

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.

Rate limits, quotas and caching to scale a BCE/KBO application: reference architecture
Your app queries the BCE/KBO API at volume — how to avoid 429s, control costs and guarantee latency? Reference architecture with multi-layer cache, request queue, observability and webhooks. Concrete patterns and target numbers.

BCE/KBO API endpoints reference: complete list of REST routes (companies, addresses, NACE, UBO, establishments, Peppol)
Comprehensive technical reference of the Company Belgium REST API endpoints: search, company record, addresses, NACE activities, establishments, directors, UBO, Peppol verification. With response schemas, parameters and error codes.
