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

> حلل استجابات فحص AML من Didit: التطابقات، العقوبات، الأشخاص المعرضون سياسياً، الأخبار السلبية، درجات المخاطر والمطابقة، والمراقبة المستمرة.

## نظرة عامة

يُجري فحص AML مطابقة تقاطعية لهوية الشخص الذي تم التحقق منه مع مجموعات بيانات العقوبات العالمية، والأشخاص المعرضين سياسياً (PEP)، وقوائم المراقبة، والأخبار السلبية. تُرجع كل نتيجة مطابقة الكيان المطابق، ومجموعة (أو مجموعات) البيانات التي أنتجت المطابقة، ودرجتين — `match_score` (الثقة في الهوية) و`risk_score` (مخاطر الكيان) — بالإضافة إلى تفصيل منظم حسب المصدر (`pep_matches[]`، و`sanction_matches[]`، و`warning_matches[]`، و`adverse_media_matches[]`). تمثل الدرجة الإجمالية `score` أعلى `risk_score` بين نتائج المطابقة التي لم يتم تمييزها كـ `False Positive`.

يتم إرجاع نفس البنية بواسطة فحص AML في جلسات المستخدمين (KYC)، وجلسات الشركات (KYB)، وAPI الخاص بفحص AML المستقل.

![لقطة شاشة لتقرير فحص AML من Didit مع نتائج مطابقة للعقوبات والأشخاص المعرضين سياسياً والأخبار السلبية](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/ar/reference/data-models.md#فحص-aml).

## ثلاث درجات، وليس حكماً واحداً

إن `status` هو حكم؛ والأرقام التي اشتُقَّ منها موجودة في نفس الـ payload. اقرأها عندما تبني تصنيف المخاطر الخاص بك (على سبيل المثال الجمع بين مخاطر AML وإجابات الاستبيانات مثل مصدر الثروة أو الإقرار الذاتي بكون الشخص معرضاً سياسياً) بدلاً من التفريع فقط بناءً على `Approved` / `In Review` / `Declined`:

| الدرجة | المكان | المقياس | ما الذي تجيب عنه |
| - | - | - | - |
| `hits[].match_score` | لكل نتيجة مطابقة | 0-100 | هل نتيجة المطابقة هذه هي نفس الشخص الذي تم فحصه؟ تحدد `review_status` الأولي لنتيجة المطابقة. |
| `hits[].risk_score` | لكل نتيجة مطابقة | 0-100 | ما مدى خطورة الكيان المطابق؟ يعتمد على فئات نتيجة المطابقة (عقوبات، شخص معرض سياسياً، جريمة، ...). |
| `score` | لكل عملية فحص | 0-100 | أعلى `risk_score` بين نتائج المطابقة التي لم يتم تمييزها كـ `False Positive`. هذا هو ما تتم مقارنته مع حدود القبول / المراجعة لإنتاج `status`. |

تتواجد الثلاثة جميعها في كل مكان يُسلَّم فيه تقرير AML: في `GET /v3/session/{sessionId}/decision/`، وكائن `decision` في webhooks الخاصة بـ `status.updated` و`data.updated` في **كل** إصدار من إصدارات webhook (مصفوفة `aml_screenings[]` في V3، و`aml` بصيغة المفرد القديمة في V2 / V1)، وAPI الخاص بفحص AML المستقل. والطرف المستهلك الذي يرى فقط تصنيف «مُعلَّم» / «واضح» يقرأ `status` (أو `review_status` لنتيجة المطابقة) ويتجاهل الدرجات المجاورة له. تعرض لوحة التحكم نفس الأرقام: يحمل رأس قسم AML **درجة المخاطر** الإجمالية، ويحمل كل صف في جدول المطابقات **درجة التطابق** و**درجة المخاطر** مع تفصيل يظهر عند التمرير بالفأرة.

## المخطط

راجع [فحص AML في مرجع نماذج البيانات](https://docs.didit.me/ar/reference/data-models.md#فحص-aml) لمعرفة المخطط المعتمد. الحقول من المستوى الأعلى:

| الحقل | النوع | ملاحظات |
| - | - | - |
| `status` | `Not Finished` \| `Approved` \| `Declined` \| `In Review` | حالة على مستوى الميزة (`FeatureStatusChoices`). تقود قواعد سير العمل وشاشة المراجعة اليدوية. |
| `total_hits` | عدد صحيح | عدد الإدخالات في `hits[]`. القيمة `0` عند عدم وجود أي تطابقات. |
| `entity_type` | `person` \| `company` | نوع الكيان المفحوص. تستخدم الشركات والأفراد منطق تطابق مختلفاً. |
| `score` | عدد عشري (0-100) \| null | درجة مخاطر AML الإجمالية — أعلى `risk_score` بين النتائج غير المصنفة كـ `False Positive`. القيمة `0` عند عدم وجود تطابقات محتملة؛ و`null` حتى يتم تشغيل الفحص. |
| `hits` | `Hit[]` | إدخال واحد لكل سجل متطابق، **بما في ذلك** النتائج المصنفة تلقائياً كـ `False Positive` (تظل مدرجة ولكن تُستبعد من `score` الإجمالي). راجع الحقول الخاصة بكل نتيجة أدناه. |
| `screened_data` | كائن | القيم الدقيقة التي أرسلتها Didit للفحص: `full_name`، `date_of_birth`، `nationality` (ISO 3166-1 alpha-2)، `document_number`. مفيدة لتوضيح النتيجة للمراجع أو لتدقيق ما تم البحث عنه. |
| `is_ongoing_monitoring_enabled` | قيمة منطقية | `true` بمجرد تفعيل المراقبة المستمرة للجلسة. |
| `next_ongoing_monitoring_bill_date` | سلسلة نصية \| null | بتنسيق `YYYY-MM-DD` لتاريخ تجديد **الفوترة** السنوي التالي (`last_aml_bill_date` + 365 يوماً). القيمة `null` حتى يتم تفعيل المراقبة. هذا ليس تاريخ فحص — راجع `last_ongoing_screening_at` أدناه. |
| `last_ongoing_screening_at` | سلسلة نصية (ISO 8601) \| null | وقت آخر عملية إعادة فحص **مكتملة** لهذا السجل بواسطة المراقبة المستمرة، سواء تغيرت النتيجة أم لا. تكون القيمة `null` عندما لا يكون السجل قد خضع لإعادة الفحص مطلقاً منذ إطلاق هذا الحقل — ولا يتم ملؤه بأثر رجعي من تاريخ التفعيل أو الفوترة أبداً. |
| `last_ongoing_screening_datasets_updated_at` | سلسلة نصية (ISO 8601) \| null | أحدث تاريخ تحديث لمجموعة بيانات AML أبلغ عنه المزود في وقت ذلك الفحص. تكون القيمة `null` عندما لا يبلغ المزود عن أي تواريخ لمجموعات البيانات؛ ولا يتم تقديره مطلقاً. |
| `warnings` | `Warning[]` | وسوم تحذير خاصة بفحص AML. راجع [تحذيرات AML](https://docs.didit.me/ar/core-technology/aml-screening/warnings-aml-screening.md). |
| `node_id` | سلسلة نصية \| null | يحدد عقدة مخطط سير العمل التي أنتجت تنفيذ AML هذا في استجابات جلسة `/v3/`. لا تتضمنه استجابة واجهة برمجة تطبيقات AML المستقلة. |

### حقول كل نتيجة

يحتوي كل إدخال في `hits[]` على الحقول التالية (يظهر جزء منها). يتم ملء مصفوفات مصدر التطابق — `pep_matches[]`، و`sanction_matches[]`، و`warning_matches[]`، و`adverse_media_matches[]` — فقط لمجموعة (أو مجموعات) البيانات التي تنتمي إليها النتيجة.

| الحقل | النوع | ملاحظات |
| - | - | - |
| `id` | سلسلة نصية | معرّف ثابت للنتيجة: `hit_` متبوعاً بـ 24 حرفاً بالنظام الست عشري. يحتفظ الكيان المتطابق نفسه بنفس المعرّف `id` عند إعادة فحص الكيان نفسه. استخدمه كـ `hit_id` عند تحديث `review_status` عبر endpoint الخاص بحالة نتيجة AML. |
| `caption` | سلسلة نصية | الاسم الأساسي للكيان كما هو مخزن في مجموعة البيانات. |
| `datasets` | سلسلة نصية\[] | فئات المخاطر المدرج تحتها الكيان: `PEP` (مع مستواه، من `PEP Level 1` إلى `PEP Level 4`)، و`Sanctions`، و`Adverse Media`، و`Warnings and Regulatory Enforcement`، و`Fitness and Probity`، و`SIP`، و`SIE` أو `Insolvency`، و`Other Lists` عندما لا يحدد مصدر الكيان أيّاً منها. |
| `match_score` | رقم (0-100) | الثقة في الهوية — مدى احتمالية أن تكون النتيجة لنفس الشخص. النتائج الأقل من `aml_match_score_threshold` (الافتراضي `93`) تبدأ كـ `False Positive`؛ والنتائج التي تساوي هذا الحد أو تتجاوزه تبدأ كـ `Unreviewed`. راجع [درجة تطابق AML](https://docs.didit.me/ar/core-technology/aml-screening/aml-match-score.md). |
| `risk_score` | رقم (0-100) | مخاطر الكيان — مدى خطورة الكيان المتطابق. أعلى `risk_score` بين النتائج غير المصنفة كـ `False Positive` يصبح هو `score` في المستوى الأعلى. راجع [درجة مخاطر AML](https://docs.didit.me/ar/core-technology/aml-screening/aml-risk-score.md). |
| `score` | رقم (0-1) | درجة التطابق الموزونة **المهملة**. استخدم `match_score` بدلاً منها. |
| `match` | قيمة منطقية \| null | علامة التطابق التام القديمة. يفضل استخدام `match_score` + `review_status`. |
| `target` | قيمة منطقية \| null | ما إذا كان الكيان هو الهدف المباشر للإدراج. |
| `review_status` | `Unreviewed` \| `Confirmed Match` \| `False Positive` \| `Inconclusive` | تُشتق القيمة الأولية من مقارنة `match_score` مقابل `aml_match_score_threshold`. قابلة للتعديل عبر endpoint الخاص بحالة نتيجة AML؛ يؤدي تحديثها إلى إطلاق webhook بالحدث `data.updated` ولكنه **لا** يعيد احتساب `status` للميزة تلقائياً — استخدم endpoint الخاص بحالة AML أو المراجعة عبر لوحة التحكم لذلك. |
| `score_breakdown` | كائن | كيفية احتساب `match_score`: درجات الاسم/تاريخ الميلاد/الدولة، والأوزان، والمساهمات، وتأثير "المفتاح الذهبي" لرقم المستند (`MATCH` يضبط النتيجة على 100، و`NEUTRAL` يحتفظ بالدرجة الأساسية، و`HARD_MISMATCH` يفرض خصماً). |
| `properties` | كائن | سمات مجموعة البيانات الأولية (الأسماء، والأسماء المستعارة، وتواريخ الميلاد، والجنسية، …). مفيدة لاتخاذ القرار. |
| `url` | سلسلة نصية \| null | الرابط المصدري للكيان المتطابق، عند توفره. |
| `rca_name` | سلسلة نصية \| null | عندما تكون النتيجة لأحد الأقارب أو الشركاء المقربين (RCA)، يمثل هذا اسم الشخص ذي الصلة الذي حدث التطابق من خلاله. |
| `pep_matches[]` | كائن\[] | مناصب الأشخاص المعرضين سياسياً (PEP)، والجهات الناشرة، وتواريخ الميلاد، والتعليم الخاص بالنتيجة. |
| `sanction_matches[]` | كائن\[] | اسم قائمة العقوبات، والبرنامج، والجهة الفارضة للعقوبات، وتاريخ الإدراج، وروابط المصدر. |
| `warning_matches[]` | كائن\[] | سجلات قوائم المراقبة العامة أو إجراءات الإنفاذ التنظيمي. |
| `adverse_media_matches[]` | كائن\[] | الأخبار السلبية على مستوى المقال: العنوان، والملخص، والمشاعر، ورابط المصدر، وتاريخ النشر، والكلمات المفتاحية. |
| `adverse_media_details` | كائن \| null | تحليل المشاعر الإجمالي للأخبار السلبية وتعداد الكلمات المفتاحية عبر النتيجة. |
| `risk_view` | كائن | تفصيل المخاطر الموزونة حسب الفئة والدولة والجريمة للنتيجة (`risk_level`، `risk_scores`، `weightage`). |
| `linked_entities[]` | كائن\[] | الكيانات ذات الصلة التي تربطها مجموعة البيانات بالنتيجة (مثل العائلة أو شركاء العمل). |
| `first_seen` / `last_seen` | سلسلة نصية \| null | متى رصدت مجموعة البيانات هذا الإدخال لأول مرة/آخر مرة. |
| `additional_information` | كائن | بيانات إضافية حرة من مزود مجموعة البيانات. |

> [!NOTE]
>
> تظل النتائج المصنفة كـ `False Positive` (بسبب انخفاض `match_score` عن حد درجة التطابق، أو لأن المراجع حددها كذلك) موجودة في `hits[]` لأغراض التدقيق. ولا يتم استبعادها إلا من عملية احتساب `score` الإجمالي فقط.

### المراقبة المستمرة

عندما تكون قيمة `is_ongoing_monitoring_enabled` هي `true`، تعيد Didit فحص الشخص المعني باستمرار وتُعيد إصدار تقرير AML في أي وقت تُضاف فيه نتيجة مطابقة، أو تُزال، أو تتغير. عمليات إعادة الفحص التي تُغيّر حالة AML تُطلق webhook من نوع `status.updated`؛ بينما عمليات إعادة الفحص التي تُغيّر بيانات نتائج المطابقة فقط تُطلق `data.updated`. تمتد نافذة المراقبة بدءاً من `last_aml_bill_date` لمدة 365 يوماً؛ ويوضح `next_ongoing_monitoring_bill_date` موعد حلول التجديد السنوي التالي.

تعتمد كل هذه الإشارات على التغييرات، لذا فإن الشخص الذي يُعاد فحصه لعدة أشهر دون أي نتائج مطابقة جديدة لن يُنتج أيًا منها. يُعد `last_ongoing_screening_at` الحقل الوحيد الذي يتحدّث بعد **كل** عملية تشغيل مكتملة، ويسرد [endpoint الخاص بسجل الفحص](https://docs.didit.me/ar/core-technology/aml-screening/continuous-monitoring-aml-screening.md#إثبات-تشغيل-المراقبة) كل عملية تشغيل على حدة — بما في ذلك العمليات التي لم تُغيّر أي شيء. راجع [مراقبة AML المستمرة](https://docs.didit.me/ar/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/ar/core-technology/aml-screening/aml-risk-score.md). تتكامل قواعد الحالة المخصصة مع الحالة المشتقة وفق أسبقية `Declined` > `In Review` > `Approved`؛ كما يمكن للمراجعين تجاوز حالة AML يدوياً من لوحة التحكم أو عبر endpoint الخاص بحالة AML.

## أمثلة

### مقبولة — لا توجد نتائج مطابقة

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

### قيد المراجعة — نتيجة مطابقة لـ 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/ar/core-technology/aml-screening/warnings-aml-screening.md) — كل رموز التحذير التي يمكن أن يصدرها فحص AML
* [درجة مخاطر AML](https://docs.didit.me/ar/core-technology/aml-screening/aml-risk-score.md) و[درجة التطابق لـ AML](https://docs.didit.me/ar/core-technology/aml-screening/aml-match-score.md) — كيفية احتساب الدرجتين
* [مراقبة AML المستمرة](https://docs.didit.me/ar/core-technology/aml-screening/continuous-monitoring-aml-screening.md) — تفعيل أحداث المراقبة واستهلاكها
* [قاعدة بيانات قوائم المراقبة](https://docs.didit.me/ar/core-technology/aml-screening/watchlist-database-aml-screening.md) — مجموعات البيانات المشمولة
* [نماذج البيانات — فحص AML](https://docs.didit.me/ar/reference/data-models.md#فحص-aml) — المخطط القياسي
* [webhook](https://docs.didit.me/ar/integration/webhooks.md) — يُطلق `status.updated` عندما يُغيّر فحص AML حالة الجلسة؛ بينما تُطلق التغييرات في حالة مراجعة نتائج المطابقة وتحديثات بيانات المراقبة حدث `data.updated`


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