Pular para o conteúdo principal
Didit levanta US$ 7,5 milhões para construir a infraestrutura para identidade e fraude
Didit
KYC reutilizável · eIDAS 2 da UE

Verifique uma vez. Reutilize em qualquer lugar.

Faça um único KYC de $0.33. O usuário verificado compartilha essa verificação Didit com qualquer outro app que use Didit, com divulgação seletiva e grátis em cada reutilização. Cinco eIDs nacionais já estão ativas, e a aceitação da carteira EUDI chega em breve.

Apoiado por
Y CombinatorRobinhood Ventures
Firecrawl
Slash
Crnogorski Telekom
UCSF Neuroscape
Bit2Me

Confiado por mais de 3.000 organizações em todo o mundo.

O que a identidade reutilizável oferece

Identidade no bolso do usuário. Grátis para todos que a aceitam.

Todo KYC da Didit pode ser compartilhado como uma verificação KYC Reutilizável assinada com outros aplicativos que usam Didit. Toda plataforma receptora lê isso de graça. Uma verificação, para todo negócio que aceita Didit. Comece grátis.

Como funciona

Do cadastro ao usuário verificado em quatro passos.

Passo 01 / 04

Crie o fluxo de trabalho

Escolha as verificações que você quer, ID, prova de vida, correspondência facial, sanções, endereço, idade, telefone, e-mail, perguntas personalizadas. Arraste-as para um fluxo no painel, ou publique o mesmo fluxo em nossa API. Crie ramificações com base em condições, execute testes A/B, sem necessidade de código.

Feito para identidade reutilizável · Preço de infraestrutura

Um KYC. Todas as plataformas depois, grátis.

Uma identidade reutilizável de verdade não é um recurso, é um sistema. Emissão, armazenamento, apresentação, divulgação seletiva, atualização, revogação. Tudo sob uma única sessão /v3/.
01 · Verifique uma vez

Um KYC. Uma credencial emitida.

Na primeira vez, o usuário faz o pacote padrão de $0.33: documento de identidade, liveness passivo, face match e análise de dispositivo e IP. Ao final, a Didit assina a verificação para que o usuário possa compartilhá-la com outros apps que usam Didit.
Módulo de Verificação de Usuário
02 · Divulgação seletiva

Revele apenas o que o verificador precisa.

Comprove ter mais de 18 anos sem revelar a data de nascimento. Comprove o país sem revelar o endereço. O aplicativo receptor lê apenas os campos que solicita, assinados pela Didit.
Módulo KYC Reutilizável
03 · eIDs nacionais

Cinco eIDs nacionais, ativas hoje.

MitID, BankID Suécia, Finnish Trust Network, Smart-ID e Mobile-ID já funcionam no mesmo fluxo. Quem não tem eID segue a rota do documento com leitura do chip NFC, prova de vida e comparação facial. A aceitação da carteira EUDI chega em breve.
Verificação eID
04 · Emissor · Titular · Verificador

Três papéis. Uma credencial.

O emissor assina a credencial após o KYC. O usuário a mantém em sua carteira. O verificador valida a assinatura do emissor apenas nos campos divulgados. Triângulo de confiança padrão de credenciais verificáveis.
Segurança e conformidade
05 · Credencial sempre atualizada

Credencial sempre atualizada, automaticamente.

O AML contínuo reavalia o usuário diariamente. Expiração de documento, mudança de nome, ocorrência de sanções, tudo aparece automaticamente na credencial. Credenciais desatualizadas são rejeitadas no momento da apresentação.
Módulo de Triagem AML
06 · Gratuito para receber

Grátis para toda plataforma receptora.

A emissão está incluída em cada KYC. O armazenamento da carteira fica no dispositivo do usuário. A apresentação, divulgação seletiva e validação de assinatura são todas gratuitas, para sempre. Atualização contínua de AML por $0.07 por usuário por ano em contas de alto volume.
Módulo KYC Reutilizável
Integre

Duas chamadas. Uma verificação, compartilhada.

Compartilhe uma sessão concluída de uma aplicação Didit e importe-a em outra. O lado que recebe lê a decisão completa sem pedir que a pessoa se verifique de novo.
POST /v3/session/{id}/share/Compartilhar
curl -X POST https://verification.didit.me/v3/session/$SESSION_ID/share/ \
  -H "x-api-key: $DIDIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "for_application_id": "<receiving-application-id>",
    "ttl_in_seconds": 3600
  }'
200OK{ "share_token": "eyJ…" }
Funciona com uma sessão concluída. Só a aplicação que você indicar pode resgatar o token.docs →
POST /v3/session/import-shared/Importar
curl -X POST https://verification.didit.me/v3/session/import-shared/ \
  -H "x-api-key: $RECEIVING_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "share_token": "<share-token>",
    "trust_review": false,
    "workflow_id": "<receiving-workflow-uuid>",
    "vendor_data": "user-42"
  }'
201Criado{ "shared_from_session": "…" }
Retorna a decisão completa com um novo id de sessão. Defina trust_review como false para enviá-la para In Review.docs →
Integração pronta para agentes

Lance um fluxo de identidade reutilizável com um único prompt.

Cole no Claude Code, Cursor, Codex, Devin, Aider ou Replit Agent. Preencha sua stack. O agente cria o fluxo de trabalho, a sessão, as chamadas de compartilhamento e importação e o webhook assinado.
didit-integration-prompt.md
# Didit Reusable KYC: verify a person once, share the finished session with another application

You are adding Reusable KYC to my_stack. A person completes one identity
verification; the finished session is then shared with a second Didit
application, which imports the full decision without running the checks
again. Every URL, header and enum value below is canonical. Do not paraphrase
or "improve" them.

## 0. What exists, and what does not
- Reuse is server to server, between two Didit applications: the source
  application mints a share token for a finished session, the receiving
  application redeems it. Both sides use their own x-api-key.
- There is NO reusable_identity object on the webhook or the decision, NO
  metadata.request_fields or other selective-disclosure parameter, NO
  workflow setting that "accepts" a credential, and NO revocation event. Do
  not invent them. metadata on a session is free-form JSON that Didit echoes
  back, nothing more. The receiving application gets the whole decision.
- This is not an EU Digital Identity (EUDI) Wallet integration. Didit does
  not issue or accept EUDI Wallet credentials through these calls.

## 1. Provision
- Sign up: https://business.didit.me
- Source application: its API key. Receiving application: its API key and its
  application id (a UUID: shown in the console, and sent as application_id
  on every webhook that application receives). They are different
  applications; sharing a session with the application that owns it is
  refused.

## 2. Create the workflow for the first verification
POST https://verification.didit.me/v3/workflows/
  -H "x-api-key: <source-api-key>"
  -H "Content-Type: application/json"

{
  "workflow_label": "KYC onboarding",
  "features": [
    { "feature": "OCR" },
    { "feature": "LIVENESS" },
    { "feature": "FACE_MATCH" },
    { "feature": "IP_ANALYSIS" }
  ]
}

OCR is the ID Verification feature (uppercase, strict: ID_VERIFICATION is
rejected). Add { "feature": "AML" } for sanctions and PEP screening; it is
priced separately. Response: 201. The workflow id is uuid (workflow_id carries
the same value) and features comes back as one string, "OCR + LIVENESS + ...".
Create the workflow once and keep the id: every call makes a new one.
Prices: https://didit.me/pricing

## 3. Create a session
POST https://verification.didit.me/v3/session/
  -H "x-api-key: <source-api-key>"
  -H "Content-Type: application/json"
  -d '{ "workflow_id": "<uuid from step 2>", "vendor_data": "<your user id>" }'

Response: 201 with session_id, session_token, url and status "Not Started".
Redirect the user to url (hosted flow) or open it in the Web, iOS, Android,
React Native or Flutter SDK. The field is named url on this response.
One unfinished session exists per workflow_id and vendor_data pair: calling
create again with the same pair answers 201 again with that same session.
Optional: callback, a URL the user's browser is sent back to when the flow
ends. It is a browser redirect, not a webhook: never trust its query string.

## 4. Webhook
Register a destination in the console (API & Webhooks), or over the API:

POST https://verification.didit.me/v3/webhook/destinations/
  -H "x-api-key: <your-api-key>"
  -H "Content-Type: application/json"
  -d '{
    "label": "Verification webhooks",
    "url": "https://<your-public-host>/webhooks/didit",
    "webhook_version": "v3",
    "subscribed_events": ["status.updated", "data.updated"]
  }'

label, url and subscribed_events are required. url must be a public HTTPS
address: Didit does not deliver to localhost or private addresses. Response:
201 with uuid and secret_shared_key. Store secret_shared_key as the webhook
secret (DIDIT_WEBHOOK_SECRET); it is unique to this destination. Remove a
destination with DELETE /v3/webhook/destinations/{uuid}/ (204).

What arrives:
  - webhook_type is "status.updated" (the session changed status) or
    "data.updated" (verification data was corrected after the fact)
  - a destination receives the events of every session of the application,
    so filter on workflow_id or vendor_data when several flows share it
  - creating a session already sends status.updated with status
    "Not Started". The decision key is present only when status is Approved,
    Declined, In Review or Abandoned.

Verify every delivery:

  Header:      X-Signature-V2 (not X-Signature, not X-Signature-Simple)
  Algorithm:   HMAC-SHA256, hex digest, over the canonical JSON of the payload
               (Python json.dumps(sort_keys=True, separators=(",", ":"),
               ensure_ascii=False) after whole-valued floats become ints).
               Never hash the raw request bytes under this header: that is
               the older X-Signature.
  Freshness:   the signed body field timestamp is the dispatch time (Unix
               seconds). Reject when abs(now - timestamp) > 300 seconds, and
               reject when the X-Timestamp header does not equal it.
  Idempotency: event_id is the same on every retry of one event, so store it
               and skip a delivery you already processed. One session can
               still send the same status under two event ids, and the
               console's Try Webhook test deliveries carry no event_id, so
               also make the handler safe to run twice for one
               (session_id, status, webhook_type).
  Compare:     constant-time (crypto.timingSafeEqual)

Reference handler (Express). Keep the verification lines as written.
The handler is a fragment. Put this above it and app.listen(process.env.PORT)
below it. It needs Express and Node 21 or newer (an older Node rejects
every delivery). It expects a JSON body: answer 400 yourself if you accept
anything else on this route, and refuse to start without the secret.

const express = require("express");
const app = express();
const SECRET = process.env.DIDIT_WEBHOOK_SECRET; // secret_shared_key of the destination

// Your endpoint receives a signed payload
const crypto = require("node:crypto"); // ESM: import crypto from "node:crypto"
// X-Signature-V2 = HMAC over the canonical JSON, never the raw bytes. Match the sender byte for
// byte: keys sorted by code point, integers digit for digit, floats in Python's repr.
class Num { constructor(src) { this.src = src; } } // a number as written on the wire, not a double
const num = (s) => { if (/^-?\d+$/.test(s)) return BigInt(s).toString(); const n = +s; // ints stay exact
  if (Number.isInteger(n)) return BigInt(n).toString(); const [m, e] = n.toExponential().split("e"); // 27.0 -> 27
  return +e >= -4 ? String(n) : `${m}e-${String(-e).padStart(2, "0")}`; }; // 1e-05, not 0.00001
const byCodePoint = (a, b) => Buffer.compare(Buffer.from(a), Buffer.from(b)); // UTF-8 order = Python's
const canon = (v) => Array.isArray(v) ? `[${v.map(canon)}]` : v instanceof Num ? num(v.src)
  : v && typeof v === "object" ? `{${Object.keys(v).sort(byCodePoint).map((k) => `${JSON.stringify(k)}:${canon(v[k])}`)}}`
  : JSON.stringify(v);
// Read the body as text: express.json() would round 1000000000000000129 to a double first.
// Register this route ABOVE any global app.use(express.json()): the first parser to run
// consumes the stream, and a body it already parsed has lost the digits the signature covers.
app.post("/webhooks/didit", express.text({ type: "application/json" }), (req, res) => {
  const exact = JSON.parse(req.body, (k, v, c) => typeof v === "number" ? new Num(c.source) : v); // Node 21+
  const body = JSON.parse(req.body);
  const mac = crypto.createHmac("sha256", SECRET).update(canon(exact), "utf8").digest("hex");
  const sig = Buffer.from(String(req.headers["x-signature-v2"] ?? ""));
  // Freshness comes from the signed body timestamp; the header alone is unsigned and replayable.
  const ts = body.timestamp, fresh = String(ts) === req.headers["x-timestamp"]
    && Math.abs(Date.now() / 1000 - ts) <= 300;
  if (!fresh || sig.length !== mac.length
    || !crypto.timingSafeEqual(sig, Buffer.from(mac))) return res.sendStatus(401);
  const { session_id, status, webhook_type, vendor_data, decision } = body;
  // decision is present on Approved, Declined, In Review and Abandoned.
  res.sendStatus(200);
});

Status values (exact strings): Not Started, In Progress, Approved, Declined,
In Review, Resubmitted, Expired, Abandoned, Kyc Expired. Awaiting User only
appears on business verification sessions.

## 5. Read the decision
The same V3 decision reaches you two ways:
  - webhook body: body.decision.id_verifications[]
  - GET https://verification.didit.me/v3/session/{session_id}/decision/
      -H "x-api-key: <your-api-key>"
    This response IS the decision object. Read id_verifications at the top
    level: there is no decision wrapper here.
Until the user finishes the ID step, status is "Not Started" or "In Progress"
and id_verifications is null, not an empty array. Guard for it.
The other feature results sit next to it as plural arrays: liveness_checks[],
face_matches[], ip_analyses[], aml_screenings[]. shared_from_session is null
on a session the person completed here.

## 6. Share the finished session (source application)
Only a session whose status is Approved, Declined or In Review can be shared.

POST https://verification.didit.me/v3/session/{session_id}/share/
  -H "x-api-key: <source-api-key>"
  -H "Content-Type: application/json"
  -d '{ "for_application_id": "<receiving application id>", "ttl_in_seconds": 3600 }'

Response: 200 with share_token, for_application_id and session_kind ("user").
ttl_in_seconds: 60 to 86400, default 3600. Each call mints a new token; a
token cannot be revoked, it only expires. Send it to the receiving
application's backend, never to a browser.

## 7. Import it (receiving application)
POST https://verification.didit.me/v3/session/import-shared/
  -H "x-api-key: <receiving-api-key>"
  -H "Content-Type: application/json"
  -d '{
    "share_token": "<share_token from step 6>",
    "trust_review": false,
    "workflow_id": "<a workflow id of the receiving application>",
    "vendor_data": "<user id on the receiving side>"
  }'

share_token, trust_review and workflow_id are required. trust_review true
keeps the source status (Approved stays Approved); false puts the imported
session In Review so the receiving team decides. Response: 201 with the same
decision shape as step 5, a new session_id, and shared_from_session pointing
at the source session.

## 8. Errors to handle
The message is under detail for some errors and under the field name
(for_application_id, share_token) for others: read both.
  - share, 400: "Cannot share a session with the same application."
  - share, 400: "Target application does not exist."
  - share, 400: "Only finished sessions ("Approved", "Declined", "In Review")
    can be shared."
  - import, 400 on share_token: "Invalid share token.", "Share token has
    expired.", "This token is not valid for this application."
  - import, 400: share_token, trust_review or workflow_id missing
  - import, 403: "This session has already been shared with your
    application." Mint a new token.
  - import, 404: "Workflow does not exist for this application."

## 9. Hard rules
  - base URL for v3 endpoints: verification.didit.me
  - auth header: x-api-key, one key per application
  - feature enum: OCR, LIVENESS, FACE_MATCH, IP_ANALYSIS, AML (uppercase)
  - result path: decision.id_verifications[] in the webhook body and
    id_verifications[] on the GET decision response
  - webhook: X-Signature-V2 plus X-Timestamp, canonical JSON, freshness from
    the signed body timestamp

## 10. Verify your integration
Sandbox (an application in sandbox mode: nothing is billed).
https://docs.didit.me/integration/sandbox-testing
  - create the workflow, create a session, and read its decision: expect 201,
    201 with url, and 200 with status "Not Started"
  - to get a finished session without a person, call
    POST https://verification.didit.me/v3/session/{session_id}/simulate/ with
    your x-api-key and { "new_status": "Approved" }. It sets the status and
    sends the webhook; the feature arrays stay null.
  - share that session. With no second application yet, send a random UUID
    as for_application_id and expect the 400 "Target application does not
    exist.": that proves the call is wired. A full share and import needs
    the second application's id and API key; do not fake that step.
  - assert the webhook accepts a correctly signed payload and rejects a wrong
    X-Signature-V2, a changed body, and a payload whose signed timestamp is
    older than 300 seconds, even when X-Timestamp is refreshed

Docs:
  - https://docs.didit.me/core-technology/reusable-kyc/overview
  - https://docs.didit.me/sessions-api/create-session
  - https://docs.didit.me/sessions-api/retrieve-session
  - https://docs.didit.me/integration/webhooks
Precisa de mais contexto? Consulte a documentação completa do módulo.docs.didit.me →
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.
Leia o dossiê de segurança e conformidade
SOC 2 · Type II — AICPA · 2026
SOC 2 · Type I — AICPA · 2026
ISO/IEC 27001 — Segurança da informação · 2026
Sandbox financeiro da UE — Tesoro · SEPBLAC · BdE
FIDO Alliance — Membro associado · 2026
iBeta Level 1 PAD — NIST / NIAP · 2026
GDPR — EU 2016/679
HIPAA — 45 CFR §160 · §164
DORA — EU 2022/2554
MiCA — EU 2023/1114
Diretrizes EBA para onboarding remoto — EBA/GL/2022/15
AMLD6 · eIDAS 2.0 — Alinhado com a UE por design
Jugendschutz geprüft — FSM · JMStV §4(2) · 2026

Números que comprovam

Números que comprovam
  • $0.33
    Por primeira verificação, a única vez que um usuário paga pelo pacote KYC da Didit.
  • Free
    Em cada plataforma receptora. Cada reuso, cada apresentação, cada divulgação seletiva.
  • 27
    Estados-membros da UE. Cada um deve oferecer uma carteira EUDI até 24 de dezembro de 2026, e a aceitação da carteira EUDI na Didit chega em breve.
  • 5
    eIDs nacionais ativas hoje: MitID, BankID Sweden, Finnish Trust Network, Smart-ID e Mobile-ID.
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. 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 seus primeiros usuários.

Tudo o que você precisa para começar:
  • 500 verificações KYC completas todo mês
  • ID, prova de vida, face match, dispositivo e IP
  • Mais de 200 sinais de fraude, blocklist, duplicatas
  • KYC reutilizável em toda a rede Didit
  • Construtor de fluxo de trabalho, gerenciamento de casos, SDKs
  • Suporte de IA Agente de IA no console, documentação e comunidade.
Mais popular

Pague pelo uso

$0.33por KYC completo

Mais de 25 módulos, preços públicos. Descontos automáticos por volume.

Tudo que está em Grátis, e mais:
  • Triagem e monitoramento AML a partir de $0.07
  • Preços de registro de empresas por país e nível de dados
  • Monitoramento de transações a $0.02 cada
  • Triagem de carteira a $0.15 por verificação
  • Fluxo white-label com a sua marca
  • Suporte de IA Agente de IA no console, documentação e comunidade.

Enterprise

Personalizadocontrato anual

Para grandes volumes e programas regulamentados.

Tudo que está em Pague pelo uso, e mais:
  • Contratos anuais, preços por volume comprometido
  • Termos legais personalizados e SLA de 99,99% de uptime
  • Residência de dados, retenção, revisão de segurança
  • Revisores manuais sob demanda
  • Termos para revendedores e white-label
  • Suporte humano prioritário Canal de Slack compartilhado 24/7, gerente de sucesso dedicado.

Descontos por volume são aplicados automaticamente conforme o uso aumenta — sem negociação, sem ligação de vendas.

FAQ

Perguntas frequentes

O que é a Didit?

Didit é a infraestrutura para identidade e fraude, a plataforma que gostaríamos que existisse quando estávamos construindo nossos próprios produtos: aberta, flexível e amigável para desenvolvedores. Assim, ela funciona como uma parte real da sua stack, em vez de uma caixa preta que você integra por fora.

Uma única API cobre a verificação de pessoas (KYC, know your customer), verificação de empresas (KYB, know your business), rastreamento de carteiras de cripto (KYT, know your transaction) e monitoramento de transações em tempo real, em uma stack construída para ser:

  • Rápida, p99 abaixo de 2 segundos em cada sessão
  • Confiável, em produção com mais de 3.000 empresas em mais de 220 países
  • Segura, SOC 2 Tipo 1 e Tipo 2, ISO 27001, nativa do GDPR e formalmente atestada pelo regulador financeiro da Espanha como mais segura do que verificar alguém pessoalmente

A base por trás: mais de 14.000 tipos de documentos em mais de 48 idiomas, mais de 1.000 fontes de dados e mais de 200 sinais de fraude em cada sessão. A infraestrutura Didit aprende dinamicamente com cada sessão e melhora a cada dia.

O que é eIDAS 2.0, em termos simples?

eIDAS 2.0, abreviação de electronic IDentification, Authentication and trust Services, é a atualização de 2024 da UE para seu regulamento de identidade. A principal mudança é a Carteira de Identidade Digital Europeia (muitas vezes abreviada para EUDI Wallet): um aplicativo de smartphone ao qual todo cidadão e residente da UE terá direito até o final de 2026.

A carteira contém credenciais verificáveis, uma carteira de motorista digital, uma atestação de identidade verificada, um diploma acadêmico, emitidas por partes confiáveis e apresentadas a partes dependentes com prova criptográfica, opcionalmente com divulgação seletiva (prove que você tem mais de 18 anos sem revelar sua data de nascimento completa).

Para as empresas, o eIDAS 2.0 trata tanto de aceitar credenciais apresentadas pela carteira quanto de emitir as credenciais que seus usuários carregam.

Quem deve aceitar a Carteira EUDI e quando?

O que o Regulamento (UE) 2024/1183 (eIDAS 2) estabelece:

  • Os Estados-Membros devem oferecer pelo menos uma Carteira Europeia de Identidade Digital (Carteira EUDI) até 24 de dezembro de 2026.
  • As partes privadas dependentes que são legal ou contratualmente obrigadas a usar autenticação forte do usuário para identificação online devem aceitar a Carteira EUDI a pedido do usuário até 24 de dezembro de 2027 (Artigo 5f(2)). Micro e pequenas empresas estão isentas.
  • As plataformas online muito grandes que exigem autenticação do usuário também devem aceitar a Carteira EUDI a pedido voluntário do usuário (Artigo 5f(3)). O texto não estabelece uma data separada para esta obrigação.

Outras empresas podem aceitar a carteira voluntariamente. A aceitação da Carteira EUDI da Didit estará disponível em breve: leia o que uma empresa precisa para aceitar a Carteira EUDI.

Qual a velocidade da verificação para o meu usuário final?

O fluxo completo geralmente leva menos de 30 segundos do início ao fim, pegar o documento, tirar a foto, tirar a selfie, pronto. Essa é a velocidade mais rápida do mercado. Provedores de KYC legados geralmente levam mais de 90 segundos para o mesmo fluxo.

No back-end, o Didit retorna o resultado em menos de dois segundos no p99, medido do momento em que o usuário termina a selfie até o momento em que seu webhook é acionado. A captura móvel é otimizada para celulares e redes lentas: compressão progressiva de imagem, carregamento preguiçoso do SDK e uma transição com um toque do desktop para o celular via QR code, caso o usuário comece na web.

Como a identidade reutilizável é diferente do login federado (Entrar com Apple, Google)?

Login federado comprova que uma conta existe com o provedor de identidade, a empresa receptora recebe um endereço de e-mail e talvez um nome. Isso não é uma identidade de nível regulatório.

Identidade reutilizável inclui:

  • Uma verificação de nível de documento governamental (passaporte, carteira de identidade nacional escaneada e com OCR)
  • Um vínculo biométrico com a pessoa que apresenta a credencial (selfie comparada ao retrato do documento)
  • Uma verificação de vivacidade que detecta deepfakes, máscaras, ataques de repetição
  • Um status AML rastreado contra sanções, PEP e listas de mídia adversa
  • Uma declaração assinada de um provedor regulamentado, com carimbo de data/hora e um rastro verificável

O verificador obtém a mesma segurança regulatória que obteria ao executar seu próprio KYC, sem o custo, o atrito e a queda na conversão.

O que acontece se um usuário falhar, abandonar ou expirar?

Cada sessão tem um dos sete status claros, para que seu código sempre saiba o que fazer:

  • Approved, todas as verificações aprovadas. Prossiga com o usuário.
  • Declined, uma ou mais verificações falharam. Você pode permitir que o usuário reenvie a etapa específica que falhou (por exemplo, tire a selfie novamente) sem refazer todo o fluxo.
  • In Review, sinalizado para revisão de conformidade. Abra o caso no console, veja todos os sinais, decida aprovar ou recusar.
  • In Progress, o usuário está no meio do fluxo.
  • Not Started, link enviado, o usuário ainda não abriu. Envie um lembrete se demorar muito.
  • Abandoned, o usuário abriu o link, mas não terminou a tempo. Reengaje ou expire.
  • Expired, o link da sessão expirou. Crie uma nova sessão.

Um webhook assinado é disparado a cada mudança de status, para que seu banco de dados esteja sempre sincronizado. Sessões abandonadas e recusadas são gratuitas.

Onde ficam os dados dos meus clientes e como são protegidos?

Por padrão, os dados de produção são processados e armazenados na União Europeia, no Amazon Web Services. Contratos empresariais podem solicitar regiões alternativas para jurisdições cujos reguladores exijam.

Criptografia em todos os lugares. AES-256 em repouso em todos os bancos de dados, armazenamento de objetos e backups. Transport Layer Security 1.3 em trânsito em cada chamada de API, webhook e sessão do Business Console. Dados biométricos são criptografados sob uma Customer Master Key separada.

A retenção é sua para controlar. A retenção padrão é indefinida (ilimitada), a menos que você configure um período menor, entre 30 dias e 10 anos por aplicação, e você pode excluir qualquer sessão individual a qualquer momento pelo painel ou pela API.

Certificações: SOC 2 Tipo 1 e Tipo 2, ISO/IEC 27001:2022, iBeta Level 1 PAD, e um atestado público do Tesoro / SEPBLAC / CNMV da Espanha de que a verificação remota de identidade da Didit é mais segura do que verificar alguém pessoalmente. Relatório completo em /security-compliance.

A Didit está em conformidade com a minha indústria?

A Didit já vem em conformidade por padrão com os reguladores importantes para a infraestrutura de identidade:

  • GDPR + UK GDPR, divisão entre controlador e operador, Acordo de Tratamento de Dados completo publicado, autoridade supervisora principal designada (AEPD da Espanha).
  • AMLD6 + EU AML Single Rulebook, mais de 1.300 listas de sanções, de pessoas politicamente expostas e de mídia negativa verificadas em tempo real.
  • eIDAS 2.0, cinco eIDs nacionais ativas hoje (MitID, BankID Suécia, Finnish Trust Network, Smart-ID, Mobile-ID); aceitação da carteira EUDI em breve.
  • MiCA (Markets in Crypto-Assets), pronto para rampas de entrada de cripto (on-ramps), exchanges e custodiantes.
  • DORA, Digital Operational Resilience Act, resiliência operacional de serviços financeiros da UE.
  • BIPA, CUBI, Washington HB 1493, CCPA / CPRA, privacidade biométrica dos EUA (Illinois, Texas, Washington) e privacidade do consumidor da Califórnia.
  • UK Online Safety Act, obrigações de controle de idade e segurança infantil.
  • FATF Travel Rule, dados do originador e do beneficiário em transferências de cripto, interoperável com IVMS-101.

Memorando detalhado, todos os certificados, todas as cartas dos reguladores: /security-compliance.

Com que rapidez consigo integrar e começar a verificar usuários?
  • 60 segundos para uma conta sandbox em business.didit.me, sem cartão de crédito.
  • 5 minutos para uma verificação funcional via Claude Code, Cursor ou qualquer agente de codificação através do nosso Model Context Protocol (MCP) server.
  • Um fim de semana para uma integração pronta para produção com verificação de webhook assinado, retentativas e um fluxo de remediação quando um usuário é recusado.

Três caminhos de integração, escolha o que melhor se adapta à sua stack:

  • Incorpore nativamente com nossos SDKs Web, iOS, Android, React Native ou Flutter.
  • Redirecione o usuário para a página de verificação hospedada, sem SDK.
  • Envie um link por e-mail, SMS, WhatsApp ou qualquer canal, sem trabalho de front-end.

Mesmo painel, mesma cobrança, mesmo preço por sucesso para todos os três. Guia passo a passo em docs.didit.me/integration/integration-prompt.

Como é a história da privacidade sob o GDPR?

A identidade reutilizável é uma melhoria de privacidade em relação à stack KYC legada:

  • A divulgação seletiva é integrada, o verificador vê apenas os campos necessários, não o documento subjacente
  • Sem registro central, a credencial reside na carteira do usuário, não em um registro da Didit de quem apresentou o quê a quem
  • Consentimento por apresentação, o usuário aprova cada divulgação explicitamente
  • Armazenamento residente na UE, o pacote de evidências do emissor permanece em data centers da UE; a carteira em si está no dispositivo do usuário
  • Direito ao esquecimento, quando um usuário revoga uma credencial, a plataforma receptora deve removê-la de seus registros sob o GDPR; a API de revogação por plataforma da Didit torna isso uma única chamada

A base legal para o processamento no lado receptor é o interesse legítimo sob o GDPR, o usuário apresentou explicitamente uma credencial para acessar o serviço. O Acordo de Processamento de Dados (DPA) padrão da Didit cobre a relação de controlador conjunto.

E se o usuário mudar seu documento de identidade ou se mudar de país?

Três tipos de gatilho:

  • Renovação de documento (passaporte expira, novo documento de identidade nacional emitido) → o usuário executa uma atualização leve; a verificação é reemitida com a nova impressão digital do documento
  • Mudança material de identidade (novo nome legal, mudança de marcador de gênero, mudança de país de residência) → reverificação completa por $0.33; a credencial antiga é revogada e uma nova é emitida
  • Mudança de status AML (um usuário anteriormente limpo se torna um PEP ou entra em uma lista de sanções) → o monitoramento contínuo da Didit sinaliza a mudança automaticamente, o campo AML da credencial é atualizado e todas as plataformas receptoras veem o status atualizado na próxima apresentação

A plataforma receptora nunca precisa correr atrás do usuário para atualizações, a credencial carrega seu próprio sinal de frescor, e credenciais desatualizadas são rejeitadas no momento da apresentação.

Que evidências um regulador vê para uma verificação reutilizada?

O verificador (a plataforma receptora) recebe o mesmo pacote de evidências por apresentação que o verificador original obteve, mais a cadeia de emissão:

  • A evidência KYC original, digitalização de documento, similaridade biométrica, ocorrências AML, sinais de risco de dispositivo + IP, carimbos de data/hora assinados
  • A cadeia de emissão, qual plataforma alimentada pela Didit emitiu a credencial, quando, em qual fluxo de trabalho
  • O log de apresentação, quando este usuário apresentou à sua plataforma, quais campos ele divulgou, o veredito do seu verificador
  • O status AML atual, atualizado diariamente pelo monitoramento contínuo da Didit
  • A assinatura HMAC SHA-256 em cada campo, para que a cadeia de custódia seja comprovável

A Didit é a única plataforma KYC com uma declaração formal do governo de um estado membro da UE, o Tesouro da Espanha, o Banco de España e o SEPBLAC atestaram conjuntamente o serviço como mais seguro do que a verificação presencial. Essa declaração se estende a cada apresentação reutilizada.

Infraestrutura para identidade e fraude.

Uma API para KYC, KYB, Monitoramento de Transações e Análise de Carteiras. Integre em 5 minutos.

Peça para uma IA resumir esta página