Contrôle d'âge sans téléchargement d'identité. Vérifiez sur un selfie. Recourez au document uniquement si nécessaire.
Estimez l'âge à partir d'un selfie passif pour 0,10 $. Le repli sur document ne se déclenche que pour les cas limites. Prêt pour le UK Online Safety Act et la loi SREN française. 500 vérifications gratuites chaque mois.
Approuvé par plus de 2000 organisations dans le monde entier.
Ofcom Royaume-Uni · SREN France · DSA UE
Vérifiez l'âge en 1 seconde. Document uniquement si nécessaire.
Forcer chaque visiteur à télécharger un document réduit les taux de finalisation de 25 à 40 %.
Le flux adaptatif de Didit exécute d'abord l'estimation de l'âge et ne dirige
que la queue des cas limites vers le repli sur document. Verdict selfie en moins de 2 secondes, 0,10 $
par vérification, coût moyen proche de 0,115 $ par utilisateur. 500 vérifications gratuites chaque
mois.
Comment ça marche
De l'inscription à l'utilisateur vérifié en quatre étapes.
Étape 01
Créer le workflow
Choisissez les vérifications que vous souhaitez — ID, vivacité, correspondance faciale, sanctions, adresse, âge, téléphone, e-mail, questions personnalisées. Faites-les glisser dans un flux dans le tableau de bord, ou publiez le même flux sur notre API. Créez des branches conditionnelles, exécutez des tests A/B, aucun code requis.
Étape 02
Intégrer
Intégrez nativement avec nos SDK Web, iOS, Android, React Native ou Flutter. Redirigez vers une page hébergée. Ou envoyez simplement un lien à votre utilisateur — par e-mail, SMS, WhatsApp, n'importe où. Choisissez ce qui convient à votre stack.
Étape 03
L'utilisateur suit le flux
Didit héberge la caméra, les signaux lumineux, le transfert mobile et l'accessibilité. Pendant que l'utilisateur est dans le flux, nous évaluons plus de 200 signaux de fraude en temps réel et vérifions chaque champ par rapport à des sources de données faisant autorité. Résultat en moins de deux secondes.
Étape 04
Vous recevez les résultats
Les webhooks signés en temps réel maintiennent votre base de données synchronisée dès qu'un utilisateur est approuvé, refusé ou envoyé en révision. Interrogez l'API à la demande. Ou ouvrez la console pour inspecter chaque session, chaque signal et gérer les cas à votre manière.
Conçu pour le contrôle d'accès par âge · Prix d'infrastructure
Six fonctionnalités. 0,115 $ en moyenne par utilisateur.
Un flux de travail adaptatif exécute la cascade "selfie-first" et n'escalade que la minorité des cas limites. Ajustez la bande des cas limites par flux de travail, superposez les règles d'âge par pays, et laissez Didit gérer le routage.
Une seule image, pas de défi de mouvement, pas de téléchargement de document. Verdict en moins de 2 secondes sur Android d'entrée de gamme, 0,10 $ par vérification. La réponse à données minimales au UK Online Safety Act et à la loi SREN française.
Verdict en moins de 2 secondes sur Android d'entrée de gamme.
02 · Routage de la bande limite
Ajustez la bande. Didit gère le reste.
Définissez la bande limite par flux de travail. Les passes claires et les échecs clairs se terminent sur le selfie ; la bande est escaladée vers le repli sur document. Modifiez les points de coupure dans le Workflow Builder sans code sans redéployer.
Modifiez la bande dans le Workflow Builder sans code.
03 · Repli sur document
Plus de 14 000 documents. Plus de 220 pays.
Seule la queue des cas limites télécharge un document. Passeports, cartes d'identité nationales, permis de conduire, titres de séjour avec reconnaissance optique de caractères (OCR) complète et analyse de la zone de lecture automatique (MRZ). Environ 10 % du trafic typique touche cette étape.
Plus de 14 000 documents. Uniquement si nécessaire.
$0.15 / check
PassportMRZ + page de photo
Carte d'identité nationaleRecto + verso, OCR
Permis de conduireRègles par État aux États-Unis, au Canada, en Australie
Permis de séjourSchengen + BRP britannique
Plus de 220 pays · Plus de 48 langues~10 % du trafic
04 · Règles d'âge par pays
Boire à 21 ans aux États-Unis. 18 ans dans l'UE. 19 ans en Corée.
Définissez l'âge minimum par pays, avec des dérogations au niveau de l'État là où elles sont pertinentes (Mississippi 21, Alabama 19, États-Unis par défaut 18). Le document de secours valide automatiquement la date de naissance par rapport à la règle du pays émetteur.
Conçu pour la barre d'assurance d'âge très efficace. Tesoro et SEPBLAC d'Espagne ont formellement attesté que le flux à distance de Didit est plus sûr que la vérification en personne — actuellement la seule attestation gouvernementale d'un État membre de l'UE de ce type. Le pack d'audit comprend iBeta Level 1 PAD, ISO/IEC 27001, SOC 2 Type 1.
Ofcom du Royaume-Uni (OSA)Estimation or documentShips
France CNIL / Arcom (SREN)Estimation or documentShips
DSA de l'UE — VLOPsProportionnel au risqueShips
Allemagne JuSchGDocument ou KYCShips
Attestation Tesoro / SEPBLAC incluse dans le dossier d'audit.
06 · Tarification publique
$0.10 selfie. $0.15 document. Only when needed.
L'estimation de l'âge à $0.10 couvre les ~90% qui passent avec un selfie. La vérification de document à $0.15 ne se déclenche que pour les ~10% de minorités limites. Le coût moyen s'élève à environ $0.115 par utilisateur. 500 vérifications gratuites chaque mois, pour toujours.
200OKstatut Approuvé · En cours d'examen · Refusé · Non terminé
Même forme sur le webhook signé. Vérifiez d'abord X-Signature-V2.docs →
Intégration prête pour l'agent
Expédiez la vérification de l'âge en une seule invite.
Collez dans Claude Code, Cursor, Codex, Devin, Aider ou Replit Agent. Remplissez votre pile. L'agent construit le flux de travail adaptatif, ouvre la session, connecte le webhook et livre en cinq minutes.
didit-integration-prompt.md
You are integrating Didit's Age Verification recipe into <my_stack>. Selfie-first age estimation with an adaptive document fallback for the borderline tail. One Didit workflow. Two real endpoints.
1. Verify age on a selfie. ONE call to the Sessions API runs Age Estimation + Passive Liveness on the same passive frame.
2. Fall back to a document check ONLY when the estimate sits in the borderline band you define. Same Sessions API workflow handles the fallback automatically.
Bundle pricing (public):
- Age Estimation: $0.10 per check (Sessions API or standalone)
- ID Verification fallback: $0.15 per check, only when triggered
- Typical blended cost lands near $0.115 per user (~90% finish on the selfie, ~10% touch the document fallback)
- First 500 verifications free every month, forever
PRE-REQUISITES
- Production API key from https://business.didit.me (sandbox key in 60s, no card).
- Webhook endpoint with Hash-based Message Authentication Code (HMAC) SHA-256 verification using the X-Signature-V2 header and your webhook secret.
- A workflow_id from the Workflow Builder. The workflow must contain the AGE_ESTIMATION feature, and (recommended) the ID_VERIFICATION feature with adaptive_id_verification enabled so the borderline tail routes through automatically.
STEP 1 — Build the adaptive workflow once
POST https://verification.didit.me/v3/workflows/
Headers:
x-api-key: <your api key>
Content-Type: application/json
Body:
{
"workflow_label": "age_gate_uk_fr",
"features": [
{ "feature": "AGE_ESTIMATION" },
{ "feature": "ID_VERIFICATION" }
],
"age_estimation_decline_threshold": 18,
"face_liveness_score_decline_threshold": 30,
"adaptive_id_verification": true
}
Notes:
- "AGE_ESTIMATION" and "ID_VERIFICATION" are exact, case-sensitive feature names.
- age_estimation_decline_threshold defaults to 18; set 21 for US alcohol, 19 for South Korea, etc.
- adaptive_id_verification = true tells Didit to invoke the document fallback automatically when the estimate sits inside the borderline band.
STEP 2 — Open an age-verification session per user
POST https://verification.didit.me/v3/session/
Headers:
x-api-key: <your api key>
Content-Type: application/json
Body:
{
"workflow_id": "<the workflow_id from step 1>",
"vendor_data": "<your internal user id>",
"callback": "https://<your-app>/age-gate/callback",
"metadata": {
"purpose": "age_gate",
"surface": "<the page or feature being gated>"
}
}
Response: 201 Created with the hosted session_url. Redirect the user to it. The hosted flow opens the front camera, captures one passive frame, runs Age Estimation + Passive Liveness in sub-2-seconds, and either returns a verdict or routes the user into the document fallback automatically.
STEP 3 — Read the signed webhook on session completion
Didit POSTs to your callback. Session statuses are exact Title Case With Spaces.
Body (excerpted for an Age Estimation only finish):
{
"session_id": "<uuid>",
"vendor_data": "<your user id>",
"status": "Approved",
"liveness": {
"status": "Approved",
"method": "PASSIVE",
"score": 92,
"age_estimation": 27.3,
"warnings": []
}
}
Body (excerpted when the document fallback fired):
{
"session_id": "<uuid>",
"vendor_data": "<your user id>",
"status": "Approved",
"liveness": { "status": "Approved", "age_estimation": 17.9, "warnings": [{ "code": "AGE_NOT_DETECTED" }] },
"id_verification": {
"status": "Approved",
"date_of_birth": "1998-03-21",
"age": 27,
"document_type": "Passport",
"issuing_state": "GBR"
}
}
Verify X-Signature-V2 BEFORE trusting the body — HMAC SHA-256 of the raw bytes with your webhook secret.
Session status enum (exact case): Approved | Declined | In Review | Resubmitted | Expired | Not Finished | Kyc Expired | Abandoned.
Warning catalog:
- AGE_BELOW_MINIMUM estimated or computed age below the threshold
- AGE_NOT_DETECTED unable to estimate age (lighting / quality)
- LOW_LIVENESS_SCORE passive-liveness score below threshold
- NO_FACE_DETECTED no face in the capture
- LIVENESS_FACE_ATTACK presentation attack suspected
- POSSIBLE_DUPLICATED_FACE same face previously verified
STEP 4 — Branch your surface on the final verdict
Approved → grant access to the gated surface.
Declined → render the regulator-required age-gate notice.
In Review → hold; an analyst case is open in the Business Console.
Not Finished → user abandoned; safe to re-prompt.
STEP 5 — Alternate path (server-to-server, when you already have the selfie)
POST https://verification.didit.me/v3/age-estimation/
Headers:
x-api-key: <your api key>
Body (multipart/form-data):
user_image <single passive selfie>
age_estimation_decline_threshold 18 (optional, integer)
face_liveness_score_decline_threshold 30 (optional, integer)
Branch on the borderline band yourself, then optionally call:
POST https://verification.didit.me/v3/id-verification/
Body (multipart/form-data):
front_image <required>
back_image <optional>
vendor_data <optional, your user id>
This path is useful for native onboarding apps that capture the selfie locally.
CONSTRAINTS
- Base URL for /v3/* endpoints is verification.didit.me (NOT apx.didit.me).
- Feature enum is UPPERCASE: AGE_ESTIMATION, ID_VERIFICATION, LIVENESS, FACE_MATCH, AML, IP_ANALYSIS.
- Method enum is UPPERCASE: PASSIVE, FLASHING, ACTIVE_3D.
- Auth header is x-api-key (lowercase, hyphenated).
- Webhook signature header is X-Signature-V2 (NOT X-Signature).
- Status casing matches exactly: Approved, Declined, In Review, Expired, Not Finished, Resubmitted, Kyc Expired, Abandoned.
- Reference image URLs are signed and expire in 60 minutes. Store only the verdict + score; never the biometric media unless retention is explicitly enabled for fraud defence.
- 200+ fraud signals are evaluated on every session at no extra cost — surface the score via the session decision payload, do not re-query.
WEBHOOK EVENT NAMES
- Sessions: status changes flow through the standard session webhook.
- Verify X-Signature-V2 on every payload.
Read the docs:
- https://docs.didit.me/core-technology/age-estimation/overview
- https://docs.didit.me/sessions-api/create-session
- https://docs.didit.me/integration/webhooks
Start free at https://business.didit.me — sandbox key in 60 seconds, 500 verifications free every month, no credit card.
Besoin de plus de contexte ? Consultez la documentation complète du module.docs.didit.me →
Conforme par conception
Ouvrez un nouveau pays en un clic. Nous faisons le gros du travail.
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 effectuer des vérifications dans un nouveau pays, il suffit d'activer un interrupteur. Plus de 220 pays en direct, audités et testés par pénétration chaque trimestre — le seul fournisseur d'identité qu'un gouvernement d'un État membre de l'UE a formellement qualifié de plus sûr que la vérification en personne.
Coût moyen par utilisateur — selfie plus le document de secours pour 10 % des cas limites.
~90%
Des utilisateurs terminent avec le selfie passif seul — pas de téléchargement de document.
<0s
Tranche d'âge retournée par session sur Android d'entrée de gamme.
0
Vérifications gratuites chaque mois, pour toujours.
Trois niveaux, une seule liste de prix
Commencez gratuitement. Payez à l'usage. Passez à l'Entreprise.
500 vérifications gratuites chaque mois, pour toujours. Paiement à l'utilisation pour la production. Contrats personnalisés, résidence des données et SLA (Service Level Agreements) pour l'Entreprise.
Gratuit
Gratuit
0 $ / mois. Aucune carte de crédit requise.
Forfait KYC gratuit (Vérification d'identité + Vivacité passive + Correspondance faciale + Analyse d'appareil et IP) — 500 / mois, chaque mois
Commencez gratuitement → payez uniquement lorsqu'une vérification est effectuée → débloquez l'Entreprise pour un contrat personnalisé, un SLA ou une résidence des données.