> ## 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：制裁与政治公众人物（PEP）

> Didit 实时针对 1,300+ 全球制裁、政治公众人物（PEP）和观察名单数据库筛查用户。每次调用 $0.20，提供双评分风险系统，无需合同。

Didit AML 筛查实时比对 1,300+ 个全球制裁名单、PEP 和观察名单数据源以及负面新闻，对每个潜在匹配项返回两项评分：用于衡量该匹配为同一人的可能性的匹配分数，以及用于衡量上榜实体风险程度的风险评分。

AML 筛查集成提示词
        将提示词复制到剪贴板



      
      

\<pre>

\````# Goal
Integrate Didit AML Screening (PEP, sanctions, warnings, adverse media) into your app. Pick ONE mode.

\# Mode A — Session-based
Run AML as a step inside a verification session. Decisions, ongoing monitoring, and audit history are bound to the session and surfaced in the Business Console.

1\. Add the AML feature to the workflow (Business Console or POST /v3/workflows/). Configure thresholds: aml_match_score_threshold, aml_score_approve_threshold, aml_score_review_threshold, and the weights aml_name_weight + aml_dob_weight + aml_country_weight (must sum to 100).
2\. Create a session — POST /v3/session/ with { workflow_id, vendor_data, callback }. See /sessions-api/create-session.
3\. Fetch the decision — GET /v3/session/{sessionId}/decision/ or subscribe to session.status.updated.

Decision surface: `aml_screenings[]` array on the decision payload.

\# Mode B — Standalone API (server-to-server)
Use when you want a one-shot AML check decoupled from a hosted KYC flow.

POST https://verification.didit.me/v3/aml/
x-api-key: YOUR_API_KEY
Content-Type: application/json

curl example:
\```bash
curl -X POST 'https://verification.didit.me/v3/aml/' \
-H "x-api-key: $DIDIT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"full_name": "Javier Ejemplo Modelo",
"entity_type": "person",
"date_of_birth": "1974-01-01",
"nationality": "ES",
"include_adverse_media": true,
"vendor_data": "user-1234"
}'
\```
Returns: { request_id, aml: { status, screening_id, hits: [...], warnings: [...] } }.

\# Important policy rules
\- aml_name_weight + aml_dob_weight + aml_country_weight must equal exactly 100 — request rejected with HTTP 400 otherwise.
\- include_adverse_media=true increases latency to ~25s; use a client timeout of at least 45s.
\- include_ongoing_monitoring=true keeps the entity under daily re-screening at **$0.07 per year per screened entity** (billing alert) and requires save_api_request=true (HTTP 400 otherwise). Disable from the Business Console.

\# Status enum (per aml_screenings[].status / aml.status)
"Not Started" | "In Progress" | "Approved" | "In Review" | "Declined" | "Abandoned" | "Kyc Expired"

\# Warnings (LogWarningChoices.AML)
warnings[] risk codes include:
POSSIBLE_MATCH_FOUND, MATCH_FOUND, HIGH_RISK_COUNTRY, ADVERSE_MEDIA_HIT, SANCTIONED_ENTITY, PEP_MATCH, ONGOING_MONITORING_ENABLED.
Full catalogue: /core-technology/aml-screening/warnings-aml-screening.

\# Failure modes to handle
\- HTTP 400 — weights don't sum to 100; ongoing_monitoring without save_api_request.
\- HTTP 403 — out of credits.
\- status="Declined" — at least one hit's risk_score ≥ aml_score_review_threshold and crossed the decline boundary.
\- status="In Review" — risk_score between approve and review thresholds; route to manual queue.
\- Adverse-media timeout — the upstream provider was slow; the result returns without adverse-media hits (still actionable).

\# See also
\- Canonical schema: /reference/data-models#aml-screening
\- Per-feature report: /core-technology/aml-screening/report-aml-screening
\- Risk catalogue: /core-technology/aml-screening/warnings-aml-screening
\- Ongoing monitoring: /core-technology/aml-screening/continuous-monitoring-aml-screening
\- Full integration playbook: /integration/integration-prompt````

\</pre>



      
      

粘贴到

有关解读验证结果的 Academy 课程在 8:40 处讲到了 AML 筛查：涵盖真实会话中的制裁名单、PEP 以及负面新闻。[AML 筛查: 制裁、PEP 与负面新闻 — Didit Academy](https://www.youtube.com/embed/7htTWCWsl60?start=520\&rel=0\&playsinline=1)![包含 OFAC、欧盟、联合国制裁和 PEP 名单的 Didit AML 筛查观察名单数据源表格](https://mintcdn.com/didit-0f962782/z6T2GHM4Zh-iSj-K/images/aml-list-table.jpeg?fit=max\&auto=format\&n=z6T2GHM4Zh-iSj-K\&q=85\&s=b254abf5bb564018e15588ef7c56f92e)## 核心概念: 匹配分数与风险评分Didit 在 AML 筛查中采用**双评分体系**：### 匹配分数 (身份置信度)- **问题：**该匹配项是否就是我们正在筛查的同一人？
- **考量因素：**姓名相似度、出生日期、国家/地区/国籍、证件号码
- **用途：**将匹配项归类为**误报**或**未审核**（疑似匹配）
- **阈值：**匹配分数阈值（默认值：93）### 风险评分 (实体风险等级)- **问题：**如果确实匹配，该实体的风险有多高？
- **考量因素：**国家/地区风险、类别（PEP/制裁等）、犯罪记录
- **用途：**决定**最终 AML 状态**（已通过/审核中/已拒绝）
- **阈值：**通过阈值（默认值：80）与审核阈值（默认值：100）```
┌─────────────────────────────────────────────────────────────────────────────┐
│                           AML SCREENING FLOW                                │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                             │
│  STEP 1: Screen against watchlists                                          │
│     └── Returns potential matches (match score ≥ 75% included)              │
│                                                                             │
│  STEP 2: For each match, calculate MATCH SCORE                              │
│     └── Match Score = (Name × W1) + (DOB × W2) + (Country × W3)             │
│                                                                             │
│  STEP 3: Classify match by match score                                      │
│     ├── Match Score < 93 → FALSE POSITIVE (excluded from risk)              │
│     └── Match Score ≥ 93 → UNREVIEWED (included in risk)                    │
│                                                                             │
│  STEP 4: For unreviewed matches, calculate RISK SCORE                       │
│     └── Risk Score = (Country × 30%) + (Category × 50%) + (Criminal × 20%)  │
│                                                                             │
│  STEP 5: Determine AML STATUS (highest risk score among non-FP matches)     │
│     ├── Risk Score < 86 → APPROVED                                          │
│     ├── 86 ≤ Risk Score ≤ 100 → IN REVIEW                                   │
│     └── Risk Score > 100 → DECLINED                                         │
│                                                                             │
└─────────────────────────────────────────────────────────────────────────────┘
```## 匹配审核状态系统会根据每个 AML 匹配项的匹配分数为其分配审核状态：| 状态 | 说明 | 分配时机 |
| - | - | - |
| **误报** | 匹配项大概率不是同一人 | 匹配分数 \< 阈值（自动分配） |
| **未审核** | 匹配项为疑似匹配，需要审核 | 匹配分数 ≥ 阈值（自动分配） |
| **已确认匹配** | 匹配项已核实为同一人 | 由合规官手动设置 |
| **无法定论** | 无法确定匹配项是否为同一人 | 由合规官手动设置 |> [!NOTE]
>
> ### **提示:** 您可以在控制台中通过查看 AML 概览或点击特定匹配项查看其详情来更改匹配审核状态。## 主要功能### 1. 全面的数据提取- **精准提取**：使用先进的 OCR 技术从用户提供的信息或身份证件中提取数据。
- **模糊逻辑**：兼顾姓名变体和拼写错误，确保数据采集全面完整。### 2. 广泛的观察名单覆盖针对多个类别进行筛查，包括：- **制裁名单**：来自政府和国际机构。
- **政治公众人物（PEP）**：担任重要公众职务的个人。
- **犯罪记录**：包括全球和本地犯罪数据库。
- **负面新闻**：涉及金融犯罪及其他风险的新闻文章和报告。
- **自定义观察名单**：可根据特定客户需求进行配置。### 3. 先进的匹配算法- **模糊匹配**：捕捉姓名或详细信息的细微差异，确保精准匹配。
- **多数据点**：利用姓名、出生日期、国籍及其他标识符进行全面筛查。
- **黄金密钥（Golden Key）逻辑**：证件号码匹配可覆盖评分，用于明确确认身份。### 4. 双评分风险评估每个匹配项都会获得两个评分：| 评分 | 目的 | 分类 |
| - | - | - |
| **匹配分数** (0-100) | 是否为同一人？ | 误报 vs 未审核 |
| **风险评分** (0-100) | 该实体的风险程度如何？ | 决定最终 AML 状态 |**匹配审核状态（基于匹配分数）：**- **误报**：匹配分数低于阈值 - 可能不是同一人
- **未审核**：匹配分数达到或高于阈值 - 需要审核**最终 AML 状态（基于非误报匹配项中的最高风险评分）：**- **已通过**：所有未审核匹配项的风险评分均较低
- **审核中**：至少有一个未审核匹配项具有中高风险评分
- **已拒绝**：至少有一个未审核匹配项具有极高风险评分### 5. 详细的负面新闻筛查针对广泛的负面新闻类别进行筛查，包括：- **金融犯罪**：洗钱、挪用公款等。
- **暴力犯罪**：袭击、谋杀及相关罪行。
- **恐怖主义**：参与或支持恐怖活动。
- **毒品**：贩毒及相关犯罪。
- **欺诈**：各类欺诈和欺骗行为。
- **违规行为**：违反监管合规要求。### 6. 可自定义的筛查参数- **灵敏度可调**：根据您组织的风险偏好配置筛查灵敏度。
- **可自定义观察名单**：选择筛查流程中包含的观察名单和类别，以满足特定要求。### 可配置阈值您可以通过设置不同的阈值来自定义安全级别：**匹配分数配置：**| 设置 | 默认值 | 说明 |
| - | - | - |
| 匹配分数阈值 | 93 | 低于此值的匹配项为误报，达到或高于此值的为未审核 |
| 姓名权重 | 60 | 姓名在匹配分数中的权重 |
| 出生日期权重 | 25 | 出生日期在匹配分数中的权重 |
| 国家/地区权重 | 15 | 国家/地区在匹配分数中的权重 |**风险评分阈值（最终状态）：**| 设置 | 默认值 | 说明 |
| - | - | - |
| 通过阈值 | 80 | 风险评分低于该值 = 已通过 |
| 审核阈值 | 100 | 风险评分高于该值 = 已拒绝；介于两者之间 = 审核中 |![Didit AML 已通过、审核中和已拒绝状态的风险评分阈值](https://mintcdn.com/didit-0f962782/z6T2GHM4Zh-iSj-K/images/aml-risk-score.png?fit=max\&auto=format\&n=z6T2GHM4Zh-iSj-K\&q=85\&s=297acc5d98dcd0f038597c4f2d953f46)> [!NOTE]
>
> 这些阈值可以根据您的风险承受能力和安全要求进行调整。## 工作原理我们的 AML 筛查流程能够高效识别潜在风险，同时最大限度减少合法用户的等待时间。**1. 数据提取**系统从用户提供的数据或上传的身份证件中提取相关信息。| 输入 | 方法 |
| - | - |
| **身份证件** | 先进的 OCR 技术，用于精准提取数据 |
| **用户提供的数据** | 直接输入（姓名、出生日期、国籍、证件号码） |
| **模糊逻辑** | 兼顾姓名变体与拼写错误 |**2. 观察名单筛查**提取的数据将与 **1,300+ 个全球观察名单**和数据库进行实时交叉比对：- **制裁名单** — 政府和国际机构（OFAC、欧盟、联合国等）
- **政治公众人物 (PEP)** — 担任重要公共职务的人员
- **犯罪记录** — 全球和本地犯罪数据库
- **负面新闻** — 关于金融犯罪的新闻报道和文章
- **自定义观察名单** — 可根据您的需求进行配置**3. 匹配分数计算**对于每个潜在匹配项，系统会计算一个**身份置信度分数** — 即其为同一人的可能性。| 因素 | 默认权重 | 描述 |
| - | :-: | - |
| **姓名相似度** | 60% | 兼顾变体的模糊匹配 |
| **出生日期** | 25% | 精确或部分出生日期比对 |
| **国家/国籍** | 15% | 原籍国家/地区比对 |- 匹配分数**低于阈值**（默认值：93）→ 归类为**误报**
- 匹配分数**达到或高于阈值** → 归类为**未审核**（疑似匹配）
- **黄金密钥**：证件号码匹配可将匹配分数覆盖为 100%，以实现明确识别**4. 风险评分计算**对于非误报的匹配项，系统会计算该实体的**风险等级**：| 因素 | 权重 | 描述 |
| - | :-: | - |
| **类别** | 50% | PEP 级别、制裁类型、犯罪严重程度 |
| **国家风险** | 30% | 关联国家/地区的风险评级 |
| **犯罪记录** | 20% | 是否存在犯罪历史及其严重程度 |**5. 最终状态判定**基于所有非误报匹配项中的**最高风险评分**：| 风险评分 | 状态 | 操作 |
| :-: | - | - |
| 低于通过阈值 | **已通过** | 自动放行，无可信风险 |
| 处于阈值之间 | **审核中** | 标记为待人工合规审核 |
| 高于审核阈值 | **已拒绝** | 高风险，自动拒绝 |如果**全部**匹配项均为误报，则结果为**已通过**（未发现可靠的匹配项）。**6. 生成结果**生成透明详尽的报告：- 每个匹配项的**匹配分数**和**风险评分**及其细分明细
- 匹配分类（误报 vs. 未审核 vs. 已确认）
- 每个命中的来源数据库和类别详情
- 结果通过 **API 响应**、**Webhook** 或 **Business Console** 交付
- 根据您配置的风险评分阈值进行自动决策## AML 命中数据参考API 响应中返回的每个 AML 命中项均包含有关匹配实体的详细信息。以下是关键字段及其可能的值。### 数据集类别每个命中项上的 `datasets` 字段指明了该实体匹配到的合规数据库类别。可能的值：| 值 | 说明 |
| - | - |
| `PEP` | 政治公众人物（常规） |
| `PEP Level 1` | 国家元首、高级政治家、最高法院法官 |
| `PEP Level 2` | 国会议员、大使、军队将领 |
| `PEP Level 3` | 地方政府官员、中级公务员 |
| `PEP Level 4` | PEP 个人的 RCA（亲属及密切关联人） |
| `Sanctions` | 国际和国家制裁名单（OFAC、欧盟、联合国等） |
| `Adverse Media` | 与金融犯罪相关的负面新闻报道和报告 |
| `Warnings and Regulatory Enforcement` | 监管警告、执法行动和合规警报 |
| `Fitness and Probity` | 金融监管机构的胜任与诚信登记名录 |
| `SIP` | 特殊利益人群名单 |
| `SIE` | 特殊利益实体名单 |
| `Insolvency` | 破产及资不抵债名录 |### 制裁匹配`sanction_matches` 数组包含该实体被列入的各个制裁名单的详细信息。关键字段：| 字段 | 类型 | 说明 |
| - | - | - |
| `list_name` | `string[]` | 制裁名单名称（一个或多个） |
| `matched_name` | `string` | 制裁名单中显示的名称 |
| `description` | `string` | 制裁条目的描述 |
| `reason` | `string` | 实体受到制裁的自由文本原因。该字段不是枚举值，而是直接来自制裁机构，描述了被列入的具体依据（例如 "Executive Order 13224 (Terrorism)"、"Support for actions undermining Ukraine's sovereignty"）。 |
| `legal_basis` | `string[]` | 制裁的法律依据 |
| `sanction_program` | `string[]` | 实体被列入的制裁项目 |
| `sanctioning_authority` | `string[]` | 实施制裁的机构 |
| `listed_on` | `string[]` | 实体被列入的日期（一个或多个） |
| `source_url` | `string` | 来源的 URL |### 警告匹配`warning_matches` 数组包含来自警告、监管执法及相关名单的匹配详情。`additional_data` 字段可能包含一个带有结构化案件信息的 `data.case_details` 数组。#### 警告案件类型`additional_data.data.case_details[]` 内的 `case_type` 字段描述了警告案件的性质。已知的值：| 值 | 说明 |
| - | - |
| `Accusation` | 正式指控或控告 |
| `Arrest` | 逮捕记录 |
| `Bribery` | 贿赂相关案件 |
| `Criminal` | 一般刑事案件 |
| `Fraud` | 欺诈相关案件 |
| `Illegal Fundraising` | 非法集资活动 |
| `Non-conviction Terror` | 未定罪的恐怖主义相关名录 |
| `Proclaimed Offender` | 官方宣布的违法者 |
| `Regulatory Enforcement` | 监管执法行动 |
| `Terrorism` | 恐怖主义相关案件 |
| `Terrorism-related` | 与恐怖主义活动相关 |
| `Terrorism-related listing` | 因与恐怖主义有关而被列入名单 |


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