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

# API Update Status Hit AML: Konfirmasi & Tandai Kecocokan

> Tandai hit skrining AML sebagai Kecocokan Terkonfirmasi, Positif Palsu, atau Tidak Meyakinkan, satu per satu atau massal, langsung dari API Didit.



Prompt Pembaruan Status Hit AML
        Salin prompt ke papan klip



      
      

\<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>



      
      

Tempel ke

## Fungsi iniSkrining AML menghasilkan daftar **hit**, yaitu kecocokan potensial dengan daftar sanksi, database PEP, daftar pantauan, dan media negatif. Setiap hit memiliki `review_status` (keputusannya) yang awalnya bernilai `Unreviewed` atau `False Positive`, bergantung pada skor kecocokan. Endpoint ini memungkinkan tim Anda (atau otomatisasi Anda) mencatat keputusan untuk setiap hit tanpa mengubah keputusan sesi secara keseluruhan.Temukan hit beserta ID-nya di [keputusan sesi](https://docs.didit.me/id/sessions-api/retrieve-session.md), yaitu array `hits` pada pemeriksaan AML. Di sana, `id` setiap hit adalah `hit_id` yang Anda kirimkan ke endpoint ini.Format `id` hit adalah `hit_` diikuti 24 karakter heksadesimal, dan tetap sama saat subjek diskrining ulang. id hit dalam format sebelumnya masih diterima. Respons selalu menyebut hit dengan `id` terkini.## Status tinjauan| `review_status` | Arti |
| - | - |
| `Unreviewed` | Nilai default untuk hit yang berada pada atau di atas ambang batas kecocokan. Hit ini masih memerlukan keputusan. |
| `Confirmed Match` | Kecocokan sebenarnya untuk individu atau entitas yang diskrining. |
| `False Positive` | Bukan entitas yang sama. Nilai default untuk hit yang berada di bawah ambang batas kecocokan. |
| `Inconclusive` | Tidak dapat ditentukan. |> [!NOTE]
>
> Keputusan peninjau **dipertahankan selama skrining ulang pemantauan berkelanjutan**. Hit yang Anda tandai `False Positive` tetap memiliki status tersebut saat penyedia melakukan skrining ulang terhadap entitas.## Perbarui satu hit**`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"
  }'
```Untuk sesi dengan beberapa pemeriksaan AML (alur kerja graf), tambahkan `?node_id=feature_aml_1` ke URL atau sertakan `"node_id"` di isi permintaan untuk menargetkan pemeriksaan tertentu.## Perbarui banyak hit sekaligus**`PATCH /v3/session/{sessionId}/bulk-update-aml-hit-status/`**Kirimkan `hit_updates`, yaitu daftar pasangan `{ hit_id, review_status }`. Operasi ini bersifat **semua atau tidak sama sekali**: jika ada `hit_id` yang tidak ditemukan, permintaan mengembalikan `404` dan tidak ada hit yang diubah.```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" }
    ]
  }'
```Panggilan massal yang berhasil memicu satu webhook `data.updated` dan mencatat satu entri aktivitas yang mencakup semua perubahan.## Yang terjadi setelah pembaruan- **Webhook**: event `data.updated` dipicu pada sesi.
- **Jejak audit**: perubahan dicatat pada jejak tinjauan sesi beserta pelakunya (kunci API atau pengguna), dan dapat dilihat di linimasa aktivitas konsol.
- **Status langkah AML keseluruhan tidak berubah**: mengubah keputusan sebuah hit tidak dengan sendirinya mengubah status langkah AML atau keputusan sesi. Untuk mengubah status **langkah** AML (`Approved` / `Declined` / `In Review`), gunakan [update-feature-status](https://docs.didit.me/id/sessions-api/update-feature-status.md). Untuk mengubah keputusan **sesi**, gunakan [update-status](https://docs.didit.me/id/sessions-api/update-status.md).## Dukungan KYC dan KYBEndpoint ini berlaku untuk sesi **Verifikasi Pengguna (KYC)** dan **Verifikasi Bisnis (KYB)**. Didit menemukan `sessionId` di kedua jenis sesi tersebut. Untuk KYB, skrining AML dijalankan pada perusahaan dan pihak kunci, dan setiap pemeriksaan AML menampilkan hit masing-masing.## IzinMemerlukan izin `write:sessions`, dengan kunci API klien (`x-api-key`) atau header otorisasi pengguna.## Kesalahan| Status | Arti |
| - | - |
| `400` | `review_status` bukan nilai yang valid, `hit_id` kosong, atau `hit_updates` kosong. |
| `403` | Kredensial tidak ada atau tidak valid, atau pemanggil tidak memiliki izin `write:sessions`. |
| `404` | Sesi tidak ditemukan, sesi tidak memiliki pemeriksaan AML, atau `hit_id` tidak ditemukan (pada pembaruan massal: tidak ada yang diubah). |## Terkait- [Perbarui status fitur](https://docs.didit.me/id/sessions-api/update-feature-status.md): mengubah status **langkah** AML (atau langkah lain mana pun).
- [Perbarui status sesi](https://docs.didit.me/id/sessions-api/update-status.md): mengubah keputusan sesi secara keseluruhan.
- [Ambil sesi](https://docs.didit.me/id/sessions-api/retrieve-session.md): membaca `hits` AML beserta ID-nya.
- [Skrining AML](https://docs.didit.me/id/standalone-apis/aml-screening.md): cara kerja skrining dan penilaian.


## OpenAPI

````yaml id/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 Verifikasi Identitas. Lakukan autentikasi dengan header x-api-key.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/session/{sessionId}/update-aml-hit-status/:
    patch:
      tags:
        - Sessions
      summary: Perbarui status peninjauan hit AML
      description: >-
        Tetapkan status peninjauan untuk **satu hit AML** (potensi kecocokan
        sanksi / PEP / daftar pantauan / media negatif) yang dikembalikan oleh
        Skrining AML, tanpa mengubah keputusan sesi secara keseluruhan.
        Identifikasi hit berdasarkan `hit_id`-nya (`id` dari sebuah entri dalam
        array `hits` pada pemeriksaan AML — lihat keputusan sesi). ID hit yang
        dikembalikan dalam format sebelumnya masih diterima; respons selalu
        menamai hit berdasarkan `id` saat ini.


        `review_status` adalah salah satu dari `Unreviewed`, `Confirmed Match`,
        `False Positive`, atau `Inconclusive`. Keputusan peninjau dipertahankan
        di seluruh pembaruan pemantauan berkelanjutan, sehingga hit yang Anda
        tandai `False Positive` tetap seperti itu saat penyedia melakukan
        skrining ulang.


        Panggilan yang berhasil memicu webhook `data.updated` dan menambahkan
        entri aktivitas (dengan atribusi pelaku) ke jejak peninjauan sesi. Untuk
        alur kerja graf dengan beberapa pemeriksaan AML, teruskan `node_id`
        untuk menargetkan pemeriksaan tertentu.


        Lakukan autentikasi dengan kunci API Anda (`x-api-key`) atau header
        otorisasi pengguna — keduanya harus memiliki hak istimewa
        `write:sessions`.
      operationId: patch_v3_session_update_aml_hit_status
      parameters:
        - in: path
          name: sessionId
          required: true
          description: >-
            UUID sesi verifikasi. Menerima ID sesi pengguna (KYC) dan bisnis
            (KYB) — layanan mencari ID tersebut di kedua jenis sesi.
          schema:
            type: string
            format: uuid
            example: 11111111-2222-3333-4444-555555555555
        - in: query
          name: node_id
          required: false
          description: >-
            ID node graf alur kerja. Hanya diperlukan jika sesi memiliki
            beberapa pemeriksaan AML (satu per node); abaikan untuk sesi dengan
            AML tunggal.
          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: >-
                    `id` dari hit dalam array `hits` pemeriksaan AML
                    (`hit_...`). ID hit yang dikembalikan dalam format
                    sebelumnya masih diterima.
                  example: hit_7c1e9a40b2d35f86e0a4c912
                review_status:
                  type: string
                  description: Status peninjauan baru untuk temuan tersebut.
                  enum:
                    - Unreviewed
                    - Confirmed Match
                    - False Positive
                    - Inconclusive
                  example: False Positive
                node_id:
                  type: string
                  description: >-
                    ID node graf opsional. Gunakan ID ini (di sini atau sebagai
                    parameter kueri) saat sesi memiliki beberapa pemeriksaan
                    AML.
                  example: feature_aml_1
            example:
              hit_id: hit_7c1e9a40b2d35f86e0a4c912
              review_status: False Positive
      responses:
        '200':
          description: Status peninjauan hit diperbarui.
          content:
            application/json:
              schema:
                type: object
                required:
                  - message
                  - hit_id
                  - review_status
                properties:
                  message:
                    type: string
                    description: Selalu `Hit status updated successfully`.
                  hit_id:
                    type: string
                    description: >-
                      `id` dari hit yang diperbarui, sebagaimana dikembalikan
                      oleh keputusan sesi, juga saat permintaan menyebutkan hit
                      berdasarkan id dalam format sebelumnya.
                  review_status:
                    type: string
                    enum:
                      - Unreviewed
                      - Confirmed Match
                      - False Positive
                      - Inconclusive
                    description: >-
                      Status peninjauan yang sekarang disimpan pada hasil
                      kecocokan.
              example:
                message: Hit status updated successfully
                hit_id: hit_7c1e9a40b2d35f86e0a4c912
                review_status: False Positive
        '400':
          description: >-
            Kesalahan validasi — `hit_id` kosong atau `review_status` bukan
            salah satu dari nilai yang diizinkan.
          content:
            application/json:
              example:
                review_status:
                  - '"Maybe" is not a valid choice.'
        '403':
          description: >-
            Kredensial tidak ada atau izin tidak mencukupi. Kunci yang tidak ada
            mengembalikan `403`; kunci yang salah, dicabut, atau kedaluwarsa
            mengembalikan `401`.
          content:
            application/json:
              examples:
                Invalid Credentials:
                  summary: x-api-key tidak ada atau tidak valid
                  value:
                    detail: >-
                      Authentication credentials were not provided or are
                      invalid.
                Missing Privilege:
                  summary: Kunci API tidak memiliki write:sessions
                  value:
                    detail: You do not have permission to perform this action.
        '404':
          description: >-
            Sesi tidak ditemukan, sesi tidak memiliki pemeriksaan AML (opsional
            untuk `node_id` yang diberikan), atau tidak ada kecocokan dengan
            `hit_id`.
          content:
            application/json:
              examples:
                No AML Check:
                  summary: Sesi tidak memiliki pemeriksaan AML
                  value:
                    detail: The session does not have an AML check.
                Hit Not Found:
                  summary: hit_id tidak dikenal
                  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: >-
        Kunci API aplikasi Anda, dari Developers -> API keys di Business
        Console. Kunci utama memiliki akses penuh. Kunci bernama dapat diberi
        cakupan: none, read, atau write per sumber daya, dibatasi pada beberapa
        alur kerja atau pada sesi yang disetujui, pada daftar alamat IP, dan
        pada tanggal kedaluwarsa. 401 berarti kuncinya salah, dicabut, atau
        kedaluwarsa; 403 berarti tidak ada kunci yang dikirimkan, kunci tidak
        memiliki akses ke sumber daya atau tindakan ini, atau permintaan datang
        dari alamat di luar daftar IP-nya; 404 pada rute sesi berarti sesi
        berada di luar alur kerja atau status kunci tersebut. Kunci tanpa akses
        media menerima URL gambar, video, dan PDF sebagai null, dan kunci tanpa
        izin tulis sesi menerima tautan sesi dan token sebagai null. Lihat
        https://docs.didit.me/console/api-keys.

````

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