> For the complete documentation index, see [llms.txt](https://docs.facephi.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.facephi.com/api-rest/identity-api/identity-api-reference/onboarding/kyc/nigeria/identity-verification/nin-slip.md).

# NIN Slip

Verifica el **Número de Identificación Nacional** (NIN) de Nigeria igual que [NIN Verify](/api-rest/identity-api/identity-api-reference/onboarding/kyc/nigeria/identity-verification/nin-verify.md) y, adicionalmente, genera una **copia en PDF del NIN slip** del titular.

La generación del PDF es **asíncrona**: la respuesta inicial incluye un objeto `pdf` con un `jobId` y el estado `processing`. El cliente debe consultar el estado del trabajo mediante el endpoint de consulta hasta que el estado sea `completed`, momento en el que se retorna la **URL de descarga** del PDF. Tenga en cuenta que en **sandbox no se retorna** el campo `pdf`; solo aparece en modo **live** (ver nota más abajo).

### Endpoint

```
POST /kyc/nga/nin/slip
```

### Autenticación

| Tipo    | Ubicación | Nombre        |
| ------- | --------- | ------------- |
| API Key | Header    | **x-api-key** |

### Cuerpo de la solicitud

**Content-Type:** `application/json`

#### Parámetros

| Parámetro | Tipo   | Requerido | Descripción                                       |
| --------- | ------ | --------- | ------------------------------------------------- |
| `nin`     | string | **Sí**    | National Identification Number de **11 dígitos**. |

#### Ejemplo de solicitud

```json
{
  "nin": "09876543212"
}
```

### Respuestas

#### `200` Éxito

#### Parámetros de respuesta

| Parámetro              | Tipo    | Descripción                                                                                                                  |
| ---------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------- |
| `serviceResultCode`    | integer | Código que indica el **resultado general** de la ejecución del servicio. Ver [Service Result Code](#service-result-code)     |
| `serviceTime`          | string  | Tiempo de procesamiento **(milisegundos)**.                                                                                  |
| `serviceResultLog`     | string  | Campo descriptivo del resultado de la ejecución del servicio. Incluye detalles cuando hay un error o excepción en el módulo. |
| `serviceTransactionId` | string  | Identificador de transacción asociado a la solicitud procesada por la API.                                                   |
| `data`                 | object  | Objeto con los datos completos del NIN y el estado de generación del PDF. Ver tabla a continuación.                          |

#### Parámetros de respuesta — `data`

**Nota:** el objeto `data` se retorna **sin mapeo ni normalización de campos**. Los nombres y la ortografía de los campos se conservan exactamente tal cual se reciben.

| Parámetro           | Tipo   | Descripción                                                                                                                           |
| ------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------- |
| `nin`               | string | National Identification Number.                                                                                                       |
| `title`             | string | Título del titular.                                                                                                                   |
| `firstname`         | string | Nombre(s) del titular.                                                                                                                |
| `middlename`        | string | Segundo nombre.                                                                                                                       |
| `surname`           | string | Apellido(s) del titular.                                                                                                              |
| `birthdate`         | string | Fecha de nacimiento.                                                                                                                  |
| `birthcountry`      | string | País de nacimiento.                                                                                                                   |
| `birthstate`        | string | Estado de nacimiento.                                                                                                                 |
| `birthlga`          | string | Área de Gobierno Local (LGA) de nacimiento.                                                                                           |
| `gender`            | string | Género.                                                                                                                               |
| `maritalstatus`     | string | Estado civil.                                                                                                                         |
| `heigth`            | string | Altura en centímetros. El campo se llama literalmente `heigth` (sic): la ortografía se conserva tal cual se recibe; no usar `height`. |
| `email`             | string | Correo electrónico registrado.                                                                                                        |
| `telephoneno`       | string | Número de teléfono registrado.                                                                                                        |
| `residence_address` | string | Dirección de residencia.                                                                                                              |
| `residence_state`   | string | Estado de residencia.                                                                                                                 |
| `residence_lga`     | string | Área de Gobierno Local (LGA) de residencia.                                                                                           |
| `residence_town`    | string | Ciudad de residencia.                                                                                                                 |
| `residencestatus`   | string | Estatus de residencia.                                                                                                                |
| `self_origin_state` | string | Estado de origen.                                                                                                                     |
| `self_origin_lga`   | string | Área de Gobierno Local (LGA) de origen.                                                                                               |
| `self_origin_place` | string | Lugar de origen.                                                                                                                      |
| `profession`        | string | Profesión.                                                                                                                            |
| `educationallevel`  | string | Nivel educativo.                                                                                                                      |
| `employmentstatus`  | string | Situación laboral.                                                                                                                    |
| `religion`          | string | Religión.                                                                                                                             |
| `spoken_language`   | string | Idioma principal hablado.                                                                                                             |
| `ospokenlang`       | string | Otro(s) idioma(s) hablado(s).                                                                                                         |
| `nok_firstname`     | string | Nombre del **familiar de contacto** (next of kin).                                                                                    |
| `nok_middlename`    | string | Segundo nombre del familiar de contacto.                                                                                              |
| `nok_surname`       | string | Apellido del familiar de contacto.                                                                                                    |
| `nok_address1`      | string | Dirección (línea 1) del familiar de contacto.                                                                                         |
| `nok_address2`      | string | Dirección (línea 2) del familiar de contacto.                                                                                         |
| `nok_town`          | string | Ciudad del familiar de contacto.                                                                                                      |
| `nok_lga`           | string | Área de Gobierno Local (LGA) del familiar de contacto.                                                                                |
| `nok_state`         | string | Estado del familiar de contacto.                                                                                                      |
| `nok_postalcode`    | string | Código postal del familiar de contacto.                                                                                               |
| `pfirstname`        | string | Nombre previo del titular (si existe; habitualmente vacío).                                                                           |
| `pmiddlename`       | string | Segundo nombre previo del titular (si existe; habitualmente vacío).                                                                   |
| `psurname`          | string | Apellido previo del titular (si existe; habitualmente vacío).                                                                         |
| `photo`             | string | Foto del titular en formato **Base64**.                                                                                               |
| `signature`         | string | Firma del titular en formato **Base64**.                                                                                              |
| `userid`            | string | Identificador interno de usuario.                                                                                                     |
| `vnin`              | string | NIN virtual (vNIN) del titular.                                                                                                       |
| `central_iD`        | string | Identificador central del registro. El campo se llama literalmente `central_iD` (sic).                                                |
| `tracking_id`       | string | Identificador de seguimiento del registro.                                                                                            |
| `pdf`               | object | Estado de generación del **NIN slip en PDF**. Solo presente en modo **live**. Ver tabla a continuación.                               |

#### Parámetros de respuesta — `data.pdf`

| Parámetro | Tipo   | Descripción                                                                               |
| --------- | ------ | ----------------------------------------------------------------------------------------- |
| `jobId`   | string | Identificador del **trabajo de generación** del PDF. Se utiliza para consultar el estado. |
| `status`  | string | Estado de la generación. Valores posibles: `processing`, `completed`.                     |

**Nota:** en **sandbox no se retorna** el campo `pdf` (confirmado empíricamente el 13-07-2026); en ese caso no hay `jobId` que consultar. En modo **live**, el objeto `pdf` (`jobId`, `status`) permite hacer *polling* del estado mediante `GET /kyc/nga/nin/slip/{jobId}`. Existen tenants de producción con credenciales live; la confirmación del ciclo completo del PDF en live requiere una consulta con un NIN real y se realizará como parte de la validación de QA con un tenant live.

#### Service Result Code

El `serviceResultCode` indica el resultado general de la ejecución del servicio y refleja el **código de estado HTTP** de la respuesta:

| serviceResultCode | Descripción                                                                          | Código HTTP |
| ----------------- | ------------------------------------------------------------------------------------ | ----------- |
| 200               | La ejecución del servicio fue exitosa, el módulo procesó la solicitud correctamente. | 200         |

#### Ejemplo de respuesta (modo live)

```json
{
  "serviceResultCode": 200,
  "serviceTime": "2100",
  "serviceResultLog": "Success",
  "serviceTransactionId": "b18e902f-01f9-8e0i-e53e-9f3589eg99gh",
  "data": {
    "nin": "09876543212",
    "title": "mr",
    "firstname": "JOHN",
    "middlename": "PAUL",
    "surname": "DOE",
    "birthdate": "15-01-1990",
    "birthcountry": "nigeria",
    "birthstate": "Lagos",
    "birthlga": "Lagos Island",
    "gender": "m",
    "maritalstatus": "single",
    "heigth": "175",
    "email": "john.doe@example.com",
    "telephoneno": "08012345678",
    "residence_address": "123 Main Street, Lagos",
    "residence_state": "Lagos",
    "residence_lga": "Ikeja",
    "residence_town": "Ikeja",
    "residencestatus": "birth",
    "self_origin_state": "Lagos",
    "self_origin_lga": "Lagos Island",
    "self_origin_place": "Lagos",
    "profession": "Engineer",
    "educationallevel": "tertiary",
    "employmentstatus": "employed",
    "religion": "christianity",
    "spoken_language": "YORUBA",
    "ospokenlang": "ENGLISH",
    "nok_firstname": "JANE",
    "nok_middlename": "",
    "nok_surname": "DOE",
    "nok_address1": "123 Main Street",
    "nok_address2": "",
    "nok_town": "Ikeja",
    "nok_lga": "Ikeja",
    "nok_state": "Lagos",
    "nok_postalcode": "100001",
    "pfirstname": "JOHN",
    "pmiddlename": "PAUL",
    "psurname": "DOE",
    "photo": "base64encodedphoto...",
    "signature": "base64encodedsignature...",
    "userid": "",
    "vnin": "AB012345678901234YZ",
    "central_iD": "12345678",
    "tracking_id": "ABC123DEF456GH",
    "pdf": {
      "jobId": "4",
      "status": "processing"
    }
  }
}
```

## Consultar estado del PDF

Consulta el **estado del trabajo de generación** del NIN slip en PDF a partir del `jobId` obtenido en la respuesta anterior. Se recomienda consultar el estado **cada pocos segundos** hasta que sea `completed`.

**Nota:** la URL de descarga del PDF **expira 7 días** después de su generación. Descargue y almacene el documento antes de ese plazo.

### Endpoint

```
GET /kyc/nga/nin/slip/{jobId}
```

### Autenticación

| Tipo    | Ubicación | Nombre        |
| ------- | --------- | ------------- |
| API Key | Header    | **x-api-key** |

### Parámetros de ruta

| Parámetro | Tipo   | Requerido | Descripción                                                           |
| --------- | ------ | --------- | --------------------------------------------------------------------- |
| `jobId`   | string | **Sí**    | **ID del trabajo** de generación obtenido en la respuesta del `POST`. |

### Ejemplo de solicitud

```
GET /kyc/nga/nin/slip/4
```

### Respuestas

#### `200` Éxito

#### Parámetros de respuesta — `data`

| Parámetro | Tipo   | Descripción                                                                                     |
| --------- | ------ | ----------------------------------------------------------------------------------------------- |
| `id`      | string | Identificador del trabajo de generación.                                                        |
| `status`  | string | Estado de la generación. Valores posibles: `processing`, `completed`.                           |
| `url`     | string | **URL de descarga** del PDF. Solo presente cuando `status` es `completed`. Expira a los 7 días. |

#### Ejemplo de respuesta — en proceso

```json
{
  "serviceResultCode": 200,
  "serviceTime": "120",
  "serviceResultLog": "Success",
  "serviceTransactionId": "c29f013g-12g0-9f1j-f64f-0g4690fh00hi",
  "data": {
    "id": "4",
    "status": "processing"
  }
}
```

#### Ejemplo de respuesta — completado

```json
{
  "serviceResultCode": 200,
  "serviceTime": "110",
  "serviceResultLog": "Success",
  "serviceTransactionId": "d30g124h-23h1-0g2k-g75g-1h5701gi11ij",
  "data": {
    "id": "4",
    "status": "completed",
    "url": "https://files.example.com/nin-slips/4/nin-slip.pdf"
  }
}
```

## Respuestas de error

Los siguientes errores aplican a **ambos endpoints**:

#### `400` Bad Request

Error retornado con el sobre del servicio (`serviceResultCode` refleja el código HTTP de la respuesta):

```json
{
  "serviceResultCode": 400,
  "serviceResultLog": "Sorry, lookup failed. Please check the details and try again",
  "serviceTime": "151",
  "serviceTransactionId": "08ac9699-dc9e-4cdc-81d7-264f71838309"
}
```

#### `502` Bad Gateway

Se retorna cuando el servicio no está disponible temporalmente o su respuesta no pudo interpretarse. El cuerpo usa el sobre del servicio con `serviceResultCode: 500`:

```json
{
  "serviceResultCode": 500,
  "serviceResultLog": "Service temporarily unavailable. Please try again later",
  "serviceTime": "3000",
  "serviceTransactionId": "38de2932-0f2h-7gff-14g0-597h04161632"
}
```

#### `504` Gateway Timeout

Error de **timeout**, retornado con el sobre del servicio:

```json
{
  "serviceResultCode": 504,
  "serviceResultLog": "Request timeout. Please try again",
  "serviceTime": "30000",
  "serviceTransactionId": "48ef3043-1g3i-8hgg-25h1-608i15272743"
}
```

{% hint style="info" %}
Los errores de autenticación (`401`/`403`) son rechazados por el **gateway antes de llegar al servicio** y **no** usan el sobre `serviceResultCode`. Los errores de validación de la plataforma usan el formato `application/problem+json`. Consulta [Manejo de errores](/api-rest/identity-api/identity-api-reference/onboarding/kyc/nigeria.md#manejo-de-errores) para el detalle de las tres formas de respuesta.
{% endhint %}
