> ## 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、观察名单和负面新闻数据集进行交叉比对。每一次命中都会返回匹配到的实体、产生匹配的数据集、两项评分：`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 响应中的位置

在会话决策 endpoint 上，AML 筛查以复数数组 **`aml_screenings[]`** 的形式返回。每个条目对应工作流中的一次 AML 执行（运行两次的 AML 检查将生成具有不同 `node_id` 值的两个条目）。

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

独立 AML 和企业会话返回相同的单条记录结构。以下字段与[数据模型](https://docs.didit.me/zh/reference/data-models.md#aml-筛查)页面上的规范架构一致。

## 三项评分而非单一结论

`status` 是一项结论；推导该结论所依据的数值包含在同一个 payload 中。当您构建自己的风险分级（例如将 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`。 |

这三项数值存在于交付 AML 报告的每一个位置：`GET /v3/session/{sessionId}/decision/`、**所有** Webhook 版本（V3 `aml_screenings[]` 以及旧版 V2 / V1 单数形式 `aml`）中 `status.updated` 和 `data.updated` Webhook 的 `decision` 对象，以及独立 AML API。仅看到标记/清除标签的调用方只是读取了 `status`（或命中项的 `review_status`），而忽略了其旁边的评分。控制台显示相同的数值：AML 区域标题显示综合**风险评分**，匹配项表格的每一行都显示**匹配分数**和**风险评分**，并在悬停时提供明细。

## 架构

有关规范的架构，请参阅[数据模型参考中的 AML 筛查](https://docs.didit.me/zh/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[]` | 每个匹配记录对应一个条目，**包括**自动归类为 `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/zh/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_` 后接 24 个十六进制字符。再次筛查该主体时，相同的匹配实体将保留相同的 `id`。通过 AML 匹配项状态 endpoint 更新 `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/zh/core-technology/aml-screening/aml-match-score.md)。 |
| `risk_score` | number (0-100) | 实体风险 — 匹配实体的风险程度。非 `False Positive` 的匹配项中的最高 `risk_score` 将成为顶层的 `score`。请参阅 [AML 风险评分](https://docs.didit.me/zh/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 匹配项状态 endpoint 修改；更新该状态会触发 `data.updated` Webhook，但**不会**自动重新计算功能 `status` — 需使用 AML 状态 endpoint 或控制台审核来执行此操作。 |
| `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` 是在**每一次**筛查运行完成时都会更新的唯一字段，并且 [筛查历史 endpoint](https://docs.didit.me/zh/core-technology/aml-screening/continuous-monitoring-aml-screening.md#证明监控已运行) 会逐一列出每次运行 — 包括未产生任何变更的运行。有关完整生命周期，请参阅[持续 AML 监控](https://docs.didit.me/zh/core-technology/aml-screening/continuous-monitoring-aml-screening.md)。

> [!WARNING]
>
> 此报告中的三个日期代表三种不同含义。`next_ongoing_monitoring_bill_date` 是您的下一次计费时间。`last_ongoing_screening_at` 是最近一次实际筛查该主体的时间。`last_ongoing_screening_datasets_updated_at` 是提供商最近一次刷新该筛查所依赖名单的时间。只有第二个日期能够证明该控制措施已实际执行。

## 状态值

| 值 | 含义 |
| - | - |
| `Not Finished` | 此会话/节点尚未执行 AML。 |
| `Approved` | 综合评分处于或低于通过阈值（默认 `80`）— 包括无任何命中记录或所有命中记录均为 `False Positive`（评分 `0`）的情况。 |
| `In Review` | 综合评分高于通过阈值（且处于或低于审核阈值），或触发了 `COULD_NOT_PERFORM_AML_SCREENING`。 |
| `Declined` | 综合评分高于审核阈值（默认 `100`，因此仅在您调低该阈值后才会自动拒绝），或该状态是手动设置的。 |

阈值可针对每个工作流节点单独配置 — 请参阅 [AML 风险评分](https://docs.didit.me/zh/core-technology/aml-screening/aml-risk-score.md)。自定义状态规则与推导出的状态合并，优先级顺序为 `Declined` > `In Review` > `Approved`；审核员也可以通过控制台或 AML 状态 endpoint 覆盖 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/zh/core-technology/aml-screening/warnings-aml-screening.md) — AML 可能发出的所有警告代码
* [AML 风险评分](https://docs.didit.me/zh/core-technology/aml-screening/aml-risk-score.md)与 [AML 匹配分数](https://docs.didit.me/zh/core-technology/aml-screening/aml-match-score.md) — 这两项评分的计算方式
* [持续 AML 监控](https://docs.didit.me/zh/core-technology/aml-screening/continuous-monitoring-aml-screening.md) — 启用并接收监控事件
* [观察名单数据库](https://docs.didit.me/zh/core-technology/aml-screening/watchlist-database-aml-screening.md) — 所涵盖的数据集
* [数据模型 — AML 筛查](https://docs.didit.me/zh/reference/data-models.md#aml-筛查) — 规范架构
* [Webhook](https://docs.didit.me/zh/integration/webhooks.md) — 当 AML 更改会话状态时触发 `status.updated`；命中审核状态变更及监控数据刷新时触发 `data.updated`


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