تقبل جميع الـendpoints الأربعة مفتاح API الخاص بالعميل أو ترويسة تفويض المستخدم، وترسل جميعها webhook بالحدث
data.updated عند النجاح، حتى يبقى نظامك والتحليلات اللاحقة متزامنين.
المتطلبات المشتركة
- التفويض: مفتاح API الخاص بالعميل (بالترويسة القياسية
x-api-keyأوAuthorizationبصيغة bearer)، أو رمز مصادقة المستخدم. - الصلاحية:
- KYC وPOA:
write:sessions - شركة KYB وطرف الأشخاص الرئيسيين:
write:businesses
- KYC وPOA:
- حالة الجلسة (لـ KYC وPOA فقط): يجب أن تكون إحدى القيم
APPROVEDأوDECLINEDأوIN_REVIEWأوKYC_EXPIRED. لا يمكن تعديل الجلسات التي لم تصل بعد إلى حالة قابلة للمراجعة. تحديثات شركة KYB لا تخضع لشرط على الحالة. - يجب أن يكون سجل الميزة موجودًا: لا يمكنك تعديل حقول KYC إلا إذا كانت الجلسة قد سجّلت ميزة KYC، ولا تعديل حقول POA إلا إذا كانت قد سجّلت ميزة POA، ولا تعديل بيانات شركة KYB إلا إذا كانت الجلسة تتضمن فحص سجل.
- التحديثات الجزئية: لا يتغير إلا الحقول التي تُرسلها. أغفل الحقل لإبقائه كما هو. أرسل
nullلمسح مفتاح منextra_fields. - webhook: عند نجاح التحديث يُطلق الحدث
data.updatedمعsession_kind: "user"أو"business"، ويسجّل سجل تدقيق الجلسة الحقول المحددة التي تغيّرت ومن غيّرها.
تحديث بيانات هوية KYC
PATCH /v3/session/{sessionId}/update-data/
عدّل أي حقل مستخرج من وثيقة الهوية. يدعم سير عمل متعدد المثيلات يعتمد على المخطط عبر معامل الاستعلام الاختياري node_id أو حقل في نص الطلب، لاستهداف سجل KYC محدد عندما تحتوي الجلسة الواحدة على عدة خطوات KYC.
الحقول القابلة للتعديل
يقبل
parsed_address مفاتيح متداخلة محددة فقط: address_type، city، region، street_1، street_2، postal_code، country (بصيغة ISO 3166-1 alpha-2).
مثال
?node_id=feature_ocr_2 إلى الرابط (أو مرّر "node_id": "feature_ocr_2" في الجسم) لاستهداف سجل KYC محدد.
تحديث بيانات إثبات العنوان (POA)
PATCH /v3/session/{sessionId}/update-poa-data/
عدّل الحقول المستخرجة من وثيقة إثبات العنوان. تنطبق عليه شروط الحالة نفسها والصلاحية نفسها كتحديثات KYC. ويدعم أيضًا node_id لسير العمل متعدد المثيلات.
الحقول القابلة للتعديل
مثال
تحديث بيانات الشركة في KYB
PATCH /v3/session/{sessionId}/kyb/{companyUuid}/update-data/
صحّح الحقول المستخرجة من السجل التجاري لشركة في KYB. يعدّل الـ endpoint الأعمدة القياسية لبيانات الشركة وregistry_data معاً، فيعكس عرض “المستخرج من السجل” في الكونسول تصحيحاتك. لا يُعدَّل user_provided_data (ما أكّده المستخدم النهائي في الصفحة المستضافة). يُسجَّل last_console_edit_at، ويُطلق webhook من نوع data.updated مع trigger: "console_registry_edit".
المتطلبات
- الصلاحية:
write:businesses(تختلف عن صلاحية KYC / POA). - يجب أن ينتمي
companyUuidفي العنوان إلىsessionIdالمحدد، وإلا ستحصل على 404. - لا يوجد شرط على حالة الجلسة، إذ يمكن تصحيح بيانات شركة KYB في أي وقت.
الحقول القابلة للتعديل
أي حقل لا ترسله يبقى دون تغيير. أي حقل ترسله يُكتب في العمود القياسي (إن وُجد) ويُدمج في
registry_data. تُسلسَل التواريخ كسلاسل بصيغة ISO 8601 عند دمجها في registry_data.
مثال
registry_checks[].company في قرار الجلسة.
تخطي طرف من الأشخاص الرئيسيين
PATCH /v3/session/{sessionId}/kyb/parties/{partyUuid}/
استثنِ طرفاً من الأشخاص الرئيسيين من التحقق. هذا هو المخرج الاستثنائي لطرف لن يتمكن أبداً من إكمال فحصه. السبب المعتاد هو جلسة فرعية محذوفة: فبمجرد حذف جلسة KYC الفردية المُسنَدة إلى مستفيد حقيقي أو مدير، تتجمد حالتها ولا يمكن حسمها أبداً، فلا يبقى في KYB ما يمكن أن ينقل الطرف خارج الحالة Awaiting User. يؤدي تخطي الطرف إلى إخراجه من تجميع الأشخاص الرئيسيين، فيُعاد احتساب الفحص فوراً، ويمكن للجلسة عندئذٍ أن تُحسم فتُقبل أو تُرفض.
المتطلبات
- الصلاحية:
write:businesses. - يجب أن ينتمي
partyUuidفي العنوان إلىsessionIdالمحدد، وإلا ستحصل على 404. - غير مقيّد بـ
allow_skip. يحدد هذا الإعداد للدور ما يمكن لمقدّم الطلب تخطيه أثناء تعبئة شاشة الأشخاص الرئيسيين في الصفحة المستضافة. أما هذه النقطة فهي تجاوز يملكه المشغّل، لذا تعمل حتى على الأدوار التي لم يكن مقدّم الطلب ليتمكن من تخطيها.
نص الطلب
لا يُمسّ الحقل
requires_verification عمداً، لذا يظهر الطرف المُتجاوَز بالقيمتين requires_verification: true و is_skipped: true. فالسجل يبيّن أن القواعد طلبت التحقق.
مثال
key_people_checks[].submitted.parties[] في قرار الجلسة.
يُطلق webhook من نوع data.updated مع trigger: "console_key_people_skip".
يُعلَّم الطرف الذي حُذفت جلسته الفرعية في حمولة القرار بالقيمة
kyc_session_deleted: true (أو kyb_sub_session_deleted: true للأطراف من الشركات)،
ويُعاد kyc_session_url / kyb_sub_session_url الخاص به بالقيمة null لأن الرابط
لم يعد يُفتح. حذف جلسة فرعية لا يؤدي، من تلقاء نفسه، إلى قبول الطرف أبداً، إذ ينتقل فحص الأشخاص الرئيسيين
إلى الحالة In Review ليتخذ إنسان القرار.ماذا يحدث بعد التحديث
- webhook: يُطلق
data.updatedعلى الجلسة، ومعهsession_kindالخاص بالجلسة في الحمولة ("user"أو"business"). اشترك مرة واحدة على مستوى الوجهة، ووجّه الأحداث حسبsession_kind. - سجل التدقيق: تسجّل الجلسة بدقة الحقول التي تغيّرت، والقيم السابقة والجديدة، و(لاستدعاءات المصادقة للمستخدم) بريد الفاعل الإلكتروني. تظهر هذه السجلات في تبويب الأحداث في الكونسول.
- إعادة الترميز الجغرافي للعنوان: بالنسبة لتحديثات KYC وPOA التي تغيّر
addressأوpoa_address، يعيد Didit الترميز الجغرافي في الخلفية. تُتجاهل الأخطاء، فلا يفشل التحديث أبداً بسبب مشكلة في الترميز الجغرافي. - إعادة تقييم AML: قد تعيد تحديثات KYC التي تغيّر الاسم أو تاريخ الميلاد أو الجنسية تشغيل فحص AML إذا لم يكن قد انتهى في الجلسة. وتظهر النتائج في قرار الجلسة.
متى لا تستخدم هذه الـ endpoints
- إعادة تشغيل التحقق كاملاً: إذا كان على العميل إعادة التقاط صورة هويته أو إعادة رفع مستند، فاستخدم update-status لنقل الجلسة إلى
Resubmittedبدلاً من ذلك. - تغيير حقول الملف الشخصي لكيان المستخدم أو الشركة: استخدم
PATCH /v3/users/{vendor_data}/أوPATCH /v3/businesses/{vendor_data}/، فهذه الـ endpoints تحدّث بيانات على مستوى الكيان لا على مستوى الجلسة. - تعديل تفاصيل الأشخاص الرئيسيين: لا توجد واجهة API عامة لتعديل اسم الطرف أو أدواره أو ملكيته، إذ تُرسل هذه البيانات عبر الصفحة المستضافة. الحقل الوحيد القابل للتعديل هو
is_skipped(انظر تخطي طرف من الأشخاص الرئيسيين).
الأخطاء
الخطوات التالية
استرجاع الجلسة
استرجع القرار الكامل لمعاينة الحقول المحدَّثة.
تحديث الحالة
قبول الجلسة أو رفضها أو إعادة فتحها بعد تصحيح البيانات.
webhook
اشترك في أحداث
data.updated.