> ## 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 réseaux Travel Rule : obtenir les réseaux

> Avec Didit, consultez l'état réel de chaque réseau Travel Rule : votre adhésion, celle de Didit, et pourquoi un envoi est bloqué.

Obtenir le prompt API des réseaux Travel Rule
Copier le prompt dans le presse-papiers

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

Coller dans

## États des réseaux

Un réseau achemine les messages de votre application de l'une des deux façons suivantes :

* **Votre propre adhésion** (`state: own_membership`) : une adhésion que vous avez connectée dans **Marketplace**. Elle a toujours la priorité.
* **Adhésion de Didit** (`state: live_through_didit`) : Didit fait transiter votre application en tant que son propre participant sur GTR ou Sygna, avec le code de participant que le réseau vous a attribué. Les messages ne portent jamais le code propre de Didit, et ce que le réseau envoie à votre code de participant parvient à votre application.

Pour atteindre un réseau via l'adhésion de Didit, il faut trois étapes : soumettre le [questionnaire réseau](https://docs.didit.me/fr/management-api/travel-rule/submit-network-questionnaire.md), faire approuver ce questionnaire par Didit, puis [demander l'accès au réseau](https://docs.didit.me/fr/management-api/travel-rule/request-network.md). TRUST et VerifyVASP ne sont accessibles que via votre propre adhésion : TRUST admet des membres par VASP, et une Enclave VerifyVASP ne dessert qu'un seul identifiant VASP, vous devez donc en exploiter une vous-même.

Tant que l'adhésion propre de Didit à un réseau n'est pas en production, son `state` vaut `didit_onboarding` et rien ne peut être envoyé sur ce réseau via Didit. `state` indique un statut de configuration, et non un contrôle de santé ou de livraison en temps réel.


## OpenAPI

````yaml fr/openapi-25.json GET /v3/travel-rule/networks/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: API de vérification d'identité. Authentifiez-vous avec l'en-tête x-api-key.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/travel-rule/networks/:
    get:
      tags:
        - Travel Rule
      summary: Obtenir les réseaux Travel Rule
      description: >-
        Consultez, pour cette application, l'état réel de chaque réseau : s'il
        transmet via votre propre adhésion ou via celle de Didit, et la raison
        pour laquelle il ne peut pas encore le faire. Renvoie également le
        questionnaire de diligence raisonnable et vos participants. La lecture
        ne crée rien.
      operationId: getTravelRuleNetworks
      responses:
        '200':
          description: États du réseau, questionnaire et participants.
          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: Clé API manquante ou invalide.
      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: >-
            Indique si l'accès au réseau via l'adhésion de Didit est ouvert.
            Tant qu'il est défini sur false, les sauvegardes de questionnaires,
            les soumissions et les requêtes réseau répondent par un code 403.
        questionnaire:
          $ref: '#/components/schemas/TravelRuleNetworkQuestionnaire'
        participants:
          type: array
          items:
            $ref: '#/components/schemas/TravelRuleNetworkParticipant'
        networks:
          type: object
          readOnly: true
          description: >-
            Par réseau, comment cette application enverrait et pourquoi elle ne
            le peut pas. Aucun réseau, y compris GTR, n'est inclus par défaut :
            un réseau est accessible via votre propre adhésion connectée, ou via
            l'adhésion de Didit une fois que l'adhésion de Didit à ce réseau est
            active et que votre propre participant y est actif. Il ne s'agit pas
            d'une vérification de l'état ou de la livraison en direct.
          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: "Les réponses peuvent être enregistrées lorsqu'elles sont à l'état draft ou changes_requested\_; le passage à submitted, approved et rejected revient à 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: >-
            Note de Didit sur sa dernière décision, par exemple les éléments à
            modifier.
        history:
          type: array
          readOnly: true
          description: Chaque changement de statut, du plus ancien au plus récent.
          items:
            type: object
            properties:
              at:
                type: string
                format: date-time
              from:
                type: string
              to:
                type: string
              note:
                type: string
                description: Note d'examen ou réponse du réseau, le cas échéant.
        updated_at:
          type: string
          format: date-time
          nullable: true
    TravelRuleNetworkParticipant:
      type: object
      description: Le participant propre à cette application sur un réseau.
      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\_: jamais demandé, ou le réseau a refusé la première demande (voir last_error)\_; questionnaire_pending\_: en attente de l'approbation du questionnaire de diligence raisonnable\_; submitted_to_network\_: transmis à l'onboarding du réseau\_; active\_: le réseau a attribué à cette application son propre code de participant\_; suspended / rejected\_: Didit l'a suspendue ou rejetée."
        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: "La réponse du réseau lorsqu'il a refusé l'enregistrement\_; vide dans le cas contraire."
        history:
          type: array
          readOnly: true
          description: Chaque changement de statut, du plus ancien au plus récent.
          items:
            type: object
            properties:
              at:
                type: string
                format: date-time
              from:
                type: string
              to:
                type: string
              note:
                type: string
                description: Note d'examen ou réponse du réseau, le cas échéant.
    TravelRuleNetworkState:
      type: object
      description: >-
        Manière dont les messages Travel Rule sur un réseau seraient envoyés
        pour cette application, et pourquoi ils ne peuvent pas l'être. Statut de
        configuration, et non vérification en direct de l'état ou de la
        livraison.
      properties:
        rail:
          type: string
          enum:
            - GTR
            - TRUST
            - VERIFYVASP
            - SYGNA
        mode:
          type: string
          enum:
            - own
            - didit
            - 'off'
            - unavailable
          description: >-
            own : l'adhésion connectée de l'application est utilisée ; didit :
            l'adhésion de Didit intègre l'application en tant que participant
            actif propre ; off : routage de la plateforme désactivé dans
            disabled_networks sans adhésion propre ; unavailable : rien ne peut
            être envoyé sur ce réseau pour le moment (voir state et 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 : votre adhésion connectée effectue l'envoi ;
            live_through_didit : votre propre participant rattaché à l'adhésion
            de Didit effectue l'envoi ; off : vous avez désactivé le routage de
            la plateforme ; didit_onboarding : la propre adhésion de Didit à ce
            réseau n'est pas encore active, elle ne peut donc intégrer personne
            ; questionnaire_needed / questionnaire_in_review : le questionnaire
            de diligence raisonnable doit être soumis ou est en cours d'examen
            par Didit ; request_access : le questionnaire est approuvé, faites
            la demande auprès du réseau ; request_sent : votre participant est
            en cours d'onboarding ; unavailable : voir reason ; error : voir
            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: >-
            Détail de l'état lisible par machine. own_membership_only : Didit
            n'a pas d'application sur ce réseau (TRUST) ; connectez votre propre
            adhésion ; sandbox_application : les transferts sandbox n'atteignent
            jamais un réseau ; provisioning_failed : le réseau a refusé
            l'inscription, le last_error du participant en indique la raison et
            effectuer une nouvelle demande auprès du réseau permet de réessayer.
        platform_available:
          type: boolean
          description: >-
            Indique si l'adhésion propre de Didit à ce réseau est configurée ;
            il ne s'agit pas d'une vérification de l'état en direct.
        connected:
          type: boolean
          description: >-
            Indique s'il existe une adhésion client connectée. Les identifiants
            sont validés localement ; la validation réseau a lieu sur un échange
            en direct.
        participant:
          $ref: '#/components/schemas/TravelRuleNetworkParticipantSummary'
        vasps_reachable:
          type: integer
          description: VASP de l'annuaire joignables sur ce réseau.
        routed_30d:
          type: integer
          description: >-
            Les transferts de cette application acheminés sur ce réseau au cours
            des 30 derniers jours.
    TravelRuleNetworkQuestionnaireAnswers:
      type: object
      description: "Questionnaire de diligence raisonnable de réseau de Didit. Les enregistrements sont partiels\_: un enregistrement conserve chaque réponse qu'il ne nomme pas. La soumission requiert tous les champs sauf lei et data_protection_contact_email, ainsi que les trois attestations à vrai."
      properties:
        legal_name:
          type: string
          maxLength: 255
        registration_number:
          type: string
          maxLength: 255
        incorporation_country:
          type: string
          minLength: 2
          maxLength: 2
          description: Code pays ISO 3166-1 alpha-2.
        registered_address:
          type: string
          maxLength: 1000
        website:
          type: string
          format: uri
          maxLength: 500
        lei:
          type: string
          maxLength: 20
          description: Optionnel. Un LEI ISO 17442 valide lorsqu'il est renseigné.
        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: Code pays ISO 3166-1 alpha-2.
              licence_type:
                type: string
                maxLength: 255
              licence_number:
                type: string
                maxLength: 255
          description: Chaque licence ou immatriculation détenue par le VASP.
        operating_jurisdictions:
          type: array
          minItems: 1
          maxItems: 250
          items:
            type: string
            minLength: 2
            maxLength: 2
            description: Code pays 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: Doit être vrai pour soumettre.
        sanctions_screening_attested:
          type: boolean
          description: Doit être vrai pour soumettre.
        data_protection_attested:
          type: boolean
          description: Doit être vrai pour soumettre.
        data_protection_contact_email:
          type: string
          format: email
          description: Optionnel.
        expected_monthly_transfers:
          type: integer
          minimum: 0
        expected_monthly_volume_usd:
          type: string
          format: decimal
          description: >-
            Volume mensuel attendu en USD, jusqu'à 2 décimales. Renvoyé sous
            forme de chaîne.
        assets:
          type: array
          minItems: 1
          maxItems: 200
          items:
            type: string
            maxLength: 32
          description: Tickers d'actifs, stockés en majuscules, triés et dédupliqués.
    TravelRuleNetworkParticipantSummary:
      type: object
      nullable: true
      description: >-
        Le participant propre à cette application sur le réseau, ou null
        lorsqu'elle n'en a aucun.
      properties:
        mode:
          type: string
          enum:
            - platform
            - own
          description: >-
            platform : pris en charge par l'adhésion de Didit ; own : onboardé
            sous la propre adhésion de l'application.
        status:
          type: string
          enum:
            - not_requested
            - questionnaire_pending
            - submitted_to_network
            - active
            - suspended
            - rejected
          description: "not_requested\_: jamais demandé, ou le réseau a refusé la première demande (voir last_error)\_; questionnaire_pending\_: en attente de l'approbation du questionnaire de diligence raisonnable\_; submitted_to_network\_: transmis à l'onboarding du réseau\_; active\_: le réseau a attribué à cette application son propre code de participant\_; suspended / rejected\_: Didit l'a suspendue ou rejetée."
        participant_code:
          type: string
          description: >-
            Le code attribué par le réseau à cette application (pour GTR, son
            code VASP). Les messages sortants portent ce code, jamais celui de
            Didit.
        requested_at:
          type: string
          format: date-time
          nullable: true
        activated_at:
          type: string
          format: date-time
          nullable: true
        last_error:
          type: string
          description: "La réponse du réseau lorsqu'il a refusé l'enregistrement\_; vide dans le cas contraire."
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        La clé API de votre application, issue de Développeurs -> Clés API dans
        la Business Console. La clé principale dispose d'un accès complet. Une
        clé nommée peut être restreinte : aucun, lecture ou écriture par
        ressource, limitée à certains workflows ou aux sessions approuvées, à
        une liste d'adresses IP et à une date d'expiration. 401 signifie que la
        clé est incorrecte, révoquée ou expirée ; 403 signifie qu'aucune clé n'a
        été envoyée, que la clé n'a pas accès à cette ressource ou action, ou
        que la requête provient d'une adresse hors de sa liste d'IP ; 404 sur
        une route de session signifie que la session est hors des workflows ou
        des statuts de la clé. Une clé sans accès aux médias reçoit les URL
        d'images, de vidéos et de PDF à null, et une clé sans accès en écriture
        aux sessions reçoit les liens et tokens de session à null. Voir
        https://docs.didit.me/console/api-keys.

````

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