استرجاع عملية موجودة بواسطة معرّفها. وفقًا لعقد API، تُعاد النتيجة بشكل متزامن عند إنشاء العملية — استخدم هذه النقطة النهائية لإعادة الاستعلام والتدقيق والدعم.
قبل استرجاع العملية، راجع تهيئة webhook واستراتيجيات fallback الخاصة بنا — اضغط هنا.
النقطة النهائية
| البيئة | الرابط |
|---|---|
| الإنتاج | GET https://api.idcloud.unico.app/client/v1/process/{processId} |
| Sandbox | GET https://api.idcloud.uat.unico.app/client/v1/process/{processId} |
الطلب
| Header | القيمة |
|---|---|
Authorization | Bearer <access_token> |
| المعامل | النوع | مطلوب | الوصف |
|---|---|---|---|
processId | string (UUID) | نعم | معرّف العملية الذي أعادته إنشاء عملية. |
مثال
- cURL
- Node.js
curl -X GET https://api.idcloud.unico.app/client/v1/process/$PROCESS_ID \
-H "Authorization: Bearer $TOKEN"
import fetch from 'node-fetch';
const res = await fetch(
`https://api.idcloud.unico.app/client/v1/process/${processId}`,
{ headers: { Authorization: `Bearer ${accessToken}` } }
);
const { process: proc } = await res.json();
الاستجابات
{
"process": {
"id": "226fd950-4b80-4da6-a476-ba9d397ddc91",
"flow": "id_r2",
"callbackUri": "/",
"userRedirectUrl": "https://cadastro.uat.unico.app/flow?collect-data=true&dynamic-wrapper=true&id=226fd950-4b80-4da6-a476-ba9d397ddc91",
"state": "PROCESS_STATE_FINISHED",
"result": "PROCESS_RESULT_APPROVED",
"createdAt": "2026-08-06T01:42:21.693615Z",
"finishedAt": "2026-08-06T01:43:03.080508Z",
"person": {
"duiType": "DUI_TYPE_BR_CPF",
"duiValue": "40*******50",
"friendlyName": "teste",
"email": "",
"phone": "5511999999999",
"notifications": [
{ "notificationChannel": "NOTIFICATION_CHANNEL_WHATSAPP" }
],
"phoneCountryCodeAlpha3": ""
},
"purpose": "personAuthentication",
"services": [],
"authenticationInfo": { "authenticationId": "55cba227-9828-49df-a16f-bcdaa7bdaa4d" },
"capacities": ["PROCESS_CAPACITY_IDCLOUDONE"],
"expiresAt": "2026-08-13T01:42:21.536500Z",
"token": "",
"companyData": { "branchId": "", "countryCode": "BRA" },
"simulated": false
}
}
| الحقل | المعنى |
|---|---|
id | UUID الخاص بالعملية؛ المفتاح المستخدم للاستعلام عن التدفق وتتبعه. |
flow | نوع الرحلة التي تم تنفيذها (مثل id_r2، idlivetrust_r2، idtrust_r2، ...). |
callbackUri | عنوان URL لإعادة الاتصال الذي يُعاد توجيه تطبيق العميل إليه في نهاية التدفق. |
userRedirectUrl | عنوان URL الكا مل لصفحة CbU التي يفتحها المستخدم لتنفيذ الرحلة (يحمل id وأعلام السلوك). |
state | حالة دورة حياة العملية. قيم PROCESS_STATE_* (مثل CREATED، FAILED، FINISHED، AWAITING_FOR_DOCUMENT، UNSPECIFIED). |
result | القرار النهائي للتقييم. قيم PROCESS_RESULT_* (مثل APPROVED، AUTHENTICATED، NOT_APPROVED، ...). حاسم فقط عندما تكون state = PROCESS_STATE_FINISHED. |
createdAt | الطابع الزمني لإنشاء العملية (UTC). |
finishedAt | الطابع الزمني لاكتمال العملية (UTC). |
person | كائن فرعي يحتوي على بيانات الشخص الذي يجري التحقق منه. |
purpose | الغرض من العملية (مثل personAuthentication، تسجيل شخص). |
services | قائمة الخدمات الإضافية المرتبطة بالعملية؛ فارغة عند عدم وجودها. |
authenticationInfo.authenticationId | معرّف حدث مصادقة الهوية الذي تم إنشاؤه بواسطة التدفق. |
capacities | الإمكانيات/المنتجات المستخدَمة. قيم PROCESS_CAPACITY_* (مثل IDCLOUDONE). |
expiresAt | الطابع الزمني لانتهاء صلاحية العملية/الرابط (UTC). |
token | رمز الجلسة/الوصول المرتبط بالعملية (قد يكون فارغًا). |
companyData | كائن فرعي يحتوي على بيانات الشركة/المستأجر الذي يملك العملية. |
simulated | قيمة منطقية؛ تحدد إذا كانت هذه عملية محاكاة/sandbox (true) أو عملية حقيقية (false). |
| الحقل | المعنى |
|---|---|
duiType | نوع وثيقة التعريف الفريدة. قيم DUI_TYPE_* (مثل BR_CPF). |
duiValue | قيمة الوثيقة (مثل رقم CPF). |
friendlyName | اسم ودّي/لقب للشخص (نص حر، غير مُتحقَّق منه). |
email | البريد الإلكتروني للشخص؛ قد يكون فارغًا. |
phone | رقم الهاتف بصيغة E.164 (رمز الدولة + رمز المنطقة + الرقم). |
notifications | قائمة قنوات الإشعارات. يحمل كل عنصر notificationChannel بقيم NOTIFICATION_CHANNEL_* (مثل WHATSAPP، SMS، EMAIL). |
phoneCountryCodeAlpha3 | رمز الدولة ISO alpha-3 لرقم الهاتف (مثل BRA)؛ قد يكون فارغًا. |
| الحقل | المعنى |
|---|---|
branchId | معرّف فرع المستأجر؛ فارغ عندما لا يكون التقسيم بحسب الفرع. |
countryCode | دولة الشركة بصيغة ISO alpha-3 (مثل BRA). |
يتم الإبلاغ عن أنواع الوثائق التي تستخدم المخطط الموحّد — unified_schema في مرجع الحقول — كمعرّف النوع بحروف كبيرة الذي تم تحديده خلال الالتقاط: IDCARD، DRIVERLICENSE، PASSPORT أو VOTERID.
تحافظ جوازات السفر الأمريكية على نوعها الفرعي بدلاً من دمجها في PASSPORT، لذا تُعاد أيضًا قيم مثل POLYCARBONATEPASSPORT، PASSPORTCARD وPAPERPASSPORT.
على سبيل المثال، يتم الإبلاغ عن unico.moja.dictionary.ar.generic.v1.IdCard وunico.moja.dictionary.us.generic.v1.PolycarbonatePassport كـ IDCARD وPOLYCARBONATEPASSPORT.
يُبلّغ process.services[].documents[].doc.code عن نوع الوثيقة كرمز مختصر بحروف كبيرة. يصبح unico.moja.dictionary.br.cnh.v2.Cnh هو CNH.
لا يحمل الرمز الدولة أو إصدار المخطط؛ يُعاد الإصدار بشكل منفصل في doc.version.
يتم عرض أنواع الوثائق التي تستخدم مخطط حقول خاص بها — والمدرجة تحت specific_document_schemas في مرجع الحقول — في الجدول أدناه. استخدم نوع القاموس للبحث عن كل مخطط في ذلك الملف.
| الدولة | doc.code | نوع القاموس | الوثيقة |
|---|---|---|---|
| BR | RG | unico.moja.dictionary.br.rg.v2.Rg | RG |
| BR | CNH | unico.moja.dictionary.br.cnh.v2.Cnh | CNH (رخصة القيادة) |
| BR | CIN | unico.moja.dictionary.br.cin.v1.Cin | CIN |
| BR | PASSAPORTE | unico.moja.dictionary.br.passaporte.v1.Passaporte | جواز السفر |
| MX | INE | unico.moja.dictionary.mx.ine.v1.Ine | بطاقة ناخب INE |
| MX | LPC | unico.moja.dictionary.mx.lpc.v1.Lpc | Licencia para conducir (رخصة القيادة) |
| MX | PASAPORTE | unico.moja.dictionary.mx.pasaporte.v1.Pasaporte | جواز السفر |
| — | UNKNOWN | unico.moja.dictionary.other.unknown.v1.Unknown | تعذّر تحديد النوع — doc.data فارغ |
PASSAPORTE وPASAPORTE وثيقتان مختلفتانجواز السفر البرازيلي هو PASSAPORTE (بحرفي S) والمكسيكي هو PASAPORTE (بحرف S واحد)، ويعكس كل منهما تهجئة القاموس الخاص به. هذا ليس خطأً مطبعيًا — لا تعامل القيمتين كمتكافئتين.
لا يتم إجراء أي استخراج OCR ولا يُبلَّغ عن أي حقل في doc.data عندما يكون doc.code هو UNKNOWN.
قد يستلم العملاء في البرازيل حمولة العملية الكاملةيبقى الهيكل العام للاستجابة كما هو — النتيجة الواحدة هي الإعداد الافتراضي.

يبقى الهيكل العام للاستجابة كما هو — النتيجة الواحدة هي الإعداد الافتراضي.
قد تستلم عمليات التكامل في البرازيل كائن العملية الكامل أدناه، مع نتائج لكل إمكانية في authenticationInfo.
{
"process": {
"id": "53060f52-f146-4c12-a234-5bb5031f6f5b",
"flow": "iddocs_r2",
"callbackUri": "https://example.com/callback",
"userRedirectUrl": "https://example.com/redirect",
"state": "PROCESS_STATE_FINISHED",
"result": "PROCESS_RESULT_OK",
"createdAt": "2024-01-01T10:00:00Z",
"finishedAt": "2024-01-01T10:15:00Z",
"expiresAt": "2024-01-08T10:00:00Z",
"purpose": "VERIFICATION",
"clientReference": "client-ref-abc",
"useCase": "USE_CASE_LOGIN",
"capacities": ["liveness", "face_match"],
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"person": {
"duiType": "DUI_TYPE_BR_CPF",
"duiValue": "12345678909",
"friendlyName": "Luke Skywalker",
"notifications": [
{
"notificationChannel": "email"
}
]
},
"authenticationInfo": {
"authenticationId": "auth-123",
"livenessResult": "LIVENESS_RESULT_LIVE",
"authenticationResult": "AUTHENTICATION_RESULT_INCONCLUSIVE",
"identityFraudstersResult": "TRUST_RESULT_UNSPECIFIED",
"bioTokenEngineResult": "BIO_TOKEN_ENGINE_RESULT_UNSPECIFIED",
"smartRevalidationResult": "SMART_REVALIDATION_RESULT_UNSPECIFIED",
"idAgeResult": "ID_AGE_RESULT_UNSPECIFIED",
"scoreEngineResult": {
"scoreEnabled": "SCORE_ENABLED_TRUE",
"score": 85.5
}
},
"companyData": {
"branchId": "branch-123",
"countryCode": "BR"
},
"bioTokenData": {
"referenceProcessId": "ref-proc-123",
"authenticationId": "auth-ref-123"
},
"services": [
{
"envelopeId": "4d4f3d90-04a3-4259-b63b-930ab10d2e47",
"documentIds": ["doc-abc-123"],
"consent_granted": true,
"documents": [
{
"doc_id": "doc-abc-123",
"typified": true,
"cpf_match": true,
"face_match": true,
"validate_doc": true,
"reused_doc": false,
"signed_url": "https://example.com/doc?token=xyz",
"doc": {
"version": 1,
"code": "CNH",
"data": {
"numero": "044589731564",
"cpfNumero": "12345678909",
"nomeCivil": "Luke Skywalker",
"dataNascimento": "1990-05-12T00:00:00Z",
"dataExpiracao": "2027-12-07T00:00:00Z",
"categoria": "B"
}
}
}
]
}
]
}
}
| الحقل | النوع | الوصف |
|---|---|---|
process.id | string (UUID) | معرّف العملية. |
process.flow | string | معرّف التدفق المرسَل عند الإنشاء. |
process.callbackUri | string | عنوان URL لإعادة الاتصال المهيّأ لأحداث العملية. |
process.userRedirectUrl | string | عنوان URL لإعادة توجيه المستخدم بعد اكتمال الرحلة. |
process.state | enum | حالة العملية الحالية. راجع القيم أدناه. |
process.result | enum | نتيجة التحقق. موجودة فقط عندما تكون state = PROCESS_STATE_FINISHED. |
process.createdAt | string (datetime) | طابع زمني بصيغة ISO 8601 لوقت إنشاء العملية. |
process.finishedAt | string (datetime) | طابع زمني بصيغة ISO 8601 لوقت اكتمال العملية. موجود فقط عندما تكون state = PROCESS_STATE_FINISHED. |
process.expiresAt | string (datetime) | طابع زمني بصيغة ISO 8601 لوقت انتهاء صلاحية العملية. |
process.purpose | string | الغرض من العملية كما تم تهيئته في التدفق. |
process.clientReference | string | مرجع اختياري من جانب العميل للفهرسة في البوابة. |
process.useCase | string | معرّف السيناريو المرتبط بالتدفق. |
process.capacities | array of strings | قائمة الإمكانيات المفعّلة في هذه العملية. |
process.token | string | JWT موقّع لتكامل SDK. |
process.person | object | بيانات التعريف المقدَّمة عند الإنشاء. |
process.person.notifications | array | قنوات الإشعارات المهيّأة للرحلة (مثل email). |
process.authenticationInfo | object | النتائج لكل إمكانية. راجع أدناه. |
process.companyData | object | سياق الشركة والفرع. |
process.companyData.branchId | string | معرّف الفرع. |
process.companyData.countryCode | string | رمز الدولة ISO 3166-1 alpha-2. |
process.bioTokenData | object | معلومات العملية المرجعية — موجودة فقط في تدفقات التحقق 1:1 وإعادة التحقق الذكية. |
process.services | array | المغلّفات الموقَّعة، الوثائق المُلتقَطة، ومخرجات الخدمة الأخرى. راجع أدناه. |
| القيمة | المعنى |
|---|---|
PROCESS_STATE_CREATED | تم إنشاء العملية؛ لم يكمل المستخدم الرحلة بعد. |
AWAITING_FOR_DOCUMENT | تم إنشاء العملية بدون وثيقة تعريف. موجودة فقط عندما يسمح Custom Flow بوثيقة اختيارية. أرسل الوثيقة باستخدام تعيين وثيقة العملية. |
PROCESS_STATE_FINISHED | اكتملت الرحلة. تحقق من result وauthenticationInfo. |
PROCESS_STATE_FAILED | خطأ في المعالجة. |
لا تتبع AWAITING_FOR_DOCUMENT اصطلاح البادئة PROCESS_STATE_* المستخدَم في الحالات الأخرى. هذا عدم اتساق معروف في تسمية API الحالية.
| القيمة | المعنى |
|---|---|
PROCESS_RESULT_OK | أعادت جميع الإمكانيات نتائج إيجابية. |
PROCESS_RESULT_INVALID_IDENTITY | أعادت إمكانية واحدة على الأقل نتيجة سلبية حاسمة (مثل فشل لايفنس، أو عدم تطابق الهوية). |
PROCESS_RESULT_ERROR | خطأ خلال معالجة النتيجة. |
PROCESS_RESULT_EXPIRED | انتهت صلاحية العملية قبل اكتمال الرحلة. |
PROCESS_RESULT_UNSPECIFIED | لم تنتهِ العملية بعد. |
يتم إعادة جميع الحقول دائمًا بغض النظر عن التدفق. تُعيد الحقول الخاصة بالإمكانيات غير المستخدَمة في التدفق القيمة *_UNSPECIFIED.
القيم المختصرة (مثل livenessResult = LIVE، authenticationResult = INCONCLUSIVE) تُطابق مباشرة القيم الكاملة للتعداد الموثّقة هنا (LIVENESS_RESULT_LIVE، AUTHENTICATION_RESULT_INCONCLUSIVE، إلخ) — تم حذف البادئة لأجل الاختصار.
| الحقل | الإمكانية | القيم الممكنة |
|---|---|---|
authenticationId | — | معرّف فريد لمحاولة المصادقة هذه. |
livenessResult | لايفنس | LIVENESS_RESULT_LIVE، LIVENESS_RESULT_NOT_LIVE، LIVENESS_RESULT_UNSPECIFIED |
authenticationResult | التحقق من الهوية | AUTHENTICATION_RESULT_POSITIVE، AUTHENTICATION_RESULT_NEGATIVE، AUTHENTICATION_RESULT_INCONCLUSIVE، AUTHENTICATION_RESULT_UNSPECIFIED |
identityFraudstersResult | تصنيف مخاطر الاحتيال | TRUST_RESULT_YES، TRUST_RESULT_INCONCLUSIVE، TRUST_RESULT_UNSPECIFIED |
bioTokenEngineResult | التحقق 1:1 | BIO_TOKEN_ENGINE_RESULT_POSITIVE، BIO_TOKEN_ENGINE_RESULT_NEGATIVE، BIO_TOKEN_ENGINE_RESULT_UNSPECIFIED |
smartRevalidationResult | إعادة التحقق الذكية | SMART_REVALIDATION_RESULT_POSITIVE، SMART_REVALIDATION_RESULT_NEGATIVE، SMART_REVALIDATION_RESULT_UNSPECIFIED |
idAgeResult | التحقق من العمر | ID_AGE_RESULT_POSITIVE، ID_AGE_RESULT_NEGATIVE، ID_AGE_RESULT_INCONCLUSIVE، ID_AGE_RESULT_UNSPECIFIED |
scoreEngineResult.scoreEnabled | درجة المخاطر | SCORE_ENABLED_TRUE، SCORE_ENABLED_FALSE، SCORE_ENABLED_UNSPECIFIED |
scoreEngineResult.score | درجة المخاطر | رقم من -100 إلى +100. موجود عندما تكون authenticationResult = AUTHENTICATION_RESULT_INCONCLUSIVE ودرجة المخاطر مفعّلة. |
serproResult.score | تشابه Serpro | 0–100 (التشابه)؛ -1 (لا وجه مسجَّل لهذا CPF)؛ -2 (خطأ في التكامل). |
servicesتستخدم مصفوفة services camelCase للحقول على مستوى المغلّف (envelopeId، documentIds) وsnake_case للحقول على مستوى الوثيقة (doc_id، consent_granted، face_match، إلخ). هذا يعكس استجابة API الفعلية — كلا الا صطلاحين مقصودان ولا يُعدّان خطأً في التوثيق.
| الحقل | النوع | الوصف |
|---|---|---|
envelopeId | string (UUID) | معرّف المغلّف الموقّع. |
documentIds | array of strings | معرّفات الوثائق المُلتقَطة في هذه الخدمة. |
consent_granted | boolean | ما إذا وافق المستخدم على مشاركة البيانات. |
documents | array | الوثائق المُلتقَطة مع بيانات OCR ونتائج التحقق. |
documents[].doc_id | string | معرّف الوثيقة. |
documents[].typified | boolean | ما إذا تم تحديد نوع الوثيقة بنجاح. |
documents[].cpf_match | boolean | ما إذا كان رقم CPF في الوثيقة يطابق CPF المقدَّم (البرازيل فقط). |
documents[].face_match | boolean | ما إذا كانت الصورة الشخصية تطابق الصورة في الوثيقة. |
documents[].validate_doc | boolean | ما إذا نجحت الوثيقة في التحقق من أصالتها. |
documents[].reused_doc | boolean | ما إذا تمت إعادة استخدام هذه الوثيقة من عملية سابقة. |
documents[].signed_url | string | عنوان URL موقَّع مسبقًا لتنزيل ملف PDF للوثيقة (صالح لمدة 5 دقائق — أعد الجلب لتجديده). |
documents[].doc.version | integer | إصدار مخطط OCR. |
documents[].doc.code | string | رمز مختصر لنوع الوثيقة (مثل CNH). راجع أنواع الوثائق وحقول OCR لجميع القيم وكيفية استخلاص الرمز. |
documents[].doc.data | object | حقول OCR المُستخرَجة. يختلف المحتوى بحسب نوع الوثيقة — راجع مرجع الحقول الكامل للحصول على الكتالوج الكامل. أسماء الحقول داخل doc.data (مثل nomeCivil، dataNascimento) تُعاد بالبرتغالية — هذه هي القيم الفعلية التي يُنتجها محرك OCR. |
رموز الأخطاء
- 400 Bad Request
- 401 Unauthorized
- 404 Not Found
- 429 Too Many Requests
- 500 Internal Server Error
| الرمز | الرسالة | الوصف |
|---|---|---|
3 | process id is invalid | عندما يكون معرّف العملية غير صالح. |
| الرمز | الرسالة | الوصف |
|---|---|---|
| — | Jwt header is an invalid JSON | عندما يحتوي رمز الوصول المستخدَم على أحرف غير صحيحة. |
| — | Jwt is expired | عندما تنتهي صلاحية رمز الوصول المستخدَم. |
| الرمز | الرسالة | الوصف |
|---|---|---|
5 | error getting process: rpc error: code = NotFound desc = process not found | عندما لا يتم العثور على معرّف العملية. |
تم الوصول إلى حد المعدل. عندما يتلقى نظامك خطأ HTTP 429، يجب عليك تطبيق آليات لمنع حالات الفشل المتتالية وتجنب تفاقم القيود.
أفضل الممارسات:
- فترة التهدئة (backoff): أوقف أو قلل الطلبات اللاحقة من نظامك فورًا. لا تعد محاولة الطلبات الفاشلة باستمرار في حلقة متكررة سريعة.
- الطابور والتحكم بمعدل الإرسال (Queueing & throttling): قم بتخزين الطلبات الصادرة مؤقتًا أو وضعها في طابور من جانبك للتحكم في تدفق حركة المرور قبل إعادة إرسالها.
- التراجع الأسي مع التذبذب العشوائي (Exponential backoff with jitter): عند إعادة المحاولة، قم بزيادة وقت الانتظار بشكل أسي بين المحاولات (مثال: 1 ثانية، 2 ثانية، 4 ثوانٍ، 8 ثوانٍ) وأضف تأخيرًا عشوائيًا صغيرًا ("jitter") لمنع تأثير القطيع حيث تعيد جميع الطلبات المنتظرة المحاولة في نفس الميلي ثانية بالضبط.
الاستمرار في إرسال الطلبات إلى نقطة نهاية محدودة المعدل دون تراجع يمكن أن يُطيل فترة التقييد ويؤثر بشكل كبير على معدل النقل التشغيلي لنظامك. التحكم السليم في معدل الطلبات من جانبك يضمن تكاملاً أكثر سلاسة ومرونة.
للاطلاع على الحدود الافتراضية وزيادة الطلبات والتفاصيل الإضافية، راجع حدود المعدل.
| الرمز | الرسالة | الوصف |
|---|---|---|
99999 | Internal failure! Try again later | عندما يحدث خطأ داخلي. |
الاستقصاء (Polling) مقابل webhook
يمكنك استقصاء (poll) هذه النقطة النهائية للتحقق من التقدّم، ولكن النمط الموصى به هو الاشتراك في webhook واستخدام هذه النقطة النهائية فقط كخطة احتياطية. راجع Webhooks and Events.
الخطوات التالية
- للحصول على الصورة الشخصية المُلتقَطة، راجع الحصول على الصورة الشخصية.
- للحصول على حزمة تدقيق الأدلة، راجع الحصول على مجموعة الأدلة.