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

> استعلم في Didit عن حالة ونتائج الحذف الجماعي للجلسات الذي ردّ عليه Batch Delete Sessions بالرمز 202 لتطابق أكثر من 20 جلسة.



طلب الحصول على مهمة حذف الجلسات
        نسخ الموجّه إلى الحافظة



      
      

\<pre>

\`Goal: Read the progress of a bulk session deletion that POST /v3/sessions/delete/ answered with 202. That happens when more than 20 KYC sessions match the request, whether they are selected by session_numbers or with delete_all.

Endpoint: GET https://verification.didit.me/v3/sessions/delete/{job_id}/
Auth header: x-api-key: <DIDIT_API_KEY>

Path param:
\- job_id: the job_id returned with the 202.

curl:
curl 'https://verification.didit.me/v3/sessions/delete/JOB_ID/' \
-H 'x-api-key: YOUR_API_KEY'

Response 200:
\{
"job_id": "<uuid>",
"status": "PROCESSING",            // PENDING | PROCESSING | COMPLETED | FAILED
"total": 250,                      // sessions selected when the deletion was requested
"processed": 100,                  // sessions the job has finished with so far
"outcomes": {"deleted": 82, "none": 18, "retained_with_user": 0, "ineligible_no_vendor_user": 0, "failed_retryable": 0, "already_deleted": 0},
"deleted_child_verifications": 0,  // always 0 for jobs from POST /v3/sessions/delete/ (KYC sessions only)
"error": null,                     // why the deletion stopped, when status is FAILED
"created_at": "<datetime>",
"completed_at": null
}

outcomes counts:
\- deleted: sessions deleted together with their face embedding.
\- none: sessions deleted that had no face embedding.
\- retained_with_user: sessions deleted while one image-free biometric template was retained for their User, as the request or the application policy asked.
\- ineligible_no_vendor_user: retention was requested but the session had no linked User; the session and its embedding were deleted.
\- failed_retryable: sessions reported as not deleted. The job retries a group it could not delete by itself instead of counting it here.
\- already_deleted: selected sessions that were already deleted, for example by another request, when the job reached them.

Polling: request the job every few seconds while status is PENDING or PROCESSING; stop at COMPLETED or FAILED. The job never lists which sessions it deleted, only counts. A FAILED job explains why in error; the sessions it had not reached are still in place, so repeat the deletion request to delete them. Deletion is permanent and irreversible.

Failure modes:
\- 403: missing x-api-key (a wrong, revoked or expired key gets 401). { "detail": "You do not have permission to perform this action." }
\- 404: no such job for this application (a job is only visible to the application that created it).

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

\</pre>



      
      

الصق في

## نظرة عامةيعيد هذا الطلب مهمة حذف جماعي للجلسات بدأها [حذف الجلسات دفعةً واحدة](https://docs.didit.me/ar/management-api/sessions/batch-delete.md)، ويعرض حالتها وعدد الجلسات التي عالجتها وعدد الجلسات التي انتهت بكل نتيجة.عندما يتجاوز عدد جلسات KYC المطابقة لعملية الحذف الجماعي 20 جلسة، سواء اخترتها باستخدام `session_numbers` أو باستخدام `delete_all`، يعيد الطلب الاستجابة `202` مع مهمة بحالة `PENDING`، وتُحذف الجلسات في الخلفية. استعلم عن هذا endpoint كل بضع ثوانٍ حتى تصبح قيمة `status` إما `COMPLETED` أو `FAILED`.تُحذف كل جلسة تحذفها المهمة بالطريقة نفسها التي تُحذف بها عبر [حذف الجلسة](https://docs.didit.me/ar/sessions-api/delete-session.md) تماماً: تُحذف الجلسة وكل محاولة تحقق تابعة لها وجميع ملفاتها المخزّنة، ولا تعود روابط الوسائط الخاصة بها تعمل. الحذف نهائي ولا يمكن التراجع عنه.تعرض المهمة الأعداد فقط، ولا تسرد أبداً الجلسات التي حذفتها.## حالة المهمة| `status` | المعنى |
| - | - |
| `PENDING` | مقبولة ولم تبدأ بعد. |
| `PROCESSING` | قيد الحذف؛ يجري تحديث `processed` و`outcomes`. |
| `COMPLETED` | تم احتساب كل جلسة مختارة ضمن `outcomes`. |
| `FAILED` | توقفت المهمة قبل الاكتمال، ويوضح `error` السبب. ما تزال الجلسات التي لم تصل إليها المهمة في مكانها: أعد طلب الحذف لحذفها. |لا تحذف مهمة `delete_all` إلا الجلسات التي أُنشئت قبل الطلب. ولا تُحذف الجلسات التي تبدأ أثناء تشغيلها.## عدد النتائج| مفتاح `outcomes` | المعنى |
| - | - |
| `deleted` | جلسات حُذفت مع تضمين الوجه الخاص بها. |
| `none` | جلسات حُذفت ولم يكن لها تضمين وجه. |
| `retained_with_user` | جلسات حُذفت مع الاحتفاظ بقالب بيومتري واحد خالٍ من الصور للمستخدم الخاص بها، كما طلب ذلك الطلب أو كما تقتضي سياسة التطبيق. راجع [حذف الجلسة](https://docs.didit.me/ar/sessions-api/delete-session.md#البيانات-البيومترية-للوجه-الحذف-أو-الاحتفاظ). |
| `ineligible_no_vendor_user` | طُلب الاحتفاظ، لكن الجلسة لم يكن لها مستخدم مرتبط. حُذفت الجلسة وتضمين الوجه الخاص بها. |
| `failed_retryable` | جلسات أُبلغ عنها بأنها لم تُحذف. تعيد المهمة محاولة حذف المجموعة التي لم تتمكن من حذفها بنفسها، بدلاً من احتسابها هنا. |
| `already_deleted` | جلسات مختارة كانت محذوفة بالفعل، مثلاً بواسطة طلب آخر، عندما وصلت إليها المهمة. |يحسب `deleted_child_verifications` عمليات التحقق التي أنشأتها عمليات التحقق من الشركات (KYB) المحذوفة، والتي حُذفت معها. وتكون قيمته دائماً `0` للمهمة التي بدأها [حذف الجلسات دفعةً واحدة](https://docs.didit.me/ar/management-api/sessions/batch-delete.md)، لأنها تحذف جلسات KYC فقط.## الصلاحياتيمكن لأي مفتاح API نشط للتطبيق استدعاء هذا endpoint. لا تكون المهمة مرئية إلا للتطبيق الذي أنشأها، وأي `job_id` آخر يعيد `404`.## ذات صلة- [حذف الجلسات دفعةً واحدة](https://docs.didit.me/ar/management-api/sessions/batch-delete.md)
- [حذف الجلسة](https://docs.didit.me/ar/sessions-api/delete-session.md)
- [الاحتفاظ بالبيانات](https://docs.didit.me/ar/console/data-retention.md)


## OpenAPI

````yaml ar/openapi-25.json GET /v3/sessions/delete/{job_id}/
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/delete/{job_id}/:
    get:
      tags:
        - Sessions
      summary: الحصول على مهمة الحذف المجمّع للجلسات
      description: >-
        تقدم عملية الحذف الجماعي للجلسات التي رد عليها `POST
        /v3/sessions/delete/` بالرمز `202` (أكثر من 20 جلسة مطابقة، تم تحديدها
        بواسطة `session_numbers` أو باستخدام `delete_all`). استقصِ كل بضع ثوانٍ
        بينما تكون `status` هي `PENDING` أو `PROCESSING`؛ وتوقف عندما تصبح
        `COMPLETED` أو `FAILED`.


        تبلغ المهمة عن عدد الجلسات التي انتهت بكل نتيجة وعدد الجلسات التي
        عالجتها، دون تحديد الجلسات التي حذفتها مطلقاً. وتحمل المهمة الفاشلة
        `FAILED` السبب في حقل `error`؛ وتظل الجلسات التي لم تصل إليها في مكانها،
        لذا كرر طلب الحذف لحذفها.


        **المصادقة:** مفتاح API في رأس `x-api-key`. تكون المهمة مرئية فقط
        للتطبيق الذي أنشأها؛ ويعيد أي `job_id` آخر الرمز `404`. تعيد بيانات
        الاعتماد المفقودة أو غير الصالحة الرمز `403`؛ ولا تعيد هذه الـ API الرمز
        `401` أبداً.
      operationId: get_session_deletion_job
      parameters:
        - name: job_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: >-
            معرّف `job_id` المُرجع مع الرمز `202` من `POST
            /v3/sessions/delete/`.
      responses:
        '200':
          description: المهمة.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SessionDeletionJob'
              examples:
                Processing:
                  value:
                    job_id: 5b8f2c1e-7d3a-4f6b-9e2c-1a0d8f7e6c5b
                    status: PROCESSING
                    total: 250
                    processed: 100
                    outcomes:
                      deleted: 82
                      none: 18
                      retained_with_user: 0
                      ineligible_no_vendor_user: 0
                      failed_retryable: 0
                      already_deleted: 0
                    deleted_child_verifications: 0
                    error: null
                    created_at: '2026-10-09T10:15:00Z'
                    completed_at: null
                Completed:
                  value:
                    job_id: 5b8f2c1e-7d3a-4f6b-9e2c-1a0d8f7e6c5b
                    status: COMPLETED
                    total: 250
                    processed: 250
                    outcomes:
                      deleted: 204
                      none: 44
                      retained_with_user: 0
                      ineligible_no_vendor_user: 0
                      failed_retryable: 0
                      already_deleted: 2
                    deleted_child_verifications: 0
                    error: null
                    created_at: '2026-10-09T10:15:00Z'
                    completed_at: '2026-10-09T10:16:40Z'
                Failed:
                  value:
                    job_id: 5b8f2c1e-7d3a-4f6b-9e2c-1a0d8f7e6c5b
                    status: FAILED
                    total: 250
                    processed: 100
                    outcomes:
                      deleted: 82
                      none: 18
                      retained_with_user: 0
                      ineligible_no_vendor_user: 0
                      failed_retryable: 0
                      already_deleted: 0
                    deleted_child_verifications: 0
                    error: >-
                      The deletion stopped before it finished. The sessions it
                      had not reached are still in place; repeat the request to
                      delete them.
                    created_at: '2026-10-09T10:15:00Z'
                    completed_at: '2026-10-09T10:15:52Z'
        '403':
          description: >-
            مفتاح API مفقود. يؤدي المفتاح المفقود إلى إرجاع `403`؛ بينما يؤدي
            المفتاح الخاطئ أو الملغى أو منتهي الصلاحية إلى إرجاع `401`.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
              examples:
                Missing or invalid API key:
                  summary: لا يوجد رأس x-api-key، أو أن المفتاح غير صالح
                  value:
                    detail: You do not have permission to perform this action.
        '404':
          description: >-
            لا توجد مهمة حذف بهذا المعرّف `job_id` للتطبيق المُستدعي. تكون
            المهام مرئية فقط للتطبيق الذي أنشأها.
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: |-
            curl 'https://verification.didit.me/v3/sessions/delete/JOB_ID/' \
              -H 'x-api-key: YOUR_API_KEY'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.sessions.retrieve_deletion_job(
                "11111111-2222-3333-4444-555555555555",
            )
            print(result)
        - lang: javascript
          label: Node.js
          source: >-
            import Didit from "@didit-protocol/sdk-node";


            // Reads DIDIT_API_KEY.

            const didit = new Didit();


            const result = await
            didit.sessions.retrieveDeletionJob("11111111-2222-3333-4444-555555555555");

            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.Sessions.RetrieveDeletionJob(ctx, \"11111111-2222-3333-4444-555555555555\")\nif err != nil {\n\tlog.Fatal(err)\n}\nfmt.Printf(\"%+v\\n\", result)"
        - lang: java
          label: Java
          source: >-
            import me.didit.Didit;


            // Reads DIDIT_API_KEY.

            Didit client = new Didit();


            var result =
            client.sessions().retrieveDeletionJob("11111111-2222-3333-4444-555555555555");

            System.out.println(result);
        - lang: php
          label: PHP
          source: >-
            <?php


            require 'vendor/autoload.php';


            use Didit\DiditClient;


            // Reads DIDIT_API_KEY.

            $didit = new DiditClient();


            $result =
            $didit->sessions->retrieveDeletionJob('11111111-2222-3333-4444-555555555555');

            print_r($result->toArray());
        - lang: ruby
          label: Ruby
          source: >-
            require "didit"


            # Reads DIDIT_API_KEY.

            didit = Didit::Client.new


            result =
            didit.sessions.retrieve_deletion_job("11111111-2222-3333-4444-555555555555")

            puts result.to_h
        - lang: csharp
          label: .NET
          source: >-
            using System;

            using System.Text.Json;

            using Didit;


            // Reads DIDIT_API_KEY.

            using var client = new DiditClient();


            var result = await
            client.Sessions.RetrieveDeletionJobAsync("11111111-2222-3333-4444-555555555555");

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    SessionDeletionJob:
      type: object
      description: >-
        عملية حذف مجمع للجلسات قيد التشغيل في الخلفية: التقدم والأعداد لكل
        نتيجة، دون تحديد الجلسات التي حُذفت على الإطلاق.
      properties:
        job_id:
          type: string
          format: uuid
          description: >-
            استعلم دورياً عن `GET /v3/sessions/delete/{job_id}/` باستخدام هذا
            المعرّف.
        status:
          type: string
          enum:
            - PENDING
            - PROCESSING
            - COMPLETED
            - FAILED
          description: >-
            `PENDING`: مقبولة، لم تبدأ بعد. `PROCESSING`: جارٍ الحذف؛ يجري تحديث
            `processed` و`outcomes`. `COMPLETED`: تمت معالجة جميع الجلسات
            المحددة. `FAILED`: توقفت المهمة مبكراً؛ راجع `error`.
        total:
          type: integer
          description: الجلسات المحددة عند طلب الحذف.
        processed:
          type: integer
          description: الجلسات التي انتهت المهمة من معالجتها حتى الآن.
        outcomes:
          type: object
          description: عدد الجلسات التي انتهت بكل نتيجة. كل مفتاح موجود دائماً.
          properties:
            deleted:
              type: integer
              description: الجلسات المحذوفة مع تضمين الوجه الخاص بها.
            none:
              type: integer
              description: الجلسات المحذوفة التي لم تكن تحتوي على تضمين الوجه.
            retained_with_user:
              type: integer
              description: >-
                الجلسات المحذوفة مع الاحتفاظ بقالب بيومتري واحد خالٍ من الصور
                لمستخدمها، وفقًا لما طلبه الطلب أو أوجبته سياسة التطبيق.
            ineligible_no_vendor_user:
              type: integer
              description: >-
                الجلسات المحذوفة، مع تضمين الوجه الخاص بها، لأنه طُلب الاحتفاظ
                بها ولكن لم يكن لديها مستخدم مرتبط.
            failed_retryable:
              type: integer
              description: >-
                الجلسات التي تم الإبلاغ عن عدم حذفها. تعيد المهمة محاولة معالجة
                مجموعة لم تتمكن من حذفها بنفسها بدلاً من احتسابها هنا.
            already_deleted:
              type: integer
              description: >-
                الجلسات المحددة التي كانت محذوفة بالفعل، على سبيل المثال بواسطة
                طلب آخر، عندما وصلت المهمة إليها.
        deleted_child_verifications:
          type: integer
          description: >-
            عمليات التحقق التي أنشأتها عمليات التحقق من الشركات المحذوفة، والتي
            حُذفت معها. دائماً `0` للمهمة التي بدأت بواسطة `POST
            /v3/sessions/delete/`، والتي تحذف جلسات KYC فقط.
        error:
          type: string
          nullable: true
          description: >-
            `null` ما لم تكن `status` هي `FAILED`؛ وحينها يبيّن سبب توقف الحذف.
            الجلسات التي لم تصل إليها المهمة تظل في مكانها: كرر الطلب لحذفها.
        created_at:
          type: string
          format: date-time
          description: وقت طلب الحذف.
        completed_at:
          type: string
          format: date-time
          nullable: true
          description: متى انتهت المهمة؛ `null` أثناء تشغيلها.
  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.