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

# AML-Screening-Bericht: Treffer, Scores & JSON

> AML-Screening-Antworten mit Didit auswerten: Treffer, Sanktionen, PEP, negative Medienberichte, Risiko-Scores und laufende Überwachung.

## Übersicht

Das AML-Screening gleicht die Identität der verifizierten Person mit globalen Datensätzen zu Sanktionen, PEPs, Beobachtungslisten und negativen Medienberichten ab. Jeder Treffer liefert die übereinstimmende Entität, die Datensätze, die den Treffer erzeugt haben, zwei Scores – `match_score` (Identitätskonfidenz) und `risk_score` (Entitätsrisiko) – sowie eine strukturierte Aufschlüsselung nach Quelle (`pep_matches[]`, `sanction_matches[]`, `warning_matches[]`, `adverse_media_matches[]`). Der aggregierte `score` ist der höchste `risk_score` unter den Treffern, die nicht als `False Positive` markiert sind.

Die gleiche Struktur wird beim AML-Screening in Benutzersitzungen (KYC), Unternehmenssitzungen (KYB) und der Standalone-AML-API zurückgegeben.

![Screenshot des Didit-AML-Screening-Berichts mit Treffern zu Sanktionen, PEP und negativen Medienberichten](https://mintcdn.com/didit-0f962782/z6T2GHM4Zh-iSj-K/images/aml-screening-report.png?fit=max\&auto=format\&n=z6T2GHM4Zh-iSj-K\&q=85\&s=5b74561abdd242f108fee1b429ff5020)

## Wo es in API-Antworten erscheint

Am Sitzungsentscheidungs-Endpoint wird das AML-Screening als Array **`aml_screenings[]`** zurückgegeben. Jeder Eintrag entspricht einer AML-Ausführung im Workflow (eine AML-Prüfung, die zweimal ausgeführt wird, erzeugt zwei Einträge mit unterschiedlichen `node_id`-Werten).

```text theme={null}
GET /v3/session/{sessionId}/decision/
  ──▶ { "aml_screenings": [ { node_id, status, total_hits, hits, … }, … ] }
```

Standalone-AML- und Unternehmenssitzungen geben dieselbe Struktur pro Datensatz zurück. Die nachstehenden Felder spiegeln das kanonische Schema auf der Seite [Datenmodelle](https://docs.didit.me/de/reference/data-models.md#aml-screening) wider.

## Drei Scores, kein einzelnes Urteil

Der `status` ist eine Entscheidung; die Zahlen, aus denen er abgeleitet wurde, befinden sich in derselben Payload. Berücksichtigen Sie sie, wenn Sie Ihre eigene Risikostufung aufbauen (z. B. die Kombination von AML-Risiko mit Fragebogenantworten wie Vermögensherkunft oder PEP-Selbsterklärung), anstatt nur nach `Approved` / `In Review` / `Declined` zu verzweigen:

| Score | Wo | Skala | Beantwortet die Frage |
| - | - | - | - |
| `hits[].match_score` | pro Treffer | 0-100 | Ist dieser Treffer dieselbe Person wie die überprüfte? Bestimmt den anfänglichen `review_status` des Treffers. |
| `hits[].risk_score` | pro Treffer | 0-100 | Wie risikoreich ist die übereinstimmende Entität? Er wird durch die Kategorien des Treffers bestimmt (Sanktion, PEP, Verbrechen, ...). |
| `score` | pro Screening | 0-100 | Der höchste `risk_score` unter den Treffern, die nicht als `False Positive` markiert sind. Dieser Wert wird mit den Schwellenwerten für Genehmigung / Prüfung verglichen, um den `status` zu ermitteln. |

Alle drei sind an jeder Stelle vorhanden, an der der AML-Bericht bereitgestellt wird: `GET /v3/session/{sessionId}/decision/`, das `decision`-Objekt von `status.updated`- und `data.updated`-Webhooks in **jeder** Webhook-Version (V3 `aml_screenings[]` sowie das ältere singuläre `aml` in V2 / V1) und der Standalone-AML-API. Ein Consumer, der nur eine Kennzeichnung wie markiert / unbedenklich sieht, liest `status` (oder den `review_status` eines Treffers) und überspringt die Scores daneben. Die Konsole zeigt dieselben Zahlen: Der Header des AML-Abschnitts enthält den aggregierten **Risiko-Score**, und jede Zeile der Treffertabelle enthält **Übereinstimmungswert** und **Risiko-Score** mit einer Aufschlüsselung, die beim Darüberfahren mit der Maus angezeigt wird.

## Schema

Das kanonische Schema finden Sie unter [AML-Screening in der Referenz zu den Datenmodellen](https://docs.didit.me/de/reference/data-models.md#aml-screening). Felder auf oberster Ebene:

| Feld | Typ | Hinweise |
| - | - | - |
| `status` | `Not Finished` \| `Approved` \| `Declined` \| `In Review` | Status auf Funktionsebene (`FeatureStatusChoices`). Steuert Workflow-Regeln und den Bildschirm für die manuelle Prüfung. |
| `total_hits` | integer | Anzahl der Einträge in `hits[]`. `0`, wenn keine Treffer vorliegen. |
| `entity_type` | `person` \| `company` | Die Art der überprüften Entität. Unternehmen und Einzelpersonen verwenden unterschiedliche Abgleichlogiken. |
| `score` | float (0-100) \| null | Aggregierter AML-Risiko-Score — der höchste `risk_score` unter den Treffern, die nicht als `False Positive` markiert sind. `0`, wenn keine potenziellen Treffer vorliegen; `null`, bis das Screening durchgeführt wurde. |
| `hits` | `Hit[]` | Ein Eintrag pro übereinstimmendem Datensatz, **einschließlich** Treffern, die automatisch als `False Positive` klassifiziert wurden (sie bleiben aufgeführt, werden jedoch aus dem aggregierten `score` ausgeschlossen). Siehe die Details zu den einzelnen Feldern unten. |
| `screened_data` | object | Die exakten Werte, die Didit an das Screening gesendet hat: `full_name`, `date_of_birth`, `nationality` (ISO 3166-1 Alpha-2), `document_number`. Nützlich, um einem Prüfer einen Treffer zu erklären oder zu prüfen, wonach gesucht wurde. |
| `is_ongoing_monitoring_enabled` | boolean | `true`, sobald Sie die laufende Überwachung für die Sitzung aktivieren. |
| `next_ongoing_monitoring_bill_date` | string \| null | `YYYY-MM-DD` der nächsten jährlichen Erneuerung der **Abrechnung** (`last_aml_bill_date` + 365 Tage). `null`, bis die Überwachung aktiviert ist. Dies ist kein Screening-Datum — siehe `last_ongoing_screening_at` unten. |
| `last_ongoing_screening_at` | string (ISO 8601) \| null | Wann die laufende Überwachung zuletzt ein erneutes Screening dieses Datensatzes **abgeschlossen** hat, unabhängig davon, ob sich das Ergebnis geändert hat. `null`, wenn der Datensatz seit der Bereitstellung dieses Felds noch nie erneut gescreent wurde — es wird niemals rückwirkend aus dem Aktivierungs- oder Abrechnungsdatum übernommen. |
| `last_ongoing_screening_datasets_updated_at` | string (ISO 8601) \| null | Das jüngste Aktualisierungsdatum des AML-Datensatzes, das der Anbieter zum Zeitpunkt dieses Screenings gemeldet hat. `null`, wenn der Anbieter keine Datumsangaben zu Datensätzen gemeldet hat; es wird niemals geschätzt. |
| `warnings` | `Warning[]` | AML-spezifische Warnungs-Tags. Siehe [AML-Warnungen](https://docs.didit.me/de/core-technology/aml-screening/warnings-aml-screening.md). |
| `node_id` | string \| null | Identifiziert den Workflow-Graphknoten, der diese AML-Ausführung in `/v3/`-Sitzungsantworten erzeugt hat. In der eigenständigen AML-API-Antwort wird dieses Feld weggelassen. |

### Felder pro Treffer

Jeder Eintrag in `hits[]` enthält die folgenden Felder (Auszug dargestellt). Quellarrays für die Übereinstimmung — `pep_matches[]`, `sanction_matches[]`, `warning_matches[]`, `adverse_media_matches[]` — werden nur für den Datensatz bzw. die Datensätze befüllt, zu denen der Treffer gehört.

| Feld | Typ | Hinweise |
| - | - | - |
| `id` | string | Stabile Treffer-Kennung: `hit_` gefolgt von 24 Hexadezimalzeichen. Dieselbe abgeglichene Entität behält dieselbe `id`, wenn die betreffende Entität erneut gescreent wird. Verwenden Sie sie als `hit_id`, wenn Sie `review_status` über den AML-Trefferstatus-Endpoint aktualisieren. |
| `caption` | string | Der primäre Name der Entität, wie er im Datensatz gespeichert ist. |
| `datasets` | string\[] | Risikokategorien, unter denen die Entität aufgeführt ist: `PEP` (mit Stufe, `PEP Level 1` bis `PEP Level 4`), `Sanctions`, `Adverse Media`, `Warnings and Regulatory Enforcement`, `Fitness and Probity`, `SIP`, `SIE` oder `Insolvency`, sowie `Other Lists`, wenn die Quelle der Entität keine davon angibt. |
| `match_score` | number (0-100) | Identitätskonfidenz — wie wahrscheinlich es ist, dass der Treffer dieselbe Person betrifft. Treffer unterhalb von `aml_match_score_threshold` (Standard `93`) beginnen als `False Positive`; ab oder über diesem Schwellenwert beginnen sie als `Unreviewed`. Siehe [AML-Übereinstimmungswert](https://docs.didit.me/de/core-technology/aml-screening/aml-match-score.md). |
| `risk_score` | number (0-100) | Entitätsrisiko — wie riskant die übereinstimmende Entität ist. Der höchste `risk_score` unter den Treffern, die nicht `False Positive` sind, wird zum übergeordneten `score`. Siehe [AML-Risiko-Score](https://docs.didit.me/de/core-technology/aml-screening/aml-risk-score.md). |
| `score` | number (0-1) | **Veraltet**: gewichteter Übereinstimmungswert. Verwenden Sie stattdessen `match_score`. |
| `match` | boolean \| null | Veraltetes Flag für eine exakte Übereinstimmung. Bevorzugen Sie `match_score` + `review_status`. |
| `target` | boolean \| null | Gibt an, ob die Entität das direkte Ziel des Eintrags ist. |
| `review_status` | `Unreviewed` \| `Confirmed Match` \| `False Positive` \| `Inconclusive` | Der anfängliche Wert wird aus `match_score` im Vergleich zu `aml_match_score_threshold` abgeleitet. Veränderbar über den AML-Trefferstatus-Endpoint; eine Aktualisierung löst einen `data.updated`-Webhook aus, berechnet den Funktions-`status` jedoch **nicht** automatisch neu — verwenden Sie dafür den AML-Status-Endpoint oder die Prüfung in der Konsole. |
| `score_breakdown` | object | Wie `match_score` berechnet wurde: Werte für Name/Geburtsdatum/Land, Gewichtungen, Anteile und der „Golden Key“-Effekt der Dokumentnummer (`MATCH` setzt den Wert auf 100, `NEUTRAL` behält den Basiswert bei, `HARD_MISMATCH` straft ab). |
| `properties` | object | Rohattribute des Datensatzes (Namen, Aliase, Geburtsdaten, Staatsangehörigkeit, …). Nützlich für die Beurteilung. |
| `url` | string \| null | Quell-URL für die übereinstimmende Entität, sofern verfügbar. |
| `rca_name` | string \| null | Wenn der Treffer ein Angehöriger oder enger Geschäftspartner (RCA) ist, der Name der verwandten oder nahestehenden Person, über die der Abgleich erfolgte. |
| `pep_matches[]` | object\[] | PEP-Positionen, Herausgeber, Geburtsdaten und Ausbildung für den Treffer. |
| `sanction_matches[]` | object\[] | Name der Sanktionsliste, Programm, Sanktionsbehörde, Listungsdatum und Quell-URLs. |
| `warning_matches[]` | object\[] | Allgemeine Einträge aus Beobachtungslisten oder zu Durchsetzungsmaßnahmen. |
| `adverse_media_matches[]` | object\[] | Negative Medienberichte auf Artikelebene: Schlagzeile, Zusammenfassung, Sentiment, Quell-URL, Veröffentlichungsdatum, Schlüsselwörter. |
| `adverse_media_details` | object \| null | Aggregiertes Sentiment und Anzahl der Schlüsselwörter negativer Medienberichte für den gesamten Treffer. |
| `risk_view` | object | Nach Kategorie, Land und Straftat gewichtete Risikoaufschlüsselung für den Treffer (`risk_level`, `risk_scores`, `weightage`). |
| `linked_entities[]` | object\[] | Verknüpfte Entitäten, die der Datensatz mit dem Treffer verbindet (z. B. Familienmitglieder oder Geschäftspartner). |
| `first_seen` / `last_seen` | string \| null | Wann der Datensatz diesen Eintrag erstmals/zuletzt erfasst hat. |
| `additional_information` | object | Zusätzliche Freiformdaten des Datensatzanbieters. |

> [!NOTE]
>
> Treffer, die als `False Positive` klassifiziert wurden (weil der `match_score` unter den Schwellenwert für den Übereinstimmungswert fiel oder weil ein Prüfer sie so markiert hat), verbleiben aus Gründen der Prüfbarkeit in `hits[]`. Sie werden lediglich von der Berechnung des aggregierten `score` ausgeschlossen.

### Laufende Überwachung

Wenn `is_ongoing_monitoring_enabled` auf `true` gesetzt ist, führt Didit kontinuierlich ein erneutes Screening der Person durch und gibt den AML-Bericht jedes Mal neu aus, wenn ein Treffer hinzugefügt, entfernt oder geändert wird. Erneute Screenings, die den AML-Status ändern, lösen einen `status.updated`-Webhook aus; erneute Screenings, die lediglich Trefferdaten ändern, lösen `data.updated` aus. Das Überwachungsfenster läuft ab `last_aml_bill_date` für 365 Tage; `next_ongoing_monitoring_bill_date` gibt an, wann die nächste jährliche Verlängerung ansteht.

Diese Signale sind alle änderungsgesteuert, sodass eine über Monate hinweg ohne neue Treffer erneut gescreente Person keines davon auslöst. `last_ongoing_screening_at` ist das einzige Feld, das sich bei **jedem** abgeschlossenen Durchlauf ändert, und der [Screening-History-Endpoint](https://docs.didit.me/de/core-technology/aml-screening/continuous-monitoring-aml-screening.md#nachweis-über-die-durchführung-der-überwachung) führt jeden Durchlauf einzeln auf – einschließlich derjenigen, die nichts geändert haben. Den vollständigen Lebenszyklus finden Sie unter [Laufende AML-Überwachung](https://docs.didit.me/de/core-technology/aml-screening/continuous-monitoring-aml-screening.md).

> [!WARNING]
>
> Drei Datumsangaben in diesem Bericht bedeuten drei unterschiedliche Dinge. `next_ongoing_monitoring_bill_date` gibt an, wann die nächste Abrechnung erfolgt. `last_ongoing_screening_at` ist der Zeitpunkt, zu dem die Person tatsächlich zuletzt gescreent wurde. `last_ongoing_screening_datasets_updated_at` gibt an, wann die Listen hinter diesem Screening zuletzt durch den Anbieter aktualisiert wurden. Nur die zweite Angabe belegt, dass die Kontrolle ausgeführt wurde.

## Statuswerte

| Wert | Bedeutung |
| - | - |
| `Not Finished` | AML wurde für diese Sitzung/diesen Knoten noch nicht ausgeführt. |
| `Approved` | Der aggregierte Score liegt bei oder unter dem Genehmigungsschwellenwert (Standardwert `80`) – auch dann, wenn keine Treffer vorliegen oder jeder Treffer ein `False Positive` ist (Score `0`). |
| `In Review` | Der aggregierte Score liegt über dem Genehmigungsschwellenwert (und bei oder unter dem Prüfungsschwellenwert), oder `COULD_NOT_PERFORM_AML_SCREENING` wurde ausgelöst. |
| `Declined` | Der aggregierte Score liegt über dem Prüfungsschwellenwert (Standardwert `100`, eine automatische Ablehnung erfolgt also erst, wenn Sie diesen senken), oder der Status wurde manuell gesetzt. |

Die Schwellenwerte sind pro Workflow-Knoten konfigurierbar – siehe [AML-Risiko-Score](https://docs.didit.me/de/core-technology/aml-screening/aml-risk-score.md). Benutzerdefinierte Statusregeln werden mit dem abgeleiteten Status gemäß der Rangfolge `Declined` > `In Review` > `Approved` kombiniert; Prüfer können den AML-Status auch über die Konsole oder den AML-Status-Endpoint überschreiben.

## Beispiele

### Approved – keine Treffer

```json theme={null}
{
  "aml_screenings": [
    {
      "node_id": "aml-1",
      "status": "Approved",
      "total_hits": 0,
      "entity_type": "person",
      "score": 0,
      "hits": [],
      "screened_data": {
        "full_name": "Jane Doe",
        "nationality": "US",
        "date_of_birth": "1990-06-12",
        "document_number": "P9876543"
      },
      "is_ongoing_monitoring_enabled": false,
      "last_ongoing_screening_at": null,
      "last_ongoing_screening_datasets_updated_at": null,
      "next_ongoing_monitoring_bill_date": null,
      "warnings": []
    }
  ]
}
```

### In Review – PEP + Treffer zu negativen Medienberichten

Alle nachfolgenden Namen, URLs und Artikel sind frei erfunden.

```json theme={null}
{
  "aml_screenings": [
    {
      "node_id": "aml-1",
      "status": "In Review",
      "total_hits": 1,
      "entity_type": "person",
      "score": 85,
      "hits": [
        {
          "id": "hit_7c1e9a40b2d35f86e0a4c912",
          "caption": "John Q. Exampleton",
          "datasets": ["PEP"],
          "match_score": 96,
          "risk_score": 85,
          "score": 0.97,
          "match": false,
          "target": null,
          "review_status": "Unreviewed",
          "properties": {
            "name": ["John Q. Exampleton"],
            "alias": ["Johnny Example"],
            "birthDate": ["1974"],
            "birthPlace": ["Springfield"]
          },
          "score_breakdown": {
            "name_score": 95,
            "name_weight": 60,
            "name_weight_normalized": 70.59,
            "name_contribution": 67.06,
            "dob_score": 100,
            "dob_weight": 25,
            "dob_weight_normalized": 29.41,
            "dob_contribution": 29.41,
            "country_score": 0,
            "country_weight": 15,
            "country_weight_normalized": 0,
            "country_contribution": 0,
            "document_number_match_type": "NEUTRAL",
            "document_number_effect": "No document number provided for screening",
            "total_score": 96
          },
          "pep_matches": [
            {
              "list_name": "Example PEP Registry",
              "publisher": "Example Registry",
              "matched_name": "John Q. Exampleton",
              "pep_position": "Regional council member",
              "date_of_birth": "1974-01-01",
              "place_of_birth": "Springfield",
              "source_url": "https://example.org/registry/entities/Q0000001"
            }
          ],
          "sanction_matches": [],
          "warning_matches": [],
          "adverse_media_matches": [
            {
              "country": "freedonia",
              "headline": "Court opens inquiry into council hiring irregularities",
              "summary": "John Q. Exampleton is named in a legal investigation regarding irregularities in public hiring.",
              "sentiment": "moderately negative",
              "sentiment_score": -2,
              "source_url": "https://example-news.org/articles/12345",
              "publication_date": "2025-06-09T10:19:10",
              "adverse_keywords": ["fraud", "irregularities"]
            }
          ],
          "adverse_media_details": {
            "sentiment": "Moderately Negative",
            "sentiment_score": -2,
            "entity_type": "person",
            "adverse_keywords": { "fraud": 3, "corruption": 2 }
          },
          "risk_view": {
            "categories": { "score": 100.0, "weightage": 50, "risk_level": "High", "risk_scores": { "PEP": 100.0 } },
            "countries":  { "score": 0.0,   "weightage": 30, "risk_level": "Low",  "risk_scores": {} },
            "crimes":     { "score": 0.0,   "weightage": 20, "risk_level": "Low",  "risk_scores": {} },
            "custom_list": {}
          },
          "linked_entities": [
            { "name": ["Mary Exampleton"], "relation": [], "details": [], "active": [], "status": [] }
          ],
          "first_seen": "2025-01-18T00:00:00",
          "last_seen": "2025-06-13T00:00:00"
        }
      ],
      "screened_data": {
        "full_name": "John Q. Exampleton",
        "nationality": "US",
        "date_of_birth": "1974-01-01",
        "document_number": null
      },
      "is_ongoing_monitoring_enabled": true,
      "next_ongoing_monitoring_bill_date": "2027-05-17",
      "warnings": [
        {
          "feature": "AML",
          "risk": "POSSIBLE_MATCH_FOUND",
          "additional_data": null,
          "log_type": "warning",
          "short_description": "Possible match found in AML screening",
          "long_description": "The Anti-Money Laundering (AML) screening process identified potential matches with watchlists or high-risk databases, requiring further review.",
          "node_id": "aml-1"
        }
      ]
    }
  ]
}
```

## Verwandte Themen

* [AML-Warnungen](https://docs.didit.me/de/core-technology/aml-screening/warnings-aml-screening.md) – alle Warncodes, die AML ausgeben kann
* [AML-Risiko-Score](https://docs.didit.me/de/core-technology/aml-screening/aml-risk-score.md) und [AML-Übereinstimmungswert](https://docs.didit.me/de/core-technology/aml-screening/aml-match-score.md) – wie die beiden Scores berechnet werden
* [Laufende AML-Überwachung](https://docs.didit.me/de/core-technology/aml-screening/continuous-monitoring-aml-screening.md) – Aktivieren und Verarbeiten von Überwachungsereignissen
* [Beobachtungslisten-Datenbank](https://docs.didit.me/de/core-technology/aml-screening/watchlist-database-aml-screening.md) – abgedeckte Datensätze
* [Datenmodelle – AML-Screening](https://docs.didit.me/de/reference/data-models.md#aml-screening) – kanonisches Schema
* [Webhooks](https://docs.didit.me/de/integration/webhooks.md) – `status.updated` wird ausgelöst, wenn AML den Sitzungsstatus ändert; Änderungen des Prüfstatus von Treffern und Aktualisierungen der Überwachungsdaten lösen `data.updated` aus


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