> ## 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-Treffer-Status per API aktualisieren | Didit

> Mit der Didit API AML-Treffer als bestätigte Übereinstimmung, falsch positiv oder nicht eindeutig markieren – einzeln oder gesammelt.



Prompt zum Aktualisieren des AML-Trefferstatus
        Prompt in die Zwischenablage kopieren



      
      

\<pre>

\`Set the review status (disposition) of AML screening hits on a Didit session — one hit, or many at once.

AML screening returns a list of HITS (potential sanction / PEP / watchlist / adverse-media matches). Each hit carries a review_status you can change to record your compliance decision. This does NOT change the overall session decision.

Two endpoints:

1\) Single hit
PATCH https://verification.didit.me/v3/session/{session_id}/update-aml-hit-status/
Body:
\- hit_id (string, required) — the "id" of the hit in the AML check's "hits" array (see GET /v3/session/{id}/decision/), for example "hit_7c1e9a40b2d35f86e0a4c912". A hit id returned in the earlier format is still accepted; the response always returns the current "id".
\- review_status (string, required) — one of "Unreviewed", "Confirmed Match", "False Positive", "Inconclusive".
\- node_id (string, optional) — graph node ID, only if the session has multiple AML checks.

2\) Bulk
PATCH https://verification.didit.me/v3/session/{session_id}/bulk-update-aml-hit-status/
Body:
\- hit_updates (array, required) — list of { "hit_id": "...", "review_status": "..." }.
\- node_id (string, optional).
All-or-nothing: if any hit_id is missing, returns 404 and nothing changes.

Authentication:
x-api-key (client API key) or a user-auth token. Privilege: write:sessions.

Status values:
\- Unreviewed — default for hits at/above the match threshold; still needs review.
\- Confirmed Match — a true match.
\- False Positive — not the same entity; default for hits below the match threshold.
\- Inconclusive — could not determine.

Reviewer decisions are PRESERVED across ongoing-monitoring re-screens.

curl — clear one hit as a false positive:
curl -X PATCH https://verification.didit.me/v3/session/<SESSION_ID>/update-aml-hit-status/ \
-H "x-api-key: <API_KEY>" \
-H "Content-Type: application/json" \
-d '{ "hit_id": "hit_7c1e9a40b2d35f86e0a4c912", "review_status": "False Positive" }'

curl — bulk:
curl -X PATCH https://verification.didit.me/v3/session/<SESSION_ID>/bulk-update-aml-hit-status/ \
-H "x-api-key: <API_KEY>" \
-H "Content-Type: application/json" \
-d '{ "hit_updates": [ { "hit_id": "hit_7c1e9a40b2d35f86e0a4c912", "review_status": "Confirmed Match" }, { "hit_id": "hit_3b8f20d6a91c4e75f0b2d6a8", "review_status": "False Positive" } ] }'

Side effects:
\- Fires a data.updated webhook.
\- Appends an activity entry (with actor attribution) to the session review trail.

Failure modes:
\- 400 — review_status not a valid value, hit_id empty, or hit_updates empty.
\- 403 — missing credentials (a wrong, revoked or expired key gets 401), or the caller lacks write:sessions.
\- 404 — session not found, no AML check, or a hit_id was not found.

Related: to change the overall AML step status (Approved/Declined/In Review) use PATCH /v3/session/{id}/features/{node_id}/update-status/ (see /sessions-api/update-feature-status).

For end-to-end Didit integration, paste in the full prompt at /integration/integration-prompt.`

\</pre>



      
      

Einfügen in

## Was dieser Endpoint bewirktDas AML-Screening liefert eine Liste von **Treffern**, also möglichen Übereinstimmungen mit Sanktionslisten, PEP-Datenbanken, Beobachtungslisten und negativen Medienberichten. Jeder Treffer hat ein `review_status` (seine Bewertung), das je nach Übereinstimmungswert als `Unreviewed` oder `False Positive` beginnt. Über diesen Endpoint kann Ihr Team (oder Ihre Automatisierung) für jeden Treffer eine Entscheidung festhalten, ohne die Gesamtentscheidung der Sitzung zu ändern.Die Treffer und ihre IDs finden Sie in der [Sitzungsentscheidung](https://docs.didit.me/de/sessions-api/retrieve-session.md), im Array `hits` der AML-Prüfung. Die `id` jedes Treffers ist die `hit_id`, die Sie hier übergeben.Eine Treffer-`id` besteht aus `hit_` gefolgt von 24 hexadezimalen Zeichen und bleibt bei einer erneuten Prüfung der Person bzw. Entität gleich. Eine Treffer-ID im früheren Format wird weiterhin akzeptiert. Die Antwort nennt den Treffer immer über seine aktuelle `id`.## Prüfstatus| `review_status` | Bedeutung |
| - | - |
| `Unreviewed` | Standardwert für Treffer mit einem Übereinstimmungswert am oder über dem Schwellenwert, für die noch eine Entscheidung erforderlich ist. |
| `Confirmed Match` | Eine echte Übereinstimmung mit der geprüften Person bzw. Entität. |
| `False Positive` | Es handelt sich nicht um dieselbe Entität. Standardwert für Treffer unterhalb des Schwellenwerts. |
| `Inconclusive` | Konnte nicht eindeutig bestimmt werden. |> [!NOTE]
>
> Entscheidungen der Prüfer bleiben bei erneuten Prüfungen im Rahmen der **laufenden Überwachung** **erhalten**. Ein Treffer, den Sie als `False Positive` markieren, behält diesen Status, wenn der Anbieter die Entität erneut prüft.## Einen einzelnen Treffer aktualisieren**`PATCH /v3/session/{sessionId}/update-aml-hit-status/`**```bash theme={null}
curl -X PATCH https://verification.didit.me/v3/session/4c5c7f3a-.../update-aml-hit-status/ \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "hit_id": "hit_7c1e9a40b2d35f86e0a4c912",
    "review_status": "False Positive"
  }'
```Bei einer Sitzung mit mehreren AML-Prüfungen (Graph-Workflows) hängen Sie `?node_id=feature_aml_1` an die URL an oder fügen `"node_id"` in den Body ein, um eine bestimmte Prüfung anzusprechen.## Mehrere Treffer gleichzeitig aktualisieren**`PATCH /v3/session/{sessionId}/bulk-update-aml-hit-status/`**Übergeben Sie `hit_updates`, eine Liste von `{ hit_id, review_status }`-Paaren. Der Vorgang folgt dem **Alles-oder-nichts-Prinzip**: Wenn eine `hit_id` nicht gefunden wird, gibt die Anfrage `404` zurück, und es wird kein Treffer geändert.```bash theme={null}
curl -X PATCH https://verification.didit.me/v3/session/4c5c7f3a-.../bulk-update-aml-hit-status/ \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "hit_updates": [
      { "hit_id": "hit_7c1e9a40b2d35f86e0a4c912", "review_status": "Confirmed Match" },
      { "hit_id": "hit_3b8f20d6a91c4e75f0b2d6a8", "review_status": "False Positive" }
    ]
  }'
```Ein erfolgreicher Bulk-Aufruf löst einen einzigen `data.updated`-Webhook aus und erfasst einen einzigen Aktivitätseintrag, der alle Änderungen umfasst.## Was nach einer Aktualisierung passiert- **Webhook**: Für die Sitzung wird ein Ereignis `data.updated` ausgelöst.
- **Prüfpfad**: Die Änderung wird im Prüfpfad der Sitzung zusammen mit dem Akteur (API-Schlüssel oder Benutzer) erfasst und ist in der Aktivitäts-Timeline der Konsole sichtbar.
- **Der Gesamtstatus des AML-Schritts bleibt unverändert**: Die Änderung der Bewertung eines Treffers ändert für sich genommen weder den Status des AML-Schritts noch die Entscheidung der Sitzung. Um den Status des AML-**Schritts** zu ändern (`Approved` / `Declined` / `In Review`), verwenden Sie [Feature-Status aktualisieren](https://docs.didit.me/de/sessions-api/update-feature-status.md). Um die Entscheidung der **Sitzung** zu ändern, verwenden Sie [Status aktualisieren](https://docs.didit.me/de/sessions-api/update-status.md).## Unterstützung für KYC und KYBDer Endpoint funktioniert sowohl für **Benutzerverifizierung (KYC)** als auch für **Unternehmensverifizierung (KYB)**. Didit löst die `sessionId` in beiden Fällen auf. Bei KYB läuft das AML-Screening für das Unternehmen und seine Schlüsselpersonen, und jede AML-Prüfung stellt ihre eigenen Treffer bereit.## BerechtigungErforderlich ist die Berechtigung `write:sessions`, und zwar entweder mit einem Client-API-Schlüssel (`x-api-key`) oder mit einem Autorisierungs-Header für Benutzer.## Fehler| Status | Bedeutung |
| - | - |
| `400` | `review_status` ist kein gültiger Wert, `hit_id` ist leer oder `hit_updates` ist leer. |
| `403` | Anmeldedaten fehlen oder sind ungültig, oder dem Aufrufer fehlt `write:sessions`. |
| `404` | Sitzung nicht gefunden, die Sitzung hat keine AML-Prüfung, oder eine `hit_id` wurde nicht gefunden (bei Bulk-Aufrufen wird nichts geändert). |## Verwandte Seiten- [Feature-Status aktualisieren](https://docs.didit.me/de/sessions-api/update-feature-status.md): den Status des AML-**Schritts** (oder eines anderen Schritts) ändern.
- [Sitzungsstatus aktualisieren](https://docs.didit.me/de/sessions-api/update-status.md): die Gesamtentscheidung der Sitzung ändern.
- [Sitzung abrufen](https://docs.didit.me/de/sessions-api/retrieve-session.md): die AML-`hits` und ihre IDs lesen.
- [AML-Screening](https://docs.didit.me/de/standalone-apis/aml-screening.md): wie Screening und Scoring funktionieren.


## OpenAPI

````yaml de/openapi-25.json PATCH /v3/session/{sessionId}/update-aml-hit-status/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: API für Ausweisverifizierung. Authentifizierung über den x-api-key-Header.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/session/{sessionId}/update-aml-hit-status/:
    patch:
      tags:
        - Sessions
      summary: Prüfungsstatus eines AML-Treffers aktualisieren
      description: >-
        Legen Sie den Prüfungsstatus eines **einzelnen AML-Treffers** fest (eine
        potenzielle Übereinstimmung mit Sanktionen / PEP / Beobachtungsliste /
        negativen Medienberichten), der durch das AML-Screening zurückgegeben
        wurde, ohne die übergeordnete Sitzungsentscheidung zu ändern.
        Identifizieren Sie den Treffer anhand seiner `hit_id` (die `id` eines
        Eintrags im `hits`-Array der AML-Prüfung — siehe Sitzungsentscheidung).
        Eine im früheren Format zurückgegebene Treffer-ID wird weiterhin
        akzeptiert; die Antwort benennt den Treffer immer anhand seiner
        aktuellen `id`.


        `review_status` ist einer der Werte `Unreviewed`, `Confirmed Match`,
        `False Positive` oder `Inconclusive`. Entscheidungen des Prüfers bleiben
        über Aktualisierungen der laufenden Überwachung hinweg erhalten, sodass
        ein von Ihnen als `False Positive` markierter Treffer so bleibt, wenn
        der Anbieter ein erneutes Screening durchführt.


        Ein erfolgreicher Aufruf löst einen `data.updated`-Webhook aus und hängt
        einen Aktivitätseintrag (mit Akteurszuordnung) an den Prüfpfad der
        Sitzung an. Übergeben Sie bei Graph-Workflows mit mehreren AML-Prüfungen
        `node_id`, um eine bestimmte Prüfung anzusteuern.


        Authentifizieren Sie sich mit Ihrem API-Schlüssel (`x-api-key`) oder
        einem Benutzer-Autorisierungs-Header — beide müssen die Berechtigung
        `write:sessions` enthalten.
      operationId: patch_v3_session_update_aml_hit_status
      parameters:
        - in: path
          name: sessionId
          required: true
          description: >-
            UUID der Verifizierungssitzung. Akzeptiert sowohl Benutzer- (KYC)
            als auch Unternehmens- (KYB) Sitzungs-IDs — der Dienst löst die ID
            über beide Sitzungstypen hinweg auf.
          schema:
            type: string
            format: uuid
            example: 11111111-2222-3333-4444-555555555555
        - in: query
          name: node_id
          required: false
          description: >-
            Workflow-Graph-Knoten-ID. Nur erforderlich, wenn die Sitzung mehrere
            AML-Prüfungen umfasst (eine pro Knoten); bei Sitzungen mit einer
            einzigen AML-Prüfung weglassen.
          schema:
            type: string
            example: feature_aml_1
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - hit_id
                - review_status
              properties:
                hit_id:
                  type: string
                  description: >-
                    Die `id` des Treffers im `hits`-Array der AML-Prüfung
                    (`hit_...`). Eine Treffer-ID, die im früheren Format
                    zurückgegeben wurde, wird weiterhin akzeptiert.
                  example: hit_7c1e9a40b2d35f86e0a4c912
                review_status:
                  type: string
                  description: Der neue Prüfstatus für den Treffer.
                  enum:
                    - Unreviewed
                    - Confirmed Match
                    - False Positive
                    - Inconclusive
                  example: False Positive
                node_id:
                  type: string
                  description: >-
                    Optionale Graph-Knoten-ID. Verwenden Sie diese (hier oder
                    als Abfrageparameter), wenn die Sitzung mehrere
                    AML-Prüfungen umfasst.
                  example: feature_aml_1
            example:
              hit_id: hit_7c1e9a40b2d35f86e0a4c912
              review_status: False Positive
      responses:
        '200':
          description: Hit-Prüfstatus aktualisiert.
          content:
            application/json:
              schema:
                type: object
                required:
                  - message
                  - hit_id
                  - review_status
                properties:
                  message:
                    type: string
                    description: Immer `Hit status updated successfully`.
                  hit_id:
                    type: string
                    description: >-
                      Die `id` des aktualisierten Treffers, wie von der
                      Sitzungsentscheidung zurückgegeben, auch wenn die Anfrage
                      den Treffer über eine ID im früheren Format benannt hat.
                  review_status:
                    type: string
                    enum:
                      - Unreviewed
                      - Confirmed Match
                      - False Positive
                      - Inconclusive
                    description: Der Prüfstatus, der jetzt für den Treffer gespeichert ist.
              example:
                message: Hit status updated successfully
                hit_id: hit_7c1e9a40b2d35f86e0a4c912
                review_status: False Positive
        '400':
          description: >-
            Validierungsfehler – `hit_id` ist leer oder `review_status` ist
            keiner der zulässigen Werte.
          content:
            application/json:
              example:
                review_status:
                  - '"Maybe" is not a valid choice.'
        '403':
          description: >-
            Fehlende Anmeldedaten oder unzureichende Berechtigungen. Ein
            fehlender Schlüssel führt zu einer `403`-Antwort; ein falscher,
            widerrufener oder abgelaufener Schlüssel führt zu einer
            `401`-Antwort.
          content:
            application/json:
              examples:
                Invalid Credentials:
                  summary: Fehlender oder ungültiger x-api-key
                  value:
                    detail: >-
                      Authentication credentials were not provided or are
                      invalid.
                Missing Privilege:
                  summary: Dem API-Schlüssel fehlt die Berechtigung write:sessions
                  value:
                    detail: You do not have permission to perform this action.
        '404':
          description: >-
            Die Sitzung wurde nicht gefunden, die Sitzung verfügt über keine
            AML-Prüfung (optional für die angegebene `node_id`), oder kein
            Treffer entspricht `hit_id`.
          content:
            application/json:
              examples:
                No AML Check:
                  summary: Sitzung hat keine AML-Prüfung
                  value:
                    detail: The session does not have an AML check.
                Hit Not Found:
                  summary: Unbekannte hit_id
                  value:
                    detail: >-
                      Hit with ID 'hit_9d2e7f41c0a8b3e65d1f0c47' not found in
                      the AML check.
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: |-
            curl -X PATCH \
              https://verification.didit.me/v3/session/11111111-2222-3333-4444-555555555555/update-aml-hit-status/ \
              -H 'x-api-key: YOUR_API_KEY' \
              -H 'Content-Type: application/json' \
              -d '{
                "hit_id": "abc123",
                "review_status": "False Positive"
              }'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.sessions.update_aml_hit_status(
                "11111111-2222-3333-4444-555555555555",
                hit_id="hit_7c1e9a40b2d35f86e0a4c912",
                review_status="False Positive",
            )
            print(result)
        - lang: javascript
          label: Node.js
          source: >-
            import Didit from "@didit-protocol/sdk-node";


            // Reads DIDIT_API_KEY.

            const didit = new Didit();


            const result = await
            didit.sessions.updateAmlHitStatus("11111111-2222-3333-4444-555555555555",
            {
              hit_id: "hit_7c1e9a40b2d35f86e0a4c912",
              review_status: "False Positive",
            });

            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.Sessions.UpdateAMLHitStatus(ctx, \"11111111-2222-3333-4444-555555555555\", didit.SessionsUpdateAMLHitStatusParams{\n\tHitID:        \"hit_7c1e9a40b2d35f86e0a4c912\",\n\tReviewStatus: \"False Positive\",\n})\nif err != nil {\n\tlog.Fatal(err)\n}\nfmt.Printf(\"%+v\\n\", result)"
        - lang: java
          label: Java
          source: >-
            import me.didit.Didit;

            import me.didit.types.SessionsUpdateAmlHitStatusParams;


            // Reads DIDIT_API_KEY.

            Didit client = new Didit();


            var result =
            client.sessions().updateAmlHitStatus("11111111-2222-3333-4444-555555555555",
            SessionsUpdateAmlHitStatusParams.builder()
                    .hitId("hit_7c1e9a40b2d35f86e0a4c912")
                    .reviewStatus(SessionsUpdateAmlHitStatusParams.ReviewStatus.of("False Positive"))
                    .build());
            System.out.println(result);
        - lang: php
          label: PHP
          source: >-
            <?php


            require 'vendor/autoload.php';


            use Didit\DiditClient;


            // Reads DIDIT_API_KEY.

            $didit = new DiditClient();


            $result =
            $didit->sessions->updateAmlHitStatus('11111111-2222-3333-4444-555555555555',
            [
                'hit_id' => 'hit_7c1e9a40b2d35f86e0a4c912',
                'review_status' => 'False Positive',
            ]);

            print_r($result->toArray());
        - lang: ruby
          label: Ruby
          source: |-
            require "didit"

            # Reads DIDIT_API_KEY.
            didit = Didit::Client.new

            result = didit.sessions.update_aml_hit_status(
              "11111111-2222-3333-4444-555555555555",
              hit_id: "hit_7c1e9a40b2d35f86e0a4c912",
              review_status: "False Positive"
            )
            puts result.to_h
        - lang: csharp
          label: .NET
          source: >-
            using System;

            using System.Text.Json;

            using Didit;


            // Reads DIDIT_API_KEY.

            using var client = new DiditClient();


            var result = await
            client.Sessions.UpdateAmlHitStatusAsync("11111111-2222-3333-4444-555555555555",
            new SessionsUpdateAmlHitStatusParams

            {
                HitId = "hit_7c1e9a40b2d35f86e0a4c912",
                ReviewStatus = "False Positive",
            });

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        Der API-Schlüssel Ihrer Anwendung, aus Entwickler -> API-Schlüssel in
        der Business Console. Der Primärschlüssel hat Vollzugriff. Ein benannter
        Schlüssel kann im Geltungsbereich eingeschränkt werden: keine, Lese-
        oder Schreibberechtigung pro Ressource, beschränkt auf bestimmte
        Workflows oder genehmigte Sitzungen, auf eine Liste von IP-Adressen und
        auf ein Ablaufdatum. 401 bedeutet, dass der Schlüssel falsch, widerrufen
        oder abgelaufen ist; 403 bedeutet, dass kein Schlüssel gesendet wurde,
        der Schlüssel keinen Zugriff auf diese Ressource oder Aktion hat oder
        die Anfrage von einer Adresse außerhalb seiner IP-Liste stammte; 404 bei
        einer Sitzungsroute bedeutet, dass die Sitzung außerhalb der Workflows
        oder Status des Schlüssels liegt. Ein Schlüssel ohne Medienzugriff
        erhält Bild-, Video- und PDF-URLs als null, und ein Schlüssel ohne
        Schreibberechtigung für Sitzungen erhält Sitzungslinks und Token als
        null. Siehe https://docs.didit.me/console/api-keys.

````

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