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

# حل الحالة: واجهة برمجة التطبيقات

> احلّ الحالة كإيجابي كاذب أو تهديد حقيقي مع Didit. تعرّف على بوابة قائمة التحقق، وبوابة الملاحظات المطلوبة، ومراجعة بأربع أعين.



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



      
      

\<pre>

\`Resolve a case through the Management API.

Endpoint:
POST https://verification.didit.me/v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/resolve/

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

Request body:
\{"resolution": "FALSE_POSITIVE", "note": "Confirmed legitimate activity after reviewing documents."}
\- resolution is required: FALSE_POSITIVE (no concern found) | VALID_THREAT (concern confirmed) | INCONCLUSIVE | REQUIREMENTS_NOT_MET | REQUIREMENTS_SATISFIED.
\- note is required only when the case's blueprint has require_resolution_note enabled.
\- checker is optional and only for a blueprint with a four-eyes checker step: the user uuid of the member who must approve the resolution (the same id as assigned_to.uuid on a case, or members[].user_id on a review team). Omit it or send null to leave the resolution to the checker queue.

Behavior:
\- Blocked with 400 if the blueprint's checklist is not optional and any item is incomplete - response lists the incomplete item labels.
\- Blocked with 400 if the blueprint requires a note and none was given.
\- If the blueprint has a four_eyes_checker_blueprint configured, the resolution is staged (case.pending_resolution) and the case moves to that checker blueprint's queue instead of closing - status stays OPEN. A different user must then call approve or reject-approval.
\- Submit a four-eyes resolution as a console member. A resolution an API key submits has no recorded maker (pending_resolution.maker_email is null), so approve and reject-approval return 403 {"detail": "Case has no recorded maker for this pending resolution; approve is not permitted."} for every caller.
\- Otherwise the case closes immediately: status becomes RESOLVED, resolved_at and resolved_by_email are set.
\- On a four-eyes blueprint with checker, only that member can approve or reject the staged resolution, and the response's checker {member_uuid, name, email} names them. Any other caller, including an API key, gets 403 on approve and reject-approval. Without checker, the response's checker is null and the checker blueprint's queue decides.

Example call:
curl -X POST "https://verification.didit.me/v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/resolve/" \
-H "x-api-key: YOUR_API_KEY" -H "Content-Type: application/json" \
-d '{"resolution": "FALSE_POSITIVE", "note": "Confirmed legitimate activity."}'

Response 200: CaseDetail. Check pending_resolution to tell staged-for-approval apart from a completed resolution.

Failure modes:
\- 400 - incomplete checklist, or missing required note (a list of strings).
\- 400 - when checker is sent, in the order they fire:
\- ["Reviewer access could not be verified. Try again."] or ["Choose an active reviewer with case access to this application."] - the member could not be checked, or is not an active reviewer with case access.
\- {"checker": ["The officer who submitted the resolution cannot be its checker."]} - you named the officer who is resolving.
\- {"checker": ["This review policy has no checker step, so the case resolves directly."]} - the case's blueprint has no four-eyes checker step.
\- 401/403 - auth/permission errors. A key with restricted access gets 403 {"detail": "This API key has no access to this endpoint."} (cases need a full-access key). A console member token needs write:cases.
\- 404 - case not found.

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

\</pre>



      
      

الصق في

احسم حالة. إذا كان قالبها مقترنًا بقالب مدقِّق لـ[مراجعة بأربع أعين](https://docs.didit.me/ar/console/case-management/four-eyes.md)، فسيؤدي هذا الطلب إلى تجهيز الحل بدلًا من إغلاق الحالة. تحقق من الحقل `pending_resolution` في الاستجابة لتمييز النتيجتين.## تسمية المدقِّقفي قالب يحتوي على خطوة مدقِّق بأربع أعين، أرسل `checker` مع معرّف UUID للمستخدم الذي يجب أن يعتمد الحل. لا يمكن بعد ذلك أن يعتمد الحل أو يرفضه إلا ذلك العضو؛ أما غيره، بما في ذلك مفتاح API، فيتلقى `403`.
الحقل `checker` في الحالة يسمّي هذا العضو حتى يُعتمد الحل أو يُرفض، أو يُعاد إلى مراجعة جديدة لأن الأدلة تغيّرت.
من دون `checker`، ينتظر الحل في قائمة انتظار قالب المدقِّق.
يجب أن يكون للعضو وصول إلى الحالات في هذا التطبيق، ولا يجوز أن يكون هو المسؤول الذي يرسل الحل.
في قالب لا يحتوي على خطوة مدقِّق، يعيد `checker` الرمز `400`.## الحلول بأربع أعين تحتاج عضوًا في وحدة التحكمأرسل الحل الذي يذهب إلى مراجعة بأربع أعين بصفتك عضوًا في وحدة التحكم، لا بمفتاح API.
الحل الذي يرسله مفتاح API لا يملك منشئًا مسجلًا، لذلك يعيد الاعتماد ورفض الاعتماد الرمز `403` لكل طالب، بما في ذلك المدقِّق المسمّى.## الوصولنقاط endpoint الخاصة بالحالات تحتاج إلى [مفتاح API](https://docs.didit.me/ar/console/api-keys.md) بصلاحية وصول كاملة.
المفتاح ذو الصلاحية المقيدة يتلقى `403`.## ذو صلة- [مراجعة بأربع أعين (وحدة التحكم)](https://docs.didit.me/ar/console/case-management/four-eyes.md)
- [الحصول على الحالة](https://docs.didit.me/ar/management-api/cases/get.md)
- [قائمة التحقق (وحدة التحكم)](https://docs.didit.me/ar/console/case-management/checklist.md)
- [تحديث الحالة بالجملة](https://docs.didit.me/ar/management-api/cases/bulk-status.md)


## OpenAPI

````yaml ar/openapi-25.json POST /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/resolve/
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/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/resolve/:
    post:
      tags:
        - Cases
      summary: حل الحالة
      description: >-
        حل الحالة بإحدى النتائج الخمس: FALSE_POSITIVE (لم تُرصد أي مشكلة)، أو
        VALID_THREAT (تم تأكيد وجود مشكلة)، أو INCONCLUSIVE، أو
        REQUIREMENTS_NOT_MET، أو REQUIREMENTS_SATISFIED. يتم الحظر برمز 400 إذا
        كانت قائمة التحقق الخاصة بالمخطط غير اختيارية ولا تزال بعض العناصر غير
        مكتملة، أو إذا كان المخطط يتطلب ملاحظة حل ولم يتم تقديم أي ملاحظة. عندما
        يحتوي المخطط الخاص بالحالة على خطوة فاحص التحقق المزدوج
        (four_eyes_checker_blueprint)، يتم تجهيز القرار مرحلياً
        (case.pending_resolution) وتنتقل الحالة إلى مخطط الفاحص بدلاً من حلها
        فوراً؛ ويجب على مسؤول مختلف استدعاء approve أو reject-approval. أرسل
        قرار التحقق المزدوج بصفتك عضواً في لوحة التحكم: فالقرار الذي يرسله مفتاح
        API ليس له مُنشئ مسجل، لذا تُرجع approve وreject-approval الرمز 403 لكل
        مُستدعٍ. في مخطط التحقق المزدوج، يمكنك تحديد العضو الذي يجب أن يوافق
        باستخدام `checker`: وعندئذٍ يمكن لهذا العضو فقط الموافقة على القرار أو
        رفضه، ويُحدد `checker` في الاستجابة اسمه. بدون `checker`، ينتظر القرار
        في قائمة انتظار مخطط الفاحص. يؤدي إرسال `checker` لمخطط بدون خطوة فاحص
        إلى إرجاع 400.
      operationId: resolve_case
      parameters:
        - name: organization_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: UUID الخاص بالمؤسسة.
        - name: application_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: معرّف UUID للتطبيق.
        - name: case_uuid
          in: path
          required: true
          schema:
            type: string
            format: uuid
            example: c1a5e000-0000-4000-8000-000000000001
          description: معرّف الحالة UUID.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - resolution
              properties:
                resolution:
                  type: string
                  enum:
                    - FALSE_POSITIVE
                    - VALID_THREAT
                    - INCONCLUSIVE
                    - REQUIREMENTS_NOT_MET
                    - REQUIREMENTS_SATISFIED
                note:
                  type: string
                  nullable: true
                  description: مطلوب عندما يحدد المخطط require_resolution_note.
                checker:
                  type: string
                  format: uuid
                  nullable: true
                  description: >-
                    لمخططات المراجعة الثنائية فقط. معرّف uuid للمستخدم العضو
                    الذي يجب أن يوافق على هذا الحل (المعرّف نفسه لـ
                    `assigned_to.uuid` في الحالة، أو `members[].user_id` في فريق
                    المراجعة). يجب أن يمتلك العضو حق الوصول إلى الحالات في هذا
                    التطبيق ولا يمكن أن يكون المسؤول الذي يقدم الحل. احذفه أو
                    أرسل null لترك الحل لقائمة انتظار المدقق.
            examples:
              Resolve:
                value:
                  resolution: FALSE_POSITIVE
                  note: Confirmed legitimate activity after reviewing documents.
              Four-eyes blueprint with a named checker:
                value:
                  resolution: VALID_THREAT
                  note: Document tampering confirmed.
                  checker: 3fa85f64-5717-4562-b3fc-2c963f66afa6
      responses:
        '200':
          description: محلولة، أو مُجهزة لموافقة التحقق المزدوج.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CaseDetail'
        '400':
          description: >-
            تم رفض الحل. تظهر الأخطاء غير المتعلقة بالحقول كقائمة من النصوص:
            قائمة مرجعية غير مكتملة، أو ملاحظة مطلوبة مفقودة، أو `checker` تعذر
            التحقق منه أو ليس مراجعاً نشطاً لديه حق الوصول إلى الحالات في هذا
            التطبيق. تظهر أخطاء `checker` مفهرسة بالحقل: العضو المحدد هو المسؤول
            الذي يقدم الحل، أو أن مخطط الحالة لا يحتوي على خطوة مدقق.
          content:
            application/json:
              schema:
                oneOf:
                  - type: array
                    items:
                      type: string
                  - type: object
                    additionalProperties:
                      type: array
                      items:
                        type: string
              examples:
                Incomplete checklist:
                  value:
                    - >-
                      Case has incomplete checklist items: Verify source of
                      funds
                Resolution note required:
                  value:
                    - A resolution note is required to resolve this case.
                Reviewer access could not be verified:
                  value:
                    - Reviewer access could not be verified. Try again.
                Checker is not an active reviewer:
                  value:
                    - >-
                      Choose an active reviewer with case access to this
                      application.
                Checker is the submitting officer:
                  value:
                    checker:
                      - >-
                        The officer who submitted the resolution cannot be its
                        checker.
                Policy has no checker step:
                  value:
                    checker:
                      - >-
                        This review policy has no checker step, so the case
                        resolves directly.
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: >-
            curl -X POST
            'https://verification.didit.me/v3/organization/11111111-2222-3333-4444-555555555555/application/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee/cases/c1a5e000-0000-4000-8000-000000000001/resolve/'
            \
              -H 'x-api-key: YOUR_API_KEY' \
              -H 'Content-Type: application/json' \
              -d '{"resolution": "FALSE_POSITIVE", "note": "Confirmed legitimate activity after reviewing documents."}'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
            # and DIDIT_APPLICATION_ID.
            client = Didit()

            result = client.cases.resolve(
                "c1a5e000-0000-4000-8000-000000000001",
                resolution="FALSE_POSITIVE",
                note="Confirmed legitimate activity after reviewing documents.",
            )
            print(result)
        - lang: javascript
          label: Node.js
          source: >-
            import Didit from "@didit-protocol/sdk-node";


            // Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID

            // and DIDIT_APPLICATION_ID.

            const didit = new Didit();


            const result = await
            didit.cases.resolve("c1a5e000-0000-4000-8000-000000000001", {
              resolution: "FALSE_POSITIVE",
              note: "Confirmed legitimate activity after reviewing documents.",
            });

            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID\n// and DIDIT_APPLICATION_ID.\nclient := didit.NewClient()\n\nresult, err := client.Cases.Resolve(ctx, \"c1a5e000-0000-4000-8000-000000000001\", didit.CasesResolveParams{\n\tResolution: \"FALSE_POSITIVE\",\n\tNote:       didit.String(\"Confirmed legitimate activity after reviewing documents.\"),\n})\nif err != nil {\n\tlog.Fatal(err)\n}\nfmt.Printf(\"%+v\\n\", result)"
        - lang: java
          label: Java
          source: >-
            import me.didit.Didit;

            import me.didit.types.CasesResolveParams;


            // Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID

            // and DIDIT_APPLICATION_ID.

            Didit client = new Didit();


            var result =
            client.cases().resolve("c1a5e000-0000-4000-8000-000000000001",
            CasesResolveParams.builder()
                    .resolution(CasesResolveParams.Resolution.of("FALSE_POSITIVE"))
                    .note("Confirmed legitimate activity after reviewing documents.")
                    .build());
            System.out.println(result);
        - lang: php
          label: PHP
          source: >-
            <?php


            require 'vendor/autoload.php';


            use Didit\DiditClient;


            // Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID

            // and DIDIT_APPLICATION_ID.

            $didit = new DiditClient();


            $result =
            $didit->cases->resolve('c1a5e000-0000-4000-8000-000000000001', [
                'resolution' => 'FALSE_POSITIVE',
                'note' => 'Confirmed legitimate activity after reviewing documents.',
            ]);

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

            # Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
            # and DIDIT_APPLICATION_ID.
            didit = Didit::Client.new

            result = didit.cases.resolve(
              "c1a5e000-0000-4000-8000-000000000001",
              resolution: "FALSE_POSITIVE",
              note: "Confirmed legitimate activity after reviewing documents."
            )
            puts result.to_h
        - lang: csharp
          label: .NET
          source: >-
            using System;

            using System.Text.Json;

            using Didit;


            // Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID

            // and DIDIT_APPLICATION_ID.

            using var client = new DiditClient();


            var result = await
            client.Cases.ResolveAsync("c1a5e000-0000-4000-8000-000000000001",
            new CasesResolveParams

            {
                Resolution = "FALSE_POSITIVE",
                Note = "Confirmed legitimate activity after reviewing documents.",
            });

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    CaseDetail:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        case_number:
          type: string
          nullable: true
        title:
          type: string
        status:
          type: string
          enum:
            - OPEN
            - AWAITING_USER
            - RESOLVED
        resolution:
          type: string
          enum:
            - FALSE_POSITIVE
            - VALID_THREAT
            - INCONCLUSIVE
            - REQUIREMENTS_NOT_MET
            - REQUIREMENTS_SATISFIED
          nullable: true
        resolution_notes:
          type: string
          nullable: true
        priority:
          type: string
          enum:
            - LOW
            - MEDIUM
            - HIGH
        source:
          type: string
          enum:
            - MANUAL
            - AML_SCREENING
            - TRANSACTION_RULE
            - WORKFLOW_BUILDER
        tags:
          type: array
          items:
            type: string
        subject:
          $ref: '#/components/schemas/CaseSubject'
        assigned_to:
          $ref: '#/components/schemas/CaseAssignee'
        assigned_at:
          type: string
          format: date-time
          nullable: true
        team:
          $ref: '#/components/schemas/CaseTeamSummary'
        due_at:
          type: string
          format: date-time
          nullable: true
        resolved_at:
          type: string
          format: date-time
          nullable: true
        resolved_by_email:
          type: string
          nullable: true
        pending_resolution:
          type: object
          nullable: true
          description: >-
            يُعيَّن فقط أثناء تجهيز قرار الموافقة الثنائية (4-eyes) على مخطط
            المدقق، في انتظار الموافقة أو رفض الموافقة.
          properties:
            resolution:
              type: string
              enum:
                - FALSE_POSITIVE
                - VALID_THREAT
                - INCONCLUSIVE
                - REQUIREMENTS_NOT_MET
                - REQUIREMENTS_SATISFIED
            resolution_notes:
              type: string
              nullable: true
            maker_email:
              type: string
              format: email
              nullable: true
              description: >-
                البريد الإلكتروني للمسؤول الذي أرسل القرار. يكون Null عندما
                يرسله مفتاح API: لا يوجد مُصدِر مسجل لهذا القرار، لذا يُرجع كل
                من approve وreject-approval الرمز 403 لأي مستدعٍ.
            maker_name:
              type: string
              nullable: true
            maker_user_id:
              type: string
              format: uuid
              nullable: true
              description: >-
                معرّف uuid لمستخدم العضو الخاص بالمسؤول الذي أرسل القرار. يكون
                null عندما يتم إرساله عبر مفتاح API. لا يمكن تعيين هذا العضو كـ
                `checker`.
            maker_blueprint_id:
              type: string
              format: uuid
            staged_at:
              type: string
              format: date-time
        checker:
          $ref: '#/components/schemas/CaseChecker'
        metadata:
          type: object
        blueprint:
          $ref: '#/components/schemas/CaseBlueprintDetail'
        notes:
          type: array
          items:
            $ref: '#/components/schemas/CaseNote'
          description: أحدث 50 ملاحظة.
        events:
          type: array
          items:
            $ref: '#/components/schemas/CaseEvent'
          description: أحدث 100 حدث.
        links:
          type: array
          items:
            $ref: '#/components/schemas/CaseLink'
        links_count:
          type: integer
        notes_count:
          type: integer
        checklist_items:
          type: array
          items:
            $ref: '#/components/schemas/CaseChecklistItem'
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
    CaseSubject:
      type: object
      nullable: true
      description: المستخدم الوحيد أو الشركة الوحيدة التي ترتبط بها الحالة.
      properties:
        type:
          type: string
          enum:
            - user
            - business
        uuid:
          type: string
          format: uuid
        name:
          type: string
        external_id:
          type: string
          nullable: true
          description: vendor_data الخاصة بالشخص المعني.
        country:
          type: string
          nullable: true
          description: >-
            رمز الدولة المكون من ثلاثة أحرف للجهة المعنية (ISO 3166-1 alpha-3)،
            أو null عندما لا يكون معروفاً. بالنسبة للشركة، دولة التأسيس.
            وبالنسبة للشخص، دولة الإصدار لمستند الهوية من عمليات التحقق الخاصة
            به؛ والشخص الذي يملك مستندات من عدة دول يُعرض له أحدها، ويمكن أن
            تظهر رموز مستندات ICAO مثل `XXA`.
          example: ESP
        portrait:
          type: string
          format: uri
          nullable: true
          description: >-
            رابط URL موقّع قصير الأجل للصورة الشخصية للشخص. دائماً null لشركة،
            وnull لشخص بدون صورة شخصية. تنتهي صلاحية رابط URL، لذا نزّل الصورة
            عند قراءة الحالة بدلاً من تخزين رابط URL.
    CaseAssignee:
      type: object
      nullable: true
      properties:
        uuid:
          type: string
          format: uuid
        full_name:
          type: string
        email:
          type: string
          format: email
    CaseTeamSummary:
      type: object
      nullable: true
      description: >-
        فريق المراجعة المالك للحالة، أو null في حال عدم وجود فريق يملكها. يقوم
        التوجيه بتعيينه عندما تضع قاعدة توجيه الحالة لدى أحد فِرَقها. يمكنك
        تغييره أو مسحه باستخدام `PATCH .../cases/{case_uuid}/` (`team`).
      properties:
        uuid:
          type: string
          format: uuid
        name:
          type: string
    CaseChecker:
      type: object
      nullable: true
      description: >-
        العضو المعيّن للموافقة على الحل المعلق أو رفضه. يتم تعيينه فقط أثناء
        انتظار حل بمبدأ الرقابة الرباعية لمُدقّق معيّن. ويكون Null عندما لا يكون
        هناك شيء معلق، وأثناء انتظار الحل المعلق في قائمة انتظار المُدقّق،
        وبمجرد الموافقة على الحل أو رفضه أو إعادته لمراجعة جديدة بسبب تغيّر
        الأدلة.
      properties:
        member_uuid:
          type: string
          format: uuid
          description: >-
            معرّف uuid لمستخدم العضو: القيمة التي تمررها كـ `checker` عند حل
            الحالة.
        name:
          type: string
          nullable: true
          description: الاسم الكامل للعضو، أو null عندما يكون غير معروف.
        email:
          type: string
          format: email
    CaseBlueprintDetail:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        name:
          type: string
          maxLength: 24
        description:
          type: string
          nullable: true
        assignment_method:
          type: string
          enum:
            - MANUAL
            - AUTOMATIC
        assignee_pool:
          type: array
          items:
            type: string
            format: uuid
        max_active_cases:
          type: integer
          nullable: true
        escalation_enabled:
          type: boolean
        transfer_enabled:
          type: boolean
        require_resolution_note:
          type: boolean
        is_active:
          type: boolean
        preset_key:
          type: string
          nullable: true
        created_at:
          type: string
          format: date-time
        escalation_blueprint:
          type: string
          format: uuid
          nullable: true
        escalation_blueprint_name:
          type: string
          nullable: true
        four_eyes_checker_blueprint:
          type: string
          format: uuid
          nullable: true
        four_eyes_checker_blueprint_name:
          type: string
          nullable: true
        content_config:
          type: object
          description: >-
            الأقسام الستة القابلة للتبديل التي تحدد علامات التبويب والحقول التي
            تظهر في صفحة الحالة. يتم رفض الأقسام أو المفاتيح غير المعروفة.
          properties:
            checklist:
              type: object
              properties:
                enabled:
                  type: boolean
                optional:
                  type: boolean
                  description: >-
                    عند التعيين على true، يمكن حل الحالة مع وجود عناصر غير
                    مكتملة في قائمة التحقق.
                items:
                  type: array
                  items:
                    type: object
                    properties:
                      label:
                        type: string
                        maxLength: 255
                      order:
                        type: integer
            aml_control:
              type: object
              properties:
                enabled:
                  type: boolean
                financial:
                  type: boolean
                identity:
                  type: boolean
            identity:
              type: object
              properties:
                enabled:
                  type: boolean
                personal_information:
                  type: boolean
                applicant_tags:
                  type: boolean
                contact_information:
                  type: boolean
                risk_overview:
                  type: boolean
                poi_documents:
                  type: boolean
                poa_documents:
                  type: boolean
            verifications:
              type: object
              properties:
                enabled:
                  type: boolean
                summary:
                  type: boolean
            reporting:
              type: object
              properties:
                enabled:
                  type: boolean
                fiu_reports:
                  type: boolean
            financial:
              type: object
              properties:
                enabled:
                  type: boolean
                payment_methods:
                  type: boolean
                transactions:
                  type: boolean
        creation_sources:
          type: array
          description: الموصلات التي توجّه حالياً حالات جديدة إلى هذا المخطط.
          items:
            type: object
            properties:
              kind:
                type: string
                enum:
                  - aml
                  - rule
                  - workflow
              id:
                type: string
              name:
                type: string
        receives_escalation_from:
          type: array
          description: المخططات الأخرى التي يشير هدف التصعيد الخاص بها إلى هذا المخطط.
          items:
            type: object
            properties:
              id:
                type: string
              name:
                type: string
        updated_at:
          type: string
          format: date-time
        version:
          type: integer
          readOnly: true
        default_deadline_hours:
          type: integer
          nullable: true
          minimum: 1
          maximum: 8760
    CaseNote:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        comment:
          type: string
        actor_email:
          type: string
          format: email
          nullable: true
        actor_name:
          type: string
          nullable: true
        mentioned_emails:
          type: array
          items:
            type: string
            format: email
        is_internal:
          type: boolean
        attachments:
          type: array
          items:
            type: object
            properties:
              s3_key:
                type: string
              filename:
                type: string
              file_size:
                type: integer
              url:
                type: string
                format: uri
        tags:
          type: array
          items:
            type: string
        created_at:
          type: string
          format: date-time
    CaseEvent:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        event_type:
          type: string
          enum:
            - CREATED
            - STATUS_CHANGED
            - ASSIGNED
            - UNASSIGNED
            - RESOLVED
            - REOPENED
            - LINK_ADDED
            - LINK_REMOVED
            - NOTE_ADDED
            - NOTE_PINNED
            - NOTE_UNPINNED
            - PRIORITY_CHANGED
            - DUE_DATE_CHANGED
            - TAG_ADDED
            - TAG_REMOVED
            - ESCALATED
            - TRANSFERRED
            - CHECKLIST_COMPLETED
            - REPORT_CREATED
            - REPORT_FINALIZED
            - SUBMITTED_FOR_APPROVAL
            - APPROVAL_GRANTED
            - APPROVAL_REJECTED
            - ENTITY_ACTION
            - APPROVAL_INVALIDATED
            - CUSTOMER_REQUEST
            - STAGE_CHANGED
            - TEAM_CHANGED
            - CHECKER_ASSIGNED
            - CHECKER_UNASSIGNED
        actor_email:
          type: string
          format: email
          nullable: true
        actor_name:
          type: string
          nullable: true
        previous_status:
          type: string
          enum:
            - OPEN
            - AWAITING_USER
            - RESOLVED
          nullable: true
        new_status:
          type: string
          enum:
            - OPEN
            - AWAITING_USER
            - RESOLVED
          nullable: true
        metadata:
          type: object
        created_at:
          type: string
          format: date-time
    CaseLink:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        linked_entity_type:
          type: string
          enum:
            - session
            - business_session
            - transaction
          nullable: true
        linked_entity_uuid:
          type: string
          format: uuid
          nullable: true
        linked_entity_summary:
          type: object
          nullable: true
          description: >-
            session_id/session_number/status لروابط session وbusiness_session؛
            وuuid/txn_id/status لروابط transaction.
        created_at:
          type: string
          format: date-time
    CaseChecklistItem:
      type: object
      properties:
        uuid:
          type: string
          format: uuid
        label:
          type: string
          maxLength: 255
        is_completed:
          type: boolean
        completed_by:
          type: string
          format: email
          nullable: true
        completed_at:
          type: string
          format: date-time
          nullable: true
        order:
          type: integer
  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.