> ## Documentation Index
> Fetch the complete documentation index at: https://docs.didit.me/llms.txt
> Use this file to discover all available pages before exploring further.

# Informe de verificación de ID: campos y puntuaciones

> Informe de verificación de ID de Didit: estado, campos extraídos, calidad de imagen, coincidencias entre sesiones y dónde aparecen en la API.

## Descripción general

El **informe de verificación de identidad** recoge todo lo que Didit extrae y valida de un documento de identidad oficial: pasaportes, documentos de identidad, licencias de conducir y permisos de residencia. Agrupa los campos biográficos y del documento obtenidos por OCR, URL firmadas de los archivos capturados, los datos de la dirección analizados y geolocalizados, las puntuaciones de calidad de imagen de cada lado, el contenido de la MRZ, el desglose multiescritura (latino / no latino) y las coincidencias del documento entre sesiones.

El informe se genera cuando el usuario completa el paso de captura del documento en un flujo de verificación (workflow) (o cuando se llama al endpoint de OCR independiente). Didit identifica el tipo de documento, ejecuta el OCR, valida la MRZ, el código de barras o el código QR, analiza la dirección, detecta manipulaciones (captura de pantalla, copia impresa, manipulación del retrato) y compara el documento con todos los demás documentos capturados en tu aplicación.

Cada informe tiene su propio `status`, independiente del estado general de la sesión, que refleja cómo se resolvió únicamente el paso de identidad:

* **Aprobado**: documento reconocido, todos los campos obligatorios extraídos y ninguna advertencia configurada para rechazar se ha activado.
* **En revisión**: se activaron una o más advertencias y tu flujo las envía a revisión.
* **Rechazado**: se activó una condición de rechazo automático (documento no admitido, documento expirado, falta el retrato, coincidencia en la lista de bloqueo, fallo en la comprobación de edad adaptativa) o una advertencia cuya acción configurada es Rechazar (la edad mínima y la máxima tienen Rechazar como valor predeterminado).
* **Expirado**: la `expiration_date` del documento venció **después** de la verificación. La monitorización continua de caducidad de Didit cambia el informe de `Approved` a `Expired`, añade una advertencia `DOCUMENT_EXPIRED` y pasa una sesión aprobada al estado de sesión `Kyc Expired`.
* **No finalizado**: el usuario nunca completó el paso de captura.

## Dónde aparece en las respuestas de la API

El informe de identidad se incluye dentro del array `id_verifications[]`: **siempre es un array JSON**, nunca un objeto singular `id_verification`. Aparecen varias entradas cuando un flujo ejecuta más de un paso de documento (por ejemplo, un documento de identidad principal y una verificación adicional).

* **API de decisión de sesión**: `GET /v3/session/{sessionId}/decision/` devuelve `id_verifications[]` en el nivel superior. Consulta [Obtener la decisión de la sesión](https://docs.didit.me/es/sessions-api/retrieve-session.md).
* **Webhooks**: los payloads de `session.status.updated` incluyen el mismo array `id_verifications[]` en cuanto el paso ha generado datos. Consulta [Webhooks](https://docs.didit.me/es/integration/webhooks.md).
* **API de OCR independiente**: el envío directo de documentos devuelve un objeto singular `id_verification` con los mismos campos. Consulta [API de OCR independiente](https://docs.didit.me/es/standalone-apis/id-verification.md).

> [!NOTE]
>
> Lee `response.id_verifications[0]` y recorre el array. La estructura singular `id_verification` solo existe en la API de OCR independiente; no existe en el endpoint de decisión v3.

## Esquema

El esquema canónico, campo por campo, está en la página de referencia [Modelos de datos](https://docs.didit.me/es/reference/data-models.md#verificación-de-identidad). Los campos siguientes provienen directamente de `IDVerificationV3Serializer`, que extiende `IDVerificationV2Serializer` y añade `node_id`, el array de coincidencias entre sesiones `matches[]` y el array de Silent Capture `document_selfie_face_matches[]`.

### Campos de nivel superior

| Campo | Tipo | Descripción |
| - | - | - |
| `status` | `"Approved" \| "Declined" \| "In Review" \| "Expired" \| "Not Finished"` | Estado del paso de identificación. |
| `node_id` | string \| null | Nodo del grafo del flujo de verificación (workflow) que generó este informe. |
| `document_type` | `"Passport" \| "Identity Card" \| "Driver's License" \| "Residence Permit" \| "Health Insurance Card" \| "Tax Card" \| "Social Security Card" \| "Work Permit" \| "Visa" \| "Public Service Card" \| "Birth Certificate" \| "Firearm License" \| "Other" \| null` | Familia de documento de nivel superior reconocida (legible para personas). |
| `document_subtype` | string \| null | Código de subtipo de documento del registro de documentos de Didit, filtrado según lo que acepta la configuración de documentos del flujo. Los documentos regionales incluyen la región, por ejemplo `QUEENSLAND_DRIVER_LICENSE_GENERIC`. Consulta [Subtipos de documento](https://docs.didit.me/es/core-technology/id-verification/document-subtypes-id-verification.md) para ver la lista completa de códigos, incluido cómo distinguir una licencia de conducir comercial (CDL) de EE. UU. de una estándar. |
| `document_number` | string | Número de documento extraído por OCR. En las licencias de conducir que imprimen tanto un número de licencia como un número de tarjeta, consulta la nota debajo de la tabla. |
| `personal_number` | string | Número de identificación personal o nacional extraído por OCR, cuando es distinto del número de documento. |
| `portrait_image`, `front_image`, `front_video`, `back_image`, `back_video`, `full_front_image`, `full_back_image` | string (URL firmada) | Contenido multimedia capturado. Las URL están firmadas y tienen una validez limitada: descárgalo cuanto antes y nunca guardes la URL. |
| `front_image_camera_front`, `back_image_camera_front` | string (URL firmada) \| null | Fotogramas capturados por la cámara frontal del usuario durante la captura del documento. Se usan para la comprobación facial entre cámaras y se comparan con tu [lista de bloqueo facial](https://docs.didit.me/es/console/blocklist-users.md#bloqueo-de-rostros); cada uno también se puede [añadir a la lista de bloqueo facial](https://docs.didit.me/es/management-api/lists/create-entry.md#rostros-de-la-selfie-de-captura-del-documento). |
| `front_image_camera_front_face_match_score`, `back_image_camera_front_face_match_score` | float (0–100) \| null | Puntuación de similitud entre el fotograma de la cámara frontal y el retrato del documento. |
| `document_selfie_face_matches` | array \| null | Sesiones anteriores o entradas de la lista de bloqueo facial cuyo rostro coincidió con la selfie tomada durante la captura del documento ([Búsqueda facial con Silent Capture](https://docs.didit.me/es/core-technology/face-search/overview.md#el-selfie-tomado-durante-la-captura-del-documento)). Mismo formato de entrada que `liveness_checks[].matches`; `match_image_url` es una URL prefirmada que expira. `null` en sesiones antiguas o cuando la búsqueda no se ejecutó, `[]` cuando se ejecutó y no encontró nada. |
| `front_image_quality_score`, `back_image_quality_score` | object \| null | Evaluación de calidad por cada cara (consulta Puntuaciones de calidad de imagen). |
| `document_liveness` | object \| null | Puntuaciones de vida del documento por tipo de fraude, con los umbrales con los que se evaluaron (consulta Puntuaciones de vida del documento). Solo V3. |
| `date_of_birth`, `expiration_date`, `date_of_issue` | string (YYYY-MM-DD) | Fechas del documento. |
| `age` | number | Edad del titular en años, calculada a partir de `date_of_birth`. |
| `issuing_state` | string (ISO 3166-1 alpha-3) | Código del país emisor. |
| `issuing_state_name` | string | Nombre localizado del país. |
| `first_name`, `last_name`, `full_name` | string | Nombre del titular en el sistema de escritura elegido por `preferred_characters` (consulta más abajo). |
| `gender` | `"M" \| "F" \| "U"` | Género, cuando aparece en el documento (`U` = desconocido). |
| `address`, `formatted_address` | string | Cadenas de dirección sin procesar y geocodificadas/formateadas. |
| `place_of_birth` | string | Lugar de nacimiento extraído por OCR. |
| `marital_status` | `"SINGLE" \| "MARRIED" \| "DIVORCED" \| "WIDOWED" \| "UNKNOWN"` | Estado civil, cuando aparece en el documento. |
| `nationality` | string (ISO 3166-1 alpha-3) | Nacionalidad del titular, cuando es distinta del país emisor. |
| `extra_fields` | object | Datos adicionales específicos del documento (categorías de la licencia de conducir, grupo sanguíneo, nombres en otro sistema de escritura, `tax_number`, …). |
| `mrz` | object \| null | Campos clave/valor de la MRZ analizados. |
| `parsed_address` | object \| null | Dirección estructurada y geocodificada (`street_1`, `street_2`, `city`, `region`, `country`, `postal_code`, `address_type`, `formatted_address`, `document_location`, `raw_results`, `is_best_match`). |
| `extra_files[]` | array de URL firmadas | Imágenes adicionales adjuntas a este documento. |
| `matches[]` | array | Coincidencias de documentos entre sesiones (consulta Coincidencias entre sesiones). |
| `warnings[]` | array | Advertencias del módulo; consulta [Advertencias de la verificación de identidad](https://docs.didit.me/es/core-technology/id-verification/warnings-id-verification.md). |

> [!NOTE]
>
> **`issuing_state` siempre corresponde al país, nunca a una división subnacional.** Para
> todos los tipos de documento, incluidas las licencias de conducir emitidas por un estado o provincia
> (Australia, Estados Unidos, Canadá), `issuing_state` e
> `issuing_state_name` indican el **país** (por ejemplo `AUS` /
> `Australia`), no el estado. El valor subnacional, cuando el documento
> lo incluye, está disponible por separado en `parsed_address.region` (con
> `extra_fields.state` como alternativa en algunos tipos de documento). La vista general de la sesión en el **Business
> Console** lo muestra como una fila **Region** debajo de
> **Issuing state** cuando existe.

> [!NOTE]
>
> **Licencias de conducir con dos números (Australia).** Las licencias australianas
> imprimen tanto un número de licencia, que identifica el permiso de conducción del titular
> y no cambia cuando se reemplaza la tarjeta, como un número de tarjeta,
> que identifica la tarjeta física y cambia con cada reemisión. Para estas
> licencias, Didit siempre asigna los números de la misma manera:
>
> * `personal_number`: el **número de licencia**
> * `document_number`: el **número de tarjeta**
>
> Esto se aplica a todos los estados y territorios australianos (NSW, VIC, QLD, WA, SA,
> TAS, ACT, NT). En algunas variantes, el número de tarjeta solo está impreso en el reverso,
> por lo que solo se lee cuando se captura el reverso de la licencia. Cuando no se puede leer ningún número
> de tarjeta, el número de licencia se informa **tanto** en
> `document_number` como en `personal_number`, de modo que `document_number` siempre contiene
> un identificador una vez finalizada la verificación. `personal_number` es el
> número de licencia en ambos casos. En otros tipos de documento, `document_number` sigue siendo
> el número principal extraído por OCR y puede ser en sí mismo un identificador del titular.

> [!NOTE]
>
> **El CUIL argentino está en `extra_fields.tax_number`, nunca en `personal_number`.**
> Los documentos argentinos imprimen el CUIL (el identificador de 11 dígitos
> sobre el que trabajan AFIP, ANSES y los burós de crédito) en un lugar distinto
> en cada documento, y el DNI imprime además un segundo número de 11 dígitos junto a él:
>
> * en la **licencia de conducir**, el CUIL es lo que contiene `personal_number`;
> * en el **DNI**, `personal_number` contiene el *número de trámite*, que
>   identifica la solicitud de la tarjeta y no es un identificador del titular.
>   El CUIL del DNI se lee de su propio campo impreso.
>
> Por tanto, `personal_number` **no** es un CUIL fiable para Argentina: en un DNI es
> un número de 11 dígitos que no devolverá ningún resultado en ningún registro, sin avisar de ello.
> Lee `extra_fields.tax_number` en su lugar. Didit lo informa solo cuando el valor
> se valida como un CUIL real (prefijo de persona más el dígito verificador módulo 11), en
> dígitos canónicos sin separadores (`27111111117`), sea cual sea el documento argentino
> que haya presentado el titular. Cuando no se pudo leer el CUIL de la tarjeta, la
> clave no aparece, en lugar de rellenarse con un número que no es un CUIL. Para cubrir a esos
> usuarios, captura la licencia de conducir como segundo documento, o recoge el CUIL mediante una
> respuesta de un cuestionario o los `metadata` de la sesión.

### Puntuaciones de calidad de imagen

`front_image_quality_score` y `back_image_quality_score` devuelven cada uno:

| Campo | Tipo | Qué mide |
| - | - | - |
| `focus_score` | número 0–100 | Nitidez: varianza laplaciana local del 10% superior, robusta frente a fondos uniformes. Peso del 45%. |
| `brightness_score` | número 0–100 | Penaliza las imágenes demasiado oscuras o sobreexpuestas. Peso del 30%. |
| `brightness_issue` | `"ok" \| "too_dark" \| "too_bright"` | Sentido del problema de brillo, cuando `brightness_score` es bajo. |
| `resolution_score` | número 0–100 | Basada en el número total de píxeles de la captura. Peso del 25%. |
| `is_document_fully_visible` | booleano \| null | `true` cuando las cuatro esquinas del documento son visibles, `false` cuando alguna esquina queda cortada, `null` cuando la detección de esquinas no estaba disponible. |
| `overall_score` | número 0–100 | Puntuación compuesta ponderada (enfoque 45%, brillo 30%, resolución 25%). |

> [!TIP]
>
> Usa `overall_score` como comprobación rápida de idoneidad: las puntuaciones superiores a **70** suelen indicar una captura lo bastante buena para una verificación fiable.

### Puntuaciones de prueba de vida del documento

`document_liveness` informa de lo que midió la [comprobación de prueba de vida del documento](https://docs.didit.me/es/core-technology/id-verification/warnings-id-verification.md#prueba-de-vida-del-documento-manipulación), **haya generado o no una advertencia**. Una advertencia solo existe cuando una puntuación quedó por debajo de uno de los umbrales del flujo, así que antes de este campo un documento aprobado no aportaba ninguna evidencia de prueba de vida: este campo es la forma de auditar una sesión aprobada. Es `null` cuando la comprobación no se ejecutó (por ejemplo, con un método que no es de documento, o ante una caída del modelo registrada en los logs de la sesión).

Contiene un objeto por tipo de fraude (`portrait_replace`, `printed_copy` y `screen_replay`), cada uno con:

| Campo | Tipo | Significado |
| - | - | - |
| `score` | número 0–100 \| null | Probabilidad de que el documento sea auténtico para este tipo de fraude (más alto = más probablemente auténtico). Es la **más baja** de las dos caras, que es el valor que usó la decisión. `null` cuando ninguna cara produjo una puntuación utilizable; por ejemplo, la puntuación del retrato se descarta en una cara donde no se encontró ningún retrato. |
| `front`, `back` | número 0–100 \| null | La misma puntuación para cada cara capturada. `null` para una cara que no se capturó o cuya puntuación se descartó. |
| `decline_threshold`, `review_threshold` | número \| null | Umbrales guardados cuando el nodo de Verificación de identidad evaluó este documento. Las ediciones posteriores del flujo no los modifican. `null` cuando no hay evidencia histórica de la evaluación. |
| `bucket` | `"approve" \| "review" \| "decline" \| null` | Dónde queda `score` respecto a esos umbrales: por debajo de `decline_threshold` → `decline`, por debajo de `review_threshold` → `review`, en otro caso `approve`. `null` cuando no hay una puntuación utilizable, la comprobación no se aplicó o no hay evidencia histórica de la evaluación. El bucket describe esta comprobación del tipo de fraude, no el estado general de la sesión. |

```json theme={null}
"document_liveness": {
  "portrait_replace": {
    "score": 96.46,
    "front": 96.46,
    "back": 98.2,
    "decline_threshold": 35,
    "review_threshold": 70,
    "bucket": "approve"
  },
  "printed_copy": {
    "score": 91.2,
    "front": 91.2,
    "back": 93.7,
    "decline_threshold": 35,
    "review_threshold": 77,
    "bucket": "approve"
  },
  "screen_replay": {
    "score": 99.9,
    "front": 99.9,
    "back": 99.5,
    "decline_threshold": 30,
    "review_threshold": 70,
    "bucket": "approve"
  }
}
```

En los documentos más antiguos sin evidencia de evaluación guardada, las puntuaciones almacenadas siguen siendo visibles, pero ambos umbrales y `bucket` son `null`. La configuración actual del flujo nunca se usa para reconstruir un resultado histórico. Lo mismo se aplica a una captura cuya evaluación del documento aún no ha finalizado.

La Business Console muestra las mismas tres filas en el bloque **Document liveness** de la sección Verificación de identidad de la sesión.

### Coincidencias entre sesiones

`matches[]` enumera hasta **5** documentos de tu aplicación que coinciden con este: misma **fecha de nacimiento**, mismo **país emisor** y un **nombre completo** muy similar. Los documentos de la lista de bloqueo requieren además una coincidencia exacta del número de documento. Se excluyen las sesiones que pertenecen al mismo usuario (mismo `vendor_data`).

Cada entrada incluye `session_id`, `session_number`, `vendor_data`, `verification_date`, `user_details` (`name`, `document_type`, `document_number`), `status`, `is_blocklisted` (`true` cuando el documento se añadió a tu lista de bloqueo), `api_service` y una `front_image_url` firmada.

## Valores de estado

| Estado | Significado | Efecto posterior |
| - | - | - |
| `Approved` | Documento reconocido, campos obligatorios extraídos y todas las comprobaciones superadas con los umbrales configurados. | Cuenta como una verificación de documento correcta. |
| `In Review` | Se activaron una o más advertencias y el flujo las envía a revisión. | La sesión también pasa a `In Review` hasta que un revisor actúe. |
| `Declined` | Se cumplió una condición de rechazo automático (documento no admitido, documento expirado, falta el retrato, coincidencia en la lista de bloqueo, fallo de edad adaptativa) o se activó una advertencia configurada como Rechazar. | La sesión se rechaza, salvo que otra rama aprobada cumpla los requisitos del flujo. |
| `Expired` | El documento caducó **después** de la aprobación. Lo establece la monitorización continua de documentos de Didit, activada por defecto (queda exenta la combinación de país y tipo de documento cuyo **Expiration mode** sea **Allow expired**), junto con una advertencia `DOCUMENT_EXPIRED`. | Una sesión aprobada pasa a `Kyc Expired`. |
| `Not Finished` | El usuario abandonó el paso de captura. | La rama de documento de identidad no produjo ningún resultado. |

## Documentos con varias escrituras (latina / no latina)

Algunos documentos (kirguises, kazajos, rusos, japoneses, coreanos, chinos, árabes, tailandeses, entre otros) imprimen el nombre, la dirección o el lugar de nacimiento del titular **tanto** en una transliteración latina **como** en la escritura local. Puedes elegir qué escritura determina la respuesta de nivel superior con el ajuste `preferred_characters` del flujo (o de la API independiente):

| Valor | Rellena los campos de nivel superior con | La escritura opuesta va a |
| - | - | - |
| `latin` *(predeterminado)* | La transliteración latina impresa en el documento | `extra_fields.*_non_latin` |
| `non_latin` | Los valores en escritura local impresos en el documento | `extra_fields.*_latin` |

Los valores en la escritura alternativa se encuentran dentro de `extra_fields`, en claves con sufijo: `first_name_non_latin`, `last_name_non_latin`, `middle_name_non_latin`, `full_name_non_latin`, `address_non_latin`, `place_of_birth_non_latin` (o las variantes `_latin` correspondientes).

### Cuándo aparecen los campos de escritura alternativa

* **Solo cuando ambas escrituras están realmente presentes en el documento.** Si un campo de OCR etiquetado nominalmente como "Surname-Kyrgyz (Cyrillic)" se extrae como texto en escritura latina (homoglifos o una transliteración latina), **no** se considera una alternativa no latina y esa clave se omite.
* `full_name_non_latin` (y `full_name_latin`) siempre se **reconstruyen** a partir de los componentes individuales de nombre, segundo nombre y apellido cuando ambos están disponibles; el campo "Full Name" sin procesar del OCR se ignora por coherencia.
* Cuando `preferred_characters=latin` pero el documento contiene **solo** texto no latino (de modo que los campos de nivel superior quedan en escritura no latina), Didit ejecuta una transliteración y expone `first_name_latin`, `last_name_latin`, `middle_name_latin`, `full_name_latin`, `place_of_birth_latin` y `address_latin` como alternativa en escritura latina.

```json theme={null}
{
  "first_name": "John",
  "last_name": "Doe",
  "full_name": "John Doe",
  "extra_fields": {
    "first_name_non_latin": "Айна"
  }
}
```

`last_name_non_latin` no aparece porque, en esta muestra, el campo "Surname (Cyrillic)" del documento se extrajo como caracteres latinos: no había ningún apellido no latino real que extraer.

## Ejemplos

### Aprobado: documento de identidad español sin incidencias (todos los campos)

```json theme={null}
{
  "id_verifications": [
    {
      "status": "Approved",
      "document_type": "Identity Card",
      "document_subtype": "ID_CARD_GENERIC",
      "document_number": "SAMPLE-DOC-12345",
      "personal_number": "SAMPLE-PER-12345",
      "portrait_image": "https://<media-host>/.../portrait.jpg?signature=...",
      "front_image": "https://<media-host>/.../front.jpg?signature=...",
      "front_video": "https://<media-host>/.../front.mp4?signature=...",
      "back_image": "https://<media-host>/.../back.jpg?signature=...",
      "back_video": "https://<media-host>/.../back.mp4?signature=...",
      "full_front_image": "https://<media-host>/.../full_front.jpg?signature=...",
      "full_back_image": "https://<media-host>/.../full_back.jpg?signature=...",
      "front_image_camera_front": null,
      "back_image_camera_front": null,
      "front_image_camera_front_face_match_score": null,
      "back_image_camera_front_face_match_score": null,
      "front_image_quality_score": {
        "focus_score": 85.3,
        "brightness_score": 92.1,
        "brightness_issue": "ok",
        "is_document_fully_visible": true,
        "resolution_score": 72.4,
        "overall_score": 84.6
      },
      "back_image_quality_score": {
        "focus_score": 79.1,
        "brightness_score": 90.5,
        "brightness_issue": "ok",
        "is_document_fully_visible": true,
        "resolution_score": 72.4,
        "overall_score": 81.5
      },
      "date_of_birth": "1990-01-01",
      "age": 35,
      "expiration_date": "2031-06-02",
      "date_of_issue": "2021-06-02",
      "issuing_state": "ESP",
      "issuing_state_name": "Spain",
      "first_name": "John",
      "last_name": "Doe",
      "full_name": "John Doe",
      "gender": "M",
      "address": "Avda de Madrid 34",
      "formatted_address": "Avda de Madrid 34, Madrid, Madrid 28822, Spain",
      "place_of_birth": "Madrid",
      "marital_status": "SINGLE",
      "nationality": "ESP",
      "extra_fields": {},
      "mrz": {
        "document_number": "SAMPLE-DOC-12345",
        "surname": "DOE",
        "name": "JOHN",
        "birth_date": "900101",
        "expiry_date": "310602"
      },
      "parsed_address": {
        "street_1": "Avda de Madrid 34",
        "street_2": null,
        "city": "Madrid",
        "region": "Madrid",
        "country": "ES",
        "postal_code": "28822",
        "address_type": "Avda",
        "formatted_address": "Avda de Madrid 34, Madrid, Madrid 28822, Spain",
        "document_location": { "latitude": 40.4168, "longitude": -3.7038 },
        "raw_results": {
          "geometry": {
            "location": { "lat": 40.4168, "lng": -3.7038 },
            "location_type": "ROOFTOP"
          }
        },
        "is_best_match": true
      },
      "extra_files": [],
      "warnings": [],
      "node_id": "id_primary",
      "matches": []
    }
  ]
}
```

### En revisión: no se detectó el QR en un documento que debería tenerlo

Abreviado: una respuesta real siempre incluye el conjunto completo de campos mostrado arriba.

```json theme={null}
{
  "id_verifications": [
    {
      "status": "In Review",
      "node_id": "id_primary",
      "document_type": "Identity Card",
      "document_subtype": "ID_CARD_GENERIC",
      "document_number": "SAMPLE-DOC-12345",
      "first_name": "John",
      "last_name": "Doe",
      "full_name": "John Doe",
      "warnings": [
        {
          "feature": "ID_VERIFICATION",
          "risk": "QR_NOT_DETECTED",
          "additional_data": null,
          "log_type": "warning",
          "short_description": "QR not detected",
          "long_description": "The system couldn't find or read the QR code on the document. This could be due to poor image quality or an unsupported document type.",
          "node_id": "id_primary"
        }
      ]
    }
  ]
}
```

## Nota de seguridad

Las URL firmadas que se devuelven para las imágenes y los videos de los documentos son temporales: caducan tras un periodo de validez limitado. Trátalas como enlaces de corta duración: descarga lo que necesites cuanto antes y no las almacenes en caché ni las expongas públicamente. Normalmente, tu aplicación solo necesita `status`, unos pocos campos biográficos y las advertencias; almacena lo mínimo posible para reducir la exposición ante cualquier brecha futura.

## Relacionado

* [Advertencias de verificación de documentos](https://docs.didit.me/es/core-technology/id-verification/warnings-id-verification.md): enumeración completa de advertencias, causas y cómo resolverlas.
* [Monitorización de documentos](https://docs.didit.me/es/core-technology/id-verification/document-monitoring-id-verification.md): cómo Didit detecta manipulaciones y duplicados entre sesiones.
* [Documentos admitidos](https://docs.didit.me/es/core-technology/id-verification/supported-documents-id-verification.md): qué tipos de documento y países están cubiertos.
* [Subtipos de documento](https://docs.didit.me/es/core-technology/id-verification/document-subtypes-id-verification.md): lista completa de códigos `document_subtype`, incluida la detección de licencias de conducir comerciales frente a estándar de EE. UU.
* [Webhooks](https://docs.didit.me/es/integration/webhooks.md): escucha `session.status.updated` para recibir el informe.
* [Modelos de datos: verificación de identidad](https://docs.didit.me/es/reference/data-models.md#verificación-de-identidad): esquema canónico con todos los campos.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.