POST /v1/kyc/assess الطلب نفسه الخاص بـ /verify، ويجري التحقق نفسه، ثم يبني فوقه تقييماً. النطاق: kyc:verify. وهو ليس تصنيفاً ائتمانياً. يعيد أربع قراءات للمستشار: تحمّل المخاطر، والقدرة المالية، ومخاطر الامتثال، والملاءمة.
كل رقم في هذه الصفحة تحسبه دالة حتمية (deterministic) من values والحكم. المُدخل نفسه يعطي المُخرج نفسه.
الاستجابة
verification هنا؛ وهو الحكم الكامل لـ /verify. ويكرر التقييم الحكم أيضاً تحت assessment.verification. والمثال هو المُخرج الحقيقي للمحرّك على بيانات وهمية (راجع الجولة المتكاملة).
تحمّل المخاطر
يتطلب الإجابات الأربع كلها فيvalues. وإذا كانت إحداها فارغة تكون score وband بقيمة null وتسرد missing المفاتيح الغائبة. لا تُحسب درجة جزئية ولا تُفترض قيمة افتراضية.
الإجابة الموجودة لكنها غير مدرجة في الجدول تنال درجة افتراضية: الهدف 50، والأفق 50، والمعرفة 40، والخبرة 40. استخدم النصوص الحرفية أعلاه.
uses_leverage بقيمة true (منطقية) أو "true" أو "Yes"، تُضاف 8 نقاط. وتُقرَّب النتيجة وتُحصر بين 0 و100.
مثال: balanced (50)، و5-10 years (68)، وGood (70)، وأقل من 5 سنوات (50) تعطي 50 x 0.35 + 68 x 0.25 + 70 x 0.20 + 50 x 0.20 = 58.5، تُقرَّب إلى 58،
Balanced.
القدرة
تتطلب واحداً على الأقل منannual_income وnet_liquid_assets وtotal_net_worth. وبدون أي منها تكون score وband بقيمة null. ومع واحد أو اثنين تُحسب الدرجة وتسرد missing البقية. ويُعدّ المبلغ الغائب بقيمة 0، فيقع في الشريحة الدنيا (درجة فرعية 12 أو 15)، ولذلك فإن الإجابة الغائبة تخفض الدرجة. وتُحلَّل القيم من نصوص مثل 84000 أو 150,000 أو $1.2M أو 84k.
مثال: دخل 84,000 (35)، وأصول سائلة 20,000 (12)، وصافي ثروة 60,000 (15) تعطي 10.5 + 4.2 + 5.25 = 19.95، تُقرَّب إلى 20،
Low. وتُقرأ المبالغ في العيّنة بالدرهم المغربي (MAD). ويقرأ المحرّك المبالغ أرقاماً مجردة مقابل شرائح ثابتة لا ترتبط بعملة معينة، ولذلك تنال 84,000 الدرجة نفسها بأي عملة.
لا يحوّل API العملات. فالشرائح بالوحدة التي ترسلها.
مخاطر الامتثال
تُجمع النقاط من الملف الشخصي والحكم.
يمكن لسياسة مساحة العمل أن تخفض سقف Low (الافتراضي 1) وسقف Medium (الافتراضي 3)، ولا يمكنها رفعهما أبداً. وتسرد
factors كل مساهمة بالكلمات، مثل Flag: <label> (<detail>) أو Verification failed: <label> (<detail>).
لا تضيف فحوص المعلومات (info) شيئاً. ولاحظ أن التحذير يُحتسب حتى لو كان مما لا يستطيع العميل إصلاحه، مثل completeness دون 80 بالمئة: فالملف الهزيل يناله نقطة واحدة.
فئات الجغرافيا
مستمدة من القوائم العامة لمجموعة العمل المالي (FATF) حتى 19 يونيو 2026 (FATF_LISTS_AS_OF). والمجموعة لقطة ثابتة في الشيفرة وتُحدَّث بعد كل اجتماع عام لـ FATF. الرموز بصيغة ISO alpha-2. وتُفهم بعض رموز alpha-3 والأسماء (IRN وiran وusa وcanada). وما سوى ذلك يُعدّ عادياً.
بلد محظور وحده ينال 6 نقاط، وهو مستوى High. لا تُدخِل هذا الجدول في شيفرة تطبيقك ثابتاً: فهو يتغير مع كل إصدار من FATF.
الملاءمة
تسري أول قاعدة تنطبق.Suitable قراءة للمستشار وليست حكماً تنظيمياً بالملاءمة. فالمؤسسة هي التي تتخذ ذلك الحكم.
أمثلة تطبيقية
ملف كامل ونظيف يعطي:suitability فيه هي Blocked — document verification failed، وتبقى risk_level تقرأ Balanced.
مثال على طلب
documents: [] وrequire_documents: false لا تترتب على المثال أعلاه فحوص وثائقية، ولذلك يعتمد خطر الامتثال على تحذير completeness وسطر الفحص (screening) في بيئتك. أما risk_profile وcapacity المتوقعتان فهما نفسهما أعلاه.
ملخص Webhook
يحمل الحدثkyc.case_assessed القيمتين risk_level وsuitability في ملخص verdict. وهناك تكون risk_level هي compliance_risk.level (Low أو Medium أو High)، لا شريحة تحمّل المخاطر. راجع Webhooks.