> ## 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 d'estimation de l'âge : vérification par selfie

> Vérifiez l'âge par selfie avec Didit : $0.10 par appel, erreur de 1.1 an (16-17 ans) et repli optionnel vers la vérification d'identité.

L'Estimation de l'âge Didit prédit l'âge d'une personne à partir d'un selfie, avec détection du vivant passive incluse, afin que vous puissiez restreindre l'accès aux services soumis à une limite d'âge sans demander un document d'identité à chaque utilisateur. Le modèle est le plus précis là où le contrôle de l'âge est déterminant : son erreur absolue moyenne est de 1,1 an pour les personnes de 16 et 17 ans et de 1,9 an pour celles de 18 à 20 ans, et il classe correctement 96% des selfies comme ayant moins de 18 ans ou 18 ans et plus (voir [Performances du modèle](#performances-et-statistiques-du-modèle)).

Prompt d'intégration de l'estimation de l'âge
        Copier le prompt dans le presse-papiers



      
      

\<pre>

\````# Goal
Integrate Didit Age Estimation (selfie-based age gating, includes passive liveness) into your app. Pick ONE mode.

\# Mode A — Session-based (embedded in Liveness)
In hosted Didit flows, age estimation is **embedded inside the Liveness step** — there is no separate "age_estimation" workflow feature. Enable age estimation on the Liveness node in the Business Console.

1\. Configure the workflow's LIVENESS feature with age estimation enabled and set age_estimation_decline_threshold (default 18).
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/.

Decision surface: the result lives at `liveness_checks[].age_estimation` on each Liveness entry (not in a top-level age_estimations[] array).

\# Mode B — Standalone API (server-to-server, age + liveness in one call)
Use when you already have a selfie and need a one-shot age gate.

POST https://verification.didit.me/v3/age-estimation/
multipart/form-data — x-api-key: YOUR_API_KEY

curl example:
\```bash
curl -X POST 'https://verification.didit.me/v3/age-estimation/' \
-H 'x-api-key: YOUR_API_KEY' \
-F 'user_image=@./selfie.jpg' \
-F 'age_estimation_decline_threshold=18' \
-F 'save_api_request=true' \
-F 'vendor_data=user-1234'
\```
Returns: { request_id, age_estimation: { status, method: "PASSIVE", age_estimation (float, years), score (passive-liveness 0-100), user_image: {entities}, warnings: [...] } }.

Required: `user_image` (jpg/jpeg/png/tiff/webp, max 5 MB; PDFs not accepted). The largest face wins when multiple are present.

\# Decision logic
status="Declined" when ANY of the following is true:
\- passive-liveness score ≤ face_liveness_score_decline_threshold (default 30)
\- predicted age < age_estimation_decline_threshold (default 18)
\- no face detected
\- liveness model flagged a presentation attack

\# Status enum
"Not Started" | "In Progress" | "Approved" | "In Review" | "Declined" | "Abandoned" | "Kyc Expired"

\# Warnings
warnings[] risk codes include:
AGE_BELOW_MINIMUM, AGE_NOT_DETECTED, LOW_LIVENESS_SCORE, NO_FACE_DETECTED, LIVENESS_FACE_ATTACK, MULTIPLE_FACES_DETECTED.
Full catalogue: /core-technology/age-estimation/warnings-age-estimation.

\# Failure modes to handle
\- HTTP 400 — missing or oversized user_image, unsupported extension.
\- HTTP 403 — out of credits.
\- status="Declined" with AGE_BELOW_MINIMUM — user is below the configured age; reject.
\- status="Declined" with LOW_LIVENESS_SCORE / LIVENESS_FACE_ATTACK — presentation attack suspected; reject.
\- AGE_NOT_DETECTED — the model could not extract age (poor image quality); request a retake.

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

\</pre>



      
      

Coller dans

## Méthodes d'estimation de l'âgeNotre plateforme implémente l'estimation de l'âge conjointement avec différentes technologies de détection du vivant :<table>
  <thead>
    <tr>
      <th>Méthode</th>
      <th>Description</th>
      <th>Niveau de sécurité</th>
      <th>Idéal pour</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>**`3D Action & Flash`**</td>

      <td>
        • Combine la vérification biométrique multifactorielle avec une **séquence d'actions aléatoires** et une **analyse dynamique des motifs lumineux**.\

        • Au début, l'utilisateur est invité à effectuer une action simple, comme **cligner des yeux** ou **hocher la tête**, garantissant une interaction en temps réel.\

        • Simultanément, le système projette une séquence de motifs lumineux sur le visage, analysant les **reflets** pour confirmer la structure tridimensionnelle du visage.\

        • Des **algorithmes d'apprentissage profond** examinent les micro-expressions et les réponses aux reflets lumineux pour vérifier la présence d'une personne vivante.\

        • Offre la **sécurité la plus élevée** en intégrant des indices comportementaux (action) et physiques (profondeur basée sur la lumière), rendant toute usurpation presque impossible avec des images statiques, des vidéos ou même des masques avancés.
      </td>

      <td>Le plus élevé</td>
      <td>Secteur bancaire, secteur de la santé, applications gouvernementales</td>
    </tr>

    <tr>
      <td>**`3D Flash`**</td>

      <td>
        • Utilise l'**analyse dynamique des motifs lumineux** pour valider la topologie faciale sans nécessiter d'interaction de l'utilisateur.\

        • Projette une série de motifs lumineux sur le visage à plus de **30 images par seconde**, analysant les reflets pour créer une **carte de profondeur**.\

        • Cette carte de profondeur confirme la structure tridimensionnelle du visage, le distinguant des images plates ou des usurpations 2D.\

        • Offre une **expérience fluide** tout en maintenant une **sécurité élevée** contre les attaques par présentation telles que les photos ou les écrans.\

      </td>

      <td>Élevé</td>
      <td>Services financiers, accès aux comptes, vérification d'identité</td>
    </tr>

    <tr>
      <td>**`Passive Liveness`**</td>

      <td>
        • S'appuie sur l'**analyse par apprentissage profond d'une image unique** pour détecter les signes de présence d'une personne vivante.\

        • Pour préserver la confidentialité, le visage de l'utilisateur apparaît flouté dans l'interface, lui garantissant que son image est analysée uniquement pour l'estimation de l'âge, et non pour son identification.\

        • Examine l'image à la recherche d'**artefacts**, de **motifs de texture** et d'autres indicateurs subtils qui différencient un vrai visage d'une usurpation.\

        • Un **réseau de neurones convolutif (CNN)** valide les caractéristiques faciales et identifie les anomalies, telles que celles provenant de photos imprimées ou d'écrans numériques.\

        • Offre une vérification **rapide et pratique**, mais fournit une **sécurité standard**, adaptée aux cas d'usage à faible risque.\

      </td>

      <td>Standard</td>
      <td>Scénarios nécessitant peu d'efforts, applications grand public</td>
    </tr>
  </tbody>
</table>Chaque méthode génère une estimation précise de l'âge ainsi que des scores de confiance et des données complémentaires d'estimation du genre.### Seuils configurablesVous pouvez personnaliser les niveaux de sécurité en définissant différents seuils pour l'estimation de l'âge. Par exemple :![Configuration des seuils d'estimation de l'âge Didit pour les politiques de contrôle de l'âge](https://mintcdn.com/didit-0f962782/z6T2GHM4Zh-iSj-K/images/age-estimation-thresholds.png?fit=max\&auto=format\&n=z6T2GHM4Zh-iSj-K\&q=85\&s=11ffd7baa63b7193970c6b67386279f8)> [!NOTE]
>
> Ces seuils peuvent être ajustés en fonction de votre tolérance au risque et de vos exigences de sécurité.### Restrictions d'âge par paysLes restrictions d'âge peuvent être configurées **par pays**, ce qui reflète le fait que l'âge légal de la majorité varie selon les juridictions. Au lieu de définir un âge minimum ou maximum global unique, vous pouvez définir des limites d'âge spécifiques pour chaque pays -- et même pour des états ou régions spécifiques au sein d'un pays.#### Comment cela fonctionne- **Configuration au niveau du pays** : définissez un âge minimum et/ou maximum pour chaque pays (identifié par le pays de délivrance du document). Par exemple, vous pouvez exiger un âge minimum de 18 ans aux États-Unis, 19 ans en Corée du Sud et 21 ans aux Émirats arabes unis.
- **Remplacements d'état/région** : pour les pays présentant des variations infranationales (comme les États-Unis ou le Mexique), vous pouvez configurer des dérogations par état. Par exemple, le Mississippi peut exiger un âge minimum de 21 ans alors que la valeur par défaut pour les États-Unis est de 18 ans. Le système fait correspondre l'état en utilisant la région extraite du document par OCR.
- **Valeurs par défaut pour l'âge de la majorité** : la console propose un bouton « Appliquer l'âge de la majorité » en un clic qui pré-remplit automatiquement l'âge minimum de chaque pays sur la base de l'âge légal de la majorité reconnu dans le monde entier. Vous pouvez ensuite personnaliser des pays ou des états individuels selon vos besoins.
- **Actions configurables** : lorsque l'âge d'un utilisateur est inférieur au minimum ou supérieur au maximum pour le pays de son document, vous pouvez choisir l'action à entreprendre : **Refuser** ou **Examiner**.#### Exemple de configuration| Pays | Âge min | Âge max | Remplacements d'état/région |
| - | - | - | - |
| USA | 18 | -- | Mississippi: 21, Alabama: 19 |
| KOR | 19 | -- | -- |
| GBR | 18 | 65 | -- |
| ARE | 21 | -- | -- |> [!NOTE]
>
> Les restrictions d'âge par pays sont disponibles à la fois dans les workflows KYC standard et dans les workflows de vérification adaptative de l'âge. Dans les workflows adaptatifs, lorsque la vérification d'identité est déclenchée pour les cas limites, le contrôle de l'âge utilise les paramètres par pays configurés dans l'étape Vérification d'identité.## Comment ça fonctionne**1. Capture d'image ou de vidéo**L'utilisateur fournit une image faciale nette via un téléversement par API ou effectue un processus de détection du vivant.| Contrôle | Description |
| - | - |
| **Qualité de l'image** | Valide l'éclairage, le positionnement et la netteté |
| **Détection du vivant** | S'assure que le sujet est présent et qu'il ne s'agit pas d'une usurpation |
| **Analyse multi-images** | Sélectionne l'image optimale pour une meilleure précision |
| **Capture adaptative** | S'adapte aux différentes capacités des appareils |**2. Analyse des caractéristiques faciales**Un détecteur localise chaque visage et chaque personne dans l'image, et le visage le plus grand est analysé.- **Visage recadré** : le visage exactement tel qu'il a été détecté, analysé pour sa morphologie faciale, ses proportions et la texture de la peau
- **Contexte corporel** : le reste de l'image, avec le visage masqué, affine l'estimation
- Plusieurs visages dans une même image sont détectés et signalés, afin que la session puisse être traitée en conséquence**3. Traitement par réseau neuronal**Deux réseaux de neurones profonds complémentaires estiment l'âge indépendamment, et l'estimation finale est leur moyenne.- Un transformer analyse conjointement les recadrages du visage et du corps ; un réseau convolutif analyse le visage
- Chaque réseau exécute cinq modèles entraînés sur différentes partitions des données et calcule la moyenne de leurs estimations, ce qui stabilise le résultat
- Les modèles sont entraînés avec des âges confirmés par des documents d'identité, les adolescents, les jeunes adultes et chaque groupe de carnation étant bien représentés
- Les modèles sont évalués uniquement sur des selfies et sur des personnes qu'ils n'ont jamais vues pendant l'entraînement**4. Décision et analyse complémentaire**Le système génère un résultat complet :| Sortie | Description |
| - | - |
| **Estimation de l'âge** | Estimation principale avec notation de confiance |
| **Estimation du genre** | Contexte démographique complémentaire (optionnel) |
| **Métriques de confiance** | Évaluation globale de la fiabilité |
| **Facteurs environnementaux** | Évaluation de l'impact sur la qualité de l'estimation |**5. Application des règles**Vos règles métier configurées sont appliquées aux résultats de l'estimation.- Estimation de l'âge comparée à vos **seuils configurés** (min/max par pays)
- Scores de confiance vérifiés par rapport à vos exigences minimales
- Les **cas limites** peuvent déclencher un basculement vers la vérification d'identité (mode adaptatif)
- Résultats documentés avec un **journal d'audit** détaillé pour la conformité## Estimation adaptative de l'âgePour les scénarios où une vérification d'âge précise est essentielle, notre plateforme propose une estimation adaptative de l'âge avec une solution de repli vers la vérification d'identité. Cette approche offre un équilibre entre praticité pour l'utilisateur et conformité réglementaire.### Fonctionnement de l'estimation adaptative de l'âge**1. Estimation initiale de l'âge**Le système tente d'abord d'estimer l'âge de l'utilisateur à l'aide d'une analyse faciale. Un score de confiance est généré en parallèle de l'estimation de l'âge.**2. Évaluation des seuils**L'âge estimé est comparé à vos seuils configurés. Trois résultats possibles :| Résultat | Description |
| - | - |
| **Réussite nette** | L'utilisateur est nettement au-dessus de votre seuil d'âge requis |
| **Échec net** | L'utilisateur est nettement en dessous de votre seuil d'âge requis |
| **Cas limite** | L'âge estimé se situe dans une plage d'incertitude ou présente un score de confiance faible |**3. Repli intelligent**- **Réussite/échec net** : la vérification se termine immédiatement avec le résultat correspondant
- **Cas limites** : le système initie automatiquement un **parcours de vérification d'identité**
- Cela garantit la conformité réglementaire tout en minimisant les frictions pour la plupart des utilisateurs**4. Vérification du document (si nécessaire)**Pour les cas limites, l'utilisateur fournit une pièce d'identité officielle :- L'authenticité du document et les informations d'âge sont vérifiées
- Les **Restrictions d'âge par pays** de l'étape de vérification d'identité sont appliquées
- Le système vérifie la date de naissance par rapport à l'âge minimal/maximal pour le pays et la région de délivrance du document
- Le portrait du document fait l'objet d'une **correspondance faciale 1:1 avec le selfie déjà capturé pour l'estimation de l'âge**, de sorte que la date de naissance figurant sur le document soit liée à la personne devant la caméra### Ce que renvoie le mécanisme de repliLa correspondance faciale de repli s'exécute sans nœud de correspondance faciale dans le workflow, elle apparaît donc dans la décision de la session d'une manière qui peut facilement être confondue avec une vérification que vous n'avez jamais configurée :- `features` liste `FACE_MATCH` en plus de `AGE_ESTIMATION` et `ID_VERIFICATION` une fois le repli exécuté.
- `face_matches[]` contient une entrée avec le `score`, la `source_image` (portrait du document) et la `target_image` (selfie de l'estimation d'âge). Son `node_id` est le **nœud d'estimation de l'âge** (`feature_age_estimation` sur un workflow natif), car la correspondance appartient à cette étape et non à une étape de correspondance faciale.
- Un score faible déclenche les [avertissements habituels de correspondance faciale](https://docs.didit.me/fr/core-technology/face-match/warnings-face-match.md) et peut envoyer la session en cours d'examen ou la refuser, exactement comme le ferait un nœud de correspondance faciale configuré.
- Elle n'est **pas facturée** comme une correspondance faciale : la session est facturée pour l'estimation de l'âge et pour la vérification d'identité uniquement.Les sessions réussies ou refusées uniquement sur le selfie n'exécutent jamais le repli, elles renvoient donc `face_matches: null`. Pour exclure les images du payload de décision, limitez les champs `face_matches` avec les [attributs de réponse](https://docs.didit.me/fr/sessions-api/retrieve-session.md) du workflow.> [!NOTE]
>
> L'estimation adaptative de l'âge peut être configurée à l'aide du type de workflow [Vérification adaptative de l'âge](https://docs.didit.me/fr/console/workflows.md). Vous pouvez définir les seuils d'âge limites qui déterminent quand la vérification d'identité est déclenchée. La décision finale fondée sur l'âge pour les cas limites est ensuite régie par les restrictions d'âge par pays configurées dans l'étape Vérification d'identité.### Avantages de l'estimation adaptative de l'âge- **Friction réduite** : la plupart des utilisateurs terminent la vérification avec un simple selfie
- **Conformité renforcée** : les cas incertains bénéficient d'une vérification documentaire approfondie selon les règles d'âge spécifiques à chaque pays
- **Rentabilité** : la vérification d'identité n'est utilisée que lorsque cela est nécessaire
- **Tolérance au risque personnalisable** : ajustez les seuils en fonction de vos exigences réglementaires
- **Prise en compte des juridictions** : applique automatiquement la majorité légale appropriée selon le pays de délivrance et la région du document de l'utilisateurCette approche est particulièrement précieuse pour les services soumis à une restriction d'âge, tels que les jeux en ligne, la livraison d'alcool et les plateformes de contenu pour adultes, où concilier expérience utilisateur et conformité réglementaire est essentiel.## Assurance de l'âge (ISO/IEC 27566-1)Un workflow peut déclarer qu'il respecte la norme d'assurance de l'âge ISO/IEC 27566-1.
Créez-le à partir des modèles de la console **Estimation de l'âge (ISO/IEC 27566-1)** ou **Vérification de l'âge (ISO/IEC 27566-1)**.
La déclaration est faite lors de la création du workflow et ne peut plus être modifiée par la suite.Lorsqu'un workflow déclare respecter la norme, Didit le verrouille sur une réponse unique par oui ou non concernant l'âge.
Les paramètres verrouillés s'appliquent à chaque enregistrement, dans la console comme via l'API :- **Vous recevez la décision d'âge et rien d'autre.** Les attributs de réponse sont verrouillés, de sorte que la décision ne comporte aucune donnée personnelle.
- **L'âge minimum est de 13 ans** dans chaque pays, dans chaque remplacement régional et dans les seuils d'estimation adaptative de l'âge. Une valeur inférieure est rejetée.
- **Aucune reconnaissance entre les sessions.** Les contrôles de documents en double et de visages en double sont désactivés, et aucun gabarit biométrique n'est stocké.
- **Capture limitée.** Les documents sont capturés uniquement avec l'appareil photo, sans téléversement de fichier, sans capture silencieuse de selfie pendant la prise de vue du document et sans enregistrement audio.
- **Aucun contrôle de données supplémentaire.** La comparaison des informations attendues et l'étape d'examen des données sont désactivées, et la vérification d'identité lit uniquement les documents, sans consultation de base de données ni portefeuilles d'identité numérique.
- **Un seuil est obligatoire.** Un workflow sans seuil d'âge est rejeté lors de l'enregistrement, afin qu'il ne puisse jamais approuver tout le monde par défaut.## Performances et statistiques du modèleLes chiffres ci-dessous décrivent le modèle d'âge en production depuis le 4 novembre 2026.
Ils proviennent de son jeu d'évaluation verrouillé : 2 399 selfies de personnes âgées de 13 ans et plus, mis de côté avant l'entraînement, l'âge de chaque personne étant extrait de son document d'identité vérifié.
Aucun modèle n'a été entraîné sur ces selfies, ni sur ces personnes.
Les chiffres globaux correspondent à une répartition d'évaluation comprenant 10% de mineurs, les adultes suivant la distribution par âge du trafic réel ; chaque tranche d'âge est détaillée séparément ci-dessous.### Métriques de précision<table>
  <thead>
    <tr>
      <th>Métrique</th>
      <th>Valeur</th>
      <th>Description</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>**Erreur absolue moyenne (MAE)**</td>
      <td>2,6 ans</td>
      <td>Différence moyenne entre l'âge estimé et l'âge sur le document</td>
    </tr>

    <tr>
      <td>**Écart-type**</td>
      <td>2,3 ans</td>
      <td>Variation de l'erreur d'une estimation à l'autre</td>
    </tr>

    <tr>
      <td>**Exactitude au seuil de 18 ans**</td>
      <td>96.0%</td>
      <td>Selfies correctement classés comme ayant moins de 18 ans ou 18 ans et plus, sans plage de repli ; au moins 95.3% avec un niveau de confiance de 95%</td>
    </tr>
  </tbody>
</table>### Performances selon les tranches d'âgeL'erreur est la plus faible autour des âges où s'applique le contrôle de l'âge, et augmente avec l'âge.<table>
  <thead>
    <tr>
      <th>Tranche d'âge</th>
      <th>MAE (ans)</th>
      <th>Écart-type (ans)</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>13-15</td>
      <td>1,70</td>
      <td>1,17</td>
    </tr>

    <tr>
      <td>16-17</td>
      <td>1,14</td>
      <td>1,37</td>
    </tr>

    <tr>
      <td>18-20</td>
      <td>1,86</td>
      <td>1,74</td>
    </tr>

    <tr>
      <td>21-25</td>
      <td>2,21</td>
      <td>1,78</td>
    </tr>

    <tr>
      <td>26-40</td>
      <td>2,77</td>
      <td>2,20</td>
    </tr>

    <tr>
      <td>41-60</td>
      <td>3,03</td>
      <td>2,62</td>
    </tr>

    <tr>
      <td>Plus de 60</td>
      <td>4,33</td>
      <td>3,64</td>
    </tr>
  </tbody>
</table>> [!NOTE]
>
> L'écart-type décrit la variation de l'erreur des estimations individuelles, et non l'incertitude de la moyenne.
> Une estimation située à un an ou deux de votre âge minimum peut basculer d'un côté comme de l'autre : lorsqu'une décision erronée près du seuil est critique, orientez cette zone limite vers la [solution de repli adaptative de vérification d'identité](#estimation-adaptative-de-l’âge).


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