eKYB Prefill in Belgium leverages Belgium's source of truth to automatically retrieve and populate business information based on a company's BCE/KBO number or VAT number, including the business name, entity type, registration status, registration date, credit rating, and other corporate details, without requiring manual input from the user.
Source
| Country | Source | Description |
|---|---|---|
| Belgium | BE_KYB_PREFILL |
Returns matching Belgian business details from Belgium's source of truth for pre-fill. |
Direct API approach
For general integration notes and shared response semantics, see the eKYB Prefill API Reference.
All module configurations and user data can be forwarded directly in the request for performing a Prefill lookup. This overrides existing configuration and data collected about the user.
Endpoint
POST /omni/externalVerification/ekyb-prefill
Request parameters
| Parameter | Required | Description |
|---|---|---|
plugins |
Mandatory | String array. Must be ["ekyb-prefill"]. Specifies the Prefill flow. |
source |
Mandatory | String. Must be BE_KYB_PREFILL. Identifies the Prefill source. |
country |
Mandatory | String. Two-letter Alpha-2 country code. Must be BE. |
taxId |
Mandatory | String. BCE/KBO number or VAT number. See Tax ID formats for details. |
businessName |
Optional | String. Registered business name, used to verify the match against the source of truth. |
address |
Optional | String. Business address, used to verify the match against the source of truth. |
Tax ID formats
Belgium supports two business identifier formats as search input. Requests with an invalid format return a 400 error.
| Entity Type | Format |
|---|---|
| BCE/KBO number | 9 numeric digits, no prefix (e.g. 656908546) |
| VAT number | BE0 + the same 9-digit BCE number (e.g. BE0656908546) |
Sample request
{
"plugins": ["ekyb-prefill"],
"source": "BE_KYB_PREFILL",
"country": "BE",
"taxId": "656908546",
"businessName": "",
"address": ""
}
Sample response
The Prefill response returns business data retrieved directly from the source of truth. Passthrough fields are returned as-is from the source, without fuzzy matching or verification scoring. Match fields (nameMatch, addressMatch) are only returned when the corresponding input (businessName, address) was submitted. Field availability varies significantly by company — see the notes under each example below.
Example 1 — purchasing cooperative (large turnover, small headcount)
{
"kyb-prefill": [
{
"tin": "123456789",
"vatNo": "BE0123456789",
"name": "SAMPLE TRADING CV",
"nameMatch": "Verified",
"address": "Sample Straat 10, 1040 Sample City",
"city": "Sample City",
"postalCode": "1040",
"entityType": "Cooperative company",
"registrationStatus": "ACTIVE",
"registrationDate": "2016-06-22T00:00:00Z",
"creditRating": "B",
"creditRatingDescription": "Low Risk",
"industryDesc": "Activities of business and employers membership organisations",
"turnover": { "currency": "EUR", "value": 13390642077 },
"employeeCount": "39",
"shareholders": [
{ "name": "SAMPLE HOLDING SA", "percentSharesHeld": 32.67 }
],
"directors": [
{ "name": "SAMPLE DIRECTOR NAME", "positionName": "Director" }
],
"otherAddresses": [
{ "otherAddress": "Sample Straat 10 1040 Sample City" }
],
"otherNames": [
{ "name": "SAMPLE TRADING", "businessNameType": "Trading Name" }
]
}
]
}
Example 2 — multinational subsidiary (cross-border parent)
{
"kyb-prefill": [
{
"tin": "987654321",
"vatNo": "BE0987654321",
"name": "SAMPLE CHOCOLATE BELGIUM SA",
"nameMatch": "Verified",
"address": "Sample Dreve 13, 7700 Sample Town",
"city": "Sample Town",
"postalCode": "7700",
"entityType": "Public limited company",
"registrationStatus": "ACTIVE",
"registrationDate": "1997-09-24T00:00:00Z",
"industryDesc": "Wholesale of sugar, chocolate and sugar confectionery",
"turnover": { "currency": "EUR", "value": 48835433 },
"employeeCount": "270",
"websites": ["http://www.samplechocolate.example"],
"shareholders": [
{ "name": "SAMPLE HOLDING FRANCE SAS", "percentSharesHeld": 100 }
],
"ultimateParent": { "name": "SAMPLE NETHERLANDS HOLDING B.V.", "country": "NL" },
"immediateParent": { "name": "SAMPLE NETHERLANDS HOLDING B.V.", "country": "NL" },
"otherAddresses": [
{ "otherAddress": "Sample Dreve(L) 13 7700 Sample Town" },
{ "otherAddress": "Sample Lei 37 2018 Sample City" }
],
"otherNames": [
{ "name": "SAMPLE CHOCOLATE BELGIUM NV", "businessNameType": "Trading Name" }
]
}
]
}
Example 3 — small boutique with a distinct trading name
{
"kyb-prefill": [
{
"tin": "456789123",
"vatNo": "BE0456789123",
"name": "SAMPLE BOUTIQUE BVBA",
"nameMatch": "Verified",
"address": "Sample Walletje 20 C, 8300 Sample Coast",
"city": "Sample Coast",
"postalCode": "8300",
"entityType": "Private limited liability company",
"registrationStatus": "ACTIVE",
"registrationDate": "2010-07-30T00:00:00Z",
"industryDesc": "Tour operator activities",
"otherNames": [
{ "name": "SAMPLE LUXURY BRAND BOUTIQUE", "businessNameType": "Trading Name" }
]
}
]
}
Info
Field availability differs significantly by company. turnover, employeeCount, shareholders, directors, websites, otherAddresses, and creditRating may all be absent for a given company — this is expected and does not indicate an error. ultimateParent/immediateParent are absent for companies that sit at the top of their own group.
Response fields
| Key | Value | Description |
|---|---|---|
tin |
BCE/KBO number | 9-digit registration number, as returned from the source of truth. |
vatNo |
VAT number | BE0 + the 9-digit BCE number. |
name |
Business name | The registered legal name of the business as returned from the source of truth. |
nameMatch |
Verified, Approximate Match, Unverified | Match result comparing the submitted businessName against the registered name. Only returned when businessName is submitted. |
address |
Address | The registered business address as returned from the source of truth. |
addressMatch |
Verified, Approximate Match, Unverified | Match result comparing the submitted address against the registered address. Only returned when address is submitted. |
city |
City | The city associated with the registered business address, when available. |
postalCode |
Postal code | The postal code associated with the registered business address, when available. |
entityType |
Entity type | The legal entity type of the business (e.g. Cooperative company, Public limited company). Defaults to "Unknown" when not available. |
registrationStatus |
Active, Expired, Unknown, Not Found | Current registration status of the business. Defaults to "Unknown" when not available. |
registrationDate |
Date | The date the business was registered. |
creditRating |
Rating value (e.g. A, B) | The business's credit rating, as returned from the source of truth. Defaults to "Unknown" when not available. |
creditRatingDescription |
Description (e.g. Low Risk) | Human-readable description of the credit rating. Defaults to "Unknown" when not available. |
industryDesc |
Industry description | Description of the business's main activity. May not reflect the company's actual current business activity in all cases. |
activityDesc |
Activity description | Description of the business's principal activity. Same data-quirk caveat as industryDesc. |
turnover |
{currency, value} object |
The business's latest reported turnover figure. May not be present. |
employeeCount |
Number (as string) | Latest reported number of employees, if available. |
shareholders |
Array of {name, percentSharesHeld} |
Shareholder information. May not be present, or may only reflect a partial capitalization table for large companies. |
directors |
Array of {name, positionName} |
Directors associated with the business, if available. |
ultimateParent |
{name, country} |
The business's ultimate parent company, if the business is a subsidiary. Absent when the entity sits at the top of its own group. |
immediateParent |
{name, country} |
The business's immediate parent company, if the business is a subsidiary. Absent when the entity sits at the top of its own group. |
otherNames |
Array of {name, businessNameType} |
The business's trading name, with businessNameType set to "Trading Name". Usually identical to name, but can genuinely differ. |
otherAddresses |
Array of {otherAddress} |
Addresses associated with the business other than the main registered address, if any. May not be present for smaller companies. |
websites |
Array of strings | Websites associated with the business, if available. |
Error responses
For standard HTTP response codes, see the API Error Response page. Belgium Prefill returns the following country-specific 400 errors.
taxId is not a valid BCE/KBO number (bare 9 digits) or VAT number (BE0 + 9 digits):
{
"status": 400,
"error": "Bad Request",
"message": "taxId must be a valid Belgian BCE/KBO number or VAT number",
"path": "/omni/externalVerification/ekyb-prefill"
}
Any mandatory field (plugins, source, country, or taxId) is missing:
{
"status": 400,
"error": "Bad Request",
"message": "must not be blank",
"path": "/omni/externalVerification/ekyb-prefill"
}
No business match is found for the submitted taxId:
{
"timestamp": 1782851583695,
"status": 200,
"message": "No business found matching the provided tax ID.",
"path": "/omni/externalVerification/ekyb-prefill"
}
Single Session Dashboard results
Prefill results are available on the Business tab in single Session view.