> 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/productos/landing/resultados-y-callbacks/datos-de-respuesta.md).

# Datos de respuesta

## Estructura de callback

A continuación, se presenta una descripción detallada de la estructura de datos utilizada en nuestro sistema y los detalles específicos de cada campo de datos, incluyendo su tipo, propósito y restricciones.

**Morfología**:

```javascript
{
  "transactionId": "TRANSACTION_ID",
  "dni": "DOCUMENT_NUMBER",
  "clientData": "CLIENT_DATA",
  "deviceInfo": "DEVICE_INFO",
  "lastStep": {
    "stepId": "STEP_ID",
    "stepType": "STEP_TYPE",
    "timestamp": "UNIX_TIMESTAMP",
    "widget": "WIDGET_NAME"
  },
  "resultJSON": {
    "DocumentData": {
      "serviceTransactionId": "TRANSACTION_ID",
      "serviceDocument": {
        "DOC_MODEL": "DOCUMENT_MODEL",
        "BACKSIDE": "DOCUMENT_BACKSIDE",
        "FRONTSIDE": "DOCUMENT_FRONTSIDE",
        "DECOMPOSED": "DOCUMENT_DECOMPOSE",
        "CHECKS": "DOCUMENT_CHECKS",
        "SCORING": "DOCUMENT_SCORING",
      }
    },
    "DocumentValidation": "DOCUMENT_VALIDATION",
    "imageFront": "FRONT_BASE64_IMAGE",
    "imageBack": "BACK_BASE64_IMAGE",
    "FacialAuthentication": "AUTHENTICATION_DATA",
    "PassiveLiveness": "PASSIVE_LIVENESS_DATA",
    "imageSelfie": "SELFIE_BASE64_IMAGE",
    "imageFrontRaw": "/9j/4AAQSkZJRgAB...",
    "imageBackRaw": "/9j/4AAQSkZJRgAB...",
    "rawTemplateSelfie": "BAEBAQJi/8ZtRtF/UV+p4Ued+Z...",
    "rawTemplateFacialCapture": "BAEBAQJQ/8ZtRtF/UV+p4Ued+Z..."
  }
}
```

**Ejemplo**:

```javascript
{
  "transactionId": "00000000-0000-0000-0000-000000000000",
  "dni": "00000000A",
  "clientData": { ... },
  "deviceInfo": { ... },
  "lastStep": {
    "stepId": "00000000-0000-0000-0000-000000000000",
    "stepType": "FINISH",
    "timestamp": 1743350400000,
    "widget": "SELPHI"
  },
  "resultJSON": {
    "DocumentData": {
      "serviceTransactionId": "00000000-0000-0000-0000-000000000000",
      "serviceDocument": {
        "DOC_MODEL": "CHILE - ID CARD (2013)",
        "BACKSIDE": { ... },
        "FRONTSIDE": { ... },
        "DECOMPOSED": { ... },
        "CHECKS": { ... },
        "SCORING": { ... },
      }
    },
    "DocumentValidation": { ... },
    "FacialAuthentication": { ... },
    "PassiveLiveness": { ... },
    "imageFront": "/9j/4AAQSkZJRgAB...",
    "imageBack": "/9j/4AAQSkZJRgAB...",
    "imageSelfie": "/9j/4AAQSkZJRgAB...",
    "imageFrontRaw": "/9j/4AAQSkZJRgAB...",
    "imageBackRaw": "/9j/4AAQSkZJRgAB...",
    "rawTemplateSelfie": "BAEBAQJi/8ZtRtF/UV+p4Ued+Z...",
    "rawTemplateFacialCapture": "BAEBAQJQ/8ZtRtF/UV+p4Ued+Z..."
  }
}
```

***

## Listado de parámetros

Esta es una colección de ejemplos de los datos que se envían:

### TRANSACTION\_ID

ID único de la transacción.

**Detalles**:

* ¿Puede estar vacío?: No.

**Ejemplo**:

```javascript
"00000000-0000-0000-0000-000000000000"
```

***

### DOCUMENT\_NUMBER

Almacena el número de documento asociado a un cliente.

**Detalles**:

* ¿Puede estar vacío?: Sí.
* Razón: No hay un número de documento; esto podría deberse a que el servicio no pudo extraer el número de documento o hubo un problema durante el proceso de extracción de datos.

**Ejemplo**:

```javascript
"00000000A"
```

```javascript
"0000000"
```

```javascript
undefined
```

***

### CLIENT\_DATA

Almacena la información de un cliente que ha completado el proceso de alta.

**Detalles**:

* ¿Puede estar vacío?: Sí.
* Razón: No hay datos del cliente; esto podría deberse a que no se ha iniciado una sesión o hubo un problema durante el proceso de la sesión.

**Morfología**:

```javascript
{
  "customerId": "CUSTOMER_ID"
}
```

**Ejemplo**:

```javascript
{
  "customerId": "0d8d7059"
}
```

```javascript
{}
```

Referencia de campo:

**CUSTOMER\_ID**

Este identificador se utiliza para distinguir a cada usuario en el sistema. Este identificador puede ser proporcionado por la empresa contratante o generado internamente.

**Ejemplo**:

```javascript
"0d8d7059"
```

```javascript
"0034666666666"
```

```javascript
"00000000-0000-0000-0000-000000000000"
```

***

### DEVICE\_INFO

Almacena información sobre el dispositivo utilizado por el cliente durante el proceso de alta.

**Detalles**:

* ¿Puede estar vacío?: Sí.
* Razón: No hay información del dispositivo; esto podría deberse a que la información del dispositivo no se ha enviado o hubo un problema durante el proceso del evento.

**Morfología**:

```javascript
{
  "osName": "OS_NAME",
  "osVersion": "OS_VERSION",
  "model": "DEVICE_MODEL",
  "brand": "DEVICE_BRAND",
  "browser": "DEVICE_BROWSER"
}
```

**Ejemplo**:

```javascript
{
  "osVersion": "114.0.0.0",
  "model": "114.0.0.0",
  "brand": "Chrome",
  "browser": "Chrome",
  "osName": "Mac OS"
}
```

```javascript
{}
```

#### Referencia de campos:

**OS\_NAME**

Almacena información sobre el nombre del sistema operativo.

**Ejemplo**:

```javascript
"114.0.0.0"
```

**OS\_VERSION**

Almacena información sobre la versión del sistema operativo.

**Ejemplo**:

```javascript
"114.0.0.0"
```

**DEVICE\_MODEL**

Almacena información sobre el modelo del dispositivo.

**Ejemplo**:

```javascript
"Chrome"
```

**DEVICE\_BRAND**

Almacena información sobre la marca del dispositivo.

**Ejemplo**:

```javascript
"Chrome"
```

**DEVICE\_BROWSER**

Almacena información sobre el navegador del dispositivo.

**Ejemplo**:

```javascript
"Mac OS"
```

***

## LAST\_STEP

Almacena información sobre el último paso/etapa completado por el cliente durante el proceso de alta.

**Detalles:**

* ¿Puede estar vacío?: Sí.
* Razón: No hay información del paso completado; esto podría deberse a que el cliente aún no ha iniciado el flujo o hubo un problema durante la captura del evento.

**Morfología:**

```json
{
  "stepId": "STEP_ID",
  "stepType": "STEP_TYPE",
  "timestamp": "UNIX_TIMESTAMP",
  "widget": "WIDGET_NAME"
}
```

**Campos:**

* `stepId` (string): Identificador único del paso completado.
* `stepType` (string): Tipo o categoría del paso (ej: "VERIFICATION", "CAPTURE", "CONFIRMATION").
* `timestamp` (number): Marca de tiempo Unix del momento en que se completó el paso.
* `widget` (string): Nombre del componente o widget que ejecutó el paso (ej: "BiometricCapture", "TermsAcceptance").

**Ejemplo:**

```json
{
    "stepId": "00000000-0000-0000-0000-000000000000",
    "stepType": "FINISH",
    "timestamp": 1743350400000,
    "widget": "SELPHI"
},
```

***

### DOCUMENT\_MODEL

Almacena el modelo o tipo de documento.

**Detalles**:

* ¿Puede estar vacío?: Sí.
* Razón: No se detectó ningún modelo de documento; esto podría deberse a que el servicio no pudo detectar el modelo de documento o hubo un problema durante el proceso de extracción de datos.

**Ejemplo**:

```javascript
"CHILE - ID CARD (2013)"
```

```javascript
undefined
```

***

### DOCUMENT\_BACKSIDE

Almacena la información y los detalles específicos relacionados con el reverso o la parte posterior de un documento.

**Detalles**:

* ¿Puede estar vacío?: Sí.
* Razón: No hay una imagen del reverso del documento; esto podría deberse a que es un pasaporte, la identificación no requiere una imagen del documento, la imagen no se ha enviado o hubo un problema durante el proceso de extracción de datos.

**Ejemplo**:

```javascript
{
  "FIELD_DATA": { ... },
  "MRZ_DATA": { ... }
}
```

```javascript
undefined
```

***

### DOCUMENT\_FRONTSIDE

Almacena la información y los detalles específicos relacionados con el anverso de un documento.

**Detalles**:

* ¿Puede estar vacío?: Sí.
* Razón: No hay una imagen del anverso del documento; esto podría deberse a que la identificación no requiere una imagen del documento, la imagen no se ha enviado o hubo un problema durante el proceso de extracción de datos.

**Ejemplo**:

```javascript
{
  "FIELD_DATA": { ... },
  "MRZ_DATA": { ... }
}
```

```javascript
undefined
```

***

### DOCUMENT\_DECOMPOSE

Almacena fragmentos o recortes de las imágenes del documento.

**Detalles**:

* ¿Puede estar vacío?: Sí.
* Razón: No hay información del dispositivo; esto podría deberse a que la información del dispositivo no se ha enviado o hubo un problema durante el proceso del evento.

**Morfología**:

```javascript
{
  "FACE": "DOCUMENT_PORTRAIT_BASE64_IMAGE"
}
```

**Ejemplo**:

```javascript
{
  "FACE": "/9j/4AAQSkZJRgAB..."
}
```

```javascript
undefined
```

#### Referencia de campos:

**DOCUMENT\_PORTRAIT\_BASE64\_IMAGE**

Almacena el recorte o fragmento de la foto del documento que muestra exclusivamente la cara del usuario.

**Ejemplo**:

```javascript
"/9j/4AAQSkZJRgAB..."
```

***

### DOCUMENT\_CHECKS

Almacena una colección de campos de los pasos que han sido verificados o comprobados durante el proceso de extracción de datos.

**Detalles**:

* ¿Puede estar vacío?: Sí.
* Razón: No hay comprobaciones de datos; esto podría deberse a que el servicio no genera comprobaciones de datos o hubo un problema durante el proceso de extracción de datos.

**Ejemplo**:

```javascript
{
  "PERSONAL_NUMBER_SIDE_MATCH": false,
  "NATIONALITY_SIDE_MATCH": true
}
```

```javascript
undefined
```

***

### DOCUMENT\_SCORING

Almacena una colección de puntuaciones que evalúan la fiabilidad de los datos extraídos de un documento.

**Detalles**:

* ¿Puede estar vacío?: Sí.
* Razón: No hay datos de puntuación; esto podría deberse a que el servicio no genera datos de puntuación o hubo un problema durante el proceso de extracción de datos.

**Ejemplo**:

```javascript
 {
  "FIELDS_RETURNED": 20,
  "FIELDS_TOTAL": 20,
  "OVERALL_RATING": 100,
  "BACK_SHA256": "SHA_CODE",
  "FRONT_SHA256": "SHA_CODE"
}
```

```javascript
undefined
```

***

### DOCUMENT\_VALIDATION

Almacena información relacionada con la validación del documento.

**Detalles**:

* ¿Puede estar vacío?: Sí.
* Razón: No hay datos de validación del documento; esto podría deberse a que el servicio no está habilitado o hubo un problema durante el proceso de validación del documento.

**Morfología**:

```javascript
{
  "scanReference": "DOCUMENT_VALIDATION_REFERENCE",
  "type": "DOCUMENT_VALIDATION_TYPE",
  "timestamp": "DOCUMENT_VALIDATION_TIME",
}
```

**Ejemplo**:

```javascript
{
  "scanReference": "00000000-0000-0000-0000-000000000000",
  "type": "3",
  "timestamp": "1970-01-01T00:00:00.000Z",
}
```

```javascript
{}
```

#### Referencia de campos:

**DOCUMENT\_VALIDATION\_REFERENCE**

Almacena información relacionada con la referencia de validación del documento.

**Ejemplo**:

```javascript
"00000000-0000-0000-0000-000000000000"
```

**DOCUMENT\_VALIDATION\_TYPE**

Almacena información relacionada con el estado de validación del documento.

**Ejemplo**:

```javascript
"3"
```

**DOCUMENT\_VALIDATION\_TIME**

Almacena información relacionada con la fecha de validación del documento.

**Ejemplo**:

```javascript
"1970-01-01T00:00:00.000Z"
```

***

### FRONT\_BASE64\_IMAGE

Almacena la imagen del anverso de un documento.

**Detalles**:

* ¿Puede estar vacío?: Sí.
* Razón: No hay una imagen del anverso del documento; esto podría deberse a que la imagen no se ha enviado o hubo un problema durante el guardado.

**Ejemplo**:

```javascript
"/9j/4AAQSkZJRgAB..."
```

```javascript
undefined
```

***

### BACK\_BASE64\_IMAGE

Almacena la imagen del reverso de un documento.

**Detalles**:

* ¿Puede estar vacío?: Sí.
* Razón: No hay una imagen del reverso del documento; esto podría deberse a que la imagen no se ha enviado o hubo un problema durante el guardado.

**Ejemplo**:

```javascript
"/9j/4AAQSkZJRgAB..."
```

```javascript
undefined
```

***

### AUTHENTICATION\_DATA

Almacena información relacionada con la autenticación de la persona.

**Detalles**:

* ¿Puede estar vacío?: Sí.
* Razón: No hay datos de autenticación facial; esto podría deberse a que hubo un problema durante el proceso de autenticación facial.

**Morfología**:

```javascript
{
  "serviceResultLog": "AUTHENTICATION_STATUS",
  "serviceFacialSimilarityResult": "AUTHENTICATION_SIMILARITY"
}
```

**Ejemplo**:

```javascript
{
  "serviceResultLog": "POSITIVE",
  "serviceFacialSimilarityResult": 0.9923387765884399
}
```

```javascript
{}
```

### Referencia de campos:

**AUTHENTICATION\_STATUS**

Almacena el estado de autenticación.

**Ejemplo**:

```javascript
"POSITIVE"
```

**AUTHENTICATION\_SIMILARITY**

Almacena la medida de similitud o el nivel de coincidencia obtenido durante el proceso de autenticación de una persona.

**Ejemplo**:

```javascript
0.9923387765884399
```

```javascript
0.6823991719034381
```

***

### PASSIVE\_LIVENESS\_DATA

Almacena información relacionada con la prueba de vida pasiva de la persona.

**Detalles**:

* ¿Puede estar vacío?: Sí.
* Razón: No hay datos de prueba de vida pasiva; esto podría deberse a que hubo un problema durante el proceso de prueba de vida pasiva.

**Morfología**:

```javascript
{
  "serviceResultLog": "PASSIVE_LIVENESS_RESULT"
}
```

**Ejemplo**:

```javascript
{
  "serviceResultLog": "NO_LIVE"
}
```

```javascript
{}
```

#### Referencia de campos:

**PASSIVE\_LIVENESS\_RESULT**

Almacena el resultado de la prueba de vida pasiva.

**Ejemplo**:

```javascript
"NO_LIVE"
```

***

### SELFIE\_BASE64\_IMAGE

Almacena la imagen del selfie de una persona.

**Detalles**:

* ¿Puede estar vacío?: Sí.
* Razón: No hay una imagen de selfie; esto podría deberse a que la imagen no se ha enviado o hubo un problema durante el guardado.

**Ejemplo**:

```javascript
"/9j/4AAQSkZJRgAB..."
```

```javascript
undefined
```

***

### FRONT\_RAW\_BASE64\_IMAGE

Almacena el fotograma completo del anverso del documento en formato base64.

**Detalles**:

* ¿Puede estar vacío?: Sí.
* Razón: Es posible que la imagen del anverso del documento no se haya enviado, o hubo un problema durante el proceso de extracción.

**Ejemplo**:

```javascript
"/9j/4AAQSkZJRgABAQAAAQABAAD/4gHYSUNDX1..."
```

```javascript
undefined
```

***

### BACK\_RAW\_BASE64\_IMAGE

Almacena el fotograma completo del reverso del documento en formato base64.

**Detalles**:

* ¿Puede estar vacío?: Sí.
* Razón: Es posible que la imagen del reverso del documento no se haya enviado, o hubo un problema durante el proceso de extracción.

**Ejemplo**:

```javascript
"/9j/4AAQSkZJRgABAQAAAQABAAD/4gHYSUNDX1..."
```

```javascript
undefined
```

***

### RAW\_TEMPLATE\_SELFIE (templateRaw)

Almacena la plantilla biométrica en bruto del selfie (`templateRaw`) en formato base64.

**Detalles**:

* ¿Puede estar vacío?: Sí.
* Razón: Es posible que la plantilla del selfie no se haya enviado, o hubo un problema durante el proceso de extracción biométrica.

**Ejemplo**:

```javascript
"BAEBAQJi/8ZtRtF/UV+p4Ued+Z..."
```

```javascript
undefined
```

***

### RAW\_TEMPLATE\_FACIAL\_CAPTURE

Almacena la plantilla en bruto de la captura facial del documento (`rawTemplateFacialCapture`) en formato base64.

**Detalles**:

* ¿Puede estar vacío?: Sí.
* Razón: Es posible que la plantilla de captura facial no se haya enviado, o hubo un problema durante el proceso de extracción biométrica.

**Ejemplo**:

```j
"BAEBAQJQ/8ZtRtF/UV+p4Ued+Z..."
```

```javascript
undefined
```

***

## Ejemplo de callback

### Respuesta de Callback Exitosa

Este caso de uso describe el escenario en el que un cliente completa con éxito el proceso de alta en una plataforma o servicio.

```json
{
  "transactionId": "213d0fd9-57fb-4a87-8237-2778015c94d5",
  "dni": "00000000",
  "clientData": {
    "customerId": "0d8d7059"
  },
  "resultJSON": {
    "DocumentData": {
      "serviceTransactionId": "3442d94c-9610-41ea-b228-5c4823020153",
      "serviceResultCode": 0,
      "serviceResultLog": "Service request successfully processed",
      "serviceDocument": {
        "CHECKS": {
          "BIRTH_DATE_SIDE_MATCH": true,
          "RUN_SIDE_MATCH": true,
          "IDENTITY_NUMBER_SIDE_MATCH": true,
          "SURNAME_SIDE_MATCH": true,
          "EXPIRATION_DATE_SIDE_MATCH": true,
          "NAME_SIDE_MATCH": true,
          "NATIONALITY_SIDE_MATCH": false
        },
        "BACKSIDE": {
          "FIELD_DATA": {},
          "MRZ_DATA": {
            "NATIONALITY": "XXX",
            "SERIAL_NUMBER": "000000000",
            "SURNAME": "DOE",
            "EXPIRATION_DATE": "01/01/1970",
            "SEX": "F",
            "BIRTH_DATE": "01/01/1970",
            "ISSUING_COUNTRY": "XXX",
            "IDENTITY_NUMBER": "000000000",
            "PERSONAL_NUMBER": "000",
            "RUN": "00000000-0",
            "NAME": "SUSAN"
          }
        },
        "FRONTSIDE": {
          "FIELD_DATA": {
            "NATIONALITY": "UNKNOWN",
            "SURNAME": [
              "DOE"
            ],
            "EXPIRATION_DATE": "01/01/1970",
            "BIRTH_DATE": "01/01/1970",
            "IDENTITY_NUMBER": "000.000.000",
            "RUN": "00.000.000-0",
            "EXPEDITION_DATE": "01/01/1970",
            "NAME": "SUSAN"
          }
        },
        "DECOMPOSED": {
          "SIGNATURE": "{Base64}",
          "FACE": "{Base64}"
        },
        "SCORING": {
          "FIELDS_TOTAL": 27,
          "FIELDS_RETURNED": 27,
          "OVERALL_RATING": 100
        },
        "DOC_MODEL": "NEW"
      },
      "serviceTime": "250"
    },
    "DocumentValidation": {
      "scanReference": "572c05a2-faf7-42c2-a583-c0e85a73a263",
      "type": "3",
      "timestamp": "1970-01-01T00:00:00.000Z"
    },
    "FacialAuthentication": {
      "serviceTransactionId": "eb61872d-381f-4759-8cfd-799071c759ae",
      "serviceResultCode": 0,
      "serviceFacialAuthenticationResult": 3,
      "serviceResultLog": "Positive",
      "serviceFacialAuthenticationHash": "{SHA}",
      "serviceFacialSimilarityResult": 0.9917689,
      "serviceTime": "250"
    },
    "PassiveLiveness": {
      "serviceResultCode": 0,
      "serviceResultLog": "Spoof",
      "serviceTime": "250",
      "serviceTransactionId": "752fa584-dfce-498c-a6c3-4ec79394e722",
      "serviceLivenessResult": 1
    },
    "imageFront": "{Base64}",
    "imageBack": "{Base64}",
    "imageSelfie": "{Base64}",
    "imageFrontRaw": "{Base64}",
    "imageBackRaw": "{Base64}",
    "rawTemplateSelfie": "{Base64}",
    "rawTemplateFacialCapture": "{Base64}"
  },
  "deviceInfo": {
    "osVersion": "16.3",
    "model": "16.3",
    "brand": "Mobile Safari",
    "browser": "Mobile Safari",
    "osName": "iOS"
  },
}
```

### Respuesta de Callback Vacía

Este caso de uso aborda el escenario en el que todas las opciones o alternativas posibles carecen de contenido o están vacías:

```json
{
  "transactionId": "213d0fd9-57fb-4a87-8237-2778015c94d5",
  "clientData": {},
  "deviceInfo": {},
  "resultJSON": {
    "DocumentData": {
      "serviceTransactionId": "3442d94c-9610-41ea-b228-5c4823020153",
      "serviceDocument": {},
    "DocumentValidation": {},
    "FacialAuthentication": {},
    "PassiveLiveness": {},
  },
}
```
