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

نظرة عامة

تُنشئ صراحةً كيان المستخدم قبل تشغيل أي جلسة. يصبح الكيان الذي تُعيده الاستجابة في حالة ACTIVE ما لم تحدد غير ذلك. اختيارياً، يرسل الطلب نفسه إلى الشخص رابط التحقق (راجع إرسال رابط التحقق).

متى تستخدمه

  • تهيئة البيانات الوصفية مسبقاً (المستوى، ومصدر التسجيل، والوسوم الداخلية) قبل أن يتحقق العميل.
  • الانتقال من مزوّد آخر: أعد إنشاء قائمة مستخدميك الحالية في Didit ليبدأ السجل والتحليلات من خط أساس معروف.
  • استيراد صور الوجه الموثوقة للملفات الشخصية: أنشئ المستخدم أولاً، ثم استدعِ رفع وجه المستخدم باستخدام didit_internal_id المُرجَع.
  • حالات الاستخدام الخاصة بالمعاملات فقط: سجّل مستخدماً باستخدام vendor_data لتتمكن من إرسال المعاملات دون تشغيل أي جلسة للتحقق من المستخدمين (KYC).
  • دعوة شخص للتحقق: أنشئ الشخص وأرسل إليه رابط التحقق عبر البريد الإلكتروني في استدعاء واحد.

بيانات الاتصال

يمكنك إرسال بيانات الاتصال الخاصة بالشخص إلى جانب حقول الملف الشخصي. يُدمج first_name وlast_name بمسافة في full_name عندما لا ترسل full_name. يُحفظ email وphone_number في metadata.contact، ويُحفظ country في metadata.address. يقبل country رمز ISO 3166 من نوع alpha-2 أو alpha-3 (مثل ES أو ESP)، ويُحفظ بأحرف كبيرة. إذا كان metadata المُرسَل يحتوي بالفعل على قيمة contact أو address ليست كائن JSON، فلن يستبدلها Didit: يُعيد الطلب الاستجابة 400 على الحقل المعني الذي كان يتطلب كائناً JSON.

إرسال رابط التحقق

اضبط send_verification_link على true لدعوة الشخص إلى التحقق في الطلب نفسه. ينشئ Didit جلسة تحقق للشخص على سير العمل المحدد في workflow_id، ويرسل إليه الرابط على العنوان المحدد في email. استخدم language لاختيار لغة البريد الإلكتروني؛ وتكون الإنجليزية إذا حذفتها.
  • يكون email وworkflow_id مطلوبَين مع الرابط، ويجب أن يكون سير العمل مخصصاً للتحقق من شخص: سير عمل التحقق من الشركات (KYB) يُعيد 400.
  • تمر الجلسة بالفحوص نفسها التي تُجرى عند إنشاء جلسة. إذا كان vendor_data مدرجاً في قائمة الحظر أو كان الرصيد غير كافٍ، يُعيد الطلب 400.
  • يُنشأ الشخص والجلسة معاً أو لا يُنشأ أيٌّ منهما. عند فشل أي فحص، لا يُكتب شيء ولا يُرسل أي بريد إلكتروني.
  • تتضمن الاستجابة verification_link مع session_id وsession_number وstatus وurl وworkflow_id الخاصة بالجلسة، وemail الذي أُرسل إليه. وبدون رابط، تكون قيمة verification_link هي null.

ملاحظات

  • vendor_data مطلوب ويجب أن يكون فريداً لكل تطبيق. تؤدي محاولة إنشاء نسخة مكررة إلى خطأ تعارض. استخدم PATCH /v3/users/{vendor_data}/ لتحديث مستخدم موجود.
  • يبلغ الحد الصارم للحقل vendor_data 2000 بايت (بترميز UTF-8). تُعيد القيمة التي تتجاوز هذا الحد خطأ تحقق 400 بدلاً من قبولها.
  • يمكن تهيئة الحقول التي تُستمد عادةً من الجلسات الموثّقة (full_name وdate_of_birth) هنا، لكنها قد تُستبدل بأول جلسة تحقق من المستخدمين (KYC) تُعتمد.
  • لا يقبل هذا endpoint صور الوجه. لإرفاق وجه موثوق مستورد، استخدم POST /v3/organization/{organization_id}/application/{application_id}/vendor-users/by-id/{didit_internal_id}/faces/upload/ بعد أن يُعيد هذا endpoint didit_internal_id.
  • لا يرسل الإنشاء نفسه أي webhook. تُرسل التغييرات اللاحقة على المستخدم user.data.updated أو user.status.updated.
  • مع send_verification_link، تُحدّث الجلسة الجديدة المستخدم في الطلب نفسه، وهذا يرسل user.data.updated.

الصلاحيات

يمكن دائماً للسر الأساسي ولمفاتيح API ذات الوصول الكامل استدعاء هذا endpoint. يحتاج المفتاح ذو الوصول المخصّص إلى صلاحية كتابة الأشخاص (users). مع send_verification_link: true يحتاج أيضاً إلى صلاحية كتابة الجلسات، لأن الطلب ينشئ جلسة ويسلّم رابطها. وبدونها، يُعيد الطلب 403 مع الرسالة This API key has no write access to sessions. ولا يُكتب شيء. لا يستطيع مفتاح مقيّد ببعض سير العمل أو بالجلسات المعتمدة الوصول إلى هذا endpoint. تحدد الأدوار والأذونات في لوحة التحكم ما يستطيع عضو الفريق فعله فيها. لا تُقيَّم هذه الأدوار والأذونات لطلبات مفاتيح API.

ذات صلة

التفويضات

x-api-key
string
header
مطلوب

مفتاح API الخاص بتطبيقك، من Developers -> API keys في Business Console. يمتلك المفتاح الأساسي وصولاً كاملاً. يمكن تحديد نطاق المفتاح المسمى: لا شيء، أو قراءة، أو كتابة لكل مورد، ومحدوداً ببعض مسارات العمل أو بالجلسات المقبولة، وبقائمة من عناوين IP، وبتاريخ انتهاء الصلاحية. يشير 401 إلى أن المفتاح غير صحيح أو ملغى أو منتهي الصلاحية؛ ويشير 403 إلى أنه لم يتم إرسال أي مفتاح، أو أن المفتاح ليس لديه حق الوصول إلى هذا المورد أو الإجراء، أو أن الطلب جاء من عنوان خارج قائمة عناوين IP الخاصة به؛ ويشير 404 في مسار جلسة إلى أن الجلسة خارج مسارات العمل أو الحالات الخاصة بالمفتاح. يتلقى المفتاح الذي لا يمتلك حق الوصول إلى الوسائط عناوين URL للصور ومقاطع الفيديو وملفات PDF كـ null، ويتلقى المفتاح الذي لا يمتلك إذن كتابة للجلسات روابط الجلسة وtoken كـ null. راجع https://docs.didit.me/console/api-keys.

الجسم

application/json
vendor_data
string
مطلوب

معرّفك الفريد لهذا المستخدم (سلسلة نصية حرة، وليس UUID). يجب أن يكون فريداً بين مستخدمي التطبيق؛ وتتم مطابقته تماماً كما أُرسل.

full_name
string | null

الاسم القانوني الكامل للمستخدم.

Maximum string length: 512
display_name
string | null

اسم العرض المألوف الظاهر في لوحة التحكم (له الأولوية على full_name للعرض في واجهة المستخدم).

Maximum string length: 255
date_of_birth
string<date> | null

تاريخ الميلاد بصيغة YYYY-MM-DD.

status
enum<string>
افتراضي:ACTIVE

حالة دورة الحياة الأولية. القيمة الافتراضية هي ACTIVE.

الخيارات المتاحة:
ACTIVE,
FLAGGED,
BLOCKED
metadata
object | null

كائن JSON عشوائي ترفقه بالمستخدم. القيمة الافتراضية هي {}.

approved_emails
string[]

عناوين البريد الإلكتروني الموثوقة مسبقاً لهذا المستخدم، على سبيل المثال ["john@example.com"].

approved_phones
string[]

أرقام الهواتف الموثوقة مسبقاً لهذا المستخدم، على سبيل المثال ["+14155551234"].

issuing_states
string[]

دول الإصدار المسجلة مسبقاً (ISO 3166-1 alpha-3)، على سبيل المثال ["USA"].

first_name
string

الاسم الشخصي. عند عدم إرسال full_name، تجمع Didit بين first_name وlast_name بمسافة في full_name. لا يُعاد كحقل منفصل.

Maximum string length: 255
last_name
string

اسم العائلة. يُدمج مع first_name لتكوين full_name عند عدم إرسال full_name. لا يتم إرجاعه كحقل منفصل.

Maximum string length: 255
email
string<email>

البريد الإلكتروني لجهة الاتصال، مخزن في metadata.contact.email (يستبدل email ترسله داخل metadata.contact). مطلوب عندما تكون قيمة send_verification_link هي true: يتم إرسال الرابط إلى هذا العنوان. إذا لم يكن metadata.contact كائن JSON، فإن الاستدعاء يُرجع 400 على هذا الحقل.

phone_number
string

رقم هاتف التواصل، المخزن في metadata.contact.phone_number. إذا لم يكن metadata.contact كائن JSON، فسيُرجع الاستدعاء 400 لهذا الحقل.

Maximum string length: 32
country
string

الدولة كرمز ISO 3166، بصيغة alpha-2 أو alpha-3 (ES أو ESP). تُخزن بأحرف كبيرة في metadata.address.country. إذا لم يكن metadata.address كائن JSON، تستجيب العملية بـ 400 لهذا الحقل.

Maximum string length: 3

عندما تكون true، تُنشئ Didit جلسة تحقق للشخص وفقاً لـ workflow_id وترسل له الرابط عبر البريد الإلكتروني إلى email. يتطلب email وworkflow_id. يتطلب مفتاح API محدد النطاق أيضاً إذن كتابة لـ sessions.

workflow_id
string<uuid>

سير عمل جلسة التحقق. مطلوب عندما تكون قيمة send_verification_link هي true. يجب أن يتحقق من شخص: يتم رفض سير عمل التحقق من الشركات (KYB). يتم تجاهله في غير ذلك.

language
string

لغة البريد الإلكتروني للتحقق، كرمز لغة مدعومة. الإنجليزية عند حذفه. يتم تجاهله إذا لم تكن قيمة send_verification_link هي true.

Maximum string length: 10

الاستجابة

تم إنشاء المستخدم. سجل المستخدم الكامل (بنفس شكل Get User)، بالإضافة إلى verification_link: جلسة التحقق التي أرسلها Didit بالبريد الإلكتروني عندما كان send_verification_link بقيمة true، وإلا فإنه يكون null.

تفاصيل المستخدم الكاملة. يوسع UserListItem بالبيانات الوصفية، والتعليقات، وحقل updated_at.

جلسة التحقق التي أنشأتها Didit وأرسلتها عبر البريد الإلكتروني إلى الشخص. تظهر دائماً: تكون null عندما لا تكون قيمة send_verification_link هي true.

didit_internal_id
string<uuid>

معرّف UUID الداخلي الثابت من Didit لهذا المستخدم.

vendor_data
string | null

معرّفك الفريد لهذا المستخدم (يتم تمريره عند إنشاء الجلسات). يمكن أن يكون هذا null في حال عدم تقديم معرّف بائع.

display_name
string | null

اسم عرض مخصص تم تعيينه بواسطتك

full_name
string | null

الاسم الكامل المستخرج من المستندات التي تم التحقق منها

date_of_birth
string<date> | null
effective_name
string | null

أفضل اسم متاح: display_name إذا كان محدداً، وإلا فـ full_name

status
enum<string>

حالة دورة حياة سجل المستخدم (ليست حالة جلسة). القيمة الافتراضية هي ACTIVE، وFLAGGED تميز المستخدم للمراجعة اليدوية، وBLOCKED تمنع إنشاء جلسات جديدة لقيمة vendor_data هذه.

الخيارات المتاحة:
ACTIVE,
FLAGGED,
BLOCKED
portrait_image_url
string | null

رابط موقع مسبقاً للصورة الشخصية للمستخدم (تنتهي صلاحيته بعد بضع ساعات)

session_count
integer

العدد الإجمالي لجلسات التحقق لهذا المستخدم

approved_count
integer

عدد الجلسات المقبولة

declined_count
integer

عدد الجلسات المرفوضة

in_review_count
integer

عدد الجلسات قيد المراجعة

issuing_states
string[]

رموز ISO 3166-1 alpha-3 لدول الإصدار الواردة في مستندات الهوية المقبولة لهذا المستخدم، مثل ["USA", "ESP"]. مصفوفة فارغة في حال عدم وجود أي منها.

approved_emails
string[]

عناوين البريد الإلكتروني التي تم التحقق منها والمجمعة من الجلسات المقبولة لهذا المستخدم، على سبيل المثال ["john@example.com"].

approved_phones
string[]

أرقام الهواتف التي تم التحقق منها والمجمعة من الجلسات المقبولة لهذا المستخدم، على سبيل المثال ["+14155551234"].

features
object

الحالة المجمعة لكل ميزة عبر جميع جلسات هذا المستخدم. المفاتيح المحتملة: ID_VERIFICATION، NFC، LIVENESS، FACE_MATCH، POA، QUESTIONNAIRE، EMAIL_VERIFICATION، PHONE، AML، IP_ANALYSIS، AGE_ESTIMATION، DATABASE_VALIDATION. القيم المحتملة: Approved، Declined، In Review، Not Finished، Resub Requested.

features_list
object[]

البيانات نفسها مثل features، كمصفوفة مرتبة من كائنات {feature, status}.

last_session_at
string<date-time> | null

الطابع الزمني لأحدث جلسة

first_session_at
string<date-time> | null

الطابع الزمني للجلسة الأولى

last_activity_at
string<date-time> | null

الطابع الزمني لأحدث نشاط لهذا المستخدم (جلسة، معاملة، تغيير حالة، تعديل بيانات، إلخ).

tags
object[]

تعيينات العلامات. ملاحظة: في استجابات التفاصيل يكون كل إدخال كائن ربط علامة ({uuid, tag: {...}, added_by_email, added_by_name, created_at})، على عكس التنسيق المسطح {uuid, name, color} المُستخدم في استجابات القوائم.

created_at
string<date-time>
metadata
object

بيانات وصفية مخصصة بتنسيق JSON أرفقتها بهذا المستخدم. القيمة الافتراضية هي {}.

comments
object[]

سجل الأنشطة والتعليقات الخاصة بهذا المستخدم (تغييرات الحالة، تعديلات الملف التعريفي، الملاحظات اليدوية).

updated_at
string<date-time>
آخر تعديل في ٧ نوفمبر ٢٠٢٦