Skip to main content
كل وصفة عبارة عن برنامج نصي كامل بلغتي JavaScript وPython. تستخدم عملاء وهميين وبيئة sandbox. شغّلها كما هي بعد وضع ملفاتك الخاصة بجانبها. تشترك وصفات JavaScript في دالة مساعدة صغيرة واحدة، تُعرض أولاً. جرى تشغيل جميع الوصفات على خادم محلي بديل يعيد إجابات /extract مُعدّة مسبقاً ويُشغّل شيفرة التحقق والتقييم الخاصة بـ Sahl على الطلبات التي ترسلها (وصفة eID تستطلع خادماً بديلاً يجيب pending ثم complete). ولم تُشغَّل على واجهة API الفعلية.

الدالة المساعدة لوصفات JavaScript

احفظها باسم common.mjs.
تُطلق الدالة المساعدة خطأً يحمل status وbody وrequestId (ترويسة X-Request-ID). اذكر معرّف الطلب عند مراسلة Sahl.

1. استقبال ملف قرض

يرسل مقدّم الطلب وثيقة هوية وإثبات عنوان وكشف راتب. تريد حكماً واحداً للملف ومساراً: المتابعة، أو المراجعة البشرية، أو الرفض.
المخرجات للملف الوهمي (لا يوجد شارع أو هاتف أو بريد إلكتروني في values، لذا تقل نسبة الاكتمال عن 100 بالمئة):
آلية القرار: الإخفاق الحرج (passed: false) يعني الرفض أو التصحيح. التنبيهات دون إخفاق حرج تعني مراجعة بشرية. وغياب كل شيء يعني المتابعة. هذه المسارات سياستك أنت، لا سياسة Sahl.

2. ملف فتح حساب

يملأ العميل نموذج الطلب لديك ويرفع وثيقة هوية بصورة. تتحقق من الملف كاملاً، وتضيف فحص التكرار الخاص بك، وتحتفظ بـ case_id.
المخرجات للبيانات الوهمية، التي تملأ كل نقطة بيانات مطلوبة باستثناء sin/ssn. قائمة نقاط البيانات المطلوبة في المحرك أمريكية شمالية، والعميل المغربي لا يملك SIN، لذا يبقى sin/ssn في missing وتبلغ نسبة الاكتمال 96 بالمئة. وهي أعلى من حد التحذير البالغ 80 بالمئة، فلا يُرفع أي تنبيه:
نقاط للاقتباس:
  • تستبدل الوصفة قيم الهوية في النموذج بالقيم المقروءة من وثيقة الهوية. وإن أردت اكتشاف خطأ إملائي في النموذج، فاترك الأسماء الواردة في النموذج ضمن values ودع consistency:profile_name_id يقارنها بوثيقة الهوية (حرج عند الاختلاف).
  • أي عنصر في extra_checks يفشل وخطورته critical يجعل passed قيمته false، فيمكن لقاعدتك الخاصة أن تحجب الملف.
  • يكون policy.overrides_refused فارغاً ما لم ترسل مفتاحاً تقفله سياسة مساحة عملك.
  • بالنسبة إلى كيان قانوني، استخدم kind: "corporation" (أو نوع كيان آخر)، وأرسل legal_name وbusiness_number وdirector_names وbeneficial_owners، واقرأ الوثيقة التأسيسية بـ step_key=articles_of_incorporation. راجع نقاط البيانات المطلوبة.

3. التحقق من الدخل عبر كشف الراتب

يصرّح العميل بدخل ويرسل كشف راتب. تقرأ الواجهة كشف الراتب، ولا تضع أي قاعدة للدخل، ولا تعيد رقماً إلا إذا كان مطبوعاً في الكشف. لذا فالقواعد هنا قواعدك أنت: صاحب الكشف، وجهة العمل، والتاريخ، والدخل إن ذُكر.
المخرجات لكشف الراتب الوهمي الذي لا يطبع رقماً سنوياً:
ما تعتمد عليه هذه الوصفة:
  • لا يعود annual_income إلا إذا نص عليه كشف الراتب. والقارئ مُوجَّه بعدم التقدير إطلاقاً.
  • تتحقق الواجهة من حداثة وثائق العنوان، لا كشوف الرواتب. والتسعون يوماً هنا من قاعدتك.
  • يعتمد capacity على الدخل المصرّح به فقط. ومع غياب net_liquid_assets وtotal_net_worth تنخفض الدرجة؛ أرسلهما إن توفرا لديك. راجع القدرة.

4. التحقق عبر eID

يفتح عميل كندي حساباً عن بُعد. يغطي eID العملاء الكنديين فقط في هذا الإصدار، لذا فهذه هي الوصفة الوحيدة التي تُبقي البلد CA. تبدأ الفحص، وتنتظر العميل، وتحتفظ بتقرير PDF، ثم تتحقق تحت المرجع نفسه.
يرسل هذا بريداً إلكترونياً حقيقياً عبر مزوّد eID، حتى في sandbox. استبدل العنوان بعنوان تتحكم فيه. تحتاج مساحة عملك إلى حساب خاص لدى مزوّد eID.
المخرجات، مع عميل ينهي العملية بعد الاستطلاع الثالث:
احتفظ بملف PDF: يحذف المزوّد البيانات الشخصية بعد نحو سبعة أيام. راجع التحقق عبر eID.

5. التعامل مع حقل لم يقرأه القارئ

لا تعيد الواجهة درجة ثقة لكل حقل. فالحقل إما موجود في fields أو غير موجود، وتبيّن الفحوص متى تغيب الحقول الأساسية في وثيقة ما. تحوّل هذه الوصفة تلك الإشارات إلى ما يجب طلبه من العميل، وتعيد المحاولة فقط إذا لم يُقرأ الملف أصلاً، وتجعل ما كتبه العميل يتغلب على ما قُرئ.
عندما تعود بطاقة التعريف الوطنية (CIN) دون id_number، تكون المخرجات:
قواعد يجب الالتزام بها: