> ## 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: extracción de datos de documentos

> Document AI de Didit recoge hasta 3 documentos personalizados y extrae con IA los campos que definas, contrastándolos con otros pasos y con tus propias reglas.

Document AI te permite recoger documentos que no encajan en una plantilla fija (pruebas de fondos, nóminas, cartas de origen del patrimonio, extractos fiscales y cualquier otro) y extraer exactamente los campos que **tú** defines. Configuras el título y la descripción en pantalla de cada documento (que se traducen automáticamente a todos los idiomas de verificación) y la lista de datos que se deben leer. La IA de Didit extrae esos campos, opcionalmente los contrasta con otros pasos de la verificación y aplica tus reglas para producir un estado.

Prompt de integración de 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]
>
> ¿Ya tienes el documento en tu servidor? Llama directamente a la [API de Document AI](https://docs.didit.me/standalone-apis/document-ai.md): envía el archivo y tus definiciones de campos en una sola solicitud `POST /v3/document-ai/` y recibe de forma síncrona los campos extraídos, la coincidencia de nombre y el estado, sin flujo alojado. \$0.20 por documento.## Cómo funciona**1. Configura los documentos y los campos**En el editor de flujos de verificación defines hasta **3 documentos**. Para cada documento configuras:| Ajuste | Descripción |
| - | - |
| **Título y descripción** | Se muestran al usuario en la pantalla de subida. Se introducen una vez y se **traducen automáticamente** a todos los idiomas de verificación. |
| **Campos que extraer** | Una lista de campos tipados, cada uno con un nombre, una instrucción de extracción para la IA, un tipo (`text`, `number`, `date`), una marca de obligatorio y una marca opcional de **nombre completo**. |
| **Campo de nombre** | Opcionalmente, marca un campo de texto por documento como el nombre que se debe comparar. En un flujo de personas (KYC) es el **nombre completo**, que se compara con la identidad verificada; en un flujo de empresas (KYB) es el **nombre de la empresa**, que se compara con la empresa verificada. `document_ai_name_mismatch_action` decide qué ocurre si no coinciden. Es opcional: déjalo sin definir para omitir la comprobación de nombre en ese documento. |Empieza desde una [plantilla](#plantillas-iniciales) o créalo desde cero.**2. El usuario sube los documentos**El usuario sube un archivo por cada documento configurado (PDF o imagen). Cada subida se procesa de forma independiente; el paso se completa cuando se ha aportado cada documento obligatorio.**3. Extracción con IA**Didit renderiza cada documento y ejecuta un modelo de visión y lenguaje con un esquema construido a partir de tus definiciones de campos. Los valores extraídos se devuelven tipados (los números como números, las fechas como `YYYY-MM-DD`) y se guardan por documento. Se aplica análisis forense de PDF/EXIF para detectar manipulaciones.**4. Contraste y reglas**Los campos extraídos se pueden contrastar con otros pasos (por ejemplo, el nombre del titular del documento con el documento de identidad verificado, o cualquier campo con las respuestas de un cuestionario) y con tus **reglas básicas** y **reglas de estado personalizadas**. Los estados resultantes de cada documento se combinan en el estado de la función.## Plantillas inicialesAl añadir un nodo de Document AI puedes partir de una plantilla ya preparada que rellena el título, la descripción y los campos tipados. Después puedes personalizar lo que quieras.| Plantilla | Campos habituales |
| - | - |
| **Prueba de fondos** | Titular de la cuenta, saldo, divisa, fecha del extracto |
| **Prueba de ingresos (nómina)** | Empleador, nombre del empleado, salario bruto/neto, periodo de pago |
| **Origen del patrimonio** | Tipo de origen, importe, fecha, entidad |
| **Documento fiscal** | Nombre del contribuyente, año fiscal, ingresos declarados, identificación fiscal |## Contraste con otros pasosLos campos de Document AI se pueden referenciar como `document_ai.<field_key>` y se pueden comparar con campos de otros pasos completados mediante una regla de estado personalizada con `value_type: "field"`. Por ejemplo:- `document_ai.account_holder` **equals** `kyc.full_name`: el titular del documento coincide con la identidad verificada.
- `document_ai.balance` **greater\_than** `50000`: marca los saldos altos para revisión.Las reglas que coinciden se integran en la decisión con la precedencia de la plataforma **Declined > In Review > Approved**, así que una regla puede aumentar la gravedad pero nunca anular un estado más estricto derivado del riesgo. Consulta [Reglas y advertencias](https://docs.didit.me/core-technology/document-ai/warnings-document-ai.md).## Requisitos de los documentos| Requisito | Detalle |
| - | - |
| **Documentos por paso** | Hasta 3, cada uno configurado de forma independiente |
| **Formatos admitidos** | PDF, JPG, JPEG, PNG, TIFF, WebP |
| **Páginas** | Se admiten PDF de varias páginas |
| **Calidad** | Documento original o escaneo de alta calidad; sin edición ni manipulación digital |> [!NOTE]
>
> Document AI realiza lectura de texto no estructurado, lo que introduce unos segundos de latencia por documento. Los webhooks se disparan solo cuando se completa todo el paso del flujo de verificación: no sondees el endpoint de la decisión con una frecuencia mayor que cada 5 s durante este periodo.


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