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

إنشاء عملية

هذه هي نقطة الدخول لكل تكامل Web و SDK. يقوم خادمك الخلفي باستدعائها لإنشاء عملية؛ وتستخدم واجهتك الأمامية الرموز المُرجعة لعرض iFrame، أو إعادة توجيه المستخدم، أو تهيئة SDK أصلي.

للاطلاع على تدفق التكامل الكامل، انظر نظرة عامة على Web و SDK.

نقطة النهاية

البيئةالرابط
الإنتاجPOST https://api.idcloud.unico.app/client/v1/process
SandboxPOST https://api.idcloud.uat.unico.app/client/v1/process

الطلب

الترويسات
الترويسةالقيمة
AuthorizationBearer <access_token> (انظر المصادقة)
Content-Typeapplication/json
معاملات الجسم
الحقلالنوعمطلوبالوصف
callbackUristringنعمعنوان URL الذي يتم إعادة توجيه المستخدم إليه بعد انتهاء الرحلة. استخدم / لتدفقات SDK الأصلية حيث يتم التعامل مع الاستدعاء داخل التطبيق.
flowstringنعممعرّف التدفق - يحدد الإمكانيات التي سيتم تشغيلها. أمثلة: idunicodocs، idunicosign، idchecktrust، idtoken، idsmart. انظر التدفقات المتاحة.
purposestringنعمالغرض التجاري. القيم المقبولة: creditprocess، biometryonboarding، carpurchase، ageverification.
person.duiTypeenumنعمنوع المستند. القيم المقبولة: DUI_TYPE_BR_CPF، DUI_TYPE_MX_CURP، DUI_TYPE_US_SSN، DUI_TYPE_BR_PASSPORT، DUI_TYPE_AR_PASSPORT، DUI_TYPE_AR_DNI، DUI_TYPE_NG_NIN، DUI_TYPE_CL_RUN، DUI_TYPE_EC_NI، DUI_TYPE_US_PASSPORT، DUI_TYPE_GT_CUI، DUI_TYPE_UY_CI، DUI_TYPE_ZZ_EMAIL، DUI_TYPE_ID_NIK، DUI_TYPE_ZZ_PHONE_NUMBER، DUI_TYPE_US_DRIVER_LICENSE، DUI_TYPE_NG_BVN، DUI_TYPE_MX_RFC_PERSONA_FISICA، DUI_TYPE_CO_NIT، DUI_TYPE_PE_RUC، DUI_TYPE_CA_SIN، DUI_TYPE_DK_CPR، DUI_TYPE_GB_NINO، DUI_TYPE_PL_PESEL، DUI_TYPE_SE_PNR، DUI_TYPE_AT_STNR، DUI_TYPE_FI_HETU.
person.duiValuestringنعمرقم المستند، بدون تنسيق.
person.friendlyNamestringلااسم العرض للمستخدم المعروض في واجهة الرحلة. الحد الأقصى 50 حرفاً.
person.phonestringلارقم الهاتف بتنسيق DDI + DDD + الرقم، بدون فواصل. مطلوب عند إرسال إشعارات عبر SMS أو WhatsApp.
person.emailstringلاعنوان البريد الإلكتروني. مطلوب للتدفقات التي تتضمن التوقيع الإلكتروني.
person.notificationsarrayلاقنوات الإشعارات لإرسال رابط الرحلة. كل عنصر يحتوي على notificationChannel: NOTIFICATION_CHANNEL_WHATSAPP، NOTIFICATION_CHANNEL_SMS، أو NOTIFICATION_CHANNEL_EMAIL.
bioTokenIdstring (UUID)مشروطمهمل. استخدم references بدلاً منه. معرّف العملية البيومترية المرجعية. مطلوب لتدفقات التحقق 1:1 (idtoken، idtokentrust، idtokensign) وإعادة التحقق الذكية (idsmart).
referencesarrayمشروطمدخلات مرجعية لتدفقات التحقق 1:1 وإعادة التحقق الذكية، بديلاً عن bioTokenId. كل عنصر يحتوي على referenceType (REFERENCE_TYPE_IMAGE_BASE64 أو REFERENCE_TYPE_PROCESS_ID) وreferenceContent (صورة مشفرة بـ base64 أو UUID عملية).
useCasestringمشروطحالة استخدام إعادة التحقق الذكية. مطلوب لـ idsmart. أمثلة: USE_CASE_LOGIN، USE_CASE_IDENTITY_REVALIDATION_7_DAYS، USE_CASE_FIN_TRANSACTIONS.
clientReferencestringلاالمعرّف الداخلي الخاص بك لهذه العملية (مفتاح خارجي للإسناد التبادلي في البوابة).
companyBranchIdstring (UUID)لامعرّف الفرع. مطلوب فقط إذا كان لدى حساب الخدمة أكثر من فرع واحد مرتبط.
expiresInstringلانافذة صلاحية العملية من الإنشاء. التنسيق: "3600s". الافتراضي 7 أيام إذا لم يُحدد.
flow_configobjectلاتجاوزات تكوين لكل تدفق.
flow_config.biometry_capture.enabled_back_camerabooleanلااستخدام الكاميرا الخلفية للجهاز. غير متوافق مع تدفقات التقاط المستندات أو التوقيع الإلكتروني.
contextualizationobjectلاسياق المعاملة المعروض للمستخدم أثناء الرحلة لشرح الالتقاط.
contextualization.company_namestringلااسم الشركة المعروض أثناء الرحلة. الحد الأقصى 20 حرفاً.
contextualization.currencystringلارمز العملة المعروض للمستخدم. القيم المقبولة: BRL، MXN، USD.
contextualization.pricenumberلامبلغ المعاملة المعروض للمستخدم.
contextualization.localeobjectلاالنص المترجم المعروض أثناء الرحلة. المفاتيح: ptBr، enUs، esMx.
contextualization.locale.{ptBr|enUs|esMx}.reasonstringلاسبب موجز للالتقاط، يُعرض أثناء الرحلة. الحد الأقصى 50 حرفاً.
contextualization.locale.{ptBr|enUs|esMx}.titlestringلاعنوان إشعار العميل المعروض أثناء الرحلة. الحد الأقصى 100 حرف. يجب تقديمه مع text. يتم تجريد وسوم HTML.
contextualization.locale.{ptBr|enUs|esMx}.textstringلانص إشعار العميل المعروض أثناء الرحلة. الحد الأقصى 210 أحرف. يجب تقديمه مع title. يتم تجريد وسوم HTML.

مثال

curl -X POST https://api.idcloud.unico.app/client/v1/process \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"callbackUri": "https://app.client.com/callback",
"flow": "idunicodocs",
"purpose": "biometryonboarding",
"person": {
"duiType": "DUI_TYPE_BR_CPF",
"duiValue": "12345678909",
"friendlyName": "Luke Skywalker",
"phone": "5511912345678",
"email": "[email protected]"
}
}'

الاستجابات

200 OK
{
"process": {
"id": "53060f52-f146-4c12-a234-5bb5031f6f5b",
"state": "PROCESS_STATE_CREATED",
"flow": "idunicosign",
"purpose": "biometryonboarding",
"callbackUri": "https://app.client.com/callback",
"clientReference": "your-internal-id-123",
"companyBranchId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"userRedirectUrl": "https://cadastro.unico.app/process/53060f52-f146-4c12-a234-5bb5031f6f5b",
"token": "eyJhbGciOiJSUzI1NiIs...",
"webAppToken": "eyJhbGciOiJSUzI1NiIs...",
"createdAt": "2023-10-09T09:15:25.417105Z",
"expiresAt": "2023-10-09T16:15:25.417105Z",
"capacities": [],
"authenticationInfo": {},
"person": {
"duiType": "DUI_TYPE_BR_CPF",
"duiValue": "12345678909",
"friendlyName": "Luke Skywalker",
"phone": "5511912345678",
"email": "[email protected]",
"notifications": []
},
"companyData": {
"branchId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"countryCode": "BR"
}
}
}
الحقلالنوعالوصف
process.idstring (UUID)معرّف العملية. استخدمه لجلب النتيجة عبر الحصول على العملية.
process.stateenumPROCESS_STATE_CREATED - تم إنشاء العملية، لم تبدأ الرحلة بعد. PROCESS_STATE_FAILED - فشل إنشاء العملية.
process.flowstringمعرّف التدفق المرسل عند الإنشاء.
process.purposestringالغرض التجاري المرسل عند الإنشاء.
process.callbackUristringعنوان URI للاستدعاء المرسل عند الإنشاء.
process.clientReferencestringالمعرّف الداخلي الخاص بك المرسل عند الإنشاء. موجود فقط إذا تم تقديمه في الطلب.
process.companyBranchIdstring (UUID)معرّف الفرع. موجود فقط إذا تم تقديمه في الطلب.
process.userRedirectUrlstringعنوان URL لإعادة توجيه المستخدم إليه (تكامل Web Redirect و iFrame). لا تعدّل هذا العنوان.
process.tokenstringJWT لتهيئة Web SDK iFrame.
process.webAppTokenstringJWT لتهيئة SDKs الأصلية (Android، iOS، Flutter).
process.createdAtstring (date-time)الطابع الزمني لوقت إنشاء العملية.
process.expiresAtstring (date-time)الطابع الزمني الذي تنتهي بعده صلاحية العملية ولا يمكن إكمالها.
process.capacitiesarrayالإمكانيات المكوّنة لهذه العملية.
process.authenticationInfoobjectمعلومات المصادقة للعملية (فارغة وقت الإنشاء).
process.personobjectصدى كائن person المرسل عند الإنشاء.
process.companyData.branchIdstring (UUID)معرّف الفرع المرتبط بالعملية.
process.companyData.countryCodestringرمز الدولة المرتبط بالفرع (مثلاً BR، MX).
400 Bad Request

يتم إرجاعه عندما تكون حمولة الطلب غير صحيحة، أو الحقول المطلوبة مفقودة، أو قيمة flow غير معروفة.

401 Unauthorized

رمز Bearer مفقود أو منتهي الصلاحية أو غير صالح. انظر المصادقة.

429 Too Many Requests

تم الوصول إلى حد المعدل. عندما يتلقى نظامك خطأ HTTP 429، يجب عليك تنفيذ آليات لمنع الأعطال المتتالية وتجنب تفاقم القيود.

أفضل الممارسات:

  • فترة التهدئة (backoff): أوقف أو قلل الطلبات اللاحقة من نظامك فوراً. لا تعيد محاولة الطلبات الفاشلة باستمرار في حلقة ضيقة.
  • التخزين المؤقت وتنظيم المعدل: قم بتخزين الطلبات الصادرة مؤقتاً أو وضعها في قائمة انتظار للتحكم في تدفق حركة المرور قبل إعادة إرسالها.
  • التراجع الأسي مع التشتيت: عند إعادة المحاولة، قم بزيادة وقت الانتظار بشكل أسي بين المحاولات (مثلاً 1 ث، 2 ث، 4 ث، 8 ث) وأضف تأخيراً عشوائياً صغيراً ("تشتيت") لمنع تأثير القطيع حيث تعيد جميع الطلبات المؤجلة المحاولة في نفس الميلي ثانية بالضبط.
تحذير

الاستمرار في الوصول إلى نقطة نهاية محدودة المعدل دون تراجع يمكن أن يطيل فترة التقييد ويؤثر بشدة على الإنتاجية التشغيلية لنظامك. تنظيم الطلبات بشكل صحيح من جانبك يضمن تكاملاً أكثر سلاسة ومرونة.

للحدود الافتراضية وزيادة الطلبات والتفاصيل الإضافية، انظر حدود المعدل.

رموز الخطأ

الرمزالرسالةالوصف
3invalid flowعندما لا يكون التدفق المحدد موجوداً.
3invalid person: friendly name exceeds 50 characters.عندما يتجاوز الاسم الودي 50 حرفاً.
3invalid purposeعندما يكون الغرض المقدم غير صالح.
3invalid callbackUri: unable to parse callbackUri: parse "": empty url, invalid callbackUri: url:عندما يكون callbackUri المقدم غير صالح.
3invalid person: email required for notification channel NOTIFICATION_CHANNEL_EMAIL, invalid email address for notification channel NOTIFICATION_CHANNEL_EMAILعندما يكون البريد الإلكتروني المقدم غير صالح وإشعار البريد الإلكتروني مكوّن.
3invalid person: phone number required for notification channel NOTIFICATION_CHANNEL_WHATSAPP, phone number does not contain 13 chars for notification channel NOTIFICATION_CHANNEL_WHATSAPPعندما يكون رقم الهاتف المقدم غير صالح وإشعار SMS أو WhatsApp مكوّن.
3idnsv2/GetPublicID request error: rpc error: code = InvalidArgument desc = invalid dui valueعندما يكون المعرّف المقدم (duiValue) غير صالح.
3invalid expiresIn argumentعندما تكون قيمة expiresIn غير صالحة.
3invalid company_name argument in process contextualization, max length is 20عندما يتجاوز contextualization.company_name 20 حرفاً.
3title and text must be provided together in process contextsعندما يُقدَّم أحد title أو text فقط دون الآخر في إعدادات اللغة.
3invalid title argument in process contexts, max length is 100عندما يتجاوز title الخاص بإعدادات اللغة 100 حرف.
3invalid text argument in process contexts, max length is 210عندما يتجاوز text الخاص بإعدادات اللغة 210 أحرف.
3invalid reason argument in process contexts, max length is 50عندما يتجاوز reason الخاص بإعدادات اللغة 50 حرفاً.
9XX ID Apikeys are not setعندما لا يكون مفتاح API مكوّناً بشكل صحيح.

ما التالي