الحصول على نتائج التحقق عبر webhooks

لا ترسل Didit بريدًا إلكترونيًا عندما تتغير حالة عملية تحقق - أعدّ webhook حتى تعرف خلفيتك بذلك لحظة حدوثه، وتحقق من التوقيع قبل أن تثق به.

Short answer

الـ webhook هو طلب HTTP ترسله Didit إلى رابطك عندما يتغيّر شيء ما. أضف وجهة تحت API & Webhooks، واشترك في الأحداث التي تريدها - لا يوجد رمز بدل عام، أدرجها كلها - احفظ سر التوقيع، وتحقق من التوقيع قبل معالجة أي شيء.

لا ترسل Didit بريدًا إلكترونيًا لك عندما تنتقل جلسة إلى In Review أو Declined. لمعرفة لحظة تغيّر الحالة، دون إعادة تحميل الكونسول، أعدّ webhook - رابط على خادمك ترسل Didit التحديث إليه تلقائيًا.

الـ webhooks هي نمط التكامل الموصى به. الاستقصاء الدوري لنقطة نهاية القرار يعمل كخيار احتياطي، لكنه أبطأ، ويكلّف طلبات أكثر، ويفوّت أحداثًا لا تُسلَّم إلا عبر webhook - تعديلات البيانات التي يجريها المراجع، وتغيّرات حالة المعاملات، والتغيّرات على مستوى الكيانات.

#إعداد واحد

  1. اذهب إلى API & Webhooks

    في كونسول الأعمال، افتح التطبيق الذي تريد استقبال أحداث له، ثم اذهب إلى API & Webhooks.

  2. أضف وجهة

    امنحها تسمية، ورابط HTTPS العام لنقطة نهايتك، واختر الأحداث التي تريد استقبالها - تغيّرات حالة الجلسة كحد أدنى.

  3. احفظ سر التوقيع

    تعرض لك الوجهة سرًا مرة واحدة. احفظه - يستخدمه خادمك للتأكد من أن الطلب جاء فعلًا من Didit لا من منتحل. خطوات التحقق الكاملة: التحقق من التوقيع.

  4. اختبره

    استخدم Try Webhook في نفس الصفحة لإرسال حدث تجريبي مكتمل التكوين - سيناريوهات مقبول، ومرفوض، وقيد المراجعة، وKYB، وكيان، ومعاملة - إلى نقطة نهايتك. يمكنك التحقق من صحة تكاملك بهذه الطريقة دون تشغيل عملية تحقق فعلية.

وجهات webhook في كونسول Didit مع الأحداث المشترك بها وسجل التسليم
  1. يسجّل Add destination الرابط الذي تنشر Didit النتائج إليه.
  2. تحقق من كل عملية تسليم مقابل سر التوقيع هذا قبل أن تثق بها.
  3. اختر الأحداث التي تستقبلها وجهة ما.
  4. يرسل Test Webhook حمولة عيّنة حتى تتأكد أن نقطة نهايتك تقبلها.
لكل وجهة أحداثها المشترك بها الخاصة، وسر توقيعها، وسجل تسليمها.

#الأحداث التي يمكنك الاشتراك بها

لا يوجد رمز بدل عام - أدرج كل عائلة أحداث تريدها. توزيعها على عدة وجهات أمر مناسب وغالبًا أنظف.

الحدثيُطلَق عند
status.updatedتغيّر حالة جلسة KYC أو KYB. الحدث الذي تريده على الأرجح تقريبًا بالتأكيد
data.updatedتعديل بيانات التحقق بعد الإنشاء - تصحيح مراجع لحقل ما
user.status.updatedانتقال مستخدم موحَّد بين ACTIVE وFLAGGED وBLOCKED
user.data.updatedتغيّر ملف تعريف مستخدم موحَّد، أو عداداته، أو معرِّفاته
business.status.updatedتغيّر حالة شركة موحَّدة
business.data.updatedتغيّر بيانات شركة موحَّدة
transaction.createdإنشاء معاملة وجهوزية قرارها الأولي
transaction.status.updatedتغيّر حالة معاملة لاحقًا
travel_rule.status.updatedتغيّر حالة تبادل Travel Rule
Note

لا يوجد session.status.updated ولا kyc.completed. إذا اشتركت في اسم غير موجود في هذه القائمة، فلن تستقبل شيئًا - وسيبدو الأمر تمامًا وكأنه فشل تسليم. تحقق من الاسم أولًا.

#ما يجب أن تفعله نقطة نهايتك

  • تحقق من التوقيع قبل أي شيء آخر. جزّئ بـ HMAC جسم الطلب الخام - لا أبدًا نسخة مُعاد تسلسلها من JSON المحلَّل، لأن إعادة التسلسل تغيّر البايتات ولن يتطابق التوقيع. استخدم مقارنة بزمن ثابت.
  • أعد 2xx بسرعة. نفّذ العمل الثقيل بشكل غير متزامن، بعد أن تستجيب.
  • كن idempotent. اعتمد على معرِّف الحدث، أو على معرِّف الجلسة + الحالة + نوع الـ webhook. إعادة المحاولة والتكرار يحدثان.
  • تعامل مع كل حالة تهمك، بما في ذلك تلك التي تصل بعد فترة طويلة من الإعداد - يمكن لجلسة مقبولة أن تنتقل لاحقًا إلى In Review عبر مراقبة AML المستمرة.
  • HTTPS فقط. نقاط النهاية بـ HTTP العادي غير مدعومة.

#إعادة المحاولة

عند 5xx، أو 404، أو انتهاء مهلة، أو فشل اتصال، تعيد Didit المحاولة مرتين:

  • المحاولة الأولى بعد نحو دقيقة واحدة من الفشل الأولي
  • المحاولة الثانية بعد نحو 4 دقائق من ذلك

بعد ذلك تُسقط عملية التسليم. كل محاولة مسجَّلة على حدة في تبويب Deliveries الخاص بالوجهة، حتى تتمكن من رؤية ما حدث بالضبط بدلًا من التخمين.

Important

محاولتان خلال خمس دقائق ليستا طابورًا معمِّرًا. إذا كانت نقطة نهايتك معطلة لساعة، فتلك الأحداث ضاعت. سوِّ الأمر عند بدء التشغيل عبر استقصاء نقطة نهاية القرار عن الجلسات التي لا تملك لها حالة نهائية - webhooks هي المسار السريع، لا المسار الوحيد.

#خلف جدار ناري أو WAF

تُسلِّم Didit من عنوان IP الثابت 18.203.201.92 بعميل مستخدم DiditWebhook/2.0. إذا كانت حافتك تحجب العملاء غير المعروفين - موقف Cloudflare الافتراضي، على سبيل المثال - اسمح بذلك العنوان لاسم المضيف المستقبِل، وإلا ستفشل عمليات التسليم قبل أن تصل إلى شيفرتك.

#لا تملك خلفية بعد؟

لا يزال بإمكانك مراقبة النتائج يدويًا في قسم Verifications بالكونسول أثناء بنائها، أو استخدام رابط تحقق بلا كود في هذه الأثناء.

#الخطوات التالية