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

# تحديث إعدادات قاعدة السفر عبر واجهة برمجة التطبيقات

> فعّل Travel Rule واضبط ملف VASP الخاص بك وسياسة التفاوض وطرق الإثبات وإلغاء الاشتراك في الشبكات عبر تحديث جزئي باستخدام Didit.



موجه واجهة برمجة التطبيقات لتحديث إعدادات Travel Rule
        نسخ الموجّه إلى الحافظة



      
      

\<pre>

\`Enable Travel Rule and configure the application's VASP profile and negotiation policy.

Endpoint:
PUT https://verification.didit.me/v3/travel-rule/settings/

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

Behavior:
\- PUT is a PARTIAL update - send only the fields you want to change.
\- Setting is_enabled: true requires a non-blank legal_name (already stored, or in the same request) - otherwise 400.

Example call:
curl -X PUT "https://verification.didit.me/v3/travel-rule/settings/" \
-H "x-api-key: YOUR_API_KEY" -H "Content-Type: application/json" \
-d '{
"is_enabled": true,
"legal_name": "Origin CASP SL",
"jurisdiction": "EU",
"name_matching_strictness": "DEFAULT",
"confirmation_timeout_hours": 48,
"timeout_outcome": "HOLD",
"is_discoverable": true
}'

Writable fields:
\- is_enabled, legal_name, lei, jurisdiction (up to 8 chars, default "EU"), compliance_email, is_discoverable.
\- Changing compliance_email makes it unconfirmed until someone opens the link POST /v3/travel-rule/settings/compliance-email/confirmation/ emails to it; the Didit network lists the profile only with a confirmed address.
\- name_matching_strictness: NONE | STRICT | CONTAINS | DEFAULT | FUZZY.
\- ownership_validation_mode: FULL | SIMPLIFIED | AUTOMATED (default AUTOMATED), and simplified_validation_threshold (decimal, default 0): below it SIMPLIFIED accepts a self-declaration.
\- data_sharing_fields: {"individual": [...], "company": [...]} - the fields sent about your users (name, wallet_address, address, national_id, customer_identification, date_of_birth, place_of_birth; companies use the first five). name and wallet_address are always sent. Merged per entity type.
\- matching_rules: {"individual": {name, date_of_birth, address, account}, "company": {name, address, account}}, each NONE | STRICT | CONTAINS | DEFAULT | FUZZY. A field left out keeps its default.
\- confirmation_timeout_hours (min 1, default 48), timeout_outcome (HOLD | REJECT | PROCEED), inbound_auto_accept (default true).
\- threshold_amount - decimal string, default "0.00" (every transfer in scope, matching the EU TFR).
Didit compares it with the amount converted to the application's default currency (or the amount_in_default_currency you send), and a transfer below it becomes NOT_APPLICABLE with nothing exchanged.
A transfer whose amount cannot be converted stays in scope.
\- allow_self_declaration, allow_screenshot_proof - which fallback proof methods the wallet-ownership widget offers (both default true).
\- auto_wallet_verification - auto-mint a wallet-ownership widget session when a transfer needs end-user proof (default true).
\- vasp_attribution_enabled - resolve unroutable destination wallets through blockchain analytics (default true).
\- disabled_networks - array of GTR | TRUST | VERIFYVASP | SYGNA to opt out of Didit's platform memberships.
It only affects platform membership, which Didit does not offer on any network yet (Didit is onboarding as a provider), so today it has no routing effect.
Networks you connected your own membership for (console Marketplace) are never affected.
\- counterparty_screening_enabled - opt in to sanctions and adverse-media screening of counterparty VASPs (default false).
Each screening is billed at the Company AML Screening price; with it on, Didit screens the counterparty an outbound exchange reaches when the exchange starts, reusing a screening younger than 30 days.
\- sunrise_policy - HOLD | REJECT | PROCEED, or "" (default) to follow timeout_outcome: what an expired transfer does when the counterparty is a directory entry in a jurisdiction listed in sunrise_jurisdictions.
\- non_responsive_policy - HOLD | REJECT | PROCEED, or "" (default) to follow timeout_outcome: what an expired transfer does when the counterparty is a directory entry whose responsiveness is UNRESPONSIVE.
sunrise_policy applies first when both fit.

Read-only fields (returned, never written): networks, travel_address, didit_network, sunrise_jurisdictions.

Network rails today:
\- A network rail (GTR, TRUST, VerifyVASP, Sygna) routes only through your own membership connected in Marketplace.
\- networks.<name>.mode reports own, off or unavailable; production does not report didit yet.
\- With your own membership, Didit reads the counterparty's answer over GTR, VerifyVASP and Sygna from the network's response or by polling it every 5 minutes. TRUST only sends: a transfer sent over it stays AWAITING_COUNTERPARTY until it expires (then timeout_outcome applies).
If the message cannot be delivered, the transfer moves to COUNTERPARTY_VASP_NOT_REACHABLE instead.

Failure modes:
\- 400 - is_enabled without a legal_name, invalid enum value (including a disabled_networks entry, or a sunrise_policy or non_responsive_policy other than HOLD, REJECT, PROCEED or empty), invalid compliance_email, negative threshold_amount, confirmation_timeout_hours below 1, an unknown field in matching_rules, or a data_sharing_fields choice that cannot meet your jurisdiction's originator obligations (EU TFR or FATF Recommendation 16).
\- 403 - missing x-api-key (a wrong, revoked or expired key gets 401).

Full guide: /transaction-monitoring/travel-rule#setup.`

\</pre>



      
      

الصق في



## OpenAPI

````yaml ar/openapi-25.json PUT /v3/travel-rule/settings/
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/travel-rule/settings/:
    put:
      tags:
        - Travel Rule
      summary: تحديث إعدادات Travel Rule
      description: >-
        تحديث أو إنشاء إعدادات Travel Rule وملف تعريف VASP للتطبيق. تحديث جزئي —
        أرسل فقط الحقول التي تريد تغييرها. يتطلب تعيين `is_enabled: true` وجود
        `legal_name` غير فارغ (مخزن مسبقاً أو مُضمّن في الطلب نفسه)، وإلا سيتم
        إرجاع 400.
      operationId: updateTravelRuleSettings
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TravelRuleSettingsUpdate'
            example:
              is_enabled: true
              legal_name: Origin CASP SL
              jurisdiction: EU
              name_matching_strictness: DEFAULT
              confirmation_timeout_hours: 48
              timeout_outcome: HOLD
              is_discoverable: true
      responses:
        '200':
          description: الإعدادات والملف التعريفي بعد التحديث، بنفس بنية GET.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TravelRuleSettingsDetail'
        '400':
          description: >-
            خطأ في التحقق، على سبيل المثال التفعيل بدون legal_name، أو قيمة
            sunrise_policy أو non_responsive_policy بخلاف HOLD أو REJECT أو
            PROCEED أو فارغة، أو حقل غير معروف في `matching_rules`، أو اختيار لـ
            `data_sharing_fields` لا يمكنه تلبية التزامات المُرسِل الخاصة بنظام
            ولايتك القضائية (تتم فهرسة الأخطاء حسب نوع الكيان تحت
            `data_sharing_fields`).
          content:
            application/json:
              schema:
                type: object
              example:
                legal_name:
                  - legal_name is required to enable travel rule.
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: |-
            curl -X PUT https://verification.didit.me/v3/travel-rule/settings/ \
              -H 'x-api-key: YOUR_API_KEY' -H 'Content-Type: application/json' \
              -d '{"is_enabled": true, "legal_name": "Origin CASP SL", "jurisdiction": "EU"}'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.travel_rule.update_settings(
                is_enabled=True,
                legal_name="Origin CASP SL",
                jurisdiction="EU",
                name_matching_strictness="DEFAULT",
                confirmation_timeout_hours=48,
                timeout_outcome="HOLD",
                is_discoverable=True,
            )
            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.travelRule.updateSettings({
              is_enabled: true,
              legal_name: "Origin CASP SL",
              jurisdiction: "EU",
              name_matching_strictness: "DEFAULT",
              confirmation_timeout_hours: 48,
              timeout_outcome: "HOLD",
              is_discoverable: true,
            });
            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.TravelRule.UpdateSettings(ctx, didit.TravelRuleSettingsUpdate{\n\tIsEnabled:                didit.Bool(true),\n\tLegalName:                didit.String(\"Origin CASP SL\"),\n\tJurisdiction:             didit.String(\"EU\"),\n\tNameMatchingStrictness:   didit.Some(didit.TravelRuleSettingsUpdateNameMatchingStrictness(\"DEFAULT\")),\n\tConfirmationTimeoutHours: didit.Int(48),\n\tTimeoutOutcome:           didit.Some(didit.TravelRuleSettingsUpdateTimeoutOutcome(\"HOLD\")),\n\tIsDiscoverable:           didit.Bool(true),\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.TravelRuleSettingsUpdate;


            // Reads DIDIT_API_KEY.

            Didit client = new Didit();


            var result =
            client.travelRule().updateSettings(TravelRuleSettingsUpdate.builder()
                    .isEnabled(true)
                    .legalName("Origin CASP SL")
                    .jurisdiction("EU")
                    .nameMatchingStrictness(TravelRuleSettingsUpdate.NameMatchingStrictness.of("DEFAULT"))
                    .confirmationTimeoutHours(48L)
                    .timeoutOutcome(TravelRuleSettingsUpdate.TimeoutOutcome.of("HOLD"))
                    .isDiscoverable(true)
                    .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->travelRule->updateSettings([
                'is_enabled' => true,
                'legal_name' => 'Origin CASP SL',
                'jurisdiction' => 'EU',
                'name_matching_strictness' => 'DEFAULT',
                'confirmation_timeout_hours' => 48,
                'timeout_outcome' => 'HOLD',
                'is_discoverable' => true,
            ]);
            print_r($result->toArray());
        - lang: ruby
          label: Ruby
          source: |-
            require "didit"

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

            result = didit.travel_rule.update_settings(
              is_enabled: true,
              legal_name: "Origin CASP SL",
              jurisdiction: "EU",
              name_matching_strictness: "DEFAULT",
              confirmation_timeout_hours: 48,
              timeout_outcome: "HOLD",
              is_discoverable: true
            )
            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.TravelRule.UpdateSettingsAsync(new
            TravelRuleSettingsUpdate

            {
                IsEnabled = true,
                LegalName = "Origin CASP SL",
                Jurisdiction = "EU",
                NameMatchingStrictness = new TravelRuleSettingsUpdateNameMatchingStrictness("DEFAULT"),
                ConfirmationTimeoutHours = 48,
                TimeoutOutcome = new TravelRuleSettingsUpdateTimeoutOutcome("HOLD"),
                IsDiscoverable = true,
            });

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    TravelRuleSettingsUpdate:
      type: object
      properties:
        is_enabled:
          type: boolean
        legal_name:
          type: string
          maxLength: 255
        lei:
          type: string
          maxLength: 20
        jurisdiction:
          type: string
          maxLength: 8
        name_matching_strictness:
          type: string
          enum:
            - NONE
            - STRICT
            - CONTAINS
            - DEFAULT
            - FUZZY
          description: يقبل `CONTAINS` اسماً تظهر جميع كلماته في الاسم الآخر.
        confirmation_timeout_hours:
          type: integer
          minimum: 1
        timeout_outcome:
          type: string
          enum:
            - HOLD
            - REJECT
            - PROCEED
        compliance_email:
          type: string
          format: email
          description: >-
            البريد الإلكتروني لجهة اتصال الامتثال لملف VASP التعريفي الخاص بك.
            تدرج شبكة Didit ملفك التعريفي فقط بمجرد تأكيد هذا العنوان عبر رابط
            مرسل بالبريد الإلكتروني (POST
            /v3/travel-rule/settings/compliance-email/confirmation/)؛ ويتطلب
            تغييره تأكيداً جديداً.
        is_discoverable:
          type: boolean
          description: >-
            ما إذا كان يمكن إدراج ملف تعريف VASP الخاص بك في شبكة Didit: يتم
            العثور عليه في GET /v3/travel-rule/vasps/ بواسطة عملاء Didit الآخرين
            والوصول إليه عبر مسار INTERNAL. يتطلب الإدراج أيضاً تطبيقاً قيد
            الإنتاج، وتفعيل Travel Rule، واسماً قانونياً، وبريداً إلكترونياً
            مؤكداً للامتثال؛ يوضح didit_network العناصر المفقودة. القيمة
            الافتراضية هي true.
        threshold_amount:
          type: string
          description: >-
            سلسلة نصية عشرية، صفر أو أكثر، بالعملة الافتراضية لتطبيقك. الحد
            الأدنى لمبلغ التحويل الذي يُشغّل التبادل المُدار.
        ownership_validation_mode:
          type: string
          enum:
            - FULL
            - SIMPLIFIED
            - AUTOMATED
          description: انظر حقل الاستجابة الذي يحمل الاسم نفسه.
        simplified_validation_threshold:
          type: string
          description: سلسلة نصية عشرية، 0 أو أكثر.
        data_sharing_fields:
          allOf:
            - $ref: '#/components/schemas/TravelRuleDataSharingFields'
          description: >-
            يتم الدمج حسب نوع الكيان: أي نوع كيان تستبعده يحتفظ باختياره الحالي.
            الاختيار الذي لا يمكنه تلبية التزامات المُرسِل لنظام `jurisdiction`
            الخاص بك (EU TFR أو توصية FATF رقم 16)، بما في ذلك القائمة الفارغة،
            يتم رفضه بالرمز `400`.
        matching_rules:
          allOf:
            - $ref: '#/components/schemas/TravelRuleMatchingRules'
          description: >-
            يتم الدمج حسب نوع الكيان، وحسب الحقل داخله. الحقل الذي لا يقارنه نوع
            الكيان هذا (على سبيل المثال `date_of_birth` لـ `company`) يتم رفضه
            بالرمز `400`.
        inbound_auto_accept:
          type: boolean
        allow_self_declaration:
          type: boolean
        allow_screenshot_proof:
          type: boolean
          description: >-
            عند التعيين على true، توفر أداة ملكية المحفظة خيار تحميل لقطة شاشة
            كطريقة لإثبات الملكية. القيمة الافتراضية هي true.
        auto_wallet_verification:
          type: boolean
        vasp_attribution_enabled:
          type: boolean
        counterparty_screening_enabled:
          type: boolean
          description: >-
            فحص اختياري للعقوبات والأخبار السلبية لجهات VASP التابعة للطرف
            المقابل، وتتم الفوترة لكل فحص بسعر فحص AML للشركات. عند تفعيله، تفحص
            Didit الطرف المقابل الذي يبلغه تبادل صادر (مع إعادة استخدام فحص
            أُجري منذ أقل من 30 يوماً) ويمكنك فحص إحداها عبر POST
            /v3/travel-rule/vasps/{vasp_id}/screening/. القيمة الافتراضية false:
            لا يتم فحص أي شيء ولا تتم الفوترة.
        sunrise_policy:
          type: string
          enum:
            - ''
            - HOLD
            - REJECT
            - PROCEED
          description: >-
            HOLD أو REJECT أو PROCEED، أو فارغ لاتباع timeout_outcome. راجع حقل
            الاستجابة الذي يحمل نفس الاسم.
        non_responsive_policy:
          type: string
          enum:
            - ''
            - HOLD
            - REJECT
            - PROCEED
          description: >-
            HOLD أو REJECT أو PROCEED، أو فارغ لاتباع timeout_outcome. راجع حقل
            الاستجابة الذي يحمل نفس الاسم.
        disabled_networks:
          type: array
          items:
            type: string
            enum:
              - GTR
              - TRUST
              - VERIFYVASP
              - SYGNA
          description: >-
            الشبكات المنسحبة من عضوية المنصة. لا يؤدي ذلك إلى تعطيل عضوياتك
            الخاصة المتصلة أو توفير شبكات غير متاحة.
          default: []
      description: جميع الحقول اختيارية؛ يُطبّق PUT تحديثاً جزئياً.
    TravelRuleSettingsDetail:
      type: object
      properties:
        is_enabled:
          type: boolean
          description: >-
            ما إذا كان سير عمل تفاوض Travel Rule المُدار نشطاً لمعاملات
            `travelRule` الصادرة في هذا التطبيق.
        jurisdiction:
          type: string
          maxLength: 8
          description: >-
            كود الولاية القضائية التشغيلية الخاصة بـ VASP لديك. القيمة
            الافتراضية `"EU"`. تقوم Didit بمطابقته مع النظام الذي تدمغه على
            معاملات Travel Rule الخاصة بك كـ `travel_rule_regime` (على سبيل
            المثال، يتحول `EU` أو كود دولة عضو في الاتحاد الأوروبي إلى `eu`)،
            والذي يمكن لقواعد المعاملات الاستناد إليه. يراه عملاء Didit الآخرون
            باعتباره ولايتك القضائية في دليل VASP بمجرد أن تُدرج شبكة Didit ملفك
            التعريفي.
        name_matching_strictness:
          type: string
          enum:
            - NONE
            - STRICT
            - CONTAINS
            - DEFAULT
            - FUZZY
          description: >-
            مدى دقة مطابقة أسماء المستفيدين المطلوبة قبل أن تصل المعاملة إلى
            حالة COMPLETED. تقبل `CONTAINS` اسماً تظهر جميع كلماته في الاسم
            الآخر.
        confirmation_timeout_hours:
          type: integer
          minimum: 1
          description: >-
            الساعات التي يجوز خلالها أن تظل معاملة AWAITING_COUNTERPARTY غير
            مؤكدة قبل أن تُنهي أداة المسح الدورية صلاحيتها. القيمة الافتراضية
            48.
        timeout_outcome:
          type: string
          enum:
            - HOLD
            - REJECT
            - PROCEED
          description: >-
            ما يحدث للمعاملة الأساسية عند انتهاء صلاحية التحويل. القيمة
            الافتراضية HOLD. تكون لـ sunrise_policy وnon_responsive_policy
            الأولوية عند انطباقهما وتعيينهما.
        threshold_amount:
          type: string
          description: >-
            سلسلة نصية عشرية، بالعملة الافتراضية لتطبيقك. الحد الأدنى لمبلغ
            التحويل الذي يُشغّل التبادل المُدار؛ التحويلات الأقل منه تُحسم
            مباشرة إلى NOT_APPLICABLE. تقارن Didit مبلغ المعاملة محولاً إلى
            عملتك الافتراضية، أو قيمة `amount_in_default_currency` التي ترسلها؛
            وعند عدم توفر مبلغ محوّل، لا يُطبّق الحد. القيمة الافتراضية هي
            "0.00" (لا تفرض لائحة TFR في الاتحاد الأوروبي حداً أدنى للمبلغ).
        ownership_validation_mode:
          type: string
          enum:
            - FULL
            - SIMPLIFIED
            - AUTOMATED
          description: >-
            مقدار الإثبات الذي تتطلبه ملكية المحفظة. تتطلب `FULL` دائماً إثباتاً
            (رسالة موقعة، أو إيداعاً تجريبياً، أو لقطة شاشة تمت مراجعتها)، ولا
            تقبل مطلقاً مجرد إقرار المستخدم النهائي. تقبل `SIMPLIFIED` إقراراً
            ذاتياً تحت قيمة `simplified_validation_threshold` وإثباتاً فوقها.
            تتيح `AUTOMATED` لدفتر العناوين والإثباتات السابقة الإجابة تلقائياً،
            بما في ذلك الإقرارات الذاتية طالما أن `allow_self_declaration`
            مضبوطة على true. القيمة الافتراضية هي `AUTOMATED`.
        simplified_validation_threshold:
          type: string
          description: >-
            سلسلة نصية عشرية، القيمة الافتراضية "0.00". في وضع `SIMPLIFIED`،
            يقبل التحويل الذي يقل عن هذا المبلغ (بعملة الحد) إقراراً ذاتياً.
            ويُعتبر التحويل الذي لا يحتوي على مبلغ بتلك العملة أعلى منه.
        data_sharing_fields:
          $ref: '#/components/schemas/TravelRuleDataSharingFields'
        matching_rules:
          $ref: '#/components/schemas/TravelRuleMatchingRules'
        legal_name:
          type: string
          description: >-
            الاسم القانوني لمؤسسة VASP الخاصة بك. مطلوب (غير فارغ) لتعيين
            is_enabled إلى true.
        lei:
          type: string
          description: معرّف الكيان القانوني الخاص بك، المعروض في دليل VASP.
        compliance_email:
          type: string
          format: email
          description: >-
            البريد الإلكتروني لجهة اتصال الامتثال لملف VASP التعريفي الخاص بك.
            تدرج شبكة Didit ملفك التعريفي فقط بمجرد تأكيد هذا العنوان عبر رابط
            مرسل بالبريد الإلكتروني (POST
            /v3/travel-rule/settings/compliance-email/confirmation/)؛ ويتطلب
            تغييره تأكيداً جديداً.
        is_discoverable:
          type: boolean
          description: >-
            ما إذا كان يمكن إدراج ملف تعريف VASP الخاص بك في شبكة Didit: يتم
            العثور عليه في GET /v3/travel-rule/vasps/ بواسطة عملاء Didit الآخرين
            والوصول إليه عبر مسار INTERNAL. يتطلب الإدراج أيضاً تطبيقاً قيد
            الإنتاج، وتفعيل Travel Rule، واسماً قانونياً، وبريداً إلكترونياً
            مؤكداً للامتثال؛ يوضح didit_network العناصر المفقودة. القيمة
            الافتراضية هي true.
        inbound_auto_accept:
          type: boolean
          description: >-
            عند التعيين على true، تتم الموافقة تلقائياً على استفسار TRP الوارد
            الذي تكون فيه محفظة المستفيد مُدخلةً موثقةً في دفتر العناوين مع
            تطابق الاسم. وعند التعيين على false، ينتظر ذلك الاستفسار في حالة
            ON_HOLD حتى توافق عليه أو ترفضه عبر endpoint الخاص بالملكية. لا
            تتأثر تحويلات مسار INTERNAL والتحويلات بعد الإيداع. القيمة
            الافتراضية هي true.
        allow_self_declaration:
          type: boolean
          description: >-
            عند التعيين على true، توفر أداة ملكية المحفظة خيار الإقرار الذاتي
            كطريقة إثبات احتياطية. القيمة الافتراضية هي true.
        allow_screenshot_proof:
          type: boolean
          description: >-
            عند التعيين على true، توفر أداة ملكية المحفظة خيار تحميل لقطة شاشة
            كطريقة لإثبات الملكية. القيمة الافتراضية هي true.
        auto_wallet_verification:
          type: boolean
          description: >-
            عند التعيين على true، يؤدي إرسال تحويل Travel Rule صادر يتطلب إثبات
            تحكّم المستخدم النهائي بالمحفظة إلى إنشاء جلسة أداة ملكية المحفظة
            تلقائياً وتكون مرتبطة بالمعاملة وإظهارها في كتلة action_required
            الخاصة بالمعاملة. القيمة الافتراضية هي true.
        vasp_attribution_enabled:
          type: boolean
          description: >-
            عند التعيين على true، يُنسَب تحويل Travel Rule الصادر الذي يتعذر على
            أي مسار توجيهه عبر تحليلات البلوكتشين: يتم تحديد الـ VASP المالك
            لمحفظة الوجهة، ويُسجَّل الكيان في التحويل ودليل VASP، وتتم إعادة
            تشغيل المسارات مرة واحدة بالاسم المنسوب. القيمة الافتراضية هي true.
        counterparty_screening_enabled:
          type: boolean
          description: >-
            فحص اختياري للعقوبات والأخبار السلبية لجهات VASP التابعة للطرف
            المقابل، وتتم الفوترة لكل فحص بسعر فحص AML للشركات. عند تفعيله، تفحص
            Didit الطرف المقابل الذي يبلغه تبادل صادر (مع إعادة استخدام فحص
            أُجري منذ أقل من 30 يوماً) ويمكنك فحص إحداها عبر POST
            /v3/travel-rule/vasps/{vasp_id}/screening/. القيمة الافتراضية false:
            لا يتم فحص أي شيء ولا تتم الفوترة.
        sunrise_policy:
          type: string
          enum:
            - ''
            - HOLD
            - REJECT
            - PROCEED
          description: >-
            ما يفعله التحويل منتهي الصلاحية بمعاملته عندما يكون الطرف المقابل
            إدخال دليل في اختصاص قضائي مدرج ضمن sunrise_jurisdictions ولا يطبق
            Travel Rule بعد: HOLD ينقله إلى المراجعة، وREJECT يرفضه، وPROCEED
            يترك حالته دون تغيير. القيمة الفارغة (الافتراضية) تتبع
            timeout_outcome. يُطبّق قبل non_responsive_policy.
        sunrise_jurisdictions:
          type: array
          items:
            type: string
          readOnly: true
          description: >-
            للقراءة فقط. الدول (ISO 3166 alpha-2) التي تعاملها Didit على أنها في
            فترة بداية تطبيق Travel Rule، حيث ينطبق sunrise_policy. حالياً CO و
            KH و VN. أي اختصاص قضائي آخر، أو إذا كان فارغاً أو غير معروف، يتبع
            timeout_outcome.
        non_responsive_policy:
          type: string
          enum:
            - ''
            - HOLD
            - REJECT
            - PROCEED
          description: >-
            ما يفعله التحويل منتهي الصلاحية بمعاملته عندما يكون الطرف المقابل
            إدخال دليل تكون حالة استجابته UNRESPONSIVE: إما HOLD أو REJECT أو
            PROCEED، كما هو الحال بالنسبة لـ timeout_outcome. القيمة الفارغة
            (الافتراضية) تتبع timeout_outcome. يُطبّق sunrise_policy أولاً عندما
            ينطبق كلاهما.
        travel_address:
          type: string
          description: >-
            للقراءة فقط. Travel Address الخاص بـ VASP لديك - endpoint استعلام
            TRP الوارد المُرمَّز الذي تستخدمه جهات VASP الأخرى للوصول إليك. يكون
            فارغاً طالما أن `is_enabled` بقيمة false.
        disabled_networks:
          type: array
          items:
            type: string
            enum:
              - GTR
              - TRUST
              - VERIFYVASP
              - SYGNA
          description: >-
            الشبكات المنسحبة من عضوية المنصة. لا يؤدي ذلك إلى تعطيل عضوياتك
            الخاصة المتصلة أو توفير شبكات غير متاحة.
          default: []
        networks:
          type: object
          readOnly: true
          description: >-
            حسب الشبكة، كيف سيرسل هذا التطبيق ولماذا يتعذر عليه ذلك. لا يتم
            تضمين أي شبكة، بما في ذلك GTR، افتراضياً: يمكن الوصول إلى الشبكة من
            خلال عضويتك المتصلة الخاصة، أو من خلال عضوية Didit بمجرد تفعيل عضوية
            Didit في تلك الشبكة ونشاط مشاركك الخاص عليها. ليس فحصاً مباشراً
            لحالة التشغيل أو التسليم.
          properties:
            gtr:
              $ref: '#/components/schemas/TravelRuleNetworkState'
            trust:
              $ref: '#/components/schemas/TravelRuleNetworkState'
            verifyvasp:
              $ref: '#/components/schemas/TravelRuleNetworkState'
            sygna:
              $ref: '#/components/schemas/TravelRuleNetworkState'
        didit_network:
          type: object
          readOnly: true
          description: >-
            ما إذا كانت شبكة Didit تُدرج ملف VASP التعريفي الخاص بك، بحيث يعثر
            عليه عملاء Didit الآخرون في الدليل ويصلون إليه عبر مسار INTERNAL،
            وكل شرط لم يستوفه بعد.
          properties:
            listed:
              type: boolean
            missing:
              type: array
              items:
                type: string
                enum:
                  - travel_rule_off
                  - sandbox_application
                  - not_discoverable
                  - legal_name_missing
                  - compliance_email_missing
                  - compliance_email_unconfirmed
                  - excluded_by_staff
                  - internal_organization
              description: >-
                فارغ عند الإدراج. compliance_email_unconfirmed: أرسل التأكيد
                باستخدام POST
                /v3/travel-rule/settings/compliance-email/confirmation/ وافتح
                الرابط المرسل عبر البريد الإلكتروني. excluded_by_staff: صنفت
                Didit التطبيق على أنه تجريبي أو توضيحي أو داخلي.
            compliance_email_confirmed:
              type: boolean
              description: >-
                ما إذا كان compliance_email الحالي قد تم تأكيده عبر الرابط
                المرسل بالبريد الإلكتروني.
    TravelRuleDataSharingFields:
      type: object
      description: >-
        الحقول التي ترسلها Didit إلى VASP للطرف المقابل حول المستخدمين لديك، لكل
        نوع كيان. يتم إرسال `name` و`wallet_address` دائماً بغض النظر عما تحدده
        القائمة. نوع الكيان الذي لم تختَره مطلقاً يشارك كل الحقول. كما أن
        القائمة الفارغة تُعد خياراً أيضاً: حيث تشارك الاسم والمحفظة فقط.
      properties:
        individual:
          type: array
          items:
            type: string
            enum:
              - name
              - wallet_address
              - address
              - national_id
              - customer_identification
              - date_of_birth
              - place_of_birth
          description: الحقول التي تمت مشاركتها حول شخص طبيعي.
        company:
          type: array
          items:
            type: string
            enum:
              - name
              - wallet_address
              - address
              - national_id
              - customer_identification
          description: الحقول التي تمت مشاركتها حول شخص اعتباري.
    TravelRuleMatchingRules:
      type: object
      description: >-
        مدى دقة مقارنة كل حقل من بيانات الطرف المقابل مع ما تحتفظ به، لكل نوع
        جهة. يحتفظ الحقل الذي تتركه بقيمته الافتراضية. تتخطى `NONE` المقارنة،
        وتتطلب `STRICT` نفس الكلمات تماماً، وتقبل `CONTAINS` قيمة واحدة تظهر
        جميع كلماتها في القيمة الأخرى، وتعتمد `DEFAULT` المطابقة الجزئية
        القياسية، بينما تقبل `FUZZY` التهجئات المتقاربة (ولتواريخ الميلاد، تبديل
        اليوم والشهر).
      properties:
        individual:
          type: object
          description: قواعد لشخص طبيعي.
          properties:
            name:
              type: string
              enum:
                - NONE
                - STRICT
                - CONTAINS
                - DEFAULT
                - FUZZY
              description: 'افتراضي: يتبع `name_matching_strictness`.'
            date_of_birth:
              type: string
              enum:
                - NONE
                - STRICT
                - CONTAINS
                - DEFAULT
                - FUZZY
              description: القيمة الافتراضية `NONE`.
            address:
              type: string
              enum:
                - NONE
                - STRICT
                - CONTAINS
                - DEFAULT
                - FUZZY
              description: القيمة الافتراضية `NONE`.
            account:
              type: string
              enum:
                - NONE
                - STRICT
                - CONTAINS
                - DEFAULT
                - FUZZY
              description: >-
                المحفظة التي تم توجيه التبادل من خلالها. القيمة الافتراضية
                `STRICT`.
        company:
          type: object
          description: قواعد لشخص اعتباري.
          properties:
            name:
              type: string
              enum:
                - NONE
                - STRICT
                - CONTAINS
                - DEFAULT
                - FUZZY
              description: 'افتراضي: يتبع `name_matching_strictness`.'
            address:
              type: string
              enum:
                - NONE
                - STRICT
                - CONTAINS
                - DEFAULT
                - FUZZY
              description: القيمة الافتراضية `NONE`.
            account:
              type: string
              enum:
                - NONE
                - STRICT
                - CONTAINS
                - DEFAULT
                - FUZZY
              description: >-
                المحفظة التي تم توجيه التبادل من خلالها. القيمة الافتراضية
                `STRICT`.
    TravelRuleNetworkState:
      type: object
      description: >-
        كيف سيتم إرسال رسائل Travel Rule على إحدى الشبكات لهذا التطبيق، وسبب
        تعذر ذلك. حالة تكوين، وليست فحصاً لحالة التشغيل المباشرة أو التسليم.
      properties:
        rail:
          type: string
          enum:
            - GTR
            - TRUST
            - VERIFYVASP
            - SYGNA
        mode:
          type: string
          enum:
            - own
            - didit
            - 'off'
            - unavailable
          description: >-
            own: يتم استخدام العضوية المتصلة بالتطبيق؛ didit: تنقل عضوية Didit
            التطبيق كمشارك نشط خاص بها؛ off: تم تعطيل توجيه المنصة في
            disabled_networks مع عدم وجود عضوية خاصة؛ unavailable: لا يمكن لأي
            طرف الإرسال على هذه الشبكة حتى الآن (راجع state وreason).
        state:
          type: string
          enum:
            - own_membership
            - live_through_didit
            - 'off'
            - didit_onboarding
            - questionnaire_needed
            - questionnaire_in_review
            - request_access
            - request_sent
            - unavailable
            - error
          description: >-
            own_membership: تُرسل عضويتك المتصلة؛ live_through_didit: يُرسل
            مشاركك الخاص ضمن عضوية Didit؛ off: قمت بإيقاف تشغيل توجيه المنصة؛
            didit_onboarding: عضوية Didit الخاصة بهذه الشبكة ليست في بيئة
            الإنتاج بعد، لذا لا يمكنها نقل أي طرف؛ questionnaire_needed /
            questionnaire_in_review: يجب إرسال استبيان العناية الواجبة أو أنه
            قيد المراجعة لدى Didit؛ request_access: تمت الموافقة على الاستبيان،
            اطلب الوصول إلى الشبكة؛ request_sent: جارٍ تسجيل مشاركك؛
            unavailable: راجع reason؛ error: راجع reason.
        reason:
          type: string
          enum:
            - own_membership_connected
            - platform_network_switched_off
            - own_membership_only
            - sandbox_application
            - didit_membership_not_live
            - participant_suspended
            - participant_rejected
            - questionnaire_not_submitted
            - questionnaire_submitted
            - questionnaire_changes_requested
            - questionnaire_rejected
            - participant_not_requested
            - participant_active
            - participant_key_missing
            - participant_key_unresolved
            - provisioning_failed
            - questionnaire_pending
            - submitted_to_network
          description: >-
            تفاصيل الحالة المقروءة آلياً. own_membership_only: لا تستضيف Didit
            تطبيقات على هذه الشبكة (TRUST)، قم بربط عضويتك الخاصة؛
            sandbox_application: عمليات النقل في البيئة التجريبية لا تصل أبداً
            إلى الشبكة؛ provisioning_failed: رفضت الشبكة التسجيل، يوضح
            last_error الخاص بالمشارك السبب وتؤدي إعادة طلب الشبكة إلى إعادة
            المحاولة.
        platform_available:
          type: boolean
          description: >-
            ما إذا كانت عضوية Didit الخاصة في هذه الشبكة مهيأة؛ ليس فحصاً لحالة
            التشغيل في الوقت الفعلي.
        connected:
          type: boolean
          description: >-
            ما إذا كانت توجد عضوية عميل متصل. يتم التحقق من بيانات الاعتماد
            محلياً؛ ويتم التحقق من الشبكة أثناء تبادل مباشر.
        participant:
          $ref: '#/components/schemas/TravelRuleNetworkParticipantSummary'
        vasps_reachable:
          type: integer
          description: VASP المدرجة في الدليل التي يمكن الوصول إليها على هذه الشبكة.
        routed_30d:
          type: integer
          description: تحويلات هذا التطبيق التي نُفذت على هذه الشبكة خلال آخر 30 يوماً.
    TravelRuleNetworkParticipantSummary:
      type: object
      nullable: true
      description: المشارك الخاص بهذا التطبيق على الشبكة، أو null في حال عدم وجود أي مشارك.
      properties:
        mode:
          type: string
          enum:
            - platform
            - own
          description: >-
            platform: يتم النقل عبر عضوية Didit؛ own: تم التسجيل تحت العضوية
            الخاصة بالتطبيق.
        status:
          type: string
          enum:
            - not_requested
            - questionnaire_pending
            - submitted_to_network
            - active
            - suspended
            - rejected
          description: >-
            not_requested: لم يُطلب قط، أو أن الشبكة رفضت الطلب الأول (راجع
            last_error)؛ questionnaire_pending: بانتظار الموافقة على استبيان
            العناية الواجبة؛ submitted_to_network: تم تسليمه لعملية تسجيل
            الشبكة؛ active: منحت الشبكة هذا التطبيق رمز المشارك الخاص به؛
            suspended / rejected: قامت Didit بتعليقه أو رفضه.
        participant_code:
          type: string
          description: >-
            الرمز الذي منحته الشبكة لهذا التطبيق (بالنسبة لـ GTR، رمز VASP الخاص
            به). تحمل الرسائل الصادرة هذا الرمز، ولا تحمل رمز Didit مطلقاً.
        requested_at:
          type: string
          format: date-time
          nullable: true
        activated_at:
          type: string
          format: date-time
          nullable: true
        last_error:
          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.