> ## 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[]`**로 반환됩니다. 각 항목은 워크플로 내의 1회 AML 실행에 해당합니다(두 번 실행되는 AML 검사는 서로 다른 `node_id` 값을 가진 두 개의 항목을 생성합니다).

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

독립형 AML 및 기업 세션도 레코드당 동일한 형태를 반환합니다. 아래 필드는 [Data models](https://docs.didit.me/ko/reference/data-models.md#aml-스크리닝) 페이지의 표준 스키마를 반영합니다.

## 하나의 판정이 아닌 세 가지 점수

`status`는 판정 결과이며, 이 판정의 근거가 된 숫자도 동일한 payload에 포함되어 있습니다. `Approved` / `In Review` / `Declined`만으로 분기하는 대신 자체적인 위험 등급 체계를 구축할 때(예: 재산 출처 또는 PEP 자체 신고와 같은 설문지 답변과 AML 위험을 결합할 때) 이 값들을 확인하십시오.

| 점수 | 위치 | 척도 | 확인 내용 |
| - | - | - | - |
| `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 버전의 `status.updated` 및 `data.updated` webhook에 포함된 `decision` 객체(V3의 `aml_screenings[]` 및 레거시 V2 / V1의 단수형 `aml`), 그리고 독립형 AML API에 포함됩니다. 플래그 지정/정상 라벨만 확인하는 컨슈머는 `status`(또는 일치 항목의 `review_status`)만 읽고 그 옆의 점수를 건너뛰는 것입니다. 콘솔에도 동일한 숫자가 표시됩니다. AML 섹션 헤더에는 집계된 **위험 점수**가 표시되며, 일치 항목 테이블의 각 행에는 **일치 점수**와 **위험 점수**가 표시되고 마우스를 올리면 세부 분석이 제공됩니다.

## 스키마

표준 스키마는 [데이터 모델 레퍼런스의 AML 스크리닝](https://docs.didit.me/ko/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 | 다음 연간 **결제** 갱신(`last_aml_bill_date` + 365일)의 `YYYY-MM-DD`입니다. 모니터링이 활성화되기 전까지는 `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/ko/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자리의 16진수 문자가 붙습니다. 대상이 다시 스크리닝될 때 동일한 일치 엔터티는 동일한 `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/ko/core-technology/aml-screening/aml-match-score.md)를 참조하십시오. |
| `risk_score` | number (0-100) | 엔터티 위험도입니다. 일치된 엔터티가 얼마나 위험한지를 나타냅니다. `False Positive`가 아닌 일치 항목 중 가장 높은 `risk_score`가 최상위 `score`가 됩니다. [AML 위험 점수](https://docs.didit.me/ko/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/ko/core-technology/aml-screening/continuous-monitoring-aml-screening.md#모니터링-실행-입증)는 아무것도 변경되지 않은 실행을 포함하여 각 실행을 개별적으로 나열합니다. 전체 수명 주기는 [지속적인 AML 모니터링](https://docs.didit.me/ko/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/ko/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/ko/core-technology/aml-screening/warnings-aml-screening.md) — AML이 발생시킬 수 있는 모든 경고 코드
* [AML 위험 점수](https://docs.didit.me/ko/core-technology/aml-screening/aml-risk-score.md) 및 [AML 일치 점수](https://docs.didit.me/ko/core-technology/aml-screening/aml-match-score.md) — 두 점수가 계산되는 방식
* [지속적인 AML 모니터링](https://docs.didit.me/ko/core-technology/aml-screening/continuous-monitoring-aml-screening.md) — 모니터링 이벤트 활성화 및 처리
* [감시 목록 데이터베이스](https://docs.didit.me/ko/core-technology/aml-screening/watchlist-database-aml-screening.md) — 포함되는 데이터 세트
* [데이터 모델 — AML 스크리닝](https://docs.didit.me/ko/reference/data-models.md#aml-스크리닝) — 표준 스키마
* [webhook](https://docs.didit.me/ko/integration/webhooks.md) — AML이 세션 상태를 변경할 때 `status.updated`가 트리거되며, 일치 항목 검토 상태 변경 및 모니터링 데이터 갱신 시 `data.updated`가 트리거됨


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