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"}
IA de documentos
API Document AI: extração personalizada de documentos
Didit: POST /v3/document-ai/ extrai campos definidos de qualquer PDF ou imagem, com verificação de nomes e adulteração. $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"}
Envie um documento e a lista dos campos que pretende ler nele. A Didit aplica o seu modelo de extração predefinido ao ficheiro, devolve todos os campos tipificados (text, number ou date como YYYY-MM-DD), deteta e descodifica os códigos QR e de barras suportados, verifica se o ficheiro foi manipulado e, opcionalmente, compara o nome que consta do documento com a pessoa ou empresa que espera. Use-o para comprovativos de fundos, recibos de vencimento, extratos bancários, documentos fiscais, faturas ou qualquer documento que não se enquadre num modelo fixo.Esta é a versão entre servidores do passo Document AI alojado. O pedido é multipart/form-data: o ficheiro vai em document e as definições dos campos vão em fields, como uma única string que contém um array JSON codificado.
fields é um array JSON de 1 a 30 itens, enviado como uma única string. Cada item tem uma key (letras minúsculas, dígitos e underscores, única dentro do pedido), um name legível para humanos, uma instruction que indica ao modelo o que procurar, um type (text, number ou date) e duas flags: required e 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 }]
Num pedido multipart, o array inteiro é um único valor de formulário:
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"
A resposta repete os fields normalizados e devolve extracted_data com as suas chaves key, com null em qualquer campo que o modelo não tenha conseguido encontrar. name, instruction e type são opcionais em cada item (type assume text por predefinição); key é obrigatória. Enviar fields como chaves de formulário em notação de parênteses retos (fields[0][key]=...) ou em qualquer formato que não seja um array JSON devolve 400 antes de a extração ser executada, pelo que nada é faturado.
Todas as respostas bem-sucedidas incluem document_ai.detected_codes. Cada item contém:
Campo
Descrição
type
Simbologia detetada, como QR_CODE, CODE_128, EAN_13, DATA_MATRIX ou PDF_417
page_number
Número da página, começando em 1
position
Polígono detetado em pixels da página renderizada, ou null quando não está disponível uma localização fiável
x, y, width, height
Caixa delimitadora em pixels da página renderizada, ou null quando não está disponível uma localização fiável
page_width, page_height
Dimensões da página renderizada usadas pelas coordenadas
parsed_payload
String descodificada ou valor estruturado, ou null quando o código só pode ser localizado
raw_payload
Payload bruto do descodificador em formato base64, quando disponível; caso contrário, uma string vazia
O array abrange todas as páginas processadas de um PDF e fica vazio quando não é encontrado nenhum código suportado. A Didit nunca adivinha um payload: os códigos QR danificados podem ser devolvidos com a respetiva localização e parsed_payload: null, e as falhas na deteção de códigos não fazem falhar o pedido de Document AI.
Marque no máximo um campo com is_full_name: true e envie a pessoa ou empresa que espera que seja a titular do documento:
Está a verificar
Envie
O nome é comparado com
Uma pessoa
expected_first_name + expected_last_name
o nome completo da pessoa
Uma empresa
expected_company_name (+ opcionalmente expected_company_country, um código ISO de 2 letras)
o nome da empresa
Envie um grupo ou outro, nunca ambos. Quando um nome é extraído e está presente um nome esperado, a resposta inclui name_match_score (0 a 100) e name_on_document. Uma pontuação abaixo de document_ai_name_match_score_threshold (predefinição 80) gera o aviso DOCUMENT_AI_NAME_MISMATCH e aplica document_ai_name_mismatch_action. Se nenhum campo estiver marcado com is_full_name, a Didit recorre ao primeiro campo de texto cuja chave pareça um nome (name, holder, full_name, account_holder); marque o campo explicitamente se quiser controlar qual o valor comparado. Quando não é encontrado nenhum valor de nome no documento, ou não é enviado nenhum nome esperado, a verificação de nome é ignorada e name_match_score é null.
Cada risco abaixo corresponde a um parâmetro de ação que pode definir por pedido: DECLINE, REVIEW ou NO_ACTION. A ação mais restritiva acionada determina document_ai.status (Declined > In Review > Approved), e todos os riscos acionados são listados em document_ai.warnings. As predefinições correspondem às do passo do fluxo alojado; consulte Regras e avisos do Document AI para saber como é detetado cada risco.
Ficheiros aceites: PDF (são suportados PDFs com várias páginas), JPG, JPEG, PNG, TIFF, WebP ou um ZIP que contenha o documento, até 30 MB. PDFs encriptados devolvem 400; carregue um PDF desencriptado ou uma fotografia.
save_api_request (predefinição true): o pedido, os campos extraídos e os códigos detetados aparecem na Business Console, em Verificações manuais, onde a sua equipa pode rever tudo. Defina-o como false para não gravar.
vendor_data e metadata são devolvidos sem alterações na resposta, para que possa associar o resultado aos seus próprios registos.
Preço: $0.20 por documento, faturado quando o documento é processado e é devolvido um estado. O desconto do seu plano aplica-se. Consulte Preços.
Precisa de que o utilizador carregue ele próprio o documento, de recolher até 3 documentos num único fluxo, de traduzir automaticamente o ecrã de carregamento ou de cruzar os campos extraídos com dados de identidade ou de questionários? Use, em vez disso, o passo de fluxo Document AI alojado.
A chave de API da sua aplicação, a partir de Programadores -> Chaves de API na Business Console. A chave principal tem acesso total. Uma chave nomeada pode ter o âmbito definido: nenhum, leitura ou escrita por recurso, limitada a alguns fluxos ou a sessões aprovadas, a uma lista de endereços IP e a uma data de validade. 401 significa que a chave está incorreta, revogada ou expirada; 403 significa que nenhuma chave foi enviada, que a chave não tem acesso a este recurso ou ação, ou que o pedido veio de um endereço fora da sua lista de IP; 404 numa rota de sessão significa que a sessão está fora dos fluxos ou estados da chave. Uma chave sem acesso a multimédia recebe URLs de imagens, vídeos e PDFs como nulos, e uma chave sem permissão de escrita em sessões recebe ligações de sessão e tokens como nulos. Consulte https://docs.didit.me/console/api-keys.
O documento a ler. Extensões permitidas: tiff, jpg, jpeg, png, pdf, webp, zip. Tamanho máximo de carregamento: 30 MB (ficheiros maiores são rejeitados com 400). São suportados PDFs de várias páginas (espere uma latência superior); PDFs encriptados são rejeitados com 400. As imagens são comprimidas automaticamente antes do processamento.
Uma cadeia de caracteres que representa um array codificado em JSON com 1–30 definições de campos (máximo de 16 KB). Cada item: key (obrigatório, ^[a-z0-9_]{1,64}$, exclusivo — a chave devolvida em extracted_data), name (≤100 caracteres, apresentado nas mensagens), instruction (≤500 caracteres, o que o modelo deve ler), type (text predefinido | number | date), required (booleano, predefinição false), is_full_name (booleano, predefinição false, no máximo um por pedido). Arrays de formulário com estilo de parênteses retos, JSON inválido, chaves duplicadas ou mais do que um is_full_name devolvem 400 antes de qualquer processamento ou faturação.
Exemplo:
"[{\"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}]"
Primeiro nome a verificar contra o campo do nome do documento (correspondência difusa, sensível a transliteração). Utilize em conjunto com expected_last_name; não pode ser combinado com expected_company_name.
Nome da empresa a verificar contra o campo de nome do documento (para documentos de empresas). Não pode ser combinado com expected_first_name / expected_last_name (intencionalmente sem valor de exemplo — a amostra de pedido gerada utiliza os campos de pessoa; substitua-os por este ao verificar um documento de empresa).
Código de país ISO 3166-1 alpha-2 opcional (duas letras ASCII, por exemplo, FR) que ajusta a normalização do nome da empresa para expected_company_name. Utilizado apenas com expected_company_name.
Valor mínimo de name_match_score (0–100) para considerar que o nome coincide. Uma pontuação inferior adiciona DOCUMENT_AI_NAME_MISMATCH, regulado por document_ai_name_mismatch_action.
O que fazer quando a análise forense de PDF/EXIF suspeitar de manipulação — modificado após assinatura digital, editor de PDF conhecido, manipulação de texto sobreposto, reexportação suspeita, anomalias na imagem (DOCUMENT_AI_SUSPECTED_MANIPULATION).
Quando for true (predefinição), persiste a chamada como uma sessão do tipo API — visível na Business Console, recuperável através de GET /v3/session/{sessionId}/decision/ utilizando o request_id devolvido, com o documento carregado, os valores extraídos, as definições de campos e o instantâneo da correspondência de nomes armazenados. Quando for false, nada é armazenado e request_id é um UUID transitório apenas para correlação de respostas; a chamada continua a ser faturada.
String opaca opcional (o seu ID de utilizador interno, e-mail, UUID...) guardada na sessão persistida e devolvida na resposta. Utilize-a para correlacionar chamadas de API com os seus próprios registos e para filtrar sessões mais tarde.
Objeto JSON opcional armazenado com a sessão (quando save_api_request=true) e devolvido na resposta. Em pedidos multipart, envie-o como um campo de texto codificado em JSON (por exemplo, metadata={"flow":"onboarding"}) — é convertido num objeto.
Exemplo:
{ "flow": "onboarding" }
Resposta
Documento processado. document_ai.status é Approved, Declined ou In Review; cada problema detetado é discriminado em document_ai.warnings. Um documento com problemas continua a devolver 200 — inspecione o corpo, não apenas o código HTTP. Quando save_api_request=true, request_id é o id da sessão persistida.
ID da sessão persistida quando save_api_request=true (utilizável com GET /v3/session/{sessionId}/decision/); caso contrário, um UUID de correlação transitório.
{"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"},{"language":"de","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":"Anmelden","href":"https://business.didit.me"}},"href":"de"},{"language":"fr","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"Assistance"},{"icon":"signal","href":"https://status.didit.me","label":"Statut"}],"primary":{"type":"button","label":"Se connecter","href":"https://business.didit.me"}},"href":"fr"},{"language":"it","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"Supporto"},{"icon":"signal","href":"https://status.didit.me","label":"Stato"}],"primary":{"type":"button","label":"Accedi","href":"https://business.didit.me"}},"href":"it"},{"language":"pt","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"Suporte"},{"icon":"signal","href":"https://status.didit.me","label":"Estado"}],"primary":{"type":"button","label":"Iniciar sessão","href":"https://business.didit.me"}},"href":"pt"},{"language":"ca","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"Suport"},{"icon":"signal","href":"https://status.didit.me","label":"Estat"}],"primary":{"type":"button","label":"Inicia la sessió","href":"https://business.didit.me"}},"href":"ca"},{"language":"id","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"Dukungan"},{"icon":"signal","href":"https://status.didit.me","label":"Status"}],"primary":{"type":"button","label":"Masuk","href":"https://business.didit.me"}},"href":"id"},{"language":"ru","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":"ru"},{"language":"ko","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":"ko"},{"language":"zh","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":"zh"},{"language":"ar","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":"ar"},{"language":"hi","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":"hi"}]}},"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":""},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aef60ae8e01a92054befade","clientVersion":"0.0.4087","searchFilterCounts":[{"language":"ar","tag":"مرجع API","count":432},{"language":"ca","tag":"Referència de l'API","count":432},{"language":"de","tag":"API-Referenz","count":432},{"language":"es","tag":"Referencia de la API","count":432},{"language":"fr","tag":"Référence API","count":432},{"language":"hi","tag":"API संदर्भ","count":432},{"language":"id","tag":"Referensi API","count":432},{"language":"it","tag":"Riferimento API","count":432},{"language":"ja","tag":"APIリファレンス","count":432},{"language":"ko","tag":"API 레퍼런스","count":432},{"language":"pt-BR","tag":"Referência da API","count":432},{"language":"pt","tag":"Referência da API","count":432},{"language":"ru","tag":"Справочник API","count":432},{"language":"zh","tag":"API 参考","count":432},{"language":"en","tag":"API Reference","count":424},{"language":"en","tag":"Database Validation","count":129},{"language":"ar","tag":"التحقق من قواعد البيانات","count":129},{"language":"ca","tag":"Validació en bases de dades","count":129},{"language":"de","tag":"Datenbankvalidierung","count":129},{"language":"es","tag":"Validación de base de datos","count":129},{"language":"fr","tag":"Validation en base de données","count":129},{"language":"hi","tag":"डेटाबेस सत्यापन","count":129},{"language":"id","tag":"Validasi Database","count":129},{"language":"it","tag":"Validazione su database","count":129},{"language":"ja","tag":"データベース検証","count":129},{"language":"ko","tag":"데이터베이스 검증","count":129},{"language":"pt-BR","tag":"Validação de banco de dados","count":129},{"language":"pt","tag":"Validação de base de dados","count":129},{"language":"ru","tag":"Проверка по базам данных","count":129},{"language":"zh","tag":"数据库核验","count":129},{"language":"ca","tag":"Primers passos","count":93},{"language":"de","tag":"Erste Schritte","count":93},{"language":"es","tag":"Primeros pasos","count":93},{"language":"ja","tag":"はじめに","count":93},{"language":"ko","tag":"시작하기","count":93},{"language":"pt-BR","tag":"Primeiros passos","count":93},{"language":"ru","tag":"Начало работы","count":93},{"language":"en","tag":"Get Started","count":87},{"language":"ar","tag":"ابدأ الآن","count":87},{"language":"fr","tag":"Commencer","count":87},{"language":"hi","tag":"शुरू करें","count":87},{"language":"id","tag":"Mulai","count":87},{"language":"it","tag":"Inizia","count":87},{"language":"pt","tag":"Começar","count":87},{"language":"zh","tag":"快速开始","count":87},{"language":"ko","tag":"인증","count":85},{"language":"en","tag":"User Verification","count":74},{"language":"ar","tag":"التحقق من المستخدمين","count":74},{"language":"ca","tag":"Verificació d'usuaris","count":74},{"language":"de","tag":"Benutzerverifizierung","count":74},{"language":"es","tag":"Verificación de usuarios","count":74},{"language":"fr","tag":"Vérification des utilisateurs","count":74},{"language":"hi","tag":"उपयोगकर्ता सत्यापन","count":74},{"language":"id","tag":"Verifikasi Pengguna","count":74},{"language":"it","tag":"Verifica degli utenti","count":74},{"language":"ja","tag":"ユーザー認証","count":74},{"language":"ko","tag":"사용자 인증","count":74},{"language":"pt-BR","tag":"Verificação de usuários","count":74},{"language":"pt","tag":"Verificação de utilizadores","count":74},{"language":"ru","tag":"Проверка пользователей","count":74},{"language":"zh","tag":"用户验证","count":74},{"language":"en","tag":"Integrate / SDKs","count":62},{"language":"ar","tag":"التكامل / SDKs","count":62},{"language":"ca","tag":"Integració / SDK","count":62},{"language":"de","tag":"Integrieren / SDKs","count":62},{"language":"es","tag":"Integración / SDKs","count":62},{"language":"fr","tag":"Intégrer / SDK","count":62},{"language":"hi","tag":"इंटीग्रेट करें / SDK","count":62},{"language":"id","tag":"Integrasi / SDK","count":62},{"language":"it","tag":"Integrazione / SDK","count":62},{"language":"ja","tag":"連携 / SDK","count":62},{"language":"ko","tag":"연동 / SDK","count":62},{"language":"pt-BR","tag":"Integração / SDKs","count":62},{"language":"pt","tag":"Integrar / SDKs","count":62},{"language":"ru","tag":"Интеграция / SDK","count":62},{"language":"zh","tag":"集成 / SDK","count":62},{"language":"en","tag":"Travel Rule","count":55},{"language":"ar","tag":"Travel Rule","count":55},{"language":"ca","tag":"Travel Rule","count":55},{"language":"de","tag":"Travel Rule","count":55},{"language":"es","tag":"Travel Rule","count":55},{"language":"fr","tag":"Travel Rule","count":55},{"language":"hi","tag":"Travel Rule","count":55},{"language":"id","tag":"Travel Rule","count":55},{"language":"it","tag":"Travel Rule","count":55},{"language":"ja","tag":"トラベルルール","count":55},{"language":"ko","tag":"Travel Rule","count":55},{"language":"pt-BR","tag":"Travel Rule","count":55},{"language":"pt","tag":"Travel Rule","count":55},{"language":"ru","tag":"Travel Rule","count":55},{"language":"zh","tag":"Travel Rule","count":55},{"language":"en","tag":"Verification","count":48},{"language":"ar","tag":"التحقق","count":48},{"language":"ca","tag":"Verificació","count":48},{"language":"de","tag":"Verifizierung","count":48},{"language":"es","tag":"Verificación","count":48},{"language":"fr","tag":"Vérification","count":48},{"language":"hi","tag":"सत्यापन","count":48},{"language":"id","tag":"Verifikasi","count":48},{"language":"it","tag":"Verifica","count":48},{"language":"ja","tag":"検証","count":48},{"language":"pt-BR","tag":"Verificação","count":48},{"language":"pt","tag":"Verificação","count":48},{"language":"ru","tag":"Верификация","count":48},{"language":"zh","tag":"验证","count":48},{"language":"en","tag":"Authentication","count":37},{"language":"ar","tag":"المصادقة","count":37},{"language":"ca","tag":"Autenticació","count":37},{"language":"de","tag":"Authentifizierung","count":37},{"language":"es","tag":"Autenticación","count":37},{"language":"fr","tag":"Authentification","count":37},{"language":"hi","tag":"प्रमाणीकरण","count":37},{"language":"id","tag":"Autentikasi","count":37},{"language":"it","tag":"Autenticazione","count":37},{"language":"ja","tag":"認証","count":37},{"language":"pt-BR","tag":"Autenticação","count":37},{"language":"pt","tag":"Autenticação","count":37},{"language":"ru","tag":"Аутентификация","count":37},{"language":"zh","tag":"身份认证","count":37},{"language":"en","tag":"Digital ID wallets","count":35},{"language":"en","tag":"User and Business Verifications","count":35},{"language":"ar","tag":"محافظ الهوية الرقمية","count":35},{"language":"ar","tag":"التحقق من المستخدمين والشركات","count":35},{"language":"ca","tag":"Carteres d'identitat digital","count":35},{"language":"ca","tag":"Verificacions d'usuaris i empreses","count":35},{"language":"de","tag":"Digitale ID-Wallets","count":35},{"language":"de","tag":"Benutzer- und Unternehmensverifizierungen","count":35},{"language":"es","tag":"Wallets de identidad digital","count":35},{"language":"es","tag":"Verificaciones de usuarios y empresas","count":35},{"language":"fr","tag":"Portefeuilles d'identité numérique","count":35},{"language":"fr","tag":"Vérifications des utilisateurs et des entreprises","count":35},{"language":"hi","tag":"डिजिटल ID वॉलेट","count":35},{"language":"hi","tag":"उपयोगकर्ता और व्यवसाय सत्यापन","count":35},{"language":"id","tag":"Dompet ID Digital","count":35},{"language":"id","tag":"Verifikasi Pengguna dan Bisnis","count":35},{"language":"it","tag":"Wallet di identità digitale","count":35},{"language":"it","tag":"Verifiche di utenti e aziende","count":35},{"language":"ja","tag":"デジタルIDウォレット","count":35},{"language":"ja","tag":"ユーザーと企業の認証","count":35},{"language":"ko","tag":"디지털 신분증 지갑","count":35},{"language":"ko","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},{"language":"pt","tag":"Carteiras de identidade digital","count":35},{"language":"pt","tag":"Verificações de utilizadores e empresas","count":35},{"language":"ru","tag":"Цифровые ID-кошельки","count":35},{"language":"ru","tag":"Верификация пользователей и компаний","count":35},{"language":"zh","tag":"数字身份钱包","count":35},{"language":"zh","tag":"用户与企业验证","count":35},{"language":"ko","tag":"거래 모니터링","count":28}]},"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":"rbac-expansion","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":"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":"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":"editor-metadata","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},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","href":"/_mintlify/custom/didit-0f962782/714dd91730ddd114/style.css"}],"page":{"pagePath":"pt/standalone-apis/document-ai","slug":"/pt/standalone-apis/document-ai","pageMetadata":{"title":"API Document AI: extração personalizada de documentos","sidebarTitle":"API Document AI","description":"Didit: POST /v3/document-ai/ extrai campos definidos de qualquer PDF ou imagem, com verificação de nomes e adulteração. $0.20 por documento.","keywords":["API Document AI","API de extração de dados de documentos","API de OCR para documentos personalizados","API de comprovativo de fundos","API de extração de recibos de vencimento","OCR de extratos bancários","extração de documentos KYC","deteção de adulteração de documentos","API Didit"],"openapi":"pt/openapi-25.json POST /v3/document-ai/","href":"/pt/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: \"Didit: POST /v3/document-ai/ extrai campos definidos de qualquer PDF ou imagem, com verificação de nomes e adulteração. $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:[`Envie um documento e a lista dos campos que pretende ler nele. A Didit aplica o seu modelo de extração predefinido ao ficheiro, devolve todos os campos tipificados (`,_jsx(_components.code,{children:`text`}),`, `,_jsx(_components.code,{children:`number`}),` ou `,_jsx(_components.code,{children:`date`}),` como `,_jsx(_components.code,{children:`YYYY-MM-DD`}),`), deteta e descodifica os códigos QR e de barras suportados, verifica se o ficheiro foi manipulado e, opcionalmente, compara o nome que consta do documento com a pessoa ou empresa que espera. Use-o para comprovativos de fundos, recibos de vencimento, extratos bancários, documentos fiscais, faturas ou qualquer documento que não se enquadre num modelo fixo.`]}),`\n`,_jsxs(_components.p,{children:[`Esta é a versão entre servidores do passo `,_jsx(_components.a,{href:`/pt/core-technology/document-ai/overview`,children:`Document AI`}),` alojado. O pedido é `,_jsx(_components.code,{children:`multipart/form-data`}),`: o ficheiro vai em `,_jsx(_components.code,{children:`document`}),` e as definições dos campos vão em `,_jsx(_components.code,{children:`fields`}),`, como uma única string que contém um array JSON codificado.`]}),`\n`,_jsx(Heading,{level:`2`,id:`definir-os-campos-a-extrair`,children:`Definir os campos a extrair`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`fields`}),` é um array JSON de 1 a 30 itens, enviado como uma única string. Cada item tem uma `,_jsx(_components.code,{children:`key`}),` (letras minúsculas, dígitos e underscores, única dentro do pedido), um `,_jsx(_components.code,{children:`name`}),` legível para humanos, uma `,_jsx(_components.code,{children:`instruction`}),` que indica ao modelo o que procurar, um `,_jsx(_components.code,{children:`type`}),` (`,_jsx(_components.code,{children:`text`}),`, `,_jsx(_components.code,{children:`number`}),` ou `,_jsx(_components.code,{children:`date`}),`) e duas flags: `,_jsx(_components.code,{children:`required`}),` e `,_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:`Num pedido multipart, o array inteiro é um único valor de formulário:`}),`\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:[`A resposta repete os `,_jsx(_components.code,{children:`fields`}),` normalizados e devolve `,_jsx(_components.code,{children:`extracted_data`}),` com as suas chaves `,_jsx(_components.code,{children:`key`}),`, com `,_jsx(_components.code,{children:`null`}),` em qualquer campo que o modelo não tenha conseguido encontrar. `,_jsx(_components.code,{children:`name`}),`, `,_jsx(_components.code,{children:`instruction`}),` e `,_jsx(_components.code,{children:`type`}),` são opcionais em cada item (`,_jsx(_components.code,{children:`type`}),` assume `,_jsx(_components.code,{children:`text`}),` por predefinição); `,_jsx(_components.code,{children:`key`}),` é obrigatória. Enviar `,_jsx(_components.code,{children:`fields`}),` como chaves de formulário em notação de parênteses retos (`,_jsx(_components.code,{children:`fields[0][key]=...`}),`) ou em qualquer formato que não seja um array JSON devolve `,_jsx(_components.code,{children:`400`}),` antes de a extração ser executada, pelo que nada é faturado.`]}),`\n`,_jsx(Heading,{level:`2`,id:`códigos-qr-e-códigos-de-barras`,children:`Códigos QR e códigos de barras`}),`\n`,_jsxs(_components.p,{children:[`Todas as respostas bem-sucedidas incluem `,_jsx(_components.code,{children:`document_ai.detected_codes`}),`. Cada item contém:`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Campo`}),_jsx(_components.th,{children:`Descrição`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`type`})}),_jsxs(_components.td,{children:[`Simbologia detetada, 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`}),` ou `,_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 da página, começando em 1`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`position`})}),_jsxs(_components.td,{children:[`Polígono detetado em pixels da página renderizada, ou `,_jsx(_components.code,{children:`null`}),` quando não está disponível uma localização fiável`]})]}),_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:[`Caixa delimitadora em pixels da página renderizada, ou `,_jsx(_components.code,{children:`null`}),` quando não está disponível uma localização fiável`]})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`page_width`}),`, `,_jsx(_components.code,{children:`page_height`})]}),_jsx(_components.td,{children:`Dimensões da página renderizada usadas pelas coordenadas`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`parsed_payload`})}),_jsxs(_components.td,{children:[`String descodificada ou valor estruturado, ou `,_jsx(_components.code,{children:`null`}),` quando o código só pode ser localizado`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`raw_payload`})}),_jsx(_components.td,{children:`Payload bruto do descodificador em formato base64, quando disponível; caso contrário, uma string vazia`})]})]})]}),`\n`,_jsxs(_components.p,{children:[`O array abrange todas as páginas processadas de um PDF e fica vazio quando não é encontrado nenhum código suportado. A Didit nunca adivinha um payload: os códigos QR danificados podem ser devolvidos com a respetiva localização e `,_jsx(_components.code,{children:`parsed_payload: null`}),`, e as falhas na deteção de códigos não fazem falhar o pedido de Document AI.`]}),`\n`,_jsx(Heading,{level:`2`,id:`correspondência-de-nomes`,children:`Correspondência de nomes`}),`\n`,_jsxs(_components.p,{children:[`Marque no máximo um campo com `,_jsx(_components.code,{children:`is_full_name: true`}),` e envie a pessoa ou empresa que espera que seja a titular do documento:`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Está a verificar`}),_jsx(_components.th,{children:`Envie`}),_jsx(_components.th,{children:`O nome é comparado com`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Uma pessoa`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`expected_first_name`}),` + `,_jsx(_components.code,{children:`expected_last_name`})]}),_jsx(_components.td,{children:`o nome completo da pessoa`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Uma empresa`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`expected_company_name`}),` (+ opcionalmente `,_jsx(_components.code,{children:`expected_company_country`}),`, um código ISO de 2 letras)`]}),_jsx(_components.td,{children:`o nome da empresa`})]})]})]}),`\n`,_jsxs(_components.p,{children:[`Envie um grupo ou outro, nunca ambos. Quando um nome é extraído e está presente um nome esperado, a resposta inclui `,_jsx(_components.code,{children:`name_match_score`}),` (0 a 100) e `,_jsx(_components.code,{children:`name_on_document`}),`. Uma pontuação abaixo de `,_jsx(_components.code,{children:`document_ai_name_match_score_threshold`}),` (predefinição `,_jsx(_components.code,{children:`80`}),`) gera o aviso `,_jsx(_components.code,{children:`DOCUMENT_AI_NAME_MISMATCH`}),` e aplica `,_jsx(_components.code,{children:`document_ai_name_mismatch_action`}),`. Se nenhum campo estiver marcado com `,_jsx(_components.code,{children:`is_full_name`}),`, a Didit recorre ao primeiro campo de texto cuja chave pareça um nome (`,_jsx(_components.code,{children:`name`}),`, `,_jsx(_components.code,{children:`holder`}),`, `,_jsx(_components.code,{children:`full_name`}),`, `,_jsx(_components.code,{children:`account_holder`}),`); marque o campo explicitamente se quiser controlar qual o valor comparado. Quando não é encontrado nenhum valor de nome no documento, ou não é enviado nenhum nome esperado, a verificação de nome é ignorada e `,_jsx(_components.code,{children:`name_match_score`}),` é `,_jsx(_components.code,{children:`null`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`riscos-e-ações`,children:`Riscos e ações`}),`\n`,_jsxs(_components.p,{children:[`Cada risco abaixo corresponde a um parâmetro de ação que pode definir por pedido: `,_jsx(_components.code,{children:`DECLINE`}),`, `,_jsx(_components.code,{children:`REVIEW`}),` ou `,_jsx(_components.code,{children:`NO_ACTION`}),`. A ação mais restritiva acionada determina `,_jsx(_components.code,{children:`document_ai.status`}),` (`,_jsx(_components.code,{children:`Declined`}),` > `,_jsx(_components.code,{children:`In Review`}),` > `,_jsx(_components.code,{children:`Approved`}),`), e todos os riscos acionados são listados em `,_jsx(_components.code,{children:`document_ai.warnings`}),`. As predefinições correspondem às do passo do fluxo alojado; consulte `,_jsx(_components.a,{href:`/pt/core-technology/document-ai/warnings-document-ai`,children:`Regras e avisos do Document AI`}),` para saber como é detetado cada risco.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Risco`}),_jsx(_components.th,{children:`Parâmetro`}),_jsx(_components.th,{children:`Predefinição`})]})}),_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:`ficheiros-gravação-e-faturação`,children:`Ficheiros, gravação e faturação`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Ficheiros aceites:`}),` PDF (são suportados PDFs com várias páginas), JPG, JPEG, PNG, TIFF, WebP ou um ZIP que contenha o documento, até 30 MB. PDFs encriptados devolvem `,_jsx(_components.code,{children:`400`}),`; carregue um PDF desencriptado ou uma fotografia.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`save_api_request`})}),` (predefinição `,_jsx(_components.code,{children:`true`}),`): o pedido, os campos extraídos e os códigos detetados aparecem na Business Console, em `,_jsx(_components.strong,{children:`Verificações manuais`}),`, onde a sua equipa pode rever tudo. Defina-o como `,_jsx(_components.code,{children:`false`}),` para não gravar.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:_jsx(_components.code,{children:`vendor_data`})}),` e `,_jsx(_components.strong,{children:_jsx(_components.code,{children:`metadata`})}),` são devolvidos sem alterações na resposta, para que possa associar o resultado aos seus próprios registos.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Preço:`}),` $0.20 por documento, faturado quando o documento é processado e é devolvido um estado. O desconto do seu plano aplica-se. Consulte `,_jsx(_components.a,{href:`/pt/getting-started/pricing#pre%C3%A7os-de-api-aut%C3%B3noma-servidor-a-servidor`,children:`Preços`}),`.`]}),`\n`]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`Precisa de que o utilizador carregue ele próprio o documento, de recolher até 3 documentos num único fluxo, de traduzir automaticamente o ecrã de carregamento ou de cruzar os campos extraídos com dados de identidade ou de questionários? Use, em vez disso, o passo de `,_jsx(_components.a,{href:`/pt/core-technology/document-ai/overview`,children:`fluxo 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 Document AI: extração personalizada de documentos","sidebarTitle":"API Document AI","description":"Didit: POST /v3/document-ai/ extrai campos definidos de qualquer PDF ou imagem, com verificação de nomes e adulteração. $0.20 por documento.","keywords":["API Document AI","API de extração de dados de documentos","API de OCR para documentos personalizados","API de comprovativo de fundos","API de extração de recibos de vencimento","OCR de extratos bancários","extração de documentos KYC","deteção de adulteração de documentos","API Didit"],"openapi":"pt/openapi-25.json POST /v3/document-ai/","href":"/pt/standalone-apis/document-ai"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Definir os campos a extrair","slug":"definir-os-campos-a-extrair","depth":2,"children":[]},{"title":"Códigos QR e códigos de barras","slug":"códigos-qr-e-códigos-de-barras","depth":2,"children":[]},{"title":"Correspondência de nomes","slug":"correspondência-de-nomes","depth":2,"children":[]},{"title":"Riscos e ações","slug":"riscos-e-ações","depth":2,"children":[]},{"title":"Ficheiros, gravação e faturação","slug":"ficheiros-gravação-e-faturação","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 (extração de campos personalizados + verificações de adulteração)","description":"Didit: POST /v3/document-ai/ extrai campos definidos de qualquer PDF ou imagem, com verificação de nomes e adulteração. $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":["0a1897b2-fbd1-440f-8626-49e38af5d3c0"],"requestBody":"dfa25b61-2edc-46ed-b5ea-a1d61e838d86","responses":{"200":"91759560-1506-46b2-8067-a1ba10e895f3","400":"d9192c4d-0b72-4293-95b1-40423ec9ff21","403":"9b989b5a-72a9-4f38-ba57-3147e811652e","429":"fa8cbceb-d213-44a6-9c25-4428d79035c4","503":"d9972f77-fb96-4bd8-9dbf-90744d3e20c4"},"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":["19a65af2-e04f-405b-9abb-11f36ce51544"],"path":"/v3/document-ai/","baseUrlOptions":["https://verification.didit.me"],"title":"Document AI (extração de campos personalizados + verificações de adulteração)","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":"O documento a ler. Extensões permitidas: `tiff`, `jpg`, `jpeg`, `png`, `pdf`, `webp`, `zip`. Tamanho máximo de carregamento: **30 MB** (ficheiros maiores são rejeitados com `400`). São suportados PDFs de várias páginas (espere uma latência superior); PDFs encriptados são rejeitados com `400`. As imagens são comprimidas automaticamente antes do processamento.","isRequired":true,"uniqueKey":"document","typeLabel":"file"},"fields":{"type":"string","description":"Uma cadeia de caracteres que representa um array codificado em JSON com **1–30** definições de campos (máximo de 16 KB). Cada item: `key` (obrigatório, `^[a-z0-9_]{1,64}$`, exclusivo — a chave devolvida em `extracted_data`), `name` (≤100 caracteres, apresentado nas mensagens), `instruction` (≤500 caracteres, o que o modelo deve ler), `type` (`text` predefinido | `number` | `date`), `required` (booleano, predefinição `false`), `is_full_name` (booleano, predefinição `false`, no máximo um por pedido). Arrays de formulário com estilo de parênteses retos, JSON inválido, chaves duplicadas ou mais do que um `is_full_name` devolvem `400` antes de qualquer processamento ou faturação.","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":"Primeiro nome a verificar contra o campo do nome do documento (correspondência difusa, sensível a transliteração). Utilize em conjunto com `expected_last_name`; não pode ser combinado com `expected_company_name`.","example":"Sophia","uniqueKey":"expected_first_name","typeLabel":"string"},"expected_last_name":{"type":"string","description":"Apelido a verificar face ao campo de nome do documento, combinado com `expected_first_name` para `name_match_score`.","example":"Martinez","uniqueKey":"expected_last_name","typeLabel":"string"},"expected_company_name":{"type":"string","description":"Nome da empresa a verificar contra o campo de nome do documento (para documentos de empresas). Não pode ser combinado com `expected_first_name` / `expected_last_name` (intencionalmente sem valor de exemplo — a amostra de pedido gerada utiliza os campos de pessoa; substitua-os por este ao verificar um documento de empresa).","uniqueKey":"expected_company_name","typeLabel":"string"},"expected_company_country":{"type":"string","description":"Código de país ISO 3166-1 alpha-2 opcional (duas letras ASCII, por exemplo, `FR`) que ajusta a normalização do nome da empresa para `expected_company_name`. Utilizado apenas com `expected_company_name`.","uniqueKey":"expected_company_country","typeLabel":"string"},"document_ai_name_match_score_threshold":{"type":"integer","minimum":0,"maximum":100,"default":80,"description":"Valor mínimo de `name_match_score` (0–100) para considerar que o nome coincide. Uma pontuação inferior adiciona `DOCUMENT_AI_NAME_MISMATCH`, regulado 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":"O que fazer quando nenhum campo puder ser lido do 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":"O que fazer quando não for possível ler pelo menos um campo `required` (`DOCUMENT_AI_MISSING_REQUIRED_FIELDS`; `additional_data.missing_fields` lista-os).","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":"O que fazer quando a análise forense de PDF/EXIF suspeitar de manipulação — modificado após assinatura digital, editor de PDF conhecido, manipulação de texto sobreposto, reexportação suspeita, anomalias na imagem (`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":"O que fazer quando `name_match_score` estiver abaixo do limiar (`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":"O que fazer quando o carregamento está vazio ou não é um ficheiro processável (`DOCUMENT_AI_UNSUPPORTED_FILE`).","uniqueKey":"document_ai_unsupported_file_action","typeLabel":"enum\u003cstring>"},"save_api_request":{"type":"boolean","default":true,"description":"Quando for `true` (predefinição), persiste a chamada como uma sessão do tipo API — visível na Business Console, recuperável através de `GET /v3/session/{sessionId}/decision/` utilizando o `request_id` devolvido, com o documento carregado, os valores extraídos, as definições de campos e o instantâneo da correspondência de nomes armazenados. Quando for `false`, nada é armazenado e `request_id` é um UUID transitório apenas para correlação de respostas; a chamada continua a ser faturada.","example":true,"uniqueKey":"save_api_request","typeLabel":"boolean"},"vendor_data":{"type":"string","description":"String opaca opcional (o seu ID de utilizador interno, e-mail, UUID...) guardada na sessão persistida e devolvida na resposta. Utilize-a para correlacionar chamadas de API com os seus próprios registos e para filtrar sessões mais tarde.","example":"user-123","uniqueKey":"vendor_data","typeLabel":"string"},"metadata":{"type":"object","additionalProperties":true,"description":"Objeto JSON opcional armazenado com a sessão (quando `save_api_request=true`) e devolvido na resposta. Em pedidos multipart, envie-o como um campo de texto codificado em JSON (por exemplo, `metadata={\"flow\":\"onboarding\"}`) — é convertido num 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":{"91759560-1506-46b2-8067-a1ba10e895f3":{"description":"Documento processado. `document_ai.status` é `Approved`, `Declined` ou `In Review`; cada problema detetado é discriminado em `document_ai.warnings`. Um documento com problemas continua a devolver `200` — inspecione o corpo, não apenas o código HTTP. Quando `save_api_request=true`, `request_id` é o id da sessão persistida.","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 da sessão persistida quando `save_api_request=true` (utilizável com `GET /v3/session/{sessionId}/decision/`); caso contrário, um UUID de correlação transitório.","uniqueKey":"request_id","typeLabel":"string\u003cuuid>"},"document_ai":{"type":"object","properties":{"status":{"type":"string","enum":["Approved","Declined","In Review"],"description":"`Approved` quando nenhum aviso resultar numa recusa ou revisão; `Declined` quando pelo menos um risco mapear para `DECLINE`; caso contrário, `In Review` quando pelo menos um mapear para `REVIEW`. A lista `warnings` explica o motivo.","uniqueKey":"document_ai.status","typeLabel":"enum\u003cstring>"},"extracted_data":{"type":"object","additionalProperties":true,"description":"Uma entrada por chave de campo solicitada. Os valores são tipados de acordo com o `type` do campo — strings para `text`, números para `number`, strings `YYYY-MM-DD` para `date` — ou `null` quando o valor não pôde ser lido.","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 e códigos de barras detetados em todas as páginas processadas. Vazio quando nenhum é encontrado. Um código QR localizado mas não descodificável tem `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":"Simbologia detetada, por exemplo `QR_CODE`, `CODE_128`, `EAN_13`, `DATA_MATRIX` ou `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 de base 1.","isRequired":true,"uniqueKey":"document_ai.detected_codes.items.[INDEX].page_number","typeLabel":"integer"},"position":{"oneOf":[{"type":"array","description":"Polígono detetado em coordenadas de píxeis da página renderizada. `null` quando não está disponível nenhuma localização fiável.","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 detetado em coordenadas de píxeis da página renderizada. `null` quando não está disponível nenhuma localização fiável.","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":"Margem esquerda da caixa delimitadora em píxeis da página renderizada.","isRequired":true,"uniqueKey":"document_ai.detected_codes.items.[INDEX].x.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Margem esquerda da caixa delimitadora em píxeis da 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":"Limite superior da caixa delimitadora em píxeis da página renderizada.","isRequired":true,"uniqueKey":"document_ai.detected_codes.items.[INDEX].y.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Limite superior da caixa delimitadora em píxeis da 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":"Largura da caixa delimitadora em píxeis da página renderizada.","isRequired":true,"uniqueKey":"document_ai.detected_codes.items.[INDEX].width.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Largura da caixa delimitadora em píxeis da 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 da caixa delimitadora em píxeis da página renderizada.","isRequired":true,"uniqueKey":"document_ai.detected_codes.items.[INDEX].height.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Altura da caixa delimitadora em píxeis da 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":"Largura da página renderizada em píxeis.","isRequired":true,"uniqueKey":"document_ai.detected_codes.items.[INDEX].page_width","typeLabel":"integer"},"page_height":{"type":"integer","description":"Altura da página renderizada em píxeis.","isRequired":true,"uniqueKey":"document_ai.detected_codes.items.[INDEX].page_height","typeLabel":"integer"},"raw_payload":{"type":"string","description":"Payload do descodificador em bruto como string base64 quando disponível; caso contrário, uma string vazia.","isRequired":true,"uniqueKey":"document_ai.detected_codes.items.[INDEX].raw_payload","typeLabel":"string"},"parsed_payload":{"oneOf":[{"description":"String descodificada ou valor estruturado. `null` quando o código foi localizado mas não pôde ser descodificado.","isRequired":true,"uniqueKey":"document_ai.detected_codes.items.[INDEX].parsed_payload.oneOf.0","typeLabel":"any"},{"description":"String descodificada ou valor estruturado. `null` quando o código foi localizado mas não pôde ser descodificado.","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":"As definições normalizadas dos campos utilizadas para esta extração, devolvidas na resposta (também armazenadas com a sessão quando `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":"Semelhança difusa (0–100) entre `name_on_document` e o nome esperado da pessoa/empresa. Devolvido sempre que existirem tanto um valor de nome como um nome esperado — em correspondências **e** não correspondências; `null` caso contrário.","example":96,"uniqueKey":"document_ai.name_match_score.oneOf.0","typeLabel":"number"},{"type":"null","minimum":0,"maximum":100,"description":"Semelhança difusa (0–100) entre `name_on_document` e o nome esperado da pessoa/empresa. Devolvido sempre que existirem tanto um valor de nome como um nome esperado — em correspondências **e** não correspondências; `null` caso contrário.","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":"O valor do nome extraído do documento (o campo `is_full_name`, ou o primeiro campo de texto semelhante a um nome) que foi comparado com o nome esperado. `null` quando nenhum valor de nome estava disponível.","example":"Sophia Martinez","uniqueKey":"document_ai.name_on_document.oneOf.0","typeLabel":"string"},{"type":"null","description":"O valor do nome extraído do documento (o campo `is_full_name`, ou o primeiro campo de texto semelhante a um nome) que foi comparado com o nome esperado. `null` quando nenhum valor de nome estava disponível.","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":"Vazio numa aprovação limpa. Cada entrada explica um risco detetado; entradas com `log_type: \"error\"` definem `status` como `Declined`, entradas com `log_type: \"warning\"` definem-no como `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 risco legível por máquina. Cada um é determinado pela opção correspondente no pedido `document_ai_*_action`.","example":"DOCUMENT_AI_MISSING_REQUIRED_FIELDS","uniqueKey":"document_ai.warnings.items.[INDEX].risk","typeLabel":"enum\u003cstring>"},"feature":{"type":"string","enum":["DOCUMENT_AI"],"description":"Funcionalidade que gerou o aviso. Sempre `DOCUMENT_AI` neste endpoint.","uniqueKey":"document_ai.warnings.items.[INDEX].feature","typeLabel":"enum\u003cstring>"},"additional_data":{"oneOf":[{"type":"object","additionalProperties":true,"description":"Contexto adicional para o risco: `{\"missing_fields\": [\"Net pay\"]}` para campos obrigatórios em falta, `{\"name_on_document\", \"score\", \"threshold\"}` para uma discrepância de nome e a conclusão forense (`detection_method`, detalhes do produtor/editor) para suspeita de manipulação. `null` quando não houver nada a acrescentar.","example":{"missing_fields":["Net pay"]},"uniqueKey":"document_ai.warnings.items.[INDEX].additional_data.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":true,"description":"Contexto adicional para o risco: `{\"missing_fields\": [\"Net pay\"]}` para campos obrigatórios em falta, `{\"name_on_document\", \"score\", \"threshold\"}` para uma discrepância de nome e a conclusão forense (`detection_method`, detalhes do produtor/editor) para suspeita de manipulação. `null` quando não houver nada a acrescentar.","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":"Gravidade derivada da ação configurada: `error` (DECLINE), `warning` (REVIEW), `information` (NO_ACTION).","uniqueKey":"document_ai.warnings.items.[INDEX].log_type","typeLabel":"enum\u003cstring>"},"short_description":{"type":"string","description":"Resumo de uma linha legível por humanos para o risco.","example":"Required fields could not be extracted","uniqueKey":"document_ai.warnings.items.[INDEX].short_description","typeLabel":"string"},"long_description":{"type":"string","description":"Explicação legível, interpolada com `additional_data` quando relevante.","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":"Eco do `vendor_data` que enviou, ou `null`.","uniqueKey":"vendor_data.oneOf.0","typeLabel":"string"},{"type":"null","description":"Eco do `vendor_data` que enviou, ou `null`.","uniqueKey":"vendor_data.oneOf.1","typeLabel":"null"}],"uniqueKey":"vendor_data","typeLabel":"string | null"},"metadata":{"oneOf":[{"type":"object","additionalProperties":true,"description":"Eco do objeto `metadata` que enviou, ou `null`.","uniqueKey":"metadata.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":true,"description":"Eco do objeto `metadata` que enviou, ou `null`.","uniqueKey":"metadata.oneOf.1","typeLabel":"null"}],"uniqueKey":"metadata","typeLabel":"object | null"},"created_at":{"type":"string","format":"date-time","description":"Quando o pedido foi processado (UTC, ISO 8601).","uniqueKey":"created_at","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"","typeLabel":"object"},"exampleType":"examples"}},"exampleType":"examples"},"d9192c4d-0b72-4293-95b1-40423ec9ff21":{"description":"Erro de validação ou de processamento. Problemas ao nível do campo devolvem o envelope padrão do DRF (um array de mensagens por campo afetado). Documentos encriptados ou ilegíveis e falhas de extração devolvem `{\"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"},"9b989b5a-72a9-4f38-ba57-3147e811652e":{"description":"Permissão negada. Devolvido quando o cabeçalho `x-api-key` está em falta e também quando o saldo da organização que efetua a chamada não consegue cobrir a chamada; uma chave incorreta, revogada ou expirada devolve `401`. Uma chave em falta devolve `403` com `{\"detail\": ...}`; uma chave incorreta, revogada ou expirada devolve `401`. A insuficiência de créditos — e organizações com faturação por contrato cuja tabela de preços não tenha uma entrada para a Document AI API — devolvem `403` com `{\"error\": ...}` antes de qualquer processamento de documentos ocorrer.","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"},"fa8cbceb-d213-44a6-9c25-4428d79035c4":{"description":"Limite de pedidos excedido. Os endpoints POST/PATCH/DELETE partilham um orçamento de 300 pedidos de escrita por minuto por chave de API (as criações de transações e a ingestão de eventos têm um orçamento separado de 600). A resposta inclui os cabeçalhos `X-RateLimit-Limit`, `X-RateLimit-Remaining`, `X-RateLimit-Reset` e `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"},"d9972f77-fb96-4bd8-9dbf-90744d3e20c4":{"description":"Estão a ser processados demasiados documentos neste momento, pelo que este carregamento não foi processado: nada foi armazenado e nenhuma tentativa foi utilizada. Envie o mesmo ficheiro novamente após o número de segundos em `Retry-After`. Ramifique com base no `code`, não no texto da mensagem.","headers":{"Retry-After":{"description":"Segundos a aguardar antes de enviar o mesmo pedido novamente.","schema":{"type":"integer","example":10}}},"content":{"application/json":{"schema":{"type":"object","required":["detail","code"],"properties":{"detail":{"type":"string","isRequired":true,"uniqueKey":"detail","typeLabel":"string"},"code":{"type":"string","enum":["document_processing_busy"],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"}},"uniqueKey":"","typeLabel":"object"},"example":{"detail":"We are busy processing documents. Please try again in a moment.","code":"document_processing_busy"},"examples":{"Example":{"title":"Example","value":{"detail":"We are busy processing documents. Please try again in a moment.","code":"document_processing_busy"}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"0a1897b2-fbd1-440f-8626-49e38af5d3c0":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"x-api-key","description":"A chave de API da sua aplicação, a partir de Programadores -> Chaves de API na Business Console. A chave principal tem acesso total. Uma chave nomeada pode ter o âmbito definido: nenhum, leitura ou escrita por recurso, limitada a alguns fluxos ou a sessões aprovadas, a uma lista de endereços IP e a uma data de validade. 401 significa que a chave está incorreta, revogada ou expirada; 403 significa que nenhuma chave foi enviada, que a chave não tem acesso a este recurso ou ação, ou que o pedido veio de um endereço fora da sua lista de IP; 404 numa rota de sessão significa que a sessão está fora dos fluxos ou estados da chave. Uma chave sem acesso a multimédia recebe URLs de imagens, vídeos e PDFs como nulos, e uma chave sem permissão de escrita em sessões recebe ligações de sessão e tokens como nulos. Consulte https://docs.didit.me/console/api-keys.","scopes":[],"schemeName":"ApiKeyAuth"}}},"servers":{"19a65af2-e04f-405b-9abb-11f36ce51544":{"url":"https://verification.didit.me"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"x-api-key","description":"A chave de API da sua aplicação, a partir de Programadores -> Chaves de API na Business Console. A chave principal tem acesso total. Uma chave nomeada pode ter o âmbito definido: nenhum, leitura ou escrita por recurso, limitada a alguns fluxos ou a sessões aprovadas, a uma lista de endereços IP e a uma data de validade. 401 significa que a chave está incorreta, revogada ou expirada; 403 significa que nenhuma chave foi enviada, que a chave não tem acesso a este recurso ou ação, ou que o pedido veio de um endereço fora da sua lista de IP; 404 numa rota de sessão significa que a sessão está fora dos fluxos ou estados da chave. Uma chave sem acesso a multimédia recebe URLs de imagens, vídeos e PDFs como nulos, e uma chave sem permissão de escrita em sessões recebe ligações de sessão e tokens como nulos. Consulte https://docs.didit.me/console/api-keys.","scopes":[],"schemeName":"ApiKeyAuth"},"schema":{"title":"x-api-key","type":"string","description":"A chave de API da sua aplicação, a partir de Programadores -> Chaves de API na Business Console. A chave principal tem acesso total. Uma chave nomeada pode ter o âmbito definido: nenhum, leitura ou escrita por recurso, limitada a alguns fluxos ou a sessões aprovadas, a uma lista de endereços IP e a uma data de validade. 401 significa que a chave está incorreta, revogada ou expirada; 403 significa que nenhuma chave foi enviada, que a chave não tem acesso a este recurso ou ação, ou que o pedido veio de um endereço fora da sua lista de IP; 404 numa rota de sessão significa que a sessão está fora dos fluxos ou estados da chave. Uma chave sem acesso a multimédia recebe URLs de imagens, vídeos e PDFs como nulos, e uma chave sem permissão de escrita em sessões recebe ligações de sessão e tokens como nulos. Consulte https://docs.didit.me/console/api-keys.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"ApiKeyAuth","name":"x-api-key"}],"title":"ApiKeyAuth"}]},"originalFileLocation":"pt/openapi-25.json"},"subdomain":"didit-0f962782","siteName":"Didit Docs","title":"API Document AI: extração personalizada de documentos - Didit Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/standalone-apis/document-ai","matchLevel":1},"es":{"href":"/es/standalone-apis/document-ai","matchLevel":1},"pt-BR":{"href":"/pt-br/standalone-apis/document-ai","matchLevel":1},"ja":{"href":"/ja/standalone-apis/document-ai","matchLevel":1},"de":{"href":"/de/standalone-apis/document-ai","matchLevel":1},"fr":{"href":"/fr/standalone-apis/document-ai","matchLevel":1},"it":{"href":"/it/standalone-apis/document-ai","matchLevel":1},"pt":{"href":"/pt/standalone-apis/document-ai","matchLevel":0},"ca":{"href":"/ca/standalone-apis/document-ai","matchLevel":1},"id":{"href":"/id/standalone-apis/document-ai","matchLevel":1},"ru":{"href":"/ru/standalone-apis/document-ai","matchLevel":1},"ko":{"href":"/ko/standalone-apis/document-ai","matchLevel":1},"zh":{"href":"/zh/standalone-apis/document-ai","matchLevel":1},"ar":{"href":"/ar/standalone-apis/document-ai","matchLevel":1},"hi":{"href":"/hi/standalone-apis/document-ai","matchLevel":1}}},"lastModified":"2026-11-07T17:38:29.634Z","gitLastModified":"2026-11-07T17:24:04.000Z","originalFileLocation":"pt/standalone-apis/document-ai.mdx","locale":"pt"},"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=\"Didit: POST /v3/document-ai/ extrai campos definidos de qualquer PDF ou imagem, com verificação de nomes e adulteração. $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 Document AI: extração personalizada de documentos - Didit Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Didit: POST /v3/document-ai/ extrai campos definidos de qualquer PDF ou imagem, com verificação de nomes e adulteração. $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/pt/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.site/_mintlify/api/og/v2?division=IA+de+documentos\u0026amp;title=API+Document+AI%3A+extra%C3%A7%C3%A3o+personalizada+de+documentos\u0026amp;description=Didit%3A+POST+%2Fv3%2Fdocument-ai%2F+extrai+campos+definidos+de+qualquer+PDF+ou+imagem%2C+com+verifica%C3%A7%C3%A3o+de+nomes+e+adultera%C3%A7%C3%A3o.+%240.20+por+documento.\u0026amp;theme=f6d5c5eb819d99f700ee852a\u0026amp;signature=0e0114ad2bb9b3bae4154929199817549df20fd0baea5d57dc1d769bc5c25521\">\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 Document AI: extração personalizada de documentos - Didit Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Didit: POST /v3/document-ai/ extrai campos definidos de qualquer PDF ou imagem, com verificação de nomes e adulteração. $0.20 por documento.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://didit-0f962782.mintlify.site/_mintlify/api/og/v2?division=IA+de+documentos\u0026amp;title=API+Document+AI%3A+extra%C3%A7%C3%A3o+personalizada+de+documentos\u0026amp;description=Didit%3A+POST+%2Fv3%2Fdocument-ai%2F+extrai+campos+definidos+de+qualquer+PDF+ou+imagem%2C+com+verifica%C3%A7%C3%A3o+de+nomes+e+adultera%C3%A7%C3%A3o.+%240.20+por+documento.\u0026amp;theme=f6d5c5eb819d99f700ee852a\u0026amp;signature=0e0114ad2bb9b3bae4154929199817549df20fd0baea5d57dc1d769bc5c25521\">\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/pt/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=\"/pt/standalone-apis/document-ai.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"pt\" href=\"https://docs.didit.me/pt/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=\"es\" href=\"https://docs.didit.me/es/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=\"de\" href=\"https://docs.didit.me/de/standalone-apis/document-ai\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"fr\" href=\"https://docs.didit.me/fr/standalone-apis/document-ai\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"it\" href=\"https://docs.didit.me/it/standalone-apis/document-ai\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ca\" href=\"https://docs.didit.me/ca/standalone-apis/document-ai\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"id\" href=\"https://docs.didit.me/id/standalone-apis/document-ai\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ru\" href=\"https://docs.didit.me/ru/standalone-apis/document-ai\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ko\" href=\"https://docs.didit.me/ko/standalone-apis/document-ai\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"zh\" href=\"https://docs.didit.me/zh/standalone-apis/document-ai\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ar\" href=\"https://docs.didit.me/ar/standalone-apis/document-ai\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"hi\" href=\"https://docs.didit.me/hi/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/pt/standalone-apis/document-ai#webpage\",\"url\":\"https://docs.didit.me/pt/standalone-apis/document-ai\",\"name\":\"API Document AI: extração personalizada de documentos\",\"description\":\"Didit: POST /v3/document-ai/ extrai campos definidos de qualquer PDF ou imagem, com verificação de nomes e adulteração. $0.20 por documento.\",\"dateModified\":\"2026-11-07T17:24:04.000Z\",\"isPartOf\":{\"@id\":\"https://docs.didit.me#website\"},\"breadcrumb\":{\"@id\":\"https://docs.didit.me/pt/standalone-apis/document-ai#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.didit.me/pt/standalone-apis/document-ai#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Didit Docs\",\"item\":\"https://docs.didit.me\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"API Document AI: extração personalizada de documentos\",\"item\":\"https://docs.didit.me/pt/standalone-apis/document-ai\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.didit.me/pt/standalone-apis/document-ai#apireference\",\"headline\":\"API Document AI: extração personalizada de documentos\",\"name\":\"API Document AI: extração personalizada de documentos\",\"description\":\"Didit: POST /v3/document-ai/ extrai campos definidos de qualquer PDF ou imagem, com verificação de nomes e adulteração. $0.20 por documento.\",\"url\":\"https://docs.didit.me/pt/standalone-apis/document-ai\",\"mainEntityOfPage\":{\"@id\":\"https://docs.didit.me/pt/standalone-apis/document-ai#webpage\"},\"dateModified\":\"2026-11-07T17:24:04.000Z\",\"keywords\":\"API Document AI, API de extração de dados de documentos, API de OCR para documentos personalizados, API de comprovativo de fundos, API de extração de recibos de vencimento, OCR de extratos bancários, extração de documentos KYC, deteção de adulteração de documentos, API 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"}},"pages":[{"title":"es","href":"/es/standalone-apis/document-ai"}]},{"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"}]},{"language":"de","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":"Anmelden","href":"https://business.didit.me"}},"pages":[{"title":"de","href":"/de/standalone-apis/document-ai"}]},{"language":"fr","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"Assistance"},{"icon":"signal","href":"https://status.didit.me","label":"Statut"}],"primary":{"type":"button","label":"Se connecter","href":"https://business.didit.me"}},"pages":[{"title":"fr","href":"/fr/standalone-apis/document-ai"}]},{"language":"it","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"Supporto"},{"icon":"signal","href":"https://status.didit.me","label":"Stato"}],"primary":{"type":"button","label":"Accedi","href":"https://business.didit.me"}},"pages":[{"title":"it","href":"/it/standalone-apis/document-ai"}]},{"language":"pt","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"Suporte"},{"icon":"signal","href":"https://status.didit.me","label":"Estado"}],"primary":{"type":"button","label":"Iniciar sessão","href":"https://business.didit.me"}},"tabs":[{"tab":"Começar","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/rocket.svg","pages":[{"title":"Começar","href":"/pt"}]},{"tab":"Integrar / SDKs","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/code.svg","pages":[{"title":"Integrar / SDKs","href":"/pt/integration/sdks"}]},{"tab":"Referência da API","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/code.svg","groups":[{"group":"Visão geral","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/overview.svg","pages":[{"title":"Referência da API Didit: verificação de identidade REST","sidebarTitle":"Referência da API","href":"/pt/api-reference/overview"},{"title":"API de healthcheck: sonda de disponibilidade pública","sidebarTitle":"Healthcheck","openapi":"pt/openapi-healthcheck.json GET /system/healthcheck","href":"/pt/api-reference/healthcheck"},{"title":"Estado do serviço Didit: API de estado público","sidebarTitle":"Estado do serviço","openapi":"pt/openapi-25.json GET /v3/status/","href":"/pt/api-reference/service-status"},{"title":"API de preços de verificação bancária: feed público","sidebarTitle":"Preços de verificação bancária","openapi":"pt/openapi-25.json GET /v3/organization/bank-verification-pricing/","href":"/pt/api-reference/bank-verification-pricing"}]},{"group":"Verificações de utilizadores e empresas","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/user-verifications.svg","pages":[{"title":"API de Sessões: Verificação KYC e KYB Unificada","sidebarTitle":"Visão geral","href":"/pt/sessions-api/overview"},{"title":"API de criação de sessão: iniciar verificação KYC ou KYB","sidebarTitle":"Criar sessão","openapi":"pt/openapi-25.json POST /v3/session/","href":"/pt/sessions-api/create-session"},{"title":"Importar dados de outro fornecedor","openapi":"pt/openapi-25.json POST /v3/session/imports/","href":"/pt/sessions-api/import-verifications"},{"title":"API de Obtenção de Sessão: Dados de Decisão KYC e KYB","sidebarTitle":"Obter sessão","openapi":"pt/openapi-25.json GET /v3/session/{sessionId}/decision/","href":"/pt/sessions-api/retrieve-session"},{"title":"Listar sessões API: filtrar sessões KYC e KYB","sidebarTitle":"Listar sessões","openapi":"pt/openapi-25.json GET /v3/sessions/","href":"/pt/sessions-api/list-sessions"},{"title":"Atualizar Estado da Sessão API: Aprovar e Recusar","sidebarTitle":"Atualizar Estado da Sessão","openapi":"pt/openapi-25.json PATCH /v3/session/{sessionId}/update-status/","href":"/pt/sessions-api/update-status"},{"title":"Pré-visualizar e-mail de reenvio","openapi":"pt/openapi-25.json POST /v3/session/{sessionId}/resubmission-preview/","href":"/pt/sessions-api/preview-resubmission"},{"title":"Pré-visualizar e-mail de decisão: API de verificação","sidebarTitle":"Pré-visualizar e-mail de decisão","openapi":"pt/openapi-25.json POST /v3/session/{sessionId}/decision-email-preview/","href":"/pt/sessions-api/preview-decision-email"},{"title":"API Atualizar Estado de Funcionalidade: Aprovar/Recusar","sidebarTitle":"Atualizar Estado de Funcionalidade","openapi":"pt/openapi-25.json PATCH /v3/session/{sessionId}/features/{nodeId}/update-status/","href":"/pt/sessions-api/update-feature-status"},{"title":"Substituições de funcionalidades: histórico de passos","sidebarTitle":"Listar substituições de funcionalidades","openapi":"pt/openapi-25.json GET /v3/session/{sessionId}/features/overrides/","href":"/pt/sessions-api/list-feature-overrides"},{"title":"Cancelar Substituição de Funcionalidade na API","sidebarTitle":"Cancelar Substituição","openapi":"pt/openapi-25.json POST /v3/session/{sessionId}/features/overrides/{overrideId}/cancel/","href":"/pt/sessions-api/cancel-feature-override"},{"title":"API para atualizar o estado de hits AML","sidebarTitle":"Atualizar Estado de Hits AML","openapi":"pt/openapi-25.json PATCH /v3/session/{sessionId}/update-aml-hit-status/","href":"/pt/sessions-api/update-aml-hit-status"},{"title":"API de atualização de dados de sessão: corrigir KYC e KYB","sidebarTitle":"Atualizar dados de sessão","href":"/pt/sessions-api/update-data"},{"title":"API de atualização do estado da triagem AML","sidebarTitle":"Atualizar estado AML","openapi":"pt/openapi-25.json PATCH /v3/session/{sessionId}/update-aml-status/","href":"/pt/sessions-api/update-aml-status"},{"title":"Atualizar dados de IA de documentos na API","sidebarTitle":"Atualizar dados de IA de documentos","openapi":"pt/openapi-25.json PATCH /v3/document-ai/{sessionId}/documents/{documentUuid}/","href":"/pt/sessions-api/update-document-ai-data"},{"title":"Regenerar sessão KYC de pessoas-chave: API de verificação","sidebarTitle":"Regenerar sessão KYC de pessoas-chave","openapi":"pt/openapi-25.json POST /v3/session/{sessionId}/kyb/parties/{partyUuid}/regenerate/","href":"/pt/sessions-api/regenerate-kyb-party"},{"title":"Carregar documentos KYB através da API","sidebarTitle":"Carregar documentos KYB","openapi":"pt/openapi-25.json POST /v3/session/{sessionId}/kyb/documents/","href":"/pt/sessions-api/kyb-upload-documents"},{"title":"Listar partes extraídas KYB API","sidebarTitle":"Listar partes extraídas KYB","openapi":"pt/openapi-25.json GET /v3/session/{sessionId}/kyb/extracted-parties/","href":"/pt/sessions-api/kyb-extracted-parties"},{"title":"Listar rascunhos de pessoas-chave KYB na API","sidebarTitle":"Listar rascunhos KYB","openapi":"pt/openapi-25.json GET /v3/session/{sessionId}/kyb/parties/drafts/","href":"/pt/sessions-api/kyb-list-party-drafts"},{"title":"API para criar rascunho de pessoa KYB","sidebarTitle":"Criar rascunho KYB","openapi":"pt/openapi-25.json POST /v3/session/{sessionId}/kyb/parties/drafts/","href":"/pt/sessions-api/kyb-create-party-draft"},{"title":"Editar rascunho de pessoa-chave KYB API","sidebarTitle":"Editar rascunho KYB","openapi":"pt/openapi-25.json PATCH /v3/session/{sessionId}/kyb/parties/drafts/{draftId}/","href":"/pt/sessions-api/kyb-update-party-draft"},{"title":"Eliminar rascunho de pessoa-chave KYB API","sidebarTitle":"Eliminar rascunho KYB","openapi":"pt/openapi-25.json DELETE /v3/session/{sessionId}/kyb/parties/drafts/{draftId}/","href":"/pt/sessions-api/kyb-delete-party-draft"},{"title":"Submeter pessoas-chave KYB API","sidebarTitle":"Submeter pessoas-chave KYB","openapi":"pt/openapi-25.json POST /v3/session/{sessionId}/kyb/parties/submit/","href":"/pt/sessions-api/kyb-submit-parties"},{"title":"Adicionar imagens a uma sessão, API Didit","sidebarTitle":"Adicionar imagens à sessão","openapi":"pt/openapi-25.json PATCH /v3/session/{sessionId}/add-images/","href":"/pt/sessions-api/add-images"},{"title":"API para eliminar sessão: direito ao apagamento RGPD","sidebarTitle":"Eliminar sessão","openapi":"pt/openapi-25.json DELETE /v3/session/{sessionId}/delete/","href":"/pt/sessions-api/delete-session"},{"title":"API para gerar PDF: relatórios de conformidade KYC e KYB","sidebarTitle":"Gerar PDF","openapi":"pt/openapi-25.json GET /v3/session/{sessionId}/generate-pdf/","href":"/pt/sessions-api/generate-pdf"},{"title":"API para exportar todos os ficheiros de sessão num ZIP","sidebarTitle":"Exportar ficheiros","openapi":"pt/openapi-25.json POST /v3/session/{sessionId}/files-export/","href":"/pt/sessions-api/export-files"},{"title":"API de exportação de ficheiros da sessão: estado e link","sidebarTitle":"Obter exportação de ficheiros","openapi":"pt/openapi-25.json GET /v3/session/{sessionId}/files-export/{exportId}/","href":"/pt/sessions-api/get-files-export"},{"group":"Assinaturas eletrónicas","pages":[{"title":"API para descarregar documento assinado: PDF assinado","sidebarTitle":"Descarregar um documento assinado","openapi":"pt/openapi-25.json GET /v3/session/{sessionId}/signatures/{nodeId}/documents/{documentId}/file/","href":"/pt/sessions-api/electronic-signature/download-signed-document"},{"title":"Prova de assinatura eletrónica: PDF de auditoria","sidebarTitle":"Descarregar a prova de assinatura","openapi":"pt/openapi-25.json GET /v3/session/{sessionId}/signatures/{nodeId}/evidence/","href":"/pt/sessions-api/electronic-signature/download-evidence"},{"title":"API de imagem de assinatura: PNG da assinatura adotada","sidebarTitle":"Descarregar imagem da assinatura","openapi":"pt/openapi-25.json GET /v3/session/{sessionId}/signatures/{nodeId}/fields/{fieldId}/image/","href":"/pt/sessions-api/electronic-signature/download-field-image"},{"title":"API de validação de assinaturas: reverificar PDFs","sidebarTitle":"Validar assinaturas","openapi":"pt/openapi-25.json POST /v3/session/{sessionId}/signatures/{nodeId}/validate/","href":"/pt/sessions-api/electronic-signature/validate-signatures"}]},{"title":"API Share Session: KYC reutilizável entre parceiros","sidebarTitle":"Visão geral","href":"/pt/sessions-api/share-session/overview"},{"title":"API de Partilha de Sessão: Gerar Token de Partilha","sidebarTitle":"Partilha de Sessão","openapi":"pt/openapi-25.json POST /v3/session/{sessionId}/share/","href":"/pt/sessions-api/share-session/share"},{"title":"Importar sessão partilhada API: KYC reutilizável e KYB","sidebarTitle":"Importar sessão partilhada","openapi":"pt/openapi-25.json POST /v3/session/import-shared/","href":"/pt/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 de bloqueio e de permissão","sidebarTitle":"Visão geral","href":"/pt/management-api/lists/overview"},{"title":"Listar listas API: listas de bloqueio e de permissões","sidebarTitle":"Listar listas","openapi":"pt/openapi-25.json GET /v3/lists/","href":"/pt/management-api/lists/list"},{"title":"Criar lista via API: lista de permissões e personalizada","sidebarTitle":"Criar lista","openapi":"pt/openapi-25.json POST /v3/lists/","href":"/pt/management-api/lists/create"},{"title":"Obter lista API: consultar lista de conformidade","sidebarTitle":"Obter lista","openapi":"pt/openapi-25.json GET /v3/lists/{list_uuid}/","href":"/pt/management-api/lists/get"},{"title":"Atualizar lista via API: editar lista de conformidade","sidebarTitle":"Atualizar lista","openapi":"pt/openapi-25.json PATCH /v3/lists/{list_uuid}/","href":"/pt/management-api/lists/update"},{"title":"API para eliminar listas: remover lista de conformidade","sidebarTitle":"Eliminar lista","openapi":"pt/openapi-25.json DELETE /v3/lists/{list_uuid}/","href":"/pt/management-api/lists/delete"},{"title":"API de entradas de listas de bloqueio e permissões","sidebarTitle":"Entradas de listas","openapi":"pt/openapi-25.json GET /v3/lists/{list_uuid}/entries/","href":"/pt/management-api/lists/list-entries"},{"title":"Criar Entrada em Lista de Bloqueio e Permissões: API","sidebarTitle":"Criar Entrada na Lista","openapi":"pt/openapi-25.json POST /v3/lists/{list_uuid}/entries/","href":"/pt/management-api/lists/create-entry"},{"title":"Eliminar entrada de lista API: desbloquear item","sidebarTitle":"Eliminar entrada de lista","openapi":"pt/openapi-25.json DELETE /v3/lists/{list_uuid}/entries/{entry_uuid}/","href":"/pt/management-api/lists/delete-entry"},{"title":"Carregar rosto: listas biométricas da API","sidebarTitle":"Carregar rosto","openapi":"pt/openapi-25.json POST /v3/lists/{list_uuid}/entries/face-upload/","href":"/pt/management-api/lists/upload-face"}]},{"group":"Lista de bloqueio","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/lists.svg","pages":[{"title":"Listar itens da lista de bloqueio via API","sidebarTitle":"Listar itens bloqueados","openapi":"pt/openapi-25.json GET /v3/blocklist/","href":"/pt/management-api/blocklist/list"},{"title":"Adicionar à lista de bloqueio API: itens de sessão","sidebarTitle":"Adicionar à lista de bloqueio","openapi":"pt/openapi-25.json POST /v3/blocklist/add/","href":"/pt/management-api/blocklist/add"},{"title":"Remover da lista de bloqueio: API de desbloqueio","sidebarTitle":"Remover da lista de bloqueio","openapi":"pt/openapi-25.json POST /v3/blocklist/remove/","href":"/pt/management-api/blocklist/remove"}]},{"group":"Fluxos","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/workflows.svg","pages":[{"title":"API para listar fluxos: fluxos de verificação","sidebarTitle":"Listar fluxos","openapi":"pt/openapi-25.json GET /v3/workflows/","href":"/pt/management-api/workflows/list"},{"title":"API para criar fluxo: construir fluxo KYC","sidebarTitle":"Criar fluxo","openapi":"pt/openapi-25.json POST /v3/workflows/","href":"/pt/management-api/workflows/create"},{"title":"Configurações de funcionalidades de fluxo: API","sidebarTitle":"Configurações de fluxo","href":"/pt/management-api/workflows/feature-configs"},{"title":"Obter fluxo API: consultar fluxo KYC","sidebarTitle":"Obter fluxo","openapi":"pt/openapi-25.json GET /v3/workflows/{settings_uuid}/","href":"/pt/management-api/workflows/get"},{"title":"API de Atualização de Fluxos: Editar Fluxo KYC","sidebarTitle":"Atualizar Fluxo","openapi":"pt/openapi-25.json PATCH /v3/workflows/{settings_uuid}/","href":"/pt/management-api/workflows/update"},{"title":"Eliminar fluxo na API: remover fluxo KYC","sidebarTitle":"Eliminar fluxo","openapi":"pt/openapi-25.json DELETE /v3/workflows/{settings_uuid}/","href":"/pt/management-api/workflows/delete"}]},{"group":"Questionários","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/task-square.svg","pages":[{"title":"Listar questionários: API de formulários KYC","sidebarTitle":"Listar questionários","openapi":"pt/openapi-25.json GET /v3/questionnaires/","href":"/pt/management-api/questionnaires/list"},{"title":"API para criar questionário: formulário KYC personalizado","sidebarTitle":"Criar questionário","openapi":"pt/openapi-25.json POST /v3/questionnaires/","href":"/pt/management-api/questionnaires/create"},{"title":"Obter questionário API: consultar formulário KYC","sidebarTitle":"Obter questionário","openapi":"pt/openapi-25.json GET /v3/questionnaires/{questionnaire_uuid}/","href":"/pt/management-api/questionnaires/get"},{"title":"Atualizar questionário API: editar formulário KYC","sidebarTitle":"Atualizar questionário","openapi":"pt/openapi-25.json PATCH /v3/questionnaires/{questionnaire_uuid}/","href":"/pt/management-api/questionnaires/update"},{"title":"Eliminar questionário API: remover formulário KYC","sidebarTitle":"Eliminar questionário","openapi":"pt/openapi-25.json DELETE /v3/questionnaires/{questionnaire_uuid}/","href":"/pt/management-api/questionnaires/delete"}]},{"group":"Utilizadores","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/users.svg","pages":[{"title":"API para listar utilizadores: entidades do fornecedor","sidebarTitle":"Listar utilizadores","openapi":"pt/openapi-25.json GET /v3/users/","href":"/pt/management-api/users/list"},{"title":"Criar utilizador API: entidade User do fornecedor","sidebarTitle":"Criar utilizador","openapi":"pt/openapi-25.json POST /v3/users/create/","href":"/pt/management-api/users/create"},{"title":"Carregar rosto de utilizador: API e perfil do fornecedor","sidebarTitle":"Carregar rosto do utilizador","openapi":"pt/openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/vendor-users/by-id/{didit_internal_id}/faces/upload/","href":"/pt/management-api/users/upload-face"},{"title":"Obter utilizador API: entidade utilizador do fornecedor","sidebarTitle":"Obter utilizador","openapi":"pt/openapi-25.json GET /v3/users/{vendor_data}/","href":"/pt/management-api/users/get"},{"title":"API de PDF do histórico do utilizador: todas as sessões","sidebarTitle":"PDF do histórico do utilizador","openapi":"pt/openapi-25.json GET /v3/users/{vendor_data}/generate-pdf/","href":"/pt/management-api/users/generate-pdf"},{"title":"API de atualização de utilizador: entidade do fornecedor","sidebarTitle":"Atualizar utilizador","openapi":"pt/openapi-25.json PATCH /v3/users/{vendor_data}/","href":"/pt/management-api/users/update"},{"title":"Atualizar estado do utilizador: bloquear ou sinalizar","sidebarTitle":"Atualizar estado do utilizador","openapi":"pt/openapi-25.json PATCH /v3/users/{vendor_data}/update-status/","href":"/pt/management-api/users/update-status"},{"title":"API de eliminação em lote de utilizadores (RGPD)","sidebarTitle":"Eliminar utilizadores em lote","openapi":"pt/openapi-25.json POST /v3/users/delete/","href":"/pt/management-api/users/delete"}]},{"group":"Templates biométricos","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/liveness.svg","pages":[{"title":"API de templates biométricos","sidebarTitle":"Visão geral","href":"/pt/management-api/biometric-templates/overview"},{"title":"API para listar templates biométricos","sidebarTitle":"Listar templates","openapi":"pt/openapi-25.json GET /v3/biometric-templates/","href":"/pt/management-api/biometric-templates/list"},{"title":"Contar templates biométricos na API","sidebarTitle":"Contar templates","openapi":"pt/openapi-25.json GET /v3/biometric-templates/count/","href":"/pt/management-api/biometric-templates/count"},{"title":"Obter template biométrico: API","sidebarTitle":"Obter template","openapi":"pt/openapi-25.json GET /v3/biometric-templates/{template_uuid}/","href":"/pt/management-api/biometric-templates/get"},{"title":"Purgar template biométrico: API","sidebarTitle":"Purgar template","openapi":"pt/openapi-25.json DELETE /v3/biometric-templates/{template_uuid}/","href":"/pt/management-api/biometric-templates/purge"},{"title":"Eliminação em massa de templates biométricos via API","sidebarTitle":"Eliminação em massa","openapi":"pt/openapi-25.json POST /v3/biometric-templates/delete/","href":"/pt/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 fornecedores","sidebarTitle":"Listar empresas","openapi":"pt/openapi-25.json GET /v3/businesses/","href":"/pt/management-api/businesses/list"},{"title":"API para Criar Empresa: Entidade KYB de Fornecedor","sidebarTitle":"Criar Empresa","openapi":"pt/openapi-25.json POST /v3/businesses/create/","href":"/pt/management-api/businesses/create"},{"title":"API Get Business: Entidade KYB do fornecedor","sidebarTitle":"Obter empresa","openapi":"pt/openapi-25.json GET /v3/businesses/{vendor_data}/","href":"/pt/management-api/businesses/get"},{"title":"API de PDF de sessão de verificação de empresas","sidebarTitle":"Gerar PDF da sessão de empresa","openapi":"pt/openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/businesses/{business_session_id}/pdf/","href":"/pt/management-api/businesses/generate-session-pdf"},{"title":"Atualizar empresa API: entidade KYB de fornecedor","sidebarTitle":"Atualizar empresa","openapi":"pt/openapi-25.json PATCH /v3/businesses/{vendor_data}/","href":"/pt/management-api/businesses/update"},{"title":"API Atualizar Estado de Empresa: Bloquear ou Sinalizar","sidebarTitle":"Atualizar Estado da Empresa","openapi":"pt/openapi-25.json PATCH /v3/businesses/{vendor_data}/update-status/","href":"/pt/management-api/businesses/update-status"},{"title":"API de eliminação em lote de empresas: apagamento KYB","sidebarTitle":"Eliminar empresas em lote","openapi":"pt/openapi-25.json POST /v3/businesses/delete/","href":"/pt/management-api/businesses/delete"}]},{"group":"Monitorização AML contínua","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/aml-screening.svg","pages":[{"title":"Ativar ou desativar monitorização AML de utilizadores","sidebarTitle":"Ativar para utilizadores","openapi":"pt/openapi-25.json POST /v3/users/aml-monitoring/","href":"/pt/management-api/aml-monitoring/toggle-users"},{"title":"Ativar/desativar monitorização AML de empresas via API","sidebarTitle":"Ativar para empresas","openapi":"pt/openapi-25.json POST /v3/businesses/aml-monitoring/","href":"/pt/management-api/aml-monitoring/toggle-businesses"},{"title":"Obter tarefa de monitorização AML (API)","sidebarTitle":"Obter tarefa de monitorização AML","openapi":"pt/openapi-25.json GET /v3/aml-monitoring/jobs/{job_id}/","href":"/pt/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":"Listar casos API","sidebarTitle":"Listar casos","openapi":"pt/openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/cases/","href":"/pt/management-api/cases/list"},{"title":"Criar caso: API de Gestão de casos","sidebarTitle":"Criar caso","openapi":"pt/openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/cases/","href":"/pt/management-api/cases/create"},{"title":"Obter caso via API","sidebarTitle":"Obter caso","openapi":"pt/openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/","href":"/pt/management-api/cases/get"},{"title":"Atualizar caso API","sidebarTitle":"Atualizar caso","openapi":"pt/openapi-25.json PATCH /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/","href":"/pt/management-api/cases/update"},{"title":"API para eliminar caso","sidebarTitle":"Eliminar caso","openapi":"pt/openapi-25.json DELETE /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/","href":"/pt/management-api/cases/delete"},{"title":"API para resolver casos","sidebarTitle":"Resolver caso","openapi":"pt/openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/resolve/","href":"/pt/management-api/cases/resolve"},{"title":"Pedido de Informação em Caso API","sidebarTitle":"Pedir Informação (Aguarda Utilizador)","openapi":"pt/openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/request-info/","href":"/pt/management-api/cases/request-info"},{"title":"API de transferência de casos","sidebarTitle":"Transferir caso","openapi":"pt/openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/transfer/","href":"/pt/management-api/cases/transfer"},{"title":"API de impressão de caso em PDF","sidebarTitle":"Imprimir caso","openapi":"pt/openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/print/","href":"/pt/management-api/cases/print"},{"title":"API de análise de casos","sidebarTitle":"Análise de casos","openapi":"pt/openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/cases/statistics/","href":"/pt/management-api/cases/statistics"},{"title":"Atualização em massa do estado de casos (API)","sidebarTitle":"Atualizar estado em massa","openapi":"pt/openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/cases/bulk/status/","href":"/pt/management-api/cases/bulk-status"},{"title":"Listar Notas de Caso API","sidebarTitle":"Listar Notas de Caso","openapi":"pt/openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/notes/","href":"/pt/management-api/cases/list-notes"},{"title":"Criar nota de caso na API","sidebarTitle":"Criar nota de caso","openapi":"pt/openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/notes/","href":"/pt/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":"Listar Modelos de Caso API","sidebarTitle":"Listar Modelos de Caso","openapi":"pt/openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/cases/blueprints/","href":"/pt/management-api/case-blueprints/list"},{"title":"API para criar modelo de caso","sidebarTitle":"Criar modelo de caso","openapi":"pt/openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/cases/blueprints/","href":"/pt/management-api/case-blueprints/create"},{"title":"Instalar Predefinições de Blueprint API","sidebarTitle":"Instalar predefinições de blueprint","openapi":"pt/openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/cases/blueprints/presets/install/","href":"/pt/management-api/case-blueprints/install-presets"}]},{"group":"Redes","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/link.svg","pages":[{"title":"Listar redes de fraude API","sidebarTitle":"Listar redes","openapi":"pt/openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/networks/","href":"/pt/management-api/networks/list"},{"title":"Obter Rede de Fraude API","sidebarTitle":"Obter Rede","openapi":"pt/openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/networks/{network_uuid}/","href":"/pt/management-api/networks/get"},{"title":"Adicionar Etiqueta a Rede de Fraude API","sidebarTitle":"Adicionar Etiqueta à Rede","openapi":"pt/openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/networks/{network_uuid}/tags/add/","href":"/pt/management-api/networks/add-tag"},{"title":"Remover uma Etiqueta de uma Rede de Fraude através da API","sidebarTitle":"Remover Etiqueta de Rede","openapi":"pt/openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/networks/{network_uuid}/tags/remove/","href":"/pt/management-api/networks/remove-tag"},{"title":"API do Grafo de Redes de Fraude","sidebarTitle":"Obter Grafo de Rede","openapi":"pt/openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/networks/{network_uuid}/graph/","href":"/pt/management-api/networks/graph"},{"title":"Listar membros de redes de fraude API","sidebarTitle":"Listar membros da rede","openapi":"pt/openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/networks/{network_uuid}/members/","href":"/pt/management-api/networks/members"},{"title":"Listar sinais de rede de fraude (API)","sidebarTitle":"Listar sinais de rede","openapi":"pt/openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/networks/{network_uuid}/signals/","href":"/pt/management-api/networks/signals"},{"title":"API de Cronologia da Rede de Fraude","sidebarTitle":"Obter cronologia da rede","openapi":"pt/openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/networks/{network_uuid}/timeline/","href":"/pt/management-api/networks/timeline"},{"title":"API de Mapa de Rede de Fraude","sidebarTitle":"Obter Mapa de Rede","openapi":"pt/openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/networks/{network_uuid}/map/","href":"/pt/management-api/networks/map"},{"title":"API de Consulta de Membros da Rede","sidebarTitle":"Consulta de Membros","href":"/pt/management-api/networks/membership-lookup"}]},{"group":"Modelos de relatórios","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/task-square.svg","pages":[{"title":"Listar modelos de relatório API","sidebarTitle":"Listar modelos de relatório","openapi":"pt/openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/report-templates/","href":"/pt/management-api/report-templates/list"},{"title":"Criar modelo de relatório API","sidebarTitle":"Criar modelo de relatório","openapi":"pt/openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/report-templates/","href":"/pt/management-api/report-templates/create"}]},{"group":"Relatórios regulamentares","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/search-file.svg","pages":[{"title":"API para criar relatório FIU a partir de caso","sidebarTitle":"Criar relatório a partir do caso","openapi":"pt/openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/regulatory-reports/","href":"/pt/management-api/regulatory-reports/create-for-case"},{"title":"Listar relatórios FIU na API","sidebarTitle":"Listar relatórios","openapi":"pt/openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/regulatory-reports/","href":"/pt/management-api/regulatory-reports/list"},{"title":"Validar relatório FIU na API","sidebarTitle":"Validar relatório","openapi":"pt/openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/regulatory-reports/{report_uuid}/validate/","href":"/pt/management-api/regulatory-reports/validate"},{"title":"Finalizar relatório FIU API","sidebarTitle":"Finalizar relatório","openapi":"pt/openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/regulatory-reports/{report_uuid}/finalize/","href":"/pt/management-api/regulatory-reports/finalize"},{"title":"Eliminar relatório UIF via API","sidebarTitle":"Eliminar relatório","openapi":"pt/openapi-25.json DELETE /v3/organization/{organization_id}/application/{application_id}/regulatory-reports/{report_uuid}/","href":"/pt/management-api/regulatory-reports/delete"},{"title":"API de URL de download de relatório FIU","sidebarTitle":"Obter URL de download","openapi":"pt/openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/regulatory-reports/{report_uuid}/download-url/","href":"/pt/management-api/regulatory-reports/download-url"}]},{"group":"Transações","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/transactions.svg","pages":[{"title":"API de listagem de transações: monitorização KYT","sidebarTitle":"Listar transações","openapi":"pt/openapi-25.json GET /v3/transactions/","href":"/pt/management-api/transactions/list"},{"title":"Criar Transação API: Submissão KYT","sidebarTitle":"Criar transação","openapi":"pt/openapi-25.json POST /v3/transactions/","href":"/pt/management-api/transactions/create"},{"title":"Eliminar transações em lote (API)","sidebarTitle":"Eliminar transações em lote","openapi":"pt/openapi-25.json DELETE /v3/organization/{organization_id}/application/{application_id}/transactions/delete/","href":"/pt/management-api/transactions/delete"},{"title":"Obter transação API: detalhe KYT","sidebarTitle":"Obter transação","openapi":"pt/openapi-25.json GET /v3/transactions/{transaction_id}/","href":"/pt/management-api/transactions/get"},{"title":"Listar notas de transação (API)","sidebarTitle":"Listar notas de transação","openapi":"pt/openapi-25.json GET /v3/transactions/{transaction_id}/notes/","href":"/pt/management-api/transactions/list-notes"},{"title":"API para criar nota de transação","sidebarTitle":"Criar nota de transação","openapi":"pt/openapi-25.json POST /v3/transactions/{transaction_id}/notes/","href":"/pt/management-api/transactions/create-note"},{"title":"Listar transações relacionadas API","sidebarTitle":"Listar transações relacionadas","openapi":"pt/openapi-25.json GET /v3/transactions/{transaction_id}/related/","href":"/pt/management-api/transactions/list-related"},{"title":"API de Relatório PDF de Transações","sidebarTitle":"Gerar Relatório PDF de Transação","openapi":"pt/openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/transactions/{transaction_uuid}/pdf/","href":"/pt/management-api/transactions/generate-pdf"},{"title":"API de Triagem de Carteiras: AML Cripto sob Pedido","sidebarTitle":"Triagem de Carteiras","openapi":"pt/openapi-25.json POST /v3/wallet-screening/","href":"/pt/management-api/transactions/screen-wallet"},{"title":"API de Relatório PDF de Triagem de Carteiras","sidebarTitle":"Gerar PDF de triagem de carteira","openapi":"pt/openapi-25.json POST /v3/wallet-screening/pdf/","href":"/pt/management-api/transactions/screen-wallet-pdf"},{"title":"Emitir token de transação SDK: API de KYT no cliente","sidebarTitle":"Emitir token de transação SDK","openapi":"pt/openapi-25.json POST /v3/transactions/sdk-token/","href":"/pt/management-api/transactions/sdk-token"},{"title":"Submeter Transação via SDK: KYT do Lado do Cliente","sidebarTitle":"Submeter Transação (Token SDK)","openapi":"pt/openapi-25.json POST /v1/transactions/","href":"/pt/management-api/transactions/submit-sdk"},{"title":"Obter transação com SDK: KYT no lado do cliente","sidebarTitle":"Obter transação (token SDK)","openapi":"pt/openapi-25.json GET /v1/transactions/{transaction_id}/","href":"/pt/management-api/transactions/get-sdk"},{"title":"Listar regras de monitorização de transações API","sidebarTitle":"Listar regras","openapi":"pt/openapi-25.json GET /v3/transactions/rules/","href":"/pt/management-api/transactions/rules-list"},{"title":"Criar Regra de Monitorização de Transações API - KYT","sidebarTitle":"Criar Regra","openapi":"pt/openapi-25.json POST /v3/transactions/rules/","href":"/pt/management-api/transactions/rules-create"},{"title":"Monitorização de transações: obter regra via API","sidebarTitle":"Obter regra","openapi":"pt/openapi-25.json GET /v3/transactions/rules/{rule_uuid}/","href":"/pt/management-api/transactions/rules-get"},{"title":"Atualizar regra de Monitorização de transações via API","sidebarTitle":"Atualizar regra","openapi":"pt/openapi-25.json PATCH /v3/transactions/rules/{rule_uuid}/","href":"/pt/management-api/transactions/rules-update"},{"title":"Eliminar regra de Monitorização de transações via API","sidebarTitle":"Eliminar regra","openapi":"pt/openapi-25.json DELETE /v3/transactions/rules/{rule_uuid}/","href":"/pt/management-api/transactions/rules-delete"},{"title":"Backtest de regras de Monitorização de transações API","sidebarTitle":"Backtest de regras","openapi":"pt/openapi-25.json POST /v3/transactions/rules/backtest/","href":"/pt/management-api/transactions/rules-backtest"},{"title":"Monitorização de Transações: API com 150+ Predefinições","sidebarTitle":"Listar biblioteca de regras","openapi":"pt/openapi-25.json GET /v3/transactions/rules/library/","href":"/pt/management-api/transactions/rules-library"},{"title":"Instalar regras de monitorização de transações via API","sidebarTitle":"Instalar regras da biblioteca","openapi":"pt/openapi-25.json POST /v3/transactions/rules/install/","href":"/pt/management-api/transactions/rules-install"},{"title":"Desinstalar regras de monitorização de transações API","sidebarTitle":"Desinstalar regras da biblioteca","openapi":"pt/openapi-25.json DELETE /v3/transactions/rules/install/","href":"/pt/management-api/transactions/rules-uninstall"}]},{"group":"Eventos de monitorização","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/transactions.svg","pages":[{"title":"Listar Eventos de Monitorização API","sidebarTitle":"Listar Eventos de Monitorização","openapi":"pt/openapi-25.json GET /v3/events/","href":"/pt/management-api/monitoring-events/list"},{"title":"API para Criar Evento de Monitorização","sidebarTitle":"Criar Evento de Monitorização","openapi":"pt/openapi-25.json POST /v3/events/","href":"/pt/management-api/monitoring-events/create"},{"title":"API de Eventos de Monitorização em Lote","sidebarTitle":"Criar Eventos de Monitorização em Lote","openapi":"pt/openapi-25.json POST /v3/events/batch/","href":"/pt/management-api/monitoring-events/create-batch"},{"title":"Gerar token SDK de monitorização da API","sidebarTitle":"Gerar token SDK de monitorização","openapi":"pt/openapi-25.json POST /v3/events/sdk-token/","href":"/pt/management-api/monitoring-events/sdk-token"},{"title":"Obter Evento de Monitorização API","sidebarTitle":"Obter Evento","openapi":"pt/openapi-25.json GET /v3/events/{event_uuid}/","href":"/pt/management-api/monitoring-events/get"},{"title":"API de cronologia de eventos do titular","sidebarTitle":"Obter cronologia de eventos do titular","openapi":"pt/openapi-25.json GET /v3/events/subjects/{vendor_data}/","href":"/pt/management-api/monitoring-events/subject-timeline"},{"title":"Métricas de enriquecimento de eventos (API)","sidebarTitle":"Obter métricas de enriquecimento","openapi":"pt/openapi-25.json GET /v3/events/enrichment-metrics/","href":"/pt/management-api/monitoring-events/enrichment-metrics"},{"title":"Eliminar evento de monitorização - API","sidebarTitle":"Eliminar evento","openapi":"pt/openapi-25.json DELETE /v3/events/{event_uuid}/delete/","href":"/pt/management-api/monitoring-events/delete"}]},{"group":"Travel Rule","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/transactions.svg","pages":[{"title":"Obter definições da Travel Rule: perfil VASP da API","sidebarTitle":"Obter definições da Travel Rule","openapi":"pt/openapi-25.json GET /v3/travel-rule/settings/","href":"/pt/management-api/travel-rule/get-settings"},{"title":"API Travel Rule: Atualizar, Ativar e Configurar","sidebarTitle":"Atualizar Definições da Travel Rule","openapi":"pt/openapi-25.json PUT /v3/travel-rule/settings/","href":"/pt/management-api/travel-rule/update-settings"},{"title":"API de redes Travel Rule: obter estado","sidebarTitle":"Obter redes Travel Rule","openapi":"pt/openapi-25.json GET /v3/travel-rule/networks/","href":"/pt/management-api/travel-rule/get-networks"},{"title":"Questionário da rede Travel Rule: obter via API","sidebarTitle":"Obter questionário da rede","openapi":"pt/openapi-25.json GET /v3/travel-rule/networks/questionnaire/","href":"/pt/management-api/travel-rule/get-network-questionnaire"},{"title":"Guardar questionário da Travel Rule da rede: API","sidebarTitle":"Guardar respostas do questionário da rede","openapi":"pt/openapi-25.json PUT /v3/travel-rule/networks/questionnaire/","href":"/pt/management-api/travel-rule/update-network-questionnaire"},{"title":"Submeter questionário de rede Travel Rule na API","sidebarTitle":"Submeter questionário da rede","openapi":"pt/openapi-25.json POST /v3/travel-rule/networks/questionnaire/submit/","href":"/pt/management-api/travel-rule/submit-network-questionnaire"},{"title":"Pedir acesso à rede Travel Rule na API de Gestão","sidebarTitle":"Pedir rede Travel Rule","openapi":"pt/openapi-25.json POST /v3/travel-rule/networks/{network}/request/","href":"/pt/management-api/travel-rule/request-network"},{"title":"Confirmar e-mail de conformidade da Travel Rule API","sidebarTitle":"Enviar confirmação do e-mail de conformidade","openapi":"pt/openapi-25.json POST /v3/travel-rule/settings/compliance-email/confirmation/","href":"/pt/management-api/travel-rule/send-compliance-email-confirmation"},{"title":"Listar transferências Travel Rule na API","sidebarTitle":"Listar transferências Travel Rule","openapi":"pt/openapi-25.json GET /v3/travel-rule/transfers/","href":"/pt/management-api/travel-rule/list-transfers"},{"title":"Listar Depósitos Travel Rule Não Correspondidos API","sidebarTitle":"Listar Depósitos Não Correspondidos","openapi":"pt/openapi-25.json GET /v3/travel-rule/unmatched/","href":"/pt/management-api/travel-rule/list-unmatched-deposits"},{"title":"Corresponder Depósito Travel Rule: Associar Mensagem","sidebarTitle":"Corresponder Depósito Não Associado","openapi":"pt/openapi-25.json POST /v3/travel-rule/unmatched/{transaction_uuid}/match/","href":"/pt/management-api/travel-rule/match-unmatched-deposit"},{"title":"API Travel Rule: concluir, reenviar, atualizar","sidebarTitle":"Concluir, cancelar, reenviar ou atualizar uma transferência","openapi":"pt/openapi-25.json PATCH /v3/transactions/{transaction_id}/travel-rule/","href":"/pt/management-api/travel-rule/update-transfer"},{"title":"API de confirmação de propriedade da carteira Travel Rule","sidebarTitle":"Confirmar ou recusar carteira","openapi":"pt/openapi-25.json POST /v3/transactions/{transaction_id}/travel-rule/ownership/","href":"/pt/management-api/travel-rule/confirm-ownership"},{"title":"Listar mensagens da Travel Rule API","sidebarTitle":"Listar mensagens da Travel Rule","openapi":"pt/openapi-25.json GET /v3/transactions/{transaction_id}/travel-rule/messages/","href":"/pt/management-api/travel-rule/list-messages"},{"title":"API para enviar mensagem Travel Rule","sidebarTitle":"Enviar mensagem Travel Rule","openapi":"pt/openapi-25.json POST /v3/transactions/{transaction_id}/travel-rule/messages/","href":"/pt/management-api/travel-rule/create-message"},{"title":"Registar transferência recebida Sunrise: API Travel Rule","sidebarTitle":"Registar transferência recebida (Sunrise)","openapi":"pt/openapi-25.json POST /v3/travel-rule/inbound/","href":"/pt/management-api/travel-rule/register-inbound"},{"title":"Acionar transferência de entrada de VASP de teste: API","sidebarTitle":"Acionar transferência de entrada de teste","openapi":"pt/openapi-25.json POST /v3/travel-rule/test-vasp/inbound/","href":"/pt/management-api/travel-rule/trigger-test-vasp-inbound"},{"title":"API de pesquisa no diretório de VASP: rotas Travel Rule","sidebarTitle":"Pesquisar o diretório de VASP","openapi":"pt/openapi-25.json GET /v3/travel-rule/vasps/","href":"/pt/management-api/travel-rule/search-vasps"},{"title":"Obter entrada do diretório de VASP: API da Travel Rule","sidebarTitle":"Obter entrada de VASP","openapi":"pt/openapi-25.json GET /v3/travel-rule/vasps/{vasp_id}/","href":"/pt/management-api/travel-rule/get-vasp"},{"title":"Decisão sobre VASP contraparte na API Travel Rule","sidebarTitle":"Decisão sobre um VASP","openapi":"pt/openapi-25.json GET /v3/travel-rule/vasps/{vasp_id}/decision/","href":"/pt/management-api/travel-rule/get-vasp-decision"},{"title":"Definir decisão sobre VASP contraparte: API Travel Rule","sidebarTitle":"Definir decisão sobre um VASP","openapi":"pt/openapi-25.json PUT /v3/travel-rule/vasps/{vasp_id}/decision/","href":"/pt/management-api/travel-rule/set-vasp-decision"},{"title":"Limpar decisão de uma VASP contraparte: API Travel Rule","sidebarTitle":"Limpar a sua decisão sobre uma VASP","openapi":"pt/openapi-25.json DELETE /v3/travel-rule/vasps/{vasp_id}/decision/","href":"/pt/management-api/travel-rule/clear-vasp-decision"},{"title":"Obter triagem de VASP contraparte: Travel Rule","sidebarTitle":"Triagem de entidade do VASP","openapi":"pt/openapi-25.json GET /v3/travel-rule/vasps/{vasp_id}/screening/","href":"/pt/management-api/travel-rule/get-vasp-screening"},{"title":"Triagem de VASP contraparte: verificação de sanções","sidebarTitle":"Triagem de VASP contraparte","openapi":"pt/openapi-25.json POST /v3/travel-rule/vasps/{vasp_id}/screening/","href":"/pt/management-api/travel-rule/screen-vasp"},{"title":"Listar Questionários de Diligência Devida VASP API","sidebarTitle":"Listar questionários de diligência devida","openapi":"pt/openapi-25.json GET /v3/travel-rule/vasps/{vasp_id}/questionnaires/","href":"/pt/management-api/travel-rule/list-vasp-questionnaires"},{"title":"Enviar Questionário de Diligência Devida a uma VASP — API","sidebarTitle":"Enviar Questionário de Diligência a uma VASP","openapi":"pt/openapi-25.json POST /v3/travel-rule/vasps/{vasp_id}/questionnaires/","href":"/pt/management-api/travel-rule/send-vasp-questionnaire"},{"title":"Listar contactos de contrapartes VASP - Canal de e-mail da Travel Rule","sidebarTitle":"Listar contactos de contrapartes","openapi":"pt/openapi-25.json GET /v3/travel-rule/counterparty-contacts/","href":"/pt/management-api/travel-rule/list-counterparty-contacts"},{"title":"API para adicionar contacto de contraparte - Travel Rule","sidebarTitle":"Adicionar contacto de contraparte","openapi":"pt/openapi-25.json POST /v3/travel-rule/counterparty-contacts/","href":"/pt/management-api/travel-rule/create-counterparty-contact"},{"title":"Eliminar contacto de contraparte VASP - API Travel Rule","sidebarTitle":"Eliminar contacto de contraparte","openapi":"pt/openapi-25.json DELETE /v3/travel-rule/counterparty-contacts/{contact_uuid}/","href":"/pt/management-api/travel-rule/delete-counterparty-contact"},{"title":"Listar endereços API: Livro de endereços Travel Rule","sidebarTitle":"Listar endereços","openapi":"pt/openapi-25.json GET /v3/travel-rule/wallet-addresses/","href":"/pt/management-api/travel-rule/list-wallet-addresses"},{"title":"API para registar endereço de carteira: Travel Rule","sidebarTitle":"Registar endereço de carteira","openapi":"pt/openapi-25.json POST /v3/travel-rule/wallet-addresses/","href":"/pt/management-api/travel-rule/create-wallet-address"},{"title":"API para importar endereços de carteira: Travel Rule","sidebarTitle":"Importar endereços de carteira","openapi":"pt/openapi-25.json POST /v3/travel-rule/wallet-addresses/import/","href":"/pt/management-api/travel-rule/import-wallet-addresses"},{"title":"API para atualizar endereço de carteira: Travel Rule","sidebarTitle":"Atualizar endereço de carteira","openapi":"pt/openapi-25.json PATCH /v3/travel-rule/wallet-addresses/{entry_uuid}/","href":"/pt/management-api/travel-rule/update-wallet-address"},{"title":"Eliminar endereço de carteira: API do livro Travel Rule","sidebarTitle":"Eliminar endereço de carteira","openapi":"pt/openapi-25.json DELETE /v3/travel-rule/wallet-addresses/{entry_uuid}/","href":"/pt/management-api/travel-rule/delete-wallet-address"},{"title":"Comprovativos de carteira para revisão: API Travel Rule","sidebarTitle":"Comprovativos por revisar","openapi":"pt/openapi-25.json GET /v3/travel-rule/wallet-proofs/","href":"/pt/management-api/travel-rule/list-wallet-proofs"},{"title":"API para Aprovar ou Rejeitar Comprovativo de Carteira","sidebarTitle":"Decidir Comprovativo de Carteira","openapi":"pt/openapi-25.json POST /v3/travel-rule/wallet-proofs/{proof_uuid}/decision/","href":"/pt/management-api/travel-rule/decide-wallet-proof"},{"title":"Criar widget de prova de controlo de carteira: API","sidebarTitle":"Criar sessão do widget de carteira","openapi":"pt/openapi-25.json POST /v3/travel-rule/widget-session/","href":"/pt/management-api/travel-rule/create-widget-session"},{"title":"Obter contexto do widget de propriedade de carteira API","sidebarTitle":"Obter contexto do widget","openapi":"pt/openapi-25.json GET /v3/travel-rule/widget/{token}/","href":"/pt/management-api/travel-rule/get-widget-context"},{"title":"Iniciar prova de propriedade de carteira - Travel Rule","sidebarTitle":"Iniciar prova no widget","openapi":"pt/openapi-25.json POST /v3/travel-rule/widget/{token}/proofs/","href":"/pt/management-api/travel-rule/create-widget-proof"},{"title":"Submeter prova de propriedade de carteira - Travel Rule","sidebarTitle":"Submeter prova do widget","openapi":"pt/openapi-25.json POST /v3/travel-rule/widget/{token}/proofs/{proof_id}/verify/","href":"/pt/management-api/travel-rule/verify-widget-proof"},{"title":"API de seleção de VASP do widget: contraparte Travel Rule","sidebarTitle":"Escolher a VASP contraparte no widget da carteira","openapi":"pt/openapi-25.json POST /v3/travel-rule/widget/{token}/vasps/","href":"/pt/management-api/travel-rule/select-widget-vasp"},{"title":"API do seletor VASP do widget: pesquisa Travel Rule","sidebarTitle":"Pesquisar VASPs no widget de carteira","openapi":"pt/openapi-25.json GET /v3/travel-rule/widget/{token}/vasps/","href":"/pt/management-api/travel-rule/search-widget-vasps"},{"title":"Obter Informações de Recolha por E-mail: API Travel Rule","sidebarTitle":"Obter Informações de Recolha por E-mail","openapi":"pt/openapi-25.json GET /v3/travel-rule/pickup/{token}/","href":"/pt/management-api/travel-rule/get-pickup"},{"title":"Responder à recolha por e-mail (API): Travel Rule","sidebarTitle":"Responder à recolha por e-mail","openapi":"pt/openapi-25.json POST /v3/travel-rule/pickup/{token}/respond/","href":"/pt/management-api/travel-rule/respond-pickup"},{"title":"Listar mensagens de recolha: API Travel Rule por e-mail","sidebarTitle":"Listar mensagens de recolha","openapi":"pt/openapi-25.json GET /v3/travel-rule/pickup/{token}/messages/","href":"/pt/management-api/travel-rule/list-pickup-messages"},{"title":"Responder no Portal Pickup – API Travel Rule via e-mail","sidebarTitle":"Responder no Portal Pickup","openapi":"pt/openapi-25.json POST /v3/travel-rule/pickup/{token}/messages/","href":"/pt/management-api/travel-rule/create-pickup-message"},{"title":"Convite de adesão Travel Rule gratuito - API","sidebarTitle":"Obter convite de adesão","openapi":"pt/openapi-25.json GET /v3/travel-rule/join/{token}/","href":"/pt/management-api/travel-rule/get-join-invitation"},{"title":"Registar uma conta Travel Rule gratuita na API","sidebarTitle":"Registar conta Travel Rule gratuita","openapi":"pt/openapi-25.json POST /v3/travel-rule/join/{token}/","href":"/pt/management-api/travel-rule/register-join"},{"title":"Verificar uma conta gratuita de Travel Rule na API","sidebarTitle":"Verificar conta gratuita Travel Rule","openapi":"pt/openapi-25.json POST /v3/travel-rule/join/{token}/verify/","href":"/pt/management-api/travel-rule/verify-join"},{"title":"API para obter workspace gratuito - Travel Rule","sidebarTitle":"Obter workspace gratuito","openapi":"pt/openapi-25.json GET /v3/travel-rule/workspace/","href":"/pt/management-api/travel-rule/get-workspace"},{"title":"Reivindicar entrada de diretório - API Travel Rule","sidebarTitle":"Reivindicar entrada de diretório","openapi":"pt/openapi-25.json POST /v3/travel-rule/workspace/claim/","href":"/pt/management-api/travel-rule/claim-workspace"},{"title":"Enviar código de domínio - Travel Rule, adesão gratuita","sidebarTitle":"Enviar código de domínio","openapi":"pt/openapi-25.json POST /v3/travel-rule/workspace/domain/code/","href":"/pt/management-api/travel-rule/send-workspace-domain-code"},{"title":"Confirmar domínio API Travel Rule, adesão gratuita","sidebarTitle":"Confirmar código de domínio","openapi":"pt/openapi-25.json POST /v3/travel-rule/workspace/domain/confirm/","href":"/pt/management-api/travel-rule/confirm-workspace-domain"},{"title":"Verificar domínio por DNS - Adesão gratuita à Travel Rule","sidebarTitle":"Verificar domínio por DNS","openapi":"pt/openapi-25.json POST /v3/travel-rule/workspace/domain/dns/","href":"/pt/management-api/travel-rule/verify-workspace-domain-dns"},{"title":"Ativar faturação de saída da Travel Rule - Adesão gratuita","sidebarTitle":"Ativar faturação de saída","openapi":"pt/openapi-25.json POST /v3/travel-rule/workspace/billing/","href":"/pt/management-api/travel-rule/enable-workspace-billing"}]},{"group":"Operações de sessão","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/play.svg","pages":[{"title":"Eliminação em lote de sessões: API Didit","sidebarTitle":"Eliminar sessões em lote","openapi":"pt/openapi-25.json POST /v3/sessions/delete/","href":"/pt/management-api/sessions/batch-delete"},{"title":"Consultar tarefa de eliminação de sessões API","sidebarTitle":"Tarefa de eliminação de sessões","openapi":"pt/openapi-25.json GET /v3/sessions/delete/{job_id}/","href":"/pt/management-api/sessions/get-deletion-job"},{"title":"Listar revisões de sessões API: registo de auditoria KYC","sidebarTitle":"Listar revisões de sessões","openapi":"pt/openapi-25.json GET /v3/sessions/{session_id}/reviews/","href":"/pt/management-api/sessions/list-reviews"},{"title":"API para criar revisão de sessão: KYC manual","sidebarTitle":"Criar revisão de sessão","openapi":"pt/openapi-25.json POST /v3/sessions/{session_id}/reviews/","href":"/pt/management-api/sessions/create-review"},{"title":"Listar eventos de sessão da API","sidebarTitle":"Listar eventos de sessão","openapi":"pt/openapi-25.json GET /v3/session/{sessionId}/events/","href":"/pt/management-api/sessions/list-events"},{"title":"Listar entregas de webhook de sessão API","sidebarTitle":"Listar entregas de webhook de sessão","openapi":"pt/openapi-25.json GET /v3/session/{sessionId}/webhooks/","href":"/pt/management-api/sessions/list-webhooks"},{"title":"Obter entrega de webhook da sessão: API Didit","sidebarTitle":"Obter entrega de webhook","openapi":"pt/openapi-25.json GET /v3/session/{sessionId}/webhook/{webhook_uuid}","href":"/pt/management-api/sessions/get-webhook"},{"title":"Reenviar webhook de sessão: API Didit","sidebarTitle":"Reenviar webhook de sessão","openapi":"pt/openapi-25.json POST /v3/session/{sessionId}/webhook/{webhook_uuid}/resend","href":"/pt/management-api/sessions/resend-webhook"},{"title":"Histórico de Triagem AML: API de Listagem","sidebarTitle":"Histórico de Triagem AML","openapi":"pt/openapi-25.json GET /v3/session/{sessionId}/aml-screening-history/","href":"/pt/management-api/sessions/aml-screening-history"},{"title":"Exportar histórico de triagem AML em CSV através da API","sidebarTitle":"Exportar histórico de triagem AML","openapi":"pt/openapi-25.json GET /v3/session/{sessionId}/aml-screening-history/export/","href":"/pt/management-api/sessions/export-aml-screening-history"}]},{"group":"Personalização","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/sliders.svg","pages":[{"title":"Obter API de Personalização de Marca","sidebarTitle":"Obter Branding","openapi":"pt/openapi-25.json GET /v3/customization/","href":"/pt/management-api/customization/get"},{"title":"Atualizar marca branca via API de personalização","sidebarTitle":"Atualizar marca","openapi":"pt/openapi-25.json PATCH /v3/customization/","href":"/pt/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 Gestão","sidebarTitle":"Listar destinos de webhook","openapi":"pt/openapi-25.json GET /v3/webhook/destinations/","href":"/pt/management-api/webhook/list-destinations"},{"title":"Criar destino do webhook API","sidebarTitle":"Criar destino do webhook","openapi":"pt/openapi-25.json POST /v3/webhook/destinations/","href":"/pt/management-api/webhook/create-destination"},{"title":"Obter destino de webhook: API de gestão da Didit","sidebarTitle":"Obter destino de webhook","openapi":"pt/openapi-25.json GET /v3/webhook/destinations/{destination_uuid}/","href":"/pt/management-api/webhook/get-destination"},{"title":"Atualizar destino de webhook API","sidebarTitle":"Atualizar destino de webhook","openapi":"pt/openapi-25.json PATCH /v3/webhook/destinations/{destination_uuid}/","href":"/pt/management-api/webhook/update-destination"},{"title":"Eliminar destino de webhook API","sidebarTitle":"Eliminar destino de webhook","openapi":"pt/openapi-25.json DELETE /v3/webhook/destinations/{destination_uuid}/","href":"/pt/management-api/webhook/delete-destination"},{"title":"Obter configuração de webhook (API)","sidebarTitle":"Configuração de webhook","openapi":"pt/openapi-25.json GET /v3/webhook/","href":"/pt/management-api/webhook/get-config"},{"title":"Atualizar configuração de webhook API","sidebarTitle":"Atualizar configuração de webhook","openapi":"pt/openapi-25.json PATCH /v3/webhook/","href":"/pt/management-api/webhook/update-config"},{"title":"API de análise de destinos de webhook","sidebarTitle":"Análise de destino de webhook","openapi":"pt/openapi-25.json GET /v3/webhook/destinations/{destination_uuid}/analytics/","href":"/pt/management-api/webhook/destination-analytics"},{"title":"Listar entregas de webhook: API de Gestão da Didit","sidebarTitle":"Listar entregas de webhook","openapi":"pt/openapi-25.json GET /v3/webhook/destinations/{destination_uuid}/deliveries/","href":"/pt/management-api/webhook/list-deliveries"},{"title":"API para obter entrega de webhook","sidebarTitle":"Entrega do destino do webhook","openapi":"pt/openapi-25.json GET /v3/webhook/destinations/{destination_uuid}/deliveries/{delivery_uuid}/","href":"/pt/management-api/webhook/get-delivery"},{"title":"Reenviar entrega de webhook: API de gestão Didit","sidebarTitle":"Reenviar entrega do destino de webhook","openapi":"pt/openapi-25.json POST /v3/webhook/destinations/{destination_uuid}/deliveries/{delivery_uuid}/resend/","href":"/pt/management-api/webhook/resend-delivery"}]},{"group":"Faturação","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/billing.svg","pages":[{"title":"Consultar saldo de créditos API: faturação KYC","sidebarTitle":"Consultar saldo de créditos","openapi":"pt/openapi-25.json GET /v3/billing/balance/","href":"/pt/management-api/billing/balance"},{"title":"API de carregamento de saldo","sidebarTitle":"Carregar saldo","openapi":"pt/openapi-25.json POST /v3/billing/top-up/","href":"/pt/management-api/billing/top-up"}]},{"group":"Análise de dados","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/overview.svg","pages":[{"title":"API de análise da aplicação","sidebarTitle":"Obter análise da aplicação","openapi":"pt/openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/analytics/","href":"/pt/management-api/analytics/get"},{"title":"Verificações de hoje por hora: API","sidebarTitle":"Verificações de hoje por hora","openapi":"pt/openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/analytics/today/","href":"/pt/management-api/analytics/today-by-hour"}]},{"group":"Visão geral da API de gestão","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/info.svg","pages":[{"title":"API de Gestão v3: Fluxos e Faturação","sidebarTitle":"API de Gestão","href":"/pt/sessions-api/management-api"}]},{"group":"API de autenticação (programática)","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/key.svg","pages":[{"title":"Registo programático na Auth API","sidebarTitle":"Registar conta","openapi":"pt/openapi-auth.json POST /programmatic/register/","href":"/pt/auth-api/register"},{"title":"API de Verificação de E-mail: Obter Credenciais Didit","sidebarTitle":"Verificar e-mail","openapi":"pt/openapi-auth.json POST /programmatic/verify-email/","href":"/pt/auth-api/verify-email"},{"title":"API de Login Programático: Tokens de Autenticação","sidebarTitle":"Login","openapi":"pt/openapi-auth.json POST /programmatic/login/","href":"/pt/auth-api/login"},{"title":"Obter credenciais da API: client_id e api_key","sidebarTitle":"Obter credenciais","openapi":"pt/openapi-auth.json GET /organizations/me/{org_id}/applications/{app_id}/","href":"/pt/auth-api/get-credentials"},{"title":"API Criar Aplicação: Aplicações Programáticas","sidebarTitle":"Criar Aplicação","openapi":"pt/openapi-auth.json POST /organizations/me/{org_id}/applications/","href":"/pt/auth-api/create-application"},{"title":"Atualizar aplicação API: gerir aplicações de clientes","sidebarTitle":"Atualizar aplicação","openapi":"pt/openapi-auth.json PATCH /organizations/me/{org_id}/applications/{app_id}/","href":"/pt/auth-api/update-application"}]},{"group":"Identidade e documentos","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/id-scan.svg","pages":[{"title":"API de verificação de identidade: OCR e autenticidade","sidebarTitle":"API de verificação de identidade","openapi":"pt/openapi-25.json POST /v3/id-verification/","href":"/pt/standalone-apis/id-verification"},{"title":"API de Comprovativo de Morada: Verificação POA e OCR","sidebarTitle":"API de Comprovativo de Morada","openapi":"pt/openapi-25.json POST /v3/poa/","href":"/pt/standalone-apis/proof-of-address"},{"title":"Validação de morada API: verificar e normalizar moradas","sidebarTitle":"Validação de morada","openapi":"pt/openapi-25.json POST /v3/address-validation/","href":"/pt/standalone-apis/address-validation"}]},{"group":"Carteiras de identidade digital","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/id-scan.svg","pages":[{"title":"APIs de verificação com carteira de identidade digital","sidebarTitle":"APIs de carteira de ID digital","href":"/pt/standalone-apis/digital-id-wallets"},{"title":"Catálogo de APIs de carteiras de identidade digital","sidebarTitle":"Listar carteiras de ID digital","openapi":"pt/openapi-25.json GET /v3/id-verification/wallets/","href":"/pt/standalone-apis/digital-id-wallet-catalog"},{"group":"Iniciar verificação","pages":[{"title":"API de verificação BankID Suécia","sidebarTitle":"BankID Suécia","openapi":"pt/openapi-25.json POST /v3/id-verification/wallets/bankid-se/","href":"/pt/api-reference/digital-id-wallets/bankid-se"},{"title":"API de verificação Finnish Trust Network","sidebarTitle":"Finnish Trust Network","openapi":"pt/openapi-25.json POST /v3/id-verification/wallets/ftn/","href":"/pt/api-reference/digital-id-wallets/ftn"},{"title":"Verificação de identidade com Google Wallet: API","sidebarTitle":"Google Wallet ID","openapi":"pt/openapi-25.json POST /v3/id-verification/wallets/google-wallet/","href":"/pt/api-reference/digital-id-wallets/google-wallet"},{"title":"API de Verificação MitID Pessoal","sidebarTitle":"MitID pessoal","openapi":"pt/openapi-25.json POST /v3/id-verification/wallets/mitid/","href":"/pt/api-reference/digital-id-wallets/mitid"},{"title":"API de Verificação Mobile-ID","sidebarTitle":"Mobile-ID","openapi":"pt/openapi-25.json POST /v3/id-verification/wallets/mobile-id/","href":"/pt/api-reference/digital-id-wallets/mobile-id"},{"title":"API de verificação Smart-ID","sidebarTitle":"Smart-ID","openapi":"pt/openapi-25.json POST /v3/id-verification/wallets/smart-id/","href":"/pt/api-reference/digital-id-wallets/smart-id"},{"title":"API de identificação completa iDIN","sidebarTitle":"iDIN identificação completa","openapi":"pt/openapi-25.json POST /v3/id-verification/wallets/idin/","href":"/pt/api-reference/digital-id-wallets/idin"},{"title":"API Auðkenni de verificação de identidade","sidebarTitle":"Auðkenni","openapi":"pt/openapi-25.json POST /v3/id-verification/wallets/audkenni/","href":"/pt/api-reference/digital-id-wallets/audkenni"},{"title":"API de verificação de identidade Bank iD","sidebarTitle":"Bank iD","openapi":"pt/openapi-25.json POST /v3/id-verification/wallets/bankid-cz/","href":"/pt/api-reference/digital-id-wallets/bankid-cz"},{"title":"API de Verificação BankID Noruega","sidebarTitle":"BankID Noruega","openapi":"pt/openapi-25.json POST /v3/id-verification/wallets/bankid-no/","href":"/pt/api-reference/digital-id-wallets/bankid-no"},{"title":"API de verificação de identidade Buypass ID","sidebarTitle":"Buypass ID","openapi":"pt/openapi-25.json POST /v3/id-verification/wallets/buypass/","href":"/pt/api-reference/digital-id-wallets/buypass"},{"title":"API de verificação ConnectID","sidebarTitle":"ConnectID","openapi":"pt/openapi-25.json POST /v3/id-verification/wallets/connectid/","href":"/pt/api-reference/digital-id-wallets/connectid"},{"title":"API de verificação Diia","sidebarTitle":"Diia","openapi":"pt/openapi-25.json POST /v3/id-verification/wallets/diia/","href":"/pt/api-reference/digital-id-wallets/diia"},{"title":"API de Verificação da Carteira EUDI","sidebarTitle":"Carteira EUDI","openapi":"pt/openapi-25.json POST /v3/id-verification/wallets/eudi/","href":"/pt/api-reference/digital-id-wallets/eudi"},{"title":"API de verificação com cartão de identidade estoniano","sidebarTitle":"Cartão de identidade estoniano","openapi":"pt/openapi-25.json POST /v3/id-verification/wallets/idcard-ee/","href":"/pt/api-reference/digital-id-wallets/idcard-ee"},{"title":"API de verificação FranceConnect","sidebarTitle":"FranceConnect","openapi":"pt/openapi-25.json POST /v3/id-verification/wallets/franceconnect/","href":"/pt/api-reference/digital-id-wallets/franceconnect"},{"title":"API de verificação Freja eID","sidebarTitle":"Freja eID","openapi":"pt/openapi-25.json POST /v3/id-verification/wallets/frejaid/","href":"/pt/api-reference/digital-id-wallets/frejaid"},{"title":"API de Verificação GOV.UK Wallet","sidebarTitle":"GOV.UK Wallet","openapi":"pt/openapi-25.json POST /v3/id-verification/wallets/govuk-wallet/","href":"/pt/api-reference/digital-id-wallets/govuk-wallet"},{"title":"API de verificação MojeID","sidebarTitle":"MojeID","openapi":"pt/openapi-25.json POST /v3/id-verification/wallets/mojeid/","href":"/pt/api-reference/digital-id-wallets/mojeid"},{"title":"API de Verificação de Identidade OneID","sidebarTitle":"OneID","openapi":"pt/openapi-25.json POST /v3/id-verification/wallets/oneid/","href":"/pt/api-reference/digital-id-wallets/oneid"},{"title":"API de verificação Personalausweis Profile 2","sidebarTitle":"Personalausweis Profile 2","openapi":"pt/openapi-25.json POST /v3/id-verification/wallets/personalausweis/","href":"/pt/api-reference/digital-id-wallets/personalausweis"},{"title":"API de Verificação UAE PASS","sidebarTitle":"UAE PASS","openapi":"pt/openapi-25.json POST /v3/id-verification/wallets/uae-pass/","href":"/pt/api-reference/digital-id-wallets/uae-pass"},{"title":"API de Verificação Vipps Plus","sidebarTitle":"Vipps Plus","openapi":"pt/openapi-25.json POST /v3/id-verification/wallets/vipps/","href":"/pt/api-reference/digital-id-wallets/vipps"},{"title":"API de verificação eParaksts mobile","sidebarTitle":"eParaksts mobile","openapi":"pt/openapi-25.json POST /v3/id-verification/wallets/eparaksts-mobile/","href":"/pt/api-reference/digital-id-wallets/eparaksts-mobile"},{"title":"API de verificação gov.br","sidebarTitle":"gov.br","openapi":"pt/openapi-25.json POST /v3/id-verification/wallets/govbr/","href":"/pt/api-reference/digital-id-wallets/govbr"},{"title":"API de Verificação itsme","sidebarTitle":"itsme","openapi":"pt/openapi-25.json POST /v3/id-verification/wallets/itsme/","href":"/pt/api-reference/digital-id-wallets/itsme"}]},{"title":"Obter resultado de verificação na carteira de ID digital","sidebarTitle":"Obter verificação na carteira","openapi":"pt/openapi-25.json GET /v3/id-verification/wallets/verifications/{request_id}/","href":"/pt/standalone-apis/digital-id-wallet-result"},{"title":"Enviar resposta de carteira de credenciais digitais","sidebarTitle":"Enviar resposta da carteira","openapi":"pt/openapi-25.json POST /v3/id-verification/wallets/verifications/{request_id}/response/","href":"/pt/standalone-apis/digital-id-wallet-response"},{"title":"Consultar autenticação Smart-ID e Mobile-ID","sidebarTitle":"Consultar verificação de carteira","openapi":"pt/openapi-25.json POST /v3/id-verification/wallets/verifications/{request_id}/poll/","href":"/pt/standalone-apis/digital-id-wallet-poll"},{"title":"Cancelar verificação da carteira de identidade digital","sidebarTitle":"Cancelar verificação da carteira","description":"Cancele uma verificação pendente de carteira de identidade digital autónoma com a Didit. Esta página explica como cancelar essa verificação pendente.","openapi":"pt/openapi-25.json POST /v3/id-verification/wallets/verifications/{request_id}/cancel/","href":"/pt/standalone-apis/digital-id-wallet-cancel"}]},{"group":"IA de documentos","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/document-ai.svg","pages":[{"title":"API Document AI: extração personalizada de documentos","sidebarTitle":"API Document AI","openapi":"pt/openapi-25.json POST /v3/document-ai/","href":"/pt/standalone-apis/document-ai"}]},{"group":"API de validação de base de dados","pages":[{"title":"API de Validação de Base de Dados: ID Nacional","sidebarTitle":"API de Validação de Base de Dados","description":"Valide dados de identidade com a API Didit em 100+ fontes nacionais e globais, com correspondência waterfall 1x1 e 2x2. Pagamento por chamada.","openapi":"pt/openapi-25.json POST /v3/database-validation/","href":"/pt/standalone-apis/database-validation"}]},{"group":"Validação de base de dados","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/driver-2.svg","pages":[{"group":"🇦🇷 Argentina","pages":[{"title":"Verificação de dados DNI na Argentina: API Data Match","sidebarTitle":"Argentina - Verificação de dados DNI (RENAPER, sem selfie)","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/argentina/renaper-data"},{"title":"Verificação de DNI Argentina (RENAPER) API","sidebarTitle":"Argentina - DNI (RENAPER)","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/argentina/renaper"},{"title":"Verificação de cidadãos argentinos (AFIP) API","sidebarTitle":"Cidadãos argentinos (AFIP)","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/argentina/citizens"},{"title":"Verificação no bureau de crédito da Argentina: ID Match","sidebarTitle":"Bureau de Crédito Argentina","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/argentina/credit-bureau"}]},{"group":"🇦🇺 Austrália","pages":[{"title":"Verificação de certidão de nascimento na Austrália - DVS","sidebarTitle":"Austrália - DVS - Certidão de nascimento","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/australia/birth-certificate"},{"title":"Verificação do Cartão Centrelink na Austrália - DVS - API","sidebarTitle":"Austrália - DVS - Cartão Centrelink","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/australia/centrelink-card"},{"title":"Austrália - DVS - API de verificação ImmiCard","sidebarTitle":"Austrália - DVS - ImmiCard","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/australia/immicard"},{"title":"DVS Austrália: API de verificação de documentos de viagem","sidebarTitle":"Austrália - DVS - Documento de viagem","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/australia/travel-document"},{"title":"Certificado de Mudança de Nome na Austrália - API DVS","sidebarTitle":"Austrália - Certificado de mudança de nome","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/australia/change-of-name-certificate"},{"title":"Certificado de Cidadania Austrália - API DVS","sidebarTitle":"Austrália - Certificado de Cidadania","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/australia/citizenship-certificate"},{"title":"Austrália - API DVS de certidão de casamento","sidebarTitle":"Austrália - DVS de certidão de casamento","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/australia/marriage-certificate"},{"title":"Credit Bureau Austrália: API de verificação ID Match","sidebarTitle":"Credit Bureau Austrália","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/australia/credit-bureau"},{"title":"API de Verificação de Óbito Austrália (BDM): Tempo Real","sidebarTitle":"Óbito na Austrália (BDM)","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/australia/death-check"},{"title":"Verificação no Registo Eleitoral Australiano: ID Match","sidebarTitle":"Registo Eleitoral Austrália","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/australia/electoral-roll"},{"title":"API de Verificação de Superannuation e Folha na Austrália","sidebarTitle":"Austrália: Superanuação e Folha de Pagamento","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/australia/superannuation-payroll"},{"title":"Verificação VEVO da Austrália: consulta em tempo real","sidebarTitle":"Austrália VEVO","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/australia/vevo"},{"title":"Verificação de carta de condução da Austrália - API DVS","sidebarTitle":"DVS - Carta de condução australiana","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/australia/driver-licence"},{"title":"Validação de base de dados DVS: Medicare Card Austrália","sidebarTitle":"DVS - Medicare Card Austrália","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/australia/medicare-card"},{"title":"Verificação de passaporte australiano (DVS): API","sidebarTitle":"DVS - Passaporte da Austrália","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/australia/passport"},{"title":"Verificação de visto na Austrália: API DVS","sidebarTitle":"DVS - Visto Austrália","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/australia/visa"}]},{"title":"Verificação Credit Bureau Áustria: API de Correspondência","sidebarTitle":"Credit Bureau Áustria","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/austria/credit-bureau"},{"title":"Bolívia - API de verificação de CI em tempo real","sidebarTitle":"Bolívia - Verificação de CI","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/bolivia/cedula"},{"group":"🇧🇷 Brasil","pages":[{"title":"API de verificação BRA - Unico IDCloud (CPF + selfie)","sidebarTitle":"BRA - Unico IDCloud (CPF + selfie)","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/brazil/unico-idcloud"},{"title":"CNH QR code + correspondência facial (Datavalid) Brasil","sidebarTitle":"Brasil - CNH QR code + correspondência facial (Datavalid)","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/brazil/cnh-facial-qrcode"},{"title":"CPF Brasil: correspondência facial (Datavalid) API","sidebarTitle":"Brasil - CPF + correspondência facial (Datavalid)","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/brazil/cpf-facial"},{"title":"Brasil - API de consulta do estado do CPF em tempo real","sidebarTitle":"Brasil - Estado do CPF","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/brazil/cpf"},{"title":"Brasil - Sócios e Administradores de Empresas (QSA) API","sidebarTitle":"Brasil - Sócios e Administradores (QSA)","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/brazil/company-directors"},{"title":"Brasil - Consulta ao Registo de Empresas (CNPJ) API","sidebarTitle":"Brasil - Registo de Empresas (CNPJ)","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/brazil/company-registry"},{"title":"Verificação de Óbito (CPF) no Brasil: API em Tempo Real","sidebarTitle":"Brasil - Verificação de óbito (CPF)","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/brazil/death-check"},{"title":"Antecedentes criminais federais (Brasil): API","sidebarTitle":"Brasil - Antecedentes PF","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/brazil/antecedentes-criminais-pf"},{"title":"Verificação residencial Brasil: API de correspondência","sidebarTitle":"Brasil Residencial","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/brazil/residential"},{"title":"Verificação de registo fiscal CPF/CNPJ no Brasil","sidebarTitle":"Registo fiscal Brasil (CPF/CNPJ)","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/brazil/tax-registration"}]},{"title":"Verificação de ID nacional do Camboja: validação de dados","sidebarTitle":"ID nacional do Camboja","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/cambodia/national-id"},{"group":"🇨🇦 Canadá","pages":[{"title":"Credit Bureau do Canadá (FINTRAC): API de Verificação","sidebarTitle":"Credit Bureau Canadá (FINTRAC)","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/canada/credit-bureau-fintrac"},{"title":"API Canada Credit Bureau 2 (sem FINTRAC): ID Match","sidebarTitle":"Canadá Credit Bureau 2 (sem FINTRAC)","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/canada/credit-bureau-2-non-fintrac"},{"title":"Validação de base de dados no Canadá: API Residencial","sidebarTitle":"Canadá Residencial","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/canada/residential"}]},{"title":"Chile - Verificação de RUT: API em tempo real","sidebarTitle":"Chile - Verificação de RUT","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/chile/rut"},{"group":"🇨🇳 China","pages":[{"title":"Verificação de cartão bancário chinês: consulta API","sidebarTitle":"Cartão bancário China","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/china/bank-card"},{"title":"API de verificação do ID nacional da China: consulta","sidebarTitle":"ID nacional da China","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/china/national-id"},{"title":"API de verificação de passaporte da China em tempo real","sidebarTitle":"Passaporte da China","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/china/passport-verification"},{"title":"API de verificação de telefone na China","sidebarTitle":"Telefone China","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/china/phone"}]},{"group":"🇨🇴 Colômbia","pages":[{"title":"Verificação de cédula na Colômbia: API de identidade","sidebarTitle":"Colômbia - Verificação de cédula","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/colombia/cedula"},{"title":"Migración Colombia: API de estado de estrangeiro","sidebarTitle":"Colômbia - Migración Colombia","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/colombia/migracion"}]},{"title":"API de verificação de cédula da Costa Rica (Data Match)","sidebarTitle":"Costa Rica - Verificação de cédula","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/costa-rica/cedula"},{"group":"🇩🇰 Dinamarca","pages":[{"title":"Validação de base de dados Dinamarca Consumidor 2 API","sidebarTitle":"Dinamarca Consumidor 2","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/denmark/consumer-2"},{"title":"Validação de ID nacional da Dinamarca: API Data Match","sidebarTitle":"ID nacional da Dinamarca","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/denmark/national-id"}]},{"title":"Cédula da República Dominicana - API de validação","sidebarTitle":"República Dominicana - Cédula","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/dominican-republic/cedula"},{"title":"Verificação de cédula Equador: API em tempo real","sidebarTitle":"Equador - Verificação de cédula","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/ecuador/cedula"},{"title":"El Salvador - Verificação DUI API: Consulta de identidade","sidebarTitle":"El Salvador - Verificação DUI","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/el-salvador/dui"},{"group":"🇫🇮 Finlândia","pages":[{"title":"API Finlândia Consumer 2: Correspondência de identidade","sidebarTitle":"Finlândia Consumer 2","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/finland/consumer-2"},{"title":"Verificação de ID nacional da Finlândia: validação","sidebarTitle":"ID nacional Finlândia","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/finland/national-id"}]},{"group":"🇫🇷 França","pages":[{"title":"API de Verificação de Telefone em França em Tempo Real","sidebarTitle":"Telefone em França","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/france/phone"},{"title":"API de Verificação Residencial França: Correspondência","sidebarTitle":"França Residencial","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/france/residential"},{"title":"Validação de base de dados em França: API Utility","sidebarTitle":"França Utility","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/france/utility"}]},{"group":"🇩🇪 Alemanha","pages":[{"title":"Verificação de agência de crédito alemã: API Data Match","sidebarTitle":"Alemanha Credit Bureau","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/germany/credit-bureau"},{"title":"Verificação de telefone na Alemanha (Phone 2): API","sidebarTitle":"Alemanha Phone 2","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/germany/phone-2"}]},{"group":"🌐 Global","pages":[{"title":"Verificação Global na Intelligence Service | API Didit","sidebarTitle":"Global - Core Intelligence Service","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/global/intelligence-service"},{"title":"Verificação de enriquecimento de identidade global (API)","sidebarTitle":"Global - Enriquecimento de identidade","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/global/identity-enrichment"},{"title":"Troca de SIM Global: API de verificação Telco Match","sidebarTitle":"Global - Troca de SIM","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/global/swap"}]},{"group":"🇬🇹 Guatemala","pages":[{"title":"API DPI Guatemala: correspondência facial (RENAP)","sidebarTitle":"Guatemala - DPI e correspondência facial (RENAP)","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/guatemala/dpi-facial"},{"title":"Verificação de DPI da Guatemala: API em Tempo Real","sidebarTitle":"Guatemala - Verificação de DPI","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/guatemala/dpi"}]},{"title":"Verificação de DNI Honduras: consulta em tempo real","sidebarTitle":"Honduras - Verificação de DNI","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/honduras/dni"},{"group":"🇮🇳 Índia","pages":[{"title":"API Aadhaar (UIDAI) da Índia: Correspondência de dados","sidebarTitle":"Aadhaar da Índia (UIDAI)","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/india/aadhaar"},{"title":"API de Verificação de Carta de Condução da Índia (RTO)","sidebarTitle":"Carta de condução da Índia (RTO)","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/india/drivers-licence"},{"title":"Validação EPIC Índia (Registo de Eleitor) (ECI) API","sidebarTitle":"Índia EPIC (Registo de Eleitor) (ECI)","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/india/epic-voter-s-registration"},{"title":"API PAN da Índia (Número de Conta Permanente) (ITD)","sidebarTitle":"PAN da Índia (ITD)","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/india/pan-permanent-account-number"}]},{"title":"Verificação de cartão de identidade na Indonésia API","sidebarTitle":"Cartão de Identidade de Residente (Indonésia)","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/indonesia/residential-identity-card"},{"group":"🇮🇹 Itália","pages":[{"title":"Central de Crédito Itália: Correspondência de Cabeçalho","sidebarTitle":"Central de Crédito Itália","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/italy/credit-bureau"},{"title":"Itália Residencial: API de Validação de Base de Dados","sidebarTitle":"Itália Residencial","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/italy/residential"}]},{"title":"API de Verificação de Identidade Nacional do Quénia","sidebarTitle":"Documento Nacional do Quénia","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/kenya/national-id"},{"title":"Validação de ID Nacional da Malásia: API de Base de Dados","sidebarTitle":"ID Nacional da Malásia","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/malaysia/national-id"},{"group":"🇲🇽 México","pages":[{"title":"México - API de verificação CURP em tempo real","sidebarTitle":"México - Verificação CURP","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/mexico/curp"},{"title":"API de verificação de validade do INE (México)","sidebarTitle":"México - Validade do INE","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/mexico/ine-vigencia"}]},{"title":"Verificação residencial nos Países Baixos: API ID Match","sidebarTitle":"Países Baixos Residencial","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/netherlands/residential"},{"group":"🇳🇿 Nova Zelândia","pages":[{"title":"API de verificação de nascimentos na Nova Zelândia (DIA)","sidebarTitle":"DIA - Nascimentos NZ","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/new-zealand/births"},{"title":"Verificação de cidadania da Nova Zelândia - API DIA","sidebarTitle":"DIA - Cidadania NZ","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/new-zealand/citizenship"},{"title":"Verificação de passaporte da Nova Zelândia - API DIA","sidebarTitle":"Passaporte da Nova Zelândia (DIA)","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/new-zealand/passport"},{"title":"Verificação de óbito Nova Zelândia (BDM) API","sidebarTitle":"Verificação de óbito NZ (BDM)","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/new-zealand/death-check"},{"title":"Carta de Condução da Nova Zelândia (NZTA) Verificação","sidebarTitle":"Carta de Condução (NZTA)","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/new-zealand/drivers-licence"}]},{"group":"🇳🇬 Nigéria","pages":[{"title":"API de Número de Verificação Bancária (BVN) da Nigéria","sidebarTitle":"Número de Verificação Bancária (BVN)","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/nigeria/bank-verification-number"},{"title":"Verificação de carta de condução da Nigéria (FRSC) API","sidebarTitle":"Carta de condução da Nigéria (FRSC)","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/nigeria/drivers-license"},{"title":"Passaporte da Nigéria (NIS) API: Correspondência de ID","sidebarTitle":"Passaporte da Nigéria (NIS)","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/nigeria/passport"},{"title":"Verificação de identidade nacional da Nigéria (NIMC) API","sidebarTitle":"Nigéria NIMC","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/nigeria/national-id"},{"title":"Verificação de ID Nacional da Nigéria + Selfie (NIMC) API","sidebarTitle":"ID Nacional Nigéria + Selfie (NIMC)","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/nigeria/national-id-facial"}]},{"title":"API de Verificação de Morada na Noruega: Identidade","sidebarTitle":"Noruega Residencial","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/norway/residential"},{"group":"🇵🇦 Panamá","pages":[{"title":"Panamá - API Cédula com correspondência facial biométrica","sidebarTitle":"Panamá - Cédula com correspondência facial (SIB Plus, nível elevado)","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/panama/sib-plus"},{"title":"Validação de base de dados Panamá: Cédula (SIB) API","sidebarTitle":"Panamá - Cédula (SIB)","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/panama/sib"}]},{"title":"API de verificação de CI do Paraguai","sidebarTitle":"Paraguai - Verificação de CI","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/paraguay/cedula"},{"group":"🇵🇪 Peru","pages":[{"title":"Peru - Verificação de DNI por API em tempo real","sidebarTitle":"Peru - Verificação de DNI","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/peru/dni"},{"title":"Verificação de registo fiscal SUNAT (Peru) API","sidebarTitle":"Registo fiscal SUNAT (Peru)","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/peru/tax-registration"}]},{"title":"API de Verificação Residencial nas Filipinas: ID Match","sidebarTitle":"Filipinas Residencial","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/philippines/residential"},{"group":"🇸🇬 Singapura","pages":[{"title":"API Credit Bureau de Singapura: ID Match","sidebarTitle":"Credit Bureau Singapura","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/singapore/credit-bureau"},{"title":"Verificação Utility Singapura: Consulta de Identidade","sidebarTitle":"Utility Singapura","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/singapore/utility"}]},{"group":"🇿🇦 África do Sul","pages":[{"title":"Validação de titular de conta bancária na África do Sul - API de verificação","sidebarTitle":"África do Sul - Titular de conta bancária","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/south-africa/bank-account-holder"},{"title":"Consulta de administradores de empresas na África do Sul","sidebarTitle":"África do Sul - Administradores de empresas","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/south-africa/company-directors"},{"title":"Registo de Empresas da África do Sul - API de Consulta","sidebarTitle":"África do Sul - Registo de Empresas","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/south-africa/company-registry"},{"title":"API de contactabilidade na África do Sul: ID Match","sidebarTitle":"África do Sul - Contactabilidade","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/south-africa/contactability"},{"title":"Triagem criminal facial na África do Sul - API","sidebarTitle":"África do Sul - Triagem criminal facial","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/south-africa/criminal-face-screening"},{"title":"API DHA Fingerprint Match na África do Sul: ID Match","sidebarTitle":"África do Sul - DHA Fingerprint Match","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/south-africa/dha-fingerprint-match"},{"title":"Validação de base de dados DHA: foto, África do Sul","sidebarTitle":"África do Sul - Foto DHA","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/south-africa/dha-photo"},{"title":"Carta de condução da África do Sul - API de verificação","sidebarTitle":"África do Sul - Carta de condução","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/south-africa/drivers-license"},{"title":"API de triagem para prevenção de fraude na África do Sul","sidebarTitle":"África do Sul - Prevenção de fraude","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/south-africa/fraud-prevention"},{"title":"África do Sul - Consulta de Cargos de Administrador","sidebarTitle":"África do Sul - Cargos de Administrador","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/south-africa/person-directorships"},{"title":"Validação de base de dados: refugiados, África do Sul","sidebarTitle":"África do Sul - Ficheiros de refugiados","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/south-africa/refugee"},{"title":"Verificação de propriedade de veículos - África do Sul","sidebarTitle":"África do Sul - Propriedade de veículos","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/south-africa/vehicle-ownership"},{"title":"Verificação de BI sul-africano (DHA) API","sidebarTitle":"BI sul-africano (DHA)","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/south-africa/national-id"}]},{"title":"Verificação DNI/NIE Espanha: API em tempo real","sidebarTitle":"Espanha - DNI/NIE","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/spain/dni"},{"group":"🇸🇪 Suécia","pages":[{"title":"API de verificação de ID nacional sueco: correspondência","sidebarTitle":"ID Nacional da Suécia","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/sweden/national-id"},{"title":"Verificação de Telefone na Suécia: API em Tempo Real","sidebarTitle":"Suécia Telefone","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/sweden/phone"}]},{"title":"Credit Bureau Suíça: API de Validação de Base de Dados","sidebarTitle":"Credit Bureau Suíça","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/switzerland/credit-bureau"},{"title":"Verificação de ID nacional da Tailândia: API Data Match","sidebarTitle":"ID nacional da Tailândia","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/thailand/national-id"},{"group":"🇬🇧 Reino Unido","pages":[{"title":"Agência de crédito do Reino Unido: API de verificação","sidebarTitle":"Agência de crédito (Reino Unido)","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/united-kingdom/credit-bureau"},{"title":"Verificação de serviços financeiros no Reino Unido - API","sidebarTitle":"Serviços financeiros (Reino Unido)","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/united-kingdom/financial-services"},{"title":"API verificação telefone Reino Unido 2: Correspondência","sidebarTitle":"Reino Unido Telefone 2","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/united-kingdom/phone-2"},{"title":"API de Verificação Residencial do Reino Unido","sidebarTitle":"Reino Unido Residencial","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/united-kingdom/residential"}]},{"group":"🇺🇸 Estados Unidos","pages":[{"title":"API de Verificação do Credit Bureau dos Estados Unidos","sidebarTitle":"Estados Unidos - Credit Bureau","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/united-states/credit-bureau"},{"title":"Verificação de óbitos nos EUA (SSDMF): validação de dados","sidebarTitle":"Estados Unidos - Verificação de óbitos (SSDMF)","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/united-states/death-check"},{"title":"API de verificação de serviços financeiros nos EUA","sidebarTitle":"Estados Unidos - Serviços financeiros","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/united-states/financial-services"},{"title":"Verificação de Telefone 2 nos EUA: API de Correspondência","sidebarTitle":"Estados Unidos - Telefone 2","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/united-states/phone-2"},{"title":"API de verificação residencial nos EUA","sidebarTitle":"Estados Unidos - Residencial","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/united-states/residential"}]},{"title":"API de verificação de CI do Uruguai","sidebarTitle":"Uruguai - Verificação de CI","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/uruguay/cedula"},{"title":"Venezuela - API de verificação de cédula: Identity Match","sidebarTitle":"Venezuela - Verificação de cédula","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/venezuela/cedula"},{"title":"Verificação NRC da Zâmbia (registo fiscal) API","sidebarTitle":"NRC da Zâmbia (registo fiscal)","api":"POST /v3/database-validation/","href":"/pt/api-reference/database-validation/zambia/national-id"}]},{"group":"Biometria e rosto","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/liveness.svg","pages":[{"title":"API de Prova de Vida Passiva: Deteção de Deepfakes","sidebarTitle":"Prova de vida passiva","openapi":"pt/openapi-25.json POST /v3/passive-liveness/","href":"/pt/standalone-apis/passive-liveness"},{"title":"Correspondência facial 1:1: API Face Match","sidebarTitle":"Correspondência facial","openapi":"pt/openapi-25.json POST /v3/face-match/","href":"/pt/standalone-apis/face-match"},{"title":"Pesquisa facial API: deduplicação 1:N e redes de fraude","sidebarTitle":"Pesquisa facial","openapi":"pt/openapi-25.json POST /v3/face-search/","href":"/pt/standalone-apis/face-search"},{"title":"Estimativa de idade API: verificação de idade por selfie","sidebarTitle":"Estimativa de idade API","openapi":"pt/openapi-25.json POST /v3/age-estimation/","href":"/pt/standalone-apis/age-estimation"}]},{"group":"Conformidade e risco","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/aml-screening.svg","pages":[{"title":"API de Triagem AML: Sanções, PEP e Listas de Vigilância","sidebarTitle":"API de Triagem AML","openapi":"pt/openapi-25.json POST /v3/aml/","href":"/pt/standalone-apis/aml-screening"},{"title":"Atualidade dos dados AML: API","sidebarTitle":"Obter atualidade dos dados AML","openapi":"pt/openapi-25.json GET /v3/aml/dataset-freshness/","href":"/pt/standalone-apis/aml-dataset-freshness"},{"title":"API de Verificação de Fraude","openapi":"pt/openapi-25.json POST /v3/fraud/checks/","href":"/pt/standalone-apis/fraud-check"},{"title":"Planear uma verificação de fraude","openapi":"pt/openapi-25.json POST /v3/fraud/checks/plan/","href":"/pt/standalone-apis/fraud-check-plan"},{"title":"Obter verificação de fraude","openapi":"pt/openapi-25.json GET /v3/fraud/checks/{check_id}/","href":"/pt/standalone-apis/fraud-check-result"}]},{"group":"Análise de dispositivo e IP","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/ip-analysis.svg","pages":[{"title":"API de Risco de IP: Geo, VPN e Datacenter","sidebarTitle":"API de Risco de IP","openapi":"pt/openapi-25.json POST /v3/ip/risk/","href":"/pt/standalone-apis/ip-risk"}]},{"group":"Registo KYB","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/businesses.svg","pages":[{"title":"API de Registo KYB: Pesquisa e Seleção de Empresas","sidebarTitle":"Registo KYB","href":"/pt/standalone-apis/kyb-registry"},{"title":"API de Pesquisa KYB no Registo de Empresas","sidebarTitle":"Pesquisa no Registo KYB","openapi":"pt/openapi-25.json POST /v3/kyb/search/","href":"/pt/standalone-apis/kyb-registry-search"},{"title":"API Select do registo KYB: obter perfil da empresa","sidebarTitle":"Select do registo KYB","openapi":"pt/openapi-25.json POST /v3/kyb/select/","href":"/pt/standalone-apis/kyb-registry-select"},{"title":"API de acionistas do registo KYB","sidebarTitle":"Acionistas KYB","openapi":"pt/openapi-25.json POST /v3/kyb/shareholders/","href":"/pt/standalone-apis/kyb-registry-shareholders"},{"title":"API UBO KYB Registry: Beneficiários Efetivos Finais","sidebarTitle":"UBOs do registo KYB","openapi":"pt/openapi-25.json POST /v3/kyb/ubo/","href":"/pt/standalone-apis/kyb-registry-ubo"}]},{"group":"Verificação de e-mail","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/sms-tracking.svg","pages":[{"title":"API de Verificação de E-mail: OTP e Pontuação de Risco","sidebarTitle":"Verificação de e-mail","href":"/pt/standalone-apis/email-verification"},{"title":"API para enviar OTP por e-mail: código de verificação","sidebarTitle":"Enviar código por e-mail","openapi":"pt/openapi-25.json POST /v3/email/send/","href":"/pt/standalone-apis/email-send"},{"title":"API de validação de código OTP por e-mail","sidebarTitle":"Verificar código de e-mail","openapi":"pt/openapi-25.json POST /v3/email/check/","href":"/pt/standalone-apis/email-check"},{"title":"API de risco de e-mail: entregabilidade e sinais de fuga","sidebarTitle":"API de risco de e-mail","openapi":"pt/openapi-25.json POST /v3/email/risk/","href":"/pt/standalone-apis/email-risk"}]},{"group":"Verificação de telefone","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/phone-verification.svg","pages":[{"title":"Verificação de Telefone por SMS: API e Sinais de Risco","sidebarTitle":"Verificação de telefone","href":"/pt/standalone-apis/phone-verification"},{"title":"API de envio de código OTP por SMS para telefone","sidebarTitle":"Enviar código por telefone","openapi":"pt/openapi-25.json POST /v3/phone/send/","href":"/pt/standalone-apis/phone-send"},{"title":"API de verificação de telefone: validar código SMS","sidebarTitle":"Verificar código de telefone","openapi":"pt/openapi-25.json POST /v3/phone/check/","href":"/pt/standalone-apis/phone-check"},{"title":"API de risco de telefone: operadora e sinais de fraude","sidebarTitle":"API de risco de telefone","openapi":"pt/openapi-25.json POST /v3/phone/risk/","href":"/pt/standalone-apis/phone-risk"}]},{"group":"Verificação bancária","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/billing.svg","pages":[{"title":"API de Verificação de Conta Bancária para Pagamentos","sidebarTitle":"API de Verificação de Conta","openapi":"pt/openapi-25.json POST /v3/bank/account-check/","href":"/pt/standalone-apis/bank-account-check"}]}]},{"tab":"Verificação de utilizadores","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/user-verifications.svg","pages":[{"title":"Verificação de utilizadores","href":"/pt/core-technology/liveness/overview"}]},{"tab":"Verificação de empresas","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/business-verifications.svg","pages":[{"title":"Verificação de empresas","href":"/pt/business-verification/overview"}]},{"tab":"Monitorização de transações","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/transactions.svg","pages":[{"title":"Monitorização de transações","href":"/pt/transaction-monitoring/overview"}]},{"tab":"Registo de alterações","icon":"https://mintlify.s3.us-west-1.amazonaws.com/didit-0f962782/icons/calendar.svg","pages":[{"title":"Registo de alterações","href":"/pt/changelog"}]}],"global":{"anchors":[{"anchor":"Referência da API","icon":"code","href":"/pt/api-reference/overview"},{"anchor":"Business Console","icon":"gauge","href":"https://business.didit.me"},{"anchor":"Especificação OpenAPI","icon":"file-code","href":"https://docs.didit.me/pt/openapi-25.json"},{"anchor":"Prompt de integração","icon":"wand-magic-sparkles","href":"/pt/integration/integration-prompt"},{"anchor":"Servidor MCP","icon":"plug","href":"/pt/integration/mcp/overview"},{"anchor":"Competências de agentes","icon":"robot","href":"https://github.com/didit-protocol/skills"}]}},{"language":"ca","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"Suport"},{"icon":"signal","href":"https://status.didit.me","label":"Estat"}],"primary":{"type":"button","label":"Inicia la sessió","href":"https://business.didit.me"}},"pages":[{"title":"ca","href":"/ca/standalone-apis/document-ai"}]},{"language":"id","navbar":{"links":[{"icon":"comment-dots","href":"https://help.didit.me","label":"Dukungan"},{"icon":"signal","href":"https://status.didit.me","label":"Status"}],"primary":{"type":"button","label":"Masuk","href":"https://business.didit.me"}},"pages":[{"title":"id","href":"/id/standalone-apis/document-ai"}]},{"language":"ru","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":"ru","href":"/ru/standalone-apis/document-ai"}]},{"language":"ko","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":"ko","href":"/ko/standalone-apis/document-ai"}]},{"language":"zh","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":"zh","href":"/zh/standalone-apis/document-ai"}]},{"language":"ar","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":"ar","href":"/ar/standalone-apis/document-ai"}]},{"language":"hi","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":"hi","href":"/hi/standalone-apis/document-ai"}]}]},"basePath":"","title":"API Document AI: extração personalizada de documentos - Didit Docs","buildId":"dpl_FWZhTb2vab28gFGFH4ojka6qEznQ","deploymentId":"dpl_FWZhTb2vab28gFGFH4ojka6qEznQ","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CBsVopKK.js","utils-DZAk68jJ.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-D32AYZrP.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-D_A5_cny.js","snippetPresets-xNRfS9th.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-BIB25-tq.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-CydJ4w4j.js","shallow-CYPBeQSG.js","getApiPlaygroundDisplay-A5xJVBOu.js","CodeSnippet-BVRTgi3m.js","CodeSnippets-DjD6BSlt.js","Page-Dr40SSJq.js","getPastedJson-D4V4JyrR.js","icon-uhcnG22T.js","MethodPill-CM-ZQdGH.js","DuplicateIcon-B_WnOiNf.js","createIcon-CJsb8utt.js","DynamicMarkdown-D-2HDKEp.js","SectionHeading-KP5xmMgQ.js","axios-vUo_bRtp.js","Markdown-D_k0dg6k.js","clsx-DK3K4Z1S.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-DE3EVdvd.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-fN9H9n9g.js"]}