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 propiostatus, 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_datedel documento venció después de la verificación. La monitorización continua de caducidad de Didit cambia el informe deApprovedaExpired, añade una advertenciaDOCUMENT_EXPIREDy pasa una sesión aprobada al estado de sesiónKyc 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 arrayid_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/devuelveid_verifications[]en el nivel superior. Consulta Obtener la decisión de la sesión. - Webhooks: los payloads de
session.status.updatedincluyen el mismo arrayid_verifications[]en cuanto el paso ha generado datos. Consulta Webhooks. - API de OCR independiente: el envío directo de documentos devuelve un objeto singular
id_verificationcon los mismos campos. Consulta API de OCR independiente.
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. Los campos siguientes provienen directamente deIDVerificationV3Serializer, 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
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.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 licenciadocument_number: el número de tarjeta
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.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_numbercontiene 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.
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:
Puntuaciones de prueba de vida del documento
document_liveness informa de lo que midió la comprobación de prueba de vida del documento, 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:
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
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 ajustepreferred_characters del flujo (o de la API independiente):
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(yfull_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=latinpero 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 exponefirst_name_latin,last_name_latin,middle_name_latin,full_name_latin,place_of_birth_latinyaddress_latincomo alternativa en escritura latina.
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)
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.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 necesitastatus, 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: enumeración completa de advertencias, causas y cómo resolverlas.
- Monitorización de documentos: cómo Didit detecta manipulaciones y duplicados entre sesiones.
- Documentos admitidos: qué tipos de documento y países están cubiertos.
- Subtipos de documento: lista completa de códigos
document_subtype, incluida la detección de licencias de conducir comerciales frente a estándar de EE. UU. - Webhooks: escucha
session.status.updatedpara recibir el informe. - Modelos de datos: verificación de identidad: esquema canónico con todos los campos.