> ## Documentation Index
> Fetch the complete documentation index at: https://docs.didit.me/llms.txt
> Use this file to discover all available pages before exploring further.

# Document AI: extração de dados de qualquer documento

> O Document AI da Didit coleta até 3 documentos personalizados e extrai com IA os campos que você define, cruzando-os com outras etapas e com suas regras.

O Document AI permite coletar documentos que não seguem um modelo fixo - comprovantes de fundos, holerites, cartas de origem do patrimônio, declarações fiscais e qualquer outro - e extrair exatamente os campos que **você** define. Você configura o título e a descrição de cada documento exibidos na tela (traduzidos automaticamente para todos os idiomas de verificação) e a lista de dados a serem lidos. A IA da Didit extrai esses campos, opcionalmente os cruza com outras etapas de verificação e aplica suas regras para produzir um status.

Prompt de integração do Document AI
        Copy prompt to clipboard



      
      

\<pre>

\`# Goal
Integrate Didit Document AI (configurable multi-document upload + AI field extraction + cross-checks) into your app.

\# Setup (Business Console or POST /v3/workflows/)
Add the DOCUMENT_AI feature to your workflow and configure:
\- document_ai_documents: up to 3 documents. Each has { document_key, title, description, fields[] }.
Each field is { key, name, instruction, type: "text" | "number" | "date", required, is_full_name }.
title and description are auto-translated into every verification language on save.
\- is_full_name: optional boolean on a field. Marks the field whose value is compared automatically against the
verified subject: on a person (KYC) workflow the document holder's full name (the ID-verification name, or the
session's expected details), and on a business (KYB) workflow the verified company name (the registry-matched
company, or the session's expected company name). A low match below document_ai_name_match_score_threshold
triggers document_ai_name_mismatch_action. At most one field per document may set it, and it is optional — a
document may mark none (no name check runs).
\- Basic rules (per-risk action DECLINE | REVIEW | NO_ACTION): document_ai_unreadable_document_action,
document_ai_missing_required_fields_action, document_ai_document_tampering_action,
document_ai_name_mismatch_action, document_ai_unsupported_file_action, document_ai_max_attempts_exceeded_action.
\- document_ai_name_match_score_threshold (0-100), document_ai_max_retry_attempts (2-5).
\- status_rules[]: custom rules on any extracted field. Reference an extracted field as document_ai.<field_key>
and cross-reference other steps with value_type:"field" (e.g. document_ai.account_holder equals kyc.full_name).

\# Flow
1\. Create a session — POST /v3/session/ with { workflow_id, vendor_data, callback }. See /sessions-api/create-session.
2\. Open session.url for the user (or mount the Web/Mobile SDK). The user uploads each configured document.
3\. The user uploads documents to POST /v3/document-ai/documents/ (handled by the hosted flow/SDK):
multipart/form-data with { document_key, document, locale? }, Session-Token auth.
Response: { valid?, next_step, document_ai_status, uploaded_document_keys[], required_document_keys[] }.
The step completes once every configured document_key is uploaded.
4\. Fetch the decision — GET /v3/session/{sessionId}/decision/ or subscribe to session.status.updated.

\# Decision surface
DOCUMENT_AI appears in the decision features[] array as { feature: "DOCUMENT_AI", node_id }.
Per-document statuses combine via precedence Declined > In Review > Approved.

\# See also
\- Report: /core-technology/document-ai/report-document-ai
\- Rules & warnings: /core-technology/document-ai/warnings-document-ai
\- Configure in the console: /console/workflows
\- Standalone API (server-to-server, no hosted UI): POST /v3/document-ai/ — /standalone-apis/document-ai`

\</pre>



      
      

Paste into

> [!NOTE]
>
> Já tem o documento no seu servidor? Chame diretamente a [API do Document AI](https://docs.didit.me/standalone-apis/document-ai.md): envie o arquivo com as definições dos seus campos em uma única requisição `POST /v3/document-ai/` e receba de volta, de forma síncrona, os campos extraídos, a correspondência de nome e o status, sem fluxo hospedado. \$0.20 por documento.## Como funciona**1. Configure documentos e campos**No construtor de fluxos (workflows), você define até **3 documentos**. Para cada documento, você configura:| Configuração | Descrição |
| - | - |
| **Título e descrição** | Exibidos ao usuário na tela de envio. Informados uma vez e **traduzidos automaticamente** para todos os idiomas de verificação. |
| **Campos a extrair** | Uma lista de campos tipados - cada um com um nome, uma instrução de extração para a IA, um tipo (`text`, `number`, `date`), um indicador de obrigatório e um marcador opcional de **nome completo**. |
| **Campo de nome** | Opcionalmente, marque um campo de texto por documento como o nome a ser conferido. Em um fluxo de pessoa (KYC), é o **nome completo**, comparado com a identidade verificada; em um fluxo de empresa (KYB), é o **nome da empresa**, comparado com a empresa verificada. `document_ai_name_mismatch_action` decide o que acontece em caso de divergência. Opcional - deixe sem definir para pular a conferência de nome nesse documento. |Comece por um [modelo](#modelos-iniciais) ou crie do zero.**2. O usuário envia os documentos**O usuário envia um arquivo por documento configurado (PDF ou imagem). Cada envio é processado de forma independente; a etapa é concluída quando todos os documentos obrigatórios forem fornecidos.**3. Extração com IA**A Didit renderiza cada documento e executa um modelo de visão e linguagem com um esquema construído a partir das definições dos seus campos. Os valores extraídos são retornados tipados (números como números, datas como `YYYY-MM-DD`) e armazenados por documento. Análises forenses de PDF/EXIF são executadas para detectar manipulação.**4. Cruzamento e regras**Os campos extraídos podem ser cruzados com outras etapas - por exemplo, o nome do titular do documento com o documento de identidade verificado, ou qualquer campo com as respostas de um questionário - e com suas **regras básicas** e **regras de status personalizadas**. Os status por documento resultantes se combinam no status do recurso.## Modelos iniciaisAo adicionar um nó de Document AI, você pode começar por um modelo pronto que preenche previamente o título, a descrição e os campos tipados. Personalize o que quiser depois.| Modelo | Campos típicos |
| - | - |
| **Comprovante de fundos** | Titular da conta, saldo, moeda, data do extrato |
| **Comprovante de renda (holerite)** | Empregador, nome do empregado, salário bruto/líquido, período de pagamento |
| **Origem do patrimônio** | Tipo de origem, valor, data, instituição |
| **Documento fiscal** | Nome do contribuinte, ano fiscal, renda declarada, identificação fiscal |## Cruzamento com outras etapasOs campos do Document AI são endereçáveis como `document_ai.<field_key>` e podem ser comparados com campos de outras etapas concluídas por meio de uma regra de status personalizada com `value_type: "field"`. Por exemplo:- `document_ai.account_holder` **equals** `kyc.full_name` - o titular do documento corresponde à identidade verificada.
- `document_ai.balance` **greater\_than** `50000` - sinalize saldos altos para revisão.As regras correspondentes são incorporadas à decisão segundo a precedência da plataforma **Declined > In Review > Approved**, de modo que uma regra pode elevar a severidade, mas nunca substituir um status mais rigoroso determinado pelo risco. Veja [Regras e alertas](https://docs.didit.me/core-technology/document-ai/warnings-document-ai.md).## Requisitos do documento| Requisito | Detalhe |
| - | - |
| **Documentos por etapa** | Até 3, cada um configurado de forma independente |
| **Formatos compatíveis** | PDF, JPG, JPEG, PNG, TIFF, WebP |
| **Páginas** | PDFs de várias páginas são aceitos |
| **Qualidade** | Documento original ou digitalização de alta qualidade; sem edição ou manipulação digital |> [!NOTE]
>
> O Document AI faz a leitura de texto não estruturado, o que adiciona alguns segundos de latência por documento. Os webhooks só são disparados quando toda a etapa do fluxo é concluída - não consulte o endpoint de decisão com mais frequência do que a cada 5 s durante esse intervalo.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.