> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sahlfinancial.com/llms.txt
> Use this file to discover all available pages before exploring further.

# أنواع المستندات والحقول

> أنواع المستندات التي يعيدها القارئ، والحقول التي يقرؤها، والحقول التي يحتاجها كل فحص، ومفاتيح الخطوات.

القارئ قارئ مستندات عام. ينظر في الملف، ويسمّي نوع المستند، ويعيد ما يستطيع قراءته من مجموعة ثابتة من مفاتيح الحقول. لا يوجد في الشيفرة مخطط (schema) منفصل لكل نوع مستند. ما يختلف بين الأنواع هو الحقول التي تتوقعها الفحوص، والحقول التي تُحجب. تسرد هذه الصفحة الأمرين.

## أنواع المستندات التي يعيدها القارئ

`documents[].doc_type` هو أحد هذه الرموز، أو سلسلة أخرى بأحرف صغيرة، أو null.

| `doc_type` | ما هو | الفحوص الخاصة به |
| - | - | - |
| `national_id` | بطاقة هوية وطنية أو إقليمية (CIN المغربية، هوية إقليمية بصورة) | legible وexpiry وadult وMRZ إن كان مطبوعًا، وصيغة CIN (المغرب) |
| `passport` | جواز سفر | legible وexpiry وadult وMRZ |
| `drivers_license` | رخصة قيادة | legible وexpiry وadult، وصيغة رقم الرخصة بحسب المقاطعة أو الولاية |
| `pr_card` | بطاقة الإقامة الدائمة الكندية | legible وexpiry وadult وMRZ إن كان مطبوعًا |
| `residence_permit` | أي تصريح إقامة آخر (carte de séjour، البطاقة الخضراء الأمريكية) | legible وexpiry وadult وMRZ إن كان مطبوعًا |
| `utility_bill` | فاتورة من مزوّد كهرباء أو غاز أو ماء أو نفط أو إنترنت أو كابل أو هاتف | legible وrecency |
| `proof_of_address` | أي مستند آخر يُظهر عنوانًا (عقد إيجار، تأمين، رسالة حكومية) | legible وrecency. لا تقبله خطوة `proof_of_address`. |
| `bank_statement` | كشف حساب بالعمليات والأرصدة | legible وrecency |
| `void_cheque` | شيك واحد. ليس إثبات عنوان أبدًا. | legible. يُتجاهل وسم VOID في خطوة `banking` أو `rib`، ولأي مستند يُقرأ على أنه `void_cheque`. |
| `bank_letter` | رسالة من البنك تؤكد الحساب | لا شيء |
| `invoice` | فاتورة من مورّد ليس مزوّد خدمات عامة | لا شيء |
| `payslip` | قسيمة راتب | لا شيء. الحقول فقط. |
| `articles_of_incorporation` | عقد التأسيس، براءات التأسيس (letters patent) | legible |
| `business_registration` | رسالة رقم المنشأة أو مستخرج السجل | legible |
| `bylaws` | النظام الأساسي أو اتفاقية التشغيل أو الشراكة | لا شيء |
| `beneficial_ownership` | إقرار يسمّي المالكين بنسبة 25% أو أكثر | لا شيء |
| `directors_register` | سجل المديرين والمسؤولين | لا شيء |
| `board_resolution` | قرار مجلس الإدارة، مثل فتح الحساب | لا شيء |
| `financial_statements` | الميزانية العمومية وقائمة الدخل | لا شيء |
| `trust_deed` | صك الصندوق الائتماني (trust) أو إعلانه | لا شيء |
| `beneficiary_list` | قائمة المستفيدين من الصندوق الائتماني | لا شيء |
| `other` | أي مستند لا يتأكد منه القارئ | لا شيء |

يحصل كل مستند أيضًا على الفحوص التي لا تعتمد على نوعه: بوابة `doctype:` عندما تفرض الخطوة أو التلميح بوابة (أدناه)، و`expiry:` عند قراءة `id_expiry`، وفحص MRZ عند قراءة أسطر MRZ، وفحوص الملف `provenance:` وفحص `authenticity:specimen:`. يشرح [دليل التحقق](/ar/guides/verification) كلًا منها.

يُطلب من القارئ الإجابة بـ `other` عند الشك، لأن تصنيفًا خاطئًا واثقًا يؤدي إلى رفض مستند العميل. وتقبل الخطوات التي تتوقعها المستندات القانونية الحرة (المجموعة الأخيرة) إلى جانب `other`. ويُحوَّل النص الحر من القارئ إلى هذه الرموز بحسب جذر الكلمة، فتصل "Driver License" و"PR Card" و"Void Cheque" على أنها `drivers_license` و`pr_card` و`void_cheque`.

يُقبل مستندان للعنوان كإثبات عنوان: `utility_bill` و`bank_statement`. أما الشيك فلا يكون إثباتًا أبدًا.

## مفاتيح الحقول

كل مفتاح يجوز للقارئ إعادته، مجمّعًا. المفتاح غير المدرج هنا يُسقط.

| المجموعة | المفاتيح |
| - | - |
| الهوية | `first_name`, `middle_name`, `last_name`, `date_of_birth`, `sex`, `citizenship`, `id_type`, `id_number`, `id_expiry`, `id_country`, `id_province`, `sin`, `ssn` |
| MRZ | `mrz_line1`, `mrz_line2`, `mrz_line3`. جواز السفر: سطران من 44. بطاقة الهوية: 3 أسطر من 30. حرفيًا، مع حشو `<`. |
| عنوان السكن | `street1`, `city`, `province`, `postal_code`, `country`, `phone`, `email` |
| العمل | `occupation`, `employer_name`, `type_of_business`, `employer_address`, `employer_city`, `employer_province`, `employer_postal`, `business_phone` |
| البيانات المالية | `annual_income`, `net_liquid_assets`, `net_fixed_assets`, `total_net_worth` |
| البيانات المصرفية | `bank_name`, `bank_number` (مؤسسة كندية، 3 أرقام), `bank_transit` (فرع كندي، 5 أرقام), `bank_routing` (ABA الأمريكي، 9 أرقام), `bank_account`, `iban` |
| الكيان | `legal_name`, `business_number`, `registration_number`, `ice`, `if_number`, `tax_id`, `incorporation_date`, `incorporation_jurisdiction`, `entity_address`, `entity_city`, `entity_province`, `entity_postal`, `entity_phone` |
| أشخاص الرقابة | `rp_first_name`, `rp_last_name`, `rp_occupation`, `director_names`, `beneficial_owners` (أسماء كاملة مفصولة بفواصل) |
| عن المستند | `document_date` (التاريخ المطبوع عليه), `document_holder_name` (صاحب المستند), `specimen_markings` (علامات العينة مفصولة بفواصل، وتبقى في عنصر المستند فقط) |

`id_type` هو أحد `Passport` أو `Driver License` أو `National ID` أو `Residence Permit` (بطاقة الإقامة الدائمة PR والبطاقة الخضراء الأمريكية هما `Residence Permit`).

يُبلَّغ القارئ بأي جهة في المستند هي العميل. في الفاتورة أو كشف الاستهلاك أو كشف الحساب، العميل هو المستلم (الجهة "المفوترة")، لا المُصدِر أبدًا. و`document_holder_name` و`legal_name` ومفاتيح العنوان والاتصال تصف المستلم.

## الحقول بحسب نوع المستند

ما يُطلب من القارئ البحث عنه في كل نوع، وما تحتاجه الفحوص. لا يعيد القارئ إلا ما هو مطبوع ومقروء. لا شيء مما يلي مضمون العودة.

| `doc_type` | الحقول المتوقعة | الحقول التي يحتاجها الفحص (`legible:`) |
| - | - | - |
| `passport` | `first_name`, `last_name`, `date_of_birth`, `sex`, `citizenship`, `id_type`, `id_number`, `id_expiry`, `id_country`, `mrz_line1`, `mrz_line2`, `document_holder_name` | `first_name`, `last_name`, `date_of_birth`, `id_number` |
| `national_id` | الأسماء، `date_of_birth`, `sex`, `id_number`, `id_expiry`, `id_country`، حقول العنوان على الظهر، من `mrz_line1` إلى `mrz_line3` | `first_name`, `last_name`, `id_number` |
| `drivers_license` | الأسماء، `date_of_birth`, `id_number`, `id_expiry`, `id_province`, `id_country`، حقول العنوان، `sex` | `first_name`, `last_name`, `id_number` |
| `pr_card`, `residence_permit` | الأسماء، `date_of_birth`, `id_number`, `id_expiry`, `citizenship`، أسطر MRZ | `first_name`, `last_name`, `id_number` |
| `utility_bill`, `proof_of_address` | `street1`, `city`, `province`, `postal_code`, `country`, `document_holder_name`, `document_date` | `street1`, `city`, `postal_code`, `document_holder_name` |
| `bank_statement` | `bank_name`, `document_holder_name`, `document_date`, `bank_number`, `bank_transit`, `bank_routing`, `bank_account`, `iban`، حقول العنوان | `bank_name`, `document_holder_name` |
| `void_cheque` | `bank_number`, `bank_transit`, `bank_account` (كندا) أو `bank_routing`, `bank_account` (الولايات المتحدة) | `bank_account` |
| `bank_letter` | `bank_name`، `bank_number` و`bank_transit` (كندا) أو `bank_routing` (الولايات المتحدة)، `bank_account`, `document_holder_name` | لا شيء |
| `invoice` | المستلم: `document_holder_name`، حقول العنوان. حقول المُصدِر محجوبة، والحقول المصرفية محجوبة. | لا شيء |
| `payslip` | `document_holder_name`, `first_name`, `last_name`, `employer_name`, `occupation`, `document_date`، حقول عنوان صاحب العمل. `annual_income` فقط إذا ذكرته القسيمة. | لا شيء |
| `articles_of_incorporation` | `legal_name`, `incorporation_date`, `incorporation_jurisdiction`, `registration_number`, `director_names` | `legal_name` |
| `business_registration` | `business_number`, `legal_name`, `registration_number`, `ice`, `if_number`, `tax_id`، حقول عنوان الكيان | `business_number`, `legal_name` |
| أوراق الكيان الأخرى | `legal_name`, `director_names`, `beneficial_owners` حيث يسردها المستند | لا شيء |

إذا غابت جميع الحقول المتوقعة لنوع ما، يكون `legible:` بدرجة critical. وإذا غاب بعضها فقط فهو تحذير يسمّيها (`could not read: id_number`).

<Note>
  لا تُقرأ المبالغ المالية إلا من مستند يذكرها. تُظهر قسيمة الراتب أجر فترة معينة. ويُطلب من القارئ ألا يقدّر أبدًا، فيغيب `annual_income` ما لم يكن مطبوعًا. لا تعتمدوا على قسيمة راتب وحدها لتحديد الدخل السنوي. انظر [الدليل التطبيقي](/ar/guides/walkthrough).
</Note>

## الحقول التي تصل إلى `fields`

| القاعدة | الأثر |
| - | - |
| مفاتيح مصرفية من مستند غير مصرفي | تُزال. وحدها `void_cheque` و`bank_statement` و`bank_letter` و`rib` تحتفظ بـ `bank_*`. وفي النوع غير المسمّى، يُبقيها تلميح `doc_type` الذي يسمّي مستندًا مصرفيًا (شيك، كشف حساب، رسالة من البنك، relevé، RIB). |
| هوية المُصدِر في `invoice` | تُزال من الدمج ما لم يتفق اسم المستلم والاسم القانوني. |
| `specimen_markings` | في عنصر المستند فقط. |
| المفتاح نفسه في عدة ملفات | تفوز القيمة غير الفارغة الأولى في `fields` المدمجة. ويحتفظ كل مستند بقيمته في `documents[].fields`. |

## البوابة: `step_key` و`doc_type`

يجعل `step_key` الاستدعاء يتحقق من أن المستند من النوع الذي تتوقعه الخطوة. فحص `doctype:` من درجة critical: إذا قال القارئ "فاتورة مرافق" وكانت الخطوة تأخذ هوية بصورة، تقول الإجابة `this is a utility bill; this step takes a passport, a national ID card, a driver's licence...` ويفشل العنصر.

إذا لم ترسلوا `step_key`، يُستخدم نص `doc_type` كبوابة أيضًا عندما يحتوي إحدى هذه العبارات (بأحرف صغيرة، والمسافات مهمة): `photo id` و`passport` و`pr card` و`proof of address` و`bank` و`articles of incorporation` و`business registration`. مثلًا `doc_type=passport` يقبل جواز سفر أو هوية وطنية أو رخصة قيادة أو تصريح إقامة. و`doc_type=bank_statement` يحتوي `bank` ويقبل كشف حساب أو فاتورة مرافق أو شيكًا ملغى. و`doc_type=payslip` لا يطابق شيئًا ولا يُفرض عليه بوابة. استخدموا `step_key` عندما تريدون بوابة دقيقة.

الخطوة المعروفة التي ليس لها بوابة نوع (`banking` و`rib` وخطوات قليلة أخرى) تقبل أي مستند.

### مفاتيح الخطوات

| `step_key` | فئة الحقول | قيم `doc_type` المقبولة |
| - | - | - |
| `photo_id` | identity | `drivers_license`, `national_id`, `passport`, `pr_card`, `residence_permit` |
| `proof_of_address` | address | `bank_statement`, `utility_bill` |
| `banking` | entity | أي نوع (دون بوابة نوع) |
| `cin` | identity | `drivers_license`, `national_id`, `passport`, `residence_permit` |
| `rib` | entity | أي نوع (دون بوابة نوع) |
| `bulletin_paie` | entity | `other`, `payslip` |
| `articles_of_incorporation` | entity | `articles_of_incorporation` |
| `business_registration` | entity | `business_registration` |
| `bylaws` | entity | `bylaws`, `other` |
| `beneficial_ownership` | entity | `beneficial_ownership`, `other` |
| `directors_register` | entity | `directors_register`, `other` |
| `director_photo_id` | identity | `drivers_license`, `national_id`, `passport`, `pr_card`, `residence_permit` |
| `business_address` | address | `bank_statement`, `business_registration`, `proof_of_address`, `utility_bill` |
| `board_resolution` | entity | `board_resolution`, `other` |
| `financial_statements` | entity | `financial_statements`, `other` |
| `partnership_agreement` | entity | `other`, `partnership_agreement` |
| `trust_deed` | entity | `other`, `trust_deed` |
| `trustee_photo_id` | identity | `drivers_license`, `national_id`, `passport`, `pr_card`, `residence_permit` |
| `settlor_id` | identity | `drivers_license`, `national_id`, `passport`, `pr_card`, `residence_permit` |
| `beneficiary_list` | entity | `beneficiary_list`, `other` |
| `trust_address` | address | `bank_statement`, `proof_of_address`, `utility_bill` |
| `trust_tax_id` | entity | أي نوع (دون بوابة نوع) |
| `trust_financial_statements` | entity | `financial_statements`, `other` |
| `estate_authority` | entity | `estate_authority`, `other` |
| `liquidator_id` | identity | `drivers_license`, `national_id`, `passport`, `pr_card`, `residence_permit` |
| `ein_letter` | entity | `business_registration`, `other` |
| `good_standing` | entity | `business_registration`, `other` |
| `registre_commerce` | entity | `business_registration`, `other` |
| `statuts` | entity | `articles_of_incorporation`, `bylaws`, `other` |
| `manager_cin` | identity | `drivers_license`, `national_id`, `passport`, `pr_card`, `residence_permit` |
| `attestation_ice` | entity | `business_registration`, `other` |
| `attestation_if` | entity | `business_registration`, `other` |
| `cni_ci` | identity | `drivers_license`, `national_id`, `passport`, `pr_card`, `residence_permit` |
| `iban_ci` | entity | أي نوع (دون بوابة نوع) |
| `cni_sn` | identity | `drivers_license`, `national_id`, `passport`, `pr_card`, `residence_permit` |
| `iban_sn` | entity | أي نوع (دون بوابة نوع) |
| `cin_tn` | identity | `drivers_license`, `national_id`, `passport`, `pr_card`, `residence_permit` |
| `iban_tn` | entity | أي نوع (دون بوابة نوع) |
| `nid_eg` | identity | `drivers_license`, `national_id`, `passport`, `pr_card`, `residence_permit` |
| `iban_eg` | entity | أي نوع (دون بوابة نوع) |
| `nid_sa` | identity | `drivers_license`, `national_id`, `passport`, `pr_card`, `residence_permit` |
| `iban_sa` | entity | أي نوع (دون بوابة نوع) |
| `rccm_extract` | entity | `business_registration`, `other` |
| `dfe_ci` | entity | `business_registration`, `other` |
| `manager_id` | identity | `drivers_license`, `national_id`, `passport`, `pr_card`, `residence_permit` |
| `ninea_sn` | entity | `business_registration`, `other` |
| `rne_extract_tn` | entity | `business_registration`, `other` |
| `mf_tn` | entity | `business_registration`, `other` |
| `beneficial_ownership_tn` | entity | `beneficial_ownership`, `other` |
| `cr_eg` | entity | `business_registration`, `other` |
| `tax_card_eg` | entity | `business_registration`, `other` |
| `cr_sa` | entity | `business_registration`, `other` |
| `vat_sa` | entity | `business_registration`, `other` |
| `proof_of_address_abroad` | address | `bank_statement`, `proof_of_address`, `utility_bill` |

الخطوة المصنّفة `address` هي خطوة إثبات عنوان. فإذا قُرئ فيها `utility_bill` أو `proof_of_address` أو `bank_statement` كان عليه فحص حداثة مانع (critical، 90 يومًا افتراضيًا). ويكون `utility_bill` أو `proof_of_address` من درجة critical في أي خطوة. أما `bank_statement` في أي خطوة أخرى فهو تحذير.

## فحوص الصيغة بحسب البلد

تحذيرات فقط. الرقم المشوّه هو في الغالب خطأ في القراءة أكثر منه تزويرًا، لذلك لا يمنع أي منها ملفًا.

| المستند | الفحص | ينطبق على |
| - | - | - |
| CIN المغربية | `format:cin:` حرف أو حرفان ثم 5 إلى 7 أرقام | `national_id` مع البلد `MA` |
| رخصة القيادة | `format:licence:` بحسب المقاطعة أو الولاية؛ والاختصاص القضائي الذي لا قاعدة له يُبلَّغ عنه بأنه لم يُفحص | `drivers_license` |
| رخصة أونتاريو | `consistency:licence:` اتفاق الرقم مع اسم العائلة وتاريخ الميلاد | `drivers_license`, ON |
| الهوية الوطنية | فحوص على نمط `format:national_id` لكوت ديفوار والسنغال وتونس ومصر والسعودية (أرقام مصر والسعودية ترمّز أيضًا تاريخ الميلاد أو الجنس أو صفة المواطن) | `national_id`, `residence_permit` |
| IBAN | `format:iban:` | أي مستند يعيد `iban` |
| أرقام الشركات | `format:ice` و`format:if_number` و`format:rc` (المغرب)؛ `format:business_number` (كندا)؛ `format:ein` (الولايات المتحدة)؛ `format:registration_number` و`format:tax_id` (CI وSN وTN وEG وSA) | `/verify` على ملف تعريف كيان |


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