> ## 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.

# قائمة جلسات التحقق عبر API: تصفية جلسات KYC و KYB

> اعرض جلسات التحقق عبر GET /v3/sessions/ في Didit مع التصفية حسب النوع والحالة وسير العمل. واجهة KYC وKYB موحدة بالدفع حسب الاستخدام.



موجه عرض الجلسات
        نسخ الموجّه إلى الحافظة



      
      

\<pre>

\`List Didit verification sessions for your application with filters and pagination.

Endpoint:
GET https://verification.didit.me/v3/sessions

Authentication:
Use the x-api-key header with your Didit API key. The key must hold read:sessions.

Query parameters:
\- session_kind ("user" | "business" | "all", default "user") — chooses which kind to list. "user" returns only KYC sessions (backward-compatible default). "business" returns only KYB. "all" concatenates both (KYB rows are appended; not interleaved by timestamp).
\- vendor_data (string) — exact match on your stable identifier.
\- didit_internal_id (UUID) — matches vendor_user_id.
\- status (one or more, comma-separated) — Approved, Declined, In Review, In Progress, Not Started, Expired, Abandoned, Kyc Expired, Resubmitted, Awaiting User.
\- workflow_id (one or more UUIDs, comma-separated).
\- country (one or more ISO-3 codes, comma-separated) — issuing-state for KYC, country_code for KYB.
\- region (one or more, comma-separated).
\- document_type (one or more, comma-separated).
\- date_from, date_to (ISO 8601 date) — inclusive on created_at.
\- search (string) - a complete displayed reference such as S-0001 (user) or B-0001 (business) matches only that session number and kind, ignoring leading zeros and letter case.
Other input searches the existing name, contact, document, registration-number and vendor_data fields.
\- tags (comma-separated tag ids) — sessions that carry any of them.
\- decided_from, decided_to (ISO 8601 datetimes) — sessions whose status last changed at or after / before the value.
\- limit (int, default 50), offset (int, default 0) — limit/offset pagination. Both accept values up to 1000000; larger values return 400.

Per-kind filters (silently ignored on the other kind): is_kyc_to_be_reviewed, status_initialized_as_in_review, session_type, api_service, screened_full_name, document_name, warning.

curl example:
curl -G https://verification.didit.me/v3/sessions/ \
-H "x-api-key: <API_KEY>" \
\--data-urlencode "session_kind=all" \
\--data-urlencode "status=Approved,In Review" \
\--data-urlencode "date_from=2026-01-01" \
\--data-urlencode "limit=50"

Response envelope:
\{
"count": <int>,   // exact up to 100, capped at 100 beyond that: paginate with next
"next": "<url|null>",
"previous": "<url|null>",
"results": [ ...rows ]
}

Every row has:
\- session_id (UUID), session_kind ("user" | "business"), session_number, status, vendor_data, created_at.

KYC row extras: portrait_image, document_type, full_name, country (issuing state), phone_number, email_address, features, didit_internal_id, assignee, waiting_since, sla_due_at, top_warnings, warnings_count.

KYB row extras: workflow_type, workflow_label, company_name, registration_number, country (incorporation).

Each row is a LIGHT projection. For the full feature payload of a row, call GET /v3/session/{session_id}/decision/ — see /sessions-api/retrieve-session.

Failure modes:
\- 401 — invalid API key.
\- 403 — { "detail": "You do not have permission to perform this action." } when the key lacks read:sessions.
\- 400 — malformed UUIDs in filters are silently dropped (no error); malformed ISO dates return { "date_from": ["..."] }.

Common patterns:
\- Build a dashboard: paginate with limit + offset, sort newest-first (server orders by -session_number within each kind).
\- Find pending review queue: status=In Review.
\- Find a specific entity's sessions: vendor_data=<your-id>.
\- Refresh ongoing AML hits: filter by workflow_id of your AML workflow.

For end-to-end Didit integration, paste in the full prompt at /integration/integration-prompt.`

\</pre>



      
      

الصق في

## تصفية نوع الجلسةاستخدم معامل الاستعلام `session_kind` لتحديد نوع الجلسات المطلوب إرجاعها:| القيمة | تُرجع |
| - | - |
| `user` (الافتراضي) | جلسات التحقق من المستخدمين (KYC) فقط. **سلوك متوافق مع الإصدارات السابقة**: احذف `session_kind` للحصول على هذا السلوك. |
| `business` | جلسات التحقق من الشركات (KYB) فقط. |
| `all` | جلسات التحقق من المستخدمين والتحقق من الشركات معًا، مدموجة في قائمة واحدة. |يتضمن كل صف في الاستجابة الحقل `session_kind: "user" | "business"` حتى يتمكن عميلك من تحديد بنية كل صف على حدة.## التصفية المشتركةتنطبق هذه الفلاتر على النوعين (تُتجاهل عمليات التصفية الخاصة بالمستخدمين عند `session_kind=business`، والعكس صحيح):| معامل الاستعلام | الوصف |
| - | - |
| `session_kind` | `user` أو `business` أو `all`. القيمة الافتراضية `user`. |
| `vendor_data` | مطابقة تامة مع المعرّف الخاص بك. |
| `status` | حالة واحدة أو أكثر، مفصولة بفواصل، وتُكتب تمامًا كما تُرجعها الواجهة البرمجية: `Approved` و`Declined` و`In Review` وغيرها (راجع [حالات التحقق](https://docs.didit.me/ar/integration/verification-statuses.md)). |
| `workflow_id` | التصفية حسب سير العمل المستخدم. |
| `country` | تصفية حسب رمز الدولة (للمستخدمين: `issuing_states`، وللشركات: `country_code`). |
| `date_from` و`date_to` | نافذة تاريخ الإنشاء (ISO 8601). |
| `tags` | معرّفات الوسوم مفصولة بفواصل. تُرجع الجلسات التي تحمل أيًا منها. |
| `decided_from` و`decided_to` | تواريخ ووقت بصيغة ISO 8601. تُرجع الجلسات التي تغيرت حالتها آخر مرة ضمن هذه النافذة (الحد الأدنى شامل والحد الأعلى غير شامل). وتعتمد على وقت آخر تغيير للحالة، لا على وقت الإنشاء. |
| `search` | إذا أدخلت مرجعًا كاملًا كما يظهر، مثل `S-0001` أو `B-0001`، فستطابق هذه الجلسة فقط برقمها ونوعها، مع تجاهل الأصفار البادئة وحالة الأحرف. أما أي إدخال آخر فيبحث في الحقول الموجودة: الاسم وجهة الاتصال والمستند ورقم التسجيل و`vendor_data`. |## أمثلة> [tab] عرض جلسات التحقق من المستخدمين (KYC) (الافتراضي)
>
> ```bash theme={null}
> curl -G https://verification.didit.me/v3/sessions/ \
>   -H "x-api-key: YOUR_API_KEY" \
>   --data-urlencode "vendor_data=user-42"
> ```
>
> **الاستجابة (مختصرة):**
>
> ```json theme={null}
> {
>   "count": 3,
>   "next": null,
>   "previous": null,
>   "results": [
>     {
>       "session_id": "...",
>       "session_kind": "user",
>       "session_number": 1024,
>       "session_url": "...",
>       "portrait_image": "...",
>       "document_type": "Passport",
>       "full_name": "John Doe",
>       "country": "GBR",
>       "status": "Approved",
>       "vendor_data": "user-42",
>       "didit_internal_id": "...",
>       "created_at": "2026-04-10T09:00:00Z",
>       "features": "ID_VERIFICATION,LIVENESS,FACE_MATCH,AML",
>       "phone_number": "+14155550123",
>       "email_address": "jane@example.com",
>       "additional_details": null
>     }
>   ]
> }
> ```> [tab] عرض جلسات التحقق من الشركات (KYB)
>
> ```bash theme={null}
> curl -G https://verification.didit.me/v3/sessions/ \
>   -H "x-api-key: YOUR_API_KEY" \
>   --data-urlencode "session_kind=business" \
>   --data-urlencode "status=Approved"
> ```
>
> **الاستجابة (مختصرة):**
>
> ```json theme={null}
> {
>   "count": 1,
>   "next": null,
>   "previous": null,
>   "results": [
>     {
>       "session_id": "...",
>       "session_kind": "business",
>       "session_number": 89,
>       "status": "Approved",
>       "vendor_data": "biz-acme-001",
>       "created_at": "2026-04-01T09:00:00Z",
>       "workflow_id": "wf_kyb_standard",
>       "workflow_type": "business",
>       "workflow_label": "Standard KYB",
>       "company_name": "Acme Corporation Limited",
>       "registration_number": "12345678",
>       "country": "GBR"
>     }
>   ]
> }
> ```> [tab] عرض النوعين
>
> ```bash theme={null}
> curl -G https://verification.didit.me/v3/sessions/ \
>   -H "x-api-key: YOUR_API_KEY" \
>   --data-urlencode "session_kind=all" \
>   --data-urlencode "date_from=2026-04-01T00:00:00Z"
> ```
>
> يُرجع صفوف التحقق من المستخدمين والتحقق من الشركات في مصفوفة `results` واحدة. ينبغي للعميل أن يحدد نوع كل صف من خلال `session_kind`.
>
> > [!NOTE]
> >
> > يضم وضع `all` النتائج في تسلسل واحد، ولا يتناوب بينها حسب الطابع الزمني. وفي عمليات الاستعراض الكبيرة المختلطة، استدعِ كل نوع على حدة ثم ادمج النتائج على جهة العميل.## تختلف بنية الصفوف حسب النوعتتضمن صفوف التحقق من المستخدمين (KYC) الحقول: `portrait_image` و`document_type` و`full_name` و`country` (الولاية المُصدِرة) و`phone_number` و`email_address`، إضافةً إلى بعض حقول المراجعة: `assignee` (مراجِع الكونسول المكلَّف بالجلسة، أو `null`)، و`waiting_since` و`sla_due_at` (تُحدَّد فقط عندما تكون الجلسة في حالة `In Review`)، و`top_warnings` (أهم التحذيرات، ولكل تحذير الحقول `risk` و`feature` و`log_type` و`short_description`)، و`warnings_count`.تتضمن صفوف التحقق من الشركات (KYB) الحقول: `workflow_type` و`workflow_label` و`company_name` و`registration_number` و`country` (بلد التأسيس).ويتضمن النوعان: `session_id` و`session_kind` و`session_number` و`status` و`vendor_data` و`created_at`.للاطلاع على مصفوفة الميزات الكاملة، راجع [نظرة عامة على الجلسات](https://docs.didit.me/ar/sessions-api/overview.md).## تقسيم الصفحاتيستخدم تقسيم الصفحات المعاملين `limit` (القيمة الافتراضية `50`) و`offset` (القيمة الافتراضية `0`)، وتتضمن الاستجابة عناوين URL مطلقة هي `next` و`previous`. يقبل كلا المعاملين قيمًا تصل إلى `1000000`، وأي قيمة أكبر تُرجع `400`.القيمة `count` دقيقة حتى `100` وتبقى عند `100` فيما بعد، لذا لا تعتمد عليها بوصفها إجماليًا. استمر في طلب عنوان `next` حتى تصبح قيمته `null`. ومع `session_kind=all`، تكون القيمة `count` مجموع النوعين، ويقتصر كل نوع على `100`.## ذات صلة- [نظرة عامة على الجلسات](https://docs.didit.me/ar/sessions-api/overview.md)
- [استرجاع الجلسة](https://docs.didit.me/ar/sessions-api/retrieve-session.md): القرار الكامل لصف واحد
- [نظرة عامة على الشركات](https://docs.didit.me/ar/entities/businesses/overview.md): كيان الشركة مجمّعًا عبر الجلسات
- [نظرة عامة على المستخدمين](https://docs.didit.me/ar/entities/users/overview.md): كيان المستخدم مجمّعًا عبر الجلسات


## OpenAPI

````yaml ar/openapi-25.json GET /v3/sessions/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: API التحقق من الهوية. قم بالمصادقة باستخدام الرأس x-api-key.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/sessions/:
    get:
      tags:
        - Sessions
      summary: >-
        عرض قائمة بجلسات التحقق (KYC و/أو KYB) مع خيارات التصفية والتقسيم إلى
        صفحات
      description: >-
        يُرجع قائمة مقسمة إلى صفحات من جلسات التحقق للتطبيق المحدد بواسطة مفتاح
        API الخاص بك، بدءاً من الأحدث (تنازلياً حسب `session_number`).


        **الرابط الأساسي:** المسار هو `/v3/sessions/` (بشرطة مائلة لاحقة). تتلقى
        الطلبات المرسلة إلى `/v3/sessions` بدون الشرطة المائلة إعادة توجيه `301`
        إلى الرابط المشتمل على الشرطة المائلة مع الاحتفاظ بسلسلة الاستعلام؛
        وتتبع معظم عملاء HTTP ذلك تلقائياً عند طلبات GET.


        **متى تستخدم هذا الـ endpoint مقابل webhooks.** استخدم هذا الـ endpoint
        للوحات التحكم، والبحث في الأنظمة الخلفية، ومطابقة البيانات، وعمليات
        التصدير المجمعة. لا تعتمد على الاستقصاء الدوري له لتتبع تقدم عمليات
        التحقق الفردية - قم بإعداد [webhooks](/ar/integration/webhooks) بدلاً من
        ذلك، والتي ترسل أحداث `status.updated` فور حدوث أي تغيير في الجلسة.
        للحصول على النتيجة الكاملة لجلسة واحدة، استدعِ `GET
        /v3/session/{sessionId}/decision/`.


        **جلسات KYC وKYB.** يحدد `session_kind` الأنواع المدرجة في القائمة:

        - `user` (افتراضي) - جلسات التحقق من المستخدمين (KYC) فقط. سلوك متوافق
        مع الإصدارات السابقة.

        - `business` - جلسات التحقق من الشركات (KYB) فقط. تختلف صفوفها ويكون
        حجمها أصغر (راجع مخطط الاستجابة).

        - `all` - كلا النوعين في استجابة واحدة: يتم دمج صفحة KYC وصفحة KYB لنفس
        `limit`/`offset` في `results` (صفوف KYC أولاً)، بحيث يمكن أن تحتوي
        الصفحة على ما يصل إلى `2 x limit` صفاً. يمثل `count` مجموع كلا النوعين،
        ويعكس `next`/`previous` تقسيم الصفحات من جانب KYC. للتقسيم الدقيق لصفحات
        البيانات المختلطة، استدعِ `user` و`business` بشكل منفصل.


        يحمل كل صف معرّف تمييز `session_kind` (`"user"` أو `"business"`).


        **تقسيم الصفحات.** نظام limit/offset القياسي: `limit` (افتراضياً 50)
        و`offset` (افتراضياً 0)، مع روابط صفحات جاهزة في `next`/`previous`.
        بالنسبة لصفوف KYC، يكون `count` دقيقاً. أما بالنسبة لصفوف KYB، فيُحسب
        `count` عبر فحص محدود ويبلغ حده الأقصى 100 - عندما يكون هناك أكثر من 100
        تطابق، يظل عند 100، لذا تنقّل بين الصفحات باستخدام `next` (أو بالتحقق
        مما إذا كانت الصفحة قد عادت مكتملة) بدلاً من حساب إجمالي الصفحات من
        `count`.


        **دلالات عوامل التصفية.** تتحد جميع عوامل التصفية باستخدام المعامل «و»
        (AND) وتنطبق على صفوف KYC. عندما يكون `session_kind` هو `business` أو
        `all`، يلتزم جانب KYB بالمعاملات المشتركة `vendor_data` و`status`
        و`workflow_id` و`country` (رمز دولة سجل الشركة) و`date_from` و`date_to`
        و`search` (اسم الشركة، أو رقم التسجيل — اكتب أرقام التسجيل بدون فواصل،
        مثل `DPC001` وليس `DPC-001` — أو vendor_data، أو رقم الجلسة، أو المعرّف
        الفريد للجلسة UUID) و`warning` و`organization_name`؛ ويتم تجاهل باقي
        عوامل التصفية المخصصة لـ KYC فقط مع صفوف KYB. المعاملات المفصولة بفواصل
        (`status`، `country`، `document_type`، `region`، `workflow_id`،
        `document_name`، `warning`، `organization_name`، `session_type`) تطابق
        أي قيمة من القيم المدرجة (المعامل «أو» (OR) داخل المعامل). المعامل
        `vendor_data` يمثل تطابقاً تاماً - استخدم `search` للمطابقة الجزئية.
        القيم غير المعروفة في عوامل تصفية القوائم تُرجع ببساطة بدون صفوف (بدون
        خطأ)؛ أما القيم ذات التنسيق غير الصحيح (`date_from`، `date_to`،
        `didit_internal_id`، `api_service`، `session_kind`) فتُرجع `400` مع كائن
        خطأ لكل حقل.


        **البحث.** يتكيف `search` مع المدخلات: يُستخدم معرّف UUID الكامل للبحث
        عن `session_id`؛ وتطابق الأرقام (مع إمكانية وجود `+ - . space`) بادئة
        رقم الجلسة، أو أرقام المستند/الأرقام الشخصية، أو بادئة رقم الهاتف، أو
        `vendor_data`؛ وتطابق القيم التي تحتوي على `@` بادئات البريد الإلكتروني؛
        وأي نص آخر يطابق الأسماء (بدون حساسية للحركات والتشكيل) و`vendor_data`.


        لا يُفرض حد معدل ثابت لكل endpoint، ولكن يُرجى إبقاء الاستقصاء الدوري
        للقائمة غير متكرر والاعتماد على webhooks للتحديثات المباشرة.
      operationId: get_v3_sessions
      parameters:
        - name: session_kind
          in: query
          required: false
          description: >-
            أي نوع من الجلسات سيتم إدراجه: `user` (KYC فقط، افتراضي)، أو
            `business` (KYB فقط)، أو `all` (كلاهما، مدمجان - راجع الوصف لمعرفة
            دلالات تقسيم الصفحات المدمج). المطابقة غير حساسة لحالة الأحرف (يعمل
            `BUSINESS`)؛ وأي قيمة أخرى لا تُعدّ صيغةً من صيغ حالة الأحرف لـ
            `user`/`business`/`all` تُرجع `400`.
          schema:
            type: string
            enum:
              - user
              - business
              - all
            default: user
          example: all
        - name: limit
          in: query
          required: false
          description: >-
            الحد الأقصى لعدد الصفوف لكل صفحة (لكل نوع عند `session_kind=all`).
            القيمة الافتراضية هي 50.
          schema:
            type: integer
            default: 50
            minimum: 1
            maximum: 1000000
          example: 20
        - name: offset
          in: query
          required: false
          description: >-
            عدد الصفوف المراد تخطيها قبل أول صف مُرجع. القيمة الافتراضية هي 0.
            يُفضّل تتبّع عناوين URL في `next`/`previous` من الاستجابة.
          schema:
            type: integer
            maximum: 1000000
            minimum: 0
            default: 0
          example: 20
        - name: status
          in: query
          required: false
          description: >-
            قائمة مفصولة بفواصل لحالات الجلسة لتضمينها، مثل `Approved,In
            Review`. القيم حساسة لحالة الأحرف؛ راجع [حالات
            التحقق](/ar/integration/verification-statuses). القيم غير المعروفة
            لا تطابق أي شيء.
          schema:
            type: string
          example: Approved,In Review
        - name: vendor_data
          in: query
          required: false
          description: >-
            عنصر تصفية للتطابق التام على `vendor_data` الذي أرسلته عند إنشاء
            الجلسة (معرّف المستخدم/الشركة الخاص بك). للمطابقات الجزئية، استخدم
            `search` بدلاً من ذلك.
          schema:
            type: string
          example: your-user-id-123
        - name: search
          in: query
          required: false
          description: >-
            المرجع الكامل المعروض مثل `S-0001` (مستخدم) أو `B-0001` (شركة) يطابق
            فقط رقم الجلسة ونوعها؛ لا تؤثر الأصفار البادئة وحالة الأحرف على
            المطابقة. بحث ذكي في النص الحر. يطابق معرّف UUID الكامل حقل
            `session_id`؛ بينما يطابق الإدخال الرقمي بادئة رقم الجلسة، أو أرقام
            المستندات/الأرقام الشخصية، أو بادئة الهاتف، أو `vendor_data`؛ ويطابق
            الإدخال الذي يحتوي على `@` بادئات البريد الإلكتروني؛ وتطابق النصوص
            الأخرى الأسماء (دون حساسية لعلامات التشكيل) و`vendor_data`. كما
            يطابق النص الحر الذي يحتوي على أرقام حقول البحث عن أرقام
            المستندات/الأرقام الشخصية وبادئات أرقام الجلسات بالإضافة إلى ذلك.
          schema:
            type: string
          example: jane doe
        - name: workflow_id
          in: query
          required: false
          description: >-
            معرّفات سير العمل بصيغة UUID مفصولة بفواصل (يمكنك العثور عليها في
            صفحة Workflows في Console). يتم تجاهل معرّفات UUID غير الصالحة في
            القائمة؛ وإذا لم يكن أي منها صالحاً، فستكون النتيجة فارغة.
          schema:
            type: string
          example: 9f9b1234-aaaa-bbbb-cccc-1234567890ab
        - name: date_from
          in: query
          required: false
          description: >-
            فقط الجلسات التي تم إنشاؤها في هذا التاريخ (UTC) أو بعده، بالتنسيق
            `YYYY-MM-DD`. التواريخ غير الصحيحة تُرجع `400`.
          schema:
            type: string
            format: date
          example: '2026-06-01'
        - name: date_to
          in: query
          required: false
          description: >-
            فقط الجلسات التي تم إنشاؤها حتى هذا التاريخ (UTC)، بالتنسيق
            `YYYY-MM-DD`. بالنسبة لصفوف KYC، يتم تضمين اليوم بأكمله؛ أما بالنسبة
            لصفوف KYB، فإن المقارنة تكون `created_at <= date_to` (منتصف الليل)،
            لذا استخدم تاريخ اليوم التالي لتضمين يوم كامل من جلسات KYB.
          schema:
            type: string
            format: date
          example: '2026-06-30'
        - name: tags
          in: query
          required: false
          schema:
            type: string
          description: >-
            معرّفات الوسوم مفصولة بفواصل (`tags` الخاصة بتطبيقك). تُرجع الجلسات
            التي تحمل أياً منها. يتم تجاهل المعرّفات التي لا تمثل UUIDs صالحة،
            وعندما لا يكون أي منها صالحاً تكون القائمة فارغة.
        - name: decided_from
          in: query
          required: false
          schema:
            type: string
            format: date-time
          description: >-
            تاريخ ووقت بتنسيق ISO 8601. يُرجع الجلسات التي تغيرت حالتها آخر مرة
            عنده أو بعده. يقوم بالتصفية بناءً على وقت آخر تغيير للحالة، وليس وقت
            الإنشاء.
        - name: decided_to
          in: query
          required: false
          schema:
            type: string
            format: date-time
          description: >-
            تاريخ ووقت بتنسيق ISO 8601. يُرجع الجلسات التي تغيرت حالتها آخر مرة
            قبله. يمكن دمجه مع `decided_from` للحصول على نطاق نصف مفتوح.
        - name: country
          in: query
          required: false
          description: >-
            تصفية الدولة مفصولة بفواصل. لصفوف KYC: رموز ISO 3166-1 alpha-3 لدولة
            إصدار مستند الهوية (مثل `ESP,USA`)، والتي قد تختلف عن الجنسية. لصفوف
            KYB: رمز دولة الشركة المسجلة.
          schema:
            type: string
          example: ESP,USA
        - name: document_type
          in: query
          required: false
          description: >-
            رموز أنواع مستندات الهوية المفصولة بفواصل والتي تم التحقق منها في
            الجلسة (صفوف KYC فقط): `P` (جواز سفر)، `ID` (بطاقة هوية)، `DL` (رخصة
            قيادة)، `RP` (تصريح إقامة)، `SSC` (بطاقة الضمان الاجتماعي)، `HIC`
            (بطاقة التأمين الصحي)، `WP` (تصريح عمل)، `TC` (بطاقة ضريبية)،
            `VISA`، `PSC` (بطاقة الخدمات العامة)، `BC` (شهادة ميلاد)، `OTHER`.
            لاحظ أن حقل الاستجابة `document_type` يحتوي على اسم العرض، وليس
            الرمز.
          schema:
            type: string
          example: P,ID
        - name: document_name
          in: query
          required: false
          description: >-
            أسماء المستندات الدقيقة؛ يمكن تمرير عدة أسماء مفصولة بفواصل، ولكن لا
            يتم تقسيم القيمة عند الفواصل إلا إذا كانت تحتوي على أكثر من فاصل ` -
            ` واحد (تتم مطابقة الاسم المنفرد الذي يحتوي على فاصلة مدمجة
            بالكامل). الأسماء كما تم التعرف عليها بواسطة التحقق من المستندات
            (الوجه الأمامي أو الخلفي)، على سبيل المثال `Spain - Id Card (2021)`.
            صفوف KYC فقط.
          schema:
            type: string
          example: Spain - Id Card (2021)
        - name: region
          in: query
          required: false
          description: >-
            قيم المنطقة/الولاية للمستند مفصولة بفواصل (للمستندات الصادرة حسب
            المنطقة، مثل رخص القيادة الأمريكية). صفوف KYC فقط.
          schema:
            type: string
          example: CA,TX
        - name: didit_internal_id
          in: query
          required: false
          description: >-
            التصفية حسب معرّف المستخدم الداخلي لدى Didit (حقل الاستجابة
            `didit_internal_id`) لإدراج جميع جلسات مستخدم واحد تم التحقق منه.
            يجب أن يكون UUID صالحاً؛ وترجع القيم غير صحيحة التنسيق `400`. صفوف
            KYC فقط.
          schema:
            type: string
            format: uuid
          example: d9e78474-6c8d-4f2a-bb90-6f5c2f3a1147
        - name: session_type
          in: query
          required: false
          description: >-
            قنوات إنشاء الجلسة مفصولة بفواصل: `API`، `HOSTED`، `MIGRATED`.
            القيمة الخاصة `ALL` (أو حذف المعامل) تعطل التصفية. لصفوف KYC فقط.
          schema:
            type: string
          example: HOSTED
        - name: api_service
          in: query
          required: false
          description: >-
            تصفية جلسات API المستقلة حسب الخدمة. تُرجع القيم غير الصالحة `400`.
            لصفوف KYC فقط.
          schema:
            type: string
            enum:
              - ID_VERIFICATION
              - FACE_MATCH
              - AGE_ESTIMATION
              - FACE_SEARCH
              - POA
              - AML
              - KYB_REGISTRY
              - PASSIVE_LIVENESS
              - DATABASE_VALIDATION
              - PHONE_VERIFICATION
              - EMAIL_VERIFICATION
          example: AML
        - name: screened_full_name
          in: query
          required: false
          description: >-
            بحث في الأسماء غير حساس لعلامات التشكيل داخل البيانات التي تم فحصها
            عبر AML والتحقق من قواعد البيانات. عند دمجه مع `api_service=AML` أو
            `api_service=DATABASE_VALIDATION`، يقتصر البحث على البيانات التي تم
            فحصها لتلك الميزة فقط. صفوف KYC فقط.
          schema:
            type: string
          example: Jane Doe
        - name: warning
          in: query
          required: false
          description: >-
            رموز مخاطر التحذيرات مفصولة بفواصل؛ تُرجع الجلسات التي أثارت أياً
            منها (مثل `POSSIBLE_FRAUD`). رموز المخاطر مدرجة لكل ميزة في [توثيق
            التحذيرات](/ar/integration/webhooks). تنطبق على صفوف KYC، وتنطبق مع
            رموز تحذيرات الشركات على صفوف KYB.
          schema:
            type: string
          example: POSSIBLE_FRAUD
        - name: status_initialized_as_in_review
          in: query
          required: false
          description: >-
            عندما تكون `true`، يتم تضمين الجلسات فقط التي كان قرارها في البداية
            `In Review` (مفيد لتدقيق حجم المراجعة اليدوية). صفوف KYC فقط.
          schema:
            type: boolean
          example: true
        - name: is_kyc_to_be_reviewed
          in: query
          required: false
          description: >-
            تُرجع القيمة `true` الجلسات التي تم تمييز التحقق من المستندات فيها
            لإجراء مراجعة يدوية؛ وتُرجع القيمة `false` الجلسات التي لم يتم تمييز
            التحقق من المستندات فيها صراحةً. اترك المعامل دون تحديد للتعطيل.
            لصفوف KYC فقط.
          schema:
            type: boolean
          example: true
        - name: euuid
          in: query
          required: false
          description: >-
            التصفية حسب euuid للمستخدم النهائي (UUID المعيّن للمستخدم الذي يجري
            التحقق، والمستخدم في الروابط العميقة للوحة التحكم). يجب أن يكون UUID
            صالحاً؛ تؤدي القيم غير الصالحة إلى ظهور خطأ 400 في الحقل. لصفوف KYC
            فقط.
          schema:
            type: string
            format: uuid
          example: 0f8fad5b-d9cb-469f-a165-70867728950e
        - name: organization_name
          in: query
          required: false
          description: >-
            أسماء المؤسسات مفصولة بفواصل. مخصصة للوحة التحكم؛ مع مفتاح API
            (المحدد نطاقه بالفعل لتطبيق واحد)، فإنها تطابق فقط اسم مؤسستك.
          schema:
            type: string
          example: Acme Inc
      responses:
        '200':
          description: >-
            قائمة جلسات مقسّمة إلى صفحات. عناصر `results` هي صفوف KYC أو صفوف
            KYB أو كلاهما اعتماداً على `session_kind`؛ يتم التمييز بينها
            باستخدام حقل `session_kind` الخاص بكل صف.
          content:
            application/json:
              schema:
                type: object
                required:
                  - count
                  - next
                  - previous
                  - results
                properties:
                  count:
                    type: integer
                    description: >-
                      عدد الجلسات المطابقة لعوامل التصفية: دقيق حتى 100 ويقتصر
                      على 100 كحد أقصى بعد ذلك، لذا لا تستخدمه كإجمالي. استخدم
                      `next` لمعرفة ما إذا كانت هناك صفحات أخرى. بالنسبة إلى
                      `session_kind=all`، فهو مجموع كلا النوعين، مع اقتصار كل
                      منهما على 100 كحد أقصى.
                    example: 2
                  next:
                    type: string
                    format: uri
                    nullable: true
                    description: رابط URL مطلق للصفحة التالية، أو `null` في الصفحة الأخيرة.
                    example: >-
                      https://verification.didit.me/v3/sessions/?limit=20&offset=20
                  previous:
                    type: string
                    format: uri
                    nullable: true
                    description: رابط URL مطلق للصفحة السابقة، أو `null` في الصفحة الأولى.
                    example: null
                  results:
                    type: array
                    description: >-
                      صفوف الجلسات، الأحدث أولاً. مع `session_kind=all`، تأتي
                      صفوف KYC أولاً، ثم صفوف KYB.
                    items:
                      oneOf:
                        - $ref: '#/components/schemas/UserSessionListItem'
                        - $ref: '#/components/schemas/BusinessSessionListItem'
                      discriminator:
                        propertyName: session_kind
                        mapping:
                          user: '#/components/schemas/UserSessionListItem'
                          business: '#/components/schemas/BusinessSessionListItem'
              examples:
                KYC sessions (default):
                  summary: session_kind=user - جلسة واحدة مكتملة وجلسة واحدة لم تبدأ
                  value:
                    count: 2
                    next: null
                    previous: null
                    results:
                      - session_id: 5b3720ed-d429-42ef-b67f-37ea805f48ee
                        session_kind: user
                        session_number: 720
                        session_url: https://verify.didit.me/session/CuXoBYCYVO5Y
                        portrait_image: >-
                          https://<media-host>/portraits/5b3720ed.jpg?X-Amz-Expires=3600&X-Amz-Signature=...
                        document_type: Passport
                        full_name: Jane Marie Doe
                        country: ESP
                        status: Approved
                        vendor_data: your-user-id-123
                        didit_internal_id: d9e78474-6c8d-4f2a-bb90-6f5c2f3a1147
                        created_at: '2026-06-09T12:26:54.328364Z'
                        features:
                          - feature: ID_VERIFICATION
                            status: Approved
                          - feature: LIVENESS
                            status: Approved
                          - feature: FACE_MATCH
                            status: Approved
                          - feature: AML
                            status: Approved
                          - feature: IP_ANALYSIS
                            status: Approved
                        phone_number:
                          number: '+14155552671'
                          is_verified: true
                        email_address:
                          email: jane@example.com
                          is_verified: true
                        additional_details:
                          aml:
                            total_hits: 0
                            entity_type: person
                            is_adverse_media_fetched: false
                          liveness:
                            method: PASSIVE
                            score: 0.98
                          face_match:
                            score: 0.95
                      - session_id: 038ad62f-5ebd-46c2-afe9-4b2956bf687f
                        session_kind: user
                        session_number: 719
                        session_url: https://verify.didit.me/session/7RGKiO6ioGH6
                        portrait_image: null
                        document_type: null
                        full_name: null
                        country: null
                        status: Not Started
                        vendor_data: your-user-id-124
                        didit_internal_id: eb4e679d-ca4b-461f-9685-687bac29ebdb
                        created_at: '2026-06-09T08:02:23.343053Z'
                        features:
                          - feature: ID_VERIFICATION
                            status: Not Finished
                          - feature: LIVENESS
                            status: Not Finished
                          - feature: FACE_MATCH
                            status: Not Finished
                          - feature: AML
                            status: Not Finished
                          - feature: IP_ANALYSIS
                            status: Not Finished
                        phone_number: null
                        email_address: null
                        additional_details: null
                Mixed KYC + KYB (session_kind=all):
                  summary: session_kind=all - صف KYC يليه صف KYB
                  value:
                    count: 2
                    next: null
                    previous: null
                    results:
                      - session_id: 5b3720ed-d429-42ef-b67f-37ea805f48ee
                        session_kind: user
                        session_number: 720
                        session_url: https://verify.didit.me/session/CuXoBYCYVO5Y
                        portrait_image: null
                        document_type: Identity Card
                        full_name: Jane Marie Doe
                        country: ESP
                        status: In Review
                        vendor_data: your-user-id-123
                        didit_internal_id: d9e78474-6c8d-4f2a-bb90-6f5c2f3a1147
                        created_at: '2026-06-09T12:26:54.328364Z'
                        features:
                          - feature: ID_VERIFICATION
                            status: In Review
                          - feature: LIVENESS
                            status: Approved
                        phone_number: null
                        email_address: null
                        additional_details:
                          liveness:
                            method: PASSIVE
                            score: 0.98
                      - session_id: 8a1f63c2-1b9e-4f3a-9c41-2f6a1f0b7d52
                        session_kind: business
                        session_number: 42
                        status: Approved
                        vendor_data: your-company-id-77
                        created_at: '2026-06-08T09:14:02.118450Z'
                        workflow_id: 9f9b1234-aaaa-bbbb-cccc-1234567890ab
                        workflow_type: kyb
                        workflow_label: Standard KYB
                        company_name: Acme Holdings S.L.
                        registration_number: B12345678
                        country: ES
        '301':
          description: >-
            إعادة التوجيه إلى عنوان URL الأساسي المنتهي بشرطة مائلة. يُعاد عندما
            يكون مسار الطلب `/v3/sessions` (بدون شرطة مائلة في النهاية)؛ حيث
            يشير الرأس `Location` إلى `/v3/sessions/` مع الاحتفاظ بسلسلة
            الاستعلام. عادةً ما تتبعه عملاء GET تلقائياً.
        '400':
          description: >-
            معامل استعلام غير صالح. جسم الاستجابة هو كائن مفهرس بالمعامل
            المخالف.
          content:
            application/json:
              examples:
                Invalid session_kind:
                  summary: session_kind ليس واحداً من user/business/all
                  value:
                    session_kind: Must be "user", "business", or "all".
                Invalid date:
                  summary: صيغة date_from/date_to غير صالحة
                  value:
                    date_from:
                      - Enter a valid date.
                Invalid didit_internal_id:
                  summary: didit_internal_id ليس UUID
                  value:
                    didit_internal_id:
                      - Enter a valid UUID.
                Invalid api_service:
                  summary: api_service ليس ضمن الخيارات المسموح بها
                  value:
                    api_service:
                      - >-
                        Select a valid choice. FOO is not one of the available
                        choices.
        '403':
          description: >-
            مفتاح API مفقود أو مشوه أو ملغى. يعيد المفتاح المفقود `403`؛ بينما
            يعيد المفتاح الخاطئ أو الملغى أو منتهي الصلاحية `401`.


            **تطبيق محذوف:** لبضع دقائق بعد حذف تطبيق، قد يستجيب الطلب الذي تم
            إجراؤه باستخدام أحد مفاتيح API الخاصة به بـ `{"detail": "This
            application was deleted.", "code": "application_deleted"}`. لا تعد
            المحاولة: لم يعد التطبيق ومفاتيح API الخاصة به موجودين. بعد مرور تلك
            الدقائق القليلة، يتم رفض المفتاح كأي مفتاح آخر غير صالح.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                    example: You do not have permission to perform this action.
                  code:
                    type: string
                    description: >-
                      سبب مقروء آلياً، لا يتوفر إلا عند حدوث بعض حالات الفشل.
                      `application_deleted`: مفتاح API يخص تطبيقاً تم حذفه.
                    example: application_deleted
                required:
                  - detail
              examples:
                Forbidden:
                  summary: x-api-key مفقود أو غير صالح
                  value:
                    detail: You do not have permission to perform this action.
                ApplicationDeleted:
                  summary: مفتاح API لتطبيق محذوف
                  value:
                    detail: This application was deleted.
                    code: application_deleted
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: >-
            curl -s
            'https://verification.didit.me/v3/sessions/?status=Approved,In%20Review&date_from=2026-06-01&limit=20'
            \
              -H 'x-api-key: YOUR_API_KEY'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            for item in client.sessions.list():
                print(item)
        - lang: javascript
          label: Node.js
          source: |-
            import Didit from "@didit-protocol/sdk-node";

            // Reads DIDIT_API_KEY.
            const didit = new Didit();

            for await (const item of didit.sessions.list()) {
              console.log(item);
            }
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\niter := client.Sessions.ListAutoPaging(ctx, didit.SessionsListParams{})\nfor iter.Next() {\n\tfmt.Printf(\"%+v\\n\", iter.Current())\n}\nif err := iter.Err(); err != nil {\n\tlog.Fatal(err)\n}"
        - lang: java
          label: Java
          source: |-
            import me.didit.Didit;

            // Reads DIDIT_API_KEY.
            Didit client = new Didit();

            for (var item : client.sessions().list()) {
                System.out.println(item);
            }
        - lang: php
          label: PHP
          source: |-
            <?php

            require 'vendor/autoload.php';

            use Didit\DiditClient;

            // Reads DIDIT_API_KEY.
            $didit = new DiditClient();

            foreach ($didit->sessions->list() as $item) {
                print_r($item);
            }
        - lang: ruby
          label: Ruby
          source: |-
            require "didit"

            # Reads DIDIT_API_KEY.
            didit = Didit::Client.new

            didit.sessions.list.auto_paging_each do |item|
              puts item.to_h
            end
        - lang: csharp
          label: .NET
          source: |-
            using System;
            using System.Text.Json;
            using Didit;

            // Reads DIDIT_API_KEY.
            using var client = new DiditClient();

            await foreach (var item in await client.Sessions.ListAsync())
            {
                Console.WriteLine(JsonSerializer.Serialize(item));
            }
components:
  schemas:
    UserSessionListItem:
      title: 'KYC session row (session_kind: user)'
      type: object
      description: >-
        صف ملخص لجلسة التحقق من المستخدمين (KYC). تتم تعبئة حقول الهوية
        (`full_name`، `country`، `document_type`، `portrait_image`، وحقول
        الاتصال) تدريجياً مع إكمال المستخدم لخطوات التحقق، وتكون قيمتها `null`
        حتى تنتهي الخطوة ذات الصلة. الحقول المقيدة بإعدادات سمات الاستجابة لسير
        العمل تُعاد أيضاً كـ `null`.
      required:
        - session_id
        - session_kind
        - session_number
        - session_url
        - portrait_image
        - document_type
        - full_name
        - country
        - status
        - vendor_data
        - didit_internal_id
        - created_at
        - features
        - phone_number
        - email_address
        - additional_details
      properties:
        session_id:
          type: string
          format: uuid
          description: >-
            المعرّف الفريد لجلسة التحقق. يُستخدم مع `GET
            /v3/session/{sessionId}/decision/` لجلب payload القرار الكامل.
          example: 5b3720ed-d429-42ef-b67f-37ea805f48ee
        session_kind:
          type: string
          enum:
            - user
          description: >-
            مميز الصف. دائماً `"user"` لصفوف KYC؛ بينما تحتوي صفوف التحقق من
            الشركات (KYB) على `"business"` وببنية مختلفة.
          example: user
        session_number:
          type: integer
          description: >-
            رقم تسلسلي سهل القراءة للجلسة داخل تطبيقك. يتطابق أيضاً مع المعامل
            `search`.
          example: 720
        session_url:
          type: string
          nullable: true
          description: >-
            رابط التحقق المستضاف الذي يفتحه المستخدم النهائي لإكمال سير العمل.
            يكون `null` عندما لا تحتوي الجلسة على رابط مستضاف.
          example: https://verify.didit.me/session/CuXoBYCYVO5Y
        portrait_image:
          type: string
          nullable: true
          description: >-
            رابط URL قابل لانتهاء الصلاحية (موقّع مسبقاً) لأفضل صورة شخصية
            متاحة: صورة شريحة NFC عند توفرها، وإلا فصورة الوجه في مستند الهوية،
            وإلا فالصورة المرجعية لكشف الحيوية. يكون `null` حتى يتوفر أحدها.
            سارع بالتنزيل؛ فستنتهي صلاحية الرابط.
          example: >-
            https://<media-host>/portraits/5b3720ed.jpg?X-Amz-Expires=3600&X-Amz-Signature=...
        document_type:
          type: string
          nullable: true
          enum:
            - Passport
            - Identity Card
            - Driver's License
            - Residence Permit
            - Health Insurance Card
            - Tax Card
          description: >-
            نوع مستند التحقق من الهوية بصيغة مقروءة للبشر. يكون `null` قبل
            اكتمال التحقق من المستند، وأيضاً `null` بعد الاكتمال عندما لا يكون
            للرمز الذي تم التحقق منه تمثيل للعرض (`SSC`، `WP`، `VISA`، `PSC`،
            `BC`، `OTHER`). ملاحظة: معامل الاستعلام `document_type` يقوم
            بالتصفية حسب الرموز القصيرة (`P`، `ID`، `DL`، `RP`، ...)، وليس حسب
            قيم العرض هذه.
          example: Passport
        full_name:
          type: string
          nullable: true
          description: >-
            أفضل اسم كامل متاح للجلسة، وفقاً لترتيب الأولوية التالي: OCR لمستند
            الهوية، والبيانات المفحوصة في فحص AML، والبيانات المفحوصة في التحقق
            من قواعد البيانات، ومستند إثبات العنوان، ثم التفاصيل المتوقعة
            المقدمة عند إنشاء الجلسة. تكون القيمة `null` عندما لا يتوفر أي منها
            بعد.
          example: Jane Marie Doe
        country:
          type: string
          nullable: true
          description: >-
            دولة الجلسة وفق المعيار ISO 3166-1 alpha-3، والتي يتم تحديدها
            بالترتيب التالي: دولة إصدار مستند الهوية، دولة إصدار التحقق من قواعد
            البيانات، دولة إصدار إثبات العنوان، التفاصيل المتوقعة، ثم دولة
            الهاتف المتحقق منه. قد تختلف عن الجنسية.
          example: ESP
        status:
          type: string
          enum:
            - Not Started
            - In Progress
            - Approved
            - Declined
            - In Review
            - Expired
            - Abandoned
            - Kyc Expired
            - Resubmitted
            - Awaiting User
          description: >-
            حالة الجلسة الإجمالية. راجع صفحة [حالات
            التحقق](/ar/integration/verification-statuses) لمعرفة دورة الحياة.
          example: Approved
        vendor_data:
          type: string
          nullable: true
          description: >-
            المعرّف الخاص بك للمستخدم النهائي، وتتم إعادته تماماً كما تم إرساله
            عند إنشاء الجلسة.
          example: your-user-id-123
        didit_internal_id:
          type: string
          format: uuid
          nullable: true
          description: >-
            المعرّف الداخلي لـ Didit للملف التعريفي للمستخدم الذي تم التحقق منه
            وراء هذه الجلسة. ثابت عبر جلسات متعددة لنفس المستخدم؛ قابل للتصفية
            عبر معامِل الاستعلام `didit_internal_id`.
          example: d9e78474-6c8d-4f2a-bb90-6f5c2f3a1147
        created_at:
          type: string
          format: date-time
          description: طابع زمني بتوقيت UTC لوقت إنشاء الجلسة.
          example: '2026-06-09T12:26:54.328364Z'
        features:
          type: array
          description: >-
            الحالة لكل ميزة لكل خطوة تحقق تم تكوينها في سير عمل الجلسة، وفقاً
            لترتيب سير العمل.
          items:
            type: object
            required:
              - feature
              - status
            properties:
              feature:
                type: string
                enum:
                  - ID_VERIFICATION
                  - NFC
                  - LIVENESS
                  - FACE_MATCH
                  - POA
                  - QUESTIONNAIRE
                  - EMAIL_VERIFICATION
                  - PHONE
                  - AML
                  - IP_ANALYSIS
                  - AGE_ESTIMATION
                  - DATABASE_VALIDATION
                  - GEOLOCATION
                description: معرّف ميزة التحقق.
                example: ID_VERIFICATION
              status:
                type: string
                enum:
                  - Not Finished
                  - Approved
                  - Declined
                  - In Review
                  - Resub Requested
                description: حالة هذه الميزة. تكون `Not Finished` حتى تكتمل الخطوة.
                example: Approved
        phone_number:
          type: object
          nullable: true
          description: >-
            الهاتف المقترن بالجلسة: الهاتف المتحقق منه عند تشغيل التحقق من رقم
            الهاتف، وإلا فهو هاتف الاتصال المقدم عند إنشاء الجلسة. يكون `null`
            عندما لا يتوفر أي منهما.
          required:
            - number
            - is_verified
          properties:
            number:
              type: string
              description: رقم الهاتف بتنسيق E.164.
              example: '+14155552671'
            is_verified:
              type: boolean
              description: >-
                تكون القيمة `true` فقط عندما توافق ميزة التحقق من رقم الهاتف على
                هذا الرقم.
              example: true
        email_address:
          type: object
          nullable: true
          description: >-
            البريد الإلكتروني المرتبط بالجلسة: البريد الإلكتروني الذي تم التحقق
            منه عند تشغيل التحقق من البريد الإلكتروني، أو بريد الاتصال المقدم
            عند إنشاء الجلسة في الحالات الأخرى. يكون `null` عندما لا يتوفر أي
            منهما.
          required:
            - email
            - is_verified
          properties:
            email:
              type: string
              format: email
              example: jane@example.com
            is_verified:
              type: boolean
              description: >-
                تكون القيمة `true` فقط عندما توافق ميزة التحقق من البريد
                الإلكتروني على هذا العنوان.
              example: true
        additional_details:
          type: object
          nullable: true
          description: >-
            بيانات إضافية مدمجة لكل ميزة. تظهر الميزات التي أنتجت بيانات فقط
            كمفاتيح؛ وتكون `null` عندما لا تنتج أي ميزة بيانات إضافية. يتم حذف
            الحقول المستبعدة بواسطة تكوين سمات الاستجابة لسير العمل.
          properties:
            aml:
              type: object
              description: موجود عند تشغيل فحص AML.
              properties:
                total_hits:
                  type: integer
                  description: عدد نتائج فحص AML.
                  example: 0
                entity_type:
                  type: string
                  description: نوع الكيان الذي تم فحصه.
                  example: person
                is_adverse_media_fetched:
                  type: boolean
                  example: false
                screened_data:
                  type: object
                  description: >-
                    مجموعة فرعية من البيانات التي تم فحصها. يتم تضمين المفاتيح
                    غير الفارغة فقط.
                  properties:
                    nationality:
                      type: string
                      example: ESP
                    document_number:
                      type: string
                      example: XX1234567
                    date_of_birth:
                      type: string
                      example: '1990-05-21'
            database_validation:
              type: object
              description: موجود عند تشغيل التحقق من قواعد البيانات.
              properties:
                validation_type:
                  type: string
                  example: DOCUMENT_VALIDATION
                match_type:
                  type: string
                  example: FULL_MATCH
                identification_number:
                  type: string
                  description: >-
                    الرقم الضريبي، أو الشخصي، أو رقم المستند الذي تم التحقق منه
                    (أول رقم متاح).
                  example: 12345678Z
            poa:
              type: object
              description: موجود عند تشغيل إثبات العنوان.
              properties:
                document_type:
                  type: string
                  example: UTILITY_BILL
                issuer:
                  type: string
                  example: Energy Co
                address:
                  type: string
                  example: Calle Mayor 1, 28013 Madrid
                name_on_document:
                  type: string
                  example: Jane Marie Doe
            liveness:
              type: object
              description: موجود عند تشغيل كشف الحيوية.
              properties:
                method:
                  type: string
                  example: PASSIVE
                score:
                  type: number
                  description: درجة الثقة في كشف الحيوية، مقربة إلى منزلتين عشريتين.
                  example: 0.98
            face_match:
              type: object
              description: موجود عند تشغيل مطابقة الوجه.
              properties:
                score:
                  type: number
                  description: درجة تشابه مطابقة الوجه، مقرّبة إلى منزلتين عشريتين.
                  example: 0.95
                source_image:
                  type: string
                  description: >-
                    رابط URL قابل لانتهاء الصلاحية (موقّع مسبقاً) لصورة الوجه
                    المصدر.
                  example: https://<media-host>/faces/source.jpg?X-Amz-Expires=3600&...
                target_image:
                  type: string
                  description: >-
                    رابط URL قابل لانتهاء الصلاحية (موقّع مسبقاً) لصورة الوجه
                    الهدف.
                  example: https://<media-host>/faces/target.jpg?X-Amz-Expires=3600&...
            phone_verification:
              type: object
              description: موجود عند تشغيل التحقق من رقم الهاتف.
              properties:
                country_code:
                  type: string
                  description: دولة رقم الهاتف وفق المعيار ISO 3166-1 alpha-2.
                  example: US
                is_temporary:
                  type: boolean
                  example: false
                is_ported:
                  type: boolean
                  example: false
                is_blocked:
                  type: boolean
                  example: false
            email_verification:
              type: object
              description: موجود عند تشغيل التحقق من البريد الإلكتروني.
              properties:
                is_breached:
                  type: boolean
                  example: false
                is_disposable:
                  type: boolean
                  example: false
                is_undeliverable:
                  type: boolean
                  example: false
                is_blocklisted:
                  type: boolean
                  example: false
        assignee:
          type: object
          nullable: true
          description: >-
            المراجِع في لوحة التحكم المعين للجلسة، أو `null` عندما لا يحتفظ بها
            أحد.
          properties:
            email:
              type: string
              format: email
            assigned_at:
              type: string
              format: date-time
              nullable: true
        waiting_since:
          type: string
          format: date-time
          nullable: true
          description: >-
            متى بدأت الجلسة بالانتظار للمراجعة. وتكون `null` ما لم تكن الجلسة في
            حالة `In Review`.
        sla_due_at:
          type: string
          format: date-time
          nullable: true
          description: >-
            متى يحين موعد المراجعة، بناءً على الموعد النهائي للمراجعة المحدد
            لتطبيقك في Console. وتكون `null` ما لم تكن الجلسة في حالة `In
            Review` وكان الموعد النهائي محدداً.
        top_warnings:
          type: array
          description: >-
            ما يصل إلى عدد قليل من أهم تحذيرات الجلسة، لعرض سريع للتقييم الأولي.
            القائمة الكاملة موجودة في القرار.
          items:
            type: object
            properties:
              risk:
                type: string
                description: رمز التحذير، على سبيل المثال `FACE_MATCH_LOW_SIMILARITY`.
              feature:
                type: string
                description: الميزة التي أطلقته.
              log_type:
                type: string
                nullable: true
                description: '`error` أو `warning`؛ و`null` لإدخال قديم.'
              short_description:
                type: string
        warnings_count:
          type: integer
          description: عدد التحذيرات في الجلسة.
    BusinessSessionListItem:
      title: 'KYB session row (session_kind: business)'
      type: object
      description: >-
        صف ملخص لجلسة التحقق من الشركات (KYB). يُعاد فقط عندما تكون قيمة
        `session_kind` هي `business` أو `all`.
      required:
        - session_id
        - session_kind
        - session_number
        - status
        - vendor_data
        - created_at
        - workflow_id
        - workflow_type
        - workflow_label
        - company_name
        - registration_number
        - country
      properties:
        session_id:
          type: string
          format: uuid
          description: المعرّف الفريد لجلسة التحقق من الشركات.
          example: 8a1f63c2-1b9e-4f3a-9c41-2f6a1f0b7d52
        session_kind:
          type: string
          enum:
            - business
          description: مميز الصف. دائماً `"business"` لصفوف KYB.
          example: business
        session_number:
          type: integer
          description: >-
            رقم تسلسلي سهل القراءة لجلسة الشركة داخل تطبيقك. يتم ترقيمه بشكل
            مستقل عن جلسات KYC.
          example: 42
        status:
          type: string
          enum:
            - Not Started
            - In Progress
            - Approved
            - Declined
            - In Review
            - Expired
            - Abandoned
            - Kyc Expired
            - Resubmitted
            - Awaiting User
          description: >-
            حالة الجلسة الإجمالية. راجع صفحة [حالات
            التحقق](/ar/integration/verification-statuses).
          example: Approved
        vendor_data:
          type: string
          nullable: true
          description: >-
            المعرّف الخاص بك للشركة، وتتم إعادته تماماً كما تم إرساله عند إنشاء
            الجلسة.
          example: your-company-id-77
        created_at:
          type: string
          format: date-time
          description: طابع زمني بتوقيت UTC لوقت إنشاء الجلسة.
          example: '2026-06-08T09:14:02.118450Z'
        workflow_id:
          type: string
          format: uuid
          nullable: true
          description: معرّف سير العمل الذي أُنشئت به هذه الجلسة.
          example: 9f9b1234-aaaa-bbbb-cccc-1234567890ab
        workflow_type:
          type: string
          nullable: true
          description: نوع سير العمل. `kyb` لمهام سير عمل الشركات.
          example: kyb
        workflow_label:
          type: string
          nullable: true
          description: اسم العرض لسير العمل.
          example: Standard KYB
        company_name:
          type: string
          nullable: true
          description: >-
            اسم الشركة التي يتم التحقق منها، من شركة سجل الشركات المرتبطة
            بالجلسة. `null` حتى يتم تحديد شركة.
          example: Acme Holdings S.L.
        registration_number:
          type: string
          nullable: true
          description: رقم تسجيل الشركة من سجل الشركات المرتبط بالجلسة.
          example: B12345678
        country:
          type: string
          nullable: true
          description: رمز الدولة لشركة سجل الشركات المرتبطة بالجلسة.
          example: ES
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        مفتاح API الخاص بتطبيقك، من Developers -> API keys في Business Console.
        يمتلك المفتاح الأساسي وصولاً كاملاً. يمكن تحديد نطاق المفتاح المسمى: لا
        شيء، أو قراءة، أو كتابة لكل مورد، ومحدوداً ببعض مسارات العمل أو بالجلسات
        المقبولة، وبقائمة من عناوين IP، وبتاريخ انتهاء الصلاحية. يشير 401 إلى أن
        المفتاح غير صحيح أو ملغى أو منتهي الصلاحية؛ ويشير 403 إلى أنه لم يتم
        إرسال أي مفتاح، أو أن المفتاح ليس لديه حق الوصول إلى هذا المورد أو
        الإجراء، أو أن الطلب جاء من عنوان خارج قائمة عناوين IP الخاصة به؛ ويشير
        404 في مسار جلسة إلى أن الجلسة خارج مسارات العمل أو الحالات الخاصة
        بالمفتاح. يتلقى المفتاح الذي لا يمتلك حق الوصول إلى الوسائط عناوين URL
        للصور ومقاطع الفيديو وملفات PDF كـ null، ويتلقى المفتاح الذي لا يمتلك
        إذن كتابة للجلسات روابط الجلسة وtoken كـ null. راجع
        https://docs.didit.me/console/api-keys.

````

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