Visão geral
O Document AI aceita até 3 documentos por etapa (PDF ou imagem: PDF, JPG, JPEG, PNG, TIFF, WebP). Cada documento é classificado pelodocument_key configurado, lido por um modelo de visão-linguagem com um esquema montado a partir das suas definições de campos e submetido a análise forense de PDF/EXIF. Para cada documento, ele armazena:
- Os campos extraídos: um mapa indexado pela
keyde campo que você configurou, com valores tipados conforme você os declarou (text→ string,number→ número,date→YYYY-MM-DD). Os campos que não puderam ser lidos ficam comonull. - QR codes e códigos de barras detectados: payloads decodificados e coordenadas em pixels para cada página renderizada. Um QR code que pode ser localizado, mas não decodificado, ainda é retornado com
parsed_payload: null. - O status do documento:
Approved,In Review,DeclinedouNot Finished. - Metadados do documento: análise forense do arquivo, incluindo qualquer evidência de sobreposição/manipulação.
- Resultados das verificações cruzadas: o resultado da correspondência do nome com a identidade verificada e de quaisquer referências cruzadas de campos personalizados.
Envio de documentos
Os documentos são enviados um de cada vez para o endpoint do Document AI. Em uma sessão hospedada ou em um fluxo com SDK, isso é feito automaticamente; o contrato é:
A resposta faz o fluxo avançar:
next_step passa de DOCUMENT_AI) quando todas as entradas de required_document_keys aparecem em uploaded_document_keys e nenhum documento permanece pendente.
Onde aparece nas respostas da API
GET /v3/session/{sessionId}/decision/ exibe o Document AI em dois lugares, tanto em sessões de Verificação de usuários (KYC) quanto de Verificação de empresas (KYB). O array document_ai_documents[] e o relatório em PDF são idênticos, independentemente do session_kind:
-
features[]: uma entrada de resumo por nó do Document AI, usada para listar quais recursos foram executados: -
document_ai_documents[]: o resultado completo, com um grupo por nó do Document AI. Cada grupo traz ostatuscombinado do nó, a lista deitemsenviados e quaisquerwarnings. Cada documento enviado é um item com os campos que você configurou (emextracted_data), os códigos detectados (emdetected_codes), seu própriostatus, as definições de campos, os metadados forenses do documento (document_metadata) e ocross_check_result.
Exemplo de decisão
Para um documento de Comprovante de fundos configurado comaccount_holder (texto), balance (número), currency (texto) e statement_date (data):
page_number começa em 1. position contém o polígono detectado, enquanto x, y, width e height fornecem sua caixa delimitadora. Todas as coordenadas usam o espaço em pixels da página renderizada, cujas dimensões são page_width e page_height. detected_codes é um array vazio quando nenhum código compatível é encontrado. Trate um item com parsed_payload: null apenas como indicação de presença e localização, não como um valor decodificado.
Como cada campo pode ser referenciado como document_ai.<field_key>, você pode controlar ramificações e regras de status personalizadas diretamente a partir dos valores de extracted_data, inclusive com referências cruzadas a outras etapas, como kyc.full_name ou respostas de questionários.