Verifique o comprador. Analise a carteira. Num só fluxo de trabalho.
Um único fluxo de trabalho Didit trata da identidade do comprador e da carteira de destino, antes de a cripto sair. 500 verificações gratuitas todos os meses.
Confiado por mais de 2.000 organizações em todo o mundo.
Buy $500 of BTCto 0x4F2E…9C2DNew buy order
KYC · BuyerM. Laurent
ID document
Liveness + face match
AML screening
Buyer verified · $0.33
KYT · Wallet0x4F2E…9C2D
Sanctions lists
Mixer + darknet exposure
Risk score · low
Wallet clear · $0.17
$500 · Fiat in
0x4F2E…9C2D
Funds heldFunds released
O que uma on-ramp deve
Conheça o comprador. Conheça a carteira. Antes de movimentar os fundos.
Cada on-ramp regulada deve ambas as metades, KYC no comprador + KYT na
carteira de destino, em cada compra. A Didit entrega-as como um único fluxo de trabalho:
$0.33 KYC + $0.17 transação (inclui análise de carteira gerida) = $0.50 por
compra. BYOK no fornecedor da carteira reduz para $0.37. 500 verificações gratuitas
todos os meses.
Como funciona
Do registo ao utilizador verificado em quatro passos.
Passo 01 / 04
01
Crie o fluxo de trabalho
Escolha as verificações que pretende, ID, prova de vida, correspondência facial, sanções, morada, idade, telefone, e-mail, perguntas personalizadas. Arraste-as para um fluxo no dashboard, ou publique o mesmo fluxo na nossa API. Crie ramificações com base em condições, execute testes A/B, sem necessidade de código.
Integre
Incorpore nativamente com o nosso SDK Web, iOS, Android, React Native ou Flutter. Redirecione para uma página alojada. Ou simplesmente envie ao seu utilizador um link, por e-mail, SMS, WhatsApp, em qualquer lugar. Escolha o que melhor se adapta à sua stack.
O utilizador passa pelo fluxo
A Didit aloja a câmara, as indicações de iluminação, a transição móvel e a acessibilidade. Enquanto o utilizador está no fluxo, pontuamos mais de 200 sinais de fraude em tempo real e verificamos cada campo contra fontes de dados autorizadas. Resultado em menos de dois segundos.
Recebe os resultados
Webhooks assinados em tempo real mantêm a sua base de dados sincronizada no momento em que um utilizador é aprovado, recusado ou enviado para revisão. Consulte a API a pedido. Ou abra a consola para inspecionar cada sessão, cada sinal e gerir os casos à sua maneira.
Criado para on-ramps · Preço de infraestrutura
Seis verificações. Duas chamadas API. $0.50 por compra.
Uma compra on-ramp regulada não é uma única verificação, é uma receita. Ative cada módulo por fluxo de trabalho, troque o seu próprio fornecedor de análise de carteira via BYOK para reduzir para $0.37 por compra.
ID, prova de vida, correspondência facial, dispositivo + IP, AML, agrupados a $0.33 por comprador. Certificado iBeta Nível 1 anti-spoof, veredito em menos de dois segundos, suporta mais de 14.000 documentos em mais de 220 países.
Deteta carteiras sancionadas, mixers, alto risco de câmbio, fundos roubados. $0.15 por verificação gerida, ou $0.02 por verificação com a sua própria chave de fornecedor. EVM, Bitcoin, TRON, Solana, principais L2s.
Sanções, Pessoas Politicamente Expostas (PEP), media adversa, atualizado diariamente, em 14 idiomas. Os acertos abrem um caso automaticamente e bloqueiam a compra antes da aprovação.
Cargas IVMS-101 trocadas via TRP, Sumsub Travel Rule, Notabene, Veriscope. Sem €1.000 de minimis sob o TFR da UE, cada transferência transporta dados do originador + beneficiário.
NameMarta LópezAccountbc1q72…9x4fAddressCalle Mayor 12, MadridVASPCoinbridgeCountrySpain · ES
Beneficiary
OH
Omar HaddadVASP · NovaRamp
IVMS-101
NameOmar HaddadAccountbc1qv…2m6pAddressMarina Walk 12, DubaiVASPNovaRampCountryUAE · AE
0.18 BTC
Delivered · TRP
No €1,000 de minimis · every transfer
05 · Limites de transação
Limites que se ajustam ao risco do comprador.
Limites de velocidade, montante, cadeia e geografia em tempo real por fluxo de trabalho. Deteta padrões de estruturação automaticamente. Edite as regras no Workflow Builder sem código, sem necessidade de reimplementação.
A mesma sessão /v3/ trata dos levantamentos: KYC do vendedor, KYT da carteira de origem, AML do comprador, preenchimento do pacote Travel Rule. Um contrato, uma fatura, um pacote de auditoria para ambas as direções.
201Criado{ status APPROVED · IN_REVIEW · DECLINED · AWAITING_USER }
Integração pronta para agente
Lance um fluxo de KYC + KYT para on-ramp com um único prompt.
Cole no Claude Code, Cursor, Codex, Devin, Aider ou Replit Agent. Preencha a sua stack. O agente constrói o fluxo de trabalho, restringe a compra no ecrã da carteira, ativa a monitorização contínua e configura o webhook.
didit-integration-prompt.md
You are integrating Didit into a fiat-to-crypto on-ramp. Two obligations on every buy:
1. Verify the buyer (KYC) — identity, liveness, face match, device + IP, AML against 1,300+ sanctions / PEP / adverse-media lists. ONE call to the Sessions API.
2. Screen the destination wallet (KYT) — risk-score the address against sanctioned wallets, mixers, high-risk counterparties BEFORE the crypto leaves. ONE call to the Transactions API with currency_kind: "crypto".
Bundle pricing (verified live against POST /v3/transactions/, 2026-05-16):
- KYC bundle: $0.33 per buyer (Sessions API)
- Transactions API call: $0.02 base (transaction-monitoring) + $0.15 wallet screening (Didit's default managed provider) = $0.17 per buy
- Total managed: $0.33 + $0.17 = $0.50 per fully-screened buy
- Prefer your own screening provider? Bring it and run it inside Didit — same contract, same price
- First 500 KYC verifications free every month, forever
PRE-REQUISITES
- Production API key from https://business.didit.me (sandbox key in 60s, no card).
- Webhook endpoint with HMAC SHA-256 verification using the X-Signature-V2 header and your webhook secret.
- A workflow_id from the Workflow Builder that bundles ID Verification + Passive Liveness + Face Match 1:1 + Device & IP Analysis + AML Screening.
- Transaction Monitoring enabled in the Business Console (Transactions > Settings) with crypto screening turned on.
STEP 1 — Verify the buyer with the Sessions API
POST https://verification.didit.me/v3/session/
Headers:
x-api-key: <your api key>
Content-Type: application/json
Body:
{
"workflow_id": "<wf id with KYC + AML modules>",
"vendor_data": "<your buyer id, max 256 chars>",
"callback": "https://<your-app>/onramp/kyc/callback",
"metadata": {
"purpose": "crypto_onramp_buy",
"buy_id": "<your internal tx reference>"
}
}
Response: 201 Created with the hosted session URL. Redirect the buyer to it. Sub-2-second median verdict on completion.
STEP 2 — Read the signed webhook on KYC completion
Didit POSTs to your callback. Session statuses are Title Case With Spaces:
Body (excerpted):
{
"session_id": "<uuid>",
"vendor_data": "<your buyer id>",
"status": "Approved",
"id_verification": { "status": "Approved" },
"liveness": { "status": "Approved" },
"face": { "status": "Approved", "similarity_score": 0.94 },
"ip_analysis": { "status": "Approved" },
"aml": { "status": "Approved", "hits": [] }
}
Status enum (exact case): Approved | Declined | In Review | Resubmitted | Expired | Not Finished | Kyc Expired | Abandoned.
Verify the X-Signature-V2 header BEFORE reading the body — HMAC SHA-256 of the raw bytes with your webhook secret.
STEP 3 — Screen the destination wallet BEFORE crediting the buy
POST https://verification.didit.me/v3/transactions/
Headers:
x-api-key: <your api key>
Content-Type: application/json
Body (required fields verified live 2026-05-16):
{
"transaction_id": "<your internal buy reference>",
"transaction_category": "finance",
"include_crypto_screening": true,
"transaction_details": {
"direction": "OUTBOUND",
"amount": "0.25",
"currency": "ETH",
"currency_kind": "crypto",
"action_type": "withdrawal"
},
"subject": {
"entity_type": "individual",
"vendor_data": "<your buyer id>",
"full_name": "<buyer full name>"
},
"counterparty": {
"entity_type": "unhosted_wallet",
"full_name": "<destination wallet label>",
"payment_method": {
"method_type": "crypto_wallet",
"account_id": "<destination wallet address>"
}
}
}
REQUIRED fields the API rejects if missing:
- subject.vendor_data + subject.full_name
- counterparty.full_name
- transaction_details.direction + currency + currency_kind + amount
- For crypto: a wallet address on counterparty.payment_method.account_id (OUTBOUND) or subject.payment_method.account_id (INBOUND post-transfer)
Wallet screening runs server-side when currency_kind = "crypto" and there is a wallet address in the right participant. No separate endpoint.
Response shape (excerpted from a real successful 201):
{
"uuid": "<server transaction uuid>",
"txn_id": "<your transaction_id echoed back>",
"status": "APPROVED",
"score": 0,
"severity": null, // null when score is 0; LOW | MEDIUM | HIGH | CRITICAL | UNKNOWN otherwise
"props": {
"wallet_risk_score": 0,
"sanctions_hit": false,
"pep_counterparty": false,
"aml_provider": "<provider slug>", // identifies the screening provider used on this call
"aml_screening_type": "WALLET_SCREENING",
"aml_screening_status": "COMPLETED"
},
"provider_results": [{ "provider": "<provider slug>", "result_type": "WALLET_SCREENING", "status": "SCREENED", ... }],
"cost_breakdown": {
"total_price": 0.17,
"items": [
{ "usage_type": "transaction_aml_monitoring", "price": 0.15 },
{ "usage_type": "transaction_monitoring", "price": 0.02 }
]
}
}
Transaction status enum (exact case, UPPER_SNAKE_CASE): APPROVED | IN_REVIEW | DECLINED | AWAITING_USER.
When a transaction enters AWAITING_USER, Didit creates a linked remediation session automatically and returns a verification URL on the response.
Real per-transaction cost (verified live):
- Plain fiat transaction monitoring: $0.02
- Crypto transaction with managed wallet screening: $0.17 ($0.02 TM base + $0.15 wallet screen on Didit's managed flow)
- Bring your own screening provider and it runs inside Didit at the same $0.17 rate
Branch logic:
APPROVED → send the crypto.
IN_REVIEW → hold the buy, route to analyst queue.
DECLINED → refund the fiat, block the address.
AWAITING_USER → redirect the buyer to the remediation session URL.
STEP 4 — Ongoing AML monitoring is automatic
Any session with AML enabled is rescreened DAILY by Didit's continuous monitoring at $0.07 per user per year. There is NO separate endpoint to call — the same workflow does it.
When a previously-approved buyer crosses an AML threshold, the session status changes to "In Review" or "Declined" automatically and your webhook fires the update.
STEP 5 — Off-ramp uses the same two endpoints
Selling crypto for fiat:
- KYC the seller via POST /v3/session/ (same as Step 1).
- Screen the source wallet via POST /v3/transactions/ with direction: "INBOUND" and the source wallet address on subject.payment_method.account_id.
WEBHOOK EVENT NAMES
- Sessions: status changes flow through the standard session webhook.
- Transactions: transaction.created · transaction.updated · transaction.status.changed · transaction.alert.generated.
Verify X-Signature-V2 on every payload.
CONSTRAINTS
- Session statuses use Title Case With Spaces (Approved, In Review). Transaction statuses use UPPER_SNAKE_CASE (APPROVED, IN_REVIEW). They live in different APIs — don't mix them in the same code path.
- Wallet Screening MUST run BEFORE the crypto leaves — a post-transfer screen is useful for audit but useless for blocking.
- Default record retention is 5 years post-relationship per the EU AML package; extend per your supervisor's guidance.
- 200+ fraud signals are evaluated on every KYC session at no extra cost — surface the score via the session decision payload, don't re-query.
Read the docs:
- https://docs.didit.me/sessions-api/create-session
- https://docs.didit.me/transaction-monitoring/overview
- https://docs.didit.me/transaction-monitoring/aml-screening
- https://docs.didit.me/integration/webhooks
Start free at https://business.didit.me — sandbox key in 60 seconds, 500 verifications free every month, no credit card.
Conformidade desde a conceção
Abra um novo país com um clique. Nós fazemos o trabalho difícil.
Abrimos as subsidiárias locais, garantimos as licenças, realizamos os testes de penetração, obtemos as certificações e alinhamos com cada nova regulamentação. Para lançar verificações num novo país, basta ativar um botão. Mais de 220 países ativos, auditados e testados trimestralmente, o único fornecedor de identidade que um governo de um estado-membro da UE formalmente considerou mais seguro do que a verificação presencial.
Por compra totalmente verificada, pacote KYC + transação com verificação de carteira.
0+
Sanções, Pessoas Politicamente Expostas (PEP) e listas de media adversa verificadas em cada comprador.
<0s
Resultado KYC de ponta a ponta por sessão, em Android de nível básico.
0
Verificações gratuitas todos os meses, em todas as contas.
Três níveis, uma tabela de preços
Comece grátis. Pague à medida que usa. Escale para Enterprise.
500 verificações gratuitas todos os meses, para sempre. Depois, pague apenas quando um módulo for executado. Contratos personalizados, residência de dados e acordos de nível de serviço (SLAs) no plano Enterprise.
Grátis
$0/ mês · sem cartão
Para construir, testar e para os seus primeiros utilizadores.
Tudo o que precisa para começar:
500 verificações KYC completas por mês
ID, prova de vida, correspondência facial, dispositivo e IP
Mais de 200 sinais de fraude, blocklist, duplicados
KYC reutilizável em toda a rede Didit
Construtor de fluxos de trabalho, gestão de casos, SDKs
Apoio de IAAgente de IA na consola, documentação e comunidade.