> ## Documentation Index
> Fetch the complete documentation index at: https://docs.didit.me/llms.txt
> Use this file to discover all available pages before exploring further.

# API de verificação de e-mail: OTP e avaliação de risco

> Verificação de e-mail da Didit com OTP e avaliação de risco: detecta endereços vazados, descartáveis e não entregáveis. $0.02 por chamada, sem mínimo mensal.

A verificação de e-mail da Didit oferece um método confiável para verificar os endereços de e-mail dos usuários por meio de códigos de uso único (OTP) e avaliação de risco avançada. O recurso ajuda a garantir informações de contato válidas e acessíveis, ao mesmo tempo que protege contra e-mails de alto risco e comprometidos.

Prompt de integração da verificação de e-mail
        Copy prompt to clipboard



      
      

\<pre>

\````# Goal
Integrate Didit Email Verification (OTP send + check + deliverability / breach / disposable lookup) into your app. Pick ONE mode.

\# Mode A — Session-based
Use this when the user completes verification through a hosted Didit flow.

1\. Add the EMAIL feature to the workflow (Business Console or POST /v3/workflows/). Configure risk actions: duplicated_email_action, breached_email_action, disposable_email_action.
2\. Create a session — POST /v3/session/ with { workflow_id, vendor_data, callback }. See /sessions-api/create-session.
3\. Open session.url for the user (or mount the Web/Mobile SDK).
4\. Fetch the decision — GET /v3/session/{sessionId}/decision/ or subscribe to session.status.updated.

Decision surface: `email_verifications[]` array on the decision payload.

\# Mode B — Standalone API (server-to-server, OTP pair)
Two endpoints paired by email address.

Step 1 — send the code:
\```bash
curl -X POST 'https://verification.didit.me/v3/email/send/' \
-H "x-api-key: $DIDIT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"email": "alice@example.com",
"options": { "code_size": 6, "locale": "en", "use_white_label_customization": false },
"vendor_data": "user-1234"
}'
\```
Default: 6 numeric digits and Didit-branded delivery. Set `options.alphanumeric_code: true` for letters+digits (check is case-insensitive). Set `options.use_white_label_customization: true` to use your application's configured white-label sender and branding for this standalone OTP email; the default is `false`. `options.code_size` 4–8. Codes expire in **5 minutes**; one free retry per email within the window.

Step 2 — check the code (user types it into your UI):
\```bash
curl -X POST 'https://verification.didit.me/v3/email/check/' \
-H "x-api-key: $DIDIT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"email": "alice@example.com",
"code": "123456",
"disposable_email_action": "DECLINE"
}'
\```
Each session accepts **up to 3** code-entry attempts. The check response always includes the full email metadata (breaches[], disposable flag, deliverable flag).

\# Status enum (per email_verifications[].status / email.status)
"Not Started" | "In Progress" | "Approved" | "Declined" | "Failed" | "Undeliverable" | "Expired or Not Found" | "Abandoned" | "Kyc Expired"

\# Warnings (LogWarningChoices.EMAIL)
warnings[] risk codes include:
DUPLICATED_EMAIL, BREACHED_EMAIL, DISPOSABLE_EMAIL, UNDELIVERABLE_EMAIL, INVALID_EMAIL, OTP_MAX_ATTEMPTS_REACHED, OTP_EXPIRED.
Full catalogue: /core-technology/email-verification/warnings-email-verification.

\# Failure modes to handle
\- send response status="Undeliverable" — bounce/invalid domain; no charge, surface to the user.
\- check response status="Failed" — wrong code, attempts remaining; re-prompt.
\- check response status="Declined" — third failed attempt; restart with /v3/email/send/.
\- check response status="Expired or Not Found" — outside the 5-minute window; restart.
\- BREACHED_EMAIL warning — the address appears in known breaches; route to review per policy.

\# See also
\- Canonical schema: /reference/data-models#email-verification
\- Per-feature report: /core-technology/email-verification/report-email-verification
\- Risk catalogue: /core-technology/email-verification/warnings-email-verification
\- Full integration playbook: /integration/integration-prompt````

\</pre>



      
      

Paste into

A lição da Academy sobre como ler o resultado de uma verificação chega à verificação de e-mail aos 8:34.[Verificação de e-mail — Didit Academy](https://www.youtube.com/embed/7htTWCWsl60?start=514\&rel=0\&playsinline=1)![Diagrama do fluxo de verificação de e-mail](https://mintcdn.com/didit-0f962782/z6T2GHM4Zh-iSj-K/images/email-verification-flow.png?fit=max\&auto=format\&n=z6T2GHM4Zh-iSj-K\&q=85\&s=23d035a261faa2063d6d941290ecf752)## Como funcionaNossa verificação de e-mail combina a verificação por OTP com sinais de inteligência, como exposição em vazamentos, entregabilidade e reputação do provedor.**1. Coleta do e-mail**O sistema coleta com segurança:| Entrada | Descrição |
| - | - |
| **Endereço de e-mail** | Se não for informado na criação da sessão, o usuário digita o endereço. Se for informado na criação da sessão, o usuário deve verificar o e-mail preenchido. |
| **Idioma preferido** | Usado para comunicações localizadas, quando aplicável. |**2. Geração e envio do OTP**Nosso sistema de verificação:- Gera um código de uso único seguro e com prazo de validade
- Envia o código por e-mail ao endereço informado
- Aplica boas práticas de entregabilidade para maximizar a chegada à caixa de entrada
- Oferece fluxos de reenvio com proteções contra abuso**3. Validação do código**O usuário conclui a verificação:- Digitando o código recebido na interface de verificação
- Enviando dentro do prazo configurado (5 minutos)
- Solicitando um novo código, se necessário (com limite de frequência adequado)**4. Avaliação de risco**Nosso sistema executa verificações avançadas:| Verificação | Descrição |
| - | - |
| **Exposição em vazamentos** | Consulta o e-mail em vazamentos de dados conhecidos e lista os serviços expostos. |
| **Detecção de provedor descartável** | Sinaliza e-mails de provedores temporários/descartáveis. |
| **Verificações de entregabilidade** | Detecta endereços não entregáveis ou com sintaxe inválida. |
| **Sinais de reputação** | Identifica padrões de e-mail potencialmente de alto risco. |
| **Uso duplicado** | Cruza com o histórico de dados de verificação. |**5. Entrega do resultado**Acesse os resultados da verificação por vários canais:| Canal | Descrição |
| - | - |
| **Painel** | Atualizações do painel em tempo real. |
| **Webhooks** | Notificações por webhook. |
| **API** | Respostas da API RESTful. |
| **Relatórios** | Relatórios completos com informações detalhadas da verificação. |## Recursos de verificaçãoNosso serviço de verificação de e-mail oferece vários recursos para aprimorar o seu processo de verificação:#### Verificação por OTP- **Geração segura de códigos**: códigos de uso único aleatórios e com prazo de validade
- **Envio por e-mail**: entrega confiável e localizada
- **Tempos limite configuráveis**: defina o prazo de expiração conforme os seus requisitos de segurança
- **Opções de nova tentativa**: permita que os usuários solicitem novos códigos com limites adequados#### Análise do e-mail- **Validação de sintaxe**: garante que o endereço siga o formato conforme a RFC
- **Verificação de provedor**: identifica provedores descartáveis/temporários
- **Informações de entregabilidade**: detecta endereços não entregáveis
- **Inteligência de vazamentos**: mostra os registros de vazamentos conhecidos com detalhes#### Avaliação de risco- **Detecção de exposição**: identifica se o e-mail aparece em vazamentos conhecidos
- **Detecção de descartáveis**: sinaliza e-mails temporários ou de uso único
- **Monitoramento de atividade**: acompanha padrões suspeitos entre as tentativas
- **Verificação de lista de bloqueio**: confere em listas internas de e-mails usados indevidamente antes


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.