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

> حدّث سير عمل KYC أو KYB في Didit برمجياً: أعد التسمية، أو استبدل الميزات المرتبة، أو اضبط الحدود. دفع حسب الاستدعاء، دون عقود.



موجّه تحديث واجهة API لسير عمل
        نسخ الموجّه إلى الحافظة



      
      

\<pre>

\`Update a simple Didit workflow through the Management API.

Endpoint:
PATCH https://verification.didit.me/v3/workflows/{settings_uuid}/

Authentication:
Use the x-api-key header with my Didit API key.

Requirements:
\- Use PATCH and include only the fields I want to change.
\- To rename the workflow, send workflow_label only.
\- To change workflow checks, send the full desired features array. This replaces the previous feature order and config.
\- Do not send workflow_graph, branches, actions, webhooks, or conditional logic.
\- Send features in the exact execution order.
\- Use uppercase feature values such as OCR, LIVENESS, FACE_MATCH, AML, QUESTIONNAIRE, EMAIL_VERIFICATION, PHONE_VERIFICATION, or PROOF_OF_ADDRESS.
\- Configure each feature with the fields from /management-api/workflows/feature-configs.
\- For an OCR feature, omit config.documents_allowed or send an empty object to allow every supported document type. Send config.documents_allowed only to restrict the allowed documents.
\- Keep dependency order valid. For example, put OCR before FACE_MATCH.
\- If the workflow includes QUESTIONNAIRE, use the latest questionnaire_id as config.questionnaire_uuid.

Example metadata update body:
\{
"workflow_label": "Premium KYC"
}

Example full feature replacement body:
\{
"features": [
\{
  "feature": "OCR",
  "config": {
    "documents_allowed": {
      "USA": {
        "DL": {
          "enabled": 1,
          "sides": 2
        }
      }
    }
  }
},
\{
  "feature": "AML",
  "config": {
    "aml_score_review_threshold": 70,
    "aml_score_approve_threshold": 30
  }
}
]
}

Build the API call, handle validation errors, and return the updated workflow response.`

\</pre>



      
      

الصق في

استخدم `PATCH` للتحديثات الجزئية. لإعادة تسمية سير عمل، أرسل `workflow_label` فقط.```json theme={null}
{
  "workflow_label": "Premium KYC"
}
```لتغيير الفحوصات في سير العمل، أرسل مصفوفة `features` الكاملة التي تريدها. يؤدي ذلك إلى استبدال ترتيب الميزات والإعدادات السابقة.```json theme={null}
{
  "features": [
    {
      "feature": "OCR",
      "config": {
        "documents_allowed": {
          "USA": {
            "DL": {
              "enabled": 1,
              "sides": 2
            }
          }
        }
      }
    },
    {
      "feature": "AML",
      "config": {
        "aml_score_review_threshold": 70,
        "aml_score_approve_threshold": 30
      }
    }
  ]
}
```تحافظ واجهة API للإصدار v3 على بساطة سير العمل: مسار خطي واحد وخطوة حالة نهائية واحدة. لا تُقبل هنا العُقد المتفرعة وعُقد الإجراءات وعُقد webhook.## مرجع إعدادات الميزاتعند إرسال `features` في طلب `PATCH`، تستبدل المصفوفة ترتيب الميزات والإعدادات السابقة. أدرج كل إعدادات config المطلوبة مرة أخرى.يعتمد كائن `config` الدقيق على الميزة. راجع قائمة الحقول الكاملة والقيم الافتراضية والإعدادات المطلوبة ونطاقات القيم والأمثلة في [إعدادات ميزات سير العمل](https://docs.didit.me/ar/management-api/workflows/feature-configs.md).بالنسبة إلى `OCR`، احذف `config.documents_allowed`، أو أرسل `null`، أو أرسل `{}` للسماح بكل أنواع المستندات المدعومة. أدرجه فقط عندما تريد قصر سير العمل على دول أو أنواع مستندات محددة. بالنسبة إلى `QUESTIONNAIRE`، الحقل `config.questionnaire_uuid` مطلوب.## تحديث إعدادات سير العمليمكنك تحديث إعدادات مستوى الجلسة دون لمس قائمة الميزات. أرسل الحقول التي تريد تغييرها فقط.| الحقل | النوع | الوصف |
| - | - | - |
| `is_white_label_enabled` | قيمة منطقية | تفعيل تخصيص العلامة البيضاء للجلسات المنشأة بسير العمل هذا. |
| `is_desktop_allowed` | قيمة منطقية | السماح بتشغيل مسار التحقق في متصفحات أجهزة سطح المكتب. |
| `max_retry_attempts` | عدد صحيح (0–10) | الحد الأقصى لمحاولات إعادة المحاولة المسموح بها بعد رفض التحقق. تؤدي القيمة `0` إلى حظر المستخدم بعد أول رفض. |
| `retry_window_days` | عدد صحيح (1–365) أو `null` | نافذة متحركة بالأيام تُستخدم لاحتساب المحاولات (`null` = حد إجمالي طوال المدة). |
| `session_expiration_time` | عدد صحيح (3600–2419200) | عدد الثواني قبل انتهاء صلاحية الجلسة غير المكتملة. الحد الأدنى ساعة واحدة، والحد الأقصى أربعة أسابيع. |```json theme={null}
{
  "is_white_label_enabled": true,
  "is_desktop_allowed": true,
  "max_retry_attempts": 5,
  "retry_window_days": 14,
  "session_expiration_time": 86400
}
```استخدم `uuid` الخاص بسير العمل الذي يعيده endpoint الخاص بالقائمة أو الإنشاء أو الجلب، كقيمة لـ `settings_uuid` في هذا الرابط.


## OpenAPI

````yaml ar/openapi-25.json PATCH /v3/workflows/{settings_uuid}/
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/workflows/{settings_uuid}/:
    patch:
      tags:
        - Workflows
      summary: تحديث سير العمل
      description: >-
        تحديث سير العمل. يعتمد تحديد الإصدارات على حقل `status` الذي ترسله
        والحالة الحالية للإصدار: (1) عدم وجود `status` لإصدار **منشور** ← يتم
        تحديث الإصدار المنشور في مكانه (نفس `uuid`، ونفس `version`)؛ (2) عدم
        وجود `status` لـ **مسودة** ← يتم تحديث المسودة ونشرها على الفور؛ (3)
        ‏`status: "published"` لإصدار **منشور** ← يتم إنشاء إصدار منشور جديد ضمن
        نفس `workflow_id` (معرّف `uuid` جديد، و`version` + 1) وإرجاعه، وتُحذف أي
        مسودة موجودة في المجموعة؛ (4) ‏`status: "draft"` يبقي المسودة كمسودة
        (حفظ تلقائي) ولكن يتم رفضه برمز 400 للإصدار المنشور (`"Cannot revert a
        published version to draft."`). يقبل نص الطلب نفس القائمة البيضاء
        الصارمة للحقول كما في الإنشاء — ويتم رفض المفاتيح غير المعروفة برمز 400.
      operationId: update_workflow
      parameters:
        - name: settings_uuid
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: معرف UUID لكل إصدار من سير العمل المطلوب تحديثه.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SimpleWorkflowUpdateRequest'
            examples:
              Replace features:
                summary: أرسل كامل ترتيب الميزات المطلوب
                value:
                  features:
                    - feature: OCR
                    - feature: AML
              Rename:
                summary: إعادة تسمية سير العمل
                value:
                  workflow_label: Premium KYC
              Set as default:
                summary: تعيين سير العمل هذا ليكون الافتراضي للتطبيق
                value:
                  is_default: true
              Update config:
                summary: تغيير تكوين الميزة
                value:
                  features:
                    - feature: OCR
                    - feature: LIVENESS
                      config:
                        face_liveness_method: passive
              Publish a draft:
                summary: ترقية مسودة إلى منشورة
                value:
                  status: published
      responses:
        '200':
          description: >-
            تم تحديث سير العمل. يمثل نص الاستجابة التكوين الكامل (FULL) للإصدار
            الناتج (نفس البنية الخام لـ `VerificationSettings` كما في `GET
            /v3/workflows/{settings_uuid}/`). عندما يُنشئ التحديث إصداراً جديداً
            (إرسال `status: "published"` على صف منشور)، يختلف كل من `uuid`
            و`version` المُرجَعين عن تلك التي قمت بتعديلها — استخدم `uuid`
            المُرجَع للاستدعاءات اللاحقة.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowDetail'
        '400':
          description: >-
            خطأ في التحقق من الصحة — مفتاح ذو مستوى أعلى خارج القائمة المسموح
            بها، أو ميزة غير معروفة، أو ترتيب غير صالح، أو حد خارج النطاق، أو
            الإشارة إلى استبيان غير موجود، أو ميزة `SIGNATURE` ستصبح نشطة في
            بيئة الإنتاج دون وجود مستند للتوقيع عليه، أو ميزة `SIGNATURE` جديدة
            عند `signature_level: "aes"` بينما المستوى المتقدم (AES) غير متاح
            (`aes_not_available`، راجع `signature_availability` في سير العمل؛
            الخطوة التي تخزن بالفعل `aes` تحتفظ بها)، أو إرسال `status: "draft"`
            لإصدار منشور (`"Cannot revert a published version to draft."`). نص
            الاستجابة هو خطأ في التحقق من الصحة من DRF مفهرس بحسب اسم الحقل.
        '403':
          description: مفتاح API مفقود أو غير صالح.
          content:
            application/json:
              examples:
                Invalid token:
                  value:
                    detail: You do not have permission to perform this action.
        '404':
          description: لا يوجد سير عمل بقيمة `settings_uuid` هذه للتطبيق الذي تمت مصادقته.
        '415':
          description: 'نوع وسائط غير مدعوم. عيّن `Content-Type: application/json`.'
        '429':
          description: تم تجاوز حد المعدل. أعد المحاولة مع تراجع أسي.
        '500':
          description: خطأ غير متوقع في الخادم. يمكن إعادة المحاولة بأمان.
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: cURL
          source: >-
            curl -X PATCH
            'https://verification.didit.me/v3/workflows/a1b2c3d4-5678-90ab-cdef-111111111111/'
            \
              -H 'x-api-key: YOUR_API_KEY' \
              -H 'Content-Type: application/json' \
              -d '{"workflow_label": "Premium KYC"}'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.workflows.update(
                "11111111-2222-3333-4444-555555555555",
                features=[{
                    "feature": "OCR",
                }, {
                    "feature": "AML",
                }],
            )
            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.workflows.update("11111111-2222-3333-4444-555555555555", {
              features: [{
                feature: "OCR",
              }, {
                feature: "AML",
              }],
            });

            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.Workflows.Update(ctx, \"11111111-2222-3333-4444-555555555555\", didit.SimpleWorkflowUpdateRequest{\n\tFeatures: didit.Some([]didit.SimpleWorkflowFeature{{\n\t\tFeature: \"OCR\",\n\t}, {\n\t\tFeature: \"AML\",\n\t}}),\n})\nif err != nil {\n\tlog.Fatal(err)\n}\nfmt.Printf(\"%+v\\n\", result)"
        - lang: java
          label: Java
          source: >-
            import java.util.List;

            import me.didit.Didit;

            import me.didit.types.SimpleWorkflowFeature;

            import me.didit.types.SimpleWorkflowUpdateRequest;


            // Reads DIDIT_API_KEY.

            Didit client = new Didit();


            var result =
            client.workflows().update("11111111-2222-3333-4444-555555555555",
            SimpleWorkflowUpdateRequest.builder()
                    .features(List.of(
                            SimpleWorkflowFeature.builder()
                                    .feature(SimpleWorkflowFeature.Feature.of("OCR"))
                                    .build(),
                            SimpleWorkflowFeature.builder()
                                    .feature(SimpleWorkflowFeature.Feature.of("AML"))
                                    .build()))
                    .build());
            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->workflows->update('11111111-2222-3333-4444-555555555555', [
                'features' => [[
                    'feature' => 'OCR',
                ], [
                    'feature' => 'AML',
                ]],
            ]);

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

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

            result = didit.workflows.update(
              "11111111-2222-3333-4444-555555555555",
              features: [{
                feature: "OCR",
              }, {
                feature: "AML",
              }]
            )
            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.Workflows.UpdateAsync("11111111-2222-3333-4444-555555555555",
            new SimpleWorkflowUpdateRequest

            {
                Features = new SimpleWorkflowFeature[]
                {
                    new()
                    {
                        Feature = "OCR",
                    },
                    new()
                    {
                        Feature = "AML",
                    },
                },
            });

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    SimpleWorkflowUpdateRequest:
      type: object
      description: >-
        تحديث البيانات الوصفية لسير العمل أو استبدال القائمة الخطية الكاملة
        للميزات. قائمة بيضاء صارمة للحقول: يُرفض أي مفتاح غير مدرج هنا برمز 400.
      properties:
        workflow_label:
          type: string
          maxLength: 50
          description: اسم العرض لسير العمل (بحد أقصى 50 حرفاً).
        is_default:
          type: boolean
          description: تعيين سير العمل هذا كافتراضي للجلسات الجديدة.
        status:
          type: string
          enum:
            - draft
            - published
          description: >-
            يتحكم في تحديد الإصدارات. احذفه لتحديث الإصدار الحالي في مكانه
            (المسودات تُنشر تلقائياً). استخدام `published` على إصدار منشور
            بالفعل يُنشئ إصداراً جديداً ويُعيده. لا يكون `draft` صالحاً إلا
            عندما يكون الإصدار لا يزال مسودة.
        features:
          type: array
          minItems: 1
          description: إذا تم توفيره، فإن هذا يستبدل ترتيب الميزات وتكوينها بالكامل.
          items:
            $ref: '#/components/schemas/SimpleWorkflowFeature'
        is_white_label_enabled:
          type: boolean
          description: >-
            تمكين تخصيص العلامة البيضاء للجلسات التي تم إنشاؤها باستخدام سير
            العمل هذا.
        is_desktop_allowed:
          type: boolean
          description: السماح بتشغيل مسار التحقق على متصفحات أجهزة سطح المكتب.
        max_retry_attempts:
          type: integer
          minimum: 0
          maximum: 10
          description: >-
            الحد الأقصى لمحاولات إعادة المحاولة المسموح بها بعد عملية تحقق
            مرفوضة. القيمة `0` تحظر المستخدم بعد الرفض الأول.
        retry_window_days:
          type: integer
          minimum: 1
          maximum: 365
          nullable: true
          description: >-
            النافذة الزمنية المتجددة بالأيام المستخدمة لحساب عمليات إعادة
            المحاولة. تفرض القيمة `null` حداً طوال الوقت.
        face_liveness_max_attempts:
          type: integer
          minimum: 1
          maximum: 3
          description: >-
            الحد الأقصى لعمليات إرسال كشف الحيوية لكل جلسة. يتم أيضاً نسخ هذه
            القيمة في عُقد سير عمل كشف الحيوية وتقدير العمر المنشأة ما لم
            يستبدلها إعداد على مستوى الميزة.
        face_match_max_attempts:
          type: integer
          minimum: 1
          maximum: 3
          description: >-
            الحد الأقصى لعمليات إرسال مطابقة الوجه لكل جلسة. يتم أيضاً نسخ هذه
            القيمة في عُقد سير عمل مطابقة الوجه المنشأة ما لم يستبدلها إعداد على
            مستوى الميزة.
        session_expiration_time:
          type: integer
          minimum: 3600
          maximum: 2419200
          description: >-
            عدد الثواني قبل انتهاء صلاحية الجلسة غير المكتملة. الحد الأدنى ساعة
            واحدة (3600)، والحد الأقصى 4 أسابيع (2419200).
    WorkflowDetail:
      type: object
      description: >-
        الحقول أدناه ذات أنواع محددة (typed)؛ ويحمل الكائن أيضاً كل عمود آخر من
        تكوين سير العمل (مفاتيح تبديل الميزات، والحدود، وإجراءات التحذير،
        والمستندات المسموح بها، وعمليات الاستدعاء) كخصائص إضافية. الحقول التي لا
        تنطبق على `workflow_type` تكون `null`.
      properties:
        uuid:
          type: string
          format: uuid
          description: >-
            معرّف لكل إصدار (`settings_uuid`). لكل إصدار من سير العمل معرّف خاص
            به.
        workflow_id:
          type: string
          format: uuid
          description: >-
            معرّف ثابت تشترك فيه جميع إصدارات سير العمل. تستخدم الجلسات التي يتم
            إنشاؤها باستخدامه أحدث إصدار منشور.
        workflow_label:
          type: string
          description: اسم العرض لسير العمل.
        workflow_type:
          type: string
          nullable: true
          enum:
            - kyc
            - kyb
            - adaptive_age_verification
            - biometric_authentication
            - address_verification
            - questionnaire_verification
            - email_verification
            - phone_verification
            - null
          description: >-
            قالب سير العمل. يكون `null` لمخططات سير العمل التي تم إنشاؤها بدون
            قالب.
        is_default:
          type: boolean
          description: ما إذا كان هذا هو سير العمل الافتراضي للتطبيق.
        is_archived:
          type: boolean
          description: لا يمكن لمهام سير العمل المؤرشفة بدء جلسات جديدة.
        version:
          type: integer
          description: رقم الإصدار ضمن سير العمل.
        status:
          type: string
          enum:
            - draft
            - published
          description: >-
            إصدارات المسودة قابلة للتعديل؛ أما الإصدارات المنشورة فغير قابلة
            للتغيير وتُستخدم للجلسات الجديدة.
        published_at:
          type: string
          format: date-time
          nullable: true
          description: وقت نشر هذا الإصدار. القيمة `null` للمسودات.
        is_simple_workflow:
          type: boolean
          description: تكون `true` عندما لا يحتوي سير العمل على `workflow_graph` مخصص.
        is_editable:
          type: boolean
          description: تكون القيمة `true` فقط لإصدارات `draft`.
        workflow_url:
          type: string
          format: uri
          description: رابط URL عام يبدأ جلسة باستخدام سير العمل هذا.
        workflow_graph:
          type: object
          nullable: true
          additionalProperties: true
          description: هيكل المخطط لسير العمل (العقد والحواف). `null` لسير العمل البسيط.
        features:
          type: string
          description: >-
            الميزات المُمكّنة مفصولة بـ `" + "`، على سبيل المثال `"OCR +
            LIVENESS"`.
        total_price:
          type: number
          nullable: true
          description: >-
            السعر لكل جلسة؛ بالنسبة لمسارات سير العمل القائمة على المخطط، يمثل
            المسار الأكثر تكلفة.
        min_price:
          type: number
          nullable: true
          description: سعر المسار الأقل تكلفة عبر سير العمل.
        max_price:
          type: number
          nullable: true
          description: سعر المسار الأكثر تكلفة عبر سير العمل.
        special_add_on_prices:
          type: object
          nullable: true
          additionalProperties: true
          description: أسعار الإضافات الخاصة بالمؤسسة، أو `null` عند عدم تعيين أي منها.
        max_retry_attempts:
          type: integer
          description: عمليات إعادة المحاولة المسموح بها بعد عملية تحقق مرفوضة.
        retry_window_days:
          type: integer
          nullable: true
          description: الأيام التي يُسمح خلالها بإعادة المحاولة.
        session_expiration_time:
          type: integer
          description: عدد الثواني قبل انتهاء صلاحية الجلسة غير المكتملة.
        questionnaire:
          type: object
          nullable: true
          additionalProperties: true
          description: الاستبيان المرفق بسير العمل، أو `null`.
        kyb_role_settings:
          type: array
          items:
            type: object
            additionalProperties: true
          description: إعدادات التحقق لكل دور للأشخاص الرئيسيين في KYB.
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        signature_availability:
          type: object
          description: >-
            أي مستويات التوقيع الإلكتروني يمكنها التوقيع الآن. تحقق منها قبل
            تعيين `signature_level`. يتم إرجاعها في مسارات عمل `kyc` و`kyb`
            والمخطط.
          properties:
            simple:
              type: boolean
              description: Simple متاح دائماً.
            aes:
              type: boolean
              description: >-
                ما إذا كان المتقدم (AES) قادراً على التوقيع الآن. بينما تكون
                قيمته `false`، يُرفض حفظ خطوة جديدة عند `signature_level: "aes"`
                مع الخطأ `aes_not_available`.
            qes:
              type: boolean
              description: >-
                ما إذا كان المؤهل (QES) قادراً على التوقيع الآن. تظل قيمته
                `false` حتى يتم ربط مزوّد مؤهل.
        is_bank_verification_enabled:
          type: boolean
          description: >-
            ما إذا كان سير عمل KYC أو KYB البسيط يشغّل التحقق المصرفي. يعمل بعد
            خطوات التواصل (والتحقق من الموقع) وقبل التحقق من قواعد البيانات وفحص
            AML وتحليل IP. التحقق المصرفي غير متاح بشكل عام بعد: يتم رفض تفعيله
            أينما لم يكن مُمكّناً.
        bank_verification_config:
          type: object
          additionalProperties: true
          description: >-
            إعدادات التحقق البنكي لسير عمل بسيط، مع نفس المفاتيح التي تقبلها
            عقدة `BANK_VERIFICATION` (على سبيل المثال `bank_countries`
            و`bank_method_order`). يتم تجاهل المفاتيح غير المعروفة. كل مفتاح
            اختياري والمفتاح الغائب يحتفظ بقيمته الافتراضية، لذا يعني `{}` تطبيق
            جميع القيم الافتراضية. راجع [إعدادات التحقق
            البنكي](/ar/management-api/workflows/feature-configs#التحقق-من-الحساب-البنكي).
          example: {}
        is_geolocation_enabled:
          type: boolean
          description: >-
            ما إذا كان سير عمل KYC البسيط يشغّل التحقق من الموقع. يعمل بعد خطوات
            التواصل وقبل التحقق المصرفي والتحقق من قواعد البيانات. لا يمكن لسير
            عمل الشركات (KYB) تشغيله.
        geolocation_config:
          type: object
          additionalProperties: true
          description: >-
            إعدادات التحقق من الموقع لسير عمل بسيط، مع نفس المفاتيح التي تأخذها
            عقدة `GEOLOCATION` (على سبيل المثال
            `is_geolocation_geofencing_enabled` و `geolocation_max_attempts`).
            يتم تجاهل المفاتيح غير المعروفة. كل مفتاح اختياري ويحتفظ المفتاح
            الغائب بقيمته الافتراضية، لذا فإن `{}` تعني جميع القيم الافتراضية.
          example: {}
      additionalProperties: true
    SimpleWorkflowFeature:
      type: object
      required:
        - feature
      properties:
        feature:
          type: string
          description: >-
            الميزة المراد تشغيلها. استخدم القيم المكتوبة بالأحرف الكبيرة الموضحة
            هنا.
          enum:
            - OCR
            - NFC
            - LIVENESS
            - FACE_MATCH
            - PROOF_OF_ADDRESS
            - QUESTIONNAIRE
            - DOCUMENT_AI
            - PHONE_VERIFICATION
            - EMAIL_VERIFICATION
            - DATABASE_VALIDATION
            - AML
            - IP_ANALYSIS
            - AGE_ESTIMATION
            - KYB_REGISTRY
            - KYB_DOCUMENTS
            - KYB_KEY_PEOPLE
            - SIGNATURE
        config:
          type: object
          description: >-
            إعدادات خاصة بالميزة. بالنسبة لـ `QUESTIONNAIRE`، قم بتضمين
            `questionnaire_uuid` مع `questionnaire_id` الذي يرجعه endpoint إنشاء
            الاستبيان. بالنسبة لـ `SIGNATURE`، يحتاج سير العمل الذي يدخل حيز
            الإنتاج إلى مستند للتوقيع: اضبط `signature_documents_source` على
            `session` أو `both` حتى تتمكن كل جلسة من تقديم مستنداتها الخاصة، أو
            أرسل `status: "draft"` وأضف المستندات قبل النشر. يُرفض
            `signature_level: "aes"` مع `aes_not_available` طالما أن
            `signature_availability.aes` هي `false` في سير العمل. بالنسبة لـ
            `OCR`، يحدد `methods` طرق التحقق من الهوية التي يجوز لكل دولة
            استخدامها (التقاط المستندات، والبحث بدون مستندات في مصدر حكومي أو
            مصدر موثوق آخر، ومحافظ الهوية الرقمية)؛ احذفه وستكون جميع الدول
            مقتصرة على التقاط المستندات فقط. بالنسبة لـ `SIGNATURE`، راجع
            [إعدادات التوقيع
            الإلكتروني](/ar/management-api/workflows/feature-configs#التوقيع-الإلكتروني):
            يقبل `signature_level` القيمة `simple` (الافتراضية، لا يلزم التحقق
            من الهوية أو البريد الإلكتروني أو الهاتف) و`aes` حاليًا، وتتم إدارة
            مستندات سير العمل وحقولها في لوحة التحكم، لذا أرسل المستندات والحقول
            لكل جلسة عبر API مع `signature_documents_source: "session"`.
          additionalProperties: true
        label:
          type: string
          description: تسمية داخلية اختيارية لعقدة سير العمل هذه.
  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.