For the complete documentation index, see llms.txt. This page is also available as Markdown.

Resposta de resultado

Quando a transação está no estado COMPLETED, a resposta de GET /v2/daf/{transactionId} inclui o diagnóstico completo:

Exemplo de resposta

{
  "transactionId": "1c7d...e9",
  "status": "COMPLETED",
  "diagnostic": "DECLINED",
  "rejectionReason": 160,
  "diagnostics": [
    {
      "code": "160",
      "result": "fail",
      "reason": "Ataque de apresentação detectado",
      "category": "attack_detection"
    },
    {
      "code": "500",
      "result": "pass",
      "reason": "Baixa qualidade da imagem frontal",
      "category": "integrity"
    },
    {
      "code": "501",
      "result": "pass",
      "reason": "Baixa qualidade da imagem traseira",
      "category": "integrity"
    },
    {
      "code": "502",
      "result": "pass",
      "reason": "Incompatibilidade de identidade entre o retrato e a imagem fantasma",
      "category": "biometric"
    },
    {
      "code": "503",
      "result": "pass",
      "reason": "Incompatibilidade entre a idade estimada da selfie e o retrato",
      "category": "logical"
    },
    {
      "code": "504",
      "result": "pass",
      "reason": "Incompatibilidade entre o sexo estimado da selfie e o retrato",
      "category": "logical"
    }
  ],
  "ocr": {
    "mrz": {
      "documentType": "ID",
      "issuingState": "NIC",
      "documentNumber": "6191000E",
      "nationality": "NIC",
      "dateOfBirth": "2003-02-14",
      "expiryDate": "2029-11-20",
      "sex": "M",
      "surname": "ROMERO LOPEZ",
      "givenNames": "ELVIN ANTONIO",
      "mrzValid": true
    },
    "viz": {
      "documentClassification": ["NIC-00-IDC-2017-001-01-01"],
      "vizType": "VIZ_similar_to_ID_document"
    }
  },
  "timestamp": "2026-06-26T12:00:05.000Z"
}

Os campos opcionais (diagnostic, rejectionReason, diagnostics, ocr, failureReason) são omitidos da resposta quando não se aplicam, em vez de serem enviados com o valor null. Por exemplo, um diagnostic = APPROVED nunca inclui rejectionReason. As linhas de diagnostics[] são resultados independentes para cada verificação (result = pass ou fail): pode haver linhas com result = fail mesmo quando o diagnóstico global é APROVADO, se essa verificação específica não foi determinante para o resultado final. Quando status = FAILED, a resposta inclui apenas transactionId, status, failureReason e timestamp.

Campos principais

Campo
Descrição

diagnostic

APROVADO | RECUSADO. Incluído somente quando status = COMPLETED.

rejectionReason

Código de motivo do catálogo DAF, preenchido somente se diagnostic = DECLINED.

diagnostics[]

Detalhe das validações individuais executadas (code, result, reason, category).

ocr.mrz

Dados extraídos da zona de leitura mecânica (MRZ) do documento.

ocr.viz

Classificação do documento a partir da sua zona visual (VIZ).

diagnostics

Campo
Tipo
Descrição

code

string

Código de motivo do catálogo DAF.

result

string

pass | fail. Resultado dessa validação específica.

reason

string

Descrição legível da validação.

category

string

Agrupamento temático: input, integrity, logical, biometric, attack_detection, unsupported, low_confidence, processing, block_list, escalated_review, unknown.

Catálogo de códigos de motivo (rejectionReason / diagnostics[].code)

Convém distinguir dois níveis de leitura do resultado:

  • Geral. O campo diagnostic (APROVADO / RECUSADO) é o veredicto global da transação, e rejectionReason é o código geral que resume o motivo da rejeição quando diagnostic = DECLINED.

  • Granular. Cada linha de diagnostics[] é um sinal individual (code + result = pass|fail), cujo code provém deste mesmo catálogo. Pode haver sinais fail mesmo com um diagnóstico APROVADO, e sinais que acompanham qualquer resultado (ver códigos 500-506).

Estes códigos são estáveis. Recomenda-se tratá-los como um catálogo fechado e consultar esta tabela para apresentar mensagens ao usuário final.

code
reason
category

100

Imagem frontal do documento ausente

input

101

Imagem traseira do documento ausente

input

102

Documento frontal não detectado

integrity

103

Documento traseiro não detectado

integrity

104

Erro ao carregar a imagem frontal

input

105

Erro ao carregar a imagem traseira

input

106

Dimensões não compatíveis para a imagem frontal

integrity

107

Dimensões não compatíveis para a imagem traseira

integrity

108

Proporção de aspecto não compatível para a imagem frontal

integrity

109

Proporção de aspecto não compatível para a imagem traseira

integrity

110

Profundidade não compatível para a imagem frontal

integrity

111

Profundidade não compatível para a imagem traseira

integrity

112

Vários documentos detectados na imagem frontal

attack_detection

113

Vários documentos detectados na imagem traseira

attack_detection

120

Documento anulado ou danificado

integrity

130

Hashes inválidos da MRZ do documento

logical

131

Documento expirado

logical

132

MRZ do documento não detectada

logical

133

Datas da MRZ do documento inconsistentes

logical

134

Formato inválido da MRZ do documento

logical

150

Foto do documento ausente

biometric

160

Ataque de apresentação detectado

attack_detection

161

Ataque de manipulação detectado

attack_detection

170

Rosto da selfie não detectado

integrity

171

Incompatibilidade de identidade entre o retrato e a imagem da selfie

biometric

200

Rosto encontrado na lista global de bloqueio

block_list

201

Rosto encontrado na lista de bloqueio da plataforma

block_list

300

Versão do documento Fast-Auto-Screening não compatível

unsupported

310

País Fast-Auto-Screening não compatível

unsupported

320

Pontuação de confiança baixa do Fast-Auto-Screening

low_confidence

330

Timeout durante a espera pelo serviço OCR

processing

331

Erro ao chamar o pipeline OCR

processing

332

Incompatibilidade entre VIZ e os campos da MRZ

logical

340

Incompatibilidade entre a data de nascimento da VIZ e a MRZ

logical

341

Incompatibilidade entre o país da VIZ e a MRZ

logical

342

Incompatibilidade entre o tipo de documento da VIZ e a MRZ

logical

343

Incompatibilidade entre o número do documento da VIZ e a MRZ

logical

344

Incompatibilidade entre a data de validade da VIZ e a MRZ

logical

345

Incompatibilidade entre os nomes da VIZ e a MRZ

logical

346

Incompatibilidade entre a nacionalidade da VIZ e a MRZ

logical

347

Incompatibilidade entre os segundos dados opcionais da VIZ e a MRZ

logical

348

Incompatibilidade entre os dados opcionais da VIZ e a MRZ

logical

349

Incompatibilidade entre o sexo da VIZ e a MRZ

logical

350

Incompatibilidade entre o sobrenome da VIZ e a MRZ

logical

500

Baixa qualidade da imagem frontal

integrity

501

Baixa qualidade da imagem traseira

integrity

502

Incompatibilidade de identidade entre o retrato e a imagem fantasma

biometric

503

Incompatibilidade entre a idade estimada da selfie e o retrato

logical

504

Incompatibilidade entre o sexo estimado da selfie e o retrato

logical

505

Incompatibilidade entre a idade estimada do retrato e a MRZ

logical

506

Incompatibilidade entre o sexo estimado do retrato e a MRZ

logical

600

Validação escalada recusada

escalated_review

601

Validação escalada sinalizada para revisão manual

escalated_review

602

Tempo esgotado na validação escalada

escalated_review

603

Validação escalada não concluída

escalated_review

999

Validação recusada

unknown

Códigos 100-171 e 300-350 acompanham uma rejeição ou um resultado inconclusivo: entradas ausentes ou ilegíveis (input), problemas de integridade/qualidade do documento (integrity), inconsistências lógicas de MRZ e de comparação VIZ↔MRZ (logical), ataques de apresentação ou manipulação (attack_detection), resultados do fast auto-screening de versão/país e confiança (unsupported / low_confidence) e erros do próprio pipeline de OCR (processing). Códigos 200/201 indicam uma correspondência na lista de bloqueio de rostos, global ou da própria plataforma. Códigos 500-506 são sinais de verificação informativos (qualidade de imagem e correspondências biométricas de idade/sexo entre selfie, retrato e MRZ): aparecem como linhas de diagnostics[] (result = pass ou fail) e podem acompanhar qualquer estado, incluindo APROVADO; não são usados como rejectionReason por si só. Códigos 600-603 correspondem a uma rejeição, revisão, expiração ou abandono durante uma verificação adicional escalada quando a análise inicial é inconclusiva.

Rejeição por qualidade vs detecção de fraude

Nem todos os RECUSADO significam a mesma coisa. A category de cada código permite distinguir três situações e comunicar ao usuário final a mensagem adequada:

  • Problema de captura ou qualidade (categorias input e integrity): a imagem não é utilizável ou o documento não é detectado corretamente. Não é uma acusação de fraude. Inclui entradas ausentes/ilegíveis (100, 101, 104, 105) e problemas de integridade/qualidade (102, 103, 106-111, 120, 170, 500, 501). Ação típica: solicitar uma nova captura com melhor qualidade.

  • Sinal de fraude ou ataque (categorias attack_detection e block_list): rejeição genuína por indícios de fraude. Inclui vários documentos ou ataques de apresentação/manipulação (112, 113, 160, 161) e correspondências na lista de bloqueio de rostos (200, 201).

  • Inconsistência de dados ou biometria (categorias logical e biometric): os dados não são coerentes entre si, sem ser um problema puramente de qualidade nem um ataque explícito. Inclui inconsistências de MRZ e de comparação VIZ↔MRZ (130-134, 332, 340-350) e comparações biométricas (171, 502-506).

Dados de OCR

Campo (ocr.mrz)

Descrição

documentType

Tipo de documento (por ex. ID, PASSPORT).

issuingState

País emissor (código ISO).

documentNumber

Número do documento.

nationality

Nacionalidade do titular.

dateOfBirth

Data de nascimento.

expiryDate

Data de validade do documento.

sex

Sexo registrado no documento.

surname / givenNames

Sobrenomes e nomes.

mrzValid

true se a MRZ é válida (checksums corretos).

Campo (ocr.viz)

Descrição

documentClassification

Identificador(es) de classificação do modelo de documento detectado.

vizType

Tipo de zona visual reconhecida no documento.

Atualizado