> ## 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.

# Estimation de l'âge : avertissements et codes de risque

> Retrouvez tous les codes de risque d'estimation de l'âge Didit, leurs seuils et actions : AGE_BELOW_MINIMUM, LOW_LIVENESS_SCORE, etc.

La fonctionnalité Estimation de l'âge émet des **avertissements** dès qu'un signal de risque se déclenche lors du contrôle combiné d'âge et de détection passive du vivant : l'âge prédit est inférieur à votre minimum, l'âge n'a pas pu être calculé, le sujet a échoué au test de détection du vivant, aucun visage n'a été trouvé, ou une attaque par présentation a été détectée. Cette page répertorie chaque code, ce qui le déclenche, et comment configurer la réponse du workflow.

## Vue d'ensemble

L'Estimation de l'âge exécute toujours **deux vérifications en un seul appel** — un test de détection passive du vivant et un modèle de régression de l'âge — de sorte que ses avertissements transitent par le pipeline partagé de détection du vivant et sont étiquetés avec la fonctionnalité `LIVENESS`. Ils apparaissent sur le rapport sous `age_estimation.warnings[]` (API autonome) ou `liveness_checks[].warnings[]` (intégré dans un workflow). Le schéma de l'objet d'avertissement est documenté sous [Modèles de données — Objet d'avertissement](https://docs.didit.me/fr/reference/data-models.md#objet-d’avertissement).

Émetteurs :

* **API autonome** — l'endpoint génère les cinq avertissements répertoriés sous [Déclencheurs de refus](#déclencheurs-de-refus).
* **Workflows** — les émetteurs partagés de détection du vivant ainsi que les vérifications spécifiques à l'âge. Les avertissements d'âge ne se déclenchent que sur les flux d'estimation de l'âge (workflows de vérification adaptative de l'âge ou nœuds de workflow `AGE_ESTIMATION`) — une simple étape de détection du vivant signale un âge estimé mais n'émet jamais d'avertissements d'âge.

Gravités : les cinq risques de refus automatique (`NO_FACE_DETECTED`, `LIVENESS_FACE_ATTACK`, `FACE_IN_BLOCKLIST`, `AGE_BELOW_MINIMUM`, `AGE_NOT_DETECTED`) sont toujours `log_type: "error"` et imposent la décision `Declined` ; les autres risques sont associés à `error` / `warning` / `information` en fonction des seuils ou de l'action configurée.

## Déclencheurs de refus

Sur l'API autonome, la décision est `Declined` dès que **n'importe quel** avertissement se déclenche :

* **Âge inférieur au seuil** — âge prédit strictement inférieur à `age_estimation_decline_threshold` (par défaut `18` ; `0` désactive la vérification de l'âge). Déclenche `AGE_BELOW_MINIMUM`.
* **Âge non calculé** — aucun âge n'a pu être estimé à partir du visage (aucun visage détectable, ou aucun visage exploitable pour le modèle d'âge). Déclenche `AGE_NOT_DETECTED`.
* **Score de détection du vivant inférieur ou égal au seuil** — `score <= face_liveness_score_decline_threshold` (par défaut `30`) ; un score `null` équivaut à `0`. Déclenche `LOW_LIVENESS_SCORE`. Supprimé lorsque `NO_FACE_DETECTED` se déclenche — les deux sont mutuellement exclusifs.
* **Aucun visage détecté** — le modèle de détection du vivant n'a trouvé aucun visage. Déclenche `NO_FACE_DETECTED`.
* **Attaque par présentation** — le modèle de détection du vivant a signalé un écran, une photo imprimée, un masque ou une autre usurpation. Déclenche `LIVENESS_FACE_ATTACK`.

Dans les workflows, les vérifications d'âge comparent l'âge estimé tronqué (années entières) aux seuils configurés :

* **Avec le repli de vérification d'identité activé** (`enable_id_verification_fallback`, activé par défaut) : un âge inférieur à `borderline_minimum_age_threshold` (par défaut `18`) déclenche `AGE_BELOW_MINIMUM` ; les utilisateurs dont l'âge se situe dans la tranche limite (jusqu'à `borderline_maximum_age_threshold`) sont orientés vers la vérification des documents au lieu de déclencher un avertissement, et `AGE_NOT_DETECTED` n'est jamais déclenché — un âge non détecté est également redirigé vers la vérification des documents.
* **Avec le repli désactivé** : l'absence d'âge estimé déclenche `AGE_NOT_DETECTED`, et un âge inférieur à `minimum_age_threshold` (par défaut `18`) déclenche `AGE_BELOW_MINIMUM`.

## Risques configurables

Les risques suivants vous permettent d'ajuster les seuils ou l'action selon les paramètres du workflow :

| Paramètre | Code de risque | Options configurables |
| - | - | - |
| Seuils d'âge | `AGE_BELOW_MINIMUM` | Autonome : `age_estimation_decline_threshold` (par défaut `18`, `0` désactive). Workflows : `minimum_age_threshold` / `borderline_minimum_age_threshold` (par défaut `18`) plus le repli de vérification d'identité pour les âges limites. |
| Score de détection du vivant faible | `LOW_LIVENESS_SCORE` | **Seuil de refus** distinct (par défaut `30` → `error` + refus) et **Seuil d'examen** (par défaut `60` → `warning` + examen) appliqués au score de détection du vivant. |
| Visage potentiellement dupliqué | `POSSIBLE_DUPLICATED_FACE` | Action lors de la détection : `DECLINE` / `REVIEW` / `NO_ACTION` (par défaut `NO_ACTION`). Sessions de workflow uniquement. |
| Plusieurs visages | `MULTIPLE_FACES_DETECTED` | Action lors de la détection : `DECLINE` / `REVIEW` / `NO_ACTION` (par défaut `NO_ACTION`). Détection passive du vivant en workflow uniquement. |

Les sessions de workflow comparent également le visage à vos listes : `FACE_IN_BLOCKLIST` entraîne toujours un refus automatique (`error`), tandis que `POSSIBLE_FACE_IN_BLOCKLIST` fait passer la session au statut `In Review`.

## Avertissements générés

| Tag | Gravité (`log_type`) | Description |
| - | - | - |
| `AGE_BELOW_MINIMUM` | `error` — refus automatique | L'âge estimé est inférieur au seuil actif (API autonome `age_estimation_decline_threshold` ; workflow `minimum_age_threshold` / `borderline_minimum_age_threshold` ; valeur par défaut `18` pour tous). `additional_data` est toujours `null`. |
| `AGE_NOT_DETECTED` | `error` — refus automatique | Aucun âge n'a pu être estimé à partir du visage. Toujours déclenché par l'API autonome lorsque l'âge est `null` ; dans les workflows, uniquement lorsque le repli sur la vérification d'identité est désactivé. |
| `LOW_LIVENESS_SCORE` | `error` au seuil de refus ou en dessous ; `warning` au seuil d'examen ou en dessous | Le score de détection du vivant est inférieur ou égal au seuil configuré (valeur par défaut de refus pour l'API autonome et le workflow : `30` ; valeur par défaut d'examen pour le workflow : `60`), indiquant l'utilisation potentielle d'une photo statique, d'un écran ou d'une vidéo. N'est pas déclenché lorsque `NO_FACE_DETECTED` s'active. |
| `NO_FACE_DETECTED` | `error` — refus automatique | Aucun visage n'a été détecté dans l'image soumise. Invitez à nouveau l'utilisateur à centrer la caméra avec un éclairage adéquat. |
| `LIVENESS_FACE_ATTACK` | `error` — refus automatique | Le modèle de détection du vivant a signalé une attaque par présentation (relecture sur écran, photo imprimée, masque, deepfake). |
| `MULTIPLE_FACES_DETECTED` | Selon l'action configurée (par défaut `information`, aucune action) | Plusieurs visages ont été détectés dans l'image ; le visage le plus grand détermine le résultat. Uniquement pour la détection passive du vivant dans les workflows — l'API autonome ne le déclenche pas. |
| `FACE_IN_BLOCKLIST` | `error` — refus automatique | Le visage détecté correspond à une entrée de votre liste de blocage de visages gérée via l'[API Lists](https://docs.didit.me/fr/management-api/lists/overview.md). Sessions de workflow uniquement. |
| `POSSIBLE_DUPLICATED_FACE` | Selon l'action configurée (par défaut `information`, aucune action) | Le visage détecté est significativement similaire à un visage précédemment approuvé lors d'une autre session (les correspondances partageant les mêmes `vendor_data` sont exclues). Sessions de workflow uniquement. |

## Exemple

```json theme={null}
{
  "warnings": [
    {
      "risk": "LOW_LIVENESS_SCORE",
      "feature": "LIVENESS",
      "additional_data": null,
      "log_type": "error",
      "short_description": "Low liveness score",
      "long_description": "The liveness check resulted in a low score, indicating potential use of non-live facial representations or poor-quality biometric data."
    },
    {
      "risk": "AGE_BELOW_MINIMUM",
      "feature": "LIVENESS",
      "additional_data": null,
      "log_type": "error",
      "short_description": "Age below minimum",
      "long_description": "The age of the face is below the minimum age threshold for the application."
    }
  ]
}
```

Dans les payloads de décision de workflow (`liveness_checks[].warnings[]`), chaque avertissement comporte également un `node_id` identifiant le nœud de workflow qui l'a déclenché.

## Types d'avertissement

Chaque risque se voit attribuer une gravité en fonction de la configuration de votre application. Les gravités se répartissent en trois catégories :

## Pages connexes

* [Vue d'ensemble de l'estimation de l'âge](https://docs.didit.me/fr/core-technology/age-estimation/overview.md) — comportement de la fonctionnalité, tarifs et logique de décision.
* [Rapport d'estimation de l'âge](https://docs.didit.me/fr/core-technology/age-estimation/report-age-estimation.md) — structure complète de la réponse pour l'API autonome et la valeur intégrée au workflow.
* [Référence de l'API autonome](https://docs.didit.me/fr/standalone-apis/age-estimation.md) — requête et réponse `POST /v3/age-estimation/`.
* [Détection passive du vivant](https://docs.didit.me/fr/core-technology/liveness/overview.md) — le modèle partagé de détection du vivant utilisé dans les réponses d'estimation de l'âge.
* [Modèles de données — estimation de l'âge](https://docs.didit.me/fr/reference/data-models.md#estimation-de-l’âge) — schéma de référence champ par champ.


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