---
title: "Netherlands"
url: "https://developer.incode.com/general-reference/netherlands/"
section: "general-reference"
group: "eKYB Reference / eKYB Prefill Coverage"
version: "v1.1"
status: "live"
---
# Netherlands

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](/general-reference/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

```json
{
    "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)**

```json
{
  "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)**

```json
{
  "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:

```json
{
    "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:

```json
{
    "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`:

```json
{
    "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](/dashboard-platform-administration/single-session-view/).