from didit import Didit# Reads DIDIT_API_KEY.client = Didit()result = client.document_ai.analyze( document=open("document.pdf", "rb"), fields="[{\"key\": \"employer_name\", \"name\": \"Employer name\", \"instruction\": \"The employer or company issuing the payslip.\", \"type\": \"text\", \"required\": true, \"is_full_name\": false}, {\"key\": \"employee_name\", \"name\": \"Employee name\", \"instruction\": \"The full name of the employee as printed on the payslip.\", \"type\": \"text\", \"required\": true, \"is_full_name\": true}, {\"key\": \"net_pay\", \"name\": \"Net pay\", \"instruction\": \"The net amount paid to the employee for the period.\", \"type\": \"number\", \"required\": true, \"is_full_name\": false}, {\"key\": \"pay_date\", \"name\": \"Pay date\", \"instruction\": \"The payment date shown on the payslip.\", \"type\": \"date\", \"required\": false, \"is_full_name\": false}]",)print(result)
import Didit, { fileFromPath } from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.documentAi.analyze({
document: await fileFromPath("document.pdf"),
fields: "[{\"key\": \"employer_name\", \"name\": \"Employer name\", \"instruction\": \"The employer or company issuing the payslip.\", \"type\": \"text\", \"required\": true, \"is_full_name\": false}, {\"key\": \"employee_name\", \"name\": \"Employee name\", \"instruction\": \"The full name of the employee as printed on the payslip.\", \"type\": \"text\", \"required\": true, \"is_full_name\": true}, {\"key\": \"net_pay\", \"name\": \"Net pay\", \"instruction\": \"The net amount paid to the employee for the period.\", \"type\": \"number\", \"required\": true, \"is_full_name\": false}, {\"key\": \"pay_date\", \"name\": \"Pay date\", \"instruction\": \"The payment date shown on the payslip.\", \"type\": \"date\", \"required\": false, \"is_full_name\": false}]",
});
console.log(result);
ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.DocumentAi.Analyze(ctx, didit.DocumentAiAnalyzeParams{
Document: didit.FileFromPath("document.pdf"),
Fields: "[{\"key\": \"employer_name\", \"name\": \"Employer name\", \"instruction\": \"The employer or company issuing the payslip.\", \"type\": \"text\", \"required\": true, \"is_full_name\": false}, {\"key\": \"employee_name\", \"name\": \"Employee name\", \"instruction\": \"The full name of the employee as printed on the payslip.\", \"type\": \"text\", \"required\": true, \"is_full_name\": true}, {\"key\": \"net_pay\", \"name\": \"Net pay\", \"instruction\": \"The net amount paid to the employee for the period.\", \"type\": \"number\", \"required\": true, \"is_full_name\": false}, {\"key\": \"pay_date\", \"name\": \"Pay date\", \"instruction\": \"The payment date shown on the payslip.\", \"type\": \"date\", \"required\": false, \"is_full_name\": false}]",
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)
import java.nio.file.Path;
import me.didit.Didit;
import me.didit.types.DocumentAiAnalyzeParams;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.documentAi().analyze(DocumentAiAnalyzeParams.builder()
.document(Path.of("document.pdf"))
.fields("[{\"key\": \"employer_name\", \"name\": \"Employer name\", \"instruction\": \"The employer or company issuing the payslip.\", \"type\": \"text\", \"required\": true, \"is_full_name\": false}, {\"key\": \"employee_name\", \"name\": \"Employee name\", \"instruction\": \"The full name of the employee as printed on the payslip.\", \"type\": \"text\", \"required\": true, \"is_full_name\": true}, {\"key\": \"net_pay\", \"name\": \"Net pay\", \"instruction\": \"The net amount paid to the employee for the period.\", \"type\": \"number\", \"required\": true, \"is_full_name\": false}, {\"key\": \"pay_date\", \"name\": \"Pay date\", \"instruction\": \"The payment date shown on the payslip.\", \"type\": \"date\", \"required\": false, \"is_full_name\": false}]")
.build());
System.out.println(result);
<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
use Didit\File;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->documentAi->analyze([
'document' => File::fromPath('document.pdf'),
'fields' => '[{"key": "employer_name", "name": "Employer name", "instruction": "The employer or company issuing the payslip.", "type": "text", "required": true, "is_full_name": false}, {"key": "employee_name", "name": "Employee name", "instruction": "The full name of the employee as printed on the payslip.", "type": "text", "required": true, "is_full_name": true}, {"key": "net_pay", "name": "Net pay", "instruction": "The net amount paid to the employee for the period.", "type": "number", "required": true, "is_full_name": false}, {"key": "pay_date", "name": "Pay date", "instruction": "The payment date shown on the payslip.", "type": "date", "required": false, "is_full_name": false}]',
]);
print_r($result->toArray());
require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.document_ai.analyze(
document: Pathname("document.pdf"),
fields: "[{\"key\": \"employer_name\", \"name\": \"Employer name\", \"instruction\": \"The employer or company issuing the payslip.\", \"type\": \"text\", \"required\": true, \"is_full_name\": false}, {\"key\": \"employee_name\", \"name\": \"Employee name\", \"instruction\": \"The full name of the employee as printed on the payslip.\", \"type\": \"text\", \"required\": true, \"is_full_name\": true}, {\"key\": \"net_pay\", \"name\": \"Net pay\", \"instruction\": \"The net amount paid to the employee for the period.\", \"type\": \"number\", \"required\": true, \"is_full_name\": false}, {\"key\": \"pay_date\", \"name\": \"Pay date\", \"instruction\": \"The payment date shown on the payslip.\", \"type\": \"date\", \"required\": false, \"is_full_name\": false}]"
)
puts result.to_h
using System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.DocumentAi.AnalyzeAsync(new DocumentAiAnalyzeParams
{
Document = FileUpload.FromPath("document.pdf"),
Fields = "[{\"key\": \"employer_name\", \"name\": \"Employer name\", \"instruction\": \"The employer or company issuing the payslip.\", \"type\": \"text\", \"required\": true, \"is_full_name\": false}, {\"key\": \"employee_name\", \"name\": \"Employee name\", \"instruction\": \"The full name of the employee as printed on the payslip.\", \"type\": \"text\", \"required\": true, \"is_full_name\": true}, {\"key\": \"net_pay\", \"name\": \"Net pay\", \"instruction\": \"The net amount paid to the employee for the period.\", \"type\": \"number\", \"required\": true, \"is_full_name\": false}, {\"key\": \"pay_date\", \"name\": \"Pay date\", \"instruction\": \"The payment date shown on the payslip.\", \"type\": \"date\", \"required\": false, \"is_full_name\": false}]",
});
Console.WriteLine(JsonSerializer.Serialize(result));
curl --request POST \
--url https://verification.didit.me/v3/document-ai/ \
--header 'Content-Type: multipart/form-data' \
--header 'x-api-key: <api-key>' \
--form document=@example-file \
--form 'fields=[{"key": "employer_name", "name": "Employer name", "instruction": "The employer or company issuing the payslip.", "type": "text", "required": true, "is_full_name": false}, {"key": "employee_name", "name": "Employee name", "instruction": "The full name of the employee as printed on the payslip.", "type": "text", "required": true, "is_full_name": true}, {"key": "net_pay", "name": "Net pay", "instruction": "The net amount paid to the employee for the period.", "type": "number", "required": true, "is_full_name": false}, {"key": "pay_date", "name": "Pay date", "instruction": "The payment date shown on the payslip.", "type": "date", "required": false, "is_full_name": false}]' \
--form expected_first_name=Sophia \
--form expected_last_name=Martinez \
--form 'expected_company_name=<string>' \
--form 'expected_company_country=<string>' \
--form document_ai_name_match_score_threshold=80 \
--form document_ai_unreadable_document_action=REVIEW \
--form document_ai_missing_required_fields_action=REVIEW \
--form document_ai_document_tampering_action=DECLINE \
--form document_ai_name_mismatch_action=NO_ACTION \
--form document_ai_unsupported_file_action=REVIEW \
--form save_api_request=true \
--form vendor_data=user-123 \
--form 'metadata={
"flow": "onboarding"
}'
{ "request_id": "9d6a3b1e-2f0c-4a8e-9b7d-1c2e3f4a5b6c", "document_ai": { "status": "Approved", "extracted_data": { "employer_name": "Acme Payments Ltd", "employee_name": "Sophia Martinez", "net_pay": 3120.5, "pay_date": "2026-07-31" }, "detected_codes": [ { "type": "CODE_128", "page_number": 1, "position": [ [ 96, 456 ], [ 96, 616 ], [ 1012, 611 ], [ 1015, 456 ] ], "x": 96, "y": 456, "width": 919, "height": 160, "page_width": 1200, "page_height": 1700, "raw_payload": "SU5WLTIwMjYtMDA0Mg==", "parsed_payload": "INV-2026-0042" } ], "fields": [ { "key": "employer_name", "name": "Employer name", "instruction": "The employer or company issuing the payslip.", "type": "text", "required": true, "is_full_name": false }, { "key": "employee_name", "name": "Employee name", "instruction": "The full name of the employee as printed on the payslip.", "type": "text", "required": true, "is_full_name": true }, { "key": "net_pay", "name": "Net pay", "instruction": "The net amount paid to the employee for the period.", "type": "number", "required": true, "is_full_name": false }, { "key": "pay_date", "name": "Pay date", "instruction": "The payment date shown on the payslip.", "type": "date", "required": false, "is_full_name": false } ], "name_match_score": 100, "name_on_document": "Sophia Martinez", "warnings": [] }, "vendor_data": "user-123", "metadata": { "flow": "onboarding" }, "created_at": "2026-08-19T16:40:12.318Z"}
Document AI
API de Document AI: extracción personalizada de datos
POST /v3/document-ai/ de Didit extrae campos que definas de PDF o imágenes, con cotejo de nombres y detección de manipulación. $0.20 por documento.
POST
/
v3
/
document-ai
/
Python
from didit import Didit# Reads DIDIT_API_KEY.client = Didit()result = client.document_ai.analyze( document=open("document.pdf", "rb"), fields="[{\"key\": \"employer_name\", \"name\": \"Employer name\", \"instruction\": \"The employer or company issuing the payslip.\", \"type\": \"text\", \"required\": true, \"is_full_name\": false}, {\"key\": \"employee_name\", \"name\": \"Employee name\", \"instruction\": \"The full name of the employee as printed on the payslip.\", \"type\": \"text\", \"required\": true, \"is_full_name\": true}, {\"key\": \"net_pay\", \"name\": \"Net pay\", \"instruction\": \"The net amount paid to the employee for the period.\", \"type\": \"number\", \"required\": true, \"is_full_name\": false}, {\"key\": \"pay_date\", \"name\": \"Pay date\", \"instruction\": \"The payment date shown on the payslip.\", \"type\": \"date\", \"required\": false, \"is_full_name\": false}]",)print(result)
import Didit, { fileFromPath } from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.documentAi.analyze({
document: await fileFromPath("document.pdf"),
fields: "[{\"key\": \"employer_name\", \"name\": \"Employer name\", \"instruction\": \"The employer or company issuing the payslip.\", \"type\": \"text\", \"required\": true, \"is_full_name\": false}, {\"key\": \"employee_name\", \"name\": \"Employee name\", \"instruction\": \"The full name of the employee as printed on the payslip.\", \"type\": \"text\", \"required\": true, \"is_full_name\": true}, {\"key\": \"net_pay\", \"name\": \"Net pay\", \"instruction\": \"The net amount paid to the employee for the period.\", \"type\": \"number\", \"required\": true, \"is_full_name\": false}, {\"key\": \"pay_date\", \"name\": \"Pay date\", \"instruction\": \"The payment date shown on the payslip.\", \"type\": \"date\", \"required\": false, \"is_full_name\": false}]",
});
console.log(result);
ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.DocumentAi.Analyze(ctx, didit.DocumentAiAnalyzeParams{
Document: didit.FileFromPath("document.pdf"),
Fields: "[{\"key\": \"employer_name\", \"name\": \"Employer name\", \"instruction\": \"The employer or company issuing the payslip.\", \"type\": \"text\", \"required\": true, \"is_full_name\": false}, {\"key\": \"employee_name\", \"name\": \"Employee name\", \"instruction\": \"The full name of the employee as printed on the payslip.\", \"type\": \"text\", \"required\": true, \"is_full_name\": true}, {\"key\": \"net_pay\", \"name\": \"Net pay\", \"instruction\": \"The net amount paid to the employee for the period.\", \"type\": \"number\", \"required\": true, \"is_full_name\": false}, {\"key\": \"pay_date\", \"name\": \"Pay date\", \"instruction\": \"The payment date shown on the payslip.\", \"type\": \"date\", \"required\": false, \"is_full_name\": false}]",
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)
import java.nio.file.Path;
import me.didit.Didit;
import me.didit.types.DocumentAiAnalyzeParams;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.documentAi().analyze(DocumentAiAnalyzeParams.builder()
.document(Path.of("document.pdf"))
.fields("[{\"key\": \"employer_name\", \"name\": \"Employer name\", \"instruction\": \"The employer or company issuing the payslip.\", \"type\": \"text\", \"required\": true, \"is_full_name\": false}, {\"key\": \"employee_name\", \"name\": \"Employee name\", \"instruction\": \"The full name of the employee as printed on the payslip.\", \"type\": \"text\", \"required\": true, \"is_full_name\": true}, {\"key\": \"net_pay\", \"name\": \"Net pay\", \"instruction\": \"The net amount paid to the employee for the period.\", \"type\": \"number\", \"required\": true, \"is_full_name\": false}, {\"key\": \"pay_date\", \"name\": \"Pay date\", \"instruction\": \"The payment date shown on the payslip.\", \"type\": \"date\", \"required\": false, \"is_full_name\": false}]")
.build());
System.out.println(result);
<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
use Didit\File;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->documentAi->analyze([
'document' => File::fromPath('document.pdf'),
'fields' => '[{"key": "employer_name", "name": "Employer name", "instruction": "The employer or company issuing the payslip.", "type": "text", "required": true, "is_full_name": false}, {"key": "employee_name", "name": "Employee name", "instruction": "The full name of the employee as printed on the payslip.", "type": "text", "required": true, "is_full_name": true}, {"key": "net_pay", "name": "Net pay", "instruction": "The net amount paid to the employee for the period.", "type": "number", "required": true, "is_full_name": false}, {"key": "pay_date", "name": "Pay date", "instruction": "The payment date shown on the payslip.", "type": "date", "required": false, "is_full_name": false}]',
]);
print_r($result->toArray());
require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.document_ai.analyze(
document: Pathname("document.pdf"),
fields: "[{\"key\": \"employer_name\", \"name\": \"Employer name\", \"instruction\": \"The employer or company issuing the payslip.\", \"type\": \"text\", \"required\": true, \"is_full_name\": false}, {\"key\": \"employee_name\", \"name\": \"Employee name\", \"instruction\": \"The full name of the employee as printed on the payslip.\", \"type\": \"text\", \"required\": true, \"is_full_name\": true}, {\"key\": \"net_pay\", \"name\": \"Net pay\", \"instruction\": \"The net amount paid to the employee for the period.\", \"type\": \"number\", \"required\": true, \"is_full_name\": false}, {\"key\": \"pay_date\", \"name\": \"Pay date\", \"instruction\": \"The payment date shown on the payslip.\", \"type\": \"date\", \"required\": false, \"is_full_name\": false}]"
)
puts result.to_h
using System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.DocumentAi.AnalyzeAsync(new DocumentAiAnalyzeParams
{
Document = FileUpload.FromPath("document.pdf"),
Fields = "[{\"key\": \"employer_name\", \"name\": \"Employer name\", \"instruction\": \"The employer or company issuing the payslip.\", \"type\": \"text\", \"required\": true, \"is_full_name\": false}, {\"key\": \"employee_name\", \"name\": \"Employee name\", \"instruction\": \"The full name of the employee as printed on the payslip.\", \"type\": \"text\", \"required\": true, \"is_full_name\": true}, {\"key\": \"net_pay\", \"name\": \"Net pay\", \"instruction\": \"The net amount paid to the employee for the period.\", \"type\": \"number\", \"required\": true, \"is_full_name\": false}, {\"key\": \"pay_date\", \"name\": \"Pay date\", \"instruction\": \"The payment date shown on the payslip.\", \"type\": \"date\", \"required\": false, \"is_full_name\": false}]",
});
Console.WriteLine(JsonSerializer.Serialize(result));
curl --request POST \
--url https://verification.didit.me/v3/document-ai/ \
--header 'Content-Type: multipart/form-data' \
--header 'x-api-key: <api-key>' \
--form document=@example-file \
--form 'fields=[{"key": "employer_name", "name": "Employer name", "instruction": "The employer or company issuing the payslip.", "type": "text", "required": true, "is_full_name": false}, {"key": "employee_name", "name": "Employee name", "instruction": "The full name of the employee as printed on the payslip.", "type": "text", "required": true, "is_full_name": true}, {"key": "net_pay", "name": "Net pay", "instruction": "The net amount paid to the employee for the period.", "type": "number", "required": true, "is_full_name": false}, {"key": "pay_date", "name": "Pay date", "instruction": "The payment date shown on the payslip.", "type": "date", "required": false, "is_full_name": false}]' \
--form expected_first_name=Sophia \
--form expected_last_name=Martinez \
--form 'expected_company_name=<string>' \
--form 'expected_company_country=<string>' \
--form document_ai_name_match_score_threshold=80 \
--form document_ai_unreadable_document_action=REVIEW \
--form document_ai_missing_required_fields_action=REVIEW \
--form document_ai_document_tampering_action=DECLINE \
--form document_ai_name_mismatch_action=NO_ACTION \
--form document_ai_unsupported_file_action=REVIEW \
--form save_api_request=true \
--form vendor_data=user-123 \
--form 'metadata={
"flow": "onboarding"
}'
{ "request_id": "9d6a3b1e-2f0c-4a8e-9b7d-1c2e3f4a5b6c", "document_ai": { "status": "Approved", "extracted_data": { "employer_name": "Acme Payments Ltd", "employee_name": "Sophia Martinez", "net_pay": 3120.5, "pay_date": "2026-07-31" }, "detected_codes": [ { "type": "CODE_128", "page_number": 1, "position": [ [ 96, 456 ], [ 96, 616 ], [ 1012, 611 ], [ 1015, 456 ] ], "x": 96, "y": 456, "width": 919, "height": 160, "page_width": 1200, "page_height": 1700, "raw_payload": "SU5WLTIwMjYtMDA0Mg==", "parsed_payload": "INV-2026-0042" } ], "fields": [ { "key": "employer_name", "name": "Employer name", "instruction": "The employer or company issuing the payslip.", "type": "text", "required": true, "is_full_name": false }, { "key": "employee_name", "name": "Employee name", "instruction": "The full name of the employee as printed on the payslip.", "type": "text", "required": true, "is_full_name": true }, { "key": "net_pay", "name": "Net pay", "instruction": "The net amount paid to the employee for the period.", "type": "number", "required": true, "is_full_name": false }, { "key": "pay_date", "name": "Pay date", "instruction": "The payment date shown on the payslip.", "type": "date", "required": false, "is_full_name": false } ], "name_match_score": 100, "name_on_document": "Sophia Martinez", "warnings": [] }, "vendor_data": "user-123", "metadata": { "flow": "onboarding" }, "created_at": "2026-08-19T16:40:12.318Z"}
Envía un documento y la lista de campos que quieres leer de él. Didit ejecuta su modelo de extracción predeterminado sobre el archivo, devuelve cada campo con su tipo (text, number o date como YYYY-MM-DD), detecta y decodifica los códigos QR y de barras compatibles, comprueba si el archivo ha sido manipulado y, de forma opcional, compara el nombre que figura en el documento con la persona o empresa que esperas. Úsalo para pruebas de fondos, nóminas, extractos bancarios, documentos fiscales, facturas o cualquier documento que no se ajuste a una plantilla fija.Esta es la versión servidor a servidor del paso alojado de Document AI. La solicitud es multipart/form-data: el archivo va en document y las definiciones de campos van en fields como una única cadena con un array codificado en JSON.
fields es un array JSON de 1 a 30 elementos, enviado como una sola cadena. Cada elemento tiene una key (letras minúsculas, dígitos y guiones bajos, única dentro de la solicitud), un name legible para las personas, una instruction que indica al modelo qué buscar, un type (text, number o date) y dos indicadores: required y is_full_name.
[ { "key": "account_holder", "name": "Account holder", "instruction": "Full name of the person or company the account belongs to", "type": "text", "required": true, "is_full_name": true }, { "key": "balance", "name": "Closing balance", "instruction": "Closing balance shown on the statement, as a number without the currency symbol", "type": "number", "required": true }, { "key": "currency", "name": "Currency", "instruction": "Three-letter currency code of the balance", "type": "text" }, { "key": "statement_date", "name": "Statement date", "instruction": "Date the statement was issued", "type": "date", "required": true }]
En una solicitud multipart, el array completo es un único valor del formulario:
curl -X POST https://verification.didit.me/v3/document-ai/ \ -H "x-api-key: $DIDIT_API_KEY" \ -F "document=@./bank-statement.pdf" \ -F 'fields=[{"key":"account_holder","name":"Account holder","instruction":"Full name of the account holder","type":"text","required":true,"is_full_name":true},{"key":"balance","name":"Closing balance","instruction":"Closing balance as a number","type":"number","required":true}]' \ -F "expected_first_name=Jane" \ -F "expected_last_name=Doe"
La respuesta devuelve los fields normalizados y extracted_data indexado por tus valores de key, con null para todo lo que el modelo no haya podido encontrar. name, instruction y type son opcionales en cada elemento (type es text de forma predeterminada); key es obligatorio. Si envías fields como claves de formulario con corchetes (fields[0][key]=...) o en cualquier formato que no sea un array JSON, se devuelve 400 antes de ejecutar ninguna extracción, por lo que no se factura nada.
Toda respuesta exitosa incluye document_ai.detected_codes. Cada elemento contiene:
Campo
Descripción
type
Simbología detectada, como QR_CODE, CODE_128, EAN_13, DATA_MATRIX o PDF_417
page_number
Número de página, empezando en 1
position
Polígono detectado en píxeles de la página renderizada, o null cuando no hay una ubicación fiable
x, y, width, height
Rectángulo delimitador en píxeles de la página renderizada, o null cuando no hay una ubicación fiable
page_width, page_height
Dimensiones de la página renderizada utilizadas por las coordenadas
parsed_payload
Cadena decodificada o valor estructurado, o null cuando solo se puede ubicar el código
raw_payload
Payload sin procesar del decodificador como cadena base64 cuando está disponible; en caso contrario, una cadena vacía
El array abarca todas las páginas procesadas de un PDF y está vacío cuando no se encuentra ningún código admitido. Didit nunca adivina un payload: los códigos QR dañados pueden devolverse con su ubicación y parsed_payload: null, y los fallos en la detección de códigos no hacen fallar la solicitud de Document AI.
Marca como máximo un campo con is_full_name: true y envía el nombre de la persona o empresa a la que esperas que pertenezca el documento:
Si verificas
Envía
El nombre se compara con
Una persona
expected_first_name + expected_last_name
el nombre completo de la persona
Una empresa
expected_company_name (+ expected_company_country opcional, un código ISO de 2 letras)
el nombre de la empresa
Envía un grupo o el otro, no ambos. Cuando se extrae un nombre y hay un nombre esperado, la respuesta incluye name_match_score (de 0 a 100) y name_on_document. Una puntuación inferior a document_ai_name_match_score_threshold (80 de forma predeterminada) genera la advertencia DOCUMENT_AI_NAME_MISMATCH y aplica document_ai_name_mismatch_action. Si ningún campo está marcado con is_full_name, Didit recurre al primer campo de texto cuya clave parezca un nombre (name, holder, full_name, account_holder); marca el campo de forma explícita cuando quieras controlar qué valor se compara. Cuando no se encuentra ningún nombre en el documento, o no se envía ningún nombre esperado, la comprobación del nombre se omite y name_match_score es null.
Cada riesgo de la siguiente tabla corresponde a un parámetro de acción que puedes definir en cada solicitud: DECLINE, REVIEW o NO_ACTION. La acción más estricta que se active determina document_ai.status (Declined > In Review > Approved), y cada riesgo activado aparece en document_ai.warnings. Los valores predeterminados coinciden con los del paso del flujo alojado; consulta Reglas y advertencias de Document AI para saber cómo se detecta cada riesgo.
Archivos aceptados: PDF (se admiten varias páginas), JPG, JPEG, PNG, TIFF, WebP o un ZIP que contenga el documento, de hasta 30 MB. Los PDF cifrados devuelven 400; sube un PDF descifrado o una foto en su lugar.
save_api_request (true de forma predeterminada): la solicitud, los campos extraídos y los códigos detectados aparecen en la Business Console, en Manual Checks, donde tu equipo puede revisarlos. Establécelo en false para no guardarlos.
vendor_data y metadata se devuelven sin cambios en la respuesta para que puedas vincular el resultado con tus propios registros.
Precio: $0.20 por documento, que se factura cuando el documento se procesa y se devuelve un estado. Se aplica el descuento de tu plan. Consulta Precios.
¿Necesitas que el usuario suba el documento por sí mismo, que se recopilen hasta 3 documentos en un mismo flujo, que se traduzca automáticamente la pantalla de carga o que se crucen los campos extraídos con los datos del documento de identidad o del cuestionario? Usa en su lugar el paso del flujo de Document AI alojado.
La clave de API de tu aplicación, que encontrarás en Developers -> API keys en la Business Console. La clave principal tiene acceso completo. Una clave con nombre puede tener un alcance limitado: ninguno, lectura o escritura por recurso, limitada a algunos flujos o a sesiones aprobadas, a una lista de direcciones IP y a una fecha de caducidad. 401 significa que la clave es incorrecta, se revocó o expiró; 403 significa que no se envió ninguna clave, que la clave no tiene acceso a este recurso o acción, o que la solicitud provino de una dirección fuera de su lista de IP; 404 en una ruta de sesión significa que la sesión está fuera de los flujos o estados de la clave. Una clave sin acceso a contenido multimedia recibe las URL de imágenes, videos y PDF como null, y una clave sin permiso de escritura en sesiones recibe los enlaces y tokens de sesión como null. Consulta https://docs.didit.me/console/api-keys.
El documento que se va a leer. Extensiones permitidas: tiff, jpg, jpeg, png, pdf, webp, zip. Tamaño máximo de carga: 30 MB (los archivos más grandes se rechazan con 400). Se admiten PDF de varias páginas (con una latencia mayor); los PDF cifrados se rechazan con 400. Las imágenes se comprimen automáticamente antes del procesamiento.
Una cadena con un array codificado en JSON con 1–30 definiciones de campos (máximo 16 KB). Cada elemento: key (obligatorio, ^[a-z0-9_]{1,64}$, único: la clave que se devuelve en extracted_data), name (≤100 caracteres, se muestra en los mensajes), instruction (≤500 caracteres, lo que el modelo debe leer), type (text por defecto | number | date), required (booleano, por defecto false), is_full_name (booleano, por defecto false, como máximo uno por solicitud). Los arrays de formulario con corchetes, el JSON no válido, las claves duplicadas o más de un is_full_name devuelven 400 antes de cualquier procesamiento o facturación.
Ejemplo:
"[{\"key\": \"employer_name\", \"name\": \"Employer name\", \"instruction\": \"The employer or company issuing the payslip.\", \"type\": \"text\", \"required\": true, \"is_full_name\": false}, {\"key\": \"employee_name\", \"name\": \"Employee name\", \"instruction\": \"The full name of the employee as printed on the payslip.\", \"type\": \"text\", \"required\": true, \"is_full_name\": true}, {\"key\": \"net_pay\", \"name\": \"Net pay\", \"instruction\": \"The net amount paid to the employee for the period.\", \"type\": \"number\", \"required\": true, \"is_full_name\": false}, {\"key\": \"pay_date\", \"name\": \"Pay date\", \"instruction\": \"The payment date shown on the payslip.\", \"type\": \"date\", \"required\": false, \"is_full_name\": false}]"
Nombre que se verifica contra el campo de nombre del documento (coincidencia aproximada, con soporte de transliteración). Úsalo junto con expected_last_name; no se puede combinar con expected_company_name.
Nombre de la empresa que se comparará con el campo de nombre del documento (para documentos de empresa). No se puede combinar con expected_first_name / expected_last_name (no tiene valor de ejemplo a propósito: el ejemplo de solicitud generado usa los campos de persona; sustitúyelos por este al verificar un documento de empresa).
Código de país ISO 3166-1 alfa-2 opcional (dos letras ASCII, p. ej., FR) que ajusta la normalización del nombre de la empresa para expected_company_name. Solo se usa con expected_company_name.
name_match_score mínimo (0–100) para considerar que el nombre coincide. Una puntuación inferior añade DOCUMENT_AI_NAME_MISMATCH, que se rige por document_ai_name_mismatch_action.
Qué hacer cuando el análisis forense de PDF/EXIF sospecha una manipulación: modificación posterior a la firma digital, editor de PDF conocido, manipulación con texto superpuesto, reexportación sospechosa o anomalías en la imagen (DOCUMENT_AI_SUSPECTED_MANIPULATION).
Cuando es true (valor predeterminado), guarda la llamada como una sesión de tipo API: visible en la Business Console, recuperable mediante GET /v3/session/{sessionId}/decision/ con el request_id devuelto, y con el documento subido, los valores extraídos, las definiciones de campos y la instantánea de la coincidencia de nombre almacenados. Cuando es false, no se almacena nada y request_id es un UUID temporal que solo sirve para correlacionar la respuesta; la llamada se factura igualmente.
Cadena opaca opcional (tu ID de usuario interno, correo electrónico, UUID…) que se guarda en la sesión persistida y se devuelve en la respuesta. Úsala para relacionar las llamadas a la API con tus propios registros y para filtrar sesiones más adelante.
Objeto JSON opcional que se almacena con la sesión (cuando save_api_request=true) y se devuelve en la respuesta. En solicitudes multipart, envíalo como un campo de cadena codificado en JSON (p. ej., metadata={"flow":"onboarding"}): se convierte en un objeto.
Ejemplo:
{ "flow": "onboarding" }
Respuesta
Documento procesado. document_ai.status es Approved, Declined o In Review; cada problema detectado se detalla en document_ai.warnings. Un documento con problemas también devuelve 200: revisa el cuerpo, no solo el código HTTP. Cuando save_api_request=true, request_id es el ID de la sesión guardada.
ID de la sesión guardada cuando save_api_request=true (se puede usar con GET /v3/session/{sessionId}/decision/); en caso contrario, un UUID de correlación temporal.
Fecha y hora en que se procesó la solicitud (UTC, ISO 8601).
Última modificación el 1 de noviembre de 2026
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Didit Docs","description":"The best way to integrate identity and fraud checks into your app. One API, four product lines (KYC · KYB · Transaction Monitoring · Wallet Screening), 220+ countries, 14,000+ documents, sub-2s inference, $10 free credit/month.","colors":{"primary":"#2567FF","light":"#90B1FF","dark":"#1B4FE0"},"logo":{"light":"https://mintcdn.com/didit-0f962782/dCzNNoYCusBNdK3I/logo/didit.svg?fit=max\u0026auto=format\u0026n=dCzNNoYCusBNdK3I\u0026q=85\u0026s=9f162fb8295fa1fd9300a24b293ce0b7","dark":"https://mintcdn.com/didit-0f962782/TefoKXCbZA_GIK5a/logo/didit-logo-wordmark-white.svg?fit=max\u0026auto=format\u0026n=TefoKXCbZA_GIK5a\u0026q=85\u0026s=c8c541689c814ca6a2c873cf6185a3a7","href":"https://docs.didit.me"},"favicon":"https://mintcdn.com/didit-0f962782/t6r0B-WdGMU5mSS-/favicon.ico?fit=max\u0026auto=format\u0026n=t6r0B-WdGMU5mSS-\u0026q=85\u0026s=b291917b960ebe959ae3b1aa233eafa8","api":{"examples":{"prefill":true},"mdx":{"auth":{"method":"key","name":"x-api-key"},"server":"https://verification.didit.me"}},"background":{"color":{"light":"#FFFFFF","dark":"#1A1A1A"}},"navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"Support"},{"icon":"signal","href":"https://status.didit.me","label":"Status"}],"primary":{"type":"button","label":"Sign in","href":"https://business.didit.me"}},"footer":{"socials":{"x":"https://x.com/didit","github":"https://github.com/didit-protocol","linkedin":"https://linkedin.com/company/91001155","website":"https://didit.me"}},"search":{"prompt":"Search Didit docs..."},"seo":{"metatags":{"twitter:site":"@didit","theme-color":"#2567FF","apple-mobile-web-app-title":"Didit Docs"},"organization":{"id":"https://didit.me/#organization","name":"Didit","legalName":"Didit Protocol","url":"https://didit.me","logo":"https://didit.me/logos/primary-horizontal-light.png","sameAs":["https://www.linkedin.com/company/91001155","https://www.youtube.com/@getdidit","https://github.com/didit-protocol","https://x.com/didit"]},"indexing":"navigable"},"fonts":{"heading":{"family":"Inter","weight":500},"body":{"family":"Inter","weight":400}},"errors":{"404":{"redirect":false,"title":"Page not found","description":"This page moved or never existed. [Back to docs](/)"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"thumbnails":{"appearance":"light","background":"https://mintcdn.com/didit-0f962782/Xkecx-xLq1K2abHK/images/og-thumbnail-backplate.png?fit=max\u0026auto=format\u0026n=Xkecx-xLq1K2abHK\u0026q=85\u0026s=c699fa252554b2ac8d4c631e209a1473","fonts":{"family":"Inter"}},"metadata":{"timestamp":true},"styling":{"latex":true},"navigation":{"languages":[{"language":"en","href":""},{"language":"es","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"Soporte"},{"icon":"signal","href":"https://status.didit.me","label":"Estado"}],"primary":{"type":"button","label":"Iniciar sesión","href":"https://business.didit.me"}},"href":"es"},{"language":"pt-BR","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"Suporte"},{"icon":"signal","href":"https://status.didit.me","label":"Status"}],"primary":{"type":"button","label":"Entrar","href":"https://business.didit.me"}},"href":"pt-br"},{"language":"ja","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"サポート"},{"icon":"signal","href":"https://status.didit.me","label":"ステータス"}],"primary":{"type":"button","label":"サインイン","href":"https://business.didit.me"}},"href":"ja"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"didit-0f962782","hasAudioNarration":false,"actualSubdomain":"didit-0f962782","customDomains":["docs.didit.me"],"gitSource":{"type":"github","owner":"didit-protocol","repo":"mintlify-docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae6fa1c62ef36be88636f75","collectionId":"50020d30-4212-40ce-b44f-967797e5972b","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae6fa1c62ef36be88636f75"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae71ae0a0d878501ab6c761","clientVersion":"0.0.4044","searchFilterCounts":[{"language":"es","tag":"Referencia de la API","count":432},{"language":"ja","tag":"APIリファレンス","count":432},{"language":"pt-BR","tag":"Referência da API","count":432},{"language":"en","tag":"API Reference","count":424},{"language":"en","tag":"Database Validation","count":129},{"language":"es","tag":"Validación de base de datos","count":129},{"language":"ja","tag":"データベース検証","count":129},{"language":"pt-BR","tag":"Validação de banco de dados","count":129},{"language":"es","tag":"Primeros pasos","count":93},{"language":"ja","tag":"はじめに","count":93},{"language":"pt-BR","tag":"Primeiros passos","count":93},{"language":"en","tag":"Get Started","count":87},{"language":"en","tag":"User Verification","count":74},{"language":"es","tag":"Verificación de usuarios","count":74},{"language":"ja","tag":"ユーザー認証","count":74},{"language":"pt-BR","tag":"Verificação de usuários","count":74},{"language":"en","tag":"Integrate / SDKs","count":62},{"language":"es","tag":"Integración / SDKs","count":62},{"language":"ja","tag":"連携 / SDK","count":62},{"language":"pt-BR","tag":"Integração / SDKs","count":62},{"language":"en","tag":"Travel Rule","count":55},{"language":"es","tag":"Travel Rule","count":55},{"language":"ja","tag":"トラベルルール","count":55},{"language":"pt-BR","tag":"Travel Rule","count":55},{"language":"en","tag":"Verification","count":48},{"language":"es","tag":"Verificación","count":48},{"language":"ja","tag":"検証","count":48},{"language":"pt-BR","tag":"Verificação","count":48},{"language":"en","tag":"Authentication","count":37},{"language":"es","tag":"Autenticación","count":37},{"language":"ja","tag":"認証","count":37},{"language":"pt-BR","tag":"Autenticação","count":37},{"language":"en","tag":"Digital ID wallets","count":35},{"language":"en","tag":"User and Business Verifications","count":35},{"language":"es","tag":"Wallets de identidad digital","count":35},{"language":"es","tag":"Verificaciones de usuarios y empresas","count":35},{"language":"ja","tag":"デジタルIDウォレット","count":35},{"language":"ja","tag":"ユーザーと企業の認証","count":35},{"language":"pt-BR","tag":"Carteiras de identidade digital","count":35},{"language":"pt-BR","tag":"Verificações de usuários e empresas","count":35}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","href":"/_mintlify/custom/didit-0f962782/e74dc7c3efa9e767/style.css"}],"page":{"pagePath":"es/standalone-apis/document-ai","slug":"/es/standalone-apis/document-ai","pageMetadata":{"title":"API de Document AI: extracción personalizada de datos","sidebarTitle":"API de Document AI","description":"POST /v3/document-ai/ de Didit extrae campos que definas de PDF o imágenes, con cotejo de nombres y detección de manipulación. $0.20 por documento.","keywords":["API de Document AI","API de extracción de datos de documentos","API de OCR de documentos personalizada","API de prueba de fondos","API de extracción de nóminas","OCR de extractos bancarios","extracción de documentos KYC","detección de manipulación de documentos","API de Didit"],"openapi":"es/openapi-25.json POST /v3/document-ai/","href":"/es/standalone-apis/document-ai"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"POST /v3/document-ai/ de Didit extrae campos que definas de PDF o imágenes, con cotejo de nombres y detección de manipulación. $0.20 por documento.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Note,Table}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Envía un documento y la lista de campos que quieres leer de él. Didit ejecuta su modelo de extracción predeterminado sobre el archivo, devuelve cada campo con su tipo (`,_jsx(_components.code,{children:`text`}),`, `,_jsx(_components.code,{children:`number`}),` o `,_jsx(_components.code,{children:`date`}),` como `,_jsx(_components.code,{children:`YYYY-MM-DD`}),`), detecta y decodifica los códigos QR y de barras compatibles, comprueba si el archivo ha sido manipulado y, de forma opcional, compara el nombre que figura en el documento con la persona o empresa que esperas. Úsalo para pruebas de fondos, nóminas, extractos bancarios, documentos fiscales, facturas o cualquier documento que no se ajuste a una plantilla fija.`]}),`\n`,_jsxs(_components.p,{children:[`Esta es la versión servidor a servidor del paso alojado de `,_jsx(_components.a,{href:`/es/core-technology/document-ai/overview`,children:`Document AI`}),`. La solicitud es `,_jsx(_components.code,{children:`multipart/form-data`}),`: el archivo va en `,_jsx(_components.code,{children:`document`}),` y las definiciones de campos van en `,_jsx(_components.code,{children:`fields`}),` como una única cadena con un array codificado en JSON.`]}),`\n`,_jsx(Heading,{level:`2`,id:`define-los-campos-que-se-van-a-extraer`,children:`Define los campos que se van a extraer`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`fields`}),` es un array JSON de 1 a 30 elementos, enviado como una sola cadena. Cada elemento tiene una `,_jsx(_components.code,{children:`key`}),` (letras minúsculas, dígitos y guiones bajos, única dentro de la solicitud), un `,_jsx(_components.code,{children:`name`}),` legible para las personas, una `,_jsx(_components.code,{children:`instruction`}),` que indica al modelo qué buscar, un `,_jsx(_components.code,{children:`type`}),` (`,_jsx(_components.code,{children:`text`}),`, `,_jsx(_components.code,{children:`number`}),` o `,_jsx(_components.code,{children:`date`}),`) y dos indicadores: `,_jsx(_components.code,{children:`required`}),` y `,_jsx(_components.code,{children:`is_full_name`}),`.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`30`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`30`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"key\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"account_holder\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Account holder\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"instruction\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Full name of the person or company the account belongs to\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"text\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"required\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"is_full_name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"key\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"balance\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Closing balance\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"instruction\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Closing balance shown on the statement, as a number without the currency symbol\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"number\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"required\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"key\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"currency\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Currency\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"instruction\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Three-letter currency code of the balance\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"text\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"key\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"statement_date\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Statement date\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"instruction\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Date the statement was issued\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"date\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"required\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]`})}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`En una solicitud multipart, el array completo es un único valor del formulario:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`6`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`6`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -X`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` POST`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://verification.didit.me/v3/document-ai/`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"x-api-key: `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$DIDIT_API_KEY`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -F`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"document=@./bank-statement.pdf\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -F`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'fields=[{\"key\":\"account_holder\",\"name\":\"Account holder\",\"instruction\":\"Full name of the account holder\",\"type\":\"text\",\"required\":true,\"is_full_name\":true},{\"key\":\"balance\",\"name\":\"Closing balance\",\"instruction\":\"Closing balance as a number\",\"type\":\"number\",\"required\":true}]'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -F`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"expected_first_name=Jane\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -F`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"expected_last_name=Doe\"`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`La respuesta devuelve los `,_jsx(_components.code,{children:`fields`}),` normalizados y `,_jsx(_components.code,{children:`extracted_data`}),` indexado por tus valores de `,_jsx(_components.code,{children:`key`}),`, con `,_jsx(_components.code,{children:`null`}),` para todo lo que el modelo no haya podido encontrar. `,_jsx(_components.code,{children:`name`}),`, `,_jsx(_components.code,{children:`instruction`}),` y `,_jsx(_components.code,{children:`type`}),` son opcionales en cada elemento (`,_jsx(_components.code,{children:`type`}),` es `,_jsx(_components.code,{children:`text`}),` de forma predeterminada); `,_jsx(_components.code,{children:`key`}),` es obligatorio. Si envías `,_jsx(_components.code,{children:`fields`}),` como claves de formulario con corchetes (`,_jsx(_components.code,{children:`fields[0][key]=...`}),`) o en cualquier formato que no sea un array JSON, se devuelve `,_jsx(_components.code,{children:`400`}),` antes de ejecutar ninguna extracción, por lo que no se factura nada.`]}),`\n`,_jsx(Heading,{level:`2`,id:`códigos-qr-y-códigos-de-barras`,children:`Códigos QR y códigos de barras`}),`\n`,_jsxs(_components.p,{children:[`Toda respuesta exitosa incluye `,_jsx(_components.code,{children:`document_ai.detected_codes`}),`. Cada elemento contiene:`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Campo`}),_jsx(_components.th,{children:`Descripción`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`type`})}),_jsxs(_components.td,{children:[`Simbología detectada, como `,_jsx(_components.code,{children:`QR_CODE`}),`, `,_jsx(_components.code,{children:`CODE_128`}),`, `,_jsx(_components.code,{children:`EAN_13`}),`, `,_jsx(_components.code,{children:`DATA_MATRIX`}),` o `,_jsx(_components.code,{children:`PDF_417`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`page_number`})}),_jsx(_components.td,{children:`Número de página, empezando en 1`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`position`})}),_jsxs(_components.td,{children:[`Polígono detectado en píxeles de la página renderizada, o `,_jsx(_components.code,{children:`null`}),` cuando no hay una ubicación fiable`]})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`x`}),`, `,_jsx(_components.code,{children:`y`}),`, `,_jsx(_components.code,{children:`width`}),`, `,_jsx(_components.code,{children:`height`})]}),_jsxs(_components.td,{children:[`Rectángulo delimitador en píxeles de la página renderizada, o `,_jsx(_components.code,{children:`null`}),` cuando no hay una ubicación fiable`]})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`page_width`}),`, `,_jsx(_components.code,{children:`page_height`})]}),_jsx(_components.td,{children:`Dimensiones de la página renderizada utilizadas por las coordenadas`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`parsed_payload`})}),_jsxs(_components.td,{children:[`Cadena decodificada o valor estructurado, o `,_jsx(_components.code,{children:`null`}),` cuando solo se puede ubicar el código`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`raw_payload`})}),_jsx(_components.td,{children:`Payload sin procesar del decodificador como cadena base64 cuando está disponible; en caso contrario, una cadena vacía`})]})]})]}),`\n`,_jsxs(_components.p,{children:[`El array abarca todas las páginas procesadas de un PDF y está vacío cuando no se encuentra ningún código admitido. Didit nunca adivina un payload: los códigos QR dañados pueden devolverse con su ubicación y `,_jsx(_components.code,{children:`parsed_payload: null`}),`, y los fallos en la detección de códigos no hacen fallar la solicitud de Document AI.`]}),`\n`,_jsx(Heading,{level:`2`,id:`coincidencia-de-nombres`,children:`Coincidencia de nombres`}),`\n`,_jsxs(_components.p,{children:[`Marca como máximo un campo con `,_jsx(_components.code,{children:`is_full_name: true`}),` y envía el nombre de la persona o empresa a la que esperas que pertenezca el documento:`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Si verificas`}),_jsx(_components.th,{children:`Envía`}),_jsx(_components.th,{children:`El nombre se compara con`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Una persona`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`expected_first_name`}),` + `,_jsx(_components.code,{children:`expected_last_name`})]}),_jsx(_components.td,{children:`el nombre completo de la persona`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Una empresa`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`expected_company_name`}),` (+ `,_jsx(_components.code,{children:`expected_company_country`}),` opcional, un código ISO de 2 letras)`]}),_jsx(_components.td,{children:`el nombre de la empresa`})]})]})]}),`\n`,_jsxs(_components.p,{children:[`Envía un grupo o el otro, no ambos. Cuando se extrae un nombre y hay un nombre esperado, la respuesta incluye `,_jsx(_components.code,{children:`name_match_score`}),` (de 0 a 100) y `,_jsx(_components.code,{children:`name_on_document`}),`. Una puntuación inferior a `,_jsx(_components.code,{children:`document_ai_name_match_score_threshold`}),` (`,_jsx(_components.code,{children:`80`}),` de forma predeterminada) genera la advertencia `,_jsx(_components.code,{children:`DOCUMENT_AI_NAME_MISMATCH`}),` y aplica `,_jsx(_components.code,{children:`document_ai_name_mismatch_action`}),`. Si ningún campo está marcado con `,_jsx(_components.code,{children:`is_full_name`}),`, Didit recurre al primer campo de texto cuya clave parezca un nombre (`,_jsx(_components.code,{children:`name`}),`, `,_jsx(_components.code,{children:`holder`}),`, `,_jsx(_components.code,{children:`full_name`}),`, `,_jsx(_components.code,{children:`account_holder`}),`); marca el campo de forma explícita cuando quieras controlar qué valor se compara. Cuando no se encuentra ningún nombre en el documento, o no se envía ningún nombre esperado, la comprobación del nombre se omite y `,_jsx(_components.code,{children:`name_match_score`}),` es `,_jsx(_components.code,{children:`null`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`riesgos-y-acciones`,children:`Riesgos y acciones`}),`\n`,_jsxs(_components.p,{children:[`Cada riesgo de la siguiente tabla corresponde a un parámetro de acción que puedes definir en cada solicitud: `,_jsx(_components.code,{children:`DECLINE`}),`, `,_jsx(_components.code,{children:`REVIEW`}),` o `,_jsx(_components.code,{children:`NO_ACTION`}),`. La acción más estricta que se active determina `,_jsx(_components.code,{children:`document_ai.status`}),` (`,_jsx(_components.code,{children:`Declined`}),` > `,_jsx(_components.code,{children:`In Review`}),` > `,_jsx(_components.code,{children:`Approved`}),`), y cada riesgo activado aparece en `,_jsx(_components.code,{children:`document_ai.warnings`}),`. Los valores predeterminados coinciden con los del paso del flujo alojado; consulta `,_jsx(_components.a,{href:`/es/core-technology/document-ai/warnings-document-ai`,children:`Reglas y advertencias de Document AI`}),` para saber cómo se detecta cada riesgo.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Riesgo`}),_jsx(_components.th,{children:`Parámetro`}),_jsx(_components.th,{children:`Valor predeterminado`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`DOCUMENT_AI_UNREADABLE_DOCUMENT`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`document_ai_unreadable_document_action`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`REVIEW`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`DOCUMENT_AI_MISSING_REQUIRED_FIELDS`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`document_ai_missing_required_fields_action`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`REVIEW`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`DOCUMENT_AI_SUSPECTED_MANIPULATION`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`document_ai_document_tampering_action`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`DECLINE`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`DOCUMENT_AI_NAME_MISMATCH`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`document_ai_name_mismatch_action`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`NO_ACTION`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`DOCUMENT_AI_UNSUPPORTED_FILE`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`document_ai_unsupported_file_action`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`REVIEW`})})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`archivos-guardado-y-facturación`,children:`Archivos, guardado y facturación`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Archivos aceptados:`}),` PDF (se admiten varias páginas), JPG, JPEG, PNG, TIFF, WebP o un ZIP que contenga el documento, de hasta 30 MB. Los PDF cifrados devuelven `,_jsx(_components.code,{children:`400`}),`; sube un PDF descifrado o una foto en su lugar.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`save_api_request`})}),` (`,_jsx(_components.code,{children:`true`}),` de forma predeterminada): la solicitud, los campos extraídos y los códigos detectados aparecen en la Business Console, en `,_jsx(_components.strong,{children:`Manual Checks`}),`, donde tu equipo puede revisarlos. Establécelo en `,_jsx(_components.code,{children:`false`}),` para no guardarlos.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`vendor_data`})}),` y `,_jsx(_components.strong,{children:_jsx(_components.code,{children:`metadata`})}),` se devuelven sin cambios en la respuesta para que puedas vincular el resultado con tus propios registros.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Precio:`}),` $0.20 por documento, que se factura cuando el documento se procesa y se devuelve un estado. Se aplica el descuento de tu plan. Consulta `,_jsx(_components.a,{href:`/es/getting-started/pricing#precios-de-las-api-independientes-servidor-a-servidor`,children:`Precios`}),`.`]}),`\n`]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`¿Necesitas que el usuario suba el documento por sí mismo, que se recopilen hasta 3 documentos en un mismo flujo, que se traduzca automáticamente la pantalla de carga o que se crucen los campos extraídos con los datos del documento de identidad o del cuestionario? Usa en su lugar el `,_jsx(_components.a,{href:`/es/core-technology/document-ai/overview`,children:`paso del flujo de Document AI`}),` alojado.`]})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"API de Document AI: extracción personalizada de datos","sidebarTitle":"API de Document AI","description":"POST /v3/document-ai/ de Didit extrae campos que definas de PDF o imágenes, con cotejo de nombres y detección de manipulación. $0.20 por documento.","keywords":["API de Document AI","API de extracción de datos de documentos","API de OCR de documentos personalizada","API de prueba de fondos","API de extracción de nóminas","OCR de extractos bancarios","extracción de documentos KYC","detección de manipulación de documentos","API de Didit"],"openapi":"es/openapi-25.json POST /v3/document-ai/","href":"/es/standalone-apis/document-ai"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Define los campos que se van a extraer","slug":"define-los-campos-que-se-van-a-extraer","depth":2,"children":[]},{"title":"Códigos QR y códigos de barras","slug":"códigos-qr-y-códigos-de-barras","depth":2,"children":[]},{"title":"Coincidencia de nombres","slug":"coincidencia-de-nombres","depth":2,"children":[]},{"title":"Riesgos y acciones","slug":"riesgos-y-acciones","depth":2,"children":[]},{"title":"Archivos, guardado y facturación","slug":"archivos-guardado-y-facturación","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/didit-0f962782/5fb7c0c336c92274/snippets/data/database-validation-coverage.js","/_mintlify/custom/didit-0f962782/4ac7d3c2a19a354d/database-validation-playground.js"],"openApiReferenceData":{"operation":{"summary":"Document AI (extracción de campos personalizados + comprobaciones de manipulación)","description":"POST /v3/document-ai/ de Didit extrae campos que definas de PDF o imágenes, con cotejo de nombres y detección de manipulación. $0.20 por documento.","operationId":"post_v3document-ai","x-didit-sdk":{"resource":"document_ai","method":"analyze","auth":"api_key","server":true},"tags":["Standalone APIs"],"security":["a45b126f-12d3-4ab3-a787-240fec794c8f"],"requestBody":"7552c483-b03a-49c8-9edd-5656932d3b78","responses":{"200":"2fb59a1b-7c32-45e1-9e9a-2b28a2a92373","400":"aad41de9-204a-4313-a55d-eba527be718f","403":"75f73177-0e5d-46fb-b560-e8c6219133bc","429":"0daef3dd-9543-45c6-9d82-d9925f7b6fa1"},"x-codeSamples":[{"lang":"python","label":"Python","source":"from didit import Didit\n\n# Reads DIDIT_API_KEY.\nclient = Didit()\n\nresult = client.document_ai.analyze(\n document=open(\"document.pdf\", \"rb\"),\n fields=\"[{\\\"key\\\": \\\"employer_name\\\", \\\"name\\\": \\\"Employer name\\\", \\\"instruction\\\": \\\"The employer or company issuing the payslip.\\\", \\\"type\\\": \\\"text\\\", \\\"required\\\": true, \\\"is_full_name\\\": false}, {\\\"key\\\": \\\"employee_name\\\", \\\"name\\\": \\\"Employee name\\\", \\\"instruction\\\": \\\"The full name of the employee as printed on the payslip.\\\", \\\"type\\\": \\\"text\\\", \\\"required\\\": true, \\\"is_full_name\\\": true}, {\\\"key\\\": \\\"net_pay\\\", \\\"name\\\": \\\"Net pay\\\", \\\"instruction\\\": \\\"The net amount paid to the employee for the period.\\\", \\\"type\\\": \\\"number\\\", \\\"required\\\": true, \\\"is_full_name\\\": false}, {\\\"key\\\": \\\"pay_date\\\", \\\"name\\\": \\\"Pay date\\\", \\\"instruction\\\": \\\"The payment date shown on the payslip.\\\", \\\"type\\\": \\\"date\\\", \\\"required\\\": false, \\\"is_full_name\\\": false}]\",\n)\nprint(result)"},{"lang":"javascript","label":"Node.js","source":"import Didit, { fileFromPath } from \"@didit-protocol/sdk-node\";\n\n// Reads DIDIT_API_KEY.\nconst didit = new Didit();\n\nconst result = await didit.documentAi.analyze({\n document: await fileFromPath(\"document.pdf\"),\n fields: \"[{\\\"key\\\": \\\"employer_name\\\", \\\"name\\\": \\\"Employer name\\\", \\\"instruction\\\": \\\"The employer or company issuing the payslip.\\\", \\\"type\\\": \\\"text\\\", \\\"required\\\": true, \\\"is_full_name\\\": false}, {\\\"key\\\": \\\"employee_name\\\", \\\"name\\\": \\\"Employee name\\\", \\\"instruction\\\": \\\"The full name of the employee as printed on the payslip.\\\", \\\"type\\\": \\\"text\\\", \\\"required\\\": true, \\\"is_full_name\\\": true}, {\\\"key\\\": \\\"net_pay\\\", \\\"name\\\": \\\"Net pay\\\", \\\"instruction\\\": \\\"The net amount paid to the employee for the period.\\\", \\\"type\\\": \\\"number\\\", \\\"required\\\": true, \\\"is_full_name\\\": false}, {\\\"key\\\": \\\"pay_date\\\", \\\"name\\\": \\\"Pay date\\\", \\\"instruction\\\": \\\"The payment date shown on the payslip.\\\", \\\"type\\\": \\\"date\\\", \\\"required\\\": false, \\\"is_full_name\\\": false}]\",\n});\nconsole.log(result);"},{"lang":"go","label":"Go","source":"ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.DocumentAi.Analyze(ctx, didit.DocumentAiAnalyzeParams{\n\tDocument: didit.FileFromPath(\"document.pdf\"),\n\tFields: \"[{\\\"key\\\": \\\"employer_name\\\", \\\"name\\\": \\\"Employer name\\\", \\\"instruction\\\": \\\"The employer or company issuing the payslip.\\\", \\\"type\\\": \\\"text\\\", \\\"required\\\": true, \\\"is_full_name\\\": false}, {\\\"key\\\": \\\"employee_name\\\", \\\"name\\\": \\\"Employee name\\\", \\\"instruction\\\": \\\"The full name of the employee as printed on the payslip.\\\", \\\"type\\\": \\\"text\\\", \\\"required\\\": true, \\\"is_full_name\\\": true}, {\\\"key\\\": \\\"net_pay\\\", \\\"name\\\": \\\"Net pay\\\", \\\"instruction\\\": \\\"The net amount paid to the employee for the period.\\\", \\\"type\\\": \\\"number\\\", \\\"required\\\": true, \\\"is_full_name\\\": false}, {\\\"key\\\": \\\"pay_date\\\", \\\"name\\\": \\\"Pay date\\\", \\\"instruction\\\": \\\"The payment date shown on the payslip.\\\", \\\"type\\\": \\\"date\\\", \\\"required\\\": false, \\\"is_full_name\\\": false}]\",\n})\nif err != nil {\n\tlog.Fatal(err)\n}\nfmt.Printf(\"%+v\\n\", result)"},{"lang":"java","label":"Java","source":"import java.nio.file.Path;\nimport me.didit.Didit;\nimport me.didit.types.DocumentAiAnalyzeParams;\n\n// Reads DIDIT_API_KEY.\nDidit client = new Didit();\n\nvar result = client.documentAi().analyze(DocumentAiAnalyzeParams.builder()\n .document(Path.of(\"document.pdf\"))\n .fields(\"[{\\\"key\\\": \\\"employer_name\\\", \\\"name\\\": \\\"Employer name\\\", \\\"instruction\\\": \\\"The employer or company issuing the payslip.\\\", \\\"type\\\": \\\"text\\\", \\\"required\\\": true, \\\"is_full_name\\\": false}, {\\\"key\\\": \\\"employee_name\\\", \\\"name\\\": \\\"Employee name\\\", \\\"instruction\\\": \\\"The full name of the employee as printed on the payslip.\\\", \\\"type\\\": \\\"text\\\", \\\"required\\\": true, \\\"is_full_name\\\": true}, {\\\"key\\\": \\\"net_pay\\\", \\\"name\\\": \\\"Net pay\\\", \\\"instruction\\\": \\\"The net amount paid to the employee for the period.\\\", \\\"type\\\": \\\"number\\\", \\\"required\\\": true, \\\"is_full_name\\\": false}, {\\\"key\\\": \\\"pay_date\\\", \\\"name\\\": \\\"Pay date\\\", \\\"instruction\\\": \\\"The payment date shown on the payslip.\\\", \\\"type\\\": \\\"date\\\", \\\"required\\\": false, \\\"is_full_name\\\": false}]\")\n .build());\nSystem.out.println(result);"},{"lang":"php","label":"PHP","source":"\u003c?php\n\nrequire 'vendor/autoload.php';\n\nuse Didit\\DiditClient;\nuse Didit\\File;\n\n// Reads DIDIT_API_KEY.\n$didit = new DiditClient();\n\n$result = $didit->documentAi->analyze([\n 'document' => File::fromPath('document.pdf'),\n 'fields' => '[{\"key\": \"employer_name\", \"name\": \"Employer name\", \"instruction\": \"The employer or company issuing the payslip.\", \"type\": \"text\", \"required\": true, \"is_full_name\": false}, {\"key\": \"employee_name\", \"name\": \"Employee name\", \"instruction\": \"The full name of the employee as printed on the payslip.\", \"type\": \"text\", \"required\": true, \"is_full_name\": true}, {\"key\": \"net_pay\", \"name\": \"Net pay\", \"instruction\": \"The net amount paid to the employee for the period.\", \"type\": \"number\", \"required\": true, \"is_full_name\": false}, {\"key\": \"pay_date\", \"name\": \"Pay date\", \"instruction\": \"The payment date shown on the payslip.\", \"type\": \"date\", \"required\": false, \"is_full_name\": false}]',\n]);\nprint_r($result->toArray());"},{"lang":"ruby","label":"Ruby","source":"require \"didit\"\n\n# Reads DIDIT_API_KEY.\ndidit = Didit::Client.new\n\nresult = didit.document_ai.analyze(\n document: Pathname(\"document.pdf\"),\n fields: \"[{\\\"key\\\": \\\"employer_name\\\", \\\"name\\\": \\\"Employer name\\\", \\\"instruction\\\": \\\"The employer or company issuing the payslip.\\\", \\\"type\\\": \\\"text\\\", \\\"required\\\": true, \\\"is_full_name\\\": false}, {\\\"key\\\": \\\"employee_name\\\", \\\"name\\\": \\\"Employee name\\\", \\\"instruction\\\": \\\"The full name of the employee as printed on the payslip.\\\", \\\"type\\\": \\\"text\\\", \\\"required\\\": true, \\\"is_full_name\\\": true}, {\\\"key\\\": \\\"net_pay\\\", \\\"name\\\": \\\"Net pay\\\", \\\"instruction\\\": \\\"The net amount paid to the employee for the period.\\\", \\\"type\\\": \\\"number\\\", \\\"required\\\": true, \\\"is_full_name\\\": false}, {\\\"key\\\": \\\"pay_date\\\", \\\"name\\\": \\\"Pay date\\\", \\\"instruction\\\": \\\"The payment date shown on the payslip.\\\", \\\"type\\\": \\\"date\\\", \\\"required\\\": false, \\\"is_full_name\\\": false}]\"\n)\nputs result.to_h"},{"lang":"csharp","label":".NET","source":"using System;\nusing System.Text.Json;\nusing Didit;\n\n// Reads DIDIT_API_KEY.\nusing var client = new DiditClient();\n\nvar result = await client.DocumentAi.AnalyzeAsync(new DocumentAiAnalyzeParams\n{\n Document = FileUpload.FromPath(\"document.pdf\"),\n Fields = \"[{\\\"key\\\": \\\"employer_name\\\", \\\"name\\\": \\\"Employer name\\\", \\\"instruction\\\": \\\"The employer or company issuing the payslip.\\\", \\\"type\\\": \\\"text\\\", \\\"required\\\": true, \\\"is_full_name\\\": false}, {\\\"key\\\": \\\"employee_name\\\", \\\"name\\\": \\\"Employee name\\\", \\\"instruction\\\": \\\"The full name of the employee as printed on the payslip.\\\", \\\"type\\\": \\\"text\\\", \\\"required\\\": true, \\\"is_full_name\\\": true}, {\\\"key\\\": \\\"net_pay\\\", \\\"name\\\": \\\"Net pay\\\", \\\"instruction\\\": \\\"The net amount paid to the employee for the period.\\\", \\\"type\\\": \\\"number\\\", \\\"required\\\": true, \\\"is_full_name\\\": false}, {\\\"key\\\": \\\"pay_date\\\", \\\"name\\\": \\\"Pay date\\\", \\\"instruction\\\": \\\"The payment date shown on the payslip.\\\", \\\"type\\\": \\\"date\\\", \\\"required\\\": false, \\\"is_full_name\\\": false}]\",\n});\nConsole.WriteLine(JsonSerializer.Serialize(result));"}],"method":"post","type":"path","servers":["82861873-8d48-4e51-8c90-ff5207bbbf8d"],"path":"/v3/document-ai/","baseUrlOptions":["https://verification.didit.me"],"title":"Document AI (extracción de campos personalizados + comprobaciones de manipulación)","codeSamples":[{"label":"Python","lang":"python","source":"from didit import Didit\n\n# Reads DIDIT_API_KEY.\nclient = Didit()\n\nresult = client.document_ai.analyze(\n document=open(\"document.pdf\", \"rb\"),\n fields=\"[{\\\"key\\\": \\\"employer_name\\\", \\\"name\\\": \\\"Employer name\\\", \\\"instruction\\\": \\\"The employer or company issuing the payslip.\\\", \\\"type\\\": \\\"text\\\", \\\"required\\\": true, \\\"is_full_name\\\": false}, {\\\"key\\\": \\\"employee_name\\\", \\\"name\\\": \\\"Employee name\\\", \\\"instruction\\\": \\\"The full name of the employee as printed on the payslip.\\\", \\\"type\\\": \\\"text\\\", \\\"required\\\": true, \\\"is_full_name\\\": true}, {\\\"key\\\": \\\"net_pay\\\", \\\"name\\\": \\\"Net pay\\\", \\\"instruction\\\": \\\"The net amount paid to the employee for the period.\\\", \\\"type\\\": \\\"number\\\", \\\"required\\\": true, \\\"is_full_name\\\": false}, {\\\"key\\\": \\\"pay_date\\\", \\\"name\\\": \\\"Pay date\\\", \\\"instruction\\\": \\\"The payment date shown on the payslip.\\\", \\\"type\\\": \\\"date\\\", \\\"required\\\": false, \\\"is_full_name\\\": false}]\",\n)\nprint(result)"},{"label":"Node.js","lang":"javascript","source":"import Didit, { fileFromPath } from \"@didit-protocol/sdk-node\";\n\n// Reads DIDIT_API_KEY.\nconst didit = new Didit();\n\nconst result = await didit.documentAi.analyze({\n document: await fileFromPath(\"document.pdf\"),\n fields: \"[{\\\"key\\\": \\\"employer_name\\\", \\\"name\\\": \\\"Employer name\\\", \\\"instruction\\\": \\\"The employer or company issuing the payslip.\\\", \\\"type\\\": \\\"text\\\", \\\"required\\\": true, \\\"is_full_name\\\": false}, {\\\"key\\\": \\\"employee_name\\\", \\\"name\\\": \\\"Employee name\\\", \\\"instruction\\\": \\\"The full name of the employee as printed on the payslip.\\\", \\\"type\\\": \\\"text\\\", \\\"required\\\": true, \\\"is_full_name\\\": true}, {\\\"key\\\": \\\"net_pay\\\", \\\"name\\\": \\\"Net pay\\\", \\\"instruction\\\": \\\"The net amount paid to the employee for the period.\\\", \\\"type\\\": \\\"number\\\", \\\"required\\\": true, \\\"is_full_name\\\": false}, {\\\"key\\\": \\\"pay_date\\\", \\\"name\\\": \\\"Pay date\\\", \\\"instruction\\\": \\\"The payment date shown on the payslip.\\\", \\\"type\\\": \\\"date\\\", \\\"required\\\": false, \\\"is_full_name\\\": false}]\",\n});\nconsole.log(result);"},{"label":"Go","lang":"go","source":"ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.DocumentAi.Analyze(ctx, didit.DocumentAiAnalyzeParams{\n\tDocument: didit.FileFromPath(\"document.pdf\"),\n\tFields: \"[{\\\"key\\\": \\\"employer_name\\\", \\\"name\\\": \\\"Employer name\\\", \\\"instruction\\\": \\\"The employer or company issuing the payslip.\\\", \\\"type\\\": \\\"text\\\", \\\"required\\\": true, \\\"is_full_name\\\": false}, {\\\"key\\\": \\\"employee_name\\\", \\\"name\\\": \\\"Employee name\\\", \\\"instruction\\\": \\\"The full name of the employee as printed on the payslip.\\\", \\\"type\\\": \\\"text\\\", \\\"required\\\": true, \\\"is_full_name\\\": true}, {\\\"key\\\": \\\"net_pay\\\", \\\"name\\\": \\\"Net pay\\\", \\\"instruction\\\": \\\"The net amount paid to the employee for the period.\\\", \\\"type\\\": \\\"number\\\", \\\"required\\\": true, \\\"is_full_name\\\": false}, {\\\"key\\\": \\\"pay_date\\\", \\\"name\\\": \\\"Pay date\\\", \\\"instruction\\\": \\\"The payment date shown on the payslip.\\\", \\\"type\\\": \\\"date\\\", \\\"required\\\": false, \\\"is_full_name\\\": false}]\",\n})\nif err != nil {\n\tlog.Fatal(err)\n}\nfmt.Printf(\"%+v\\n\", result)"},{"label":"Java","lang":"java","source":"import java.nio.file.Path;\nimport me.didit.Didit;\nimport me.didit.types.DocumentAiAnalyzeParams;\n\n// Reads DIDIT_API_KEY.\nDidit client = new Didit();\n\nvar result = client.documentAi().analyze(DocumentAiAnalyzeParams.builder()\n .document(Path.of(\"document.pdf\"))\n .fields(\"[{\\\"key\\\": \\\"employer_name\\\", \\\"name\\\": \\\"Employer name\\\", \\\"instruction\\\": \\\"The employer or company issuing the payslip.\\\", \\\"type\\\": \\\"text\\\", \\\"required\\\": true, \\\"is_full_name\\\": false}, {\\\"key\\\": \\\"employee_name\\\", \\\"name\\\": \\\"Employee name\\\", \\\"instruction\\\": \\\"The full name of the employee as printed on the payslip.\\\", \\\"type\\\": \\\"text\\\", \\\"required\\\": true, \\\"is_full_name\\\": true}, {\\\"key\\\": \\\"net_pay\\\", \\\"name\\\": \\\"Net pay\\\", \\\"instruction\\\": \\\"The net amount paid to the employee for the period.\\\", \\\"type\\\": \\\"number\\\", \\\"required\\\": true, \\\"is_full_name\\\": false}, {\\\"key\\\": \\\"pay_date\\\", \\\"name\\\": \\\"Pay date\\\", \\\"instruction\\\": \\\"The payment date shown on the payslip.\\\", \\\"type\\\": \\\"date\\\", \\\"required\\\": false, \\\"is_full_name\\\": false}]\")\n .build());\nSystem.out.println(result);"},{"label":"PHP","lang":"php","source":"\u003c?php\n\nrequire 'vendor/autoload.php';\n\nuse Didit\\DiditClient;\nuse Didit\\File;\n\n// Reads DIDIT_API_KEY.\n$didit = new DiditClient();\n\n$result = $didit->documentAi->analyze([\n 'document' => File::fromPath('document.pdf'),\n 'fields' => '[{\"key\": \"employer_name\", \"name\": \"Employer name\", \"instruction\": \"The employer or company issuing the payslip.\", \"type\": \"text\", \"required\": true, \"is_full_name\": false}, {\"key\": \"employee_name\", \"name\": \"Employee name\", \"instruction\": \"The full name of the employee as printed on the payslip.\", \"type\": \"text\", \"required\": true, \"is_full_name\": true}, {\"key\": \"net_pay\", \"name\": \"Net pay\", \"instruction\": \"The net amount paid to the employee for the period.\", \"type\": \"number\", \"required\": true, \"is_full_name\": false}, {\"key\": \"pay_date\", \"name\": \"Pay date\", \"instruction\": \"The payment date shown on the payslip.\", \"type\": \"date\", \"required\": false, \"is_full_name\": false}]',\n]);\nprint_r($result->toArray());"},{"label":"Ruby","lang":"ruby","source":"require \"didit\"\n\n# Reads DIDIT_API_KEY.\ndidit = Didit::Client.new\n\nresult = didit.document_ai.analyze(\n document: Pathname(\"document.pdf\"),\n fields: \"[{\\\"key\\\": \\\"employer_name\\\", \\\"name\\\": \\\"Employer name\\\", \\\"instruction\\\": \\\"The employer or company issuing the payslip.\\\", \\\"type\\\": \\\"text\\\", \\\"required\\\": true, \\\"is_full_name\\\": false}, {\\\"key\\\": \\\"employee_name\\\", \\\"name\\\": \\\"Employee name\\\", \\\"instruction\\\": \\\"The full name of the employee as printed on the payslip.\\\", \\\"type\\\": \\\"text\\\", \\\"required\\\": true, \\\"is_full_name\\\": true}, {\\\"key\\\": \\\"net_pay\\\", \\\"name\\\": \\\"Net pay\\\", \\\"instruction\\\": \\\"The net amount paid to the employee for the period.\\\", \\\"type\\\": \\\"number\\\", \\\"required\\\": true, \\\"is_full_name\\\": false}, {\\\"key\\\": \\\"pay_date\\\", \\\"name\\\": \\\"Pay date\\\", \\\"instruction\\\": \\\"The payment date shown on the payslip.\\\", \\\"type\\\": \\\"date\\\", \\\"required\\\": false, \\\"is_full_name\\\": false}]\"\n)\nputs result.to_h"},{"label":".NET","lang":"csharp","source":"using System;\nusing System.Text.Json;\nusing Didit;\n\n// Reads DIDIT_API_KEY.\nusing var client = new DiditClient();\n\nvar result = await client.DocumentAi.AnalyzeAsync(new DocumentAiAnalyzeParams\n{\n Document = FileUpload.FromPath(\"document.pdf\"),\n Fields = \"[{\\\"key\\\": \\\"employer_name\\\", \\\"name\\\": \\\"Employer name\\\", \\\"instruction\\\": \\\"The employer or company issuing the payslip.\\\", \\\"type\\\": \\\"text\\\", \\\"required\\\": true, \\\"is_full_name\\\": false}, {\\\"key\\\": \\\"employee_name\\\", \\\"name\\\": \\\"Employee name\\\", \\\"instruction\\\": \\\"The full name of the employee as printed on the payslip.\\\", \\\"type\\\": \\\"text\\\", \\\"required\\\": true, \\\"is_full_name\\\": true}, {\\\"key\\\": \\\"net_pay\\\", \\\"name\\\": \\\"Net pay\\\", \\\"instruction\\\": \\\"The net amount paid to the employee for the period.\\\", \\\"type\\\": \\\"number\\\", \\\"required\\\": true, \\\"is_full_name\\\": false}, {\\\"key\\\": \\\"pay_date\\\", \\\"name\\\": \\\"Pay date\\\", \\\"instruction\\\": \\\"The payment date shown on the payslip.\\\", \\\"type\\\": \\\"date\\\", \\\"required\\\": false, \\\"is_full_name\\\": false}]\",\n});\nConsole.WriteLine(JsonSerializer.Serialize(result));"}],"requiredOnlyExamples":false,"requestExampleType":"codeSamples","responseExampleType":"generated","prefillPlaygroundWithExample":true,"prefillPlaygroundExamples":[{"body.document":"\u003cstring>","body.fields":"[{\"key\": \"employer_name\", \"name\": \"Employer name\", \"instruction\": \"The employer or company issuing the payslip.\", \"type\": \"text\", \"required\": true, \"is_full_name\": false}, {\"key\": \"employee_name\", \"name\": \"Employee name\", \"instruction\": \"The full name of the employee as printed on the payslip.\", \"type\": \"text\", \"required\": true, \"is_full_name\": true}, {\"key\": \"net_pay\", \"name\": \"Net pay\", \"instruction\": \"The net amount paid to the employee for the period.\", \"type\": \"number\", \"required\": true, \"is_full_name\": false}, {\"key\": \"pay_date\", \"name\": \"Pay date\", \"instruction\": \"The payment date shown on the payslip.\", \"type\": \"date\", \"required\": false, \"is_full_name\": false}]","body.expected_first_name":"Sophia","body.expected_last_name":"Martinez","body.expected_company_name":"\u003cstring>","body.expected_company_country":"\u003cstring>","body.document_ai_name_match_score_threshold":80,"body.document_ai_unreadable_document_action":"REVIEW","body.document_ai_missing_required_fields_action":"REVIEW","body.document_ai_document_tampering_action":"DECLINE","body.document_ai_name_mismatch_action":"NO_ACTION","body.document_ai_unsupported_file_action":"REVIEW","body.save_api_request":true,"body.vendor_data":"user-123","body.metadata":{"flow":"onboarding"}}]},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","required":["document","fields"],"properties":{"document":{"type":"string","format":"binary","description":"El documento que se va a leer. Extensiones permitidas: `tiff`, `jpg`, `jpeg`, `png`, `pdf`, `webp`, `zip`. Tamaño máximo de carga: **30 MB** (los archivos más grandes se rechazan con `400`). Se admiten PDF de varias páginas (con una latencia mayor); los PDF cifrados se rechazan con `400`. Las imágenes se comprimen automáticamente antes del procesamiento.","isRequired":true,"uniqueKey":"document","typeLabel":"file"},"fields":{"type":"string","description":"Una cadena con un array codificado en JSON con **1–30** definiciones de campos (máximo 16 KB). Cada elemento: `key` (obligatorio, `^[a-z0-9_]{1,64}$`, único: la clave que se devuelve en `extracted_data`), `name` (≤100 caracteres, se muestra en los mensajes), `instruction` (≤500 caracteres, lo que el modelo debe leer), `type` (`text` por defecto | `number` | `date`), `required` (booleano, por defecto `false`), `is_full_name` (booleano, por defecto `false`, como máximo uno por solicitud). Los arrays de formulario con corchetes, el JSON no válido, las claves duplicadas o más de un `is_full_name` devuelven `400` antes de cualquier procesamiento o facturación.","example":"[{\"key\": \"employer_name\", \"name\": \"Employer name\", \"instruction\": \"The employer or company issuing the payslip.\", \"type\": \"text\", \"required\": true, \"is_full_name\": false}, {\"key\": \"employee_name\", \"name\": \"Employee name\", \"instruction\": \"The full name of the employee as printed on the payslip.\", \"type\": \"text\", \"required\": true, \"is_full_name\": true}, {\"key\": \"net_pay\", \"name\": \"Net pay\", \"instruction\": \"The net amount paid to the employee for the period.\", \"type\": \"number\", \"required\": true, \"is_full_name\": false}, {\"key\": \"pay_date\", \"name\": \"Pay date\", \"instruction\": \"The payment date shown on the payslip.\", \"type\": \"date\", \"required\": false, \"is_full_name\": false}]","isRequired":true,"uniqueKey":"fields","typeLabel":"string"},"expected_first_name":{"type":"string","description":"Nombre que se verifica contra el campo de nombre del documento (coincidencia aproximada, con soporte de transliteración). Úsalo junto con `expected_last_name`; no se puede combinar con `expected_company_name`.","example":"Sophia","uniqueKey":"expected_first_name","typeLabel":"string"},"expected_last_name":{"type":"string","description":"Apellido que se verifica contra el campo de nombre del documento, combinado con `expected_first_name` para `name_match_score`.","example":"Martinez","uniqueKey":"expected_last_name","typeLabel":"string"},"expected_company_name":{"type":"string","description":"Nombre de la empresa que se comparará con el campo de nombre del documento (para documentos de empresa). No se puede combinar con `expected_first_name` / `expected_last_name` (no tiene valor de ejemplo a propósito: el ejemplo de solicitud generado usa los campos de persona; sustitúyelos por este al verificar un documento de empresa).","uniqueKey":"expected_company_name","typeLabel":"string"},"expected_company_country":{"type":"string","description":"Código de país ISO 3166-1 alfa-2 opcional (dos letras ASCII, p. ej., `FR`) que ajusta la normalización del nombre de la empresa para `expected_company_name`. Solo se usa con `expected_company_name`.","uniqueKey":"expected_company_country","typeLabel":"string"},"document_ai_name_match_score_threshold":{"type":"integer","minimum":0,"maximum":100,"default":80,"description":"`name_match_score` mínimo (0–100) para considerar que el nombre coincide. Una puntuación inferior añade `DOCUMENT_AI_NAME_MISMATCH`, que se rige por `document_ai_name_mismatch_action`.","example":80,"uniqueKey":"document_ai_name_match_score_threshold","typeLabel":"integer"},"document_ai_unreadable_document_action":{"type":"string","enum":["DECLINE","REVIEW","NO_ACTION"],"default":"REVIEW","description":"Qué hacer cuando no se pudo leer ningún campo del documento (`DOCUMENT_AI_UNREADABLE_DOCUMENT`).","uniqueKey":"document_ai_unreadable_document_action","typeLabel":"enum\u003cstring>"},"document_ai_missing_required_fields_action":{"type":"string","enum":["DECLINE","REVIEW","NO_ACTION"],"default":"REVIEW","description":"Qué hacer cuando no se pudo leer al menos un campo `required` (`DOCUMENT_AI_MISSING_REQUIRED_FIELDS`; `additional_data.missing_fields` los enumera).","uniqueKey":"document_ai_missing_required_fields_action","typeLabel":"enum\u003cstring>"},"document_ai_document_tampering_action":{"type":"string","enum":["DECLINE","REVIEW","NO_ACTION"],"default":"DECLINE","description":"Qué hacer cuando el análisis forense de PDF/EXIF sospecha una manipulación: modificación posterior a la firma digital, editor de PDF conocido, manipulación con texto superpuesto, reexportación sospechosa o anomalías en la imagen (`DOCUMENT_AI_SUSPECTED_MANIPULATION`).","uniqueKey":"document_ai_document_tampering_action","typeLabel":"enum\u003cstring>"},"document_ai_name_mismatch_action":{"type":"string","enum":["DECLINE","REVIEW","NO_ACTION"],"default":"NO_ACTION","description":"Qué hacer cuando `name_match_score` está por debajo del umbral (`DOCUMENT_AI_NAME_MISMATCH`).","uniqueKey":"document_ai_name_mismatch_action","typeLabel":"enum\u003cstring>"},"document_ai_unsupported_file_action":{"type":"string","enum":["DECLINE","REVIEW","NO_ACTION"],"default":"REVIEW","description":"Qué hacer cuando el archivo subido está vacío o no se puede procesar (`DOCUMENT_AI_UNSUPPORTED_FILE`).","uniqueKey":"document_ai_unsupported_file_action","typeLabel":"enum\u003cstring>"},"save_api_request":{"type":"boolean","default":true,"description":"Cuando es `true` (valor predeterminado), guarda la llamada como una sesión de tipo API: visible en la Business Console, recuperable mediante `GET /v3/session/{sessionId}/decision/` con el `request_id` devuelto, y con el documento subido, los valores extraídos, las definiciones de campos y la instantánea de la coincidencia de nombre almacenados. Cuando es `false`, no se almacena nada y `request_id` es un UUID temporal que solo sirve para correlacionar la respuesta; la llamada se factura igualmente.","example":true,"uniqueKey":"save_api_request","typeLabel":"boolean"},"vendor_data":{"type":"string","description":"Cadena opaca opcional (tu ID de usuario interno, correo electrónico, UUID…) que se guarda en la sesión persistida y se devuelve en la respuesta. Úsala para relacionar las llamadas a la API con tus propios registros y para filtrar sesiones más adelante.","example":"user-123","uniqueKey":"vendor_data","typeLabel":"string"},"metadata":{"type":"object","additionalProperties":true,"description":"Objeto JSON opcional que se almacena con la sesión (cuando `save_api_request=true`) y se devuelve en la respuesta. En solicitudes multipart, envíalo como un campo de cadena codificado en JSON (p. ej., `metadata={\"flow\":\"onboarding\"}`): se convierte en un objeto.","example":{"flow":"onboarding"},"uniqueKey":"metadata","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"document":"\u003cstring>","fields":"[{\"key\": \"employer_name\", \"name\": \"Employer name\", \"instruction\": \"The employer or company issuing the payslip.\", \"type\": \"text\", \"required\": true, \"is_full_name\": false}, {\"key\": \"employee_name\", \"name\": \"Employee name\", \"instruction\": \"The full name of the employee as printed on the payslip.\", \"type\": \"text\", \"required\": true, \"is_full_name\": true}, {\"key\": \"net_pay\", \"name\": \"Net pay\", \"instruction\": \"The net amount paid to the employee for the period.\", \"type\": \"number\", \"required\": true, \"is_full_name\": false}, {\"key\": \"pay_date\", \"name\": \"Pay date\", \"instruction\": \"The payment date shown on the payslip.\", \"type\": \"date\", \"required\": false, \"is_full_name\": false}]","expected_first_name":"Sophia","expected_last_name":"Martinez","expected_company_name":"\u003cstring>","expected_company_country":"\u003cstring>","document_ai_name_match_score_threshold":80,"document_ai_unreadable_document_action":"REVIEW","document_ai_missing_required_fields_action":"REVIEW","document_ai_document_tampering_action":"DECLINE","document_ai_name_mismatch_action":"NO_ACTION","document_ai_unsupported_file_action":"REVIEW","save_api_request":true,"vendor_data":"user-123","metadata":{"flow":"onboarding"}}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"2fb59a1b-7c32-45e1-9e9a-2b28a2a92373":{"description":"Documento procesado. `document_ai.status` es `Approved`, `Declined` o `In Review`; cada problema detectado se detalla en `document_ai.warnings`. Un documento con problemas también devuelve `200`: revisa el cuerpo, no solo el código HTTP. Cuando `save_api_request=true`, `request_id` es el ID de la sesión guardada.","content":{"application/json":{"examples":{"Approved":{"title":"Approved","value":{"request_id":"9d6a3b1e-2f0c-4a8e-9b7d-1c2e3f4a5b6c","document_ai":{"status":"Approved","extracted_data":{"employer_name":"Acme Payments Ltd","employee_name":"Sophia Martinez","net_pay":3120.5,"pay_date":"2026-07-31"},"detected_codes":[{"type":"CODE_128","page_number":1,"position":[[96,456],[96,616],[1012,611],[1015,456]],"x":96,"y":456,"width":919,"height":160,"page_width":1200,"page_height":1700,"raw_payload":"SU5WLTIwMjYtMDA0Mg==","parsed_payload":"INV-2026-0042"}],"fields":[{"key":"employer_name","name":"Employer name","instruction":"The employer or company issuing the payslip.","type":"text","required":true,"is_full_name":false},{"key":"employee_name","name":"Employee name","instruction":"The full name of the employee as printed on the payslip.","type":"text","required":true,"is_full_name":true},{"key":"net_pay","name":"Net pay","instruction":"The net amount paid to the employee for the period.","type":"number","required":true,"is_full_name":false},{"key":"pay_date","name":"Pay date","instruction":"The payment date shown on the payslip.","type":"date","required":false,"is_full_name":false}],"name_match_score":100,"name_on_document":"Sophia Martinez","warnings":[]},"vendor_data":"user-123","metadata":{"flow":"onboarding"},"created_at":"2026-08-19T16:40:12.318Z"}},"In Review — missing required field":{"title":"In Review — missing required field","value":{"request_id":"3f2a9c7b-5d4e-4b1a-8c6f-0e9d8c7b6a5f","document_ai":{"status":"In Review","extracted_data":{"employer_name":"Acme Payments Ltd","employee_name":"Sophia Martinez","net_pay":null,"pay_date":"2026-07-31"},"detected_codes":[],"fields":[{"key":"employer_name","name":"Employer name","instruction":"The employer or company issuing the payslip.","type":"text","required":true,"is_full_name":false},{"key":"employee_name","name":"Employee name","instruction":"The full name of the employee as printed on the payslip.","type":"text","required":true,"is_full_name":true},{"key":"net_pay","name":"Net pay","instruction":"The net amount paid to the employee for the period.","type":"number","required":true,"is_full_name":false},{"key":"pay_date","name":"Pay date","instruction":"The payment date shown on the payslip.","type":"date","required":false,"is_full_name":false}],"name_match_score":100,"name_on_document":"Sophia Martinez","warnings":[{"risk":"DOCUMENT_AI_MISSING_REQUIRED_FIELDS","feature":"DOCUMENT_AI","additional_data":{"missing_fields":["Net pay"]},"log_type":"warning","short_description":"Required fields could not be extracted","long_description":"One or more fields configured as required could not be extracted from the uploaded document."}]},"vendor_data":null,"metadata":null,"created_at":"2026-08-19T16:41:05.002Z"}},"Declined — suspected manipulation":{"title":"Declined — suspected manipulation","value":{"request_id":"7c1d2e3f-4a5b-4c6d-8e9f-0a1b2c3d4e5f","document_ai":{"status":"Declined","extracted_data":{"employer_name":"Acme Payments Ltd","employee_name":"Sophia Martinez","net_pay":3120.5,"pay_date":"2026-07-31"},"detected_codes":[],"fields":[{"key":"employer_name","name":"Employer name","instruction":"The employer or company issuing the payslip.","type":"text","required":true,"is_full_name":false},{"key":"employee_name","name":"Employee name","instruction":"The full name of the employee as printed on the payslip.","type":"text","required":true,"is_full_name":true},{"key":"net_pay","name":"Net pay","instruction":"The net amount paid to the employee for the period.","type":"number","required":true,"is_full_name":false},{"key":"pay_date","name":"Pay date","instruction":"The payment date shown on the payslip.","type":"date","required":false,"is_full_name":false}],"name_match_score":null,"name_on_document":"Sophia Martinez","warnings":[{"risk":"DOCUMENT_AI_SUSPECTED_MANIPULATION","feature":"DOCUMENT_AI","additional_data":{"detection_method":"known_editor","processed_by_known_editor":"ilovepdf"},"log_type":"error","short_description":"Suspected document manipulation","long_description":"The system detected signs of potential manipulation or editing in the uploaded document."}]},"vendor_data":null,"metadata":null,"created_at":"2026-08-19T16:42:40.771Z"}}},"schema":{"type":"object","properties":{"request_id":{"type":"string","format":"uuid","description":"ID de la sesión guardada cuando `save_api_request=true` (se puede usar con `GET /v3/session/{sessionId}/decision/`); en caso contrario, un UUID de correlación temporal.","uniqueKey":"request_id","typeLabel":"string\u003cuuid>"},"document_ai":{"type":"object","properties":{"status":{"type":"string","enum":["Approved","Declined","In Review"],"description":"`Approved` cuando ninguna advertencia se resuelve en un rechazo o una revisión; `Declined` cuando al menos un riesgo se asigna a `DECLINE`; en caso contrario, `In Review` cuando al menos uno se asigna a `REVIEW`. La lista `warnings` explica el motivo.","uniqueKey":"document_ai.status","typeLabel":"enum\u003cstring>"},"extracted_data":{"type":"object","additionalProperties":true,"description":"Una entrada por cada clave de campo solicitada. Los valores tienen el tipo que indica el `type` del campo: cadenas para `text`, números para `number`, cadenas `YYYY-MM-DD` para `date`, o `null` cuando no se pudo leer el valor.","example":{"employer_name":"Acme Payments Ltd","employee_name":"Sophia Martinez","net_pay":3120.5,"pay_date":"2026-07-31"},"uniqueKey":"document_ai.extracted_data","typeLabel":"object"},"detected_codes":{"type":"array","description":"Códigos QR y códigos de barras detectados en todas las páginas procesadas. Vacío cuando no se encuentra ninguno. Un código QR localizado pero que no se puede decodificar tiene `parsed_payload: null`.","items":{"type":"object","required":["type","page_number","position","x","y","width","height","page_width","page_height","raw_payload","parsed_payload"],"properties":{"type":{"type":"string","description":"Simbología detectada, por ejemplo `QR_CODE`, `CODE_128`, `EAN_13`, `DATA_MATRIX` o `PDF_417`.","isRequired":true,"uniqueKey":"document_ai.detected_codes.items.[INDEX].type","typeLabel":"string"},"page_number":{"type":"integer","minimum":1,"description":"Número de página, empezando en 1.","isRequired":true,"uniqueKey":"document_ai.detected_codes.items.[INDEX].page_number","typeLabel":"integer"},"position":{"oneOf":[{"type":"array","description":"Polígono detectado en coordenadas de píxeles de la página renderizada. Es `null` cuando no hay una ubicación fiable disponible.","items":{"type":"array","minItems":2,"maxItems":2,"items":{"type":"integer","uniqueKey":"document_ai.detected_codes.items.[INDEX].position.oneOf.0.items.[INDEX].items.[INDEX]","typeLabel":"integer"},"uniqueKey":"document_ai.detected_codes.items.[INDEX].position.oneOf.0.items.[INDEX]","typeLabel":"integer[]"},"isRequired":true,"uniqueKey":"document_ai.detected_codes.items.[INDEX].position.oneOf.0","typeLabel":"integer[][]"},{"type":"null","description":"Polígono detectado en coordenadas de píxeles de la página renderizada. Es `null` cuando no hay una ubicación fiable disponible.","items":{"type":"array","minItems":2,"maxItems":2,"items":{"type":"integer"}},"isRequired":true,"uniqueKey":"document_ai.detected_codes.items.[INDEX].position.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"document_ai.detected_codes.items.[INDEX].position","typeLabel":"integer[][] | null"},"x":{"oneOf":[{"type":"integer","description":"Borde izquierdo del cuadro delimitador, en píxeles de la página renderizada.","isRequired":true,"uniqueKey":"document_ai.detected_codes.items.[INDEX].x.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Borde izquierdo del cuadro delimitador, en píxeles de la página renderizada.","isRequired":true,"uniqueKey":"document_ai.detected_codes.items.[INDEX].x.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"document_ai.detected_codes.items.[INDEX].x","typeLabel":"integer | null"},"y":{"oneOf":[{"type":"integer","description":"Borde superior del cuadro delimitador, en píxeles de la página renderizada.","isRequired":true,"uniqueKey":"document_ai.detected_codes.items.[INDEX].y.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Borde superior del cuadro delimitador, en píxeles de la página renderizada.","isRequired":true,"uniqueKey":"document_ai.detected_codes.items.[INDEX].y.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"document_ai.detected_codes.items.[INDEX].y","typeLabel":"integer | null"},"width":{"oneOf":[{"type":"integer","description":"Ancho del cuadro delimitador en píxeles de la página renderizada.","isRequired":true,"uniqueKey":"document_ai.detected_codes.items.[INDEX].width.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Ancho del cuadro delimitador en píxeles de la página renderizada.","isRequired":true,"uniqueKey":"document_ai.detected_codes.items.[INDEX].width.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"document_ai.detected_codes.items.[INDEX].width","typeLabel":"integer | null"},"height":{"oneOf":[{"type":"integer","description":"Altura del cuadro delimitador en píxeles de la página renderizada.","isRequired":true,"uniqueKey":"document_ai.detected_codes.items.[INDEX].height.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Altura del cuadro delimitador en píxeles de la página renderizada.","isRequired":true,"uniqueKey":"document_ai.detected_codes.items.[INDEX].height.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"document_ai.detected_codes.items.[INDEX].height","typeLabel":"integer | null"},"page_width":{"type":"integer","description":"Ancho de la página renderizada en píxeles.","isRequired":true,"uniqueKey":"document_ai.detected_codes.items.[INDEX].page_width","typeLabel":"integer"},"page_height":{"type":"integer","description":"Altura de la página renderizada en píxeles.","isRequired":true,"uniqueKey":"document_ai.detected_codes.items.[INDEX].page_height","typeLabel":"integer"},"raw_payload":{"type":"string","description":"Payload del decodificador sin procesar como cadena base64 cuando está disponible; en caso contrario, una cadena vacía.","isRequired":true,"uniqueKey":"document_ai.detected_codes.items.[INDEX].raw_payload","typeLabel":"string"},"parsed_payload":{"oneOf":[{"description":"Cadena decodificada o valor estructurado. `null` cuando el código se localizó pero no se pudo decodificar.","isRequired":true,"uniqueKey":"document_ai.detected_codes.items.[INDEX].parsed_payload.oneOf.0","typeLabel":"any"},{"description":"Cadena decodificada o valor estructurado. `null` cuando el código se localizó pero no se pudo decodificar.","type":"null","isRequired":true,"uniqueKey":"document_ai.detected_codes.items.[INDEX].parsed_payload.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"document_ai.detected_codes.items.[INDEX].parsed_payload","typeLabel":"any | null"}},"uniqueKey":"document_ai.detected_codes.items.[INDEX]","typeLabel":"object"},"uniqueKey":"document_ai.detected_codes","typeLabel":"object[]"},"fields":{"type":"array","description":"Las definiciones de campo normalizadas que se usaron para esta extracción, devueltas tal cual (también se guardan con la sesión cuando `save_api_request=true`).","items":{"type":"object","properties":{"key":{"type":"string","uniqueKey":"document_ai.fields.items.[INDEX].key","typeLabel":"string"},"name":{"type":"string","uniqueKey":"document_ai.fields.items.[INDEX].name","typeLabel":"string"},"instruction":{"type":"string","uniqueKey":"document_ai.fields.items.[INDEX].instruction","typeLabel":"string"},"type":{"type":"string","enum":["text","number","date"],"uniqueKey":"document_ai.fields.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"required":{"type":"boolean","uniqueKey":"document_ai.fields.items.[INDEX].required","typeLabel":"boolean"},"is_full_name":{"type":"boolean","uniqueKey":"document_ai.fields.items.[INDEX].is_full_name","typeLabel":"boolean"}},"uniqueKey":"document_ai.fields.items.[INDEX]","typeLabel":"object"},"uniqueKey":"document_ai.fields","typeLabel":"object[]"},"name_match_score":{"oneOf":[{"type":"number","minimum":0,"maximum":100,"description":"Similitud difusa (0–100) entre `name_on_document` y el nombre esperado de la persona o empresa. Se devuelve siempre que existan tanto un valor de nombre como un nombre esperado, en coincidencias **y** en discrepancias; `null` en caso contrario.","example":96,"uniqueKey":"document_ai.name_match_score.oneOf.0","typeLabel":"number"},{"type":"null","minimum":0,"maximum":100,"description":"Similitud difusa (0–100) entre `name_on_document` y el nombre esperado de la persona o empresa. Se devuelve siempre que existan tanto un valor de nombre como un nombre esperado, en coincidencias **y** en discrepancias; `null` en caso contrario.","example":96,"uniqueKey":"document_ai.name_match_score.oneOf.1","typeLabel":"null"}],"uniqueKey":"document_ai.name_match_score","typeLabel":"number | null"},"name_on_document":{"oneOf":[{"type":"string","description":"El valor de nombre extraído del documento (el campo `is_full_name`, o el primer campo de texto con aspecto de nombre) que se comparó con el nombre esperado. `null` cuando no había ningún valor de nombre disponible.","example":"Sophia Martinez","uniqueKey":"document_ai.name_on_document.oneOf.0","typeLabel":"string"},{"type":"null","description":"El valor de nombre extraído del documento (el campo `is_full_name`, o el primer campo de texto con aspecto de nombre) que se comparó con el nombre esperado. `null` cuando no había ningún valor de nombre disponible.","example":"Sophia Martinez","uniqueKey":"document_ai.name_on_document.oneOf.1","typeLabel":"null"}],"uniqueKey":"document_ai.name_on_document","typeLabel":"string | null"},"warnings":{"type":"array","description":"Vacío en una aprobación sin incidencias. Cada entrada explica un riesgo detectado; las entradas con `log_type: \"error\"` establecen `status` en `Declined`, y las entradas con `log_type: \"warning\"` lo establecen en `In Review`.","items":{"type":"object","properties":{"risk":{"type":"string","enum":["DOCUMENT_AI_UNREADABLE_DOCUMENT","DOCUMENT_AI_MISSING_REQUIRED_FIELDS","DOCUMENT_AI_SUSPECTED_MANIPULATION","DOCUMENT_AI_NAME_MISMATCH","DOCUMENT_AI_UNSUPPORTED_FILE"],"description":"Código de riesgo legible por máquina. Cada uno se controla con la opción de solicitud `document_ai_*_action` correspondiente.","example":"DOCUMENT_AI_MISSING_REQUIRED_FIELDS","uniqueKey":"document_ai.warnings.items.[INDEX].risk","typeLabel":"enum\u003cstring>"},"feature":{"type":"string","enum":["DOCUMENT_AI"],"description":"Función que emitió la advertencia. En este endpoint siempre es `DOCUMENT_AI`.","uniqueKey":"document_ai.warnings.items.[INDEX].feature","typeLabel":"enum\u003cstring>"},"additional_data":{"oneOf":[{"type":"object","additionalProperties":true,"description":"Contexto adicional del riesgo: `{\"missing_fields\": [\"Net pay\"]}` para campos obligatorios ausentes, `{\"name_on_document\", \"score\", \"threshold\"}` para una discrepancia de nombre, y el hallazgo forense (`detection_method`, datos del productor o editor) para una sospecha de manipulación. `null` cuando no hay nada que añadir.","example":{"missing_fields":["Net pay"]},"uniqueKey":"document_ai.warnings.items.[INDEX].additional_data.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":true,"description":"Contexto adicional del riesgo: `{\"missing_fields\": [\"Net pay\"]}` para campos obligatorios ausentes, `{\"name_on_document\", \"score\", \"threshold\"}` para una discrepancia de nombre, y el hallazgo forense (`detection_method`, datos del productor o editor) para una sospecha de manipulación. `null` cuando no hay nada que añadir.","example":{"missing_fields":["Net pay"]},"uniqueKey":"document_ai.warnings.items.[INDEX].additional_data.oneOf.1","typeLabel":"null"}],"uniqueKey":"document_ai.warnings.items.[INDEX].additional_data","typeLabel":"object | null"},"log_type":{"type":"string","enum":["error","warning","information"],"description":"Gravedad derivada de la acción configurada: `error` (DECLINE), `warning` (REVIEW), `information` (NO_ACTION).","uniqueKey":"document_ai.warnings.items.[INDEX].log_type","typeLabel":"enum\u003cstring>"},"short_description":{"type":"string","description":"Descripción legible del riesgo en una línea.","example":"Required fields could not be extracted","uniqueKey":"document_ai.warnings.items.[INDEX].short_description","typeLabel":"string"},"long_description":{"type":"string","description":"Explicación legible, completada con `additional_data` cuando corresponde.","uniqueKey":"document_ai.warnings.items.[INDEX].long_description","typeLabel":"string"}},"uniqueKey":"document_ai.warnings.items.[INDEX]","typeLabel":"object"},"uniqueKey":"document_ai.warnings","typeLabel":"object[]"}},"uniqueKey":"document_ai","typeLabel":"object"},"vendor_data":{"oneOf":[{"type":"string","description":"Devuelve el `vendor_data` que enviaste, o `null`.","uniqueKey":"vendor_data.oneOf.0","typeLabel":"string"},{"type":"null","description":"Devuelve el `vendor_data` que enviaste, o `null`.","uniqueKey":"vendor_data.oneOf.1","typeLabel":"null"}],"uniqueKey":"vendor_data","typeLabel":"string | null"},"metadata":{"oneOf":[{"type":"object","additionalProperties":true,"description":"Devuelve el objeto `metadata` que enviaste, o `null`.","uniqueKey":"metadata.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":true,"description":"Devuelve el objeto `metadata` que enviaste, o `null`.","uniqueKey":"metadata.oneOf.1","typeLabel":"null"}],"uniqueKey":"metadata","typeLabel":"object | null"},"created_at":{"type":"string","format":"date-time","description":"Fecha y hora en que se procesó la solicitud (UTC, ISO 8601).","uniqueKey":"created_at","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"","typeLabel":"object"},"exampleType":"examples"}},"exampleType":"examples"},"aad41de9-204a-4313-a55d-eba527be718f":{"description":"Error de validación o de procesamiento. Los problemas a nivel de campo devuelven el formato estándar de DRF (un array de mensajes por cada campo afectado). Los documentos cifrados o ilegibles y los fallos de extracción devuelven `{\"error\": ...}`.","content":{"application/json":{"examples":{"Missing document":{"title":"Missing document","value":{"document":["No file was submitted."]}},"Invalid fields payload":{"title":"Invalid fields payload","value":{"fields":["fields must be a valid JSON array string."]}},"Duplicate field keys":{"title":"Duplicate field keys","value":{"fields":["Every fields item must have a unique key."]}},"Conflicting expectations":{"title":"Conflicting expectations","value":{"non_field_errors":["Provide either person expected-name fields or expected_company_name, not both."]}},"Invalid metadata":{"title":"Invalid metadata","value":{"metadata":["Metadata must be a JSON object."]}},"Oversized vendor_data":{"title":"Oversized vendor_data","value":{"vendor_data":["vendor_data is too long (maximum 2000 bytes)."]}},"Encrypted PDF":{"title":"Encrypted PDF","value":{"error":"The PDF is encrypted. Please upload a decrypted PDF or a photo instead."}},"Extraction failed":{"title":"Extraction failed","value":{"error":["Error extracting Document AI information"]}}},"schema":{"type":"object","additionalProperties":true,"uniqueKey":"","typeLabel":"object"},"exampleType":"examples"}},"exampleType":"examples"},"75f73177-0e5d-46fb-b560-e8c6219133bc":{"description":"Permiso denegado. Se devuelve cuando falta el encabezado `x-api-key` y también cuando el saldo de la organización que realiza la llamada no la cubre; una clave incorrecta, revocada o expirada devuelve `401`. Si falta la clave, se devuelve `403` con `{\"detail\": ...}`; una clave incorrecta, revocada o expirada devuelve `401`. La falta de créditos (y las organizaciones con facturación por contrato cuya tabla de tarifas no incluye una entrada para la API de Document AI) devuelve `403` con `{\"error\": ...}` antes de que se procese ningún documento.","content":{"application/json":{"examples":{"Missing or invalid API key":{"title":"Missing or invalid API key","value":{"detail":"You do not have permission to perform this action."}},"Not enough credits":{"title":"Not enough credits","value":{"error":"You don't have enough credits to perform this request. Please top up at https://business.didit.me"}},"Contract rate missing":{"title":"Contract rate missing","value":{"error":"Document AI API is not included in your contract rate card. Contact support@didit.me to enable it."}}},"schema":{"type":"object","properties":{"detail":{"type":"string","uniqueKey":"detail","typeLabel":"string"},"error":{"type":"string","uniqueKey":"error","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"exampleType":"examples"}},"exampleType":"examples"},"0daef3dd-9543-45c6-9d82-d9925f7b6fa1":{"description":"Límite de solicitudes superado. Todos los endpoints POST/PATCH/DELETE comparten un presupuesto de 300 solicitudes de escritura por minuto por clave de API. La respuesta incluye los encabezados `X-RateLimit-Limit`, `X-RateLimit-Remaining`, `X-RateLimit-Reset` y `Retry-After`.","content":{"application/json":{"examples":{"Write rate limit exceeded":{"title":"Write rate limit exceeded","value":{"detail":"Write request rate limit exceeded. You can make up to 300 requests per minute."}}},"schema":{"type":"object","properties":{"detail":{"type":"string","uniqueKey":"detail","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"a45b126f-12d3-4ab3-a787-240fec794c8f":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"x-api-key","description":"La clave de API de tu aplicación, que encontrarás en Developers -> API keys en la Business Console. La clave principal tiene acceso completo. Una clave con nombre puede tener un alcance limitado: ninguno, lectura o escritura por recurso, limitada a algunos flujos o a sesiones aprobadas, a una lista de direcciones IP y a una fecha de caducidad. 401 significa que la clave es incorrecta, se revocó o expiró; 403 significa que no se envió ninguna clave, que la clave no tiene acceso a este recurso o acción, o que la solicitud provino de una dirección fuera de su lista de IP; 404 en una ruta de sesión significa que la sesión está fuera de los flujos o estados de la clave. Una clave sin acceso a contenido multimedia recibe las URL de imágenes, videos y PDF como null, y una clave sin permiso de escritura en sesiones recibe los enlaces y tokens de sesión como null. Consulta https://docs.didit.me/console/api-keys.","scopes":[],"schemeName":"ApiKeyAuth"}}},"servers":{"82861873-8d48-4e51-8c90-ff5207bbbf8d":{"url":"https://verification.didit.me"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"x-api-key","description":"La clave de API de tu aplicación, que encontrarás en Developers -> API keys en la Business Console. La clave principal tiene acceso completo. Una clave con nombre puede tener un alcance limitado: ninguno, lectura o escritura por recurso, limitada a algunos flujos o a sesiones aprobadas, a una lista de direcciones IP y a una fecha de caducidad. 401 significa que la clave es incorrecta, se revocó o expiró; 403 significa que no se envió ninguna clave, que la clave no tiene acceso a este recurso o acción, o que la solicitud provino de una dirección fuera de su lista de IP; 404 en una ruta de sesión significa que la sesión está fuera de los flujos o estados de la clave. Una clave sin acceso a contenido multimedia recibe las URL de imágenes, videos y PDF como null, y una clave sin permiso de escritura en sesiones recibe los enlaces y tokens de sesión como null. Consulta https://docs.didit.me/console/api-keys.","scopes":[],"schemeName":"ApiKeyAuth"},"schema":{"title":"x-api-key","type":"string","description":"La clave de API de tu aplicación, que encontrarás en Developers -> API keys en la Business Console. La clave principal tiene acceso completo. Una clave con nombre puede tener un alcance limitado: ninguno, lectura o escritura por recurso, limitada a algunos flujos o a sesiones aprobadas, a una lista de direcciones IP y a una fecha de caducidad. 401 significa que la clave es incorrecta, se revocó o expiró; 403 significa que no se envió ninguna clave, que la clave no tiene acceso a este recurso o acción, o que la solicitud provino de una dirección fuera de su lista de IP; 404 en una ruta de sesión significa que la sesión está fuera de los flujos o estados de la clave. Una clave sin acceso a contenido multimedia recibe las URL de imágenes, videos y PDF como null, y una clave sin permiso de escritura en sesiones recibe los enlaces y tokens de sesión como null. Consulta https://docs.didit.me/console/api-keys.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"ApiKeyAuth","name":"x-api-key"}],"title":"ApiKeyAuth"}]},"originalFileLocation":"es/openapi-25.json"},"subdomain":"didit-0f962782","siteName":"Didit Docs","title":"API de Document AI: extracción personalizada de datos - Didit Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/standalone-apis/document-ai","matchLevel":1},"es":{"href":"/es/standalone-apis/document-ai","matchLevel":0},"pt-BR":{"href":"/pt-br/standalone-apis/document-ai","matchLevel":1},"ja":{"href":"/ja/standalone-apis/document-ai","matchLevel":1}}},"lastModified":"2026-11-01T10:59:47.269Z","gitLastModified":"2026-11-01T10:56:28.000Z","originalFileLocation":"es/standalone-apis/document-ai.mdx","locale":"es"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"POST /v3/document-ai/ de Didit extrae campos que definas de PDF o imágenes, con cotejo de nombres y detección de manipulación. $0.20 por documento.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Didit Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/didit-0f962782/h7Er2opLBVoQwrdf/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/didit-0f962782/h7Er2opLBVoQwrdf/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/didit-0f962782/h7Er2opLBVoQwrdf/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/didit-0f962782/h7Er2opLBVoQwrdf/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/didit-0f962782/h7Er2opLBVoQwrdf/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/didit-0f962782/h7Er2opLBVoQwrdf/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/didit-0f962782/h7Er2opLBVoQwrdf/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/didit-0f962782/h7Er2opLBVoQwrdf/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/didit-0f962782/h7Er2opLBVoQwrdf/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"API de Document AI: extracción personalizada de datos - Didit Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"POST /v3/document-ai/ de Didit extrae campos que definas de PDF o imágenes, con cotejo de nombres y detección de manipulación. $0.20 por documento.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Didit Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.didit.me/es/standalone-apis/document-ai\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://didit-0f962782.mintlify.app/_mintlify/api/og/v2?division=Document+AI\u0026amp;title=API+de+Document+AI%3A+extracci%C3%B3n+personalizada+de+datos\u0026amp;description=POST+%2Fv3%2Fdocument-ai%2F+de+Didit+extrae+campos+que+definas+de+PDF+o+im%C3%A1genes%2C+con+cotejo+de+nombres+y+detecci%C3%B3n+de+manipulaci%C3%B3n.+%240.20+por+documento.\u0026amp;theme=f6d5c5eb819d99f700ee852a\u0026amp;signature=160152eb539b5eb8652d669e7f85316a9eb8d41919cdd35fa4bc5c5e1a23fd5a\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"API de Document AI: extracción personalizada de datos - Didit Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"POST /v3/document-ai/ de Didit extrae campos que definas de PDF o imágenes, con cotejo de nombres y detección de manipulación. $0.20 por documento.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://didit-0f962782.mintlify.app/_mintlify/api/og/v2?division=Document+AI\u0026amp;title=API+de+Document+AI%3A+extracci%C3%B3n+personalizada+de+datos\u0026amp;description=POST+%2Fv3%2Fdocument-ai%2F+de+Didit+extrae+campos+que+definas+de+PDF+o+im%C3%A1genes%2C+con+cotejo+de+nombres+y+detecci%C3%B3n+de+manipulaci%C3%B3n.+%240.20+por+documento.\u0026amp;theme=f6d5c5eb819d99f700ee852a\u0026amp;signature=160152eb539b5eb8652d669e7f85316a9eb8d41919cdd35fa4bc5c5e1a23fd5a\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/didit-0f962782/h7Er2opLBVoQwrdf/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Didit Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#2567FF\">\u003cmeta data-mint-head name=\"theme-color\" content=\"#2567FF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.didit.me/es/standalone-apis/document-ai\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/es/standalone-apis/document-ai.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"es\" href=\"https://docs.didit.me/es/standalone-apis/document-ai\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://docs.didit.me/standalone-apis/document-ai\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"pt-BR\" href=\"https://docs.didit.me/pt-br/standalone-apis/document-ai\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ja\" href=\"https://docs.didit.me/ja/standalone-apis/document-ai\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://docs.didit.me/standalone-apis/document-ai\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://didit.me/#organization\",\"name\":\"Didit\",\"legalName\":\"Didit Protocol\",\"url\":\"https://didit.me\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://didit.me/logos/primary-horizontal-light.png\"},\"sameAs\":[\"https://www.linkedin.com/company/91001155\",\"https://www.youtube.com/@getdidit\",\"https://github.com/didit-protocol\",\"https://x.com/didit\"]},{\"@type\":\"WebSite\",\"@id\":\"https://docs.didit.me#website\",\"name\":\"Didit Docs\",\"url\":\"https://docs.didit.me\",\"publisher\":{\"@id\":\"https://didit.me/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.didit.me/es/standalone-apis/document-ai#webpage\",\"url\":\"https://docs.didit.me/es/standalone-apis/document-ai\",\"name\":\"API de Document AI: extracción personalizada de datos\",\"description\":\"POST /v3/document-ai/ de Didit extrae campos que definas de PDF o imágenes, con cotejo de nombres y detección de manipulación. $0.20 por documento.\",\"dateModified\":\"2026-11-01T10:56:28.000Z\",\"isPartOf\":{\"@id\":\"https://docs.didit.me#website\"},\"breadcrumb\":{\"@id\":\"https://docs.didit.me/es/standalone-apis/document-ai#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.didit.me/es/standalone-apis/document-ai#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Didit Docs\",\"item\":\"https://docs.didit.me\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"API de Document AI: extracción personalizada de datos\",\"item\":\"https://docs.didit.me/es/standalone-apis/document-ai\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.didit.me/es/standalone-apis/document-ai#apireference\",\"headline\":\"API de Document AI: extracción personalizada de datos\",\"name\":\"API de Document AI: extracción personalizada de datos\",\"description\":\"POST /v3/document-ai/ de Didit extrae campos que definas de PDF o imágenes, con cotejo de nombres y detección de manipulación. $0.20 por documento.\",\"url\":\"https://docs.didit.me/es/standalone-apis/document-ai\",\"mainEntityOfPage\":{\"@id\":\"https://docs.didit.me/es/standalone-apis/document-ai#webpage\"},\"dateModified\":\"2026-11-01T10:56:28.000Z\",\"keywords\":\"API de Document AI, API de extracción de datos de documentos, API de OCR de documentos personalizada, API de prueba de fondos, API de extracción de nóminas, OCR de extractos bancarios, extracción de documentos KYC, detección de manipulación de documentos, API de Didit\",\"publisher\":{\"@id\":\"https://didit.me/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.didit.me#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Didit Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Didit Docs","nav":{"global":null,"languages":[{"language":"en","pages":[{"title":"en","href":"/standalone-apis/document-ai"}]},{"language":"es","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"Soporte"},{"icon":"signal","href":"https://status.didit.me","label":"Estado"}],"primary":{"type":"button","label":"Iniciar sesión","href":"https://business.didit.me"}},"tabs":[{"tab":"Primeros pasos","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/rocket.svg","pages":[{"title":"Primeros pasos","href":"/es"}]},{"tab":"Integración / SDKs","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/code.svg","pages":[{"title":"Integración / SDKs","href":"/es/integration/sdks"}]},{"tab":"Referencia de la API","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/code.svg","groups":[{"group":"Visión general","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/overview.svg","pages":[{"title":"Referencia de la API de Didit: verificación de identidad","sidebarTitle":"Referencia de la API","href":"/es/api-reference/overview"},{"title":"API de healthcheck: sonda pública de disponibilidad","sidebarTitle":"Healthcheck","openapi":"es/openapi-healthcheck.json GET /system/healthcheck","href":"/es/api-reference/healthcheck"},{"title":"API de estado del servicio: feed público de Didit","sidebarTitle":"Estado del servicio","openapi":"es/openapi-25.json GET /v3/status/","href":"/es/api-reference/service-status"},{"title":"API de precios de verificación bancaria: feed público","sidebarTitle":"Precios de verificación bancaria","openapi":"es/openapi-25.json GET /v3/organization/bank-verification-pricing/","href":"/es/api-reference/bank-verification-pricing"}]},{"group":"Verificaciones de usuarios y empresas","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/user-verifications.svg","pages":[{"title":"API de sesiones: verificación KYC y KYB unificada","sidebarTitle":"Descripción general","href":"/es/sessions-api/overview"},{"title":"API para crear sesión: inicia una verificación KYC o KYB","sidebarTitle":"Crear sesión","openapi":"es/openapi-25.json POST /v3/session/","href":"/es/sessions-api/create-session"},{"title":"Importar verificaciones y datos desde otro proveedor","openapi":"es/openapi-25.json POST /v3/session/imports/","href":"/es/sessions-api/import-verifications"},{"title":"API para obtener una sesión: datos de decisión KYC y KYB","sidebarTitle":"Obtener sesión","openapi":"es/openapi-25.json GET /v3/session/{sessionId}/decision/","href":"/es/sessions-api/retrieve-session"},{"title":"API para listar sesiones: filtrar sesiones KYC y KYB","sidebarTitle":"Listar sesiones","openapi":"es/openapi-25.json GET /v3/sessions/","href":"/es/sessions-api/list-sessions"},{"title":"API para actualizar estado de sesión: aprobar y rechazar","sidebarTitle":"Actualizar estado de sesión","openapi":"es/openapi-25.json PATCH /v3/session/{sessionId}/update-status/","href":"/es/sessions-api/update-status"},{"title":"Vista previa del correo de reenvío de verificación","openapi":"es/openapi-25.json POST /v3/session/{sessionId}/resubmission-preview/","href":"/es/sessions-api/preview-resubmission"},{"title":"Vista previa del email de decisión: aprobado y rechazado","sidebarTitle":"Previsualizar email de decisión","openapi":"es/openapi-25.json POST /v3/session/{sessionId}/decision-email-preview/","href":"/es/sessions-api/preview-decision-email"},{"title":"Actualizar estado de función: aprobar o rechazar un paso","sidebarTitle":"Actualizar estado de función","openapi":"es/openapi-25.json PATCH /v3/session/{sessionId}/features/{nodeId}/update-status/","href":"/es/sessions-api/update-feature-status"},{"title":"API de anulaciones de funciones: historial de pasos","sidebarTitle":"Listar anulaciones de funciones","openapi":"es/openapi-25.json GET /v3/session/{sessionId}/features/overrides/","href":"/es/sessions-api/list-feature-overrides"},{"title":"API para cancelar anulación de función pendiente","sidebarTitle":"Cancelar anulación de función","openapi":"es/openapi-25.json POST /v3/session/{sessionId}/features/overrides/{overrideId}/cancel/","href":"/es/sessions-api/cancel-feature-override"},{"title":"API para actualizar estado de coincidencias AML","sidebarTitle":"Actualizar estado de coincidencia AML","openapi":"es/openapi-25.json PATCH /v3/session/{sessionId}/update-aml-hit-status/","href":"/es/sessions-api/update-aml-hit-status"},{"title":"API para actualizar datos de sesión: corrige KYC y KYB","sidebarTitle":"Actualizar datos de sesión","href":"/es/sessions-api/update-data"},{"title":"API para actualizar el estado del control AML","sidebarTitle":"Actualizar estado AML","openapi":"es/openapi-25.json PATCH /v3/session/{sessionId}/update-aml-status/","href":"/es/sessions-api/update-aml-status"},{"title":"API para actualizar datos de Document AI","sidebarTitle":"Actualizar datos de Document AI","openapi":"es/openapi-25.json PATCH /v3/document-ai/{sessionId}/documents/{documentUuid}/","href":"/es/sessions-api/update-document-ai-data"},{"title":"Regenerar sesión KYC de personas clave: API","sidebarTitle":"Regenerar sesión KYC de personas clave","openapi":"es/openapi-25.json POST /v3/session/{sessionId}/kyb/parties/{partyUuid}/regenerate/","href":"/es/sessions-api/regenerate-kyb-party"},{"title":"API para subir documentos KYB","sidebarTitle":"Subir documentos KYB","openapi":"es/openapi-25.json POST /v3/session/{sessionId}/kyb/documents/","href":"/es/sessions-api/kyb-upload-documents"},{"title":"API para listar partes extraídas de KYB","sidebarTitle":"Listar partes extraídas de KYB","openapi":"es/openapi-25.json GET /v3/session/{sessionId}/kyb/extracted-parties/","href":"/es/sessions-api/kyb-extracted-parties"},{"title":"API para listar borradores de personas clave KYB","sidebarTitle":"Listar borradores KYB","openapi":"es/openapi-25.json GET /v3/session/{sessionId}/kyb/parties/drafts/","href":"/es/sessions-api/kyb-list-party-drafts"},{"title":"Crear borrador de parte KYB con la API","sidebarTitle":"Crear borrador de parte KYB","openapi":"es/openapi-25.json POST /v3/session/{sessionId}/kyb/parties/drafts/","href":"/es/sessions-api/kyb-create-party-draft"},{"title":"Editar borrador de parte KYB: API","sidebarTitle":"Editar borrador de parte KYB","openapi":"es/openapi-25.json PATCH /v3/session/{sessionId}/kyb/parties/drafts/{draftId}/","href":"/es/sessions-api/kyb-update-party-draft"},{"title":"API para eliminar un borrador de parte KYB","sidebarTitle":"Eliminar borrador de parte KYB","openapi":"es/openapi-25.json DELETE /v3/session/{sessionId}/kyb/parties/drafts/{draftId}/","href":"/es/sessions-api/kyb-delete-party-draft"},{"title":"API para enviar personas clave de KYB","sidebarTitle":"Enviar personas clave de KYB","openapi":"es/openapi-25.json POST /v3/session/{sessionId}/kyb/parties/submit/","href":"/es/sessions-api/kyb-submit-parties"},{"title":"Añadir imágenes a una sesión con la API","sidebarTitle":"Añadir imágenes a una sesión","openapi":"es/openapi-25.json PATCH /v3/session/{sessionId}/add-images/","href":"/es/sessions-api/add-images"},{"title":"API para eliminar sesiones: derecho al olvido del RGPD","sidebarTitle":"Eliminar sesión","openapi":"es/openapi-25.json DELETE /v3/session/{sessionId}/delete/","href":"/es/sessions-api/delete-session"},{"title":"API para generar PDF: informes de cumplimiento KYC y KYB","sidebarTitle":"Generar PDF","openapi":"es/openapi-25.json GET /v3/session/{sessionId}/generate-pdf/","href":"/es/sessions-api/generate-pdf"},{"title":"API para exportar archivos de sesión: todo en un ZIP","sidebarTitle":"Exportar archivos","openapi":"es/openapi-25.json POST /v3/session/{sessionId}/files-export/","href":"/es/sessions-api/export-files"},{"title":"API de exportación de archivos de sesión: estado y enlace","sidebarTitle":"Obtener exportación de archivos","openapi":"es/openapi-25.json GET /v3/session/{sessionId}/files-export/{exportId}/","href":"/es/sessions-api/get-files-export"},{"group":"Firmas electrónicas","pages":[{"title":"API para descargar documento firmado: PDF firmado","sidebarTitle":"Descargar un documento firmado","openapi":"es/openapi-25.json GET /v3/session/{sessionId}/signatures/{nodeId}/documents/{documentId}/file/","href":"/es/sessions-api/electronic-signature/download-signed-document"},{"title":"API de evidencias de firma electrónica: PDF de auditoría","sidebarTitle":"Descargar evidencias de firma","openapi":"es/openapi-25.json GET /v3/session/{sessionId}/signatures/{nodeId}/evidence/","href":"/es/sessions-api/electronic-signature/download-evidence"},{"title":"API de imagen de firma: firma adoptada en PNG","sidebarTitle":"Descargar una imagen de firma","openapi":"es/openapi-25.json GET /v3/session/{sessionId}/signatures/{nodeId}/fields/{fieldId}/image/","href":"/es/sessions-api/electronic-signature/download-field-image"},{"title":"API de validación de firmas: revalida PDF firmados","sidebarTitle":"Validar firmas","openapi":"es/openapi-25.json POST /v3/session/{sessionId}/signatures/{nodeId}/validate/","href":"/es/sessions-api/electronic-signature/validate-signatures"}]},{"title":"API Share Session: KYC reutilizable entre socios","sidebarTitle":"Resumen","href":"/es/sessions-api/share-session/overview"},{"title":"API Share Session: generar token para compartir","sidebarTitle":"Compartir sesión","openapi":"es/openapi-25.json POST /v3/session/{sessionId}/share/","href":"/es/sessions-api/share-session/share"},{"title":"Importar sesión compartida: KYC y KYB reutilizable","sidebarTitle":"Importar sesión compartida","openapi":"es/openapi-25.json POST /v3/session/import-shared/","href":"/es/sessions-api/share-session/import"}]},{"group":"Listas","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/lists.svg","pages":[{"title":"API de listas: listas de bloqueo y listas de permitidos","sidebarTitle":"Resumen","href":"/es/management-api/lists/overview"},{"title":"API para listar listas: listas de bloqueo y de permitidos","sidebarTitle":"Listar listas","openapi":"es/openapi-25.json GET /v3/lists/","href":"/es/management-api/lists/list"},{"title":"API para crear listas de permitidos y personalizadas","sidebarTitle":"Crear lista","openapi":"es/openapi-25.json POST /v3/lists/","href":"/es/management-api/lists/create"},{"title":"API Get List: consultar una lista de cumplimiento","sidebarTitle":"Obtener lista","openapi":"es/openapi-25.json GET /v3/lists/{list_uuid}/","href":"/es/management-api/lists/get"},{"title":"API para actualizar listas: editar listas de cumplimiento","sidebarTitle":"Actualizar lista","openapi":"es/openapi-25.json PATCH /v3/lists/{list_uuid}/","href":"/es/management-api/lists/update"},{"title":"API para eliminar listas: quitar lista de cumplimiento","sidebarTitle":"Eliminar lista","openapi":"es/openapi-25.json DELETE /v3/lists/{list_uuid}/","href":"/es/management-api/lists/delete"},{"title":"API de entradas de lista: lista de bloqueo y permitidos","sidebarTitle":"Entradas de listas","openapi":"es/openapi-25.json GET /v3/lists/{list_uuid}/entries/","href":"/es/management-api/lists/list-entries"},{"title":"Crear entrada de lista por API: bloqueo y permitidos","sidebarTitle":"Crear entrada de lista","openapi":"es/openapi-25.json POST /v3/lists/{list_uuid}/entries/","href":"/es/management-api/lists/create-entry"},{"title":"API para eliminar entrada de lista: desbloquear elemento","sidebarTitle":"Eliminar entrada de lista","openapi":"es/openapi-25.json DELETE /v3/lists/{list_uuid}/entries/{entry_uuid}/","href":"/es/management-api/lists/delete-entry"},{"title":"API para subir rostros a listas biométricas","sidebarTitle":"Subir rostro","openapi":"es/openapi-25.json POST /v3/lists/{list_uuid}/entries/face-upload/","href":"/es/management-api/lists/upload-face"}]},{"group":"Lista de bloqueo","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/lists.svg","pages":[{"title":"API para listar elementos de la lista de bloqueo","sidebarTitle":"Listar elementos bloqueados","openapi":"es/openapi-25.json GET /v3/blocklist/","href":"/es/management-api/blocklist/list"},{"title":"API para añadir a la lista de bloqueo en Didit","sidebarTitle":"Añadir a la lista de bloqueo","openapi":"es/openapi-25.json POST /v3/blocklist/add/","href":"/es/management-api/blocklist/add"},{"title":"API para eliminar de la lista de bloqueo: desbloquear","sidebarTitle":"Eliminar de la lista de bloqueo","openapi":"es/openapi-25.json POST /v3/blocklist/remove/","href":"/es/management-api/blocklist/remove"}]},{"group":"Flujos de trabajo","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/workflows.svg","pages":[{"title":"API para listar flujos de trabajo de verificación","sidebarTitle":"Listar flujos de trabajo","openapi":"es/openapi-25.json GET /v3/workflows/","href":"/es/management-api/workflows/list"},{"title":"API para crear workflows: construye tu flujo KYC","sidebarTitle":"Crear workflow","openapi":"es/openapi-25.json POST /v3/workflows/","href":"/es/management-api/workflows/create"},{"title":"Referencia de la API de configuración de funciones","sidebarTitle":"Configuración de funciones","href":"/es/management-api/workflows/feature-configs"},{"title":"API para obtener un workflow: consultar flujo KYC","sidebarTitle":"Obtener flujo de trabajo","openapi":"es/openapi-25.json GET /v3/workflows/{settings_uuid}/","href":"/es/management-api/workflows/get"},{"title":"Actualizar flujo de trabajo por API: editar flujo KYC","sidebarTitle":"Actualizar flujo","openapi":"es/openapi-25.json PATCH /v3/workflows/{settings_uuid}/","href":"/es/management-api/workflows/update"},{"title":"API para eliminar workflows: borrar un flujo KYC","sidebarTitle":"Eliminar workflow","openapi":"es/openapi-25.json DELETE /v3/workflows/{settings_uuid}/","href":"/es/management-api/workflows/delete"}]},{"group":"Cuestionarios","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/task-square.svg","pages":[{"title":"API para listar cuestionarios: formularios KYC","sidebarTitle":"Listar cuestionarios","openapi":"es/openapi-25.json GET /v3/questionnaires/","href":"/es/management-api/questionnaires/list"},{"title":"API para crear cuestionarios KYC personalizados","sidebarTitle":"Crear cuestionario","openapi":"es/openapi-25.json POST /v3/questionnaires/","href":"/es/management-api/questionnaires/create"},{"title":"Obtener un cuestionario con la API: formulario KYC","sidebarTitle":"Obtener cuestionario","openapi":"es/openapi-25.json GET /v3/questionnaires/{questionnaire_uuid}/","href":"/es/management-api/questionnaires/get"},{"title":"API para actualizar cuestionarios: editar formulario KYC","sidebarTitle":"Actualizar cuestionario","openapi":"es/openapi-25.json PATCH /v3/questionnaires/{questionnaire_uuid}/","href":"/es/management-api/questionnaires/update"},{"title":"Eliminar cuestionario por API: borrar formulario KYC","sidebarTitle":"Eliminar cuestionario","openapi":"es/openapi-25.json DELETE /v3/questionnaires/{questionnaire_uuid}/","href":"/es/management-api/questionnaires/delete"}]},{"group":"Usuarios","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/users.svg","pages":[{"title":"API para listar usuarios: entidades User del proveedor","sidebarTitle":"Listar usuarios","openapi":"es/openapi-25.json GET /v3/users/","href":"/es/management-api/users/list"},{"title":"API para crear usuario: entidad de usuario del proveedor","sidebarTitle":"Crear usuario","openapi":"es/openapi-25.json POST /v3/users/create/","href":"/es/management-api/users/create"},{"title":"API para subir rostro de usuario: perfil de usuario","sidebarTitle":"Subir rostro de usuario","openapi":"es/openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/vendor-users/by-id/{didit_internal_id}/faces/upload/","href":"/es/management-api/users/upload-face"},{"title":"API Obtener usuario: entidad de usuario del proveedor","sidebarTitle":"Obtener usuario","openapi":"es/openapi-25.json GET /v3/users/{vendor_data}/","href":"/es/management-api/users/get"},{"title":"API de PDF del historial de usuario: todas sus sesiones","sidebarTitle":"PDF del historial de usuario","openapi":"es/openapi-25.json GET /v3/users/{vendor_data}/generate-pdf/","href":"/es/management-api/users/generate-pdf"},{"title":"API para actualizar usuario: entidad de proveedor","sidebarTitle":"Actualizar usuario","openapi":"es/openapi-25.json PATCH /v3/users/{vendor_data}/","href":"/es/management-api/users/update"},{"title":"API para actualizar estado del usuario: bloquear o marcar","sidebarTitle":"Actualizar estado del usuario","openapi":"es/openapi-25.json PATCH /v3/users/{vendor_data}/update-status/","href":"/es/management-api/users/update-status"},{"title":"API para eliminar usuarios en lote: borrado RGPD","sidebarTitle":"Eliminar usuarios en lote","openapi":"es/openapi-25.json POST /v3/users/delete/","href":"/es/management-api/users/delete"}]},{"group":"Plantillas biométricas","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/liveness.svg","pages":[{"title":"API de plantillas biométricas de Didit","sidebarTitle":"Resumen","href":"/es/management-api/biometric-templates/overview"},{"title":"API para listar plantillas biométricas","sidebarTitle":"Listar plantillas","openapi":"es/openapi-25.json GET /v3/biometric-templates/","href":"/es/management-api/biometric-templates/list"},{"title":"API para contar plantillas biométricas","sidebarTitle":"Contar plantillas","openapi":"es/openapi-25.json GET /v3/biometric-templates/count/","href":"/es/management-api/biometric-templates/count"},{"title":"Obtener plantilla biométrica con la API","sidebarTitle":"Obtener plantilla","openapi":"es/openapi-25.json GET /v3/biometric-templates/{template_uuid}/","href":"/es/management-api/biometric-templates/get"},{"title":"Purgar plantilla biométrica: API","sidebarTitle":"Purgar plantilla","openapi":"es/openapi-25.json DELETE /v3/biometric-templates/{template_uuid}/","href":"/es/management-api/biometric-templates/purge"},{"title":"API de eliminación masiva de plantillas biométricas","sidebarTitle":"Eliminación masiva","openapi":"es/openapi-25.json POST /v3/biometric-templates/delete/","href":"/es/management-api/biometric-templates/batch-purge"}]},{"group":"Empresas","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/businesses.svg","pages":[{"title":"API para listar empresas: entidades KYB de proveedores","sidebarTitle":"Listar empresas","openapi":"es/openapi-25.json GET /v3/businesses/","href":"/es/management-api/businesses/list"},{"title":"API para crear empresas: entidad KYB de proveedor","sidebarTitle":"Crear empresa","openapi":"es/openapi-25.json POST /v3/businesses/create/","href":"/es/management-api/businesses/create"},{"title":"API para obtener empresa: entidad KYB por vendor_data","sidebarTitle":"Obtener empresa","openapi":"es/openapi-25.json GET /v3/businesses/{vendor_data}/","href":"/es/management-api/businesses/get"},{"title":"API de informe PDF de sesión KYB de empresa","sidebarTitle":"Generar PDF de sesión de empresa","openapi":"es/openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/businesses/{business_session_id}/pdf/","href":"/es/management-api/businesses/generate-session-pdf"},{"title":"API para actualizar empresas: entidad KYB de proveedor","sidebarTitle":"Actualizar empresa","openapi":"es/openapi-25.json PATCH /v3/businesses/{vendor_data}/","href":"/es/management-api/businesses/update"},{"title":"API para actualizar estado de empresa: bloquear o marcar","sidebarTitle":"Actualizar estado de empresa","openapi":"es/openapi-25.json PATCH /v3/businesses/{vendor_data}/update-status/","href":"/es/management-api/businesses/update-status"},{"title":"API para eliminar empresas en lote: borrado de KYB","sidebarTitle":"Eliminar empresas en lote","openapi":"es/openapi-25.json POST /v3/businesses/delete/","href":"/es/management-api/businesses/delete"}]},{"group":"Monitorización continua AML","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/aml-screening.svg","pages":[{"title":"API para activar monitorización AML de usuarios","sidebarTitle":"Activar para usuarios","openapi":"es/openapi-25.json POST /v3/users/aml-monitoring/","href":"/es/management-api/aml-monitoring/toggle-users"},{"title":"Monitorización AML de empresas: activar o desactivar","sidebarTitle":"Activar para empresas","openapi":"es/openapi-25.json POST /v3/businesses/aml-monitoring/","href":"/es/management-api/aml-monitoring/toggle-businesses"},{"title":"API para obtener un trabajo de monitorización AML","sidebarTitle":"Obtener trabajo de monitorización AML","openapi":"es/openapi-25.json GET /v3/aml-monitoring/jobs/{job_id}/","href":"/es/management-api/aml-monitoring/get-job"}]},{"group":"Casos","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/clipboard-check.svg","pages":[{"title":"API para listar casos de cumplimiento","sidebarTitle":"Listar casos","openapi":"es/openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/cases/","href":"/es/management-api/cases/list"},{"title":"API para crear casos de cumplimiento","sidebarTitle":"Crear caso","openapi":"es/openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/cases/","href":"/es/management-api/cases/create"},{"title":"API para obtener un caso","sidebarTitle":"Obtener caso","openapi":"es/openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/","href":"/es/management-api/cases/get"},{"title":"API para actualizar casos","sidebarTitle":"Actualizar caso","openapi":"es/openapi-25.json PATCH /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/","href":"/es/management-api/cases/update"},{"title":"API para eliminar un caso","sidebarTitle":"Eliminar caso","openapi":"es/openapi-25.json DELETE /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/","href":"/es/management-api/cases/delete"},{"title":"API para resolver casos: falso positivo o amenaza válida","sidebarTitle":"Resolver caso","openapi":"es/openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/resolve/","href":"/es/management-api/cases/resolve"},{"title":"API para solicitar información en un caso","sidebarTitle":"Solicitar información (esperando al usuario)","openapi":"es/openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/request-info/","href":"/es/management-api/cases/request-info"},{"title":"API de transferencia de casos","sidebarTitle":"Transferir caso","openapi":"es/openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/transfer/","href":"/es/management-api/cases/transfer"},{"title":"API para imprimir un caso en PDF","sidebarTitle":"Imprimir caso","openapi":"es/openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/print/","href":"/es/management-api/cases/print"},{"title":"API de analíticas de casos","sidebarTitle":"Analíticas de casos","openapi":"es/openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/cases/statistics/","href":"/es/management-api/cases/statistics"},{"title":"API de actualización masiva del estado de casos","sidebarTitle":"Actualizar estado de casos en lote","openapi":"es/openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/cases/bulk/status/","href":"/es/management-api/cases/bulk-status"},{"title":"API para listar notas de casos","sidebarTitle":"Listar notas del caso","openapi":"es/openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/notes/","href":"/es/management-api/cases/list-notes"},{"title":"API para crear notas de casos","sidebarTitle":"Crear nota de caso","openapi":"es/openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/notes/","href":"/es/management-api/cases/create-note"}]},{"group":"Modelos de casos","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/sliders.svg","pages":[{"title":"API para listar modelos de caso","sidebarTitle":"Listar modelos de caso","openapi":"es/openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/cases/blueprints/","href":"/es/management-api/case-blueprints/list"},{"title":"API para crear modelos de caso","sidebarTitle":"Crear modelo de caso","openapi":"es/openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/cases/blueprints/","href":"/es/management-api/case-blueprints/create"},{"title":"Instalar blueprints predefinidos de casos con la API","sidebarTitle":"Instalar blueprints predefinidos","openapi":"es/openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/cases/blueprints/presets/install/","href":"/es/management-api/case-blueprints/install-presets"}]},{"group":"Redes","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/link.svg","pages":[{"title":"API para listar redes de fraude","sidebarTitle":"Listar redes","openapi":"es/openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/networks/","href":"/es/management-api/networks/list"},{"title":"API para obtener una red de fraude","sidebarTitle":"Obtener red","openapi":"es/openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/networks/{network_uuid}/","href":"/es/management-api/networks/get"},{"title":"API para añadir una etiqueta a una red de fraude","sidebarTitle":"Añadir etiqueta a red","openapi":"es/openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/networks/{network_uuid}/tags/add/","href":"/es/management-api/networks/add-tag"},{"title":"API para eliminar una etiqueta de una red de fraude","sidebarTitle":"Eliminar etiqueta de red","openapi":"es/openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/networks/{network_uuid}/tags/remove/","href":"/es/management-api/networks/remove-tag"},{"title":"API de grafo de redes de fraude","sidebarTitle":"Obtener grafo de red","openapi":"es/openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/networks/{network_uuid}/graph/","href":"/es/management-api/networks/graph"},{"title":"Listar miembros de una red de fraude con la API","sidebarTitle":"Listar miembros de red","openapi":"es/openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/networks/{network_uuid}/members/","href":"/es/management-api/networks/members"},{"title":"API para listar señales de redes de fraude","sidebarTitle":"Listar señales de red","openapi":"es/openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/networks/{network_uuid}/signals/","href":"/es/management-api/networks/signals"},{"title":"API de cronología de redes de fraude","sidebarTitle":"Obtener cronología de red","openapi":"es/openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/networks/{network_uuid}/timeline/","href":"/es/management-api/networks/timeline"},{"title":"API de mapa de redes de fraude","sidebarTitle":"Obtener mapa de red","openapi":"es/openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/networks/{network_uuid}/map/","href":"/es/management-api/networks/map"},{"title":"API de consulta de pertenencia a redes de fraude","sidebarTitle":"Consulta de pertenencia","href":"/es/management-api/networks/membership-lookup"}]},{"group":"Plantillas de informes","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/task-square.svg","pages":[{"title":"API para listar plantillas de informes","sidebarTitle":"Listar plantillas de informes","openapi":"es/openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/report-templates/","href":"/es/management-api/report-templates/list"},{"title":"API para crear plantillas de informe goAML","sidebarTitle":"Crear plantilla de informe","openapi":"es/openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/report-templates/","href":"/es/management-api/report-templates/create"}]},{"group":"Informes regulatorios","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/search-file.svg","pages":[{"title":"API para crear un informe a la UIF desde un caso","sidebarTitle":"Crear informe desde caso","openapi":"es/openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/regulatory-reports/","href":"/es/management-api/regulatory-reports/create-for-case"},{"title":"API para listar informes a la UIF","sidebarTitle":"Listar informes","openapi":"es/openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/regulatory-reports/","href":"/es/management-api/regulatory-reports/list"},{"title":"API para validar informes a la UIF","sidebarTitle":"Validar informe","openapi":"es/openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/regulatory-reports/{report_uuid}/validate/","href":"/es/management-api/regulatory-reports/validate"},{"title":"API para finalizar informes a la UIF (goAML)","sidebarTitle":"Finalizar informe","openapi":"es/openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/regulatory-reports/{report_uuid}/finalize/","href":"/es/management-api/regulatory-reports/finalize"},{"title":"Eliminar informe para la UIF con la API","sidebarTitle":"Eliminar informe","openapi":"es/openapi-25.json DELETE /v3/organization/{organization_id}/application/{application_id}/regulatory-reports/{report_uuid}/","href":"/es/management-api/regulatory-reports/delete"},{"title":"API de URL de descarga de informes para la UIF","sidebarTitle":"URL de descarga de informe","openapi":"es/openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/regulatory-reports/{report_uuid}/download-url/","href":"/es/management-api/regulatory-reports/download-url"}]},{"group":"Transacciones","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/transactions.svg","pages":[{"title":"API para listar transacciones: monitorización KYT","sidebarTitle":"Listar transacciones","openapi":"es/openapi-25.json GET /v3/transactions/","href":"/es/management-api/transactions/list"},{"title":"API para crear transacciones: envío a KYT","sidebarTitle":"Crear transacción","openapi":"es/openapi-25.json POST /v3/transactions/","href":"/es/management-api/transactions/create"},{"title":"API para eliminar transacciones en lote","sidebarTitle":"Eliminar transacciones en lote","openapi":"es/openapi-25.json DELETE /v3/organization/{organization_id}/application/{application_id}/transactions/delete/","href":"/es/management-api/transactions/delete"},{"title":"API para obtener una transacción: detalle KYT","sidebarTitle":"Obtener transacción","openapi":"es/openapi-25.json GET /v3/transactions/{transaction_id}/","href":"/es/management-api/transactions/get"},{"title":"API para listar notas de transacciones","sidebarTitle":"Listar notas de transacción","openapi":"es/openapi-25.json GET /v3/transactions/{transaction_id}/notes/","href":"/es/management-api/transactions/list-notes"},{"title":"API para crear notas de transacción","sidebarTitle":"Crear nota de transacción","openapi":"es/openapi-25.json POST /v3/transactions/{transaction_id}/notes/","href":"/es/management-api/transactions/create-note"},{"title":"API para listar transacciones relacionadas","sidebarTitle":"Listar transacciones relacionadas","openapi":"es/openapi-25.json GET /v3/transactions/{transaction_id}/related/","href":"/es/management-api/transactions/list-related"},{"title":"API de informe PDF de transacciones","sidebarTitle":"Generar informe PDF de transacción","openapi":"es/openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/transactions/{transaction_uuid}/pdf/","href":"/es/management-api/transactions/generate-pdf"},{"title":"API de análisis de wallets: AML cripto bajo demanda","sidebarTitle":"Analizar wallet","openapi":"es/openapi-25.json POST /v3/wallet-screening/","href":"/es/management-api/transactions/screen-wallet"},{"title":"API de informe PDF de screening de wallets","sidebarTitle":"PDF de screening de wallet","openapi":"es/openapi-25.json POST /v3/wallet-screening/pdf/","href":"/es/management-api/transactions/screen-wallet-pdf"},{"title":"API de token de transacción SDK: KYT desde el cliente","sidebarTitle":"Generar token de transacción SDK","openapi":"es/openapi-25.json POST /v3/transactions/sdk-token/","href":"/es/management-api/transactions/sdk-token"},{"title":"Enviar transacción desde un SDK: KYT del lado del cliente","sidebarTitle":"Enviar transacción (token SDK)","openapi":"es/openapi-25.json POST /v1/transactions/","href":"/es/management-api/transactions/submit-sdk"},{"title":"Obtener transacción desde un SDK: KYT en el cliente","sidebarTitle":"Obtener transacción (token SDK)","openapi":"es/openapi-25.json GET /v1/transactions/{transaction_id}/","href":"/es/management-api/transactions/get-sdk"},{"title":"API para listar reglas de monitorización de transacciones","sidebarTitle":"Listar reglas","openapi":"es/openapi-25.json GET /v3/transactions/rules/","href":"/es/management-api/transactions/rules-list"},{"title":"Crear regla de monitorización de transacciones (KYT)","sidebarTitle":"Crear regla","openapi":"es/openapi-25.json POST /v3/transactions/rules/","href":"/es/management-api/transactions/rules-create"},{"title":"Obtener regla de monitorización de transacciones (API)","sidebarTitle":"Obtener regla","openapi":"es/openapi-25.json GET /v3/transactions/rules/{rule_uuid}/","href":"/es/management-api/transactions/rules-get"},{"title":"Actualizar regla de monitorización de transacciones API","sidebarTitle":"Actualizar regla","openapi":"es/openapi-25.json PATCH /v3/transactions/rules/{rule_uuid}/","href":"/es/management-api/transactions/rules-update"},{"title":"Eliminar regla de monitorización de transacciones (API)","sidebarTitle":"Eliminar regla","openapi":"es/openapi-25.json DELETE /v3/transactions/rules/{rule_uuid}/","href":"/es/management-api/transactions/rules-delete"},{"title":"Backtest de reglas de monitorización de transacciones API","sidebarTitle":"Backtest de reglas","openapi":"es/openapi-25.json POST /v3/transactions/rules/backtest/","href":"/es/management-api/transactions/rules-backtest"},{"title":"API de reglas de monitorización de transacciones: 150+","sidebarTitle":"Listar biblioteca de reglas","openapi":"es/openapi-25.json GET /v3/transactions/rules/library/","href":"/es/management-api/transactions/rules-library"},{"title":"Instalar reglas de monitorización de transacciones (API)","sidebarTitle":"Instalar reglas de la biblioteca","openapi":"es/openapi-25.json POST /v3/transactions/rules/install/","href":"/es/management-api/transactions/rules-install"},{"title":"Desinstalar reglas predefinidas de transacciones (API)","sidebarTitle":"Desinstalar reglas de biblioteca","openapi":"es/openapi-25.json DELETE /v3/transactions/rules/install/","href":"/es/management-api/transactions/rules-uninstall"}]},{"group":"Eventos de monitorización","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/transactions.svg","pages":[{"title":"Listar eventos de monitorización: API","sidebarTitle":"Listar eventos","openapi":"es/openapi-25.json GET /v3/events/","href":"/es/management-api/monitoring-events/list"},{"title":"API para crear eventos de monitorización","sidebarTitle":"Crear evento de monitorización","openapi":"es/openapi-25.json POST /v3/events/","href":"/es/management-api/monitoring-events/create"},{"title":"API de eventos de monitorización por lotes","sidebarTitle":"Crear eventos en lote","openapi":"es/openapi-25.json POST /v3/events/batch/","href":"/es/management-api/monitoring-events/create-batch"},{"title":"Token del SDK de monitorización: API para generarlo","sidebarTitle":"Token del SDK de monitorización","openapi":"es/openapi-25.json POST /v3/events/sdk-token/","href":"/es/management-api/monitoring-events/sdk-token"},{"title":"Obtener evento de monitorización con la API de Didit","sidebarTitle":"Obtener evento de monitorización","openapi":"es/openapi-25.json GET /v3/events/{event_uuid}/","href":"/es/management-api/monitoring-events/get"},{"title":"API de cronología de eventos de un sujeto","sidebarTitle":"Obtener cronología de eventos","openapi":"es/openapi-25.json GET /v3/events/subjects/{vendor_data}/","href":"/es/management-api/monitoring-events/subject-timeline"},{"title":"API de métricas de enriquecimiento de eventos","sidebarTitle":"Obtener métricas de enriquecimiento","openapi":"es/openapi-25.json GET /v3/events/enrichment-metrics/","href":"/es/management-api/monitoring-events/enrichment-metrics"},{"title":"Eliminar evento de monitorización con la API","sidebarTitle":"Eliminar evento de monitorización","openapi":"es/openapi-25.json DELETE /v3/events/{event_uuid}/delete/","href":"/es/management-api/monitoring-events/delete"}]},{"group":"Travel Rule","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/transactions.svg","pages":[{"title":"API de configuración de Travel Rule: perfil de VASP","sidebarTitle":"Obtener configuración de Travel Rule","openapi":"es/openapi-25.json GET /v3/travel-rule/settings/","href":"/es/management-api/travel-rule/get-settings"},{"title":"API para actualizar la configuración de Travel Rule","sidebarTitle":"Actualizar configuración de Travel Rule","openapi":"es/openapi-25.json PUT /v3/travel-rule/settings/","href":"/es/management-api/travel-rule/update-settings"},{"title":"API de redes de Travel Rule: obtener redes","sidebarTitle":"Obtener redes de Travel Rule","openapi":"es/openapi-25.json GET /v3/travel-rule/networks/","href":"/es/management-api/travel-rule/get-networks"},{"title":"API para obtener el cuestionario de la red Travel Rule","sidebarTitle":"Obtener cuestionario de red","openapi":"es/openapi-25.json GET /v3/travel-rule/networks/questionnaire/","href":"/es/management-api/travel-rule/get-network-questionnaire"},{"title":"API para guardar el cuestionario de la red Travel Rule","sidebarTitle":"Guardar respuestas del cuestionario","openapi":"es/openapi-25.json PUT /v3/travel-rule/networks/questionnaire/","href":"/es/management-api/travel-rule/update-network-questionnaire"},{"title":"API para enviar el cuestionario de red de Travel Rule","sidebarTitle":"Enviar cuestionario de red","openapi":"es/openapi-25.json POST /v3/travel-rule/networks/questionnaire/submit/","href":"/es/management-api/travel-rule/submit-network-questionnaire"},{"title":"API para solicitar acceso a una red de Travel Rule","sidebarTitle":"Solicitar red de Travel Rule","openapi":"es/openapi-25.json POST /v3/travel-rule/networks/{network}/request/","href":"/es/management-api/travel-rule/request-network"},{"title":"API para confirmar correo de cumplimiento de Travel Rule","sidebarTitle":"Enviar confirmación de correo de cumplimiento","openapi":"es/openapi-25.json POST /v3/travel-rule/settings/compliance-email/confirmation/","href":"/es/management-api/travel-rule/send-compliance-email-confirmation"},{"title":"API para listar transferencias de Travel Rule","sidebarTitle":"Listar transferencias de Travel Rule","openapi":"es/openapi-25.json GET /v3/travel-rule/transfers/","href":"/es/management-api/travel-rule/list-transfers"},{"title":"Listar depósitos de Travel Rule sin emparejar: API","sidebarTitle":"Depósitos sin emparejar","openapi":"es/openapi-25.json GET /v3/travel-rule/unmatched/","href":"/es/management-api/travel-rule/list-unmatched-deposits"},{"title":"Asociar depósito Travel Rule por API: vincular un mensaje","sidebarTitle":"Asociar depósito pendiente","openapi":"es/openapi-25.json POST /v3/travel-rule/unmatched/{transaction_uuid}/match/","href":"/es/management-api/travel-rule/match-unmatched-deposit"},{"title":"API Travel Rule: finalizar, reenviar, actualizar","sidebarTitle":"Finalizar, cancelar, reenviar o actualizar","openapi":"es/openapi-25.json PATCH /v3/transactions/{transaction_id}/travel-rule/","href":"/es/management-api/travel-rule/update-transfer"},{"title":"API para confirmar propiedad de wallet: Travel Rule","sidebarTitle":"Confirmar o rechazar propiedad","openapi":"es/openapi-25.json POST /v3/transactions/{transaction_id}/travel-rule/ownership/","href":"/es/management-api/travel-rule/confirm-ownership"},{"title":"API para listar mensajes de Travel Rule","sidebarTitle":"Listar mensajes de Travel Rule","openapi":"es/openapi-25.json GET /v3/transactions/{transaction_id}/travel-rule/messages/","href":"/es/management-api/travel-rule/list-messages"},{"title":"API para enviar mensajes de Travel Rule","sidebarTitle":"Enviar un mensaje de Travel Rule","openapi":"es/openapi-25.json POST /v3/transactions/{transaction_id}/travel-rule/messages/","href":"/es/management-api/travel-rule/create-message"},{"title":"API para registrar transferencia entrante Sunrise","sidebarTitle":"Registrar transferencia entrante (Sunrise)","openapi":"es/openapi-25.json POST /v3/travel-rule/inbound/","href":"/es/management-api/travel-rule/register-inbound"},{"title":"API para activar transferencia entrante de Test VASP","sidebarTitle":"Disparar transferencia entrante de prueba","openapi":"es/openapi-25.json POST /v3/travel-rule/test-vasp/inbound/","href":"/es/management-api/travel-rule/trigger-test-vasp-inbound"},{"title":"API de búsqueda en el directorio de VASP: Travel Rule","sidebarTitle":"Buscar en el directorio de VASP","openapi":"es/openapi-25.json GET /v3/travel-rule/vasps/","href":"/es/management-api/travel-rule/search-vasps"},{"title":"Obtener entrada del directorio de VASP: API Travel Rule","sidebarTitle":"Obtener una entrada de VASP","openapi":"es/openapi-25.json GET /v3/travel-rule/vasps/{vasp_id}/","href":"/es/management-api/travel-rule/get-vasp"},{"title":"Obtener decisión de VASP contraparte API: Travel Rule","sidebarTitle":"Obtener tu decisión sobre un VASP","openapi":"es/openapi-25.json GET /v3/travel-rule/vasps/{vasp_id}/decision/","href":"/es/management-api/travel-rule/get-vasp-decision"},{"title":"API de decisión de VASP contraparte: Travel Rule","sidebarTitle":"Definir tu decisión sobre un VASP","openapi":"es/openapi-25.json PUT /v3/travel-rule/vasps/{vasp_id}/decision/","href":"/es/management-api/travel-rule/set-vasp-decision"},{"title":"Eliminar decisión de VASP contraparte (API): Travel Rule","sidebarTitle":"Eliminar tu decisión sobre un VASP","openapi":"es/openapi-25.json DELETE /v3/travel-rule/vasps/{vasp_id}/decision/","href":"/es/management-api/travel-rule/clear-vasp-decision"},{"title":"Obtener screening de VASP contraparte API: Travel Rule","sidebarTitle":"Obtener screening de un VASP","openapi":"es/openapi-25.json GET /v3/travel-rule/vasps/{vasp_id}/screening/","href":"/es/management-api/travel-rule/get-vasp-screening"},{"title":"Verificar una VASP contraparte con la API: sanciones","sidebarTitle":"Verificar una VASP contraparte","openapi":"es/openapi-25.json POST /v3/travel-rule/vasps/{vasp_id}/screening/","href":"/es/management-api/travel-rule/screen-vasp"},{"title":"Listar cuestionarios de diligencia debida de VASP (API)","sidebarTitle":"Listar cuestionarios de diligencia debida","openapi":"es/openapi-25.json GET /v3/travel-rule/vasps/{vasp_id}/questionnaires/","href":"/es/management-api/travel-rule/list-vasp-questionnaires"},{"title":"API para enviar cuestionario de diligencia debida a VASP","sidebarTitle":"Enviar cuestionario a un VASP","openapi":"es/openapi-25.json POST /v3/travel-rule/vasps/{vasp_id}/questionnaires/","href":"/es/management-api/travel-rule/send-vasp-questionnaire"},{"title":"Listar contactos de contraparte: Travel Rule por email","sidebarTitle":"Listar contactos de contrapartes","openapi":"es/openapi-25.json GET /v3/travel-rule/counterparty-contacts/","href":"/es/management-api/travel-rule/list-counterparty-contacts"},{"title":"API para añadir contacto de contraparte en Travel Rule","sidebarTitle":"Añadir contacto de contraparte","openapi":"es/openapi-25.json POST /v3/travel-rule/counterparty-contacts/","href":"/es/management-api/travel-rule/create-counterparty-contact"},{"title":"Eliminar contacto de contraparte con API - Travel Rule","sidebarTitle":"Eliminar contacto de contraparte","openapi":"es/openapi-25.json DELETE /v3/travel-rule/counterparty-contacts/{contact_uuid}/","href":"/es/management-api/travel-rule/delete-counterparty-contact"},{"title":"Listar direcciones de wallet API: libreta Travel Rule","sidebarTitle":"Listar direcciones de wallet","openapi":"es/openapi-25.json GET /v3/travel-rule/wallet-addresses/","href":"/es/management-api/travel-rule/list-wallet-addresses"},{"title":"API para registrar direcciones de wallet en Travel Rule","sidebarTitle":"Registrar dirección de wallet","openapi":"es/openapi-25.json POST /v3/travel-rule/wallet-addresses/","href":"/es/management-api/travel-rule/create-wallet-address"},{"title":"API para importar direcciones de wallet: Travel Rule","sidebarTitle":"Importar direcciones de wallet","openapi":"es/openapi-25.json POST /v3/travel-rule/wallet-addresses/import/","href":"/es/management-api/travel-rule/import-wallet-addresses"},{"title":"API para actualizar dirección de wallet: Travel Rule","sidebarTitle":"Actualizar dirección de wallet","openapi":"es/openapi-25.json PATCH /v3/travel-rule/wallet-addresses/{entry_uuid}/","href":"/es/management-api/travel-rule/update-wallet-address"},{"title":"API para eliminar dirección de wallet en Travel Rule","sidebarTitle":"Eliminar dirección de wallet","openapi":"es/openapi-25.json DELETE /v3/travel-rule/wallet-addresses/{entry_uuid}/","href":"/es/management-api/travel-rule/delete-wallet-address"},{"title":"API Travel Rule: listar pruebas de wallet por captura","sidebarTitle":"Listar pruebas de wallet a revisar","openapi":"es/openapi-25.json GET /v3/travel-rule/wallet-proofs/","href":"/es/management-api/travel-rule/list-wallet-proofs"},{"title":"API para aprobar o rechazar prueba de wallet con captura","sidebarTitle":"Decidir prueba de wallet","openapi":"es/openapi-25.json POST /v3/travel-rule/wallet-proofs/{proof_uuid}/decision/","href":"/es/management-api/travel-rule/decide-wallet-proof"},{"title":"API de widget de propiedad de wallet: prueba de control","sidebarTitle":"Crear sesión del widget de wallet","openapi":"es/openapi-25.json POST /v3/travel-rule/widget-session/","href":"/es/management-api/travel-rule/create-widget-session"},{"title":"API de contexto del widget de propiedad de wallet","sidebarTitle":"Obtener contexto del widget","openapi":"es/openapi-25.json GET /v3/travel-rule/widget/{token}/","href":"/es/management-api/travel-rule/get-widget-context"},{"title":"Iniciar prueba de propiedad de wallet - Travel Rule","sidebarTitle":"Iniciar prueba del widget","openapi":"es/openapi-25.json POST /v3/travel-rule/widget/{token}/proofs/","href":"/es/management-api/travel-rule/create-widget-proof"},{"title":"Enviar prueba de propiedad de wallet - API Travel Rule","sidebarTitle":"Enviar prueba del widget","openapi":"es/openapi-25.json POST /v3/travel-rule/widget/{token}/proofs/{proof_id}/verify/","href":"/es/management-api/travel-rule/verify-widget-proof"},{"title":"API de selección de VASP del widget: Travel Rule","sidebarTitle":"Elegir VASP de contraparte en el widget","openapi":"es/openapi-25.json POST /v3/travel-rule/widget/{token}/vasps/","href":"/es/management-api/travel-rule/select-widget-vasp"},{"title":"API del selector de VASP: directorio Travel Rule","sidebarTitle":"Buscar VASP desde el widget de wallet","openapi":"es/openapi-25.json GET /v3/travel-rule/widget/{token}/vasps/","href":"/es/management-api/travel-rule/search-widget-vasps"},{"title":"API: obtener datos de recogida por email | Travel Rule","sidebarTitle":"Obtener datos de recogida","openapi":"es/openapi-25.json GET /v3/travel-rule/pickup/{token}/","href":"/es/management-api/travel-rule/get-pickup"},{"title":"Responder a recogida por email: API de Travel Rule","sidebarTitle":"Responder a la recogida por email","openapi":"es/openapi-25.json POST /v3/travel-rule/pickup/{token}/respond/","href":"/es/management-api/travel-rule/respond-pickup"},{"title":"Listar mensajes de recogida: Travel Rule por correo","sidebarTitle":"Listar mensajes de recogida","openapi":"es/openapi-25.json GET /v3/travel-rule/pickup/{token}/messages/","href":"/es/management-api/travel-rule/list-pickup-messages"},{"title":"Responder en Pickup Portal (API): correo Travel Rule","sidebarTitle":"Responder en el portal de recogida","openapi":"es/openapi-25.json POST /v3/travel-rule/pickup/{token}/messages/","href":"/es/management-api/travel-rule/create-pickup-message"},{"title":"API Obtener invitación para unirse a Travel Rule gratis","sidebarTitle":"Obtener invitación de adhesión","openapi":"es/openapi-25.json GET /v3/travel-rule/join/{token}/","href":"/es/management-api/travel-rule/get-join-invitation"},{"title":"API para registrar una cuenta gratuita de Travel Rule","sidebarTitle":"Registrar cuenta gratuita de Travel Rule","openapi":"es/openapi-25.json POST /v3/travel-rule/join/{token}/","href":"/es/management-api/travel-rule/register-join"},{"title":"API para verificar una cuenta gratuita de Travel Rule","sidebarTitle":"Verificar cuenta gratuita de Travel Rule","openapi":"es/openapi-25.json POST /v3/travel-rule/join/{token}/verify/","href":"/es/management-api/travel-rule/verify-join"},{"title":"API para obtener espacio de trabajo gratis: Travel Rule","sidebarTitle":"Obtener espacio gratuito","openapi":"es/openapi-25.json GET /v3/travel-rule/workspace/","href":"/es/management-api/travel-rule/get-workspace"},{"title":"API para reclamar entrada del directorio: Travel Rule","sidebarTitle":"Reclamar entrada del directorio","openapi":"es/openapi-25.json POST /v3/travel-rule/workspace/claim/","href":"/es/management-api/travel-rule/claim-workspace"},{"title":"API para enviar código de dominio en Travel Rule","sidebarTitle":"Enviar código de dominio","openapi":"es/openapi-25.json POST /v3/travel-rule/workspace/domain/code/","href":"/es/management-api/travel-rule/send-workspace-domain-code"},{"title":"Confirmar código de dominio API: alta gratis Travel Rule","sidebarTitle":"Confirmar código de dominio","openapi":"es/openapi-25.json POST /v3/travel-rule/workspace/domain/confirm/","href":"/es/management-api/travel-rule/confirm-workspace-domain"},{"title":"Verificar dominio por DNS (API): alta gratis Travel Rule","sidebarTitle":"Verificar dominio por DNS","openapi":"es/openapi-25.json POST /v3/travel-rule/workspace/domain/dns/","href":"/es/management-api/travel-rule/verify-workspace-domain-dns"},{"title":"API para activar facturación saliente de Travel Rule","sidebarTitle":"Activar facturación saliente","openapi":"es/openapi-25.json POST /v3/travel-rule/workspace/billing/","href":"/es/management-api/travel-rule/enable-workspace-billing"}]},{"group":"Operaciones de sesión","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/play.svg","pages":[{"title":"API para eliminar sesiones en lote: limpieza de KYC","sidebarTitle":"Eliminar sesiones en lote","openapi":"es/openapi-25.json POST /v3/sessions/delete/","href":"/es/management-api/sessions/batch-delete"},{"title":"API para consultar un trabajo de eliminación de sesiones","sidebarTitle":"Consultar trabajo de eliminación","openapi":"es/openapi-25.json GET /v3/sessions/delete/{job_id}/","href":"/es/management-api/sessions/get-deletion-job"},{"title":"Listar revisiones de sesión: registro de auditoría KYC","sidebarTitle":"Listar revisiones de sesión","openapi":"es/openapi-25.json GET /v3/sessions/{session_id}/reviews/","href":"/es/management-api/sessions/list-reviews"},{"title":"API para crear revisión de sesión: KYC manual","sidebarTitle":"Crear revisión de sesión","openapi":"es/openapi-25.json POST /v3/sessions/{session_id}/reviews/","href":"/es/management-api/sessions/create-review"},{"title":"API para listar eventos de sesión de verificación","sidebarTitle":"Listar eventos de sesión","openapi":"es/openapi-25.json GET /v3/session/{sessionId}/events/","href":"/es/management-api/sessions/list-events"},{"title":"API para listar entregas de webhooks de una sesión","sidebarTitle":"Listar entregas de webhooks","openapi":"es/openapi-25.json GET /v3/session/{sessionId}/webhooks/","href":"/es/management-api/sessions/list-webhooks"},{"title":"Obtener entrega de webhook de una sesión: API de Didit","sidebarTitle":"Obtener entrega de webhook","openapi":"es/openapi-25.json GET /v3/session/{sessionId}/webhook/{webhook_uuid}","href":"/es/management-api/sessions/get-webhook"},{"title":"API para reenviar la entrega del webhook de sesión","sidebarTitle":"Reenviar webhook de sesión","openapi":"es/openapi-25.json POST /v3/session/{sessionId}/webhook/{webhook_uuid}/resend","href":"/es/management-api/sessions/resend-webhook"},{"title":"Historial de cribado AML: API para listar sesiones","sidebarTitle":"Historial de cribado AML","openapi":"es/openapi-25.json GET /v3/session/{sessionId}/aml-screening-history/","href":"/es/management-api/sessions/aml-screening-history"},{"title":"API para exportar el historial de screening AML en CSV","sidebarTitle":"Exportar historial de screening AML","openapi":"es/openapi-25.json GET /v3/session/{sessionId}/aml-screening-history/export/","href":"/es/management-api/sessions/export-aml-screening-history"}]},{"group":"Personalización","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/sliders.svg","pages":[{"title":"Obtener la personalización de marca con la API","sidebarTitle":"Obtener marca","openapi":"es/openapi-25.json GET /v3/customization/","href":"/es/management-api/customization/get"},{"title":"API para actualizar la personalización de marca","sidebarTitle":"Actualizar marca","openapi":"es/openapi-25.json PATCH /v3/customization/","href":"/es/management-api/customization/update"}]},{"group":"Webhook","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/link.svg","pages":[{"title":"Listar destinos de webhook: API de gestión de Didit","sidebarTitle":"Listar destinos de webhook","openapi":"es/openapi-25.json GET /v3/webhook/destinations/","href":"/es/management-api/webhook/list-destinations"},{"title":"API para crear un destino de webhook","sidebarTitle":"Crear destino de webhook","openapi":"es/openapi-25.json POST /v3/webhook/destinations/","href":"/es/management-api/webhook/create-destination"},{"title":"Obtener un destino de webhook: Management API","sidebarTitle":"Obtener destino de webhook","openapi":"es/openapi-25.json GET /v3/webhook/destinations/{destination_uuid}/","href":"/es/management-api/webhook/get-destination"},{"title":"Actualizar destino de webhook con la API","sidebarTitle":"Actualizar destino de webhook","openapi":"es/openapi-25.json PATCH /v3/webhook/destinations/{destination_uuid}/","href":"/es/management-api/webhook/update-destination"},{"title":"Eliminar destino de webhook: API","sidebarTitle":"Eliminar destino de webhook","openapi":"es/openapi-25.json DELETE /v3/webhook/destinations/{destination_uuid}/","href":"/es/management-api/webhook/delete-destination"},{"title":"Configuración de webhooks: API para consultarla","sidebarTitle":"Obtener configuración de webhooks","openapi":"es/openapi-25.json GET /v3/webhook/","href":"/es/management-api/webhook/get-config"},{"title":"API para actualizar la configuración del webhook","sidebarTitle":"Actualizar configuración del webhook","openapi":"es/openapi-25.json PATCH /v3/webhook/","href":"/es/management-api/webhook/update-config"},{"title":"API de analíticas de destino de webhook","sidebarTitle":"Analíticas de destino de webhook","openapi":"es/openapi-25.json GET /v3/webhook/destinations/{destination_uuid}/analytics/","href":"/es/management-api/webhook/destination-analytics"},{"title":"API de listado de entregas de webhook","sidebarTitle":"Listar entregas de webhook","openapi":"es/openapi-25.json GET /v3/webhook/destinations/{destination_uuid}/deliveries/","href":"/es/management-api/webhook/list-deliveries"},{"title":"API para obtener una entrega de webhook","sidebarTitle":"Obtener entrega de webhook","openapi":"es/openapi-25.json GET /v3/webhook/destinations/{destination_uuid}/deliveries/{delivery_uuid}/","href":"/es/management-api/webhook/get-delivery"},{"title":"API para reenviar entregas de webhook","sidebarTitle":"Reenviar entrega de webhook","openapi":"es/openapi-25.json POST /v3/webhook/destinations/{destination_uuid}/deliveries/{delivery_uuid}/resend/","href":"/es/management-api/webhook/resend-delivery"}]},{"group":"Facturación","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/billing.svg","pages":[{"title":"API para consultar el saldo de créditos: facturación KYC","sidebarTitle":"Consultar saldo de créditos","openapi":"es/openapi-25.json GET /v3/billing/balance/","href":"/es/management-api/billing/balance"},{"title":"API para recargar créditos de Didit","sidebarTitle":"Recargar créditos","openapi":"es/openapi-25.json POST /v3/billing/top-up/","href":"/es/management-api/billing/top-up"}]},{"group":"Analítica","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/overview.svg","pages":[{"title":"API de analítica de aplicaciones","sidebarTitle":"Obtener analítica de la aplicación","openapi":"es/openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/analytics/","href":"/es/management-api/analytics/get"},{"title":"API de verificaciones de hoy por hora","sidebarTitle":"Verificaciones de hoy por hora","openapi":"es/openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/analytics/today/","href":"/es/management-api/analytics/today-by-hour"}]},{"group":"Descripción general de la API de gestión","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/info.svg","pages":[{"title":"API de gestión v3: flujos de trabajo y facturación","sidebarTitle":"API de gestión","href":"/es/sessions-api/management-api"}]},{"group":"API de autenticación (programática)","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/key.svg","pages":[{"title":"API de autenticación: registro programático de cuentas","sidebarTitle":"Registrar cuenta","openapi":"es/openapi-auth.json POST /programmatic/register/","href":"/es/auth-api/register"},{"title":"API de verificación de email: obtén credenciales de Didit","sidebarTitle":"Verificar email","openapi":"es/openapi-auth.json POST /programmatic/verify-email/","href":"/es/auth-api/verify-email"},{"title":"API de login programático: tokens de auth headless","sidebarTitle":"Inicio de sesión","openapi":"es/openapi-auth.json POST /programmatic/login/","href":"/es/auth-api/login"},{"title":"API para obtener credenciales: client_id y api_key","sidebarTitle":"Obtener credenciales","openapi":"es/openapi-auth.json GET /organizations/me/{org_id}/applications/{app_id}/","href":"/es/auth-api/get-credentials"},{"title":"API para crear aplicaciones de forma programática","sidebarTitle":"Crear aplicación","openapi":"es/openapi-auth.json POST /organizations/me/{org_id}/applications/","href":"/es/auth-api/create-application"},{"title":"API para actualizar aplicaciones de clientes","sidebarTitle":"Actualizar aplicación","openapi":"es/openapi-auth.json PATCH /organizations/me/{org_id}/applications/{app_id}/","href":"/es/auth-api/update-application"}]},{"group":"Identidad y documentos","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/id-scan.svg","pages":[{"title":"API de verificación de documentos: OCR y autenticidad","sidebarTitle":"API de verificación de ID","openapi":"es/openapi-25.json POST /v3/id-verification/","href":"/es/standalone-apis/id-verification"},{"title":"API de comprobante de domicilio: verificación POA y OCR","sidebarTitle":"API de comprobante de domicilio","openapi":"es/openapi-25.json POST /v3/poa/","href":"/es/standalone-apis/proof-of-address"},{"title":"API de validación de direcciones: verifica y normaliza","sidebarTitle":"Validación de direcciones","openapi":"es/openapi-25.json POST /v3/address-validation/","href":"/es/standalone-apis/address-validation"}]},{"group":"Wallets de identidad digital","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/id-scan.svg","pages":[{"title":"API de verificación con wallets de identidad digital","sidebarTitle":"API de wallets de ID digital","href":"/es/standalone-apis/digital-id-wallets"},{"title":"Catálogo de API de wallets de identidad digital","sidebarTitle":"Listar wallets de ID digital","openapi":"es/openapi-25.json GET /v3/id-verification/wallets/","href":"/es/standalone-apis/digital-id-wallet-catalog"},{"group":"Iniciar verificación","pages":[{"title":"API de verificación con BankID Suecia","sidebarTitle":"BankID Suecia","openapi":"es/openapi-25.json POST /v3/id-verification/wallets/bankid-se/","href":"/es/api-reference/digital-id-wallets/bankid-se"},{"title":"API de verificación con Finnish Trust Network","sidebarTitle":"Finnish Trust Network","openapi":"es/openapi-25.json POST /v3/id-verification/wallets/ftn/","href":"/es/api-reference/digital-id-wallets/ftn"},{"title":"API de verificación con MitID personal","sidebarTitle":"MitID personal","openapi":"es/openapi-25.json POST /v3/id-verification/wallets/mitid/","href":"/es/api-reference/digital-id-wallets/mitid"},{"title":"API de verificación con Mobile-ID","sidebarTitle":"Mobile-ID","openapi":"es/openapi-25.json POST /v3/id-verification/wallets/mobile-id/","href":"/es/api-reference/digital-id-wallets/mobile-id"},{"title":"API de verificación con Smart-ID","sidebarTitle":"Smart-ID","openapi":"es/openapi-25.json POST /v3/id-verification/wallets/smart-id/","href":"/es/api-reference/digital-id-wallets/smart-id"},{"title":"API de verificación de iDIN con identificación completa","sidebarTitle":"iDIN identificación completa","openapi":"es/openapi-25.json POST /v3/id-verification/wallets/idin/","href":"/es/api-reference/digital-id-wallets/idin"},{"title":"API de verificación con Auðkenni","sidebarTitle":"Auðkenni","openapi":"es/openapi-25.json POST /v3/id-verification/wallets/audkenni/","href":"/es/api-reference/digital-id-wallets/audkenni"},{"title":"API de verificación Bank iD","sidebarTitle":"Bank iD","openapi":"es/openapi-25.json POST /v3/id-verification/wallets/bankid-cz/","href":"/es/api-reference/digital-id-wallets/bankid-cz"},{"title":"API de verificación con BankID Noruega","sidebarTitle":"BankID Noruega","openapi":"es/openapi-25.json POST /v3/id-verification/wallets/bankid-no/","href":"/es/api-reference/digital-id-wallets/bankid-no"},{"title":"API de verificación de identidad con Buypass ID","sidebarTitle":"Buypass ID","openapi":"es/openapi-25.json POST /v3/id-verification/wallets/buypass/","href":"/es/api-reference/digital-id-wallets/buypass"},{"title":"API de verificación de ConnectID","sidebarTitle":"ConnectID","openapi":"es/openapi-25.json POST /v3/id-verification/wallets/connectid/","href":"/es/api-reference/digital-id-wallets/connectid"},{"title":"API de verificación de identidad con Diia","sidebarTitle":"Diia","openapi":"es/openapi-25.json POST /v3/id-verification/wallets/diia/","href":"/es/api-reference/digital-id-wallets/diia"},{"title":"API de verificación con EUDI Wallet","sidebarTitle":"EUDI Wallet","openapi":"es/openapi-25.json POST /v3/id-verification/wallets/eudi/","href":"/es/api-reference/digital-id-wallets/eudi"},{"title":"API de verificación con ID-card de Estonia","sidebarTitle":"ID-card de Estonia","openapi":"es/openapi-25.json POST /v3/id-verification/wallets/idcard-ee/","href":"/es/api-reference/digital-id-wallets/idcard-ee"},{"title":"API de verificación con FranceConnect","sidebarTitle":"FranceConnect","openapi":"es/openapi-25.json POST /v3/id-verification/wallets/franceconnect/","href":"/es/api-reference/digital-id-wallets/franceconnect"},{"title":"API de verificación con Freja eID","sidebarTitle":"Freja eID","openapi":"es/openapi-25.json POST /v3/id-verification/wallets/frejaid/","href":"/es/api-reference/digital-id-wallets/frejaid"},{"title":"API de verificación con GOV.UK Wallet","sidebarTitle":"GOV.UK Wallet","openapi":"es/openapi-25.json POST /v3/id-verification/wallets/govuk-wallet/","href":"/es/api-reference/digital-id-wallets/govuk-wallet"},{"title":"API de verificación de identidad con Google Wallet ID","sidebarTitle":"Google Wallet ID","openapi":"es/openapi-25.json POST /v3/id-verification/wallets/google-wallet/","href":"/es/api-reference/digital-id-wallets/google-wallet"},{"title":"API de verificación de identidad con MojeID","sidebarTitle":"MojeID","openapi":"es/openapi-25.json POST /v3/id-verification/wallets/mojeid/","href":"/es/api-reference/digital-id-wallets/mojeid"},{"title":"API de verificación OneID","sidebarTitle":"OneID","openapi":"es/openapi-25.json POST /v3/id-verification/wallets/oneid/","href":"/es/api-reference/digital-id-wallets/oneid"},{"title":"API de verificación con Personalausweis Profile 2","sidebarTitle":"Personalausweis Profile 2","openapi":"es/openapi-25.json POST /v3/id-verification/wallets/personalausweis/","href":"/es/api-reference/digital-id-wallets/personalausweis"},{"title":"API de verificación con UAE PASS","sidebarTitle":"UAE PASS","openapi":"es/openapi-25.json POST /v3/id-verification/wallets/uae-pass/","href":"/es/api-reference/digital-id-wallets/uae-pass"},{"title":"API de verificación con Vipps Plus","sidebarTitle":"Vipps Plus","openapi":"es/openapi-25.json POST /v3/id-verification/wallets/vipps/","href":"/es/api-reference/digital-id-wallets/vipps"},{"title":"API de verificación de identidad con eParaksts mobile","sidebarTitle":"eParaksts mobile","openapi":"es/openapi-25.json POST /v3/id-verification/wallets/eparaksts-mobile/","href":"/es/api-reference/digital-id-wallets/eparaksts-mobile"},{"title":"API de verificación gov.br","sidebarTitle":"gov.br","openapi":"es/openapi-25.json POST /v3/id-verification/wallets/govbr/","href":"/es/api-reference/digital-id-wallets/govbr"},{"title":"API de verificación con itsme","sidebarTitle":"itsme","openapi":"es/openapi-25.json POST /v3/id-verification/wallets/itsme/","href":"/es/api-reference/digital-id-wallets/itsme"}]},{"title":"Obtener resultado de verificación de Digital ID Wallet","sidebarTitle":"Obtener verificación de wallet","openapi":"es/openapi-25.json GET /v3/id-verification/wallets/verifications/{request_id}/","href":"/es/standalone-apis/digital-id-wallet-result"},{"title":"Enviar respuesta de wallet de credenciales digitales","sidebarTitle":"Enviar respuesta de wallet","openapi":"es/openapi-25.json POST /v3/id-verification/wallets/verifications/{request_id}/response/","href":"/es/standalone-apis/digital-id-wallet-response"},{"title":"Consultar autenticación Smart-ID y Mobile-ID","sidebarTitle":"Consultar verificación de wallet","openapi":"es/openapi-25.json POST /v3/id-verification/wallets/verifications/{request_id}/poll/","href":"/es/standalone-apis/digital-id-wallet-poll"},{"title":"Cancelar verificación con wallet de identidad digital","sidebarTitle":"Cancelar verificación de wallet","description":"Cancela una verificación pendiente con wallet de identidad digital en la API independiente de Didit mediante una solicitud a este endpoint.","openapi":"es/openapi-25.json POST /v3/id-verification/wallets/verifications/{request_id}/cancel/","href":"/es/standalone-apis/digital-id-wallet-cancel"}]},{"group":"Document AI","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/document-ai.svg","pages":[{"title":"API de Document AI: extracción personalizada de datos","sidebarTitle":"API de Document AI","openapi":"es/openapi-25.json POST /v3/document-ai/","href":"/es/standalone-apis/document-ai"}]},{"group":"API de validación en bases de datos","pages":[{"title":"API de validación de base de datos: cotejo de ID nacional","sidebarTitle":"Validación en bases de datos","description":"Didit valida datos de identidad contra 100+ fuentes nacionales y globales con POST /v3/database-validation/ y coincidencia 1x1 y 2x2. Pago por uso.","openapi":"es/openapi-25.json POST /v3/database-validation/","href":"/es/standalone-apis/database-validation"}]},{"group":"Validación de base de datos","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/driver-2.svg","pages":[{"group":"🇦🇷 Argentina","pages":[{"title":"API de verificación de datos del DNI de Argentina","sidebarTitle":"Argentina - Datos del DNI (RENAPER, sin selfie)","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/argentina/renaper-data"},{"title":"API de verificación de DNI de Argentina (RENAPER)","sidebarTitle":"Argentina - Verificación de DNI (RENAPER)","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/argentina/renaper"},{"title":"API de verificación de ciudadanos de Argentina (AFIP)","sidebarTitle":"Ciudadanos de Argentina (AFIP)","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/argentina/citizens"},{"title":"API de verificación en buró de crédito de Argentina","sidebarTitle":"Buró de crédito de Argentina","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/argentina/credit-bureau"}]},{"group":"🇦🇺 Australia","pages":[{"title":"Verificar certificado de nacimiento en Australia (DVS)","sidebarTitle":"Australia - DVS - Certificado de nacimiento","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/australia/birth-certificate"},{"title":"API de verificación de tarjeta Centrelink (DVS) Australia","sidebarTitle":"Australia - DVS - Tarjeta Centrelink","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/australia/centrelink-card"},{"title":"API de verificación de ImmiCard en Australia - DVS","sidebarTitle":"Australia - DVS - ImmiCard","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/australia/immicard"},{"title":"Verificación de documento de viaje Australia: API DVS","sidebarTitle":"Australia - DVS - Documento de viaje","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/australia/travel-document"},{"title":"API de certificado de cambio de nombre de Australia (DVS)","sidebarTitle":"Australia - DVS – Cambio de nombre","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/australia/change-of-name-certificate"},{"title":"API de certificado de ciudadanía de Australia (DVS)","sidebarTitle":"Australia - DVS – Certificado de ciudadanía","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/australia/citizenship-certificate"},{"title":"API de certificado de matrimonio en Australia (DVS)","sidebarTitle":"Australia - DVS – Certificado de matrimonio","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/australia/marriage-certificate"},{"title":"API de verificación con buró de crédito en Australia","sidebarTitle":"Buró de crédito de Australia","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/australia/credit-bureau"},{"title":"API de defunción en Australia (BDM): tiempo real","sidebarTitle":"Defunción en Australia (BDM)","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/australia/death-check"},{"title":"API de verificación del padrón electoral de Australia","sidebarTitle":"Padrón electoral de Australia","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/australia/electoral-roll"},{"title":"Verificación de superannuation y nómina en Australia","sidebarTitle":"Superannuation y nómina en Australia","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/australia/superannuation-payroll"},{"title":"API de verificación VEVO de Australia en tiempo real","sidebarTitle":"VEVO de Australia","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/australia/vevo"},{"title":"Verificación de licencia de conducir en Australia (DVS)","sidebarTitle":"DVS - Licencia de conducir de Australia","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/australia/driver-licence"},{"title":"API de verificación de tarjeta Medicare (DVS Australia)","sidebarTitle":"DVS - Tarjeta Medicare Australia","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/australia/medicare-card"},{"title":"API de verificación de pasaporte de Australia (DVS)","sidebarTitle":"DVS - Pasaporte de Australia","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/australia/passport"},{"title":"API de verificación de visa de Australia (DVS)","sidebarTitle":"DVS - Visa de Australia","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/australia/visa"}]},{"title":"API de buró de crédito Austria: coincidencia de datos","sidebarTitle":"Buró de crédito de Austria","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/austria/credit-bureau"},{"title":"API de verificación de CI de Bolivia en tiempo real","sidebarTitle":"Bolivia - Verificación de CI","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/bolivia/cedula"},{"group":"🇧🇷 Brasil","pages":[{"title":"API de verificación BRA - Unico IDCloud (CPF + selfie)","sidebarTitle":"BRA - Unico IDCloud (CPF + selfie)","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/brazil/unico-idcloud"},{"title":"API CNH Brasil: QR y coincidencia facial (Datavalid)","sidebarTitle":"Brasil - CNH QR + rostro (Datavalid)","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/brazil/cnh-facial-qrcode"},{"title":"API CPF + coincidencia facial Brasil (Datavalid)","sidebarTitle":"Brasil - CPF + coincidencia facial (Datavalid)","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/brazil/cpf-facial"},{"title":"API de consulta de estado de CPF en Brasil","sidebarTitle":"Brasil - Consulta de CPF","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/brazil/cpf"},{"title":"API de socios y directores de empresas de Brasil (QSA)","sidebarTitle":"Brasil - Socios y directores (QSA)","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/brazil/company-directors"},{"title":"Consulta de CNPJ en Brasil: API del registro de empresas","sidebarTitle":"Brasil: registro de empresas (CNPJ)","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/brazil/company-registry"},{"title":"API de verificación de fallecimiento en Brasil (CPF)","sidebarTitle":"Brasil - Fallecimiento (CPF)","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/brazil/death-check"},{"title":"API de antecedentes penales federales de Brasil","sidebarTitle":"Brasil - Antecedentes penales (Polícia Federal)","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/brazil/antecedentes-criminais-pf"},{"title":"API de verificación residencial de Brasil: identidad","sidebarTitle":"Brasil residencial","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/brazil/residential"},{"title":"API de verificación fiscal de Brasil (CPF/CNPJ)","sidebarTitle":"Registro fiscal de Brasil (CPF/CNPJ)","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/brazil/tax-registration"}]},{"title":"API de verificación de ID nacional de Camboya","sidebarTitle":"ID nacional de Camboya","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/cambodia/national-id"},{"group":"🇨🇦 Canadá","pages":[{"title":"API de buró de crédito de Canadá (FINTRAC)","sidebarTitle":"Buró de crédito de Canadá (FINTRAC)","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/canada/credit-bureau-fintrac"},{"title":"Canada Credit Bureau 2 (Non-FINTRAC): coincidencia de ID","sidebarTitle":"Canada Credit Bureau 2 (Non-FINTRAC)","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/canada/credit-bureau-2-non-fintrac"},{"title":"API de verificación residencial de Canadá: identidad","sidebarTitle":"Canadá Residencial","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/canada/residential"}]},{"title":"Verificación de RUT en Chile: API de consulta de ID","sidebarTitle":"Chile - Verificación de RUT","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/chile/rut"},{"group":"🇨🇳 China","pages":[{"title":"Verificación de tarjeta bancaria de China en tiempo real","sidebarTitle":"Tarjeta bancaria de China","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/china/bank-card"},{"title":"API de verificación de ID nacional de China: consulta","sidebarTitle":"ID nacional de China","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/china/national-id"},{"title":"API de verificación de pasaporte China en tiempo real","sidebarTitle":"Verificación de pasaporte de China","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/china/passport-verification"},{"title":"API de verificación de teléfono China: consulta de ID","sidebarTitle":"Teléfono China","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/china/phone"}]},{"group":"🇨🇴 Colombia","pages":[{"title":"Verificación de cédula en Colombia: API de consulta","sidebarTitle":"Colombia - Verificación de cédula","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/colombia/cedula"},{"title":"API de estatus de extranjeros Migración Colombia","sidebarTitle":"Colombia - Estatus migratorio Migración Colombia","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/colombia/migracion"}]},{"title":"API de verificación de cédula de Costa Rica: Data Match","sidebarTitle":"Costa Rica - Verificación de cédula","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/costa-rica/cedula"},{"group":"🇩🇰 Dinamarca","pages":[{"title":"API de verificación Dinamarca Consumer 2: coincidencia","sidebarTitle":"Dinamarca Consumer 2","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/denmark/consumer-2"},{"title":"API de verificación de ID nacional de Dinamarca","sidebarTitle":"ID nacional de Dinamarca","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/denmark/national-id"}]},{"title":"API de verificación de cédula de República Dominicana","sidebarTitle":"República Dominicana: cédula","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/dominican-republic/cedula"},{"title":"API de verificación de cédula de Ecuador en tiempo real","sidebarTitle":"Ecuador - Verificación de cédula","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/ecuador/cedula"},{"title":"API de verificación del DUI de El Salvador: identidad","sidebarTitle":"El Salvador - Verificación del DUI","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/el-salvador/dui"},{"group":"🇫🇮 Finlandia","pages":[{"title":"API Finland Consumer 2: verificación de identidad","sidebarTitle":"Finland Consumer 2","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/finland/consumer-2"},{"title":"API de verificación de ID nacional de Finlandia","sidebarTitle":"ID nacional de Finlandia","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/finland/national-id"}]},{"group":"🇫🇷 Francia","pages":[{"title":"API de verificación de teléfono Francia: consulta de ID","sidebarTitle":"Teléfono Francia","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/france/phone"},{"title":"API de verificación residencial de Francia: identidad","sidebarTitle":"Francia residencial","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/france/residential"},{"title":"API de verificación de servicios públicos de Francia","sidebarTitle":"Servicios públicos de Francia","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/france/utility"}]},{"group":"🇩🇪 Alemania","pages":[{"title":"API de buró de crédito alemán: coincidencia de datos","sidebarTitle":"Buró de crédito de Alemania","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/germany/credit-bureau"},{"title":"API de verificación Teléfono 2 Alemania en tiempo real","sidebarTitle":"Alemania Teléfono 2","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/germany/phone-2"}]},{"group":"🌐 Global","pages":[{"title":"API de verificación Global - Core Intelligence Service","sidebarTitle":"Global - Core Intelligence Service","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/global/intelligence-service"},{"title":"Enriquecimiento de identidad global: API de verificación","sidebarTitle":"Global - Enriquecimiento de identidad","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/global/identity-enrichment"},{"title":"Verificación SIM Swap global: API de coincidencia telco","sidebarTitle":"Global - SIM Swap","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/global/swap"}]},{"group":"🇬🇹 Guatemala","pages":[{"title":"API de DPI + coincidencia facial en Guatemala (RENAP)","sidebarTitle":"Guatemala - DPI + coincidencia facial (RENAP)","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/guatemala/dpi-facial"},{"title":"API de verificación DPI Guatemala en tiempo real","sidebarTitle":"Guatemala - Verificación del DPI","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/guatemala/dpi"}]},{"title":"API de verificación de DNI de Honduras en tiempo real","sidebarTitle":"Honduras - Verificación de DNI","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/honduras/dni"},{"group":"🇮🇳 India","pages":[{"title":"API de verificación Aadhaar India: coincidencia de datos","sidebarTitle":"Aadhaar (UIDAI) de India","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/india/aadhaar"},{"title":"Verificación de licencia de conducir de India (RTO) API","sidebarTitle":"Licencia de conducir India (RTO)","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/india/drivers-licence"},{"title":"API de EPIC de India (registro de votantes) (ECI)","sidebarTitle":"EPIC de India (registro de votantes)","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/india/epic-voter-s-registration"},{"title":"API de PAN de India (Permanent Account Number, ITD)","sidebarTitle":"PAN de India (ITD)","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/india/pan-permanent-account-number"}]},{"title":"API de verificación de KTP de Indonesia","sidebarTitle":"Tarjeta de identidad de residente de Indonesia","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/indonesia/residential-identity-card"},{"group":"🇮🇹 Italia","pages":[{"title":"Buró de crédito Italia: API de coincidencia de encabezado","sidebarTitle":"Buró de crédito de Italia","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/italy/credit-bureau"},{"title":"API de verificación residencial en Italia","sidebarTitle":"Italia residencial","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/italy/residential"}]},{"title":"Verificación de ID nacional de Kenia: API de consulta","sidebarTitle":"ID nacional de Kenia","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/kenya/national-id"},{"title":"Verificación de ID nacional de Malasia: cotejo de datos","sidebarTitle":"ID nacional de Malasia","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/malaysia/national-id"},{"group":"🇲🇽 México","pages":[{"title":"API de verificación de CURP en México en tiempo real","sidebarTitle":"México - Verificación de CURP","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/mexico/curp"},{"title":"API de vigencia de credencial INE en México","sidebarTitle":"México - Vigencia de credencial INE","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/mexico/ine-vigencia"}]},{"title":"API de residencia en Países Bajos: coincidencia de ID","sidebarTitle":"Residencia en Países Bajos","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/netherlands/residential"},{"group":"🇳🇿 Nueva Zelanda","pages":[{"title":"API de nacimientos de Nueva Zelanda (DIA): ID Match","sidebarTitle":"DIA - Nacimientos de Nueva Zelanda","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/new-zealand/births"},{"title":"API de verificación de ciudadanía de Nueva Zelanda (DIA)","sidebarTitle":"DIA - Ciudadanía de Nueva Zelanda","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/new-zealand/citizenship"},{"title":"API de verificación de pasaportes de Nueva Zelanda (DIA)","sidebarTitle":"DIA - Pasaporte de Nueva Zelanda","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/new-zealand/passport"},{"title":"API de verificación de defunción en Nueva Zelanda (BDM)","sidebarTitle":"Defunción en Nueva Zelanda (BDM)","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/new-zealand/death-check"},{"title":"API de verificación de licencia de conducir NZ (NZTA)","sidebarTitle":"Licencia de conducir (NZTA)","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/new-zealand/drivers-licence"}]},{"group":"🇳🇬 Nigeria","pages":[{"title":"API de BVN de Nigeria (Bank Verification Number)","sidebarTitle":"BVN de Nigeria","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/nigeria/bank-verification-number"},{"title":"Verificación de licencia de conducir Nigeria (FRSC) API","sidebarTitle":"Licencia de conducir Nigeria (FRSC)","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/nigeria/drivers-license"},{"title":"API de pasaporte de Nigeria (NIS): coincidencia de ID","sidebarTitle":"Pasaporte de Nigeria (NIS)","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/nigeria/passport"},{"title":"API de verificación de ID nacional de Nigeria (NIMC)","sidebarTitle":"ID nacional de Nigeria (NIMC)","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/nigeria/national-id"},{"title":"Verificación de ID nacional de Nigeria con selfie (NIMC)","sidebarTitle":"ID nacional de Nigeria + selfie (NIMC)","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/nigeria/national-id-facial"}]},{"title":"API de verificación residencial en Noruega: coincidencia","sidebarTitle":"Noruega residencial","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/norway/residential"},{"group":"🇵🇦 Panamá","pages":[{"title":"Cédula de Panamá: API con coincidencia facial biométrica","sidebarTitle":"Panamá - Cédula con coincidencia facial (SIB Plus)","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/panama/sib-plus"},{"title":"API de cédula de Panamá con face match biométrico (SIB)","sidebarTitle":"Panamá - Cédula con biometría facial (SIB)","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/panama/sib"}]},{"title":"API de verificación de cédula de Paraguay en tiempo real","sidebarTitle":"Paraguay - Verificación de CI","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/paraguay/cedula"},{"group":"🇵🇪 Perú","pages":[{"title":"API de verificación de DNI Perú: consulta en tiempo real","sidebarTitle":"Perú - verificación de DNI","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/peru/dni"},{"title":"API de verificación de registro tributario Perú (SUNAT)","sidebarTitle":"Registro tributario de Perú (SUNAT)","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/peru/tax-registration"}]},{"title":"API de verificación residencial de Filipinas: ID Match","sidebarTitle":"Filipinas residencial","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/philippines/residential"},{"group":"🇸🇬 Singapur","pages":[{"title":"API de verificación del buró de crédito de Singapur","sidebarTitle":"Buró de crédito de Singapur","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/singapore/credit-bureau"},{"title":"API de verificación de servicios públicos de Singapur","sidebarTitle":"Servicios públicos de Singapur","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/singapore/utility"}]},{"group":"🇿🇦 Sudáfrica","pages":[{"title":"Verificación de titular de cuenta bancaria en Sudáfrica","sidebarTitle":"Sudáfrica - Titular de cuenta bancaria","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/south-africa/bank-account-holder"},{"title":"API de consulta de directores de empresas en Sudáfrica","sidebarTitle":"Sudáfrica - Directores de empresas","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/south-africa/company-directors"},{"title":"API de consulta del registro de empresas de Sudáfrica","sidebarTitle":"Sudáfrica - Registro de empresas","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/south-africa/company-registry"},{"title":"API de contactabilidad en Sudáfrica: coincidencia de ID","sidebarTitle":"Sudáfrica - Contactabilidad","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/south-africa/contactability"},{"title":"API de antecedentes penales por rostro en Sudáfrica","sidebarTitle":"Sudáfrica - Antecedentes penales por rostro","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/south-africa/criminal-face-screening"},{"title":"API de coincidencia de huellas DHA Sudáfrica: ID Match","sidebarTitle":"Sudáfrica - Huellas DHA","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/south-africa/dha-fingerprint-match"},{"title":"API de verificación con foto del DHA en Sudáfrica","sidebarTitle":"Sudáfrica - Foto del DHA","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/south-africa/dha-photo"},{"title":"API de verificación de licencia de conducir de Sudáfrica","sidebarTitle":"Sudáfrica: licencia de conducir","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/south-africa/drivers-license"},{"title":"API de cribado de prevención de fraude en Sudáfrica","sidebarTitle":"Sudáfrica: prevención de fraude","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/south-africa/fraud-prevention"},{"title":"API de consulta de cargos de director en Sudáfrica","sidebarTitle":"Sudáfrica - Cargos de director","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/south-africa/person-directorships"},{"title":"API de verificación de refugiados en Sudáfrica","sidebarTitle":"Sudáfrica - Expediente de refugiado","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/south-africa/refugee"},{"title":"Verificación de propiedad de vehículos en Sudáfrica API","sidebarTitle":"Sudáfrica - Propiedad de vehículos","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/south-africa/vehicle-ownership"},{"title":"API de verificación del ID nacional de Sudáfrica (DHA)","sidebarTitle":"ID nacional de Sudáfrica (DHA)","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/south-africa/national-id"}]},{"title":"API de verificación DNI/NIE España en tiempo real","sidebarTitle":"España - Verificación DNI/NIE","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/spain/dni"},{"group":"🇸🇪 Suecia","pages":[{"title":"API de ID nacional de Suecia: coincidencia de identidad","sidebarTitle":"ID nacional de Suecia","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/sweden/national-id"},{"title":"API de verificación de teléfono Suecia: ID en tiempo real","sidebarTitle":"Teléfono de Suecia","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/sweden/phone"}]},{"title":"API de verificación con buró de crédito de Suiza","sidebarTitle":"Buró de crédito de Suiza","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/switzerland/credit-bureau"},{"title":"Verificación de ID nacional de Tailandia: cotejo de datos","sidebarTitle":"Cédula nacional de Tailandia","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/thailand/national-id"},{"group":"🇬🇧 Reino Unido","pages":[{"title":"API de verificación con buró de crédito del Reino Unido","sidebarTitle":"Buró de crédito (Reino Unido)","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/united-kingdom/credit-bureau"},{"title":"API de verificación de servicios financieros UK","sidebarTitle":"Reino Unido: servicios financieros","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/united-kingdom/financial-services"},{"title":"API de verificación de teléfono 2 en Reino Unido","sidebarTitle":"Reino Unido Teléfono 2","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/united-kingdom/phone-2"},{"title":"API de verificación residencial de Reino Unido","sidebarTitle":"Reino Unido residencial","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/united-kingdom/residential"}]},{"group":"🇺🇸 Estados Unidos","pages":[{"title":"API de verificación con buró de crédito de Estados Unidos","sidebarTitle":"Estados Unidos - Buró de crédito","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/united-states/credit-bureau"},{"title":"Verificación de defunción en EE. UU. (SSDMF): API","sidebarTitle":"Estados Unidos - Defunción (SSDMF)","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/united-states/death-check"},{"title":"API de verificación de servicios financieros de EE. UU.","sidebarTitle":"EE. UU. - Servicios financieros","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/united-states/financial-services"},{"title":"API de verificación Phone 2 en EE. UU.: coincidencia","sidebarTitle":"Estados Unidos - Phone 2","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/united-states/phone-2"},{"title":"API de verificación residencial en Estados Unidos","sidebarTitle":"Estados Unidos - Residencial","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/united-states/residential"}]},{"title":"API de verificación de CI de Uruguay en tiempo real","sidebarTitle":"Uruguay - verificación de CI","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/uruguay/cedula"},{"title":"API de cédula de Venezuela: coincidencia de identidad","sidebarTitle":"Venezuela: verificación de cédula","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/venezuela/cedula"},{"title":"API de verificación del NRC de Zambia (registro fiscal)","sidebarTitle":"NRC de Zambia (registro fiscal)","api":"POST /v3/database-validation/","href":"/es/api-reference/database-validation/zambia/national-id"}]},{"group":"Biometría y rostro","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/liveness.svg","pages":[{"title":"API de liveness pasivo: detección de deepfakes","sidebarTitle":"Prueba de vida pasiva","openapi":"es/openapi-25.json POST /v3/passive-liveness/","href":"/es/standalone-apis/passive-liveness"},{"title":"API de comparación facial 1:1: Face Match","sidebarTitle":"Face Match","openapi":"es/openapi-25.json POST /v3/face-match/","href":"/es/standalone-apis/face-match"},{"title":"API de búsqueda facial: duplicados 1:N y redes de fraude","sidebarTitle":"Búsqueda facial","openapi":"es/openapi-25.json POST /v3/face-search/","href":"/es/standalone-apis/face-search"},{"title":"API de estimación de edad: verificación con selfie","sidebarTitle":"API de estimación de edad","openapi":"es/openapi-25.json POST /v3/age-estimation/","href":"/es/standalone-apis/age-estimation"}]},{"group":"Cumplimiento y riesgo","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/aml-screening.svg","pages":[{"title":"API de AML: sanciones, PEP y listas de vigilancia","sidebarTitle":"API de screening AML","openapi":"es/openapi-25.json POST /v3/aml/","href":"/es/standalone-apis/aml-screening"},{"title":"Frescura de datasets AML: API de Didit","sidebarTitle":"Obtener frescura de datasets AML","openapi":"es/openapi-25.json GET /v3/aml/dataset-freshness/","href":"/es/standalone-apis/aml-dataset-freshness"},{"title":"API de detección de fraude: Fraud Check","openapi":"es/openapi-25.json POST /v3/fraud/checks/","href":"/es/standalone-apis/fraud-check"},{"title":"Planificar una comprobación de fraude (Fraud Check)","openapi":"es/openapi-25.json POST /v3/fraud/checks/plan/","href":"/es/standalone-apis/fraud-check-plan"},{"title":"Obtener el resultado de una verificación de fraude","openapi":"es/openapi-25.json GET /v3/fraud/checks/{check_id}/","href":"/es/standalone-apis/fraud-check-result"}]},{"group":"Análisis de dispositivo e IP","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/ip-analysis.svg","pages":[{"title":"API de riesgo de IP: geolocalización, VPN y datacenter","sidebarTitle":"API de riesgo de IP","openapi":"es/openapi-25.json POST /v3/ip/risk/","href":"/es/standalone-apis/ip-risk"}]},{"group":"Registro KYB","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/businesses.svg","pages":[{"title":"API de registro KYB: búsqueda y selección de empresas","sidebarTitle":"Resumen","href":"/es/standalone-apis/kyb-registry"},{"title":"API de búsqueda en registros de empresas KYB","sidebarTitle":"Búsqueda en registros KYB","openapi":"es/openapi-25.json POST /v3/kyb/search/","href":"/es/standalone-apis/kyb-registry-search"},{"title":"API KYB Registry Select: obtener perfil de empresa","sidebarTitle":"Selección de registro KYB","openapi":"es/openapi-25.json POST /v3/kyb/select/","href":"/es/standalone-apis/kyb-registry-select"},{"title":"API de accionistas del registro KYB","sidebarTitle":"Accionistas del registro KYB","openapi":"es/openapi-25.json POST /v3/kyb/shareholders/","href":"/es/standalone-apis/kyb-registry-shareholders"},{"title":"API de beneficiarios finales (UBO) del registro KYB","sidebarTitle":"UBO del registro KYB","openapi":"es/openapi-25.json POST /v3/kyb/ubo/","href":"/es/standalone-apis/kyb-registry-ubo"}]},{"group":"Verificación de correo electrónico","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/sms-tracking.svg","pages":[{"title":"API de verificación de email: OTP y puntuación de riesgo","sidebarTitle":"Resumen","href":"/es/standalone-apis/email-verification"},{"title":"API para enviar OTP por email: código de verificación","sidebarTitle":"Enviar código por email","openapi":"es/openapi-25.json POST /v3/email/send/","href":"/es/standalone-apis/email-send"},{"title":"API para verificar código OTP de email: validar código","sidebarTitle":"Verificar código de email","openapi":"es/openapi-25.json POST /v3/email/check/","href":"/es/standalone-apis/email-check"},{"title":"API de riesgo de email: entregabilidad y filtraciones","sidebarTitle":"API de riesgo de email","openapi":"es/openapi-25.json POST /v3/email/risk/","href":"/es/standalone-apis/email-risk"}]},{"group":"Verificación de teléfono","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/phone-verification.svg","pages":[{"title":"API de verificación telefónica: OTP por SMS y riesgo","sidebarTitle":"Resumen","href":"/es/standalone-apis/phone-verification"},{"title":"API de envío de OTP por teléfono: código por SMS","sidebarTitle":"Enviar código por SMS","openapi":"es/openapi-25.json POST /v3/phone/send/","href":"/es/standalone-apis/phone-send"},{"title":"API para verificar OTP por teléfono: validar código SMS","sidebarTitle":"Verificar código telefónico","openapi":"es/openapi-25.json POST /v3/phone/check/","href":"/es/standalone-apis/phone-check"},{"title":"API de riesgo telefónico: operador y señales de fraude","sidebarTitle":"API de riesgo telefónico","openapi":"es/openapi-25.json POST /v3/phone/risk/","href":"/es/standalone-apis/phone-risk"}]},{"group":"Verificación bancaria","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/billing.svg","pages":[{"title":"API de verificación de cuenta bancaria para pagos","sidebarTitle":"API de verificación de cuenta","openapi":"es/openapi-25.json POST /v3/bank/account-check/","href":"/es/standalone-apis/bank-account-check"}]}]},{"tab":"Verificación de usuarios","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/user-verifications.svg","pages":[{"title":"Verificación de usuarios","href":"/es/core-technology/liveness/overview"}]},{"tab":"Verificación de empresas","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/business-verifications.svg","pages":[{"title":"Verificación de empresas","href":"/es/business-verification/overview"}]},{"tab":"Monitorización de transacciones","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/transactions.svg","pages":[{"title":"Monitorización de transacciones","href":"/es/transaction-monitoring/overview"}]},{"tab":"Registro de cambios","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/calendar.svg","pages":[{"title":"Registro de cambios","href":"/es/changelog"}]}],"global":{"anchors":[{"anchor":"Referencia de la API","icon":"code","href":"/es/api-reference/overview"},{"anchor":"Business Console","icon":"gauge","href":"https://business.didit.me"},{"anchor":"Especificación OpenAPI","icon":"file-code","href":"https://docs.didit.me/es/openapi-25.json"},{"anchor":"Prompt de integración","icon":"wand-magic-sparkles","href":"/es/integration/integration-prompt"},{"anchor":"Servidor MCP","icon":"plug","href":"/es/integration/mcp/overview"},{"anchor":"Agent Skills","icon":"robot","href":"https://github.com/didit-protocol/skills"}]}},{"language":"pt-BR","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"Suporte"},{"icon":"signal","href":"https://status.didit.me","label":"Status"}],"primary":{"type":"button","label":"Entrar","href":"https://business.didit.me"}},"pages":[{"title":"pt-BR","href":"/pt-br/standalone-apis/document-ai"}]},{"language":"ja","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"サポート"},{"icon":"signal","href":"https://status.didit.me","label":"ステータス"}],"primary":{"type":"button","label":"サインイン","href":"https://business.didit.me"}},"pages":[{"title":"ja","href":"/ja/standalone-apis/document-ai"}]}]},"basePath":"","title":"API de Document AI: extracción personalizada de datos - Didit Docs","buildId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","deploymentId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CS552b7R.js","utils-DDTCYAF2.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-De8ttokP.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-DrwRDvAh.js","snippetPresets-DtAN0nWx.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-D5rWArI6.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-O2i12wsz.js","shallow-DV8xABTt.js","getApiPlaygroundDisplay-DBZ0B5Jx.js","CodeSnippet-BVi0tPUX.js","CodeSnippets-CqASbIwY.js","Page-m07pfKpT.js","getPastedJson-DG9vsMS8.js","icon-CXzRSCr8.js","MethodPill-BdKVtEuX.js","DuplicateIcon-CZlmBrJI.js","createIcon-biFEUKPL.js","DynamicMarkdown-B54_zNBF.js","SectionHeading-DwwHK3Pt.js","axios-vUo_bRtp.js","Markdown-DfhCTwyA.js","clsx-xpJZXxdP.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-BTZUMDnx.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-DqdKa2R4.js"]}