> ## 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スクリーニングレポート：ヒット・スコア・JSONの見方

> DiditのAMLスクリーニングのレスポンスを解析する方法を解説します。ヒット、制裁、PEP、ネガティブメディア、リスクスコア、一致スコア、スクリーニング対象データ、継続的なモニタリングの各フィールドを扱います。

## 概要

AMLスクリーニングは、認証済みの対象者の本人情報を、世界の制裁、PEP、ウォッチリスト、ネガティブメディアのデータセットと照合します。各ヒットでは、一致したエンティティ、一致が検出されたデータセット、2つのスコア（`match_score`（本人一致の信頼度）と`risk_score`（エンティティのリスク））、およびソース別の構造化された内訳（`pep_matches[]`、`sanction_matches[]`、`warning_matches[]`、`adverse_media_matches[]`）が返されます。集計値の`score`は、`False Positive`とマークされていないヒットのうち最も高い`risk_score`です。

ユーザー（KYC）セッション、企業（KYB）セッション、スタンドアロンのAML APIのいずれのAMLスクリーニングでも、同じ構造が返されます。

![制裁、PEP、ネガティブメディアのヒットを表示したDidit AMLスクリーニングレポートのスクリーンショット](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)

## APIレスポンスでの表示場所

セッションの判定エンドポイントでは、AMLスクリーニングは複数形の配列「**`aml_screenings[]`**」として返されます。各エントリはワークフロー内の1回のAML実行に対応します（AMLチェックが2回実行されると、`node_id`の値が異なる2つのエントリが生成されます）。

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

スタンドアロンのAMLセッションと企業セッションも、レコードごとに同じ構造を返します。以下のフィールドは、[データモデル](https://docs.didit.me/ja/reference/data-models.md#amlスクリーニング)ページの正規スキーマと一致しています。

## 1つの判定ではなく3つのスコア

`status`は判定であり、その導出元となった数値は同じペイロードに含まれています。独自のリスクレベルの分類（たとえばAMLリスクを、資産の源泉やPEPの自己申告といったアンケートの回答と組み合わせる場合）を構築する際は、`Approved` / `In Review` / `Declined`だけで分岐するのではなく、これらの数値を読み取ってください。

| スコア | 対象 | 範囲 | 答える問い |
| - | - | - | - |
| `hits[].match_score` | ヒットごと | 0-100 | このヒットは、スクリーニング対象者と同一人物か。ヒットの初期の`review_status`を決定します。 |
| `hits[].risk_score` | ヒットごと | 0-100 | 一致したエンティティのリスクはどの程度か。ヒットのカテゴリ（制裁、PEP、犯罪など）に基づいて決まります。 |
| `score` | スクリーニングごと | 0-100 | `False Positive`とマークされていないヒットのうち最も高い`risk_score`。この値が承認/レビューのしきい値と比較され、`status`が決まります。 |

3つのスコアはすべて、AMLレポートが配信されるすべての場所に含まれます。`GET /v3/session/{sessionId}/decision/`、**すべての**Webhookバージョンにおける`status.updated`および`data.updated`Webhookの`decision`オブジェクト（V3の`aml_screenings[]`、および旧V2 / V1の単数形`aml`）、そしてスタンドアロンのAML APIです。フラグ付き / 問題なしのラベルしか見えていない利用者は、`status`（またはヒットの`review_status`）を読み取っており、その隣にあるスコアを読み飛ばしています。コンソールにも同じ数値が表示されます。AMLセクションのヘッダーには集計値の**リスクスコア**が、一致一覧テーブルの各行には**一致スコア**と**リスクスコア**が表示され、ホバーすると内訳を確認できます。

## スキーマ

正式なスキーマについては、[データモデルリファレンスのAMLスクリーニング](https://docs.didit.me/ja/reference/data-models.md#amlスクリーニング)を参照してください。トップレベルのフィールドは次のとおりです。

| フィールド | 型 | 備考 |
| - | - | - |
| `status` | `Not Finished` \| `Approved` \| `Declined` \| `In Review` | 機能レベルのステータス（`FeatureStatusChoices`）です。ワークフローのルールと手動レビュー画面を制御します。 |
| `total_hits` | integer | `hits[]`内のエントリ数です。一致がない場合は`0`です。 |
| `entity_type` | `person` \| `company` | スクリーニング対象の種類です。企業と個人では異なる照合ロジックを使用します。 |
| `score` | float (0-100) \| null | AMLリスクスコアの集計値で、`False Positive`とマークされていないヒットのうち最も高い`risk_score`です。一致の可能性があるヒットがない場合は`0`、スクリーニングが実行されるまでは`null`です。 |
| `hits` | `Hit[]` | 一致したレコードごとに1件のエントリです。`False Positive`に自動分類されたヒットも**含みます**（一覧には残りますが、集計値の`score`からは除外されます）。ヒットごとのフィールドは下記を参照してください。 |
| `screened_data` | object | Diditがスクリーニングに送信した値そのものです：`full_name`、`date_of_birth`、`nationality`（ISO 3166-1 alpha-2）、`document_number`。ヒットの内容をレビュアーに説明したり、何が検索されたかを監査したりする際に役立ちます。 |
| `is_ongoing_monitoring_enabled` | boolean | セッションの継続的なモニタリングを有効にすると`true`になります。 |
| `next_ongoing_monitoring_bill_date` | string \| null | 次回の年次**請求**更新日（`YYYY-MM-DD`）で、`last_aml_bill_date`+365日です。モニタリングが有効になるまでは`null`です。これはスクリーニング日ではありません。下記の`last_ongoing_screening_at`を参照してください。 |
| `last_ongoing_screening_at` | string (ISO 8601) \| null | 継続的なモニタリングがこのレコードの再スクリーニングを最後に**完了**した日時で、結果が変わったかどうかは問いません。このフィールドの提供開始以降、一度も再スクリーニングされていない場合は`null`です。有効化日や請求日から遡って値が設定されることはありません。 |
| `last_ongoing_screening_datasets_updated_at` | string (ISO 8601) \| null | そのスクリーニングの時点でプロバイダーが報告した、AMLデータセットの最新の更新日です。プロバイダーがデータセットの日付を報告しなかった場合は`null`で、推定値が入ることはありません。 |
| `warnings` | `Warning[]` | AML固有の警告タグです。[AML警告](https://docs.didit.me/ja/core-technology/aml-screening/warnings-aml-screening.md)を参照してください。 |
| `node_id` | string \| null | `/v3/`のセッションレスポンスにおいて、このAML実行を生成したワークフローグラフのノードを識別します。スタンドアロンのAML APIレスポンスには含まれません。 |

### ヒットごとのフィールド

`hits[]`の各エントリには次のフィールドがあります（一部を抜粋）。一致ソースの配列（`pep_matches[]`、`sanction_matches[]`、`warning_matches[]`、`adverse_media_matches[]`）には、そのヒットが属するデータセットについてのみ値が入ります。

| フィールド | 型 | 備考 |
| - | - | - |
| `id` | string | 安定したヒット識別子で、`hit_`の後に16進数24文字が続きます。対象者を再度スクリーニングしても、一致した同じエンティティは同じ`id`を保持します。AMLヒットステータスエンドポイントで`review_status`を更新する際の`hit_id`として使用します。 |
| `caption` | string | データセットに保存されているエンティティの主たる名称です。 |
| `datasets` | string\[] | エンティティが掲載されているリスクカテゴリです：`PEP`（レベル付きで`PEP Level 1`から`PEP Level 4`）、`Sanctions`、`Adverse Media`、`Warnings and Regulatory Enforcement`、`Fitness and Probity`、`SIP`、`SIE`または`Insolvency`。エンティティのソースにこれらのいずれも記載されていない場合は`Other Lists`です。 |
| `match_score` | number (0-100) | 本人一致の信頼度で、ヒットが同一人物である可能性の高さを示します。`aml_match_score_threshold`（デフォルト`93`）未満のヒットは`False Positive`として、それ以上のヒットは`Unreviewed`として開始します。[AML一致スコア](https://docs.didit.me/ja/core-technology/aml-screening/aml-match-score.md)を参照してください。 |
| `risk_score` | number (0-100) | エンティティのリスクで、一致したエンティティがどの程度危険かを示します。`False Positive`以外のヒットのうち最も高い`risk_score`が、トップレベルの`score`になります。[AMLリスクスコア](https://docs.didit.me/ja/core-technology/aml-screening/aml-risk-score.md)を参照してください。 |
| `score` | number (0-1) | **非推奨**の加重一致スコアです。代わりに`match_score`を使用してください。 |
| `match` | boolean \| null | 従来の完全一致フラグです。`match_score`+`review_status`の使用を推奨します。 |
| `target` | boolean \| null | エンティティが掲載の直接の対象であるかどうかを示します。 |
| `review_status` | `Unreviewed` \| `Confirmed Match` \| `False Positive` \| `Inconclusive` | 初期値は`match_score`と`aml_match_score_threshold`の比較から決まります。AMLヒットステータスエンドポイントで変更でき、更新すると`data.updated`のWebhookが送信されますが、機能の`status`は自動的に再計算**されません**。再計算するには、AMLステータスエンドポイントまたはコンソールでのレビューを使用してください。 |
| `score_breakdown` | object | `match_score`の算出方法です：氏名・生年月日・国のスコア、重み、寄与度、および書類番号による「ゴールデンキー」効果（`MATCH`は100に上書き、`NEUTRAL`はベーススコアを維持、`HARD_MISMATCH`はペナルティを適用）。 |
| `properties` | object | データセットの生の属性（氏名、別名、生年月日、市民権など）です。判定に役立ちます。 |
| `url` | string \| null | 一致したエンティティのソースURLです（利用可能な場合）。 |
| `rca_name` | string \| null | ヒットが親族・近しい関係者（RCA）である場合に、照合の経由となった関連人物の名前です。 |
| `pep_matches[]` | object\[] | ヒットのPEPとしての役職、公表元、生年月日、学歴です。 |
| `sanction_matches[]` | object\[] | 制裁リスト名、プログラム、制裁当局、掲載日、ソースURLです。 |
| `warning_matches[]` | object\[] | 一般的なウォッチリストまたは執行措置の記録です。 |
| `adverse_media_matches[]` | object\[] | 記事単位のネガティブメディアです：見出し、要約、センチメント、ソースURL、公開日、キーワード。 |
| `adverse_media_details` | object \| null | ヒット全体にわたるネガティブメディアのセンチメントとキーワード数の集計です。 |
| `risk_view` | object | ヒットのリスクをカテゴリ・国・犯罪で重み付けした内訳です（`risk_level`、`risk_scores`、`weightage`）。 |
| `linked_entities[]` | object\[] | データセットがヒットと関連付けている関連エンティティです（家族やビジネス上の関係者など）。 |
| `first_seen` / `last_seen` | string \| null | データセットがこのエントリを最初に確認した日時／最後に確認した日時です。 |
| `additional_information` | object | データセットプロバイダーから提供される自由形式の追加データです。 |

> [!NOTE]
>
> `False Positive`に分類されたヒット（`match_score`が一致スコアのしきい値を下回ったため、またはレビュアーがマークしたため）は、監査可能性を確保するために`hits[]`に残ります。除外されるのは、集計値`score`の計算からのみです。

### 継続的なモニタリング

`is_ongoing_monitoring_enabled`が`true`の場合、Diditは対象者を継続的に再スクリーニングし、ヒットが追加、削除、または変更されるたびにAMLレポートを再送信します。AMLステータスが変わる再スクリーニングでは`status.updated` Webhookが発火し、ヒットデータのみが変わる再スクリーニングでは`data.updated`が発火します。モニタリング期間は`last_aml_bill_date`から365日間で、次回の年次更新日は`next_ongoing_monitoring_bill_date`で確認できます。

これらのシグナルはすべて変更をきっかけに発生するため、新しいヒットがないまま数か月にわたって再スクリーニングされた対象者については、いずれも発生しません。完了したすべての実行で**毎回**更新されるフィールドは`last_ongoing_screening_at`だけです。また、[スクリーニング履歴エンドポイント](https://docs.didit.me/ja/core-technology/aml-screening/continuous-monitoring-aml-screening.md#モニタリングが実行されたことを証明する)では、何も変わらなかった実行も含めて各実行が個別に一覧表示されます。ライフサイクル全体については[継続的なAMLモニタリング](https://docs.didit.me/ja/core-technology/aml-screening/continuous-monitoring-aml-screening.md)を参照してください。

> [!WARNING]
>
> このレポートにある3つの日付は、それぞれ意味が異なります。`next_ongoing_monitoring_bill_date`は次回の請求日です。`last_ongoing_screening_at`は対象者が最後に実際にスクリーニングされた日時です。`last_ongoing_screening_datasets_updated_at`は、そのスクリーニングで使われたリストがプロバイダーによって最後に更新された日時です。統制が実行されたことを証明するのは、2つ目の日付だけです。

## ステータス値

| 値 | 意味 |
| - | - |
| `Not Finished` | このセッションまたはノードでは、AMLがまだ実行されていません。 |
| `Approved` | 集計スコアが承認しきい値(デフォルトは`80`)以下です。ヒットがない場合や、すべてのヒットが`False Positive`(スコア`0`)の場合も含みます。 |
| `In Review` | 集計スコアが承認しきい値を超えている(かつレビューしきい値以下である)か、`COULD_NOT_PERFORM_AML_SCREENING`が発生しました。 |
| `Declined` | 集計スコアがレビューしきい値(デフォルトは`100`のため、自動却下はこの値を下げた場合にのみ発生します)を超えているか、ステータスが手動で設定されました。 |

しきい値はワークフローのノードごとに設定できます。詳しくは[AMLリスクスコア](https://docs.didit.me/ja/core-technology/aml-screening/aml-risk-score.md)を参照してください。カスタムのステータスルールは、`Declined` > `In Review` > `Approved`の優先順位で、算出されたステータスと組み合わされます。レビュアーは、コンソールまたはAMLステータスエンドポイントからAMLステータスを上書きすることもできます。

## 例

### Approved: ヒットなし

```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とネガティブメディアのヒット

以下の名前、URL、記事はすべて架空のものです。

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

## 関連情報

* [AML警告](https://docs.didit.me/ja/core-technology/aml-screening/warnings-aml-screening.md):AMLが出力するすべての警告コード
* [AMLリスクスコア](https://docs.didit.me/ja/core-technology/aml-screening/aml-risk-score.md)と[AML一致スコア](https://docs.didit.me/ja/core-technology/aml-screening/aml-match-score.md):2つのスコアの算出方法
* [継続的なAMLモニタリング](https://docs.didit.me/ja/core-technology/aml-screening/continuous-monitoring-aml-screening.md):モニタリングの有効化とモニタリングイベントの利用
* [ウォッチリストデータベース](https://docs.didit.me/ja/core-technology/aml-screening/watchlist-database-aml-screening.md):対象となるデータセット
* [データモデル: AMLスクリーニング](https://docs.didit.me/ja/reference/data-models.md#amlスクリーニング):標準スキーマ
* [Webhook](https://docs.didit.me/ja/integration/webhooks.md):AMLによってセッションのステータスが変わると`status.updated`が発火し、ヒットのレビューステータスの変更やモニタリングデータの更新では`data.updated`が発火します


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