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

# تقرير التحقق من الهوية: الحقول ودرجات الجودة

> تعرّف على تقرير التحقق من الهوية في Didit: الحالة، وحقول المستند، ودرجات الجودة، ومطابقات الجلسات، ومواقع البيانات في الاستجابات.

## نظرة عامة

يلتقط **تقرير التحقق من الهوية** كل ما استخرجته Didit وتحققت منه من مستند هوية صادر عن جهة حكومية — جوازات السفر، وبطاقات الهوية، ورخص القيادة، وتصاريح الإقامة. ويجمع الحقول الحيوية وحقول المستند المستخرجة عبر OCR، وعناوين URL الموقعة للوسائط الملتقطة، وبيانات العنوان المحللة والمحددة جغرافياً، ودرجات جودة الصورة لكل جانب، ومحتويات MRZ، وتفصيلات حسب نظام الكتابة (لاتيني / غير لاتيني)، وتطابقات المستندات عبر الجلسات المختلفة.

يتم إنشاء التقرير بعد أن يكمل المستخدم خطوة التقاط المستند في سير العمل (أو يستدعي endpoint الخاص بـ OCR المستقل). وتحدد Didit نوع المستند، وتجري عملية OCR، وتتحقق من صحة MRZ / الرمز الشريطي / رمز QR، وتحلل العنوان، وتفحص المستند للكشف عن التلاعب (التقاط من شاشة، نسخة مطبوعة، التلاعب بالصورة الشخصية)، وتقارن المستند بجميع المستندات الأخرى الملتقطة في تطبيقك.

يحمل كل تقرير `status` خاصة به — مستقلة عن حالة الجلسة العامة — تعكس النتيجة التي انتهت إليها خطوة الهوية وحدها:

* **مقبولة** — تم التعرف على المستند، واستخراج جميع الحقول المطلوبة، ولم يتم إطلاق أي تحذير موجّه للرفض.
* **قيد المراجعة** — تم إطلاق تحذير واحد أو أكثر ويوجهها سير العمل لديك إلى المراجعة.
* **مرفوضة** — تم إطلاق شرط رفض تلقائي (مستند غير مدعوم، مستند منتهي الصلاحية، الصورة الشخصية مفقودة، تطابق مع قائمة الحظر، فشل في التحقق التكيفي من العمر) أو تم إطلاق تحذير تم ضبط إجرائه على الرفض (الحد الأدنى/الأقصى للعمر مضبوطان افتراضياً على الرفض).
* **منتهية الصلاحية** — انقضى `expiration_date` الخاص بالمستند **بعد** التحقق. تغيّر المراقبة المستمرة لانتهاء الصلاحية لدى Didit حالة التقرير من `Approved` إلى `Expired`، وتُرفق تحذير `DOCUMENT_EXPIRED`، وتنقل الجلسة المقبولة إلى حالة الجلسة `Kyc Expired`.
* **لم تكتمل** — لم يكمل المستخدم خطوة الالتقاط أبداً.

## أين يظهر في استجابات API

يأتي تقرير التحقق من الهوية داخل مصفوفة `id_verifications[]` — **دائماً كمصفوفة JSON**، وليس ككائن `id_verification` مفرد أبداً. وتظهر عدة إدخالات عندما يشغّل سير العمل أكثر من خطوة مستند واحدة (على سبيل المثال، هوية أساسية بالإضافة إلى خطوة تصعيدية).

* **API قرار الجلسة** — تعيد `GET /v3/session/{sessionId}/decision/` مصفوفة `id_verifications[]` في المستوى الأعلى. راجع [استرداد قرار الجلسة](https://docs.didit.me/ar/sessions-api/retrieve-session.md).
* **webhook** — تتضمن payload الخاصة بـ `session.status.updated` مصفوفة `id_verifications[]` نفسها بمجرد أن تُنتج الخطوة بيانات. راجع [webhook](https://docs.didit.me/ar/integration/webhooks.md).
* **API الخاص بـ OCR المستقل** — يؤدي إرسال المستند المباشر إلى إرجاع كائن `id_verification` مفرد بنفس الحقول. راجع [API الخاص بـ OCR المستقل](https://docs.didit.me/ar/standalone-apis/id-verification.md).

> [!NOTE]
>
> اقرأ `response.id_verifications[0]` وقم بالمرور على عناصر المصفوفة. يتوفر شكل `id_verification` المفرد فقط في API الخاص بـ OCR المستقل — ولا يتوفر في endpoint الخاص بقرار v3.

## المخطط

يوجد المخطط المرجعي الكامل حقلاً بحقل في صفحة [نماذج البيانات](https://docs.didit.me/ar/reference/data-models.md#التحقق-من-الهوية). تأتي الحقول الموضحة أدناه مباشرةً من `IDVerificationV3Serializer`، الذي يوسّع `IDVerificationV2Serializer` ويضيف `node_id`، ومصفوفة `matches[]` عبر الجلسات، ومصفوفة `document_selfie_face_matches[]` للالتقاط الصامت.

### الحقول على المستوى الأعلى

| الحقل | النوع | الوصف |
| - | - | - |
| `status` | `"Approved" \| "Declined" \| "In Review" \| "Expired" \| "Not Finished"` | حالة خطوة التحقق من المستند. |
| `node_id` | string \| null | عقدة مخطط سير العمل التي أنتجت هذا التقرير. |
| `document_type` | `"Passport" \| "Identity Card" \| "Driver's License" \| "Residence Permit" \| "Health Insurance Card" \| "Tax Card" \| "Social Security Card" \| "Work Permit" \| "Visa" \| "Public Service Card" \| "Birth Certificate" \| "Firearm License" \| "Other" \| null` | فئة المستند الرئيسية المعترف بها (قابلة للقراءة البشرية). |
| `document_subtype` | string \| null | كود النوع الفرعي للمستند من سجل مستندات Didit، مصفيّاً وفقاً لما تقبله إعدادات المستندات في سير العمل. تتضمن المستندات الخاصة بمنطقة معينة اسم المنطقة، على سبيل المثال `QUEENSLAND_DRIVER_LICENSE_GENERIC`. راجع [الأنواع الفرعية للمستندات](https://docs.didit.me/ar/core-technology/id-verification/document-subtypes-id-verification.md) للحصول على قائمة الأكواد الكاملة، بما في ذلك كيفية التمييز بين رخصة القيادة التجارية الأمريكية (CDL) والرخصة القياسية. |
| `document_number` | string | رقم المستند المستخرج عبر OCR. بالنسبة لرخص القيادة التي يُطبع عليها رقم الرخصة ورقم البطاقة معاً، راجع الملاحظة أسفل الجدول. |
| `personal_number` | string | الرقم التعريفي الشخصي / الوطني المستخرج عبر OCR، عندما يكون مختلفاً عن رقم المستند. |
| `portrait_image`, `front_image`, `front_video`, `back_image`, `back_video`, `full_front_image`, `full_back_image` | string (عنوان URL موقّع) | الوسائط الملتقطة. عناوين URL هذه موقّعة ومحددة بوقت — نزّلها على الفور ولا تقم بتخزين عنوان URL أبداً. |
| `front_image_camera_front`, `back_image_camera_front` | string (عنوان URL موقّع) \| null | الإطارات الملتقطة بواسطة الكاميرا الأمامية للمستخدم أثناء التقاط المستند. تُستخدم لفحص الوجه عبر الكاميرتين ومقارنتها مع [قائمة حظر الوجوه](https://docs.didit.me/ar/console/blocklist-users.md#حظر-الوجوه) الخاصة بك؛ يمكن أيضاً [إضافة كل منها إلى قائمة حظر الوجوه](https://docs.didit.me/ar/management-api/lists/create-entry.md#الوجوه-من-صورة-السيلفي-الملتقطة-أثناء-تصوير-المستند). |
| `front_image_camera_front_face_match_score`, `back_image_camera_front_face_match_score` | float (0–100) \| null | درجة التطابق بين إطار الكاميرا الأمامية والصورة الشخصية على المستند. |
| `document_selfie_face_matches` | array \| null | الجلسات السابقة أو مدخلات قائمة حظر الوجوه التي تطابق وجوهُها صورة السيلفي الملتقطة أثناء التقاط المستند ([البحث بالوجه عبر الالتقاط الصامت](https://docs.didit.me/ar/core-technology/face-search/overview.md#صورة-السيلفي-الملتقطة-أثناء-تصوير-المستند)). له نفس تنسيق المدخلات في `liveness_checks[].matches`؛ حيث يكون `match_image_url` عبارة عن عنوان URL موقّع مسبقاً تنتهي صلاحيته. تكون القيمة `null` للجلسات القديمة أو عندما لم يتم تشغيل البحث، وتكون `[]` عند تشغيله وعدم العثور على أي تطابق. |
| `front_image_quality_score`, `back_image_quality_score` | object \| null | تقييم الجودة لكل جانب (راجع درجات جودة الصورة). |
| `document_liveness` | object \| null | درجات حيوية المستند لكل نوع من أنواع الاحتيال، مع الحدود التي تم الحكم عليها وفقاً لها (راجع درجات حيوية المستند). الإصدار V3 فقط. |
| `date_of_birth`, `expiration_date`, `date_of_issue` | string (YYYY-MM-DD) | تواريخ المستند. |
| `age` | number | عمر حامل المستند بالسنوات، محسوباً من `date_of_birth`. |
| `issuing_state` | string (ISO 3166-1 alpha-3) | كود دولة الإصدار. |
| `issuing_state_name` | string | اسم الدولة المحلي. |
| `first_name`, `last_name`, `full_name` | string | اسم حامل المستند بنظام الكتابة المحدد عبر `preferred_characters` (راجع أدناه). |
| `gender` | `"M" \| "F" \| "U"` | الجنس، إذا كان متوفراً في المستند (`U` = غير معروف). |
| `address`, `formatted_address` | string | سلاسل العنوان الخام والمحوّل جغرافياً/المنسّق. |
| `place_of_birth` | string | مكان الميلاد المستخرج عبر OCR. |
| `marital_status` | `"SINGLE" \| "MARRIED" \| "DIVORCED" \| "WIDOWED" \| "UNKNOWN"` | الحالة الاجتماعية، إذا كانت متوفرة في المستند. |
| `nationality` | string (ISO 3166-1 alpha-3) | جنسية حامل المستند، عندما تكون مختلفة عن دولة الإصدار. |
| `extra_fields` | object | بيانات إضافية خاصة بالمستند (فئات رخصة القيادة، فصيلة الدم، الأسماء بنظام كتابة بديل، `tax_number`، إلخ). |
| `mrz` | object \| null | حقول المفتاح/القيمة المحللة من MRZ. |
| `parsed_address` | object \| null | عنوان منظم ومحوّل جغرافياً (`street_1`، `street_2`، `city`، `region`، `country`، `postal_code`، `address_type`، `formatted_address`، `document_location`، `raw_results`، `is_best_match`). |
| `extra_files[]` | مصفوفة من عناوين URL موقّعة | صور إضافية مرفقة بهذا المستند. |
| `matches[]` | array | تطابقات المستند عبر الجلسات (راجع التطابقات عبر الجلسات). |
| `warnings[]` | array | تحذيرات على مستوى الوحدة — راجع [تحذيرات التحقق من الهوية](https://docs.didit.me/ar/core-technology/id-verification/warnings-id-verification.md). |

> [!NOTE]
>
> **يكون `issuing_state` دائماً على مستوى الدولة، وليس على مستوى دون وطني مطلقاً.** بالنسبة لجميع
> أنواع المستندات، بما في ذلك رخص القيادة الصادرة عن ولاية أو مقاطعة
> (أستراليا، الولايات المتحدة، كندا)، يوضح الحقلان `issuing_state` و
> `issuing_state_name` **الدولة** (على سبيل المثال `AUS` /
> `Australia`)، وليس الولاية. القيمة دون المستوى الوطني، عندما يتضمنها
> المستند، تكون متوفرة بشكل منفصل في `parsed_address.region` (مع الرجوع
> إلى `extra_fields.state` في بعض أنواع المستندات). وتعرض نظرة عامة على الجلسة
> في **Business Console** ذلك كصف **Region** أسفل
> **Issuing state** عند توفرها.

> [!NOTE]
>
> **رخص القيادة التي تحمل رقمين (أستراليا).** تطبع الرخص
> الأسترالية كلاً من رقم الرخصة، الذي يحدد الأهلية للقيادة لحاملها
> ويظل ثابتاً عند استبدال البطاقة، ورقم البطاقة،
> الذي يحدد البطاقة الفعلية ويتغير مع كل إعادة إصدار. بالنسبة لهذه
> الرخص، تعيّن Didit الأرقام دائماً بالطريقة نفسها:
>
> * `personal_number` — **رقم الرخصة**
> * `document_number` — **رقم البطاقة**
>
> ينطبق هذا على جميع الولايات والأقاليم الأسترالية (NSW و VIC و QLD و WA و SA و
> TAS و ACT و NT). في بعض الإصدارات، يُطبع رقم البطاقة على الجانب الخلفي فقط،
> لذا لا يُقرأ إلا عند التقاط الجزء الخلفي من الرخصة. وعند تعذر قراءة رقم
> البطاقة، يتم تسجيل رقم الرخصة كـ **`document_number` و `personal_number` معاً**،
> بحيث يحمل `document_number` دائماً معرّفاً بمجرد انتهاء التحقق. وتكون قيمة
> `personal_number` هي رقم الرخصة في كلتا الحالتين. أما في أنواع المستندات الأخرى،
> فيظل `document_number` هو الرقم الأساسي المستخرج عبر OCR وقد يكون بحد ذاته معرّفاً على مستوى حامل المستند.

> [!NOTE]
>
> **رقم CUIL الأرجنتيني يكون في `extra_fields.tax_number`، وليس في `personal_number` مطلقاً.**
> تطبع المستندات الأرجنتينية رقم CUIL — وهو المعرّف المكوّن من 11 رقماً والذي تعتمد عليه AFIP وANSES ومكاتب الائتمان — في موضع مختلف في كل مستند، وتطبع بطاقة DNI رقماً آخر مكوّناً من 11 رقماً بجواره:
>
> * في **رخصة القيادة**، يكون رقم CUIL هو ما يحمله حقل `personal_number`؛
> * في بطاقة **DNI**، يحمل حقل `personal_number` ما يُعرف بـ *número de trámite*، والذي
>   يحدد طلب البطاقة وليس معرّفاً لحاملها.
>   ويُقرأ رقم CUIL الخاص ببطاقة DNI من حقله المطبوع المخصص له.
>
> لذا فإن `personal_number` **ليس** رقم CUIL موثوقاً للأرجنتين: فهو في بطاقة DNI عبارة عن
> رقم من 11 رقماً لن يُرجع أي نتيجة بصمت من أي سجل.
> اقرأ `extra_fields.tax_number` بدلاً من ذلك. وتبلّغ عنه Didit فقط عندما يتم التحقق
> من صحة القيمة كرقم CUIL حقيقي (بادئة الشخص متبوعة برقم التحقق باستخدام حساب باقي القسمة على 11)،
> بأرقام قياسية دون فواصل (`27111111117`)، أياً كان المستند الأرجنتيني
> الذي قدّمه حامله. وعند تعذّر قراءة رقم CUIL الخاص بالبطاقة، يكون
> المفتاح غير موجود بدلاً من ملئه برقم لا يمثّل CUIL — التقط
> رخصة القيادة كمستند ثانٍ، أو اجمع رقم CUIL عبر إجابة استبيان
> أو من خلال `metadata` الخاصة بالجلسة، لتغطية هؤلاء المستخدمين.

### درجات جودة الصورة

يُرجع كلٌّ من `front_image_quality_score` و`back_image_quality_score`:

| الحقل | النوع | ما يقيسه |
| - | - | - |
| `focus_score` | number 0–100 | الوضوح — تباين Laplacian المحلي لأعلى 10%، مع مقاومة للخلفيات الموحدة. الوزن 45%. |
| `brightness_score` | number 0–100 | يفرض خفضاً للدرجة على الصور شديدة الإعتام أو المعرضة للضوء بشكل مفرط. الوزن 30%. |
| `brightness_issue` | `"ok" \| "too_dark" \| "too_bright"` | اتجاه مشكلة السطوع، عندما تكون `brightness_score` منخفضة. |
| `resolution_score` | number 0–100 | يستند إلى إجمالي عدد وحدات البكسل في اللقطة. الوزن 25%. |
| `is_document_fully_visible` | boolean \| null | `true` عندما تكون جميع زوايا المستند الأربع مرئية، و`false` عند اقتطاع أي زاوية، و`null` عندما يتعذّر كشف الزوايا. |
| `overall_score` | number 0–100 | مركب مرجح (التركيز 45%، السطوع 30%، الدقة 25%). |

> [!TIP]
>
> استخدم `overall_score` كفحص سريع للملاءمة — تشير الدرجات الأعلى من **70** عموماً إلى لقطة جيدة بما يكفي لإجراء تحقق موثوق به.

### درجات حيوية المستند

يُبلّغ حقل `document_liveness` عما قاسه [فحص حيوية المستند](https://docs.didit.me/ar/core-technology/id-verification/warnings-id-verification.md#كشف-حيوية-المستند-التلاعب)، **سواء أثار تحذيراً أم لا**. لا يظهر التحذير إلا عندما تنخفض الدرجة عن أحد حدود سير العمل، لذا قبل هذا الحقل لم يكن المستند المقبول يحمل أي دليل على الحيوية على الإطلاق - والحقل هو وسيلتك لتدقيق جلسة تم اجتيازها. وتكون قيمته `null` عندما لا يعمل الفحص (على سبيل المثال، طريقة لا تعتمد على المستندات، أو انقطاع في النموذج مسجل في سجلات الجلسة).

وهو يحمل كائناً واحداً لكل نوع من أنواع الاحتيال - `portrait_replace` و`printed_copy` و`screen_replay` - يحتوي كل منها على:

| الحقل | النوع | المعنى |
| - | - | - |
| `score` | number 0–100 \| null | احتمالية أن يكون المستند أصلياً لهذا النوع من الاحتيال (كلما ارتفعت الدرجة = زادت احتمالية كونه أصلياً). وهي القيمة **الأدنى** بين جانبي المستند، وهي القيمة التي اعتمد عليها القرار. وتكون `null` عندما لا يُنتج أيٌّ من الجانبين درجة صالحة للاستخدام - على سبيل المثال، تُسقط درجة الصورة الشخصية على جانب لم يُعثر فيه على صورة شخصية. |
| `front`، `back` | number 0–100 \| null | الدرجة لكل جانب ملتقط على حدة. وتكون `null` للجانب الذي لم يتم التقاطه أو الذي أُسقطت درجته. |
| `decline_threshold`، `review_threshold` | number \| null | الحدود المحفوظة عندما قيّمت عقدة التحقق من الهوية هذا المستند. لا تؤدي التعديلات اللاحقة على سير العمل إلى تغييرها. وتكون `null` عندما يتعذّر الوصول إلى أدلة التقييم التاريخية. |
| `bucket` | `"approve" \| "review" \| "decline" \| null` | أين تقع `score` مقارنة بتلك الحدود: أقل من `decline_threshold` ← `decline`، وأقل من `review_threshold` ← `review`، وإلا فـ `approve`. وتكون `null` عند عدم وجود درجة صالحة للاستخدام، أو عدم تطبيق الفحص، أو تعذّر الوصول إلى أدلة التقييم التاريخية. يصف التصنيف فحص نوع الاحتيال هذا، وليس حالة الجلسة الإجمالية. |

```json theme={null}
"document_liveness": {
  "portrait_replace": {
    "score": 96.46,
    "front": 96.46,
    "back": 98.2,
    "decline_threshold": 35,
    "review_threshold": 70,
    "bucket": "approve"
  },
  "printed_copy": {
    "score": 91.2,
    "front": 91.2,
    "back": 93.7,
    "decline_threshold": 35,
    "review_threshold": 77,
    "bucket": "approve"
  },
  "screen_replay": {
    "score": 99.9,
    "front": 99.9,
    "back": 99.5,
    "decline_threshold": 30,
    "review_threshold": 70,
    "bucket": "approve"
  }
}
```

بالنسبة للمستندات الأقدم التي لا تتضمن أدلة تقييم محفوظة، تظل الدرجات المخزنة مرئية ولكن كلاً من الحدود و`bucket` تكون `null`. ولا تُستخدم إعدادات سير العمل الحالية مطلقاً لإعادة بناء نتيجة تاريخية. وينطبق الأمر نفسه على اللقطة التي لم يكتمل تقييم مستندها بعد.

تعرض Business Console الصفوف الثلاثة نفسها في قسم **حيوية المستند** ضمن قسم التحقق من الهوية للجلسة.

### التطابقات عبر الجلسات

تسرد `matches[]` ما يصل إلى **5** مستندات أخرى في تطبيقك تطابق هذا المستند — نفس **تاريخ الميلاد**، ونفس **دولة الإصدار**، و**الاسم الكامل** متطابق بدرجة عالية. تتطلب المستندات المدرجة في قائمة الحظر بالإضافة إلى ذلك تطابقاً تاماً في رقم المستند. وتُستثنى الجلسات التي تنتمي إلى نفس المستخدم (نفس `vendor_data`).

يتضمن كل إدخال `session_id` و`session_number` و`vendor_data` و`verification_date` و`user_details` (`name` و`document_type` و`document_number`) و`status` و`is_blocklisted` (`true` عندما يُضاف المستند إلى قائمة الحظر الخاصة بك) و`api_service` و`front_image_url` موقّعاً.

## قيم الحالة

| الحالة | المعنى | التأثير اللاحق |
| - | - | - |
| `Approved` | تم التعرف على المستند، واستخراج الحقول المطلوبة، واجتياز جميع الفحوصات وفق الحدود التي تم ضبطها. | يُحتسب كفحص هوية ناجح. |
| `In Review` | تم إطلاق تحذير واحد أو أكثر ويوجه سير العمل هذه التحذيرات إلى المراجعة. | تنتقل الجلسة أيضاً إلى `In Review` حتى يتخذ المراجِع إجراءً. |
| `Declined` | تم إطلاق شرط الرفض التلقائي (مستند غير مدعوم، مستند منتهي الصلاحية، الصورة الشخصية مفقودة، العثور على المستند في قائمة الحظر، فشل التقدير التكيفي للعمر) أو تم إطلاق تحذير تم ضبطه على الرفض. | تصبح الجلسة مرفوضة ما لم يحقق فرع آخر مقبول متطلبات سير العمل. |
| `Expired` | تاريخ انتهاء صلاحية المستند انقضى **بعد** الموافقة. يتم تعيينها بواسطة المراقبة المستمرة للمستندات من Didit، والتي تكون مفعلة افتراضياً (يُستثنى من ذلك الدولة ونوع المستند اللذان تم ضبط **Expiration mode** لهما على **Allow expired**)، مع تحذير `DOCUMENT_EXPIRED`. | تنتقل الجلسة المقبولة إلى `Kyc Expired`. |
| `Not Finished` | ترك المستخدم خطوة الالتقاط. | لم يُسفر فرع الهوية عن نتيجة. |

## المستندات متعددة أنظمة الكتابة (لاتينية / غير لاتينية)

بعض المستندات — مثل القيرغيزية والكازاخستانية والروسية واليابانية والكورية والصينية والعربية والتايلاندية وغيرها — تطبع اسم حامل المستند أو عنوانه أو مكان ميلاده **بكل من** النسخ اللاتيني **و**نظام الكتابة المحلي. يمكنك اختيار نظام الكتابة الذي يملأ الاستجابة ذات المستوى الأعلى باستخدام إعداد سير العمل (أو الـ API المستقل) `preferred_characters`:

| القيمة | تملأ حقول المستوى الأعلى بـ | يذهب نظام الكتابة المقابل إلى |
| - | - | - |
| `latin` *(افتراضي)* | النسخ اللاتيني المطبوع على المستند | `extra_fields.*_non_latin` |
| `non_latin` | قيم نظام الكتابة المحلي المطبوعة على المستند | `extra_fields.*_latin` |

توجد قيم نظام الكتابة البديل داخل `extra_fields` تحت مفاتيح ذات لواحق: `first_name_non_latin`، و`last_name_non_latin`، و`middle_name_non_latin`، و`full_name_non_latin`، و`address_non_latin`، و`place_of_birth_non_latin` (أو متغيرات `_latin` المطابقة لها).

### متى تظهر حقول نظام الكتابة البديل

* **فقط عندما يكون كلا نظامي الكتابة موجودين بالفعل على المستند.** إذا تم استخراج حقل OCR مسمى اسمياً "Surname-Kyrgyz (Cyrillic)" كنص بنظام الكتابة اللاتيني (حروف متجانسة شكلياً أو نسخ لاتيني)، فإنه **لا** يُعد بديلاً غير لاتيني ويتم حذف هذا المفتاح.
* تتم دائماً **إعادة بناء** `full_name_non_latin` (وكذلك `full_name_latin`) من مكوّنات الاسم الأول والاسم الأوسط واسم العائلة كلٌّ على حدة عندما يكون كلاهما متاحاً — حيث يتم تجاهل حقل "Full Name" الخام من الـ OCR لضمان الاتساق.
* عندما يكون `preferred_characters=latin` ولكن المستند يحمل نصاً غير لاتيني **فقط** (بحيث تنتهي حقول المستوى الأعلى بكونها غير لاتينية)، تجري Didit مرحلة نسخ حرفي وتوفر `first_name_latin`، و`last_name_latin`، و`middle_name_latin`، و`full_name_latin`، و`place_of_birth_latin`، و`address_latin` كبديل احتياطي لاتيني.

```json theme={null}
{
  "first_name": "John",
  "last_name": "Doe",
  "full_name": "John Doe",
  "extra_fields": {
    "first_name_non_latin": "Айна"
  }
}
```

المفتاح `last_name_non_latin` غير موجود لأن حقل المستند "Surname (Cyrillic)" ظهر بأحرف لاتينية في هذه العينة — لم يكن هناك اسم عائلة غير لاتيني حقيقي لاستخراجه.

## أمثلة

### Approved — بطاقة هوية إسبانية سليمة (جميع الحقول)

```json theme={null}
{
  "id_verifications": [
    {
      "status": "Approved",
      "document_type": "Identity Card",
      "document_subtype": "ID_CARD_GENERIC",
      "document_number": "SAMPLE-DOC-12345",
      "personal_number": "SAMPLE-PER-12345",
      "portrait_image": "https://<media-host>/.../portrait.jpg?signature=...",
      "front_image": "https://<media-host>/.../front.jpg?signature=...",
      "front_video": "https://<media-host>/.../front.mp4?signature=...",
      "back_image": "https://<media-host>/.../back.jpg?signature=...",
      "back_video": "https://<media-host>/.../back.mp4?signature=...",
      "full_front_image": "https://<media-host>/.../full_front.jpg?signature=...",
      "full_back_image": "https://<media-host>/.../full_back.jpg?signature=...",
      "front_image_camera_front": null,
      "back_image_camera_front": null,
      "front_image_camera_front_face_match_score": null,
      "back_image_camera_front_face_match_score": null,
      "front_image_quality_score": {
        "focus_score": 85.3,
        "brightness_score": 92.1,
        "brightness_issue": "ok",
        "is_document_fully_visible": true,
        "resolution_score": 72.4,
        "overall_score": 84.6
      },
      "back_image_quality_score": {
        "focus_score": 79.1,
        "brightness_score": 90.5,
        "brightness_issue": "ok",
        "is_document_fully_visible": true,
        "resolution_score": 72.4,
        "overall_score": 81.5
      },
      "date_of_birth": "1990-01-01",
      "age": 35,
      "expiration_date": "2031-06-02",
      "date_of_issue": "2021-06-02",
      "issuing_state": "ESP",
      "issuing_state_name": "Spain",
      "first_name": "John",
      "last_name": "Doe",
      "full_name": "John Doe",
      "gender": "M",
      "address": "Avda de Madrid 34",
      "formatted_address": "Avda de Madrid 34, Madrid, Madrid 28822, Spain",
      "place_of_birth": "Madrid",
      "marital_status": "SINGLE",
      "nationality": "ESP",
      "extra_fields": {},
      "mrz": {
        "document_number": "SAMPLE-DOC-12345",
        "surname": "DOE",
        "name": "JOHN",
        "birth_date": "900101",
        "expiry_date": "310602"
      },
      "parsed_address": {
        "street_1": "Avda de Madrid 34",
        "street_2": null,
        "city": "Madrid",
        "region": "Madrid",
        "country": "ES",
        "postal_code": "28822",
        "address_type": "Avda",
        "formatted_address": "Avda de Madrid 34, Madrid, Madrid 28822, Spain",
        "document_location": { "latitude": 40.4168, "longitude": -3.7038 },
        "raw_results": {
          "geometry": {
            "location": { "lat": 40.4168, "lng": -3.7038 },
            "location_type": "ROOFTOP"
          }
        },
        "is_best_match": true
      },
      "extra_files": [],
      "warnings": [],
      "node_id": "id_primary",
      "matches": []
    }
  ]
}
```

### In Review — لم يتم اكتشاف رمز QR على مستند يجب أن يحتوي عليه

موجز — الاستجابة الحقيقية تحمل دائماً مجموعة الحقول الكاملة الموضحة أعلاه.

```json theme={null}
{
  "id_verifications": [
    {
      "status": "In Review",
      "node_id": "id_primary",
      "document_type": "Identity Card",
      "document_subtype": "ID_CARD_GENERIC",
      "document_number": "SAMPLE-DOC-12345",
      "first_name": "John",
      "last_name": "Doe",
      "full_name": "John Doe",
      "warnings": [
        {
          "feature": "ID_VERIFICATION",
          "risk": "QR_NOT_DETECTED",
          "additional_data": null,
          "log_type": "warning",
          "short_description": "QR not detected",
          "long_description": "The system couldn't find or read the QR code on the document. This could be due to poor image quality or an unsupported document type.",
          "node_id": "id_primary"
        }
      ]
    }
  ]
}
```

## ملاحظة أمنية

عناوين URL الموقعة التي يتم إرجاعها لصور المستندات ومقاطع الفيديو هي عناوين مؤقتة — تنتهي صلاحيتها بعد فترة صلاحية محدودة. تعامل معها على أنها قصيرة الأجل: قم بتنزيل ما تحتاجه على الفور ولا تقم بتخزينها مؤقتاً أو عرضها علناً. عادةً ما يحتاج تطبيقك فقط إلى `status`، وعدد قليل من الحقول البيوغرافية، والتحذيرات — خزّن أقل قدر ممكن لتقليل مساحة التعرض لأي اختراق مستقبلي.

## مواضيع ذات صلة

* [تحذيرات التحقق من الهوية](https://docs.didit.me/ar/core-technology/id-verification/warnings-id-verification.md) — التعداد الكامل للتحذيرات وأسبابها وكيفية معالجتها.
* [مراقبة المستندات](https://docs.didit.me/ar/core-technology/id-verification/document-monitoring-id-verification.md) — كيف تفحص Didit التلاعب والتكرار عبر الجلسات.
* [المستندات المدعومة](https://docs.didit.me/ar/core-technology/id-verification/supported-documents-id-verification.md) — أنواع المستندات والبلدان المغطاة.
* [الأنواع الفرعية للمستندات](https://docs.didit.me/ar/core-technology/id-verification/document-subtypes-id-verification.md) — قائمة رموز `document_subtype` الكاملة، بما في ذلك اكتشاف رخصة القيادة التجارية الأمريكية مقابل القياسية.
* [webhooks](https://docs.didit.me/ar/integration/webhooks.md) — الاستماع إلى `session.status.updated` لتلقي التقرير.
* [نماذج البيانات — التحقق من الهوية](https://docs.didit.me/ar/reference/data-models.md#التحقق-من-الهوية) — المخطط المرجعي مع كل حقل.


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