Saltar al contenido principal

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_VERIFIED o NFC_TRUST_ANCHOR_MISSING cuando la acción para chips no verificados está configurada como Revisión, o JPKI_REVOCATION_UNCHECKED con su acción predeterminada).
  • Declined: se activó al menos una advertencia cuya acción configurada es Rechazar (por ejemplo, NFC_AND_OCR_DATA_NOT_SAME cuando 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 array nfc_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 de GET /v3/session/{sessionId}/decision/. Consulta Obtener la decisión de la sesión.
  • Webhooks: los payloads de status.updated incluyen el mismo array nfc_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.
Cuando tu flujo incluye un paso NFC que se omitió o se saltó, el payload de la decisión también incluye un campo de nivel superior 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 tiene chip_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.
La lectura de la tarjeta My Number mediante JPKI todavía no está habilitada en producción. Mientras no lo esté, una tarjeta My Number omite el paso NFC con el motivo de omisión JPKI_UNAVAILABLE.

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

Cuando la comprobación de revocación no está disponible para una lectura, el mismo informe tiene 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 con sod_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

Última modificación el 1 de noviembre de 2026