Faça a triagem de qualquer usuário. Em mais de 1.300 listas globais.
Faça a triagem de qualquer usuário ou empresa em mais de 1.300 bancos de dados de sanções, PEP (pessoa politicamente exposta), mídia adversa e listas de observação. $0.20 por verificação, $0.07/usuário/ano para monitoramento contínuo. 500 verificações gratuitas/mês.
Confiado por mais de 2.000 organizações em todo o mundo.
Mais de 1.300 listas de observação
PEPs, sanções, mídia adversa. Tudo em uma única chamada de $0.20.
Uma única chamada cobre sanções globais, PEPs, parentes e associados próximos,
mídia adversa e alertas. Inclua-o em um KYC completo ou atualize cada
usuário diariamente por $0.07 ao ano.
Como funciona
Do cadastro ao usuário verificado em quatro passos.
Passo 01
Crie o fluxo de trabalho
Escolha as verificações que você quer, ID, prova de vida, reconhecimento facial, sanções, endereço, idade, telefone, e-mail, perguntas personalizadas. Arraste-as para um fluxo no painel ou publique o mesmo fluxo na nossa API. Crie ramificações com base em condições, execute testes A/B, sem precisar de código.
Passo 02
Integre
Incorpore nativamente com nossos SDKs para Web, iOS, Android, React Native ou Flutter. Redirecione para uma página hospedada. Ou simplesmente envie um link ao seu usuário, por e-mail, SMS, WhatsApp, onde quiser. Escolha o que melhor se adapta à sua stack.
Passo 03
O usuário passa pelo fluxo
A Didit hospeda a câmera, as dicas de iluminação, a transição para dispositivos móveis e a acessibilidade. Enquanto o usuário está no fluxo, pontuamos mais de 200 sinais de fraude em tempo real e verificamos cada campo em relação a fontes de dados confiáveis. Resultado em menos de dois segundos.
Passo 04
Você recebe os resultados
Webhooks assinados em tempo real mantêm seu banco de dados sincronizado no momento em que um usuário é aprovado, recusado ou enviado para revisão. Consulte a API sob demanda. Ou abra o console para inspecionar cada sessão, cada sinal e gerenciar casos do seu jeito.
Feito para conformidade · Feito contra fraude · Aberto por design
Seis funcionalidades. Uma feature flag. AML.
Cada funcionalidade abaixo é um "toggle" no mesmo módulo. Sem níveis de upsell, sem SKUs separados, sem chamadas adicionais. Ative-as por fluxo de trabalho no console ou passe-as diretamente na chamada da API.
Mais de 1.300 listas globais. Sanções, PEPs, mídia adversa, alertas.
Sanções globais (OFAC, UE, ONU, HMT e todas as listas nacionais do G20), PEPs em quatro níveis, além de seus parentes e associados próximos, notícias de mídia adversa, fiscalização regulatória, idoneidade e probidade, insolvência, pessoas e entidades de interesse especial e suas próprias listas personalizadas. Uma única chamada abrange todos eles, atualizados continuamente.
AML list catalogue
Refreshed continuously
Live
1,300+
Global lists
6
Categories
200+
Jurisdictions
24/7
Refresh
Sanctions412
PEP L1–L4318
Adverse media246
Warnings184
Regulatory92
Insolvency48
OFACEUUNHMTINTERPOLRCA
02 · Entidades
Um módulo. Pessoas e empresas.
O tipo de entidade `person` verifica indivíduos em relação a PEPs, sanções e listas de mídia adversa. O tipo de entidade `company` verifica entidades legais em relação a sanções, fiscalização regulatória e registros de Beneficiário Final (UBO). Mesma chamada, mesmo JSON, mesmos $0.20, encadeie-o dentro de um fluxo de Verificação de Negócios ou execute-o antes que um negócio B2B seja fechado.
Entity screening
One endpoint · POST /v3/aml/
$0.20 / check
entity_type: person
Full name
Carmen Espanola
Date of birth
14 / 03 / 1981
Nationality
Spain
Sanctions · PEP L1–L4 · Adverse media
entity_type: company
Registered name
Acme Trading SL
Registration nº
B-87214503
Incorporated
Spain · 2014
Sanctions · Enforcement · UBO
03 · PEP
Categorização PEP em quatro níveis.
Cada ocorrência de PEP é marcada como Nível 1 (chefes de estado, juízes da suprema corte, banqueiros centrais), Nível 2 (parlamentares, embaixadores, líderes militares), Nível 3 (servidores públicos de nível médio) ou Nível 4 (parentes e associados próximos). Ações por nível no console, aprovar automaticamente, encaminhar para revisão ou recusar.
PEP policy
Level 1–4 · RCA
4 levels
CategoryAction
PEP Level 1
Heads of state · supreme judges · central bankers
Decline
PEP Level 2
Parliamentarians · ambassadors · military leaders
Review
PEP Level 3
Mid-level civil servants · local government
Review
PEP Level 4
Relatives and Close Associates (RCA)
Approve
04 · Pontuação de correspondência
Dois scores. Falsos positivos são eliminados automaticamente.
O Score de Correspondência (0–100, limite padrão 93) decide se o resultado é a mesma pessoa, ponderado em 60% nome, 25% data de nascimento, 15% país. O Score de Risco (0–100) decide o quão arriscado é, ponderado em 50% categoria, 30% país, 20% criminal. Os revisores veem ambos os scores, além da URL da fonte, sentimento e substituição do número do documento no console.
AML scoring
Match score · Risk score
Approved
Match Score98/100
0≥ 93100
Risk Score65/100
0review 80100
DeclineReviewApprove
Match weights
Name60%
Date of birth25%
Country15%
Risk weights
Category50%
Country30%
Criminal20%
05 · Monitoramento contínuo
Nova triagem diária. $0.07 por usuário por ano.
Ative o monitoramento contínuo e faremos uma nova triagem diária de cada usuário cadastrado em nosso catálogo completo de mais de 1.300 listas. Uma nova sanção ou ocorrência de PEP dispara um webhook, altera o status da sessão e exibe a ocorrência no console com trilha de auditoria completa. O mesmo payload da triagem inicial, sem trabalho extra de integração.
Ongoing monitoring
Daily rescreen · $0.07 / user / year
Live
8,420
Enrolled
12
In review
1
New hit
aml.new_hit · usr_5c81d22 · OFAC SDN8s ago
Cusr_a8c4f02Sanctions · PEPDailyClear
Musr_4d2b6e1Adverse mediaDailyIn Review
Lusr_5c81d22OFAC SDN · newTodayNew hit
06 · Reguladores
GAFI, AMLD6, OFAC, MiCA. Em conformidade por design.
Mapeado para a diligência devida do cliente do GAFI (Grupo de Ação Financeira), a 6ª Diretiva AML da UE, a aplicação de sanções do OFAC dos EUA e o MiCA (Mercados em Criptoativos). O Tesoro, Banco de España e SEPBLAC da Espanha atestaram formalmente o Didit como mais seguro do que o presencial, o único atestado desse tipo no mercado.
Regulatory coverage
FATF · AMLD6 · OFAC · MiCA
Attested
FATFRecommendations 10–16 · Customer Due DiligenceGlobal
AMLD6EU 6th Anti-Money Laundering DirectiveEU
OFACUS Treasury sanctions enforcementUS
MiCAEU Markets in Crypto-Assets RegulationEU
Tesoro · Banco de España · SEPBLAC
Formally attested safer than in-person verification.
Integre
Dois endpoints. Mesmo JSON. Mesmo preço.
Encadeie o AML dentro de um fluxo de KYC ou KYB quando quiser que nossa UI hospedada conduza o processo. Chame a API autônoma quando você já tiver os campos da entidade. O formato do relatório é o mesmo em ambos os casos.
Cole o bloco abaixo no Claude Code, Cursor, Codex, Devin, Aider ou Replit Agent. Preencha o placeholder my_stack com seu framework, linguagem e caso de uso. O agente provisiona o Didit, cria o fluxo de trabalho, conecta o webhook e faz o deploy.
didit-integration-prompt.md
# Didit AML Screening — integrate in 5 minutes
You are integrating Didit's Anti-Money Laundering (AML) Screening module into
<my_stack>. Follow these steps exactly. Every URL, header, and enum value
below is canonical — do not paraphrase or "improve" them.
AML Screening covers four lookup categories on every call:
- Sanctions (OFAC, EU, UN, HMT, and 1,300+ more global lists)
- Politically Exposed Persons (PEPs) — Levels 1 through 4 + RCAs
- Adverse Media — financial-crime news, court records, regulatory press
- Warnings and Regulatory Enforcement, Insolvency, SIP / SIE lists
The same module screens BOTH persons and companies — set the
"entity_type" parameter to "person" or "company".
## 1. Provision an account
- Sign up: https://business.didit.me (no credit card required).
- Or provision programmatically: POST https://apx.didit.me/auth/v2/programmatic/register/
(returns an API key bound to the workspace + application).
## 2. Two integration paths — pick one
### Path A — Workflow Builder (hosted UI / linked KYC)
Best when you want AML screened automatically as part of a verification
session. Run it alongside ID Verification, or chain it after a Know Your
Customer (KYC) check, or fire it on its own.
1. Create a workflow that contains the AML feature:
POST https://verification.didit.me/v3/workflows/
Authorization header: x-api-key: <your-api-key>
Body: workflow_label, features array with the entry
{ "feature": "AML" } (UPPERCASE — strict enum)
Optional per-workflow configuration:
- match_score_threshold (default 93)
- approve_risk_threshold (default 80)
- review_risk_threshold (default 100)
- include_adverse_media (default true; adds ~10s to the call)
- include_ongoing_monitoring (default false; +$0.07/user/year if on)
- sanctions_categories (subset of dataset enums)
2. Create a verification session for an end user:
POST https://verification.didit.me/v3/session/
Body: workflow_id (from step 1), vendor_data (your own user id),
expected_details { first_name, last_name, date_of_birth,
nationality, document_number }.
Response: session_url — redirect the user to it. If your workflow has
only the AML feature and you already collected the identity fields,
the session resolves server-side with no UI step.
3. Listen for webhook callbacks (see "Webhooks" below).
### Path B — Standalone server-to-server API
Best when you already have the screened entity's name + identifiers and
do not want a hosted session. Synchronous response, no webhook needed.
POST https://verification.didit.me/v3/aml/
Content-Type: application/json
Headers:
x-api-key: <your-api-key>
Body (person):
{
"entity_type": "person",
"full_name": "Carmen Espanola",
"date_of_birth": "1980-01-01",
"nationality": "ESP",
"document_number": "CAA000000",
"include_adverse_media": true,
"include_ongoing_monitoring": false
}
Body (company):
{
"entity_type": "company",
"full_name": "Acme Holdings Ltd",
"registration_number": "12345678",
"incorporation_country": "GBR",
"include_adverse_media": true
}
Response: JSON report with status, hits, scores, and a warnings array.
## 3. Webhooks (Path A and Path B ongoing monitoring)
- Register a webhook destination once via
POST https://verification.didit.me/v3/webhook/destinations/
Body: url, subscribed_events: ["session.verified", "session.review_started",
"session.declined", "aml.new_hit"]
- Response includes secret_shared_key — store it.
- Every webhook delivery carries an X-Signature-V2 header you MUST verify
before trusting the payload. HMAC-SHA256 verification MUST run against the raw body bytes (the raw payload as Didit sent it) BEFORE any JSON parsing — re-serialising the parsed body changes whitespace and key order, which invalidates the signature.Algorithm:
1. sortKeys(payload) recursively
2. shortenFloats (truncate trailing zeros after the decimal point)
3. JSON.stringify the result
4. HMAC-SHA256 with the secret_shared_key
5. Hex-encode, compare to the X-Signature-V2 header.
## 4. Reading the report (both paths return the same shape)
The aml object includes:
- status: "Approved" | "Rejected" | "In Review" | "Not Started"
- total_hits: integer
- score: number 0-100 (overall AML risk score; highest non-False-Positive
match risk score wins)
- screened_data: the inputs used for the lookup
- hits: array of matched entities. Each hit includes:
- id, url, caption (matched display name)
- datasets: which categories matched (PEP, PEP Level 1..4, Sanctions,
Adverse Media, Warnings and Regulatory Enforcement, Fitness and
Probity, SIP, SIE, Insolvency)
- match_score (0-100, identity confidence — is it the same person)
- risk_view.categories.score (0-100, entity risk if it IS a match)
- sanction_matches, pep_matches, warning_matches,
adverse_media_matches (typed arrays with list names, source URLs,
legal basis, sanction program, sanctioning authority, publication
dates, sentiment scores, etc.)
- warnings: Array<{ risk, log_type, short_description, long_description }>
Two-score system (the part most agents get wrong):
1. Match Score answers "is this the same person we are screening".
Below the match_score_threshold (default 93) the hit is a
False Positive and excluded from the final status. At or above the
threshold it is Unreviewed (a possible match).
2. Risk Score answers "how risky is this entity if it IS a match".
The session's final status comes from the highest risk score among
non-False-Positive hits:
- risk score below approve_risk_threshold (80) => Approved
- between approve and review => In Review
- above review_risk_threshold (100) => Declined
Warning codes you should branch on:
- POSSIBLE_MATCH_FOUND (informational — at least one hit above the
match threshold; review or auto-approve
per your risk policy)
- COULD_NOT_PERFORM_AML_SCREENING (KYC fields incomplete; session is held
in In Review and re-triggered automatically
once full_name, date_of_birth, issuing
state and document_number are populated)
## 5. Hard rules — do not change
- Base URL for /v3/* endpoints is verification.didit.me (NOT apx.didit.me).
- Feature enum is UPPERCASE: AML, ID_VERIFICATION, LIVENESS, FACE_MATCH,
IP_ANALYSIS. The AML feature flag is AML, not AML_SCREENING.
- Auth header is x-api-key (lowercase, hyphenated).
- Webhook signature header is X-Signature-V2 (NOT X-Signature).
- Always verify webhook signatures before trusting payload data.
- Status casing matches exactly: "Approved", "Rejected", "In Review",
"Not Started" (title-cased, space-separated).
- entity_type is lowercase: "person" or "company".
## 6. Ongoing monitoring
- Toggle include_ongoing_monitoring=true on the workflow or the standalone
request to enroll the screened entity in continuous AML monitoring.
- Didit rescreens every enrolled entity DAILY against the full 1,300+
watchlist database (sanctions, PEPs, adverse media, warnings).
- A status change (new hit above review or decline threshold) fires the
aml.new_hit webhook, flips the session status to In Review or Declined,
and surfaces the hit in the Business Console with full audit trail.
- Billing: $0.07 per enrolled entity per year. Toggle off at any time
from the Business Console — billing prorates to the day.
## 7. Pricing reference (public)
- AML Screening (one-time, per person OR per company): $0.20 per check
- Ongoing AML Monitoring: $0.07 per enrolled entity per year
- Bundled inside a full KYC workflow (ID + Liveness + Face Match + IP):
$0.33 per session — AML is an add-on at the same $0.20 standalone price
- 500 free checks every month, forever, on every account.
## 8. Verify your integration
- Sandbox starts on signup at https://business.didit.me — no separate flag.
- Test names: deterministic synthetic entities returned in sandbox
(Approved by default; canonical "PEP test name" returns an In Review
with a Wikidata PEP hit so you can exercise the review queue).
- Switch to live: flip the application environment toggle in the console.
When in doubt: https://docs.didit.me/core-technology/aml-screening/overview
Conformidade por design
Abra um novo país com um clique. Nós fazemos o trabalho pesado.
Nós abrimos as subsidiárias locais, garantimos as licenças, realizamos os testes de penetração, obtemos as certificações e nos alinhamos a cada nova regulamentação. Para lançar verificações em um novo país, basta ativar uma chave. Mais de 220 países ativos, auditados e testados trimestralmente, o único provedor de identidade que um governo de um estado membro da UE formalmente considerou mais seguro do que a verificação presencial.
Fontes globais de sanções, PEP, mídia adversa e listas de observação.
Daily
Frequência de rechecagem para cada usuário inscrito no monitoramento contínuo.
$0.00
Por verificação AML avulsa. Pessoa física ou jurídica.
$0.00
Por usuário inscrito por ano para monitoramento contínuo.
Três planos, uma tabela de preços
Comece grátis. Pague pelo uso. Escale para Enterprise.
500 verificações gratuitas todo mês, para sempre. Pague conforme usar para produção. Contratos personalizados, residência de dados e SLAs (Service Level Agreements) no plano Enterprise.
Grátis
Grátis
$0 / mês. Não precisa de cartão de crédito.
Pacote KYC grátis (Verificação de ID + Prova de Vida Passiva + Comparação Facial + Análise de Dispositivo e IP), 500 / mês, todo mês
Comece grátis → pague apenas quando uma verificação for executada → desbloqueie o Enterprise para um contrato personalizado, SLA ou residência de dados.