> ## 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ヒットステータス更新API：一致の確定と解除

> DiditのAPIで、AMLスクリーニングの各ヒットを「一致確定」「誤検知」「判断保留」に個別または一括で更新できます。



AMLヒットステータス更新プロンプト
        プロンプトをクリップボードにコピー



      
      

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



      
      

貼り付け先

## このエンドポイントでできることAMLスクリーニングは**ヒット**のリストを返します。ヒットとは、制裁リスト、PEPデータベース、ウォッチリスト、ネガティブメディアとの一致の可能性がある項目です。各ヒットには`review_status`（レビュー状況）があり、一致スコアに応じて`Unreviewed`または`False Positive`のいずれかで始まります。このエンドポイントを使うと、セッション全体の判定を変更せずに、チーム（または自動化処理）が各ヒットに対する判定を記録できます。ヒットとそのIDは[セッションの判定](https://docs.didit.me/ja/sessions-api/retrieve-session.md)で確認できます。AMLチェックの`hits`配列に含まれており、各ヒットの`id`がここで渡す`hit_id`です。ヒットの`id`は`hit_`に続く24文字の16進数で構成され、対象が再スクリーニングされても変わりません。以前の形式で返されたヒットIDも引き続き受け付けられます。レスポンスでは常に現在の`id`でヒットを示します。## レビューステータス| `review_status` | 意味 |
| - | - |
| `Unreviewed` | 一致しきい値以上のヒットのデフォルト。まだ判定が必要です。 |
| `Confirmed Match` | スクリーニング対象の個人・法人との真の一致です。 |
| `False Positive` | 同一の対象ではありません。一致しきい値未満のヒットのデフォルトです。 |
| `Inconclusive` | 判断できませんでした。 |> [!NOTE]
>
> レビュアーの判定は**継続的なモニタリングによる再スクリーニングでも保持されます**。`False Positive`とマークしたヒットは、プロバイダーが対象を再スクリーニングしてもそのステータスを維持します。## 単一ヒットの更新**`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"
  }'
```複数のAMLチェックを含むセッション（グラフワークフロー）では、URLに`?node_id=feature_aml_1`を追加するか、リクエストボディに`"node_id"`を含めて、対象のチェックを指定します。## 複数ヒットの一括更新**`PATCH /v3/session/{sessionId}/bulk-update-aml-hit-status/`**`hit_updates`に、`{ hit_id, review_status }`のペアのリストを渡します。この操作は**オールオアナッシング**です。いずれかの`hit_id`が見つからない場合、リクエストは`404`を返し、どのヒットも変更されません。```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" }
    ]
  }'
```一括呼び出しが成功すると、`data.updated`のWebhookが1回だけ送信され、すべての変更をまとめた1件のアクティビティが記録されます。## 更新後に発生すること- **Webhook**：セッションで`data.updated`イベントが発生します。
- **監査証跡**：変更は実行者（APIキーまたはユーザー）とともにセッションのレビュー履歴に記録され、コンソールのアクティビティタイムラインで確認できます。
- **AMLステップ全体のステータスは変わりません**：ヒットの処理結果を変更しても、それだけではAMLステップのステータスやセッションの判定は変わりません。AML**ステップ**のステータス（`Approved` / `Declined` / `In Review`）を変更するには[update-feature-status](https://docs.didit.me/ja/sessions-api/update-feature-status.md)を使用します。**セッション**の判定を変更するには[update-status](https://docs.didit.me/ja/sessions-api/update-status.md)を使用します。## KYCとKYBのサポート**本人確認（KYC）**、**法人確認 (KYB)**、どちらのセッションでも動作します。Diditはどちらの場合も`sessionId`を解決します。KYBでは、AMLスクリーニングは企業とその主要人物に対して実行され、各AMLチェックでは、それぞれのヒットを確認できます。## 権限`write:sessions`権限が必要です。クライアントAPIキー（`x-api-key`）またはユーザー認証ヘッダーのいずれかを使用します。## エラー| ステータス | 意味 |
| - | - |
| `400` | `review_status`が有効な値ではない、`hit_id`が空である、または`hit_updates`が空です。 |
| `403` | 認証情報がないか無効である、または呼び出し元に`write:sessions`がありません。 |
| `404` | セッションが見つからない、セッションにAMLチェックがない、または`hit_id`が見つかりません（一括の場合は何も変更されません）。 |## 関連ページ- [機能ステータスの更新](https://docs.didit.me/ja/sessions-api/update-feature-status.md)：AML**ステップ**のステータス（またはその他のステップ）を変更します。
- [セッションステータスの更新](https://docs.didit.me/ja/sessions-api/update-status.md)：セッション全体の判定を変更します。
- [セッションの取得](https://docs.didit.me/ja/sessions-api/retrieve-session.md)：AMLの`hits`とそのIDを取得します。
- [AMLスクリーニング](https://docs.didit.me/ja/standalone-apis/aml-screening.md)：スクリーニングとスコアリングの仕組みを説明します。


## OpenAPI

````yaml ja/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。x-api-keyヘッダーで認証します。
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/session/{sessionId}/update-aml-hit-status/:
    patch:
      tags:
        - Sessions
      summary: AMLヒットのレビューステータスを更新
      description: >-
        AMLスクリーニングで返された**単一のAMLヒット**(制裁、PEP、ウォッチリスト、ネガティブメディアとの一致の可能性)のレビューステータスを、セッション全体の判定を変更せずに設定します。ヒットは`hit_id`(AMLチェックの`hits`配列内のエントリの`id`。セッションの判定を参照)で指定します。以前の形式で返されたヒットIDも引き続き受け付けられます。レスポンスでは常に現在の`id`でヒットが示されます。


        `review_status`は`Unreviewed`、`Confirmed Match`、`False
        Positive`、`Inconclusive`のいずれかです。レビュアーの判定は継続的なモニタリングによる更新後も保持されるため、`False
        Positive`とマークしたヒットは、プロバイダーが再スクリーニングしてもそのまま維持されます。


        呼び出しが成功すると、`data.updated`
        Webhookが送信され、セッションのレビュー履歴にアクティビティエントリ(実行者の記録付き)が追加されます。複数のAMLチェックを含むグラフワークフローでは、`node_id`を渡して特定のチェックを指定します。


        APIキー(`x-api-key`)またはユーザー認可ヘッダーで認証します。いずれも`write:sessions`権限を持っている必要があります。
      operationId: patch_v3_session_update_aml_hit_status
      parameters:
        - in: path
          name: sessionId
          required: true
          description: >-
            検証セッションのUUID。ユーザー(KYC)と企業(KYB)の両方のセッションIDを受け付けます。サービスは両方のセッションタイプにわたってIDを解決します。
          schema:
            type: string
            format: uuid
            example: 11111111-2222-3333-4444-555555555555
        - in: query
          name: node_id
          required: false
          description: >-
            ワークフローグラフのノードID。セッションに複数のAMLチェック（ノードごとに1つ）がある場合にのみ必須です。AMLチェックが1つだけのセッションでは省略してください。
          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: >-
                    AMLチェックの`hits`配列に含まれるヒットの`id`（`hit_...`）です。以前の形式で返されたヒットIDも引き続き受け付けます。
                  example: hit_7c1e9a40b2d35f86e0a4c912
                review_status:
                  type: string
                  description: ヒットの新しいレビューステータス。
                  enum:
                    - Unreviewed
                    - Confirmed Match
                    - False Positive
                    - Inconclusive
                  example: False Positive
                node_id:
                  type: string
                  description: 任意のグラフノードIDです。セッションに複数のAMLチェックがある場合に、ここまたはクエリパラメーターとして指定します。
                  example: feature_aml_1
            example:
              hit_id: hit_7c1e9a40b2d35f86e0a4c912
              review_status: False Positive
      responses:
        '200':
          description: ヒットのレビューステータスが更新されました。
          content:
            application/json:
              schema:
                type: object
                required:
                  - message
                  - hit_id
                  - review_status
                properties:
                  message:
                    type: string
                    description: 常に`Hit status updated successfully`です。
                  hit_id:
                    type: string
                    description: >-
                      更新されたヒットの`id`で、セッションの判定が返す形式です。リクエストが以前の形式のIDでヒットを指定した場合も同様です。
                  review_status:
                    type: string
                    enum:
                      - Unreviewed
                      - Confirmed Match
                      - False Positive
                      - Inconclusive
                    description: ヒットに現在保存されているレビューステータスです。
              example:
                message: Hit status updated successfully
                hit_id: hit_7c1e9a40b2d35f86e0a4c912
                review_status: False Positive
        '400':
          description: 検証エラー：`hit_id`が空、または`review_status`が許可された値のいずれでもありません。
          content:
            application/json:
              example:
                review_status:
                  - '"Maybe" is not a valid choice.'
        '403':
          description: >-
            認証情報がないか権限が不足しています。キーがない場合は`403`を返し、誤った、失効した、または期限切れのキーの場合は`401`を返します。
          content:
            application/json:
              examples:
                Invalid Credentials:
                  summary: x-api-keyがないか無効です
                  value:
                    detail: >-
                      Authentication credentials were not provided or are
                      invalid.
                Missing Privilege:
                  summary: APIキーにwrite:sessionsがありません
                  value:
                    detail: You do not have permission to perform this action.
        '404':
          description: >-
            セッションが見つからない、セッションにAMLチェックがない（任意で指定した`node_id`について）、または`hit_id`に一致するヒットがありません。
          content:
            application/json:
              examples:
                No AML Check:
                  summary: セッションにAMLチェックがありません
                  value:
                    detail: The session does not have an AML check.
                Hit Not Found:
                  summary: 不明な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: >-
        お客様のアプリケーションのAPIキーです。Business ConsoleのDevelopers -> API
        keysで取得できます。プライマリキーはフルアクセス権を持ちます。名前付きキーにはスコープを設定できます。リソースごとのアクセス権（なし、読み取り、書き込み）、一部のワークフローまたは承認済みセッションへの限定、IPアドレスのリストへの限定、有効期限の設定です。401は、キーが誤っている、失効している、または期限切れであることを意味します。403は、キーが送信されていない、キーにこのリソースやアクションへのアクセス権がない、またはIPリスト外のアドレスからリクエストが送信されたことを意味します。セッションのルートでの404は、セッションがキーのワークフローまたはステータスの対象外であることを意味します。メディアへのアクセス権がないキーでは、画像、動画、PDFのURLがnullで返されます。セッションの書き込み権限がないキーでは、セッションのリンクとトークンがnullで返されます。詳細は次を参照してください:
        https://docs.didit.me/console/api-keys

````

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