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

Finland eKYC verification matches submitted individual data against Finland's source of truth using a sequenced search across multiple underlying data sources. 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                                                                                                    |
| ---------------- | -------------------- | ------------------------------------------------------------------------------------------------------------------ |
| FI National ID   | `FI_NATIONAL_ID`     | Runs a search across Finland's national ID database. |
| Finland Consumer + Pop Register + Telco | `FI_CONSUMER_POP_REG_TELCO` | Verifies submitted data against Finland consumer records, the population register, and telco records.

## FI National ID

### Request parameters

| Parameter     | Required  | Description                                                       |
| ------------- | --------- | ---------------------------------------------------------------------- |
| `source`      | Mandatory | Must be `FI_NATIONAL_ID`.                                             |
| `country`     | Mandatory | Must be `FI`.                                                         |
| `firstName`   | Mandatory | First name of the individual. Must not contain digits.                |
| `surName`     | Mandatory | Last name of the individual. Must not contain digits.                 |
| `dateOfBirth` | Mandatory | Format: `yyyy-mm-dd`.                                                  |
| `idNumber`    | Mandatory | Finnish national identity number.                                      |
| `street`      | Optional  | Street name and house number.                                          |
| `city`        | Optional  | City of the individual's address (for example, `Lappeenranta`).        |
| `state`       | Optional  | State or region.                                                       |
| `postalCode`  | Optional  | Finland postal code. See format note below.                            |

:::info
`postalCode` must be exactly 5 digits, numeric only (no letters, spaces, or hyphens).
:::

### Sample request

```json
{
    "plugins": ["kyc"], //required field
    "source": "FI_NATIONAL_ID", //required field
    "firstName": "Matti", //required field
    "surName": "Virtanen", //required field
    "street": "Koivukuja 12 A 4",
    "city": "Lappeenranta",
    "state": "South Karelia",
    "postalCode": "53100",
    "country": "FI", //required field
    "dateOfBirth": "1991-08-02", //required field
    "idNumber": "010203A123X" //required field
}
```

### Response fields

FI National ID anchors verification on the submitted national identity number, name, date of birth, and address elements. See the [eKYC API Reference](/general-reference/ekyc-api-reference/) for common match field definitions and status values. Individual field matches for this source resolve to `exact` or `nomatch` only; `fullAddressMatch` additionally supports `fuzzy`.

| Field                | Statuses                    | Description                                                                                |
| --------------------- | ---------------------------- | ---------------------------------------------------------------------------------------------- |
| `firstNameMatch`     | `exact`, `nomatch`           | Matches first name submitted against the value in the source of truth.                     |
| `lastNameMatch`      | `exact`, `nomatch`           | Matches last name submitted against the value in the source of truth.                      |
| `fullNameMatch`      | `exact`, `nomatch`           | Matches full name submitted against the value in the source of truth.                      |
| `dobMatch`           | `exact`, `nomatch`           | Matches date of birth submitted against the value in the source of truth.                  |
| `idNumMatch`         | `exact`, `nomatch`           | Matches national identity number submitted against the value in the source of truth.       |
| `streetMatch`        | `exact`, `nomatch`           | Matches street submitted against the value in the source of truth.                         |
| `cityMatch`          | `exact`, `nomatch`           | Matches city submitted against the value in the source of truth.                           |
| `stateMatch`         | `exact`, `nomatch`           | Matches state submitted against the value in the source of truth.                          |
| `postalCodeMatch`    | `exact`, `nomatch`           | Matches postal code submitted against the value in the source of truth.                    |
| `fullAddressMatch`   | `exact`, `fuzzy`, `nomatch`  | Composite of `streetMatch`, `cityMatch`, `stateMatch`, and `postalCodeMatch`. See below for calculation logic. |
| `overallLevel`       | `low`, `medium`, `high`      | Overall risk level. See below for calculation logic.                                       |





#### `overallLevel` calculation

`overallLevel` is calculated based on the risk associated with the submitted full name, national identity number, and date of birth:

- `low` when `fullNameMatch`, `idNumMatch`, and `dobMatch` are all `exact`.
- `high` when `fullNameMatch`, `idNumMatch`, and `dobMatch` are all `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": "idNumMatch", "status": "exact" },
        { "key": "streetMatch", "status": "exact" },
        { "key": "cityMatch", "status": "exact" },
        { "key": "stateMatch", "status": "exact" },
        { "key": "postalCodeMatch", "status": "exact" },
        { "key": "fullAddressMatch", "status": "exact" },
        { "key": "overallLevel", "status": "low" }
    ]
}
```

## Finland Consumer + Pop Register + Telco

### Request parameters

| Parameter     | Required  | Description                                                       |
| ------------- | --------- | ---------------------------------------------------------------------- |
| `source`      | Mandatory | Must be `FI_CONSUMER_POP_REG_TELCO`.                                             |
| `country`     | Mandatory | Must be `FI`.                                                         |
| `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 | Finland phone number. Must be either 10 digits starting with a `0` in national format, or `+358` followed by 9 digits, without the leading 0, in international format. For example, `0401234567` or `+358401234567`.          |
| `street`      | Optional  | Street name.                                          |
| `houseNo`     | Optional  | House or building number.                             |
| `city`        | Optional  | City of the individual's address (for example, `Helsinki`).        |
| `postalCode`  | Optional  | Finland postal code. Five digits (for example, `00100`).               |
| `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": "FI_CONSUMER_POP_REG_TELCO", //required field
    "firstName": "Mikko", //required field
    "surName": "Virtanen", //required field
    "phone": "+358401234567", //required field
    "country": "FI", //required field
    "street": "Mannerheimintie", //optional field
    "houseNo": "45", //optional field
    "city": "Helsinki", //optional field
    "postalCode": "00100", //optional field
    "dateOfBirth": "1991-08-02", //optional field
    "gender": "m", //optional field
    "email": "mikko.virtanen@example.com" //optional field
}
```

### Response fields

Finland 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" }
    ]
}
```