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



Netherlands eKYC verification matches submitted individual data against Netherlands sources of truth. See the [eKYC API Reference](/general-reference/ekyc-api-reference/) for common response semantics that apply across all sources.

## Available sources

| Source                                    | API source string            | Description                                                                                          |
| ----------------------------------------- | ---------------------------- | ------------------------------------------------------------------------------------------------------ |
| Netherlands Consumer + Pop Register + Telco | `NL_CONSUMER_POP_REG_TELCO` | Verifies submitted data against Netherlands consumer records, the population register, and telco records. |

## Netherlands Consumer + Pop Register + Telco

Netherlands Consumer + Pop Register + Telco verifies a submitted individual against Netherlands consumer records, the population register, and telco records in a single request. Verification is anchored on name and phone number.

### Request parameters

| Parameter     | Required  | Description                                                                 |
| ------------- | --------- | ---------------------------------------------------------------------------- |
| `source`      | Mandatory | Must be `NL_CONSUMER_POP_REG_TELCO`.                                         |
| `country`     | Mandatory | Must be `NL`.                                                                |
| `firstName`   | Mandatory | First name of the individual. Letters, spaces, hyphens, and apostrophes only. |
| `surName`     | Mandatory | Last name of the individual. Letters, spaces, hyphens, and apostrophes only.  |
| `phone`       | Mandatory | Netherlands phone number. Must be either 10 digits in national format (for example, `0612345678`) or `+31` followed by 9 digits in international format (for example, `+31612345678`).                            |
| `street`      | Optional  | Street name.                                                                 |
| `houseNo`     | Optional  | House or building number.                                                    |
| `city`        | Optional  | City of the individual's address (for example, `Amsterdam`).                |
| `postalCode`  | Optional  | Netherlands postal code. Must be four digits followed by two uppercase letters (for example, `1016DV`).                             |
| `dateOfBirth` | Optional  | Format: `yyyy-mm-dd`.                                                        |
| `gender`      | Optional  | Accepted values are `m` or `f`.                                              |
| `email`       | Optional  | Email address of the individual.                                             |

### Sample request

```json
{
    "plugins": ["kyc"], //required field
    "source": "NL_CONSUMER_POP_REG_TELCO", //required field
    "firstName": "Jeroen", //required field
    "surName": "van Dijk", //required field
    "phone": "+31612345678", //required field
    "country": "NL", //required field
    "street": "Keizersgracht", //optional field
    "houseNo": "215", //optional field
    "city": "Amsterdam", //optional field
    "postalCode": "1016DV", //optional field
    "dateOfBirth": "1991-08-02", //optional field
    "gender": "m", //optional field
    "email": "jeroen.vandijk@example.com" //optional field
}
```

### Response fields

Netherlands Consumer + Pop Register + Telco anchors verification on individual name and phone number. See the [eKYC API Reference](/general-reference/ekyc-api-reference/) for common match field definitions and status values.

| Field                | Statuses                              | Description                                                                                                    |
| -------------------- | ------------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
| `firstNameMatch`     | `exact`, `fuzzy`, `nomatch`           | Matches submitted first name against the source of truth.                                                      |
| `lastNameMatch`      | `exact`, `fuzzy`, `nomatch`           | Matches submitted last name against the source of truth.                                                        |
| `fullNameMatch`      | `exact`, `fuzzy`, `nomatch`           | Composite of `firstNameMatch` and `lastNameMatch`. `exact` if both match; `nomatch` if either does not match; otherwise, `fuzzy`. |
| `dobMatch`           | `exact`, `fuzzy`, `nomatch`, `nodata` | Matches submitted date of birth against the source of truth.                                                    |
| `genderMatch`        | `exact`, `fuzzy`, `nomatch`, `nodata` | Matches submitted gender against the source of truth.                                                           |
| `streetMatch`        | `exact`, `fuzzy`, `nomatch`, `nodata` | Matches submitted street against the source of truth.                                                           |
| `houseNoMatch`       | `exact`, `fuzzy`, `nomatch`, `nodata` | Matches submitted house number against the source of truth. Not used in the `fullAddressMatch` calculation.     |
| `streetAddressMatch` | `exact`, `fuzzy`, `nomatch`, `nodata` | Composite of `streetMatch` and `houseNoMatch`. `exact` if both match; `nomatch` if either does not match; `nodata` if both have no data; otherwise, `fuzzy`. |
| `cityMatch`          | `exact`, `fuzzy`, `nomatch`, `nodata` | Matches submitted city against the source of truth.                                                             |
| `postalCodeMatch`    | `exact`, `fuzzy`, `nomatch`, `nodata` | Matches submitted postal code against the source of truth.                                                      |
| `fullAddressMatch`   | `exact`, `fuzzy`, `nomatch`, `nodata` | Composite of `streetMatch`, `cityMatch`, and `postalCodeMatch`. `exact` if `streetMatch` is `exact` and `cityMatch` and `postalCodeMatch` are each `exact` or `nodata`; `nomatch` if all three are `nomatch`; `nodata` if all three are `nodata`; otherwise, `fuzzy`. |
| `phoneMatch`         | `exact`, `fuzzy`, `nomatch`, `nodata` | Matches submitted phone number against the source of truth.                                                     |
| `emailMatch`         | `exact`, `fuzzy`, `nomatch`, `nodata` | Matches submitted email address against the source of truth.                                                    |
| `overallLevel`       | `low`, `medium`, `high`               | Overall risk level of the submitted attributes. See below for calculation logic.                                |

#### overallLevel calculation

`overallLevel` is calculated based on the risk associated with the submitted full name and phone number:

- `low` when `fullNameMatch` is `exact` AND `phoneMatch` is `exact`.
- `high` when `fullNameMatch` is `nomatch` OR `phoneMatch` is `nomatch`.
- `medium` for all other combinations.

Contact your Incode representative to customize the `overallLevel` calculation for your use case.

### Sample response

```json
{
    "kyc": [
        { "key": "firstNameMatch", "status": "exact" },
        { "key": "lastNameMatch", "status": "exact" },
        { "key": "fullNameMatch", "status": "exact" },
        { "key": "dobMatch", "status": "exact" },
        { "key": "genderMatch", "status": "exact" },
        { "key": "streetMatch", "status": "exact" },
        { "key": "houseNoMatch", "status": "exact" },
        { "key": "streetAddressMatch", "status": "exact" },
        { "key": "cityMatch", "status": "exact" },
        { "key": "postalCodeMatch", "status": "exact" },
        { "key": "fullAddressMatch", "status": "exact" },
        { "key": "phoneMatch", "status": "exact" },
        { "key": "emailMatch", "status": "exact" },
        { "key": "overallLevel", "status": "low" }
    ]
}
```