Saltar para o conteúdo principal
Didit angaria 7,5 milhões de dólares 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 utilizador verificado partilha essa verificação Didit com qualquer outra app que use Didit, com divulgação seletiva e grátis em cada reutilização. Cinco eID 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 permite

Identidade no bolso do utilizador. Grátis para todos os que a aceitam.

Cada KYC da Didit pode ser partilhado como uma verificação KYC Reutilizável assinada com outras aplicações que utilizam a Didit. Cada plataforma recetora lê-o gratuitamente. Uma verificação, para todas as empresas que aceitam a Didit. Comece gratuitamente.

Como funciona

Do registo ao utilizador verificado em quatro passos.

Passo 01 / 04

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.

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

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

Uma identidade reutilizável real não é uma funcionalidade, é um sistema. Emissão, posse, apresentação, divulgação seletiva, atualização, revogação. Tudo sob uma única sessão /v3/.
01 · Verificar uma vez

Um KYC. Uma credencial emitida.

Na primeira vez, o utilizador faz o pacote padrão de $0.33: documento de identificação, prova de vida passiva, comparação facial e análise de dispositivo e IP. No fim, a Didit assina a verificação para que o utilizador a possa partilhar com outras apps que usam Didit.
Módulo de Verificação de Utilizador
02 · Divulgação seletiva

Revele apenas o que o verificador precisa.

Prove ter mais de 18 anos sem revelar a data de nascimento. Prove o país sem revelar a morada. A aplicação recetora lê apenas os campos solicitados, assinados pela Didit.
Módulo KYC Reutilizável
03 · eID nacionais

Cinco eID 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 via 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 funções. Uma credencial.

O emissor assina a credencial após o KYC. O utilizador guarda-a na 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 · Validade da credencial

Validade da credencial, automática.

A AML contínua reavalia o utilizador diariamente. Expiração de documentos, mudança de nome, sanções, tudo aparece automaticamente na credencial. Credenciais desatualizadas são rejeitadas no momento da apresentação.
Módulo de Rastreio AML
06 · Gratuito para receber

Gratuito para todas as plataformas recetoras.

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

Duas chamadas. Uma verificação, partilhada.

Partilhe uma sessão concluída a partir de uma aplicação Didit e importe-a noutra. O lado que recebe lê a decisão completa sem pedir à pessoa que se verifique novamente.
POST /v3/session/{id}/share/Partilhar
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 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": "…" }
Devolve a decisão completa com um novo id de sessão. Defina trust_review como false para a enviar para In Review.docs →
Integração pronta para agente

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

Cole no Claude Code, Cursor, Codex, Devin, Aider ou Replit Agent. Preencha a sua stack. O agente cria o fluxo de trabalho, a sessão, as chamadas de partilha 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 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.
Ler 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
EBA 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 comprovados

Números comprovados
  • $0.33
    Por primeira verificação, a única vez que um utilizador paga pelo pacote KYC da Didit.
  • Free
    Em todas as plataformas recetoras. Cada reutilização, cada apresentação, cada divulgação seletiva.
  • 27
    Estados-membros da UE. Cada um tem de disponibilizar uma carteira EUDI até 24 de dezembro de 2026, e a aceitação da carteira EUDI na Didit chega em breve.
  • 5
    eIDs nacionais disponíveis hoje: MitID, BankID Sweden, Finnish Trust Network, Smart-ID e Mobile-ID.
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 IA Agente de IA na consola, documentação e comunidade.
Mais popular

Pague à medida que usa

$0.33por KYC completo

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

Tudo o que está incluído em Grátis, e ainda:
  • Rastreio e monitorização AML a partir de 0,07 $
  • Preços de registo comercial por país e nível de dados
  • Monitorização de transações a $0.02 cada
  • Rastreio de carteiras a $0.15 por verificação
  • Fluxo white-label com a sua própria marca
  • Apoio de IA Agente de IA na consola, documentação e comunidade.

Enterprise

Personalizadocontrato anual

Para grandes volumes e programas regulados.

Tudo o que está incluído em Pague à medida que usa, e ainda:
  • Contratos anuais, preços por volume comprometido
  • Termos legais personalizados e um 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
  • Apoio humano prioritário Canal partilhado de Slack 24/7, gestor de sucesso dedicado.

Os descontos por volume são aplicados automaticamente à medida que o uso aumenta — sem negociações, sem chamadas de vendas.

FAQ

Perguntas frequentes

O que é a Didit?

A Didit é uma infraestrutura para identidade e fraude, a plataforma que gostaríamos que existisse quando estávamos a desenvolver os nossos próprios produtos: aberta, flexível e pensada para programadores, para que funcione como uma parte real da sua stack, em vez de uma caixa preta à qual se integra.

Uma única API abrange a verificação de pessoas (KYC, know your customer), a verificação de empresas (KYB, know your business), a análise de carteiras de criptomoedas (KYT, know your transaction) e a monitorização de transações em tempo real, numa stack construída para ser:

  • Rápida, p99 abaixo de 2 segundos em cada sessão
  • Fiá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 RGPD e formalmente atestada pelo regulador financeiro espanhol como mais segura do que verificar alguém presencialmente

A base subjacente: 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 é o eIDAS 2.0, em termos simples?

eIDAS 2.0, abreviatura de electronic IDentification, Authentication and trust Services, é a atualização de 2024 da UE ao seu regulamento de identidade. A principal alteração é a Carteira de Identidade Digital Europeia (muitas vezes abreviada para Carteira EUDI): uma aplicação para smartphone à qual todos os cidadãos e residentes da UE terão direito até ao final de 2026.

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

Para as empresas, o eIDAS 2.0 trata tanto de aceitar credenciais apresentadas pela carteira como de emitir as credenciais que os seus utilizadores transportam.

Quem tem de aceitar a EUDI Wallet e quando?

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

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

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

Qual a rapidez da verificação para o meu utilizador final?

O processo completo geralmente demora menos de 30 segundos de ponta a ponta, pegar no documento de identificação, tirar a foto do documento, tirar a selfie, e está feito. É o mais rápido do mercado. Os prestadores de KYC legados geralmente demoram mais de 90 segundos para o mesmo processo.

No back-end, a Didit devolve o resultado em menos de dois segundos no p99, medido desde o momento em que o utilizador termina a selfie até ao momento em que o seu webhook é acionado. A captura móvel é otimizada para telemóveis e redes lentas: compressão progressiva de imagem, carregamento lazy do software development kit, e uma transição com um toque do desktop para o telemóvel via código QR, caso o utilizador comece na web.

Como é que a identidade reutilizável difere do login federado (Iniciar sessão com Apple, Google)?

O login federado prova que existe uma conta com o fornecedor de identidade, a empresa recetora obtém um endereço de e-mail e, talvez, um nome. Isso não é uma identidade com grau regulatório.

A identidade reutilizável inclui:

  • Uma verificação com grau de documento governamental (passaporte, cartão de cidadão digitalizado e com OCR)
  • Uma ligação biométrica à pessoa que apresenta a credencial (selfie comparada com a fotografia do documento)
  • Uma verificação de vivacidade que deteta deepfakes, máscaras, ataques de repetição
  • Um estado AML rastreado contra sanções, PEP e listas de meios de comunicação adversos
  • Uma atestação assinada de um fornecedor regulado, com carimbo de data/hora e um registo verificável

O verificador obtém o mesmo conforto regulatório que obteria ao executar o seu próprio KYC, sem o custo, o atrito e a queda na conversão.

O que acontece se um utilizador falhar, abandonar ou expirar?

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

  • Approved, todas as verificações foram aprovadas. Avance com o utilizador.
  • Declined, uma ou mais verificações falharam. Pode permitir que o utilizador reenvie o passo específico que falhou (por exemplo, tirar novamente a selfie) sem ter de refazer todo o fluxo.
  • In Review, sinalizado para revisão de conformidade. Abra o caso na consola, veja todos os sinais, decida aprovar ou recusar.
  • In Progress, o utilizador está a meio do fluxo.
  • Not Started, link enviado, o utilizador ainda não o abriu. Envie um lembrete se demorar muito.
  • Abandoned, o utilizador abriu o link, mas não terminou a tempo. Reative ou expire.
  • Expired, o link da sessão expirou. Crie uma nova sessão.

Um webhook assinado é acionado em cada mudança de estado, para que a sua base de dados esteja sempre sincronizada. As sessões abandonadas e recusadas são gratuitas.

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

Os dados de produção são processados e armazenados na União Europeia por predefinição, nos Amazon Web Services. Contratos empresariais podem solicitar regiões alternativas para jurisdições cujos reguladores o exijam.

Criptografia em todo o lado. AES-256 em repouso em todas as bases de dados, armazenamento de objetos e backups. Transport Layer Security 1.3 em trânsito em cada chamada de API, webhook e sessão da Business Console. Os dados biométricos são criptografados sob uma Customer Master Key separada.

A retenção é sua para controlar. A retenção predefinida é indefinida (ilimitada), a menos que configure um período mais curto, entre 30 dias e 10 anos por aplicação, e pode eliminar qualquer sessão individual a qualquer momento a partir do dashboard ou da API.

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

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

A Didit cumpre, por predefinição, as exigências dos reguladores relevantes para a infraestrutura de identidade:

  • GDPR + UK GDPR, separação entre responsável pelo tratamento e subcontratante, Acordo de Tratamento de Dados completo publicado, autoridade de controlo principal designada (AEPD de Espanha).
  • AMLD6 + EU AML Single Rulebook, mais de 1.300 listas de sanções, de pessoas politicamente expostas e de meios de comunicação adversos verificadas em tempo real.
  • eIDAS 2.0, cinco eID 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 criptoativos (on-ramps), plataformas de negociação e custodiantes.
  • DORA, Digital Operational Resilience Act, resiliência operacional dos 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 controlo de idade e segurança infantil.
  • FATF Travel Rule, dados do ordenante e do beneficiário em transferências de criptoativos, 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 utilizadores?
  • 60 segundos para uma conta sandbox em business.didit.me, sem cartão de crédito.
  • 5 minutos para uma verificação funcional através de Claude Code, Cursor ou qualquer agente de codificação via o nosso servidor Model Context Protocol (MCP).
  • Um fim de semana para uma integração pronta para produção com verificação de webhook assinado, novas tentativas e um fluxo de remediação quando um utilizador é recusado.

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

  • Integre nativamente com o nosso SDK Web, iOS, Android, React Native ou Flutter.
  • Redirecione o utilizador para a página de verificação alojada, sem SDK.
  • Envie um link por e-mail, SMS, WhatsApp ou qualquer canal, sem trabalho de front-end.

Mesmo painel de controlo, mesma faturação, 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 na stack KYC legada:

  • A divulgação seletiva está integrada, o verificador vê apenas os campos necessários, não o documento subjacente
  • Sem registo central, a credencial reside na carteira do utilizador, não num registo da Didit de quem apresentou o quê a quem
  • Consentimento por apresentação, o utilizador aprova cada divulgação explicitamente
  • Armazenamento residente na UE, o pacote de evidências do emissor permanece em centros de dados da UE; a própria carteira está no dispositivo do utilizador
  • Direito ao esquecimento, quando um utilizador revoga uma credencial, a plataforma recetora deve eliminá-la dos seus registos sob o GDPR; a API de revogação por plataforma da Didit torna isto uma única chamada

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

E se o utilizador mudar o seu documento de identidade ou mudar de país?

Três tipos de acionadores:

  • Renovação de documento (passaporte expira, novo cartão de identidade nacional emitido) → o utilizador executa uma atualização leve; a verificação é reemitida com a nova impressão digital do documento
  • Alteração material de identidade (novo nome legal, alteração de marcador de género, alteração de país de residência) → reverificação completa a $0.33; a credencial antiga é revogada e uma nova é emitida
  • Alteração de estado AML (um utilizador anteriormente limpo torna-se um PEP ou entra numa lista de sanções) → a monitorização contínua da Didit sinaliza a alteração automaticamente, o campo AML da credencial é atualizado e todas as plataformas recetoras veem o estado atualizado na próxima apresentação

A plataforma recetora nunca precisa de perseguir o utilizador para atualizações, a credencial transporta o seu próprio sinal de atualidade e as credenciais desatualizadas são rejeitadas no momento da apresentação.

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

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

  • As evidências KYC originais, digitalização de documentos, 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 que fluxo de trabalho
  • O registo de apresentação, quando este utilizador apresentou à sua plataforma, quais campos divulgou, o veredito do seu verificador
  • O estado AML atual, atualizado diariamente pela monitorização contínua 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 atestação formal do governo de um estado membro da UE, o Tesouro de Espanha, o Banco de España e o SEPBLAC atestaram conjuntamente o serviço como mais seguro do que a verificação presencial. Essa atestação estende-se a todas as apresentações reutilizadas.

Infraestrutura para identidade e fraude.

Uma API para KYC, KYB, Monitorização de Transações e Rastreio de Carteiras. Integre em 5 minutos.

Peça a uma IA para resumir esta página