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

# إعادة إنشاء جلسة KYC للأشخاص الرئيسيين API

> أنشئ في Didit جلسة KYC جديدة لشخص رئيسي في التحقق من الشركات انتهت صلاحية جلسته أو حُذفت قبل بدئه، وأرسل له رابطاً جديداً بالبريد الإلكتروني.



موجّه API لإعادة إنشاء جلسة KYC للأشخاص الرئيسيين
        نسخ الموجّه إلى الحافظة



      
      

\<pre>

\`Give a Key People party of a Didit Business Verification (KYB) session a new individual KYC session through the API.

Endpoint:
POST https://verification.didit.me/v3/session/{session_id}/kyb/parties/{party_uuid}/regenerate/
(no request body)

Authentication:
Send my Didit API key in the x-api-key header. A scoped key needs decisions: write.

Goal:
\- Re-verify a person (UBO, director, other key person) whose individual KYC session was deleted, or expired before the person started it. Neither link lets the person complete verification. An expired child can cause the business session to become Declined; regenerate the party to issue a fresh link.

Behavior:
\- {session_id} is the parent business session; {party_uuid} is key_people_checks[].submitted.parties[].uuid from its decision and must belong to that session.
\- Works when the party's KYC session was deleted (kyc_session_deleted: true) or expired before the person started it. A session still in progress or one that ended in another status (Approved, Declined, In Review, Abandoned...) returns 409 unless it was deleted. A party that never had one or a company party always returns 409.
\- Deleted sessions qualify even if the person had already started or finished verification. Imported sessions do not qualify through expiry; they must have been deleted.
\- Didit creates a new hosted KYC session for the person, with the workflow the party was verified with (its latest published version) or, when that is no longer known, the workflow my Key People settings assign to the person's role. The new link lasts that KYC workflow's session expiration time, not the business session's. Its vendor_data is kyb-party-PARTY_UUID.
\- Didit emails the verification link to the party's email, when there is one.
\- is_skipped is cleared, so the Key People check waits on the new session.
\- The Key People check and the business session status are recomputed at once.
\- A data.updated webhook is sent for the business session with trigger "console_key_people_regenerate".
\- To exempt the party instead of re-verifying them, use PATCH /v3/session/{session_id}/kyb/parties/{party_uuid}/ with {"is_skipped": true}.

Example call:
curl -X POST "https://verification.didit.me/v3/session/33333333-4444-5555-6666-777777777777/kyb/parties/0a3f1e2c-7c2f-4a1b-9d55-2f8d2a5d6b41/regenerate/" \
-H "x-api-key: YOUR_API_KEY"

What to read from the response (the updated party):
\- kyc_session_id: the new KYC session.
\- kyc_session_url: its hosted link, to share yourself if the party has no email. A scoped key without sessions: write receives it as null.
\- kyc_session_status (Not Started), kyc_session_deleted (false), is_skipped (false).

Failure modes:
\- 401: the API key has expired.
\- 403: missing key (a wrong, revoked or expired key gets 401), a key of another application, a scoped key without decisions: write, or a request from outside the key's IP allowlist.
\- 404: the session does not exist, was deleted, or is outside a scoped key's limits; no party has this UUID; or the party belongs to another session.
\- 409 with code kyb_party_kyc_session_not_deleted: no eligible KYC session to replace. A person qualifies only when their session was deleted or a non-imported session expired before the person started it. All other sessions, a party that never had one, and company parties are rejected.

Side effects: creates a KYC session, may send an email to the party, recomputes the business session status and sends a data.updated webhook.

For the full integration shape, see /integration/integration-prompt.`

\</pre>



      
      

الصق في

استخدم هذا الإجراء عندما يكون الرابط السابق غير صالح: إما أن الجلسة حُذفت، أو انتهت صلاحيتها قبل أن يبدأ الشخص فيها أصلاً. تنطبق هذه الحالة على الجلسات المحذوفة حتى لو كان الشخص قد بدأ التحقق أو أنهاه بالفعل. لا تكون الجلسات المستوردة مؤهلةً بسبب انتهاء الصلاحية؛ بل يجب أن تكون قد حُذفت. ولا تُؤهَّل بسبب انتهاء الصلاحية الجلسة التي لم تُحذف وبدأ الشخص فيها بالفعل.ترتبط الجلسة الجديدة بالطرف نفسه، لذلك تُغذّي نتيجتها فحص الأشخاص الرئيسيين كما كانت ستفعل الجلسة الأصلية، ويبقى رابطها صالحاً للمدة المحددة لانتهاء صلاحية الجلسة في سير عمل KYC الذي تُشغّله (من ساعة واحدة إلى 4 أسابيع)، لا مدة انتهاء صلاحية جلسة الشركة. راجع الطرف وجلساته الفرعية في [قرار جلسة الشركة](https://docs.didit.me/ar/business-verification/response-schema.md#key_people_checks). إذا كان ينبغي عدم التحقق من الشخص إطلاقاً، فبدلاً من ذلك [تخطَّ الطرف](https://docs.didit.me/ar/sessions-api/update-data.md#تخطي-طرف-من-الأشخاص-الرئيسيين). راجع [الأشخاص الرئيسيون](https://docs.didit.me/ar/business-verification/key-people.md) لمعرفة كيفية عمل الأطراف وعمليات التحقق الخاصة بها.


## OpenAPI

````yaml ar/openapi-25.json POST /v3/session/{sessionId}/kyb/parties/{partyUuid}/regenerate/
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/session/{sessionId}/kyb/parties/{partyUuid}/regenerate/:
    post:
      tags:
        - Sessions
      summary: إعادة إنشاء جلسة KYC لطرف من الأشخاص الرئيسيين
      description: >-
        منح طرف من الأشخاص الرئيسيين في جلسة التحقق من الشركات (KYB) جلسة KYC
        فردية جديدة بعد حذف جلسته السابقة أو انتهاء صلاحيتها قبل أن يبدأها
        الشخص، حتى يتسنى إنهاء فحص الأشخاص الرئيسيين مرة أخرى؛ لا ترسل أي متن
        للطلب. يعمل هذا الإجراء عندما تكون جلسة KYC الخاصة بالطرف قد حُذفت
        (`kyc_session_deleted: true`) أو انتهت صلاحيتها قبل أن يبدأها الشخص
        (`Expired`، لم تبدأ قط). الجلسة التي لا تزال قيد التنفيذ أو التي انتهت
        بأي حالة أخرى (`Approved`، `Declined`، `In Review`، `Abandoned`، ...)
        تُرجع `409` ما لم تكن محذوفة. الطرف الذي لم يمتلك جلسة قط أو الطرف من
        نوع شركة يُرجع دائمًا `409`. تُنشئ Didit جلسة KYC مستضافة جديدة باستخدام
        سير العمل الذي جرى التحقق من الطرف باستخدامه (أحدث إصدار منشور منه) أو،
        عندما يتعذر معرفة ذلك، سير العمل الذي تحدده إعدادات الأشخاص الرئيسيين
        لدور الطرف، وبالتالي يظل الرابط صالحًا حتى انتهاء مدة جلسة سير عمل KYC؛
        وتُرسل الرابط بالبريد الإلكتروني إلى الطرف في حال توفر بريده الإلكتروني
        في السجل، وتُفرغ `is_skipped`، وتعيد احتساب فحص الأشخاص الرئيسيين وحالة
        جلسة الشركة. ثم تُرسل
        [webhook](https://docs.didit.me/ar/integration/webhooks) من نوع
        `data.updated` لجلسة الشركة مع المُشغِّل
        `console_key_people_regenerate`؛ لاستثناء الطرف بدلاً من ذلك، استخدم
        `PATCH /v3/session/{sessionId}/kyb/parties/{partyUuid}/`. يتطلب مفتاح
        API المقيَّد الصلاحية `decisions: write`، وبدون `sessions: write` سيتلقى
        `kyc_session_url` بقيمة `null`. الجلسات المحذوفة تكون مؤهلة حتى لو كان
        الشخص قد بدأ بالفعل عملية التحقق أو أنهاها. الجلسات المستوردة لا تكون
        مؤهلة عن طريق انتهاء الصلاحية؛ بل يجب أن تكون محذوفة.
      operationId: post_v3_session_kyb_party_regenerate
      parameters:
        - name: sessionId
          in: path
          required: true
          description: معرّف UUID لجلسة التحقق من الشركات (KYB) الأصلية (الأب).
          schema:
            type: string
            format: uuid
            example: 33333333-4444-5555-6666-777777777777
        - name: partyUuid
          in: path
          required: true
          description: >-
            معرّف UUID لطرف الأشخاص الرئيسيين
            (`key_people_checks[].submitted.parties[].uuid` في قرار جلسة
            الشركة). يجب أن ينتمي إلى الجلسة المُشار إليها بواسطة `sessionId`.
          schema:
            type: string
            format: uuid
            example: 0a3f1e2c-7c2f-4a1b-9d55-2f8d2a5d6b41
      responses:
        '200':
          description: >-
            تم إنشاء جلسة KYC جديدة. يُرجع الطرف المحدّث مع جلسته الفرعية
            الجديدة، والتي تنتهي صلاحيتها بعد مدة انتهاء صلاحية جلسة سير عمل KYC
            الخاص بها.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/KYBKeyPeopleParty'
              example:
                uuid: 0a3f1e2c-7c2f-4a1b-9d55-2f8d2a5d6b41
                entity_type: person
                source: USER
                name: Jane Smith
                first_name: Jane
                last_name: Smith
                company_name: null
                registration_number: null
                email: user@example.com
                nationality: GB
                phone_number: null
                date_of_birth: '1980-05-04'
                position: Director
                custom_fields: {}
                is_active: true
                is_skipped: false
                requires_verification: true
                roles:
                  - role: director
                    ownership_percent: null
                    voting_percent: null
                kyc_session_id: 55555555-6666-7777-8888-999999999999
                kyc_session_status: Not Started
                kyc_session_url: https://verify.didit.me/session/abc123def456
                kyc_session_deleted: false
                kyb_sub_session_id: null
                kyb_sub_session_status: null
                kyb_sub_session_url: null
                kyb_sub_session_deleted: false
                verification_workflow_type: kyc
                verification_workflow_id: 12121212-3434-5656-7878-909090909090
                verification_workflow_label: Key People KYC
                verification_workflow_features:
                  - feature: ID_VERIFICATION
                    status: Not Finished
                  - feature: LIVENESS
                    status: Not Finished
                  - feature: AML
                    status: Not Finished
                didit_internal_id: null
        '401':
          description: >-
            انتهت صلاحية مفتاح API محدد النطاق. هذه هي الحالة الوحيدة التي تُرجع
            `401`: بينما يُرجع المفتاح المفقود أو غير الصالح أو الملغى الرمز
            `403`.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                    description: رسالة خطأ سهلة القراءة.
              examples:
                Expired key:
                  summary: انقضى تاريخ الانتهاء للمفتاح
                  value:
                    detail: This API key has expired.
        '403':
          description: >-
            فشل في المصادقة أو التفويض. يؤدي المفتاح المفقود إلى إرجاع `403`،
            وكذلك المفتاح التابع لتطبيق آخر، أو المفتاح محدد النطاق الذي يفتقر
            إلى الإذن الذي يتطلبه هذا endpoint، أو الطلب الوارد من خارج قائمة IP
            المسموح بها للمفتاح؛ بينما يؤدي المفتاح الخاطئ أو الملغى أو منتهي
            الصلاحية إلى إرجاع `401`. يمكنك التمييز بينها من خلال `detail`.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                    description: رسالة خطأ سهلة القراءة.
              examples:
                Missing or invalid credentials:
                  summary: لا يوجد رأس x-api-key، أو فشل التحقق من صحة المفتاح
                  value:
                    detail: >-
                      Authentication credentials were not provided or are
                      invalid.
                Other application:
                  summary: مفتاح صالح ينتمي إلى تطبيق مختلف عن الجلسة
                  value:
                    detail: You do not have permission to perform this action.
                Scoped key without decisions write:
                  summary: 'المفتاح محدد النطاق يفتقر إلى decisions: write'
                  value:
                    detail: This API key has no write access to decisions.
                IP not allowed:
                  summary: الطلب وارد من خارج قائمة IP المسموح بها للمفتاح
                  value:
                    detail: This API key can't be used from this IP address.
        '404':
          description: >-
            الجلسة غير موجودة، أو تم حذفها، أو أنها خارج حدود مفتاح ذي نطاق
            محدد؛ أو لا يوجد طرف بمعرّف UUID هذا في تطبيقك؛ أو أن الطرف ينتمي
            إلى جلسة أخرى. كل حالة لها `detail` خاص بها. يتم البحث عن الجلسة قبل
            التحقق من بيانات الاعتماد، لذلك فإن معرّف `sessionId` غير المعروف
            يُعيد `404` حتى بدون مفتاح صالح.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                    description: رسالة خطأ سهلة القراءة.
              examples:
                Unknown session:
                  summary: لا توجد جلسة بهذا المعرّف، أو أنها حُذفت
                  value:
                    detail: Not found.
                Outside key limits:
                  summary: >-
                    الجلسة خارج سير العمل أو حدود المقبولة فقط الخاصة بمفتاح ذي
                    نطاق محدد
                  value:
                    detail: Session not found.
                Unknown party:
                  summary: لا يوجد طرف بهذا المعرّف UUID في تطبيقك
                  value:
                    detail: No BusinessParty matches the given query.
                Party of another session:
                  summary: معرّف partyUuid موجود ولكنه ينتمي إلى جلسة مختلفة
                  value:
                    detail: Party does not belong to the given session.
        '409':
          description: >-
            لا يملك الطرف أي جلسة KYC مؤهلة لاستبدالها. ما لم تكن محذوفة، لا
            يمكن إعادة إنشاء جلسة لا تزال قيد التنفيذ أو انتهت بحالة أخرى
            (`Approved` أو `Declined` أو `In Review` أو `Abandoned` أو غيرها).
            كما أن الطرف الذي لم يمتلك جلسة من قبل أو الطرف الذي يمثل شركة يُرجع
            الخطأ `409` أيضاً. الجلسة المؤهلة هي التي حُذفت أو انتهت صلاحيتها
            قبل أن يبدأ الشخص فيها. وتعد الجلسات المحذوفة مؤهلة حتى لو كان الشخص
            قد بدأ بالفعل في التحقق أو أنهاه. لا تتأهل الجلسات المستوردة بمجرد
            انتهاء الصلاحية؛ بل يجب أن تكون محذوفة. فرّع بناءً على `code`.
          content:
            application/json:
              schema:
                type: object
                required:
                  - detail
                  - code
                properties:
                  detail:
                    type: string
                    description: رسالة خطأ سهلة القراءة.
                  code:
                    type: string
                    enum:
                      - kyb_party_kyc_session_not_deleted
                    description: رمز خطأ ثابت قابل للقراءة آلياً.
              example:
                detail: >-
                  This party's KYC session is still live (it has neither been
                  deleted nor expired without starting), so it cannot be
                  regenerated.
                code: kyb_party_kyc_session_not_deleted
        '429':
          description: >-
            تم تجاوز حد المعدل: 300 طلب كتابة (POST وPATCH وDELETE) في الدقيقة
            لكل مفتاح API. انتظر عدد الثواني المحدد في `Retry-After` قبل إعادة
            المحاولة؛ تُظهر رؤوس `X-RateLimit-*` الميزانية.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
                    description: رسالة خطأ سهلة القراءة.
              examples:
                Rate limited:
                  summary: استُنفدت الميزانية المخصصة للدقيقة الحالية
                  value:
                    detail: >-
                      Write request rate limit exceeded. You can make up to 300
                      requests per minute.
          headers:
            Retry-After:
              description: عدد الثواني الواجب انتظارها قبل إعادة المحاولة.
              schema:
                type: integer
                minimum: 1
                example: 30
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: >-
            curl -X POST
            'https://verification.didit.me/v3/session/33333333-4444-5555-6666-777777777777/kyb/parties/0a3f1e2c-7c2f-4a1b-9d55-2f8d2a5d6b41/regenerate/'
            \
              -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.regenerate_kyb_party(
                "33333333-4444-5555-6666-777777777777",
                "0a3f1e2c-7c2f-4a1b-9d55-2f8d2a5d6b41",
            )
            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.regenerateKybParty(
              "33333333-4444-5555-6666-777777777777",
              "0a3f1e2c-7c2f-4a1b-9d55-2f8d2a5d6b41",
            );
            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.Sessions.RegenerateKYBParty(ctx, \"33333333-4444-5555-6666-777777777777\", \"0a3f1e2c-7c2f-4a1b-9d55-2f8d2a5d6b41\")\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().regenerateKybParty("33333333-4444-5555-6666-777777777777",
            "0a3f1e2c-7c2f-4a1b-9d55-2f8d2a5d6b41");

            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->regenerateKybParty('33333333-4444-5555-6666-777777777777',
            '0a3f1e2c-7c2f-4a1b-9d55-2f8d2a5d6b41');

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

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

            result = didit.sessions.regenerate_kyb_party(
              "33333333-4444-5555-6666-777777777777",
              "0a3f1e2c-7c2f-4a1b-9d55-2f8d2a5d6b41"
            )
            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.RegenerateKybPartyAsync("33333333-4444-5555-6666-777777777777",
            "0a3f1e2c-7c2f-4a1b-9d55-2f8d2a5d6b41");

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    KYBKeyPeopleParty:
      type: object
      description: >-
        طرف من الأشخاص الرئيسيين (Key People) في جلسة التحقق من الشركات (KYB)،
        مع التحقق الفرعي التابع له. يظهر الطرف نفسه في
        `key_people_checks[].submitted.parties[]` لقرار جلسة الشركة.
      required:
        - uuid
        - entity_type
        - source
        - name
        - is_active
        - is_skipped
        - requires_verification
        - roles
        - kyc_session_deleted
        - kyb_sub_session_deleted
      properties:
        uuid:
          type: string
          format: uuid
          description: معرّف الطرف.
        entity_type:
          type: string
          enum:
            - person
            - company
          description: ما إذا كان الطرف فرداً أو شركة.
        source:
          type: string
          enum:
            - REGISTRY
            - USER
          description: '`REGISTRY`: مأخوذ من سجل الشركات. `USER`: مُدخل في شاشة Key People.'
        name:
          type: string
          description: اسم العرض للطرف.
        first_name:
          type: string
          nullable: true
          description: الاسم الأول (للأشخاص).
        last_name:
          type: string
          nullable: true
          description: اسم العائلة (للأشخاص).
        company_name:
          type: string
          nullable: true
          description: اسم الشركة (أطراف الشركات).
        registration_number:
          type: string
          nullable: true
          description: رقم تسجيل الشركة (أطراف الشركات).
        email:
          type: string
          format: email
          nullable: true
          description: البريد الإلكتروني الذي يتم إرسال رابط التحقق إليه.
        nationality:
          type: string
          nullable: true
          description: الجنسية للأفراد، ودولة التأسيس للشركات.
        phone_number:
          type: string
          nullable: true
          description: رقم الهاتف الذي تم جمعه للطرف المعني.
        date_of_birth:
          type: string
          format: date
          nullable: true
          description: تاريخ الميلاد (للأشخاص).
        position:
          type: string
          nullable: true
          description: المسمى الوظيفي بنص حر (للأشخاص).
        custom_fields:
          type: object
          additionalProperties: true
          description: حقول مخصصة محددة في سير العمل تم جمعها للطرف، ومفهرسة بمفتاح الحقل.
        is_active:
          type: boolean
          description: ما إذا كان الطرف نشطاً.
        is_skipped:
          type: boolean
          description: ما إذا كان الطرف معفياً من التحقق. تؤدي إعادة الإنشاء إلى مسحها.
        requires_verification:
          type: boolean
          description: ما إذا كانت قواعد الدور والملكية تتطلب عملية تحقق لهذا الطرف.
        roles:
          type: array
          description: الأدوار التي يشغلها الطرف في الشركة.
          items:
            type: object
            required:
              - role
              - ownership_percent
              - voting_percent
            properties:
              role:
                type: string
                enum:
                  - director
                  - non_executive_director
                  - secretary
                  - chairman
                  - ubo
                  - shareholder
                  - representative
                  - founder
                  - legal_advisor
                  - authorized_signatory
                  - trustee
                  - beneficiary
                  - settlor
                  - protector
                  - company_officer
                  - investor
                  - other
                description: رمز الدور.
              ownership_percent:
                type: number
                nullable: true
                description: نسبة الملكية لهذا الدور، عندما تكون معروفة.
              voting_percent:
                type: number
                nullable: true
                description: نسبة حقوق التصويت لهذا الدور، عند معرفتها.
        kyc_session_id:
          type: string
          format: uuid
          nullable: true
          description: جلسة KYC فردية فرعية (الأفراد).
        kyc_session_status:
          type: string
          nullable: true
          enum:
            - Not Started
            - In Progress
            - Approved
            - Declined
            - In Review
            - Expired
            - Abandoned
            - Kyc Expired
            - Resubmitted
            - Awaiting User
            - null
          description: >-
            حالة جلسة KYC الفرعية. تحتفظ الجلسة المحذوفة بالحالة التي كانت عليها
            عند حذفها.
        kyc_session_url:
          type: string
          format: uri
          nullable: true
          description: >-
            الرابط المستضاف لجلسة KYC الفرعية. يكون `null` عند عدم وجود جلسة أو
            إذا تم حذفها، وكذلك لمفتاح API ذي نطاق محدد دون صلاحية `sessions:
            write`.
        kyc_session_deleted:
          type: boolean
          description: تم حذف جلسة KYC الفرعية، لذا لا يمكن تسويتها أبداً.
        kyb_sub_session_id:
          type: string
          format: uuid
          nullable: true
          description: جلسة KYB فرعية (أطراف الشركات).
        kyb_sub_session_status:
          type: string
          nullable: true
          enum:
            - Not Started
            - In Progress
            - Approved
            - Declined
            - In Review
            - Expired
            - Abandoned
            - Kyc Expired
            - Resubmitted
            - Awaiting User
            - null
          description: حالة جلسة KYB الفرعية.
        kyb_sub_session_url:
          type: string
          format: uri
          nullable: true
          description: >-
            الرابط المستضاف لجلسة KYB الفرعية، مع تطبيق نفس قواعد `null` الخاصة
            بـ `kyc_session_url`.
        kyb_sub_session_deleted:
          type: boolean
          description: المقابل الخاص بطرف الشركة لـ `kyc_session_deleted`.
        verification_workflow_type:
          type: string
          nullable: true
          enum:
            - kyc
            - kyb
            - adaptive_age_verification
            - biometric_authentication
            - address_verification
            - questionnaire_verification
            - email_verification
            - phone_verification
            - null
          description: نوع سير العمل الذي تشغله الجلسة الفرعية.
        verification_workflow_id:
          type: string
          format: uuid
          nullable: true
          description: سير العمل الذي تشغّله الجلسة الفرعية.
        verification_workflow_label:
          type: string
          nullable: true
          description: تسمية سير العمل هذا.
        verification_workflow_features:
          type: array
          nullable: true
          description: ميزات سير عمل الجلسة الفرعية مع حالتها الحالية.
          items:
            type: object
            required:
              - feature
              - status
            properties:
              feature:
                type: string
                description: رمز الميزة، على سبيل المثال `ID_VERIFICATION` أو `LIVENESS`.
              status:
                type: string
                description: حالة الميزة، وتكون `Not Finished` حتى يتم تشغيلها.
        didit_internal_id:
          type: string
          format: uuid
          nullable: true
          description: معرّف Didit للشخص الذي تم التحقق منه، بمجرد معرفته.
  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.