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

# Stima dell'età: avvisi e codici di rischio

> Consulta i codici di rischio della stima dell'età di Didit (AGE_BELOW_MINIMUM, LOW_LIVENESS_SCORE e altri), con relative soglie e azioni.

La funzionalità Stima dell'età emette **avvisi** ogni volta che si attiva un segnale di rischio sul controllo combinato di età + rilevamento passivo della vitalità: l'età stimata è inferiore al valore minimo, non è stato possibile calcolare l'età, il soggetto non ha superato il rilevamento della vitalità, non è stato trovato alcun volto o è stato rilevato un attacco di presentazione. Questa pagina elenca ciascun codice, le condizioni che lo attivano e come configurare la risposta del workflow.

## Panoramica

La Stima dell'età esegue sempre **due controlli in un'unica chiamata** — un test di rilevamento passivo della vitalità e un modello di regressione dell'età — pertanto i relativi avvisi transitano attraverso la pipeline condivisa di rilevamento della vitalità e sono contrassegnati con la funzionalità `LIVENESS`. Vengono mostrati nel report sotto `age_estimation.warnings[]` (API autonoma) o `liveness_checks[].warnings[]` (incorporati in un workflow). Lo schema dell'oggetto avviso è documentato in [Modelli di dati — Oggetto avviso](https://docs.didit.me/it/reference/data-models.md#oggetto-avviso).

Produttori:

* **API autonoma** — l'endpoint genera i cinque avvisi elencati in [Trigger di rifiuto](#trigger-di-rifiuto).
* **Workflow** — i produttori condivisi del rilevamento della vitalità oltre ai controlli specifici dell'età. Gli avvisi sull'età si attivano solo sui flussi di stima dell'età (workflow adattivi di verifica dell'età o nodi di workflow `AGE_ESTIMATION`) — un normale passaggio di rilevamento della vitalità riporta un'età stimata ma non genera mai avvisi sull'età.

Livelli di gravità: i cinque rischi con rifiuto automatico (`NO_FACE_DETECTED`, `LIVENESS_FACE_ATTACK`, `FACE_IN_BLOCKLIST`, `AGE_BELOW_MINIMUM`, `AGE_NOT_DETECTED`) hanno sempre `log_type: "error"` e forzano lo stato `Declined`; i rischi rimanenti si risolvono in `error` / `warning` / `information` in base alle soglie o all'azione configurata.

## Trigger di rifiuto

Nell'API autonoma, la decisione è `Declined` ogni volta che si attiva **qualsiasi** avviso:

* **Età inferiore alla soglia** — età stimata strettamente inferiore a `age_estimation_decline_threshold` (valore predefinito `18`; `0` disabilita il controllo dell'età). Genera `AGE_BELOW_MINIMUM`.
* **Età non calcolata** — non è stato possibile stimare l'età del volto (nessun volto rilevabile o nessun volto utilizzabile per il modello di stima dell'età). Genera `AGE_NOT_DETECTED`.
* **Punteggio di vitalità pari o inferiore alla soglia** — `score <= face_liveness_score_decline_threshold` (valore predefinito `30`); un punteggio `null` viene conteggiato come `0`. Genera `LOW_LIVENESS_SCORE`. Viene soppresso quando si attiva `NO_FACE_DETECTED` — i due eventi si escludono a vicenda.
* **Nessun volto rilevato** — il modello di rilevamento della vitalità non ha individuato alcun volto. Genera `NO_FACE_DETECTED`.
* **Attacco di presentazione** — il modello di rilevamento della vitalità ha rilevato uno schermo, una foto stampata, una maschera o un altro tentativo di spoofing. Genera `LIVENESS_FACE_ATTACK`.

Nei workflow, i controlli dell'età confrontano l'età stimata troncata (anni interi) con le soglie configurate:

* **Con fallback su verifica dell'identità abilitato** (`enable_id_verification_fallback`, abilitato per impostazione predefinita): un'età inferiore a `borderline_minimum_age_threshold` (valore predefinito `18`) genera `AGE_BELOW_MINIMUM`; le età comprese nella fascia limite (fino a `borderline_maximum_age_threshold`) proseguono verso la verifica del documento anziché generare un avviso, e `AGE_NOT_DETECTED` non viene mai generato — un'età non rilevata viene indirizzata anch'essa alla verifica del documento.
* **Con fallback disabilitato**: l'assenza di un'età stimata genera `AGE_NOT_DETECTED`, e un'età inferiore a `minimum_age_threshold` (valore predefinito `18`) genera `AGE_BELOW_MINIMUM`.

## Rischi configurabili

I seguenti rischi consentono di calibrare le soglie o l'azione per ciascuna impostazione del workflow:

| Impostazione | Codice di rischio | Opzioni configurabili |
| - | - | - |
| Soglie dell'età | `AGE_BELOW_MINIMUM` | API autonoma: `age_estimation_decline_threshold` (valore predefinito `18`, `0` disabilita). Workflow: `minimum_age_threshold` / `borderline_minimum_age_threshold` (valore predefinito `18`) oltre al fallback su verifica dell'identità per le età limite. |
| Punteggio basso di vitalità | `LOW_LIVENESS_SCORE` | **Soglia di rifiuto** separata (valore predefinito `30` → `error` + rifiuto) e **Soglia di revisione** separata (valore predefinito `60` → `warning` + revisione) applicate al punteggio di vitalità. |
| Possibile volto duplicato | `POSSIBLE_DUPLICATED_FACE` | Azione al rilevamento: `DECLINE` / `REVIEW` / `NO_ACTION` (valore predefinito `NO_ACTION`). Solo sessioni di workflow. |
| Volti multipli | `MULTIPLE_FACES_DETECTED` | Azione al rilevamento: `DECLINE` / `REVIEW` / `NO_ACTION` (valore predefinito `NO_ACTION`). Solo rilevamento passivo della vitalità nei workflow. |

Le sessioni di workflow verificano inoltre il volto rispetto alle tue liste: `FACE_IN_BLOCKLIST` comporta sempre il rifiuto automatico (`error`), mentre `POSSIBLE_FACE_IN_BLOCKLIST` sposta la sessione nello stato `In Review`.

## Avvisi generati

| Tag | Gravità (`log_type`) | Descrizione |
| - | - | - |
| `AGE_BELOW_MINIMUM` | `error` — rifiuto automatico | L'età stimata è inferiore alla soglia attiva (`age_estimation_decline_threshold` standalone; `minimum_age_threshold` / `borderline_minimum_age_threshold` del workflow; tutte con valore predefinito pari a `18`). `additional_data` è sempre `null`. |
| `AGE_NOT_DETECTED` | `error` — rifiuto automatico | Impossibile stimare l'età del volto. Generato sempre dall'API standalone quando l'età è `null`; nei workflow solo quando il fallback di verifica dell'identità è disabilitato. |
| `LOW_LIVENESS_SCORE` | `error` in corrispondenza di o sotto la soglia di rifiuto; `warning` in corrispondenza di o sotto la soglia di revisione | Il punteggio di vitalità è pari o inferiore alla soglia configurata (valore predefinito di rifiuto per standalone e workflow pari a `30`; valore predefinito di revisione per workflow pari a `60`), indicando il potenziale utilizzo di una foto statica, uno schermo o un video. Non viene generato se si attiva `NO_FACE_DETECTED`. |
| `NO_FACE_DETECTED` | `error` — rifiuto automatico | Nessun volto rilevato nell'immagine inviata. Chiedi all'utente di centrare la fotocamera con un'illuminazione adeguata. |
| `LIVENESS_FACE_ATTACK` | `error` — rifiuto automatico | Il modello di rilevamento della vitalità ha segnalato un attacco di presentazione (riproduzione su schermo, foto stampata, maschera, deepfake). |
| `MULTIPLE_FACES_DETECTED` | In base all'azione configurata (valore predefinito `information`, nessuna azione) | È stato rilevato più di un volto nell'immagine; il risultato è determinato dal volto più grande. Solo per il rilevamento passivo della vitalità nei workflow: l'API standalone non lo genera. |
| `FACE_IN_BLOCKLIST` | `error` — rifiuto automatico | Il volto rilevato corrisponde a una voce presente nella tua blocklist di volti gestita tramite le [Lists API](https://docs.didit.me/it/management-api/lists/overview.md). Solo per le sessioni di workflow. |
| `POSSIBLE_DUPLICATED_FACE` | In base all'azione configurata (valore predefinito `information`, nessuna azione) | Il volto rilevato è notevolmente simile a un volto precedentemente approvato in un'altra sessione (le corrispondenze che condividono lo stesso `vendor_data` sono escluse). Solo per le sessioni di workflow. |

## Esempio

```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."
    }
  ]
}
```

Nei payload delle decisioni del workflow (`liveness_checks[].warnings[]`), ogni avviso include anche un `node_id` che identifica il nodo del workflow che lo ha generato.

## Tipi di avviso

A ciascun rischio viene assegnata una gravità in base alla configurazione della tua applicazione. Le gravità rientrano in tre categorie:

## Correlati

* [Panoramica sulla stima dell'età](https://docs.didit.me/it/core-technology/age-estimation/overview.md) — comportamento della funzionalità, prezzi e logica decisionale.
* [Report di Stima dell'età](https://docs.didit.me/it/core-technology/age-estimation/report-age-estimation.md) — struttura completa della risposta sia per l'API standalone che per il valore integrato nel workflow.
* [Riferimento API standalone](https://docs.didit.me/it/standalone-apis/age-estimation.md) — richiesta e risposta per `POST /v3/age-estimation/`.
* [Vitalità passiva](https://docs.didit.me/it/core-technology/liveness/overview.md) — il modello di vitalità condiviso utilizzato nelle risposte di stima dell'età.
* [Modelli di dati — stima dell'età](https://docs.didit.me/it/reference/data-models.md#stima-dell’età) — schema canonico campo per campo.


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