---
title: "Peru"
url: "https://developer.incode.com/general-reference/peru/"
section: "general-reference"
group: "eKYC Reference / eKYC Coverage"
version: "v1.1"
status: "live"
---
# Peru
Peru eKYC verification matches submitted individual data against Peru's official civil 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                                                              |
| ---------------------- | ------------------------ | --------------------------------------------------------------------------- |
| Peru Civil Register 2  | `PE_CIVIL_REGISTER_2`    | Verifies submitted data against Peru's official civil register.             |

## Peru Civil Register 2

### Request parameters

| Parameter     | Required  | Description                                                                    |
| ------------- | --------- | ------------------------------------------------------------------------------- |
| `source`      | Mandatory | Must be `PE_CIVIL_REGISTER_2`.                                                   |
| `country`     | Mandatory | Must be `PE`.                                                                    |
| `idNumber`    | Mandatory | Peru DNI (Documento Nacional de Identidad). See format note below.              |
| `firstName`   | Mandatory | First name of the individual. Must not contain digits.                          |
| `surName`     | Mandatory | Last name of the individual. Must not contain digits.                           |
| `middleName`  | Optional  | Middle name of the individual. Must not contain digits.                         |
| `street`      | Optional  | Full street including house number.                                             |
| `dateOfBirth` | Optional  | Format: `yyyy-mm-dd`.                                                           |
| `gender`      | Optional  | Accepted values are `m` or `f`.                                                 |



### Sample request

```json
{
    "plugins": ["kyc"], //required field
    "source": "PE_CIVIL_REGISTER_2", //required field
    "firstName": "Carlos", //required field
    "middleName": "Eduardo",
    "surName": "García", //required field
    "street": "Av. Arequipa 1234",
    "idNumber": "76543218", //required field
    "country": "PE", //required field
    "dateOfBirth": "1991-08-02",
    "gender": "m"
}
```

### Response fields

Peru Civil Register 2 anchors verification on the submitted national identity number and full name. 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 middle name 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. |
| `dobMatch`         | `exact`, `fuzzy`, `nomatch`, `nodata` | Matches date of birth submitted against the value in the source of truth.               |
| `streetMatch`      | `exact`, `fuzzy`, `nomatch`, `nodata` | Matches street submitted against the value in the source of truth.                      |
| `genderMatch`      | `exact`, `fuzzy`, `nomatch`, `nodata` | Matches gender submitted against the value in the source of truth.                      |
| `idNumMatch`       | `exact`, `fuzzy`, `nomatch`, `nodata` | Matches national identity number submitted against the value in the source of truth.    |
| `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 and national identity number:

- `low` when `fullNameMatch` and `idNumMatch` are both `exact`.
- `high` when `fullNameMatch` or `idNumMatch` 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": "dobMatch", "status": "exact" },
        { "key": "idNumMatch", "status": "exact" },
        { "key": "streetMatch", "status": "exact" },
        { "key": "genderMatch", "status": "nomatch" },
        { "key": "overallLevel", "status": "low" }
    ]
}
```

<br />