eKYB Prefill in the Netherlands leverages the Netherlands' source of truth to automatically retrieve and populate business information based on a company's KvK number or RSIN, including the business name, registered address, entity type, registration status, directors, and additional corporate data, without requiring manual input from the user.
Source
| Country | Source | Description |
|---|---|---|
| Netherlands | NL_KYB_PREFILL |
Returns matching Dutch business details from the Netherlands' 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 NL_KYB_PREFILL. Identifies the Prefill source. |
| country | Mandatory | String. Two-letter Alpha-2 country code. Must be NL. |
| taxId | Mandatory | String. Dutch KvK number or RSIN. See Tax ID formats for details. |
| businessName | Optional | String. Registered name of the business. When provided, adds nameMatch to the response. |
| address | Optional | String. Business address as a freeform string. When provided, adds addressMatch to the response. |
Tax ID formats
The taxId field accepts two Dutch business identifier types. Routing between them is determined automatically by the format of the submitted value.
| ID Type | Description | Format | Example |
|---|---|---|---|
| KvK number | Kamer van Koophandel registration number | 8 numeric digits | 12345678 |
| RSIN | Rechtspersonen en Samenwerkingsverbanden Informatienummer | 9 numeric digits | 123456789 |
Inputs that do not match either format return a 400 error. RSIN is not issued to sole traders — searching by RSIN will not return sole trader records.
Sample request
{
"plugins": ["ekyb-prefill"],
"source": "NL_KYB_PREFILL",
"country": "NL",
"taxId": "12345678",
"businessName": "Noorderlicht Ventures B.V.",
"address": "Lindengracht 42, 1015 KJ Amsterdam, Netherlands"
}
Sample response
The Prefill response returns business data retrieved directly from the source of truth. Fields are returned as-is from the source. nameMatch and addressMatch are only present when businessName or address were submitted in the request. vatNo is absent for sole traders. Director position names and authority levels are returned in Dutch and are not translated. shareholders is typically absent for Dutch BV companies, as shareholder registers commonly show only an aggregate share capital figure.
Example 1 — Noorderlicht Ventures B.V. (sole trader)
{
"kyb-prefill": [
{
"tin": "12345678",
"name": "Noorderlicht Ventures B.V.",
"nameMatch": "Verified",
"address": "Lindengracht 42, 1015 KJ Amsterdam, Netherlands",
"city": "Amsterdam",
"postalCode": "1234RV",
"entityType": "Sole trader with one owner",
"registrationStatus": "Active",
"registrationDate": "2012-12-11T00:00:00Z",
"creditRating": "C",
"creditRatingDescription": "Moderate Risk",
"industryDesc": "Activities of Noorderlicht",
"activityDesc": "Activities of Noorderlicht",
"employeeCount": "1",
"websites": ["www.daanvandijk.nl"],
"directors": [
{ "name": "Daan van Dijk", "positionName": "Eigenaar" }
],
"otherNames": [
{ "name": "Noorderlicht", "businessNameType": "Trading Name" }
]
}
]
}
Example 2 — Noorderlicht Trader B.V. (private limited company)
{
"kyb-prefill": [
{
"tin": "12345678",
"vatNo": "123456789",
"name": "Noorderlicht Trader B.V.",
"nameMatch": "Verified",
"address": ": "Tulpenlaan 27, 3511 AB Utrecht, Netherlands",
"entityType": "Private limited liability company (BV) with ordinary structure",
"registrationStatus": "Active",
"registrationDate": "2019-12-17T00:00:00Z",
"creditRating": "E",
"creditRatingDescription": "Not Rated",
"industryDesc": "Retail sale of motor vehicles",
"activityDesc": "Retail sale of motor vehicles",
"employeeCount": "2",
"directors": [
{ "name": "Daan van Dijk", "positionName": "Algemeen Directeur", "authority": "Alleen/zelfstandig bevoegd" },
{ "name": "Daan van Dijk", "positionName": "Algemeen Directeur", "authority": "Alleen/zelfstandig bevoegd" }
],
"otherNames": [
{ "name": "Noorderlicht Trader B.V.", "businessNameType": "Trading Name" }
]
}
]
}
Response fields
| Key | Value | Description |
|---|---|---|
| tin | KvK number | The 8-digit Kamer van Koophandel registration number as confirmed by the source of truth. |
| vatNo | RSIN | The 9-digit Rechtspersonen en Samenwerkingsverbanden Informatienummer as returned from the source of truth. Only present for legal entities — not issued to sole traders. |
| 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 name on file. Only present when businessName was submitted in the request. See Name and address match values for details. |
| address | Registered address | The primary registered address of the business as returned from the source of truth. |
| addressMatch | Verified, Approximate Match, Unverified | Match result comparing the submitted address against the registered address on file. Only present when address was submitted in the request. See Name and address match values for details. |
| city | City | The city of the registered address as returned from the source of truth. May not be present for all companies. |
| postalCode | Postal code | The postal code of the registered address as returned from the source of truth. May not be present for all companies. |
| entityType | Entity type | The legal form of the business as returned from the source of truth (for example, Sole trader with one owner, Private limited liability company (BV) with ordinary structure). Defaults to Unknown when not available. |
| registrationStatus | Registration status | The current company status as returned from the source of truth (for example, Active). Defaults to Unknown when not available. |
| registrationDate | Date | The date the company was registered, as returned from the source of truth. May not be present for all companies. |
| creditRating | Credit rating value | The standardized credit rating value (for example, C, E). Defaults to Unknown when not available. |
| creditRatingDescription | Credit rating description | A human-readable description of the credit rating (for example, Moderate Risk, Not Rated). |
| industryDesc | Industry description | The primary activity description as returned from the source of truth (for example, Retail sale of motor vehicles). |
| activityDesc | Activity description | The principal activity description as returned from the source of truth. For the Netherlands, this is typically identical to industryDesc. |
| turnover | {currency, value} object |
The latest turnover figure as returned from the source of truth. May not be present for all companies. |
| employeeCount | String | The latest employee count as returned from the source of truth. Sourced from additionalInformation.misc.employeeNumber. Always returned as a string. May not be present for all companies. |
| shareholders | Array of {name, percentSharesHeld} |
Shareholders associated with the business as returned from the source of truth. Typically absent for Dutch BV companies — Dutch shareholder registers commonly surface only an aggregate share capital figure, not named shareholders. |
| directors | Array of {name, positionName, authority} |
Current directors and officers as returned from the source of truth. positionName and authority are returned in Dutch and are not translated (for example, Algemeen Directeur, Alleen/zelfstandig bevoegd). May not be present for all companies. |
| otherNames | Array of {name, businessNameType} |
Trading names associated with the business. businessNameType is always "Trading Name". May not be present for all companies. |
| otherAddresses | Array of {type, otherAddress} |
Additional addresses on file, other than the primary registered address. May not be present for all companies. |
| websites | Array of strings | Website URLs associated with the business as returned from the source of truth. May not be present for all companies. |
Name and address match values
| Status | Description |
|---|---|
| Verified | Exact match found against registry data. |
| Approximate Match | Similar match found; may reflect minor differences in naming or address formatting. |
| Unverified | No match found in registry data. |
Registration status values
| Status | Description |
|---|---|
| Active | The company is currently active and registered. |
| Inactive | The company registration is dissolved, struck off, or no longer active. |
| Unknown | The registration status could not be determined. |
Error responses
For standard HTTP response codes, see the API Error Response page. Netherlands Prefill returns the following country-specific 400 errors.
taxId is missing, empty, or does not match a supported Dutch identifier format:
{
"timestamp": 1782851408892,
"status": 400,
"error": "Bad Request",
"message": "taxId must be a valid Dutch identifier: KvK number (8 digits) or RSIN (9 digits)",
"path": "/omni/externalVerification/ekyb-prefill"
}
Any mandatory field (plugins, source, country, or taxId) is missing:
{
"timestamp": 1782851468367,
"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.