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

# Altersschätzung: Warnungen & Risiko-Codes

> Übersicht aller Risiko-Codes der Didit-Altersschätzung wie AGE_BELOW_MINIMUM und LOW_LIVENESS_SCORE mit Schwellenwerten und Aktionen.

Die Funktion „Altersschätzung“ gibt **Warnungen** aus, sobald ein Risikosignal bei der kombinierten Prüfung aus Alter und passiver Liveness ausgelöst wird: Das prognostizierte Alter liegt unter Ihrem Mindestalter, das Alter konnte nicht berechnet werden, die Person hat die Liveness-Prüfung nicht bestanden, es wurde kein Gesicht gefunden oder es wurde ein Präsentationsangriff erkannt. Diese Seite listet jeden Code auf, was ihn ausöst und wie Sie die Workflow-Reaktion konfigurieren.

## Übersicht

Die Altersschätzung führt immer **zwei Prüfungen in einem Aufruf** durch – einen passiven Liveness-Test und ein Altersregressionsmodell –, sodass ihre Warnungen die gemeinsame Liveness-Pipeline durchlaufen und mit der Funktion `LIVENESS` versehen sind. Sie erscheinen im Bericht unter `age_estimation.warnings[]` (eigenständige API) oder `liveness_checks[].warnings[]` (in einen Workflow eingebettet). Das Schema des Warnungsobjekts ist unter [Datenmodelle – Warnungsobjekt](https://docs.didit.me/de/reference/data-models.md#warnungsobjekt) dokumentiert.

Erzeuger:

* **Eigenständige API** – der Endpoint generiert die fünf unter [Ablehnungsauslöser](#ablehnungsauslöser) aufgeführten Warnungen.
* **Workflows** – die gemeinsamen Liveness-Erzeuger sowie die altersspezifischen Prüfungen. Alterswarnungen werden nur bei Flows zur Altersschätzung ausgelöst (adaptive Workflows zur Altersverifizierung oder `AGE_ESTIMATION`-Workflow-Knoten) – ein einfacher Liveness-Schritt meldet ein geschätztes Alter, gibt aber niemals Alterswarnungen aus.

Schweregrade: Die fünf Risiken für eine automatische Ablehnung (`NO_FACE_DETECTED`, `LIVENESS_FACE_ATTACK`, `FACE_IN_BLOCKLIST`, `AGE_BELOW_MINIMUM`, `AGE_NOT_DETECTED`) haben immer `log_type: "error"` und erzwingen `Declined`; die übrigen Risiken ergeben je nach Schwellenwerten oder konfigurierter Aktion `error` / `warning` / `information`.

## Ablehnungsauslöser

Bei der eigenständigen API lautet die Entscheidung `Declined`, sobald **irgendeine** Warnung ausgelöst wird:

* **Alter unter dem Schwellenwert** – prognostiziertes Alter strikt unter `age_estimation_decline_threshold` (Standardwert `18`; `0` deaktiviert die Altersprüfung). Löst `AGE_BELOW_MINIMUM` aus.
* **Alter nicht berechnet** – es konnte kein Gesichtsalter geschätzt werden (kein erkennbares Gesicht oder kein für das Altersmodell verwertbares Gesicht). Löst `AGE_NOT_DETECTED` aus.
* **Liveness-Score bei oder unter dem Schwellenwert** – `score <= face_liveness_score_decline_threshold` (Standardwert `30`); ein `null`-Score zählt als `0`. Löst `LOW_LIVENESS_SCORE` aus. Wird unterdrückt, wenn `NO_FACE_DETECTED` ausgelöst wird – beide schließen sich gegenseitig aus.
* **Kein Gesicht erkannt** – das Liveness-Modell hat kein Gesicht gefunden. Löst `NO_FACE_DETECTED` aus.
* **Präsentationsangriff** – das Liveness-Modell hat einen Bildschirm, ein gedrucktes Foto, eine Maske oder ein anderes Spoofing erkannt. Löst `LIVENESS_FACE_ATTACK` aus.

In Workflows vergleichen die Altersprüfungen das auf ganze Jahre abgeschnittene geschätzte Alter mit den konfigurierten Schwellenwerten:

* **Mit aktiviertem Ausweisverifizierungs-Fallback** (`enable_id_verification_fallback`, standardmäßig aktiviert): Ein Alter unter `borderline_minimum_age_threshold` (Standardwert `18`) löst `AGE_BELOW_MINIMUM` aus; die Dokumentenverifizierung wird für Altersangaben im Grenzbereich (bis zu `borderline_maximum_age_threshold`) fortgesetzt, anstatt eine Warnung auszulösen, und `AGE_NOT_DETECTED` wird nie ausgelöst – ein nicht erkanntes Alter wird ebenfalls an die Dokumentenverifizierung weitergeleitet.
* **Mit deaktiviertem Fallback**: Wenn kein Alter geschätzt werden kann, wird `AGE_NOT_DETECTED` ausgelöst, und ein Alter unter `minimum_age_threshold` (Standardwert `18`) löst `AGE_BELOW_MINIMUM` aus.

## Konfigurierbare Risiken

Bei den folgenden Risiken können Sie Schwellenwerte oder die Aktion pro Workflow-Einstellung anpassen:

| Einstellung | Risikocode | Konfigurierbare Optionen |
| - | - | - |
| Altersschwellenwerte | `AGE_BELOW_MINIMUM` | Eigenständig: `age_estimation_decline_threshold` (Standardwert `18`, `0` deaktiviert). Workflows: `minimum_age_threshold` / `borderline_minimum_age_threshold` (Standardwert `18`) plus der Ausweisverifizierungs-Fallback für Grenzfälle beim Alter. |
| Niedriger Liveness-Score | `LOW_LIVENESS_SCORE` | Getrennte **Ablehnungs-Schwelle** (Standardwert `30` → `error` + Ablehnung) und **Prüfschwelle** (Standardwert `60` → `warning` + Prüfung), die auf den Liveness-Score angewendet werden. |
| Möglicherweise doppeltes Gesicht | `POSSIBLE_DUPLICATED_FACE` | Aktion bei Erkennung: `DECLINE` / `REVIEW` / `NO_ACTION` (Standardwert `NO_ACTION`). Nur Workflow-Sitzungen. |
| Mehrere Gesichter | `MULTIPLE_FACES_DETECTED` | Aktion bei Erkennung: `DECLINE` / `REVIEW` / `NO_ACTION` (Standardwert `NO_ACTION`). Nur passive Liveness im Workflow. |

Workflow-Sitzungen gleichen das Gesicht außerdem mit Ihren Listen ab: `FACE_IN_BLOCKLIST` führt immer zur automatischen Ablehnung (`error`), während `POSSIBLE_FACE_IN_BLOCKLIST` die Sitzung auf `In Review` setzt.

## Erzeugte Warnungen

| Tag | Schweregrad (`log_type`) | Beschreibung |
| - | - | - |
| `AGE_BELOW_MINIMUM` | `error` — automatische Ablehnung | Das geschätzte Alter liegt unter dem aktiven Schwellenwert (Standalone `age_estimation_decline_threshold`; Workflow `minimum_age_threshold` / `borderline_minimum_age_threshold`; alle standardmäßig `18`). `additional_data` ist immer `null`. |
| `AGE_NOT_DETECTED` | `error` — automatische Ablehnung | Es konnte kein Gesichtsalter geschätzt werden. Wird von der Standalone-API immer ausgelöst, wenn das Alter `null` ist; in Workflows nur dann, wenn das Fallback auf die Ausweisverifizierung deaktiviert ist. |
| `LOW_LIVENESS_SCORE` | `error` bei/unter dem Ablehnungsschwellenwert; `warning` bei/unter dem Prüfungsschwellenwert | Der Liveness-Score liegt auf oder unter dem konfigurierten Schwellenwert (Standard für Ablehnung bei Standalone und Workflow `30`; Standard für Workflow-Prüfung `60`), was auf die potenzielle Verwendung eines statischen Fotos, Bildschirms oder Videos hinweist. Wird nicht ausgelöst, wenn `NO_FACE_DETECTED` ausgelöst wird. |
| `NO_FACE_DETECTED` | `error` — automatische Ablehnung | Im übermittelten Bild wurde kein Gesicht erkannt. Bitten Sie den Benutzer erneut, die Kamera bei ausreichender Beleuchtung mittig auszurichten. |
| `LIVENESS_FACE_ATTACK` | `error` — automatische Ablehnung | Das Liveness-Erkennungsmodell hat einen Präsentationsangriff (Bildschirmwiedergabe, gedrucktes Foto, Maske, Deepfake) markiert. |
| `MULTIPLE_FACES_DETECTED` | Gemäß konfigurierter Aktion (Standard `information`, keine Aktion) | Es wurde mehr als ein Gesicht im Bild gefunden; das größte Gesicht bestimmt das Ergebnis. Nur bei passiver Liveness-Erkennung im Workflow — die Standalone-API löst dies nicht aus. |
| `FACE_IN_BLOCKLIST` | `error` — automatische Ablehnung | Das erkannte Gesicht stimmt mit einem Eintrag in Ihrer über die [Lists-API](https://docs.didit.me/de/management-api/lists/overview.md) verwalteten Gesichts-Sperrliste überein. Nur bei Workflow-Sitzungen. |
| `POSSIBLE_DUPLICATED_FACE` | Gemäß konfigurierter Aktion (Standard `information`, keine Aktion) | Das erkannte Gesicht weist eine erhebliche Ähnlichkeit mit einem zuvor genehmigten Gesicht in einer anderen Sitzung auf (Übereinstimmungen mit denselben `vendor_data` sind ausgeschlossen). Nur bei Workflow-Sitzungen. |

## Beispiel

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

In Entscheidungs-Payloads von Workflows (`liveness_checks[].warnings[]`) enthält jede Warnung zusätzlich eine `node_id`, die den Workflow-Knoten identifiziert, der sie ausgelöst hat.

## Warnungstypen

Jedem Risiko wird basierend auf der Konfiguration Ihrer Anwendung ein Schweregrad zugewiesen. Schweregrade unterteilen sich in drei Kategorien:

## Verwandte Themen

* [Übersicht zur Altersschätzung](https://docs.didit.me/de/core-technology/age-estimation/overview.md) — Funktionsverhalten, Preise und Entscheidungslogik.
* [Bericht zur Altersschätzung](https://docs.didit.me/de/core-technology/age-estimation/report-age-estimation.md) — Vollständige Antwortstruktur sowohl für die Standalone-API als auch für den eingebetteten Workflow-Wert.
* [Referenz zur Standalone-API](https://docs.didit.me/de/standalone-apis/age-estimation.md) — Anfrage und Antwort für `POST /v3/age-estimation/`.
* [Passive Liveness-Erkennung](https://docs.didit.me/de/core-technology/liveness/overview.md) — Das gemeinsame Liveness-Erkennungsmodell, das in Antworten der Altersschätzung verwendet wird.
* [Datenmodelle — Altersschätzung](https://docs.didit.me/de/reference/data-models.md#altersschätzung) — Kanonisches, nach Feldern aufgeschlüsseltes Schema.


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