Saltar para o conteúdo principal

Visão geral

O relatório de verificação de identidade regista tudo o que a Didit extraiu e validou a partir de um documento de identificação oficial — passaportes, cartões de cidadão, cartas de condução e autorizações de residência. Agrupa os campos biográficos e do documento extraídos por OCR, URLs assinados para o conteúdo multimédia capturado, dados de morada processados e geolocalizados, pontuações de qualidade de imagem por lado, conteúdos da MRZ, discriminação por sistema de escrita (latino / não latino) e correspondências de documentos entre sessões. O relatório é gerado após o utilizador concluir o passo de captura de documentos num fluxo (ou chamar o endpoint de OCR autónomo). A Didit identifica o tipo de documento, executa o OCR, valida a MRZ / código de barras / código QR, processa a morada, analisa sinais de adulteração (captura de ecrã, cópia impressa, manipulação de retrato) e compara o documento com todos os outros documentos capturados na sua aplicação. Cada relatório possui o seu próprio status — independente do estado geral da sessão — que reflete como o passo de identificação foi resolvido de forma isolada:
  • Aprovada — documento reconhecido, todos os campos obrigatórios extraídos, nenhum aviso com encaminhamento de recusa acionado.
  • Em análise — um ou mais avisos foram acionados e o seu fluxo encaminha-os para revisão.
  • Recusada — uma condição de recusa automática foi acionada (documento não suportado, documento expirado, retrato em falta, correspondência na lista de bloqueio, falha na idade adaptativa) ou foi acionado um aviso cuja ação configurada é Recusar (idades mínima/máxima predefinidas como Recusar).
  • Expirada — a expiration_date do documento foi ultrapassada após a verificação. A monitorização contínua de expiração da Didit altera o relatório de Approved para Expired, anexa um aviso DOCUMENT_EXPIRED e move uma sessão aprovada para o estado de sessão Kyc Expired.
  • Não Concluído — o utilizador nunca concluiu o passo de captura.

Onde aparece nas respostas da API

O relatório de verificação de identidade é fornecido dentro do array id_verifications[] — sempre um array JSON, nunca um objeto id_verification singular. Surgem múltiplas entradas quando um fluxo executa mais do que um passo de documento (por exemplo, uma identificação principal mais um reforço de verificação).
  • API de decisão de sessão — GET /v3/session/{sessionId}/decision/ devolve id_verifications[] no nível superior. Consulte Obter decisão da sessão.
  • Webhooks — os payloads de session.status.updated incluem o mesmo array id_verifications[] assim que o passo gerar dados. Consulte Webhooks.
  • API de OCR autónomo — a submissão direta de documentos devolve um objeto singular id_verification com os mesmos campos. Consulte API de OCR autónomo.
Leia response.id_verifications[0] e itere o array. A estrutura singular id_verification apenas existe na API de OCR autónomo — não existe no endpoint de decisão v3.

Schema

O esquema canónico campo a campo encontra-se na página de referência Modelos de dados. Os campos abaixo provêm diretamente do IDVerificationV3Serializer, que estende o IDVerificationV2Serializer e adiciona node_id, o array de correspondências entre sessões matches[] e o array document_selfie_face_matches[] do Silent Capture.

Campos de nível superior

issuing_state é sempre ao nível do país, nunca subnacional. Para todos os tipos de documento, incluindo cartas de condução emitidas por um estado ou província (Austrália, Estados Unidos, Canadá), issuing_state e issuing_state_name indicam o país (por exemplo AUS / Australia), e não o estado. O valor subnacional, quando o documento apresenta um, está disponível separadamente em parsed_address.region (recorrendo a extra_fields.state em alguns tipos de documento). A visão geral da sessão na Business Console apresenta isto como uma linha de Região por baixo de Estado emissor quando presente.
Cartas de condução que incluem dois números (Austrália). As cartas de condução australianas imprimem tanto um número de licença, que identifica a habilitação de condução do titular e permanece inalterado quando o cartão é substituído, como um número de cartão, que identifica o cartão físico e muda a cada nova emissão. Para estas cartas de condução, a Didit mapeia sempre os números da mesma forma:
  • personal_number — o número da licença
  • document_number — o número do cartão
Isto aplica-se a todos os estados e territórios australianos (NSW, VIC, QLD, WA, SA, TAS, ACT, NT). Nalgumas variantes, o número do cartão é impresso apenas no verso, pelo que só é lido quando o verso da carta de condução é capturado. Quando não for possível ler o número do cartão, o número da licença é reportado tanto como document_number como personal_number, garantindo que document_number inclui sempre um identificador assim que a verificação termina. personal_number é o número da licença em qualquer dos casos. Noutros tipos de documento, document_number permanece o número principal extraído por OCR e pode ser, por si só, um identificador ao nível do titular.
O CUIL argentino é extra_fields.tax_number, nunca personal_number. Os documentos argentinos imprimem o CUIL — o identificador de 11 dígitos utilizado como chave pela AFIP, pela ANSES e pelas agências de crédito — num local diferente em cada documento, e o DNI imprime um segundo número de 11 dígitos ao lado deste:
  • na carta de condução, o CUIL é o valor de personal_number;
  • no DNI, personal_number contém o número de trámite, que identifica o pedido do cartão e não é um identificador do titular. O CUIL do DNI é lido a partir do seu próprio campo impresso.
Portanto, personal_number não é um CUIL fiável para a Argentina: num DNI, é um número de 11 dígitos que não devolverá qualquer resultado de nenhum registo, sem qualquer aviso. Em vez disso, leia extra_fields.tax_number. O Didit apenas o comunica quando o valor é validado como um CUIL real (prefixo da pessoa mais o dígito de controlo módulo-11), em dígitos canónicos sem separadores (27111111117), qualquer que seja o documento argentino apresentado pelo titular. Quando não foi possível ler o CUIL do cartão, a chave fica ausente em vez de ser preenchida com um número que não é um CUIL — capture a carta de condução como um segundo documento, ou recolha o CUIL através de uma resposta num Questionário ou nos metadata da sessão, para cobrir esses utilizadores.

Pontuações de qualidade da imagem

Tanto front_image_quality_score como back_image_quality_score devolvem:
Utilize overall_score como uma verificação rápida de adequação — pontuações superiores a 70 indicam geralmente uma captura suficientemente boa para uma verificação fiável.

Pontuações de prova de vida do documento

O campo document_liveness comunica o que a verificação de prova de vida do documento mediu, quer tenha ou não gerado um aviso. Um aviso só existe quando uma pontuação fica abaixo de um dos limiares do fluxo, pelo que, antes deste campo, um documento aprovado não incluía qualquer evidência de prova de vida - o campo é a forma de auditar uma sessão aprovada. É null quando a verificação não foi executada (por exemplo, num método sem documento ou numa falha do modelo registada nos registos da sessão). Contém um objeto por tipo de fraude - portrait_replace, printed_copy e screen_replay - cada um com:
Para documentos mais antigos sem evidências de avaliação guardadas, as pontuações armazenadas permanecem visíveis, mas tanto os limiares como bucket são null. As definições atuais do fluxo nunca são utilizadas para reconstruir um resultado histórico. O mesmo se aplica a uma captura cuja avaliação do documento ainda não tenha sido concluída. A Business Console apresenta as mesmas três linhas no bloco Prova de vida do documento da secção de Verificação de identidade da sessão.

Correspondências entre sessões

matches[] lista até 5 outros documentos na sua aplicação que correspondem a este — mesma data de nascimento, mesmo país emissor e um nome completo muito semelhante. Documentos na lista de bloqueio exigem adicionalmente uma correspondência exata do número do documento. As sessões pertencentes ao mesmo utilizador (mesmo vendor_data) são excluídas. Cada entrada inclui session_id, session_number, vendor_data, verification_date, user_details (name, document_type, document_number), status, is_blocklisted (true quando o documento foi adicionado à sua lista de bloqueio), api_service e um front_image_url assinado.

Valores de estado

Documentos com múltiplos sistemas de escrita (latino / não latino)

Alguns documentos — quirguizes, cazaques, russos, japoneses, coreanos, chineses, árabes, tailandeses e outros — imprimem o nome, morada ou local de nascimento do titular tanto numa transliteração latina como no sistema de escrita local. Pode escolher qual o sistema de escrita que alimenta a resposta de nível superior com a definição do fluxo (ou da API autónoma) preferred_characters: Os valores no sistema de escrita alternativo residem dentro de extra_fields sob chaves com sufixo: first_name_non_latin, last_name_non_latin, middle_name_non_latin, full_name_non_latin, address_non_latin, place_of_birth_non_latin (ou as variantes _latin correspondentes).

Quando surgem os campos no sistema de escrita alternativo

  • Apenas quando ambos os sistemas de escrita estão realmente presentes no documento. Se um campo de OCR nominalmente etiquetado como “Surname-Kyrgyz (Cyrillic)” for extraído como texto em sistema de escrita latino (homóglifos ou uma transliteração latina), não é qualificado como uma alternativa não latina e essa chave é omitida.
  • full_name_non_latin (e full_name_latin) são sempre reconstruídos a partir dos componentes individuais de nome próprio, nome do meio e apelido quando ambos estão disponíveis — o campo bruto “Full Name” do OCR é ignorado por consistência.
  • Quando preferred_characters=latin mas o documento contém apenas texto não latino (fazendo com que os campos de nível superior fiquem num sistema de escrita não latino), a Didit executa um passo de transliteração e disponibiliza first_name_latin, last_name_latin, middle_name_latin, full_name_latin, place_of_birth_latin e address_latin como alternativa latina.
last_name_non_latin está ausente porque o campo “Surname (Cyrillic)” do documento foi retornado como carateres latinos nesta amostra — não existia um apelido não latino genuíno para extrair.

Exemplos

Approved — cartão de identificação espanhol sem irregularidades (todos os campos)

In Review — QR não detetado num documento que deveria ter um

Versão abreviada — uma resposta real inclui sempre o conjunto completo de campos apresentado acima.

Nota de segurança

Os URLs assinados retornados para imagens e vídeos de documentos são temporários — expiram após uma janela de validade limitada. Trate-os como efémeros: transfira o que precisa prontamente e não os guarde em cache nem os exponha publicamente. Normalmente, a sua aplicação só precisa de status, de alguns campos biográficos e dos avisos — armazene o mínimo possível para minimizar a superfície de ataque em caso de uma futura violação.

Relacionado

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