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




Germany eKYC verification matches submitted individual data against Germany's utility phone register and mobile phone register. 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 |
|---|---|---|
| Germany Phone and Mobile Register | `DE_PHONE_MOBILE_REGISTER` | Verifies submitted data against Germany's utility phone register and mobile phone register. |

## Germany Phone and Mobile Register

### Request parameters

| Parameter | Required | Description |
|---|---|---|
| `source` | Mandatory | Must be `DE_PHONE_MOBILE_REGISTER`. |
| `country` | Mandatory | Must be `DE`. |
| `firstName` | Mandatory | First name of the individual. Must not contain digits. |
| `middleName` | Optional | Additional given name(s) (Vornamen). Must not contain digits. Germany does not use "middle name" the same way as countries like the US or UK — people can have multiple given names instead. |
| `surName` | Mandatory | Last name of the individual. Must not contain digits. |
| `phone` | Mandatory | Germany phone number. See format note below. |
| `street` | Optional | Full street including house number. |
| `city` | Optional | City of the individual's address (for example, Berlin). |
| `postalCode` | Optional | Germany postal code. See format note below. |

### Sample request

```json
{
    "plugins": ["kyc"], //required field
    "source": "DE_PHONE_MOBILE_REGISTER", //required field
    "firstName": "Lukas", //required field
    "middleName": "Johannes",
    "surName": "Müller", //required field
    "street": "Hauptstraße 25",
    "city": "Berlin",
    "postalCode": "10115",
    "country": "DE", //required field
    "phone": "493012345678" //required field
}
```

### Response fields

Germany Phone and Mobile Register anchors verification on individual name, address, 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 first name submitted against the value in the source of truth. |
| `middleNameMatch` | exact, fuzzy, nomatch, nodata | Matches additional given name(s) submitted against the value in the source of truth. |
| `lastNameMatch` | exact, fuzzy, nomatch | Matches last name submitted against the value in the source of truth. |
| `fullNameMatch` | exact, fuzzy, nomatch | Composite of `firstNameMatch`, `lastNameMatch`, and `middleNameMatch`. See below for calculation logic. |
| `streetMatch` | exact, fuzzy, nomatch, nodata | Matches street submitted against the value in the source of truth. |
| `cityMatch` | exact, fuzzy, nomatch, nodata | Matches city submitted against the value in the source of truth. |
| `postalCodeMatch` | exact, fuzzy, nomatch, nodata | Matches postal code submitted against the value in the source of truth. |
| `fullAddressMatch` | exact, fuzzy, nomatch, nodata | Composite of `streetMatch`, `cityMatch`, and `postalCodeMatch`. See below for calculation logic. |
| `phoneMatch` | exact, fuzzy, nomatch, nodata | Matches phone submitted against the value in the source of truth. |
| `overallLevel` | low, medium, high | Overall risk level. See below for calculation logic. |

#### `fullNameMatch` calculation

- `exact` when `firstNameMatch` is exact and `lastNameMatch` is exact, and `middleNameMatch` is exact, fuzzy, or nodata.
- `nomatch` when `firstNameMatch` and `lastNameMatch` are both nomatch.
- `fuzzy` for any other combination.

#### `fullAddressMatch` calculation

- `exact` when `streetMatch` is exact, and `cityMatch` is exact or nodata, and `postalCodeMatch` is exact or nodata.
- `nomatch` when `streetMatch`, `cityMatch`, and `postalCodeMatch` are all nomatch.
- `nodata` when `streetMatch`, `cityMatch`, and `postalCodeMatch` are all nodata.
- `fuzzy` for any other combination.

#### `overallLevel` calculation

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

- `low` when `fullNameMatch` is exact.
- `high` when `fullNameMatch` 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": "middleNameMatch", "status": "exact" },
        { "key": "lastNameMatch", "status": "exact" },
        { "key": "fullNameMatch", "status": "exact" },
        { "key": "streetMatch", "status": "exact" },
        { "key": "cityMatch", "status": "exact" },
        { "key": "postalCodeMatch", "status": "exact" },
        { "key": "fullAddressMatch", "status": "exact" },
        { "key": "phoneMatch", "status": "nomatch" },
        { "key": "overallLevel", "status": "low" }
    ]
}
```