الانتقال إلى المحتوى الرئيسي

نظرة عامة

يلتقط تقرير التحقق من الهوية كل ما استخرجته 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[] في المستوى الأعلى. راجع استرداد قرار الجلسة.
  • webhook — تتضمن payload الخاصة بـ session.status.updated مصفوفة id_verifications[] نفسها بمجرد أن تُنتج الخطوة بيانات. راجع webhook.
  • API الخاص بـ OCR المستقل — يؤدي إرسال المستند المباشر إلى إرجاع كائن id_verification مفرد بنفس الحقول. راجع API الخاص بـ OCR المستقل.
اقرأ response.id_verifications[0] وقم بالمرور على عناصر المصفوفة. يتوفر شكل id_verification المفرد فقط في API الخاص بـ OCR المستقل — ولا يتوفر في endpoint الخاص بقرار v3.

المخطط

يوجد المخطط المرجعي الكامل حقلاً بحقل في صفحة نماذج البيانات. تأتي الحقول الموضحة أدناه مباشرةً من IDVerificationV3Serializer، الذي يوسّع IDVerificationV2Serializer ويضيف node_id، ومصفوفة matches[] عبر الجلسات، ومصفوفة document_selfie_face_matches[] للالتقاط الصامت.

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

يكون issuing_state دائماً على مستوى الدولة، وليس على مستوى دون وطني مطلقاً. بالنسبة لجميع أنواع المستندات، بما في ذلك رخص القيادة الصادرة عن ولاية أو مقاطعة (أستراليا، الولايات المتحدة، كندا)، يوضح الحقلان issuing_state و issuing_state_name الدولة (على سبيل المثال AUS / Australia)، وليس الولاية. القيمة دون المستوى الوطني، عندما يتضمنها المستند، تكون متوفرة بشكل منفصل في parsed_address.region (مع الرجوع إلى extra_fields.state في بعض أنواع المستندات). وتعرض نظرة عامة على الجلسة في Business Console ذلك كصف Region أسفل Issuing state عند توفرها.
رخص القيادة التي تحمل رقمين (أستراليا). تطبع الرخص الأسترالية كلاً من رقم الرخصة، الذي يحدد الأهلية للقيادة لحاملها ويظل ثابتاً عند استبدال البطاقة، ورقم البطاقة، الذي يحدد البطاقة الفعلية ويتغير مع كل إعادة إصدار. بالنسبة لهذه الرخص، تعيّن Didit الأرقام دائماً بالطريقة نفسها:
  • personal_number — رقم الرخصة
  • document_number — رقم البطاقة
ينطبق هذا على جميع الولايات والأقاليم الأسترالية (NSW و VIC و QLD و WA و SA و TAS و ACT و NT). في بعض الإصدارات، يُطبع رقم البطاقة على الجانب الخلفي فقط، لذا لا يُقرأ إلا عند التقاط الجزء الخلفي من الرخصة. وعند تعذر قراءة رقم البطاقة، يتم تسجيل رقم الرخصة كـ document_number و personal_number معاً، بحيث يحمل document_number دائماً معرّفاً بمجرد انتهاء التحقق. وتكون قيمة personal_number هي رقم الرخصة في كلتا الحالتين. أما في أنواع المستندات الأخرى، فيظل document_number هو الرقم الأساسي المستخرج عبر OCR وقد يكون بحد ذاته معرّفاً على مستوى حامل المستند.
رقم 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:
استخدم overall_score كفحص سريع للملاءمة — تشير الدرجات الأعلى من 70 عموماً إلى لقطة جيدة بما يكفي لإجراء تحقق موثوق به.

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

يُبلّغ حقل document_liveness عما قاسه فحص حيوية المستند، سواء أثار تحذيراً أم لا. لا يظهر التحذير إلا عندما تنخفض الدرجة عن أحد حدود سير العمل، لذا قبل هذا الحقل لم يكن المستند المقبول يحمل أي دليل على الحيوية على الإطلاق - والحقل هو وسيلتك لتدقيق جلسة تم اجتيازها. وتكون قيمته null عندما لا يعمل الفحص (على سبيل المثال، طريقة لا تعتمد على المستندات، أو انقطاع في النموذج مسجل في سجلات الجلسة). وهو يحمل كائناً واحداً لكل نوع من أنواع الاحتيال - portrait_replace وprinted_copy وscreen_replay - يحتوي كل منها على:
بالنسبة للمستندات الأقدم التي لا تتضمن أدلة تقييم محفوظة، تظل الدرجات المخزنة مرئية ولكن كلاً من الحدود و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 موقّعاً.

قيم الحالة

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

بعض المستندات — مثل القيرغيزية والكازاخستانية والروسية واليابانية والكورية والصينية والعربية والتايلاندية وغيرها — تطبع اسم حامل المستند أو عنوانه أو مكان ميلاده بكل من النسخ اللاتيني ونظام الكتابة المحلي. يمكنك اختيار نظام الكتابة الذي يملأ الاستجابة ذات المستوى الأعلى باستخدام إعداد سير العمل (أو الـ API المستقل) preferred_characters: توجد قيم نظام الكتابة البديل داخل 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 كبديل احتياطي لاتيني.
المفتاح last_name_non_latin غير موجود لأن حقل المستند “Surname (Cyrillic)” ظهر بأحرف لاتينية في هذه العينة — لم يكن هناك اسم عائلة غير لاتيني حقيقي لاستخراجه.

أمثلة

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

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

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

ملاحظة أمنية

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

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

آخر تعديل في ٧ نوفمبر ٢٠٢٦