Descripción general
El informe de verificación NFC recoge lo que Didit leyó y validó del chip NFC de un documento: un pasaporte electrónico, un documento de identidad electrónico u otro documento electrónico ICAO 9303. Incluye los datos biográficos del chip, las comprobaciones criptográficas de integridad (hashes del SOD y de los Data Groups) y un resumen del Document Signer Certificate (DSC) que usa el país emisor. El informe se genera después de que el usuario completa el paso NFC de un flujo de verificación (workflow). Didit lee los Data Groups del chip en el dispositivo del usuario, verifica la firma del Document Security Object (SOD) con el certificado CSCA del país emisor, compara el hash de cada Data Group con los valores firmados en el SOD y contrasta la MRZ del chip con la MRZ extraída por OCR de la cara visible del documento. Una Tarjeta My Number de Japón se lee mediante JPKI (chip_protocol: "jpki"): su informe incluye en jpki las comprobaciones del certificado, la firma, la revocación y los datos del titular, y los campos ICAO quedan en null. Consulta Tarjeta My Number de Japón (JPKI).
Cada informe tiene su propio status, independiente del estado general de la sesión, que refleja cómo se resolvió únicamente el paso NFC:
- Approved: se leyó el chip y ninguna de las advertencias que se activaron está configurada para enviar el paso a revisión o rechazarlo.
- In Review: se activó al menos una advertencia cuya acción configurada es Revisión (por ejemplo,
NFC_CHIP_NOT_VERIFIEDoNFC_TRUST_ANCHOR_MISSINGcuando la acción para chips no verificados está configurada como Revisión, oJPKI_REVOCATION_UNCHECKEDcon su acción predeterminada). - Declined: se activó al menos una advertencia cuya acción configurada es Rechazar (por ejemplo,
NFC_AND_OCR_DATA_NOT_SAMEcuando la acción para datos inconsistentes está configurada como Rechazar). - Not Finished: el usuario nunca completó el paso NFC; la lectura del chip se abandonó o el dispositivo no admitía NFC.
- Resub Requested: un revisor pidió al usuario que volviera a enviar la información; el informe quedará sustituido por un nuevo intento.
Dónde aparece en las respuestas de la API
El informe NFC se entrega dentro del arraynfc_verifications[], que es siempre un array JSON y nunca un objeto nfc singular. Aparecen varias entradas cuando un flujo ejecuta NFC más de una vez (por ejemplo, un flujo de verificación reforzada); cada entrada tiene su propio node_id.
- API de decisión de sesión: aparece como
nfc_verifications[]en el nivel superior deGET /v3/session/{sessionId}/decision/. Consulta Obtener la decisión de la sesión. - Webhooks: los payloads de
status.updatedincluyen el mismo arraynfc_verifications[]en cuanto el paso NFC ha generado datos. Consulta Webhooks. - NFC independiente: para el envío directo de datos del chip, consulta la descripción general de NFC.
nfc_skip_reason que indica exactamente el motivo: el documento no tiene chip, el certificado del país emisor no está disponible, el dispositivo no tiene lector NFC, la verificación se ejecutó sin un SDK nativo (un navegador no tiene acceso a NFC), no se pudo derivar la clave de acceso al chip a partir de la MRZ, no se pudo leer una My Number Card mediante JPKI o el usuario decidió omitir el paso. Queda en null para los resultados que no entran en esa clasificación, sobre todo cuando un usuario abandonó a mitad del intento (estado del informe Not Finished) o en una sesión en la que NFC sigue pendiente. Consulta Motivos de omisión para ver los valores exactos.
La documentación anterior hacía referencia a un campo
nfc singular. Esa estructura no existe en el endpoint de decisión v3: solo aparece en destinos de webhook configurados explícitamente para webhooks V2, donde también incluye chip_protocol y jpki. Lee siempre response.nfc_verifications[0] y recorre el array.Esquema
El esquema canónico campo por campo está en la página de referencia Modelos de datos. Los campos siguientes reflejan ese esquema canónico.Valores de estado
Las dos advertencias de certificado (
DSC_CERTIFICATE_REVOKED, DSC_CERTIFICATE_EXPIRED) son informativas: aparecen en warnings[], pero por sí solas nunca cambian el status de NFC. Consulta Advertencias NFC para ver la matriz completa de comportamiento.Ejemplos
Aprobado: chip leído y criptográficamente válido
Rechazado: discrepancia entre OCR y chip
Tarjeta My Number de Japón (JPKI)
En los SDK nativos, la tarjeta My Number de Japón se lee mediante JPKI: la persona introduce el PIN de la tarjeta y la tarjeta firma un desafío de un solo uso (consulta cómo funciona). Su informe tienechip_protocol: "jpki" y contiene la evidencia en jpki. portrait_image, signature_image, chip_data, authenticity y certificate_summary son null, porque la tarjeta no contiene datos ICAO.
Campos JPKI
El informe nunca contiene los propios certificados, sus números de serie, las firmas ni el Número Individual (My Number) de 12 dígitos de la tarjeta, que el paso NFC nunca lee.
Ejemplo: lectura de una tarjeta My Number
revocation_status: "unchecked", una advertencia JPKI_REVOCATION_UNCHECKED y status: "In Review" con la configuración predeterminada. Consulta Advertencias de NFC.
Nota de seguridad
Los datos del chip NFC están firmados por la autoridad emisora, por lo que un informe aprobado consod_integrity: true y dg_integrity: true es la evidencia de identidad más sólida que Didit puede generar. Trata las URL firmadas de las imágenes (portrait_image, signature_image) como enlaces de corta duración: descárgalas sin demora y no las almacenes en caché de forma pública; vuelve a solicitar la decisión cuando necesites enlaces nuevos.
Relacionado
- Advertencias de NFC: enum completo de advertencias, causas y soluciones.
- Webhooks: escucha el evento de
status.updatedpara recibir el informe NFC. - Modelos de datos: verificación NFC: esquema canónico con todos los campos.
- Documentos compatibles: qué documentos electrónicos puede leer Didit mediante NFC.