Pular para o conteúdo principal

Visão geral

O relatório de verificação NFC registra o que a Didit leu e validou no chip NFC de um documento: um passaporte eletrônico, uma carteira de identidade eletrônica ou outro documento eletrônico ICAO 9303. Ele inclui os dados biográficos do chip, as verificações criptográficas de integridade (hashes do SOD e dos Data Groups) e um resumo do Document Signer Certificate (DSC) usado pelo país emissor. O relatório é gerado depois que o usuário conclui a etapa NFC de um fluxo de verificação (workflow). A Didit lê os Data Groups do chip no dispositivo do usuário, verifica a assinatura do Document Security Object (SOD) com o certificado CSCA do país emissor, confere o hash de cada Data Group com os valores assinados no SOD e compara a MRZ do chip com a MRZ extraída por OCR da face visível do documento. Um My Number Card japonês é lido por JPKI (chip_protocol: "jpki"): o relatório traz as verificações de certificado, assinatura, revogação e dados do titular em jpki, e os campos ICAO ficam null. Veja Japan My Number Card (JPKI). Cada relatório tem o próprio status, independente do status geral da sessão, que indica como a etapa NFC foi resolvida isoladamente:
  • Aprovado: o chip foi lido e nenhum dos avisos disparados está configurado para enviar a etapa para revisão ou recusa.
  • Em Revisão: pelo menos um aviso disparado tem a ação configurada como Revisão (por exemplo, NFC_CHIP_NOT_VERIFIED ou NFC_TRUST_ANCHOR_MISSING quando a ação para chip não verificado está definida como Revisão, ou JPKI_REVOCATION_UNCHECKED com a ação padrão).
  • Recusado: pelo menos um aviso disparado tem a ação configurada como Recusar (por exemplo, NFC_AND_OCR_DATA_NOT_SAME quando a ação para inconsistência de dados está definida como Recusar).
  • Not Finished: o usuário nunca concluiu a etapa NFC; a leitura do chip foi abandonada ou o dispositivo não oferecia suporte a NFC.
  • Resub Requested: um revisor pediu ao usuário que reenviasse; o relatório será substituído por uma nova tentativa.

Onde aparece nas respostas da API

O relatório NFC vem dentro do array nfc_verifications[], sempre um array JSON, nunca um objeto nfc único. Aparecem várias entradas quando um fluxo executa o NFC mais de uma vez (por exemplo, em um fluxo de autenticação adicional); cada entrada tem o próprio node_id.
  • API de decisão da sessão: aparece como nfc_verifications[] no nível superior de GET /v3/session/{sessionId}/decision/. Veja Retrieve session decision.
  • Webhooks: os payloads de status.updated incluem o mesmo array nfc_verifications[] assim que a etapa NFC gera dados. Veja Webhooks.
  • NFC avulso: para envio direto do chip, veja a visão geral de NFC.
Quando o seu fluxo inclui uma etapa NFC que foi pulada ou ignorada, o payload da decisão também traz o campo de nível superior nfc_skip_reason, que informa exatamente o motivo: o documento não tem chip, o certificado do país emissor não está disponível, o dispositivo não tem leitor NFC, a verificação foi feita sem SDK nativo (o navegador não tem acesso ao NFC), não foi possível derivar a chave de acesso do chip a partir da MRZ, não foi possível ler um My Number Card via JPKI ou o usuário optou por pular a etapa. Ele fica null para resultados fora dessa classificação, principalmente nos casos de um usuário que abandonou no meio da tentativa (status do relatório Not Finished) ou uma sessão em que o NFC ainda está pendente. Veja Motivos para pular para os valores exatos.
A documentação antiga fazia referência a um campo nfc único. Esse formato não existe no endpoint de decisão v3: ele só aparece em destinos explicitamente vinculados a webhooks V2, onde também traz chip_protocol e jpki. Sempre leia response.nfc_verifications[0] e percorra o array.

Schema

O schema canônico, campo a campo, está na página de referência Modelos de dados. Os campos abaixo espelham esse schema canônico.

Valores de status

Os dois avisos de certificado (DSC_CERTIFICATE_REVOKED, DSC_CERTIFICATE_EXPIRED) são informativos: aparecem em warnings[], mas nunca alteram o status do NFC por si só. Veja Avisos de NFC para a matriz completa de comportamento.

Exemplos

Aprovado: chip lido e criptograficamente válido

Recusado: divergência entre OCR e chip

Cartão My Number do Japão (JPKI)

Nos SDKs nativos, o Cartão My Number do Japão é lido via JPKI: a pessoa digita o PIN do cartão e o cartão assina um desafio de uso único (veja como funciona). O relatório tem chip_protocol: "jpki" e traz as evidências em jpki. portrait_image, signature_image, chip_data, authenticity e certificate_summary são null, porque o cartão não contém dados ICAO.
A leitura do Cartão My Number via JPKI ainda não está habilitada em produção. Até que esteja, o Cartão My Number pula a etapa NFC com o motivo JPKI_UNAVAILABLE.

Campos JPKI

O relatório nunca inclui os próprios certificados, os números de série deles, as assinaturas nem o Número Individual (My Number) de 12 dígitos do cartão, que a etapa NFC nunca lê.

Exemplo: leitura do Cartão My Number

Quando a verificação de revogação não está disponível em uma leitura, o mesmo relatório tem revocation_status: "unchecked" e um aviso JPKI_REVOCATION_UNCHECKED. Com as configurações padrão, ele também tem status: "In Review". Veja Avisos de NFC.

Nota de segurança

Os dados do chip NFC são assinados pela autoridade emissora. Por isso, um relatório aprovado com sod_integrity: true e dg_integrity: true é a evidência de identidade mais forte que a Didit pode produzir. Trate as URLs assinadas das imagens (portrait_image, signature_image) como temporárias: faça o download delas logo e não as armazene em cache público. Solicite a decisão novamente quando precisar de links novos.

Relacionados

Última modificação em 1 de novembro de 2026