> ## Documentation Index
> Fetch the complete documentation index at: https://docs.didit.me/llms.txt
> Use this file to discover all available pages before exploring further.

# مرجع واجهة برمجة تطبيقات Didit للتحقق من الهوية

> مرجع كامل لواجهة REST API من Didit: نقاط نهاية KYC وKYB وAML والبيومترية ومراقبة المعاملات. مواصفات OpenAPI، دفع حسب الاستخدام، و$10 مجاناً شهرياً.



موجّه تكامل واجهات API المستقلة
        نسخ الموجّه إلى الحافظة



      
      

\<pre>

\``Integrate Didit standalone verification APIs into my backend for server-to-server identity checks.

\## Available Standalone APIs

\### Identity & Documents
\- POST /v3/id-verification/ — multipart/form-data: front_image (required), back_image (optional). Returns: { request_id, id_verification: { status, first_name, last_name, document_type, document_number, date_of_birth, nationality, expiration_date, issuing_state, address, parsed_address, warnings[] } }
\- POST /v3/poa/ — multipart/form-data: document (PDF/image). Returns: { request_id, poa: { status, document_type, issuer, poa_address, poa_parsed_address, issue_date, warnings[] } }
\- POST /v3/database-validation/ — JSON: { issuing_state, validation_type, first_name, last_name, date_of_birth, personal_number, ... }. Returns: { request_id, database_validation: { status, validations } }

\### Document AI
\- POST /v3/document-ai/ — multipart/form-data: document (PDF/image), fields (one JSON-encoded array string of { key, name, instruction, type: "text"|"number"|"date", required, is_full_name }, 1-30 items), expected_first_name + expected_last_name OR expected_company_name (+ expected_company_country), document_ai_name_match_score_threshold (default 80), per-risk *_action params. Returns: { request_id, document_ai: { status, extracted_data: { <key>: value|null }, detected_codes[], fields[], name_match_score, name_on_document, warnings[] } }. $0.20 per document.

\### Biometrics & Face
\- POST /v3/passive-liveness/ — multipart/form-data: user_image. Returns: { request_id, passive_liveness: { status, score, method } }
\- POST /v3/face-match/ — multipart/form-data: user_image + ref_image. Returns: { request_id, face_match: { status, score } }
\- POST /v3/face-search/ — multipart/form-data: user_image. Returns: { request_id, face_search: { status, total_matches, matches[] } }
\- POST /v3/age-estimation/ — multipart/form-data: user_image. Returns: { request_id, age_estimation: { status, age_estimation, score } }

\### Compliance
\- POST /v3/aml/ — JSON: { full_name, entity_type, date_of_birth, nationality, document_number, include_adverse_media, include_ongoing_monitoring }. Returns: { request_id, aml: { status, total_hits, hits[], score, entity_type } }

\### Business Verification (KYB)
\- POST /v3/kyb/search/ — JSON: { country_code (required), name, registration_number, tier: "basic" (default) | "shareholders" | "ubo", search_type: "contains", webhook_url, vendor_data, metadata }. `tier` picks the provider chain the search runs on; retrieve the candidate from select (Lite), shareholders or ubo. Up to $0.50 per successful request, separately from profile retrieval; empty results and failures are not charged. Returns: { request_id, kyb_registry: { companies[] ({ kyb_response_id, name, registration_number, status, type, fetch_status }), pagination, search_status, search_resolved } }. `kyb_response_id` is an opaque handle — pass it straight to select/shareholders/ubo, never parse it.
\- POST /v3/kyb/select/ — JSON: { kyb_response_id (from search), save_api_request, vendor_data, metadata }. **Lite** tier, priced per country ([per-country prices](https://docs.didit.me/getting-started/kyb-registry-pricing.md)). Returns: { request_id, kyb_registry: { status, company_name, registration_number, country_code, company_type, incorporation_date, registered_address, officers[], beneficial_owners[], fetch_status, data_resolved, ... } }
\- POST /v3/kyb/shareholders/ and POST /v3/kyb/ubo/ — same JSON shape as select. **Shareholders** and **UBOs** tiers, priced per country; delivered and billed as the highest tier the country's registries can serve. v3 only.

\### Contact Verification
\- POST /v3/email/send/ — JSON: { email }. Sends OTP code.
\- POST /v3/email/check/ — JSON: { email, code }. Verifies OTP.
\- POST /v3/phone/send/ — JSON: { phone, channel }. Sends OTP via SMS/WhatsApp/Telegram.
\- POST /v3/phone/check/ — JSON: { phone, code }. Verifies OTP.

\### Bank Verification
\- POST /v3/bank/account-check/ - JSON: { country (ISO 3166-1 alpha-3), account: { iban } or { account_number, sort_code | routing_number | ifsc | bsb | transit_institution | bank_code } or { clabe } or { cbu_cvu }, holder: { full_name } or { business_name }, vendor_data }. Checks that a bank account belongs to the name, with no session. Returns: { request_id, result: match | close_match | no_match | cannot_verify, holder_name (close_match only), account (masked), vendor_data, created_at }. Billed once per check the bank answers; errors are never billed.

\## Authentication
All requests require: Headers: { "x-api-key": DIDIT_API_KEY }
For file uploads: multipart/form-data. For JSON: Content-Type: application/json.

\## Common Parameters
\- save_api_request (bool, default true): if true, appears in Console > Manual Checks
\- vendor_data (string): your internal ID for tracking

\## Example: ID Verification (Node.js)
const FormData = require('form-data');
const fs = require('fs');
const form = new FormData();
form.append('front_image', fs.createReadStream('./id_front.jpg'));
form.append('back_image', fs.createReadStream('./id_back.jpg'));

const response = await fetch('https://verification.didit.me/v3/id-verification/', {
method: 'POST',
headers: { 'x-api-key': process.env.DIDIT_API_KEY, ...form.getHeaders() },
body: form
});
const result = await response.json();
// result.id_verification.status: "Approved" or "Declined"
// result.id_verification.first_name, .last_name, .document_number, etc.

\## Example: AML Screening
const response = await fetch('https://verification.didit.me/v3/aml/', {
method: 'POST',
headers: { 'x-api-key': process.env.DIDIT_API_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({
full_name: 'John Doe',
entity_type: 'person',
date_of_birth: '1990-01-15',
nationality: 'US'
})
});
const result = await response.json();
// result.aml.status, result.aml.total_hits, result.aml.hits

\## When to Use Standalone APIs vs Sessions
\- Standalone: you have images/data, server-to-server, batch processing, custom UX
\- Sessions: user-facing flows where Didit handles camera, UX, multi-step, 54 languages

\## Rate Limits
\- Free: 10/min. Paid: 600/min. Exceeded: HTTP 429.

\## Environment Variables
\- DIDIT_API_KEY — from Didit Console > API & Webhooks

\## Docs
\- API Reference: https://docs.didit.me/api-reference/overview
\- Sessions vs APIs: https://docs.didit.me/api-reference/overview
\- Webhooks: https://docs.didit.me/integration/webhooks``

\</pre>



      
      

الصق في

تقدّم Didit **نهجين متكاملين** للتحقق من الهوية. فهم الفرق بينهما ضروري لاختيار التكامل الأنسب لحالة استخدامك.### [الجلسات المستضافة](https://docs.didit.me/ar/sessions-api/create-session.md)مسارات تحقق كاملة بواجهة جاهزة ومحسّنة. يتفاعل المستخدمون مع الواجهة المستضافة من Didit عبر إعادة التوجيه أو iframe أو SDK الأصلي.### [واجهات API المستقلة](https://docs.didit.me/ar/standalone-apis/id-verification.md)استدعاءات API مباشرة من الخادم إلى الخادم. ترسل البيانات (الصور والمستندات والأسماء) وتستلم نتائج تحقق منظمة، دون أي واجهة للمستخدم النهائي.***## الجلسات المستضافة (الموصى بها للتدفقات الموجّهة للمستخدم)الجلسات المستضافة هي **النهج الموصى به** لمعظم التكاملات. عند إنشاء جلسة، تُنشئ Didit `verification_url` تقدّمه لمستخدمك. يُكمل المستخدم مسار التحقق كاملًا في واجهة Didit المحسّنة، وتستلم النتائج عبر webhook أو API.### كيف يعمل**1. إنشاء جلسة**يستدعي الخادم لديك `POST /v3/session/` مع معرّف سير العمل. تُعيد Didit `verification_url` و`session_token`.**2. عرض الجلسة على المستخدم**وجّه المستخدم إلى الرابط، أو ضمّن الجلسة عبر iframe، أو هيّئ SDK الأصلي باستخدام token الجلسة.**3. إتمام المستخدم للتحقق**يتبع المستخدم المسار الموجَّه في واجهة Didit المحسّنة، ويشمل ذلك التقاط الهوية وكشف الحيوية وأي خطوات إضافية.**4. استلام النتائج**ترسل Didit webhook إلى خادمك يتضمن قرار التحقق، أو يمكنك الاستعلام عن النتيجة من خلال واجهة API للاسترجاع.### لماذا تُوصى الجلسات| الميزة | التفاصيل |
| - | - |
| **تجربة مستخدم محسّنة** | تُجرى اختبارات A/B على واجهة التحقق باستمرار وعلى مستوى العالم لتحقيق أعلى معدلات الإكمال |
| **إدارة الكاميرا** | اختيار ذكي للكاميرا، والتقاط تلقائي، وفحوصات للجودة، وتوافق مع الأجهزة، وكلها مدمجة فيها |
| **مسار موجَّه** | تعليمات خطوة بخطوة، وملاحظات فورية، واستعادة من الأخطاء للمستخدم |
| **سير عمل متعدد الميزات** | ربط عدة ميزات (التحقق من الهوية + كشف الحيوية + فحص AML + رقم الهاتف + البريد الإلكتروني) في مسار واحد |
| **الأمان** | مكافحة الانتحال، وكشف الحيوية النشط، وبصمة الجهاز مدمجة في المسار |
| **الامتثال** | سجلات تدقيق على مستوى الجلسة، وتسجيل الموافقة، وسياسات الاحتفاظ بالبيانات تُدار تلقائيًا |
| **التوطين** | 54 لغة مع اكتشاف تلقائي للمتصفح |
| **أصلية للأجهزة المحمولة** | حِزم SDK أصلية لـ iOS وAndroid وReact Native وFlutter |
| **بلا صيانة** | تتولى Didit جميع تحديثات الواجهة، وأخطاء المتصفحات والأجهزة، وحالات الكاميرا الحدّية |### متى تستخدم الجلسات- **التسجيل / KYC**: يسجّل مستخدمون جدد ويحتاجون إلى التحقق من هويتهم
- **التحقق من العمر**: التأكد من أن المستخدمين يستوفون الحد الأدنى للعمر المطلوب
- **إعادة التحقق**: إعادة التحقق دوريًا من المستخدمين الحاليين
- **المصادقة البيومترية**: يستخدم المستخدمون وجوههم للمصادقة عند تنفيذ إجراءات حساسة
- **الامتثال متعدد الخطوات**: مسارات تتطلب التحقق من الهوية + كشف الحيوية + فحص AML + رقم الهاتف دفعة واحدة
- **أي سيناريو يكون فيه المستخدم النهائي حاضرًا ويتفاعل مباشرة**### نقاط نهاية الجلسات| نقطة النهاية | الغرض |
| - | - |
| [إنشاء جلسة](https://docs.didit.me/ar/sessions-api/create-session.md) | إنشاء رابط تحقق للمستخدم |
| [استرجاع جلسة](https://docs.didit.me/ar/sessions-api/retrieve-session.md) | الحصول على النتائج الكاملة والقرار الخاص بالجلسة |
| [عرض الجلسات](https://docs.didit.me/ar/sessions-api/list-sessions.md) | الاستعلام عن جميع الجلسات وتصفيتها |
| [حذف جلسة](https://docs.didit.me/ar/sessions-api/delete-session.md) | حذف الجلسة وجميع البيانات المرتبطة بها |
| [إنشاء PDF](https://docs.didit.me/ar/sessions-api/generate-pdf.md) | تصدير تقرير التحقق بصيغة PDF |
| [مشاركة جلسة](https://docs.didit.me/ar/sessions-api/share-session/share.md) | إنشاء token للمشاركة لـ KYC القابل لإعادة الاستخدام مع شريك |
| [استيراد جلسة مشتركة](https://docs.didit.me/ar/sessions-api/share-session/import.md) | استيراد جلسة شاركها شريك (KYC القابل لإعادة الاستخدام) |***## واجهات API المستقلة (للمعالجة من خادم إلى خادم)تتيح لك واجهات API المستقلة استدعاء ميزات التحقق الفردية **مباشرة من خادمك** دون أي واجهة للمستخدم النهائي. ترسل البيانات (الصور والمستندات والأسماء) وتستقبل نتائج منظّمة.### كيف تعمل**1. إرسال البيانات**يستدعي خادمك endpoint مستقل (مثل `POST /v3/id-verification/`) مع البيانات المطلوبة: الصور، أو المستندات، أو حقول JSON.**2. استلام النتائج**تعالج Didit الطلب بشكل متزامن وتعيد نتائج التحقق المنظّمة في الاستجابة.### متى تستخدم واجهات API المستقلة| حالة الاستخدام | مثال |
| - | - |
| **المعالجة في الخلفية** | لديك بالفعل صور مستندات من واجهة الالتقاط الخاصة بك وتحتاج إلى التحقق منها |
| **التحقق الجماعي** | معالجة كمية كبيرة من مستندات الهوية التي يرفعها فريق العمليات |
| **تجربة مستخدم مخصصة** | بنيت تدفق الالتقاط الخاص بك وتريد استخدام Didit للتحليل فقط |
| **فحوصات من خادم إلى خادم** | فحص AML لقائمة من العملاء دون أي تفاعل من المستخدم |
| **خطوط العمل الآلية** | إعادة فحوصات الامتثال عبر CI/CD أو المهام المجدولة بـ cron (مثل مراقبة AML اليومية) |
| **التكامل مع الأنظمة القائمة** | ربط التحقق من Didit بنظام إدارة المستندات الحالي لديك |
| **استدعاءات لميزة واحدة** | تحتاج إلى ميزة واحدة فقط (مثل فحص AML فقط أو مطابقة الوجه فقط) |### واجهات API المستقلة المتاحة**الهوية والمستندات**| API | ما وظيفته |
| - | - |
| [التحقق من الهوية](https://docs.didit.me/ar/standalone-apis/id-verification.md) | استخراج البيانات من مستندات الهوية والتحقق من صحتها (صورتي المستند من الأمام والخلف) |
| [إثبات العنوان](https://docs.didit.me/ar/standalone-apis/proof-of-address.md) | التحقق من مستندات العنوان (فواتير الخدمات، وكشوفات الحساب المصرفي، والمستندات الحكومية) |
| [التحقق من العنوان](https://docs.didit.me/ar/standalone-apis/address-validation.md) | التأكد من وجود العنوان واسترجاعه موحّداً، مع الإحداثيات |
| [التحقق من قواعد البيانات](https://docs.didit.me/ar/core-technology/database-validation/overview.md) | مطابقة بيانات المستخدم مع قواعد البيانات الحكومية |**Document AI**| API | ما وظيفته |
| - | - |
| [Document AI](https://docs.didit.me/ar/standalone-apis/document-ai.md) | استخراج الحقول التي تحددها من أي مستند (PDF أو صورة)، مع مطابقة الأسماء وفحوص التلاعب |**القياسات الحيوية والوجه**| API | ما وظيفته |
| - | - |
| [كشف الحيوية السلبي](https://docs.didit.me/ar/standalone-apis/passive-liveness.md) | التحقق من وجود شخص حقيقي (مكافحة الانتحال) من صورة واحدة |
| [مطابقة الوجه](https://docs.didit.me/ar/standalone-apis/face-match.md) | مقارنة وجهين لتحديد ما إذا كانا لشخص واحد |
| [البحث بالوجه](https://docs.didit.me/ar/standalone-apis/face-search.md) | البحث عن وجه في جميع الجلسات التي تم التحقق منها سابقاً (1:N) |
| [تقدير العمر](https://docs.didit.me/ar/standalone-apis/age-estimation.md) | تقدير عمر الشخص من صورة الوجه |**الامتثال والمخاطر**| API | ما وظيفته |
| - | - |
| [فحص AML](https://docs.didit.me/ar/standalone-apis/aml-screening.md) | فحص الأشخاص أو الشركات مقابل العقوبات والأشخاص المعرضين سياسياً (PEP) وقوائم المراقبة |**التحقق المصرفي**| API | ما وظيفته |
| - | - |
| [فحص الحساب](https://docs.didit.me/ar/standalone-apis/bank-account-check.md) | التحقق من أن الحساب المصرفي يعود إلى الشخص أو الشركة اللذين تحددهما، قبل أن ترسل إليه أموالاً |**التحقق من الشركات (KYB)**| API | ما وظيفته |
| - | - |
| [بحث سجل KYB](https://docs.didit.me/ar/standalone-apis/kyb-registry-search.md) | البحث في سجلات الشركات بالاسم ورقم التسجيل والدولة؛ بسعر يصل إلى \$0.50 لكل طلب ناجح |
| [اختيار سجل KYB](https://docs.didit.me/ar/standalone-apis/kyb-registry-select.md) | استرجاع ملف السجل الكامل (المسؤولون، والمستفيدون الحقيقيون، والعناوين) لشركة محددة |***## المقارنة جنباً إلى جنب| | الجلسات المستضافة | واجهات API المستقلة |
| - | - | - |
| **جهد التكامل** | منخفض: إعادة توجيه، أو iframe، أو SDK | متوسط: أنت تتولى التقاط البيانات وإرسالها |
| **تفاعل المستخدم** | نعم: يُكمل المستخدم العملية في واجهة Didit | لا: من خادم إلى خادم فقط |
| **الكاميرا والالتقاط** | تتولاه Didit (محسّن) | أنت توفر الصور والبيانات |
| **تدفقات متعددة الميزات** | نعم: ربط الميزات في سير عمل | ميزة واحدة لكل استدعاء API |
| **تحسين تجربة المستخدم** | تخضع لاختبار A/B بشكل مستمر | أنت تتحكم في تجربة المستخدم |
| **توطين المحتوى** | 54 لغة، مع الكشف التلقائي | غير متاح (لا توجد واجهة) |
| **webhook** | إشعارات تلقائية بالحالة | غير متاح (استجابة متزامنة) |
| **وقت الاستجابة** | غير متزامن (يُكمل المستخدم وفق وتيرته) | متزامن (ثوانٍ) |
| **الأفضل لـ** | التسجيل والتحقق الموجّهان للمستخدم | المعالجة الخلفية والأتمتة |
| **ظهور في لوحة التحكم** | دورة حياة الجلسة كاملة في لوحة التحكم | يظهر في قسم الفحوصات اليدوية |***## إمكانية الجمع بين الاثنين**نعم.** تجمع فرق كثيرة بين النهجين:1) **الجلسات للتسجيل**: يمرّ المستخدمون الجدد بتدفق التحقق المستضاف الكامل أثناء التسجيل
2) **AML المستقل للمراقبة المستمرة**: تُعيد مهمة cron فحص جميع المستخدمين المقبولين كل ليلة مقابل قوائم المراقبة المحدّثة
3) **البحث بالوجه المستقل للكشف عن التكرار**: عند قبول جلسة جديدة، يستدعي خادمك البحث بالوجه للتحقق من وجود تكرارات
4) **التحقق من الهوية المستقل للعمليات**: يرفع فريق الامتثال لديك المستندات يدوياً لمراجعات الحالات الحدّية### مثال: بنية مدمجة| تطبيقك | Didit API | النوع |
| - | - | - |
| **مسار تسجيل المستخدم** | Sessions API (واجهة مستضافة) | موجّه للمستخدم |
| **إعادة فحص AML ليلياً** | واجهة AML المستقلة | من خادم إلى خادم |
| **مراجعة المستندات لدى فريق العمليات** | واجهة التحقق من الهوية المستقلة | من خادم إلى خادم |
| **الكشف عن تكرار الوجوه** | واجهة البحث بالوجه المستقلة | من خادم إلى خادم |***## البدء### [البدء السريع مع الجلسات](https://docs.didit.me/ar/integration/api-full-flow.md)أنشئ أول جلسة تحقق مستضافة خلال 5 دقائق.### [مصادقة API](https://docs.didit.me/ar/getting-started/api-authentication.md)احصل على مفتاح API وابدأ في إرسال الطلبات الموثّقة.### [إعداد webhook](https://docs.didit.me/ar/integration/webhooks.md)استقبل إشعارات فورية عند تغيّر حالة التحقق.### [إنشاء سير عمل](https://docs.didit.me/ar/console/workflows.md)أنشئ تدفقات تحقق مخصصة في Business Console.***


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.