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

> اطّلع على الحالة الفعلية لكل شبكة Travel Rule في تطبيقك مع Didit: عضويتك، وعضوية Didit، وسبب تعذّر الإرسال عبر أي شبكة بعد.

موجّه واجهة API للحصول على شبكات Travel Rule
نسخ الموجّه إلى الحافظة

<pre>
  \`Read, for my application, the real state of every Travel Rule network, the due-diligence questionnaire and my participants.

  Endpoint:
  GET [https://verification.didit.me/v3/travel-rule/networks/](https://verification.didit.me/v3/travel-rule/networks/)

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

  What to read from the response:

  * platform\_networks\_enabled - whether network access through Didit's membership is open. While false, questionnaire saves, submissions and network requests answer 403.
  * networks - keyed by gtr/trust/verifyvasp/sygna: {rail, mode, state, reason, platform_available, connected, participant, vasps_reachable, routed_30d}.
  * state: own\_membership | live\_through\_didit | off | didit\_onboarding | questionnaire\_needed | questionnaire\_in\_review | request\_access | request\_sent | unavailable | error.
  * reason: the machine-readable detail, for example didit\_membership\_not\_live, own\_membership\_only (TRUST) or provisioning\_failed.
  * participant: my own participant on that network (status, participant\_code, last\_error), or null.
  * questionnaire - status (draft | submitted | changes\_requested | approved | rejected), answers and Didit's review\_note.
  * participants - every participant I have, with its status history.

  Reading creates nothing. Full guide: /transaction-monitoring/travel-rule.\`
</pre>

الصق في

## حالات الشبكات

ترسل شبكة ما إلى تطبيقك بإحدى طريقتين:

* **عضويتك الخاصة** (`state: own_membership`): عضوية قمت بربطها في **Marketplace**. وهي تتقدّم دائماً على غيرها.
* **عضوية Didit** (`state: live_through_didit`): تتعامل Didit مع تطبيقك بوصفه مشاركاً تابعاً لها في GTR أو Sygna، باستخدام رمز المشارك الذي منحتك إياه الشبكة. لا تحمل الرسائل أبداً رمز Didit الخاص، وما ترسله الشبكة إلى رمز مشاركك يصل إلى تطبيقك.

الوصول إلى شبكة عبر عضوية Didit يتطلب ثلاث خطوات: تقديم [استبيان الشبكة](https://docs.didit.me/ar/management-api/travel-rule/submit-network-questionnaire.md)، ثم موافقة Didit عليه، ثم [طلب الشبكة](https://docs.didit.me/ar/management-api/travel-rule/request-network.md). لا يمكن الوصول إلى TRUST وVerifyVASP إلا عبر عضويتك الخاصة، لأن TRUST يقبل الأعضاء لكل VASP، وVerifyVASP Enclave يخدم معرّف VASP واحداً، لذلك عليك تشغيل Enclave الخاص بك.

ما دامت عضوية Didit في شبكة ما غير نشطة، فإن `state` لها هو `didit_onboarding`، ولا يمكن إرسال أي شيء عبرها من خلال Didit. و`state` يعكس حالة الإعداد، وليس فحصاً لحالة التشغيل أو التسليم.


## OpenAPI

````yaml ar/openapi-25.json GET /v3/travel-rule/networks/
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/networks/:
    get:
      tags:
        - Travel Rule
      summary: الحصول على شبكات Travel Rule
      description: >-
        قراءة الحالة الحقيقية لكل شبكة لهذا التطبيق: ما إذا كانت ترسل عبر عضويتك
        الخاصة أو عبر عضوية Didit، ولماذا لا يمكنها ذلك بعد. يُرجع أيضاً استبيان
        العناية الواجبة والمشاركين لديك. القراءة لا تنشئ أي شيء.
      operationId: getTravelRuleNetworks
      responses:
        '200':
          description: حالات الشبكة والاستبيان والمشاركون.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TravelRuleNetworksOverview'
              examples:
                Before the questionnaire:
                  value:
                    platform_networks_enabled: false
                    questionnaire:
                      status: draft
                      answers: {}
                      submitted_at: null
                      reviewed_at: null
                      review_note: ''
                      history: []
                      updated_at: null
                    participants: []
                    networks:
                      gtr:
                        rail: GTR
                        mode: unavailable
                        state: didit_onboarding
                        reason: didit_membership_not_live
                        platform_available: false
                        connected: false
                        participant: null
                        vasps_reachable: 0
                        routed_30d: 0
                      trust:
                        rail: TRUST
                        mode: unavailable
                        state: unavailable
                        reason: own_membership_only
                        platform_available: false
                        connected: false
                        participant: null
                        vasps_reachable: 0
                        routed_30d: 0
                      verifyvasp:
                        rail: VERIFYVASP
                        mode: unavailable
                        state: didit_onboarding
                        reason: didit_membership_not_live
                        platform_available: false
                        connected: false
                        participant: null
                        vasps_reachable: 0
                        routed_30d: 0
                      sygna:
                        rail: SYGNA
                        mode: unavailable
                        state: didit_onboarding
                        reason: didit_membership_not_live
                        platform_available: false
                        connected: false
                        participant: null
                        vasps_reachable: 0
                        routed_30d: 0
        '401':
          description: مفتاح API مفقود أو غير صالح.
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: |-
            curl -X GET https://verification.didit.me/v3/travel-rule/networks/ \
              -H 'x-api-key: YOUR_API_KEY'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.travel_rule.networks.retrieve()
            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.networks.retrieve();
            console.log(result);
        - lang: java
          label: Java
          source: |-
            import me.didit.Didit;

            // Reads DIDIT_API_KEY.
            Didit client = new Didit();

            var result = client.travelRule().networks().retrieve();
            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->networks->retrieve();
            print_r($result->toArray());
        - lang: ruby
          label: Ruby
          source: |-
            require "didit"

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

            result = didit.travel_rule.networks.retrieve
            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.Networks.RetrieveAsync();
            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    TravelRuleNetworksOverview:
      type: object
      properties:
        platform_networks_enabled:
          type: boolean
          description: >-
            ما إذا كان الوصول إلى الشبكة عبر عضوية Didit مفتوحاً. بينما تكون
            القيمة false، فإن حفظ الاستبيانات وتقديمها وطلبات الشبكة تُرجع الرمز
            403.
        questionnaire:
          $ref: '#/components/schemas/TravelRuleNetworkQuestionnaire'
        participants:
          type: array
          items:
            $ref: '#/components/schemas/TravelRuleNetworkParticipant'
        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'
    TravelRuleNetworkQuestionnaire:
      type: object
      properties:
        status:
          type: string
          enum:
            - draft
            - submitted
            - changes_requested
            - approved
            - rejected
          description: >-
            يمكن حفظ الإجابات أثناء حالتي draft أو changes_requested؛ وتتولى
            Didit نقل الحالات submitted وapproved وrejected.
        answers:
          $ref: '#/components/schemas/TravelRuleNetworkQuestionnaireAnswers'
        submitted_at:
          type: string
          format: date-time
          nullable: true
        reviewed_at:
          type: string
          format: date-time
          nullable: true
        review_note:
          type: string
          description: ملاحظة Didit بشأن قرارها الأخير، على سبيل المثال ما يجب تغييره.
        history:
          type: array
          readOnly: true
          description: كل تغيير في الحالة، الأقدم أولاً.
          items:
            type: object
            properties:
              at:
                type: string
                format: date-time
              from:
                type: string
              to:
                type: string
              note:
                type: string
                description: ملاحظة المراجعة أو رد الشبكة، عند توفره.
        updated_at:
          type: string
          format: date-time
          nullable: true
    TravelRuleNetworkParticipant:
      type: object
      description: المشارك الخاص بهذا التطبيق على شبكة واحدة.
      properties:
        network:
          type: string
          enum:
            - gtr
            - trust
            - verifyvasp
            - sygna
        rail:
          type: string
          enum:
            - GTR
            - TRUST
            - VERIFYVASP
            - SYGNA
        mode:
          type: string
          enum:
            - platform
            - 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
        requested_at:
          type: string
          format: date-time
          nullable: true
        submitted_at:
          type: string
          format: date-time
          nullable: true
        activated_at:
          type: string
          format: date-time
          nullable: true
        suspended_at:
          type: string
          format: date-time
          nullable: true
        last_error:
          type: string
          description: رد الشبكة عندما رفضت التسجيل؛ وفارغ بخلاف ذلك.
        history:
          type: array
          readOnly: true
          description: كل تغيير في الحالة، الأقدم أولاً.
          items:
            type: object
            properties:
              at:
                type: string
                format: date-time
              from:
                type: string
              to:
                type: string
              note:
                type: string
                description: ملاحظة المراجعة أو رد الشبكة، عند توفره.
    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 يوماً.
    TravelRuleNetworkQuestionnaireAnswers:
      type: object
      description: >-
        استبيان العناية الواجبة لشبكة Didit. عمليات الحفظ جزئية: يحافظ الحفظ على
        كل إجابة لا يحددها بالاسم. يتطلب الإرسال ملء كل حقل باستثناء lei
        وdata_protection_contact_email، وأن تكون الإقرارات الثلاثة مضبوطة على
        true.
      properties:
        legal_name:
          type: string
          maxLength: 255
        registration_number:
          type: string
          maxLength: 255
        incorporation_country:
          type: string
          minLength: 2
          maxLength: 2
          description: رمز الدولة وفقاً لـ ISO 3166-1 alpha-2.
        registered_address:
          type: string
          maxLength: 1000
        website:
          type: string
          format: uri
          maxLength: 500
        lei:
          type: string
          maxLength: 20
          description: اختياري. معرّف LEI صالح وفق معيار ISO 17442 عند تقديمه.
        licences:
          type: array
          minItems: 1
          items:
            type: object
            required:
              - regulator
              - jurisdiction
              - licence_type
              - licence_number
            properties:
              regulator:
                type: string
                maxLength: 255
              jurisdiction:
                type: string
                minLength: 2
                maxLength: 2
                description: رمز الدولة وفقاً لـ ISO 3166-1 alpha-2.
              licence_type:
                type: string
                maxLength: 255
              licence_number:
                type: string
                maxLength: 255
          description: كل ترخيص أو تسجيل تحمله VASP.
        operating_jurisdictions:
          type: array
          minItems: 1
          maxItems: 250
          items:
            type: string
            minLength: 2
            maxLength: 2
            description: رمز الدولة وفقاً لـ ISO 3166-1 alpha-2.
        compliance_officer_name:
          type: string
          maxLength: 255
        compliance_officer_email:
          type: string
          format: email
        aml_ctf_policy_attested:
          type: boolean
          description: يجب أن تكون true للإرسال.
        sanctions_screening_attested:
          type: boolean
          description: يجب أن تكون true للإرسال.
        data_protection_attested:
          type: boolean
          description: يجب أن تكون true للإرسال.
        data_protection_contact_email:
          type: string
          format: email
          description: اختياري.
        expected_monthly_transfers:
          type: integer
          minimum: 0
        expected_monthly_volume_usd:
          type: string
          format: decimal
          description: >-
            الحجم الشهري المتوقع بالدولار الأمريكي، حتى منزلتين عشريتين. يتم
            إرجاعه كسلسلة نصية.
        assets:
          type: array
          minItems: 1
          maxItems: 200
          items:
            type: string
            maxLength: 32
          description: رموز تداول الأصول، مخزنة بأحرف كبيرة، ومرتبة، وبدون تكرار.
    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.