---
title: إنشاء عملية
description: إنشاء عملية تحقق عن طريق إرسال الصورة الملتقطة مباشرة. تُرجع نتيجة متزامنة.
canonical: https://developer.unico.io/ar/dual-api/developers/api-reference/api/post-processes
locale: ar
generated_by: markdown-export
---

- [/ar/](/ar/)
- [مرجع API](/ar/dual-api/developers/api-reference/)
- [API](/ar/dual-api/developers/api-reference/api/)
- Create Process

**في هذه الصفحة# إنشاء عملية

تتعامل نقطة النهاية هذه مع ثلاثة منتجات تشترك في نفس المسار لكنها تختلف في معاملات الجسم والإمكانيات وحقول الاستجابة:

**التأهيل** - يتحقق من هوية المستخدم عن طريق مقارنة وجهه مع قاعدة هويات Unico (مطلوب `subject.duiType` + `subject.code`).
**المعاملات** - يتحقق من أنه نفس الشخص من عملية سابقة عن طريق مقارنة وجه بوجه (مطلوب `referenceProcessId` أو مصفوفة `references` مع صورة سيلفي / معرّف عملية).
**Cardholder Verification** - يؤكد أن البطاقة تخص حاملها المُعلَن، دون أي التقاط لصورة سيلفي (مطلوب `subject.code` + `card`). يمكن اختيارياً إعادة استخدام عملية تم التحقق منها مسبقاً عبر `referenceProcessId` لتشغيل بوابة إعادة الاستخدام؛ بدونها، تُعيد الاستجابة تلقائياً النتيجة `unsure`. انظر إمكانية [Cardholder Verification](/ar/capabilities/cardholder-verification).

يتم تحديد **المنتج** ا لنشط بواسطة **APIKEY** المرسل في ترويسة الطلب.
للاطلاع على تدفق التكامل الكامل، انظر [نظرة عامة على API](/ar/dual-api/developers/api-reference/api/).
### نقطة النهاية​

البيئةالرابط**الإنتاج**`POST https://api.id.unico.app/processes/v1`**Sandbox**`POST https://api.id.uat.unico.app/processes/v1`
### الطلب​

الترويسات
الترويسةالقيمة`Authorization``Bearer <access_token>` (انظر [المصادقة](/ar/dual-api/developers/api-reference/authentication))`APIKEY`مفتاح API المخصص - يحدد **المنتج** النشط والإمكانيات المفعّلة.`Content-Type``application/json`
معاملات الجسم
التأهيلالمعاملاتCardholder Verificationالحقلالنوعمطلوبالوصف`subject.duiType`integerنعممعرّف نوع الوثيقة. انظر [قيم `duiType`](#duitype-values) أدناه.`subject.code`stringنعمقيمة المعرف كما هو محدد بواسطة `subject.duiType`. بدون نقاط أو شرطات.`subject.name`stringلاالاسم الكامل.`subject.gender`stringلا`M` أو `F`.`subject.birthDate`string (ISO 8601)لاتاريخ الميلاد (`YYYY-MM-DD`).`subject.email`stringلاعنوان البريد الإلكتروني.`subject.phone`stringلارقم هاتف E.164.`subject.clientReference`stringمشروطالمعرّف الفريد للمستخدم في نظامك. **مطلوب لقدرة [حسابات متعددة](/ar/capabilities/multi-accounts).** فريد في قاعدتك، بحد أقصى 256 حرفاً وبدون مسافات.`useCase`stringلاسياق العملية، مثلاً `Onboarding`.`subsidiaryId`stringلامعرف الفرع — مطلوب فقط إذا كانت هناك فروع متعددة.`imageBase64`stringنعمصورة سيلفي ملتقطة بواسطة واجهتك الأمامية، بتنسيق base64.الحقلالنوعمطلوبالوصف`references`arrayمشروطمدخلات مرجعية لتدفقات التحقق 1:1. كل عنصر يحتوي على `referenceType` (`REFERENCE_TYPE_IMAGE_BASE64` أو `REFERENCE_TYPE_PROCESS_ID`) و`referenceContent` (صورة مشفرة بـ base64 أو UUID عملية).`referenceProcessId`stringمشروط**مهمل.** استخدم `references` بدلاً منه. معرّف عملية التأهيل المرجعية للمقارنة معها. إذا كان المرجع عملية by-Unico، استخدم `authenticationInfo.authenticationId`.`imageBase64`stringنعمصورة سيلفي ملتقطة بواسطة واجهتك الأمامية، بتنسيق base64.`subject`objectلاحاوية معلومات المستخدم.`subject.duiType`stringلانوع المعرف. القيم المحتملة: `DUI_TYPE_AR_DNI`، `DUI_TYPE_BR_CPF`، `DUI_TYPE_ID_NIK`، `DUI_TYPE_MX_CURP`، `DUI_TYPE_NG_NIN`، `DUI_TYPE_US_SSN`.`subject.code`stringلاقيمة المعرف كما هو محدد بواسطة `subject.duiType`. بدون نقاط أو شرطا ت.`subject.name`stringلاالاسم الكامل للمستخدم.`subject.gender`stringلا`M` أو `F`.`subject.birthDate`string (ISO 8601)لاتاريخ الميلاد (`YYYY-MM-DD`).`subject.email`stringلاعنوان البريد الإلكتروني.`subject.phone`stringلارقم هاتف E.164.`useCase`stringلاسياق العملية، مثلاً `Transactional`.`subsidiaryId`stringلامعرّف الفرع - مطلوب فقط إذا كانت هناك فروع متعددة.معلومةلهذا **المنتج**، لا يمكن التنسيق مع درجة المخاطر. يتم دائماً إرجاع النتيجة بشكل متزامن في استجابة POST.الحقلالنوعمطلوبالوصف`subject.duiType`integerنعممعرّف نوع الوثيقة. انظر [قيم `duiType`](#duitype-values) أدناه. حالياً `DUI_TYPE_BR_CPF` فقط.`subject.code`stringنعمCPF حامل البطاقة الجاري التحقق منه. بدون نقاط أو شرطات.`card.bin`stringمشروطأول 6 أو 8 أرقام من البطاقة (BIN). مطلوب مع `card.last4`.`card.last4`stringمشروطآخر 4 أرقام من البطاقة. مطلوب مع `card.bin`.`card.name`stringلااسم حامل البطاقة كما هو مطبوع عليها.`referenceProcessId`string (UUID)لامعرّف عملية تم التحقق منها مسبقاً لإعادة استخدامها — عملية بها نتيجة معتمدة للتحقق من الهوية أو لايفنس لنفس CPF. النسخة الحالية من هذه القدرة تعتمد على إعادة الاستخدام: بدون هذا الحقل، لا يتم تشغيل البوابة أبداً وتُعيد الاستجابة تلقائياً النتيجة القياسية `unsure` — ولا يفشل الطلب نفسه أبداً.`useCase`stringلاسياق العملية، مثلاً `CardholderVerification`.`subsidiaryId`stringلامعرف الفرع — مطلوب فقط إذا كانت هناك فروع متعددة.معلومةلا يتم إرسال `imageBase64` لهذا **المنتج** — يعمل Cardholder Verification بالكامل على الخادم (back-end)، دون أي خطوة لالتقاط صورة سيلفي.
**قيم `duiType`**الدولةالرمزالوصفAR6جواز سفر أرجنتينيAR7DNI الأرجنتينيAR49رخصة القيادة الأرجنتينية (Licencia Nacional de Conducir)AT34الرقم الضريبي النمساوي (STNR)BE36الرقم الوطني البلجيكي (NN)BR1CPF البرازيليBR5جواز سفر برازيليBR14CNPJ البرازيليCA28SIN الكنديCH33رقم AHV/AVS السويسريCL9RUN التشيليCL52جواز سفر تشيليCL57رخصة القيادة التشيلية (Licencia de Conducir)CO26NIT الكولومبيCO53جواز سفر كولومبيCO55رخصة القيادة الكولومبية (Licencia de Conducción)CO56بطاقة المواطنة الكولومبية (Cédula de Ciudadanía)DE41رقم التعريف الضريبي الألماني (IdNr)DK29CPR الدنماركيEC10NI الإكوادوريES50رقم هوية الأجانب الإسباني (NIE)ES51وثيقة الهوية الوطنية الإسبانية (DNI)FI35رمز الهوية الشخصية الفنلندي (HETU)FR46الرقم الضريبي المرجعي الفرنسي (SPI)GB30رقم التأمين الوطني البريطاني (NINO)GT12CUI الغواتيماليID16NIK الإندونيسيIE47رقم الخدمة العامة الشخصي الأيرلندي (PPSN)IT37Codice Fiscale الإيطالي (CF)LU48رقم الهوية الوطني اللوكسمبورغي (Matricule)MX2CURP المكسيكيMX25RFC المكسيكي (شخص طبيعي)MX58رخصة القيادة المكسيكية (Licencia de Conducir)NG8NIN النيجيريNG20رقم التحقق المصرفي النيجيري (BVN)NG43رمز BVN النيجيري (مُجزّأ)NG44رمز NIN النيجيري (مُجزّأ)NL42رقم خدمة المواطن الهولندي (BSN)NO39رقم الهوية الوطني النرويجي (Fødselsnummer)PE27RUC البيروفيPE40DNI البيروفيPE54جواز سفر بيروفيPL31PESEL البولنديPT45رقم التعريف الضريبي البرتغالي (NIF)SE32الرقم الشخصي السويدي (PNR)SE38الرقم التنسيقي السويدي (Samordningsnummer)TR24رقم الهوية التركي (TCKN)US4SSN الأمريكيUS11جواز سفر أمريكيUS18رخصة قيادة أمريكيةUS21بطاقة جواز سفر أمريكيةUS22جواز سفر أمريكي مصنوع من البولي كاربوناتUS23بطاقة هوية أمريكيةUY13CI الأوروغويانيZZ15عنوان البريد الإلكترونيZZ17رقم الهاتف—0غير محدد—3معرّف Unico الداخلي
متطلبات الصورة
الدقة الدنيا: 640 × 480 (معيار HD)
الحجم الأقصى للملف: 800 KB (يُنصح بضغط JPEG92)
التنسيقات المقبولة: PNG، JPEG، WebP
رموز JWT من SDK تنتهي صلاحيتها بعد **10 دقائق** ويمكن استخدامها **مرة واحدة** فقط

الطلبات المضغوطة
تدعم API إرسال ج سم الطلب مضغوطاً، باستخدام ترويسة HTTP القياسية `Content-Encoding`. هذا اختياري ومتوافق بالكامل مع الإصدارات السابقة: العملاء الذين لا يرسلون هذه الترويسة يستمرون في العمل تماماً كما كان الحال من قبل.
التنسيقات المدعومة
الترميزترويسة `Content-Encoding`الحالةGzip`gzip`✅ مُوصى بهDeflate`deflate`✅ مدعومبدون ضغط(الترويسة غير موجودة)✅ مدعوم (السلوك الافتراضي)
توصيةاستخدم `gzip`. فهو يحظى بالدعم الأكثر شمولاً عبر اللغات ومكتبات HTTP، مما يجنّبك الغموض في التنفيذ الموجود في التنسيقات الأخرى.
يُنصح باستخدام الضغط للطلبات التي تحتوي على جسم كبير (مثل حمولات JSON ضخمة، أو رفع صور مشفّرة بـ base64، أو إرسال دفعات). بالنسبة للطلبات الصغيرة، قد لا يحقق عبء الضغط فائدة ملموسة.
كيفية إرسال طلب مضغوط

اضغط جسم الطلب (مثل JSON المُسلسَل) باستخدام الخوارزمية المختارة.
أرسل الجسم المضغوط كبايتات ثنائية في الطلب.
أضف ترويسة `Content-Encoding` بالقيمة المطابقة (`gzip` أو `deflate`).
احتفظ بترويسة `Content-Type` لوصف تنسيق المحتوى الأصلي (مثلاً `application/json`)، وليس ترميز النقل.

cURLPython (requests).NET (C#, HttpClient)```
echo '{"subject":{"code":"12345678909"},"useCase":"Onboarding","imageBase64":"/9j/4AAQSkZJR..."}' | gzip > body.json.gzcurl -X POST https://api.id.unico.app/processes/v1 \  -H "Authorization: Bearer $TOKEN" \  -H "APIKEY: $API_KEY" \  -H "Content-Type: application/json" \  -H "Content-Encoding: gzip" \  --data-binary @body.json.gz
```

```
import gzipimport jsonimport requestspayload = {    "subject": {"code": "12345678909"},    "useCase": "Onboarding",    "imageBase64": capturedImage,}compressed_body = gzip.compress(json.dumps(payload).encode("utf-8"))response = requests.post(    "https://api.id.unico.app/processes/v1",    data=compressed_body,    headers={        "Authorization": f"Bearer {token}",        "APIKEY": api_key,        "Content-Type": "application/json",        "Content-Encoding": "gzip",    },)
```

```
using System.IO.Compression;using System.Text;using System.Text.Json;var json = JsonSerializer.Serialize(payload);var jsonBytes = Encoding.UTF8.GetBytes(json);using var outputStream = new MemoryStream();using (var gzipStream = new GZipStream(outputStream, CompressionMode.Compress, leaveOpen: true)){    await gzipStream.WriteAsync(jsonBytes, 0, jsonBytes.Length);}outputStream.Position = 0;var content = new ByteArrayContent(outputStream.ToArray());content.Headers.ContentType = new MediaTypeHeaderValue("application/json");content.Headers.ContentEncoding.Add("gzip");using var client = new HttpClient();client.DefaultRequestHeaders.Add("Authorization", $"Bearer {token}");client.DefaultRequestHeaders.Add("APIKEY", apiKey);var response = await client.PostAsync("https://api.id.unico.app/processes/v1", content);
```

نصيحةللمثال بلغة Python، استخد م معامل `data=`، وليس `json=`. معامل `json=` يُسلسل الحمولة تلقائيًا لكنه لا يضغطها.
**استخدام `deflate` بدلاً من ذلك:** التدفق أعلاه مطابق تمامًا — يتغير فقط استدعاء الضغط وقيمة `Content-Encoding`.
اللغة`deflate`Bash / cURL`zlib-flate -compress < body.json > body.json.deflate` (من `qpdf`)، ثم `-H "Content-Encoding: deflate"`Python`zlib.compress(data)` بدلاً من `gzip.compress(data)`.NET (C#)`System.IO.Compression.DeflateStream` بدلاً من `GZipStream`
`deflate` غامض في الممارسة العمليةيُحدَّد ترميز المحتوى `deflate` في HTTP على أنه تدفق zlib (RFC 1950)، لكن بعض العملاء والخوادم تاريخيًا تُصدر أو تتوقع تدفق DEFLATE الخام (RFC 1951) بدلاً من ذلك. تتوقع هذه الواجهة البرمجية (API) تدفق zlib القياسي المُغلَّف — وهو نفس الناتج الذي تُنتجه `zlib.compress()` (بايثون) أو `DeflateStream` (.NET) بشكل افتراضي. عند الشك، يُفضَّل استخدام `gzip`، الذي لا يحمل هذا الغموض.
سلوك الخطأإذا تم إرسال `Content-Encoding` بقيمة غير مدعومة، أو كان الجسم تالفاً أو غير صالح للترميز المُعلن، تُعيد API الخطأ `400 Bad Request` مع رسالة تشير إلى فشل فك ضغط جسم الطلب.
الأسئلة الشائعة
**هل يتعين علي تغيير أي شيء إذا لم أرغب في استخدام الضغط؟**
لا. دعم `Content-Encoding` إضافي — تستمر معالجة الطلبات التي لا تحتوي على هذه الترويسة بشكل طبيعي.
**هل يؤثر هذا على استجابة API؟**
لا. تتعلق هذه الميزة فقط بالجسم المُرسل من العميل (الطلب). ضغط الاستجابة (ما تُعيده API) يُتحكم فيه بشكل منفصل بواسطة ترويسة `Accept-Encoding`.
**ما التنسيق الذي يجب أن أختاره؟**
استخدم `gzip`، إلا إذا كان هناك قيد معين في بيئتك يتطلب تنسيقاً آخر.
### مثال​

التأهيل - cURLالتأهيل - Node.jsالمعاملات - cURLالمعاملات - Node.jsCardholder Verification - cURLCardholder Verification - Node.js```
curl -X POST https://api.id.unico.app/processes/v1 \  -H "Authorization: Bearer $TOKEN" \  -H "APIKEY: $API_KEY" \  -H "Content-Type: application/json" \  -d '{    "subject": {      "duiType": 1,      "code": "12345678909",      "name": "Luke Skywalker",      "gender": "M",      "birthDate": "2000-05-20",      "email": "luke@example.com",      "phone": "5519725570707"    },    "useCase": "Onboarding",    "imageBase64": "/9j/4AAQSkZJR..."  }'
```

```
import fetch from 'node-fetch';const res = await fetch('https://api.id.unico.app/processes/v1', {  method: 'POST',  headers: {    'Authorization': `Bearer ${process.env.UNICO_ACCESS_TOKEN}`,    'APIKEY': process.env.UNICO_API_KEY,    'Content-Type': 'application/json'  },  body: JSON.stringify({    subject: {      duiType: 1,      code: '12345678909',      name: 'Luke Skywalker',      gender: 'M',      birthDate: '2000-05-20',      email: 'luke@example.com',      phone: '5519725570707'    },    useCase: 'Onboarding',    imageBase64: capturedImage  })});const result = await res.json();
```

```
curl -X POST https://api.id.unico.app/processes/v1 \  -H "Authorization: Bearer $TOKEN" \  -H "APIKEY: $API_KEY" \  -H "Content-Type: application/json" \  -d '{    "references": [      {        "referenceType": "REFERENCE_TYPE_PROCESS_ID",        "referenceContent": "4f00b35f-69d4-415a-a843-d975cefcb169"      }    ],    "useCase": "Transactional",    "imageBase64": "/9j/4AAQSkZJR..."  }'
```

```
import fetch from 'node-fetch';const res = await fetch('https://api.id.unico.app/processes/v1', {  method: 'POST',  headers: {    'Authorization': `Bearer ${process.env.UNICO_ACCESS_TOKEN}`,    'APIKEY': process.env.UNICO_API_KEY,    'Content-Type': 'application/json'  },  body: JSON.stringify({    references: [      {        referenceType: 'REFERENCE_TYPE_PROCESS_ID',        referenceContent: '4f00b35f-69d4-415a-a843-d975cefcb169'      }    ],    useCase: 'Transactional',    imageBase64: capturedImage  })});const result = await res.json();
```

```
curl -X POST https://api.id.unico.app/processes/v1 \  -H "Authorization: Bearer $TOKEN" \  -H "APIKEY: $API_KEY" \  -H "Content-Type: application/json" \  -d '{    "subject": {      "duiType": 1,      "code": "12345678909"    },    "card": {      "bin": "12345678",      "last4": "4321",      "name": "Luke Skywalker"    },    "referenceProcessId": "4f00b35f-69d4-415a-a843-d975cefcb169",    "useCase": "CardholderVerification"  }'
```

```
import fetch from 'node-fetch';const res = await fetch('https://api.id.unico.app/processes/v1', {  method: 'POST',  headers: {    'Authorization': `Bearer ${process.env.UNICO_ACCESS_TOKEN}`,    'APIKEY': process.env.UNICO_API_KEY,    'Content-Type': 'application/json'  },  body: JSON.stringify({    subject: {      duiType: 1,      code: '12345678909'    },    card: {      bin: '12345678',      last4: '4321',      name: 'Luke Skywalker'    },    referenceProcessId: '4f00b35f-69d4-415a-a843-d975cefcb169',    useCase: 'CardholderVerification'  })});const result = await res.json();
```

### الاستجابات​

التأهيلالمعاملاتCardholder Verification200 OKالتعاقد فريد — يحمل الحقل `idCloud.result` الحكم الموحّد للإمكانيات المستخدمة.توحّد Unico نتائج الإمكانيات المنفّذة في `idCloud.result` واحد، جاهز لتحديد الخطوة التالية في تدفقك — دون الحاجة إلى تنسيق النتائج الفردية.```
{  "id": "80371b2a-3ac7-432e-866d-57fe37896ac6",  "status": 3,  "idCloud": {    "result": "approved"  }}
```

الحقلالنوعالوصف`id`string (UUID)معرّف العملية. استخدمه مع [الحصول على العملية](/ar/dual-api/developers/api-reference/api/get-process) لإعادة الاستعلام.`status`integer`1` (قيد المعالجة)، `3` ( انتهت بنجاح)، `5` (خطأ).قيم النتيجة المحتملةidCloud.resultالمعنىالإجراء الموصى بهapprovedشخص حقيقي وهوية تم التحقق منها.تابع التدفق.deniedلم يتم التحقق من الهوية، فشل فحص لايفنس، أو تم تحديد مخاطر شديدة.أنهِ التدفق أو أعد التوجيه إلى تدفق بديل.critical-riskتم تحديد مستوى مخاطر حرج.أنهِ التدفق أو وجّهه إلى مراجعة يدوية.high-riskتم تحديد مستوى مخاطر مرتفع.وجّه إلى مراجعة يدوية أو تدفق بديل.retryالتقاط أو درجة غير كافية للتقييم.اطلب من المستخدم التقاطاً جديداً.inconclusiveلا يوجد دليل كافٍ لإصدار حكم.وجّه إلى مراجعة يدوية أو تدفق بديل.تعتمد القيم المُرجعة على الوصفة المكوّنة في APIKey الخاص بك. انظر [التدفقات](/ar/dual-api/developers/api-reference/api/flows) لمعرفة قيم النتيجة التي يمكن أن ترجعها كل وصفة.قد يتلقى العملاء في البرازيل الاستجابة حسب الإمكانيةيظل الهيكل العام للاستجابة كما هو — النتيجة الواحدة هي الافتراضية.قد تتلقى عمليات التكامل في البرازيل النتائج المفتوحة لكل إمكانية على حدة. تضيف كل إمكانية مفعّلة في APIKey كتلتها الخاصة إلى الاستجابة — يتم حذف الحقول الخاصة بالإمكانيات غير المفعّلة.```
{  "id": "80371b2a-3ac7-432e-866d-57fe37896ac6",  "status": 3,  "unicoId": { "result": "yes" },  "riskLevel": { "result": "inconclusive" },  "idFace": {    "personId": "a1b2c3d4e5f67890a1b2c3d4e5f67890a1b2c3d4e5f67890a1b2c3d4e5f67890",    "result": "FOUND"  },  "government": { "serpro": 87 },  "liveness": 1}
```

تعتمد حقول الاستجابة على مفتاح APIKey الخاص بكيعرض المثال أعلاه جميع حقول الإمكانيات الممكنة. ستتضمن استجابتك الفعلية فقط الحقول المتعلقة بالإمكانيات المفعّلة في إعدادات APIKey الخاصة بك — يتم حذف الحقول المتعلقة بالإمكانيات غير المفعّلة كلياً. تواصل مع مدير مشروع Unico لتفعيل الإمكانيات أو تعديلها.الحقلالنوعالوصف`unicoId.result`string`yes`، `no`، `inconclusive` - انظر [التحقق من الهوية](/ar/capabilities/identity-verification).`riskLevel.result`string`approved`، `reproved`، `risk-critical`، `risk-high`، `inconclusive` — انظر [القيم المحتملة](#risklevel-values) أدناه أو [تصنيف مخاطر الاحتيال](/ar/capabilities/fraud-risk-classification).`idFace.result`string`FOUND` — انظر معرّف الوجه.`idFace.personId`stringمعرّف مستقر وغير شفاف للوجه، يُعاد جنبًا إلى جنب مع `idFace.result = FOUND`. عندما يتعذّر التعرف على أي وجه في الصورة، يفشل الطلب بالخطأ [`20532`](#error-codes) بدلاً من إعادة كتلة `idFace`.`identityFraudsters.result`string**مهجور.** استخدم `riskLevel` بدلاً منه. يمكن للعملاء الذين لديهم عمليات تكامل جارية الاستمرار في استخدامه أثناء تنسيق الترحيل مع الفريق المسؤول عن المشروع.`government.serpro`integerدرجة تشابه Serpro (0-100، -1، -2). متاح في البرازيل فقط. انظر [عائد تشابه Serpro](/ar/capabilities/serpro-similarity-return).`liveness`integer`1` (نجح)، `2` (فشل) - انظر [لايفنس](/ar/capabilities/liveness).riskLevel.result — القيم المحتملةالقيمةالمعنى`approved`هذا هو وجه صاحب الهوية، ولم يتم العثور على أي دليل يتعلق بالاحتيال.`reproved`يُوصى بالرفض، إذ تم اكتشاف مؤشرات احتيال متعددة.`risk-critical`يُوصى بالرفض، غير أن القرار النهائي يعود إلى تقديركم. تشير المخاطرة الحرجة إلى وجود ما لا يقل عن دليلين قويين على الاحتيال.`risk-high`يُوصى بالرفض أيضاً، لكن القرار يبقى بيدكم. تشير المخاطرة العالية إلى وجود دليل قوي واحد على الأقل على الاحتيال.`inconclusive`لم يتم العثور على أدلة قوية على الاحتيال، وبالتالي لا يمكن استنتاج ما إذا كانت هناك مخاطرة ذات صلة أم لا.معلومةعندما يكون `unicoId.result = inconclusive` وتنسيق درجة المخاطر نشط، قد تُرجع العملية `status: 1` (قيد المعالجة). استعلم عبر [الحصول على العملية](/ar/dual-api/developers/api-reference/api/get-process) أو استخدم webhooks لاسترداد النتيجة النهائية.قد يتلقى العملاء في المكسيك كتلة التحقق من RENAPOتحتفظ الاستجابة بالهيكل نفسه وتضيف كتلة idGov.تتلقى عمليات التكامل في المكسيك التي فُعّل فيها التحقق من RENAPO كتلة idGov إضافية تتضمن السجل الذي تحتفظ به RENAPO لـ CURP الخاص بالمستخدم. وهي إجابة منفصلة عن نتيجة الهوية.```
{  "id": "11111111-2222-3333-4444-555555555555",  "status": 3,  "idCloud": { "result": "approved" },  "idGov": {    "government_valid": true,    "curp": "PUEA880304MDFRJN04",    "government_name": "ANA PRUEBA EJEMPLO",    "date_of_birth": "1988-03-04",    "age": 38,    "gender": "F",    "deceased": false,    "is_mexican": true,    "citizenship": "MEXICO",    "state_of_birth": "Ciudad de México",    "state_iso": "MX-CMX",    "issuing_entity_code": "DF",    "municipality_registration": ""  }}
```

الحقلالنوعالوصف`idGov`objectسجل RENAPO لـ CURP. غائب عندما لا تكون القدرة مفعّلة. `{}` عندما لا تستجيب RENAPO. المكسيك فقط. انظر [التحقق من RENAPO](/ar/capabilities/renapo-verification).200 OKالتعاقد فريد — يحمل الحقل `idCloud.result` الحكم الموحّد للإمكانيات المستخدمة.توحّد Unico نتائج الإمكانيات المنفّذة في `idCloud.result` واحد، جاهز لتحديد الخطوة التالية في تدفقك — دون الحاجة إلى تنسيق النتائج الفردية.```
{  "id": "80371b2a-3ac7-432e-866d-57fe37896ac6",  "status": 3,  "idCloud": {    "result": "approved"  }}
```

الحقلالنوعالوصف`id`string (UUID)معرّف العملية.`status`integer`3` (انتهت بنجاح)، `5` (خطأ). لجميع القيم الممكنة، انظر [الحصول على العملية](/ar/dual-api/developers/api-reference/api/get-process).قيم النتيجة المحتملةidCloud.resultالمعنىالإجراء الموصى بهapprovedشخص حقيقي وهوية تم التحقق منها.تابع التدفق.deniedلم يتم التحقق من الهوية، فشل فحص لايفنس، أو تم تحديد مخاطر شديدة.أنهِ التدفق أو أعد التوجيه إلى تدفق بديل.critical-riskتم تحديد مستوى مخاطر حرج.أنهِ التدفق أو وجّهه إلى مراجعة يدوية.high-riskتم تحديد مستوى مخاطر مرتفع.وجّه إلى مراجعة يدوية أو تدفق بديل.retryالتقاط أو درجة غير كافية للتقييم.اطلب من المستخدم التقاطاً جديداً.inconclusiveلا يوجد دليل كافٍ لإصدار حكم.وجّه إلى مراجعة يدوية أو تدفق بديل.تعتمد القيم المُرجعة على الوصفة المكوّنة في APIKey الخاص بك. انظر [التدفقات](/ar/dual-api/developers/api-reference/api/flows) لمعرفة قيم النتيجة التي يمكن أن ترجعها كل وصفة.قد يتلقى العملاء في البرازيل الاستجابة حسب الإمكانيةيظل الهيكل العام للاستجابة كما هو — النتيجة الواحدة هي الافتراضية.قد تتلقى عمليات التكامل في البرازيل النتائج المفتوحة لكل إمكانية على حدة. تضيف كل إمكانية مفعّلة في APIKey كتلتها الخاصة إلى الاستجابة — يتم حذف الحقول الخاصة بالإمكانيات غير المفعّلة.```
{  "id": "80371b2a-3ac7-432e-866d-57fe37896ac6",  "status": 3,  "biometryToken": { "result": true },  "liveness": 1}
```

الحقلالنوعالوصف`biometryToken.result`boolean`true` إذا تطابق الوجه المقدم مع العملية المرجعية؛ `false` خلاف ذلك.`liveness`integer`1` (نجح)، `2` (فشل) - انظر [لايفنس](/ar/capabilities/liveness).200 OK```
{  "id": "80371b2a-3ac7-432e-866d-57fe37896ac6",  "status": 3,  "cardholderVerification": {    "result": "approved"  }}
```

الحقلالنوعالوصف`id`string (UUID)معرّف العملية.`status`integer`1` (قيد المعالجة)، `3` (انتهت بنجاح)، `5` (خطأ). لجميع القيم، انظر [الحصول على العملية](/ar/dual-api/developers/api-reference/api/get-process).`cardholderVerification.result`string`approved` — تنتمي CPF والبطاقة إلى نفس الشخص. `unsure` — إما أن بوابة إعادة الاستخدام لم تُستوفَ، أو أن التحقق نفسه كان غير قاطع. غائب أثناء عدم بلوغ `status` قيمة `3` بعد. انظر [Cardholder Verification](/ar/capabilities/cardholder-verification).
### رموز الخطأ​

400 Bad Request403 Forbidden409 Conflict429 Too Many Requests500 Internal Server Errorالرمزالرسالةالوصف`40221`This flow does not support reusing a prior process (referenceProcessId or bioTokenId) without an image; send an image (imageBase64, or references[0] with type IMAGE_BASE64) instead.تم رفض تدفق إعادة الاستخدام (`referenceProcessId`/`bioTokenId`، بدون صورة) لأن إعادة استخدام العملية غير مفعّلة لهذا مفتاح API.`20900`O base64 informado não é válido.معامل base64 غير صالح. الأسباب المحتملة: ليس صورة أو محاولة حقن.`20807`A imagem precisa estar no padrão HD ou possuir uma resolução superior a 640 x 480.دقة الصورة المرفوعة منخفضة جداً.`20532`No face detected in image.تعذّر اكتشاف أي وجه في الصورة المرسلة.`20513`The referenced process was not found.يشير `referenceProcessId` إلى عملية غير موجودة أو لم تعد متاحة.`20512`The referenced process is not available for reuse.العملية المرجعية موجودة لكنها غير متاحة لإعادة الاستخدام.`20509`The subject.name field is invalid.يحتوي `subject.name` على أحرف غير صالحة.`20508`The subject.gender field is invalid.يجب أن يكون `subject.gender` هو `M` أو `F`.`20507`O parâmetro subject.code é inválido.CPF غير قياسي أو غير موجود.`20506`O base64 informado é muito grande. O tamanho máximo suportado é até 800kb.حجم الصورة يتجاوز 800 KB؛ اضغط إلى JPEG92.`20505`O base64 informado não é suportado. Os formatos aceitos são png, jpeg e webp.تنسيق base64 غير صالح أو غير مدعوم.`20065`The referenceProcessId field is invalid.`referenceProcessId` ليس UUID صالحاً.`20062`The useCase field is invalid.قيمة غير معروفة في حقل `useCase`.`20024`The referenceProcessId field is missing.لم يتم تقديم معامل `referenceProcessId` ولم يتم إرسال `references` كبديل. لا ينطبق على Cardholder Verification — لا يتم أبداً التحقق من `referenceProcessId` فيها كحقل مطلوب؛ بوابة إعادة استخدام غير مستوفاة تُجيب بـ `unsure` عوضاً عن ذلك.`20533`The card field is missing.[Cardholder Verification](/ar/capabilities/cardholder-verification): لم يتم تقديم كائن `card`.`20534`The card.bin field is missing.[Cardholder Verification](/ar/capabilities/cardholder-verification): لم يتم تقديم `card.bin`.`20535`The card.last4 field is missing.[Cardholder Verification](/ar/capabilities/cardholder-verification): لم يتم تقديم `card.last4`.`20536`The card data is invalid.[Cardholder Verification](/ar/capabilities/cardholder-verification): تم رفض بيانات البطاقة باعتبارها غير صالحة.`20021`The subject.phone field is invalid.تنسيق `subject.phone` غير صالح (IDD + رمز المنطقة + الرقم، 13 حرف).`20019`The subject.birthDate field is invalid.`subject.birthDate` خارج تنسيق ISO 8601 (`YYYY-MM-DD`).`20009`O parâmetro imagebase64 não foi informado.معامل صورة السيلفي مفقود.`20008`The subject.email field is invalid.تنسيق بريد إلكتروني غير صالح في `subject.email`.`20006`O parâmetro subject.name não foi informado.معامل subject.name مفقود.`20005`O parâmetro subject.code não foi informado.معامل subject.code مفقود.`20004`O parâmetro subject não foi informado.معامل subject مفقود.`20003`The request body is missing or invalid.حمولة فارغة  أو غير صالحة.`20002`O parâmetro APIKey não foi informado.معامل APIKEY مفقود من ترويسة الطلب.`20001`O parâmetro authtoken não foi informado.معامل رمز التكامل مفقود من ترويسة الطلب.`10508`The JWT with the captured face has already been used.يمكن استخدام JWT مرة واحدة فقط.`10507`The JWT with the captured face is expired.انتهت صلاحية JWT؛ يجب إرساله خلال 10 دقائق.`10506`The imageBase64 field is not a valid JWT from SDK.`imageBase64` ليس JWT صالحاً تم إنشاؤه بواسطة SDK.رمز Bearer أو `APIKEY` مفقود أو منتهي الصلاحية أو غير صالح. انظر [المصادقة](/ar/dual-api/developers/api-reference/authentication).الرمزالرسالةالوصف`30017`User does not have permission to perform this action.JWT غير صحيح أو مستخدم بدون صلاحية لتنفيذ هذه العملية.`10502`O token informado está expirado.انتهت صلاحية رمز الوصول.`10501`O token informado é inválido.رمز المصادقة غير صالح.`10201`O AppKey informado é inválido.APIKEY غير صالح أو غير موجود.الرمزالرسالةالوصف`20073`The processID already exists.`processId` المقدم موجود بالفعل لهذا المستأجر.تم الوصول إلى حد المعدل. عندما يتلقى نظامك خطأ HTTP 429، يجب عليك تنفيذ آليات لمنع الأعطال المتتالية وتجنب تفاقم القيود.**أفضل الممارسات:**
**فترة التهدئة (backoff):** أوقف أو قلل الطلبات اللاحقة من نظامك فوراً. لا تعيد محاولة الطلبات الفاشلة باستمرار في حلقة ضيقة.
**التخزين المؤقت وتنظيم المعدل:** قم بتخزين الطلبات الصادرة مؤقتاً أو وضعها في قائمة انتظار للتحكم في تدفق حركة المرور قبل إعادة إرسالها.
**التراجع الأسي مع التشتيت:** عند إعادة المحاولة، قم بزيادة وقت الانتظار بشكل أسي بين المحاولات (مثلاً 1 ث، 2 ث، 4 ث، 8 ث) وأضف تأخيراً عشوائياً صغيراً ("تشتيت") لمنع تأثير القطيع حيث تعيد جميع الطلبات المؤجلة المحاولة في نفس الميلي ثانية بالضبط.
تحذيرالاستمرار في الوصول إلى نقطة نهاية محدودة المعدل دون تراجع يمكن أن **يطيل فترة التقييد** ويؤثر بشدة على الإنتاجية التشغيلية لنظامك. تنظيم الطلبات بشكل  صحيح من جانبك يضمن تكاملاً أكثر سلاسة ومرونة.للحدود الافتراضية وزيادة الطلبات والتفاصيل الإضافية، انظر [حدود المعدل](/ar/dual-api/developers/api-reference/rate-limits).الرمزالرسالةالوصف`99999`Internal failure! Try again laterعند حدوث خطأ داخلي.
### ما التالي​

للاستعلام عن نتيجة عملية التأهيل، انظر [الحصول على العملية](/ar/dual-api/developers/api-reference/api/get-process).
للاطلاع على جميع تركيبات الوصفات وقيم النتيجة المحتملة لكل منها، انظر [التدفقات](/ar/dual-api/developers/api-reference/api/flows).
لعمليات المستندات والتحقق من العمر، انظر الصفحات المعنية في هذا القسم.
آخر تحديث في 8 أكتوبر 2026**