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

# トラベルルールネットワーク取得API

> Diditで、アプリケーションごとに各トラベルルールネットワークの実際の状態を取得できます。自社のメンバーシップ、Diditのメンバーシップ、ネットワークがまだ送信できない理由を確認できます。

トラベルルールネットワーク取得APIのプロンプト
プロンプトをクリップボードにコピー

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

貼り付け先

## ネットワークの状態

ネットワークは、次の2つのいずれかの方法で貴社のアプリケーション向けに送信します。

* **自社のメンバーシップ**（`state: own_membership`）：**Marketplace**で接続したメンバーシップです。常にこちらが優先されます。
* **Diditのメンバーシップ**（`state: live_through_didit`）：Diditは、ネットワークから付与された参加者コードを用いて、貴社のアプリケーションをGTRまたはSygnaにおいてDidit自身の参加者として扱います。メッセージにDidit自身のコードが含まれることはなく、ネットワークが貴社の参加者コード宛てに送信したものは貴社のアプリケーションに届きます。

Diditのメンバーシップ経由でネットワークに接続するには、3つのステップが必要です。[ネットワークアンケート](https://docs.didit.me/ja/management-api/travel-rule/submit-network-questionnaire.md)を提出し、Diditの承認を受けてから、[ネットワークをリクエスト](https://docs.didit.me/ja/management-api/travel-rule/request-network.md)します。TRUSTとVerifyVASPには、自社のメンバーシップ経由でのみ接続できます。TRUSTはVASPごとにメンバーを受け入れており、VerifyVASPのEnclaveは1つのVASP IDにのみ対応するため、自社のEnclaveを運用します。

Didit自身がネットワークに有するメンバーシップが稼働していない間、そのネットワークの`state`は`didit_onboarding`となり、Didit経由で送信することは一切できません。`state`は設定状況を示すものであり、稼働状態や配信をリアルタイムで確認するものではありません。


## OpenAPI

````yaml ja/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: トラベルルールのネットワークを取得
      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の間に保存できます。submitted、approved、rejectedへの移行はDiditが行います。
        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: 1つのネットワーク上での、このアプリケーション自身の参加者。
      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: >-
        このアプリケーションで1つのネットワーク上のトラベルルールメッセージがどのように送信されるか、また送信できない理由を示します。設定状況であり、リアルタイムの稼働状況や配信のチェックではありません。
      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: >-
            stateの機械可読な詳細。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を除くすべてのフィールドへの回答と、3つの宣誓事項すべてが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: 任意。指定する場合は有効なISO 17442 LEIである必要があります。
        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: 想定される月間取引量（USD、小数点以下2桁まで）です。文字列として返されます。
        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キーです。Business ConsoleのDevelopers -> API
        keysで取得できます。プライマリキーはフルアクセス権を持ちます。名前付きキーにはスコープを設定できます。リソースごとのアクセス権（なし、読み取り、書き込み）、一部のワークフローまたは承認済みセッションへの限定、IPアドレスのリストへの限定、有効期限の設定です。401は、キーが誤っている、失効している、または期限切れであることを意味します。403は、キーが送信されていない、キーにこのリソースやアクションへのアクセス権がない、またはIPリスト外のアドレスからリクエストが送信されたことを意味します。セッションのルートでの404は、セッションがキーのワークフローまたはステータスの対象外であることを意味します。メディアへのアクセス権がないキーでは、画像、動画、PDFのURLがnullで返されます。セッションの書き込み権限がないキーでは、セッションのリンクとトークンがnullで返されます。詳細は次を参照してください:
        https://docs.didit.me/console/api-keys

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.