Vérifie n'importe quel e-mail. Détecte les fausses adresses à l'inscription.
Détecte les adresses e-mail fausses, jetables et compromises avant qu'elles n'atteignent ta base de données. Un seul appel couvre la syntaxe, la délivrabilité, l'intelligence des fournisseurs et un OTP (code à usage unique) à six chiffres. 0,03 $ par vérification, 500 gratuites/mois.
Approuvé par plus de 2000 organisations dans le monde entier.
Au-delà de la syntaxe
MX, jetable, rôle, et score de risque.
Nous testons la délivrabilité en direct, signalons les adresses jetables et de rôle, et renvoyons un
score de risque sur lequel ton workflow peut se baser. 0,03 $ par vérification.
Comment ça marche
De l'inscription à l'utilisateur vérifié en quatre étapes.
Étape 01
Crée le workflow
Choisis les vérifications que tu souhaites, identité, vivacité, correspondance faciale, sanctions, adresse, âge, téléphone, e-mail, questions personnalisées. Glisse-les dans un workflow sur le tableau de bord, ou envoie le même workflow à notre API. Branche-toi sur des conditions, exécute des tests A/B, aucun code requis.
Étape 02
Intègre
Intègre nativement avec nos SDK Web, iOS, Android, React Native ou Flutter. Redirige vers une page hébergée. Ou envoie simplement un lien à ton utilisateur, par e-mail, SMS, WhatsApp, n'importe où. Choisis ce qui convient à ta stack.
Étape 03
L'utilisateur suit le parcours
Didit héberge la caméra, les indications lumineuses, le transfert mobile et l'accessibilité. Pendant que l'utilisateur est dans le parcours, nous évaluons plus de 200 signaux de fraude en temps réel et vérifions chaque champ par rapport à des sources de données fiables. Résultat en moins de deux secondes.
Étape 04
Tu reçois les résultats
Des webhooks signés en temps réel maintiennent ta base de données synchronisée dès qu'un utilisateur est approuvé, refusé ou envoyé pour examen. Interroge l'API à la demande. Ou ouvre la console pour inspecter chaque session, chaque signal, et gérer les cas à ta manière.
Conçu pour les développeurs · Conçu contre la fraude · Ouvert par nature
Six fonctionnalités. Un seul feature flag. EMAIL_VERIFICATION.
Chaque fonctionnalité est un interrupteur sur le même module. Pas de niveaux de vente incitative, pas de plans séparés, pas d'appels additionnels. Active-les par workflow dans la console ou passe-les en ligne lors de l'appel API.
Syntaxe, enregistrements mail et sonde en direct, à chaque appel.
Nous analysons la syntaxe, consultons les enregistrements MX (mail exchange) et ouvrons une connexion au serveur de destination pour confirmer que l'adresse est joignable. La réponse inclut un booléen clair sur lequel ton workflow peut se baser.
Stack de délivrabilitéalex.sample@flytap.com
Syntaxe RFC 5322Partie locale + domaine analysés
Recherche MX1 enregistrement · 10 ms
Sonde SMTP250 OK · accepte les mails
is_undeliverablefalse
02 · Intelligence du fournisseur
Jetables. Fournisseurs gratuits. Intercepte-les dès l'entrée.
Catalogue à jour de services jetables (10minutemail, mailinator, guerrilla), de fournisseurs gratuits (Gmail, Outlook, Yahoo, ProtonMail) et de services de masquage émergents. Chaque tag correspond à une action de refus, d'examen ou d'approbation que tu ajustes par application.
03 · Exposition aux fuites
Sache si la boîte de réception a été compromise. Avant de l'intégrer.
Chaque adresse est vérifiée par rapport à une base de données agrégée de fuites. La réponse liste chaque fuite dans laquelle l'adresse apparaît, nom, date de la fuite, catégories de données exposées, afin que ton équipe de conformité dispose des preuves pour la tenue des registres AML (anti-blanchiment d'argent).
04 · Confirmation OTP
Code à six chiffres. Validité de cinq minutes. Modèle localisé.
Utilise notre écran de saisie hébergé ou ton propre formulaire. Deux tentatives par session, deux renvois par 24 heures, validité de cinq minutes, toutes les limites sont appliquées pour toi. Le modèle s'auto-localise dans la langue préférée de l'utilisateur.
05 · Anti-abus
Détection catch-all. Filtrage par rôle. Doublons inter-sessions.
Des avertissements configurables signalent chaque schéma d'abus : compromis, jetable, dupliqué entre les sessions ou mis sur liste noire. Deux refus automatiques (trop de tentatives, adresse non livrable) restent appliqués quelle que soit la politique. Les adresses fourre-tout et basées sur les rôles sont détectées avant même l'envoi du code.
Politique de risque5 avertissements · 3 actions
EMAIL_CODE_ATTEMPTS_EXCEEDEDRefus automatique
EMAIL_IN_BLOCKLISTRefus automatique
DISPOSABLE_EMAIL_DETECTEDRefuser
BREACHED_EMAIL_DETECTEDVérifier
DUPLICATED_EMAILVérifier
06 · Tarification
0,03 $ par vérification. 500 gratuites chaque mois. Pour toujours.
Même prix de 0,03 $ sur le flux hébergé et l'API autonome. Pas de frais de plateforme, pas de minimum mensuel, pas de surprise de dépassement. Enchaîne la vérification d'e-mail avant une vérification KYC (connaissance du client) complète à 0,33 $ pour filtrer les inscriptions indésirables avant qu'elles ne consomment un crédit.
FacturationPublic · par vérification
Par vérification
$0.03
Chemin A ou Chemin B
Offre gratuite
500/mo
Gratuit pour toujours, sans CB
Pas de minimumPaiement au succès
S'intègre au KYC+0,33 $ en bundle
Intègre
Deux endpoints. Même JSON. Même prix.
Choisis le flux hébergé lorsque tu veux que nous gérions la saisie de code et que nous l'intégrions à un workflow plus large. Choisis l'API autonome lorsque tu gères l'interface utilisateur. Les deux renvoient le même rapport.
Déploie la vérification d'e-mail en une seule commande.
Colle le bloc ci-dessous dans Claude Code, Cursor, Codex, Devin, Aider ou Replit Agent. Renseigne ta stack. L'agent provisionne Didit, crée le workflow de vérification d'e-mail, connecte le webhook et déploie.
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
Conforme par nature
Ouvre un nouveau pays en un clic. On s'occupe du plus dur.
Nous ouvrons les filiales locales, obtenons les licences, effectuons les tests d'intrusion, obtenons les certifications et nous alignons sur chaque nouvelle réglementation. Pour déployer des vérifications dans un nouveau pays, il suffit d'activer un interrupteur. Plus de 220 pays en direct, audités et testés chaque trimestre, le seul fournisseur d'identité qu'un gouvernement d'un État membre de l'UE a formellement jugé plus sûr que la vérification en personne.
Par vérification, même prix pour le flux hébergé ou l'API autonome.
0
Vérifications d'e-mail gratuites chaque mois, pour toujours, sur chaque compte.
0 min
Validité du code à usage unique, toutes les limites sont appliquées pour toi.
0
Codes d'avertissement configurables et 3 refus automatiques forcés.
Trois niveaux, une seule grille tarifaire
Démarre gratuitement. Paye à l'usage. Passe à l'Enterprise.
500 vérifications gratuites chaque mois, pour toujours. Paiement à l'usage pour la production. Contrats personnalisés, résidence des données et SLAs (Service Level Agreements) pour l'Enterprise.
Gratuit
Gratuit
0 $ / mois. Aucune carte de crédit requise.
Pack KYC gratuit (vérification d'identité + détection de vivacité passive + correspondance faciale + analyse appareil & IP), 500 / mois, chaque mois
Commence gratuitement → ne paie que lorsqu'une vérification est effectuée → débloque l'Enterprise pour un contrat personnalisé, un SLA ou la résidence des données.