Verifique qualquer email. Detete endereços falsos no registo.
Detete e-mails falsos, descartáveis e comprometidos antes que cheguem à sua base de dados. Uma única chamada abrange sintaxe, capacidade de entrega, inteligência do provedor e um OTP (código de uso único) de seis dígitos. $0.03 por verificação, 500 gratuitas/mês.
Confiado por mais de 2.000 organizações em todo o mundo.
Para além da sintaxe
MX, descartável, função, e pontuação de risco.
Testamos a capacidade de entrega em tempo real, sinalizamos endereços descartáveis e de função, e devolvemos uma
pontuação de risco que o seu fluxo de trabalho pode usar. $0.03 por verificação.
Como funciona
Do registo ao utilizador verificado em quatro passos.
Passo 01
Crie o fluxo de trabalho
Escolha as verificações que pretende, ID, prova de vida, correspondência facial, sanções, morada, idade, telefone, email, 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.
Passo 02
Integre
Incorpore nativamente com o nosso SDK para Web, iOS, Android, React Native ou Flutter. Redirecione para uma página alojada. Ou simplesmente envie um link ao seu utilizador, por email, SMS, WhatsApp, onde quiser. Escolha o que melhor se adapta à sua stack.
Passo 03
O utilizador passa pelo fluxo
A Didit aloja a câmara, as indicações de iluminação, a transição para o telemóvel e a acessibilidade. Enquanto o utilizador está no fluxo, pontuamos mais de 200 sinais de fraude em tempo real e verificamos cada campo em relação a fontes de dados autorizadas. Resultado em menos de dois segundos.
Passo 04
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 developers · Criado contra a fraude · Aberto por design
Seis capacidades. Uma feature flag. EMAIL_VERIFICATION.
Cada capacidade é um toggle no mesmo módulo. Sem níveis de upsell, sem planos separados, sem chamadas adicionais. Ative-os por fluxo de trabalho na consola ou passe-os em linha na chamada da API.
Sintaxe, registos de email e sonda em tempo real, cada chamada.
Analisamos a sintaxe, consultamos os registos MX (mail exchange) e abrimos uma ligação ao servidor de destino para confirmar que o endereço é alcançável. A resposta inclui um booleano limpo que o seu fluxo de trabalho pode usar.
Stack de entregabilidadealex.sample@flytap.com
Sintaxe RFC 5322Local-part + domínio analisados
Pesquisa MX1 registo · 10 ms
Sonda SMTP250 OK · aceita e-mail
não_entregávelfalse
02 · Inteligência do fornecedor
Descartável. Fornecedor gratuito. Intercete-os à entrada.
Catálogo atualizado de serviços descartáveis (10minutemail, mailinator, guerrilla), fornecedores gratuitos (Gmail, Outlook, Yahoo, ProtonMail) e serviços de mascaramento emergentes. Cada tag mapeia para uma ação de recusa, revisão ou aprovação que pode ajustar por aplicação.
03 · Exposição a violações
Saiba se a caixa de entrada foi comprometida. Antes de a integrar.
Cada endereço é verificado em relação a uma base de dados agregada de violações. A resposta lista todas as fugas em que o endereço aparece, nome, data da violação, classes de dados expostos, para que a sua equipa de conformidade tenha o rasto de evidências para o registo AML (anti-lavagem de dinheiro).
04 · Confirmação OTP
Código de seis dígitos. Validade de cinco minutos. Modelo localizado.
Use o nosso ecrã de entrada alojado ou o seu próprio formulário. Duas tentativas por sessão, dois reenvios por 24 horas, validade de cinco minutos, todos os limites são aplicados por nós. O template é automaticamente localizado para o idioma preferido do utilizador.
05 · Anti-abuso
Deteção abrangente. Filtragem baseada em funções. Duplicados entre sessões.
Avisos configuráveis mostram todos os padrões de abuso: violado, descartável, duplicado entre sessões ou bloqueado. Duas recusas automáticas (demasiadas tentativas, endereço não entregável) são aplicadas independentemente da política. Endereços catch-all e baseados em funções são detetados antes mesmo do código ser enviado.
Política de risco5 avisos · 3 ações
EMAIL_CODE_ATTEMPTS_EXCEEDEDRecusa automática
EMAIL_IN_BLOCKLISTRecusa automática
DISPOSABLE_EMAIL_DETECTEDRecusar
BREACHED_EMAIL_DETECTEDRever
DUPLICATED_EMAILRever
06 · Preços
$0.03 por verificação. 500 grátis todos os meses. Para sempre.
O mesmo preço de $0.03 no fluxo alojado e na API autónoma. Sem taxa de plataforma, sem mínimo mensal, sem surpresas de excesso. Encadeie a Verificação de Email antes de uma verificação completa de know-your-customer (KYC) de $0.33 para filtrar registos indesejados antes que consumam um crédito.
FaturaçãoPúblico · por verificação
Por verificação
$0.03
Caminho A ou Caminho B
Nível gratuito
500/mo
Para sempre, sem cartão
Sem mínimoPague por sucesso
Integra-se no KYCPacote +$0.33
Integrar
Dois endpoints. O mesmo JSON. O mesmo preço.
Escolha o fluxo alojado quando quiser que tratemos da entrada de código e o encadeemos num fluxo de trabalho mais amplo. Escolha a API autónoma quando for o proprietário da UI. Ambos devolvem o mesmo relatório.
Implemente a Verificação de E-mail com um único comando.
Cole o bloco abaixo no Claude Code, Cursor, Codex, Devin, Aider ou Replit Agent. Preencha a sua stack. O agente configura o Didit, cria o fluxo de trabalho de Verificação de E-mail, liga o webhook e implementa.
didit-integration-prompt.md
# Didit Email Verification — integrate in 5 minutes
You are integrating Didit's Email Verification module into <my_stack>.
Follow these steps exactly. Every URL, header, and enum value below is
canonical — do not paraphrase or "improve" them. The module covers:
syntax validation, MX (Mail Exchange) lookup, SMTP (Simple Mail Transfer
Protocol) deliverability probe, disposable-provider detection,
free-provider detection, breach exposure lookup (HaveIBeenPwned-style),
catch-all + role-based anti-abuse signals, OTP (one-time password)
confirmation, and a configurable risk policy that can chain straight
into a Know Your Customer (KYC) (know your customer) workflow.
## 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)
Best when you want Didit to host the OTP entry screen, localize the
email template, handle resend cool-downs, and chain Email Verification
into a wider KYC / KYB workflow.
1. Create a workflow that contains the EMAIL_VERIFICATION feature:
POST https://verification.didit.me/v3/workflows/
Authorization header: x-api-key: <your-api-key>
Body: workflow_label, features array with the single entry
{ feature: "EMAIL_VERIFICATION" } (UPPERCASE — strict enum)
Optional config: per-warning action overrides (Decline / Review /
Approve) for BREACHED_EMAIL_DETECTED, DISPOSABLE_EMAIL_DETECTED,
DUPLICATED_EMAIL, and EMAIL_IN_BLOCKLIST.
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),
optional contact_details.email (pre-fills the OTP step).
Response: session_url — redirect the user to it.
3. Listen for webhook callbacks (see "Webhooks" below).
### Path B — Standalone server-to-server API
Best when you already own the OTP UI and just want Didit to send and
validate the code plus return the risk signals.
Two endpoints, both authenticated with x-api-key:
POST https://verification.didit.me/v3/email/send/
Body (application/json):
- email (required, string — RFC 5322 address)
- language (optional, ISO 639-1 code — picks the email template)
- vendor_data (optional string, your user id)
Returns: { reference_id }
POST https://verification.didit.me/v3/email/check/
Body (application/json):
- reference_id (required, from /email/send/)
- code (required, 6-digit string the user typed)
Returns: the full email-verification report (see Section 4).
Use the same vendor_data on retries so cross-session matches work.
## 3. Webhooks (Path A only — Path B returns synchronously)
- 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"]
- 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.
Two module-level event types fire alongside the session events above:
- EMAIL_VERIFICATION_MESSAGE_SENT — OTP was dispatched
- EMAIL_VERIFICATION_DECLINED — verification finished with a
Declined status (caller should
surface the warning to the user)
## 4. Reading the report (both paths return the same shape)
The email object includes:
- status: "Approved" | "Declined" | "In Review" | "Not Finished"
- email: the address that was verified
- is_breached: boolean — true when the address appears in known breaches
- breaches: array of { name, domain, logo_path, breach_date,
description, is_verified, data_classes,
breach_emails_count }
- is_disposable: boolean — true for throwaway providers
- is_undeliverable: boolean — true when MX + SMTP probe failed
- verification_attempts: number — OTP attempts used (max 2)
- verified_at: ISO 8601 timestamp
- matches: array of cross-session hits, each carrying session_id,
session_number, vendor_data, verification_date, email,
status, is_blocklisted
- warnings: Array<{ risk, additional_data, log_type,
short_description, long_description }>
Auto-decline risks (always enforced by Didit, not configurable):
- EMAIL_CODE_ATTEMPTS_EXCEEDED
- EMAIL_IN_BLOCKLIST
- UNDELIVERABLE_EMAIL_DETECTED
Configurable risks (action per workflow — Decline, Review, or Approve):
- BREACHED_EMAIL_DETECTED (exposure / breach intelligence)
- DISPOSABLE_EMAIL_DETECTED (temporary / throwaway provider)
- DUPLICATED_EMAIL (cross-session match on another user)
Anti-abuse limits (enforced server-side):
- Code Entry Attempts: max 2 tries to type the right OTP
- Code Resend Requests: max 2 resends per 24 hours
- Code Validity: 5 minutes from delivery
## 5. Chaining Email Verification into a KYC flow
EMAIL_VERIFICATION is a regular feature inside the Workflow Builder, so
it composes with any of the 25+ other modules. The canonical patterns:
- Cheap pre-filter: gate KYC behind Email Verification so disposable +
breached + undeliverable signups never burn a $0.33 KYC bundle. Use a
conditional branch — if status is Declined on email, skip
ID_VERIFICATION + LIVENESS + FACE_MATCH.
- Compliance log: keep Email Verification in the flow even when KYC is
the primary check, so the verified email is timestamped and signed
alongside the ID Verification report for Anti-Money Laundering (AML) (anti-money laundering)
recordkeeping.
- Step-up auth: rerun Email Verification at a sensitive action (large
withdrawal, password reset) using the same workflow + vendor_data
for closed-loop continuity.
## 6. Hard rules — do not change
- Base URL for /v3/* endpoints is verification.didit.me (NOT apx.didit.me).
- Feature enum is UPPERCASE: EMAIL_VERIFICATION, ID_VERIFICATION,
LIVENESS, FACE_MATCH, AML, IP_ANALYSIS, PHONE_VERIFICATION.
- 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", "Declined", "In Review",
"Not Finished" (title-cased, space-separated).
## 7. Pricing reference (public)
- Email Verification: $0.03 per check (Path A or Path B).
- Bundled inside a full KYC workflow: same $0.03 add-on — the $0.33
full-KYC bundle does not include EMAIL_VERIFICATION by default.
- 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 emails: deterministic synthetic addresses returned in sandbox
(Approved by default; trigger Declined by sending the canonical
disposable / breached test addresses listed in the docs).
- Switch to live: flip the application's environment toggle in console.
When in doubt: https://docs.didit.me/core-technology/email-verification/overview
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 verificação, o mesmo preço para fluxo alojado ou API autónoma.
0
Verificações de e-mail gratuitas todos os meses, para sempre, em todas as contas.
0 min
Validade do código único, todos os limites aplicados automaticamente.
0
Códigos de aviso configuráveis e 3 recusas automáticas aplicadas.
Três níveis, uma tabela de preços
Comece grátis. Pague por utilização. Expanda para Enterprise.
500 verificações gratuitas todos os meses, para sempre. Pague à medida que usa para produção. Contratos personalizados, residência de dados e SLAs (Acordos de Nível de Serviço) no Enterprise.
Grátis
Grátis
$0 / mês. Não é necessário cartão de crédito.
Pacote KYC gratuito (Verificação de ID + Prova de Vida Passiva + Correspondência Facial + Análise de Dispositivo e IP), 500 / mês, todos os meses
Comece grátis → pague apenas quando uma verificação for executada → desbloqueie o Enterprise para um contrato personalizado, SLA ou residência de dados.