> ## 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 de mise à jour des paramètres Travel Rule

> Activez Travel Rule avec Didit et configurez le profil VASP, négociation, preuves et réseaux exclus via une mise à jour partielle.



Prompt API de mise à jour des paramètres Travel Rule
        Copier le prompt dans le presse-papiers



      
      

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



      
      

Coller dans



## OpenAPI

````yaml fr/openapi-25.json PUT /v3/travel-rule/settings/
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/settings/:
    put:
      tags:
        - Travel Rule
      summary: Mettre à jour les paramètres Travel Rule
      description: >-
        Crée ou met à jour les paramètres Travel Rule et le profil VASP de
        l'application. Mise à jour partielle — n'envoyez que les champs que vous
        souhaitez modifier. Définir `is_enabled: true` nécessite un `legal_name`
        non vide (déjà enregistré ou inclus dans la même requête), sinon renvoie
        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: Paramètres et profil mis à jour, sous la même forme que le GET.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TravelRuleSettingsDetail'
        '400':
          description: >-
            Erreur de validation, par exemple activation sans legal_name,
            sunrise_policy ou non_responsive_policy autre que HOLD, REJECT,
            PROCEED ou vide, champ inconnu dans `matching_rules`, ou choix de
            `data_sharing_fields` ne pouvant pas respecter les obligations de
            donneur d'ordre du régime de votre juridiction (les erreurs sont
            indexées par type d'entité sous `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` accepte un nom dont tous les mots apparaissent dans
            l'autre.
        confirmation_timeout_hours:
          type: integer
          minimum: 1
        timeout_outcome:
          type: string
          enum:
            - HOLD
            - REJECT
            - PROCEED
        compliance_email:
          type: string
          format: email
          description: "E-mail du contact de conformité pour votre profil VASP. Le réseau Didit ne répertorie votre profil qu'une fois cette adresse confirmée via un lien envoyé par e-mail (POST /v3/travel-rule/settings/compliance-email/confirmation/)\_; la modifier nécessite une nouvelle confirmation."
        is_discoverable:
          type: boolean
          description: >-
            Indique si votre profil VASP peut être répertorié dans le réseau
            Didit : trouvable dans GET /v3/travel-rule/vasps/ par les autres
            clients de Didit et joignable sur le rail INTERNAL. Pour être
            répertorié, vous devez également disposer d'une application de
            production, activer la Travel Rule, renseigner une raison sociale et
            confirmer un e-mail de conformité ; didit_network indique les
            éléments manquants. Valeur par défaut : true.
        threshold_amount:
          type: string
          description: >-
            Chaîne décimale, supérieure ou égale à zéro, dans la devise par
            défaut de votre application. Montant minimal du transfert
            déclenchant un échange géré.
        ownership_validation_mode:
          type: string
          enum:
            - FULL
            - SIMPLIFIED
            - AUTOMATED
          description: Voir le champ de réponse du même nom.
        simplified_validation_threshold:
          type: string
          description: Chaîne décimale, supérieure ou égale à 0.
        data_sharing_fields:
          allOf:
            - $ref: '#/components/schemas/TravelRuleDataSharingFields'
          description: >-
            Fusionné par type d'entité : un type d'entité que vous omettez
            conserve son choix actuel. Un choix qui ne peut pas respecter les
            obligations de donneur d'ordre de votre régime de `jurisdiction`
            (TFR de l'UE ou Recommandation 16 du GAFI), y compris une liste
            vide, est refusé avec `400`.
        matching_rules:
          allOf:
            - $ref: '#/components/schemas/TravelRuleMatchingRules'
          description: >-
            Fusionné par type d'entité, et par champ au sein de celui-ci. Un
            champ que ce type d'entité ne compare pas (par exemple
            `date_of_birth` pour `company`) est refusé avec `400`.
        inbound_auto_accept:
          type: boolean
        allow_self_declaration:
          type: boolean
        allow_screenshot_proof:
          type: boolean
          description: >-
            Si true, le widget de propriété de portefeuille propose le
            téléversement de capture d'écran comme méthode de preuve de
            propriété. Par défaut à true.
        auto_wallet_verification:
          type: boolean
        vasp_attribution_enabled:
          type: boolean
        counterparty_screening_enabled:
          type: boolean
          description: "Filtrage optionnel des sanctions et de la presse négative pour les VASP de contrepartie, facturé par filtrage au tarif du Filtrage AML d'entreprise. Lorsqu'il est activé, Didit filtre la contrepartie vers laquelle est effectué un échange sortant (en réutilisant un filtrage de moins de 30 jours) et vous pouvez en filtrer un avec POST /v3/travel-rule/vasps/{vasp_id}/screening/. Valeur par défaut false\_: rien n'est filtré ni facturé."
        sunrise_policy:
          type: string
          enum:
            - ''
            - HOLD
            - REJECT
            - PROCEED
          description: >-
            HOLD, REJECT, PROCEED, ou vide pour suivre timeout_outcome.
            Consultez le champ de réponse du même nom.
        non_responsive_policy:
          type: string
          enum:
            - ''
            - HOLD
            - REJECT
            - PROCEED
          description: >-
            HOLD, REJECT, PROCEED, ou vide pour suivre timeout_outcome.
            Consultez le champ de réponse du même nom.
        disabled_networks:
          type: array
          items:
            type: string
            enum:
              - GTR
              - TRUST
              - VERIFYVASP
              - SYGNA
          description: >-
            Réseaux ayant renoncé à l'adhésion à la plateforme. Ne désactive pas
            vos propres adhésions connectées ni ne provisionne les réseaux
            indisponibles.
          default: []
      description: >-
        Tous les champs sont facultatifs ; PUT applique une mise à jour
        partielle.
    TravelRuleSettingsDetail:
      type: object
      properties:
        is_enabled:
          type: boolean
          description: >-
            Indique si le flux géré de négociation Travel Rule est actif pour
            les transactions `travelRule` sortantes sur cette application.
        jurisdiction:
          type: string
          maxLength: 8
          description: >-
            Le code de juridiction d'exploitation de votre VASP. Par défaut
            `"EU"`. Didit l'associe au régime qu'il applique à vos transactions
            Travel Rule en tant que `travel_rule_regime` (par exemple, `EU` ou
            le code d'un membre de l'UE devient `eu`), sur lequel les règles de
            transaction peuvent s'appuyer. Les autres clients de Didit le voient
            comme votre juridiction dans l'annuaire des VASP une fois que le
            réseau Didit répertorie votre profil.
        name_matching_strictness:
          type: string
          enum:
            - NONE
            - STRICT
            - CONTAINS
            - DEFAULT
            - FUZZY
          description: >-
            Niveau de rigueur requis pour la correspondance des noms de
            bénéficiaires avant qu'un transfert ne puisse passer à COMPLETED.
            `CONTAINS` accepte un nom dont tous les mots apparaissent dans
            l'autre.
        confirmation_timeout_hours:
          type: integer
          minimum: 1
          description: >-
            Nombre d'heures pendant lesquelles un transfert
            AWAITING_COUNTERPARTY peut rester non confirmé avant que le
            processus de nettoyage périodique ne le fasse expirer. Par défaut
            48.
        timeout_outcome:
          type: string
          enum:
            - HOLD
            - REJECT
            - PROCEED
          description: >-
            Ce qui advient de la transaction sous-jacente lorsqu'un transfert
            expire. Par défaut HOLD. sunrise_policy et non_responsive_policy
            prévalent lorsqu'elles s'appliquent et sont définies.
        threshold_amount:
          type: string
          description: >-
            Chaîne décimale, dans la devise par défaut de votre application.
            Montant de transfert minimal déclenchant un échange géré ; les
            transferts inférieurs à ce seuil sont résolus directement en
            NOT_APPLICABLE. Didit compare le montant de la transaction converti
            dans votre devise par défaut, ou l'`amount_in_default_currency` que
            vous envoyez ; lorsqu'aucun montant converti n'est disponible, le
            seuil ne s'applique pas. La valeur par défaut est "0.00" (le
            règlement européen TFR n'applique aucun montant minimal).
        ownership_validation_mode:
          type: string
          enum:
            - FULL
            - SIMPLIFIED
            - AUTOMATED
          description: >-
            Niveau de preuve requis pour la propriété d'un portefeuille. `FULL`
            requiert toujours une preuve (message signé, dépôt test ou capture
            d'écran examinée), jamais la simple déclaration de l'utilisateur
            final. `SIMPLIFIED` accepte une auto-déclaration en dessous de
            `simplified_validation_threshold` et une preuve au-dessus.
            `AUTOMATED` permet au carnet d'adresses et aux preuves antérieures
            de répondre d'eux-mêmes, auto-déclarations incluses tant que
            `allow_self_declaration` est true. Valeur par défaut `AUTOMATED`.
        simplified_validation_threshold:
          type: string
          description: >-
            Chaîne décimale, "0.00" par défaut. En mode `SIMPLIFIED`, un
            transfert inférieur à ce montant (dans la devise du seuil) accepte
            une auto-déclaration. Un transfert sans montant dans cette devise
            est considéré comme supérieur.
        data_sharing_fields:
          $ref: '#/components/schemas/TravelRuleDataSharingFields'
        matching_rules:
          $ref: '#/components/schemas/TravelRuleMatchingRules'
        legal_name:
          type: string
          description: >-
            Raison sociale de votre VASP. Requis (non vide) pour définir
            is_enabled sur true.
        lei:
          type: string
          description: >-
            Votre identifiant d'entité juridique (LEI), affiché dans le
            répertoire des VASP.
        compliance_email:
          type: string
          format: email
          description: "E-mail du contact de conformité pour votre profil VASP. Le réseau Didit ne répertorie votre profil qu'une fois cette adresse confirmée via un lien envoyé par e-mail (POST /v3/travel-rule/settings/compliance-email/confirmation/)\_; la modifier nécessite une nouvelle confirmation."
        is_discoverable:
          type: boolean
          description: >-
            Indique si votre profil VASP peut être répertorié dans le réseau
            Didit : trouvable dans GET /v3/travel-rule/vasps/ par les autres
            clients de Didit et joignable sur le rail INTERNAL. Pour être
            répertorié, vous devez également disposer d'une application de
            production, activer la Travel Rule, renseigner une raison sociale et
            confirmer un e-mail de conformité ; didit_network indique les
            éléments manquants. Valeur par défaut : true.
        inbound_auto_accept:
          type: boolean
          description: >-
            Si true, une demande TRP entrante dont le portefeuille bénéficiaire
            correspond à une entrée vérifiée du carnet d'adresses avec un nom
            correspondant est approuvée automatiquement. Si false, cette demande
            reste en ON_HOLD jusqu'à ce que vous l'approuviez ou la refusiez via
            l'endpoint d'actionnariat. Les transferts sur le canal INTERNAL et
            postérieurs au dépôt ne sont pas affectés. Par défaut à true.
        allow_self_declaration:
          type: boolean
          description: >-
            Si true, le widget de propriété de portefeuille propose
            l'auto-déclaration comme méthode de preuve de repli. Par défaut à
            true.
        allow_screenshot_proof:
          type: boolean
          description: >-
            Si true, le widget de propriété de portefeuille propose le
            téléversement de capture d'écran comme méthode de preuve de
            propriété. Par défaut à true.
        auto_wallet_verification:
          type: boolean
          description: >-
            Si true, la soumission d'un transfert Travel Rule sortant
            nécessitant une preuve de contrôle du portefeuille par l'utilisateur
            final génère automatiquement une session de widget de propriété de
            portefeuille liée à la transaction et l'expose dans le bloc
            action_required de la transaction. Par défaut à true.
        vasp_attribution_enabled:
          type: boolean
          description: >-
            Si true, un transfert Travel Rule sortant qu'aucun canal ne peut
            acheminer est attribué grâce à l'analyse blockchain : le
            portefeuille de destination est résolu vers son VASP propriétaire,
            l'entité est enregistrée sur le transfert et dans le répertoire des
            VASP, et les canaux sont réévalués une fois avec le nom attribué.
            Par défaut à true.
        counterparty_screening_enabled:
          type: boolean
          description: "Filtrage optionnel des sanctions et de la presse négative pour les VASP de contrepartie, facturé par filtrage au tarif du Filtrage AML d'entreprise. Lorsqu'il est activé, Didit filtre la contrepartie vers laquelle est effectué un échange sortant (en réutilisant un filtrage de moins de 30 jours) et vous pouvez en filtrer un avec POST /v3/travel-rule/vasps/{vasp_id}/screening/. Valeur par défaut false\_: rien n'est filtré ni facturé."
        sunrise_policy:
          type: string
          enum:
            - ''
            - HOLD
            - REJECT
            - PROCEED
          description: >-
            Action d'un transfert expiré sur sa transaction lorsque la
            contrepartie est une entrée de l'annuaire située dans une
            juridiction présente dans sunrise_jurisdictions, qui n'applique pas
            encore la Travel Rule : HOLD la passe en examen, REJECT la refuse,
            PROCEED laisse son statut inchangé. La valeur vide (par défaut) suit
            timeout_outcome. S'applique avant non_responsive_policy.
        sunrise_jurisdictions:
          type: array
          items:
            type: string
          readOnly: true
          description: >-
            Lecture seule. Les pays (ISO 3166 alpha-2) traités par Didit comme
            étant dans une période transitoire de la Travel Rule, où
            sunrise_policy s'applique. Actuellement CO, KH et VN. Toute autre
            juridiction, ainsi qu'une juridiction vide ou inconnue, suit
            timeout_outcome.
        non_responsive_policy:
          type: string
          enum:
            - ''
            - HOLD
            - REJECT
            - PROCEED
          description: >-
            Action d'un transfert expiré sur sa transaction lorsque la
            contrepartie est une entrée de l'annuaire dont la réactivité est
            UNRESPONSIVE : HOLD, REJECT ou PROCEED, comme pour timeout_outcome.
            La valeur vide (par défaut) suit timeout_outcome. sunrise_policy
            s'applique en premier lorsque les deux s'appliquent.
        travel_address:
          type: string
          description: >-
            Lecture seule. Travel Address propre à votre VASP - l'endpoint
            encodé de requête entrante TRP utilisé par les autres VASP pour vous
            joindre. Vide tant que `is_enabled` est faux.
        disabled_networks:
          type: array
          items:
            type: string
            enum:
              - GTR
              - TRUST
              - VERIFYVASP
              - SYGNA
          description: >-
            Réseaux ayant renoncé à l'adhésion à la plateforme. Ne désactive pas
            vos propres adhésions connectées ni ne provisionne les réseaux
            indisponibles.
          default: []
        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'
        didit_network:
          type: object
          readOnly: true
          description: >-
            Indique si le réseau Didit répertorie votre profil VASP, afin que
            les autres clients de Didit le trouvent dans l'annuaire et le
            joignent via le canal INTERNAL, ainsi que chaque condition encore
            manquante.
          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: >-
                Vide lorsqu'il est listé. compliance_email_unconfirmed : envoyez
                la confirmation avec POST
                /v3/travel-rule/settings/compliance-email/confirmation/ et
                ouvrez le lien reçu par e-mail. excluded_by_staff : Didit a
                marqué l'application comme étant un test, une démo ou une
                application interne.
            compliance_email_confirmed:
              type: boolean
              description: >-
                Indique si le compliance_email actuel a été confirmé via le lien
                envoyé par e-mail.
    TravelRuleDataSharingFields:
      type: object
      description: >-
        Les champs que Didit envoie au VASP de contrepartie concernant vos
        propres utilisateurs, par type d'entité. Le `name` et l'`wallet_address`
        sont toujours envoyés, quel que soit le contenu de la liste. Un type
        d'entité que vous n'avez jamais choisi partage tous les champs. Une
        liste vide est également un choix : elle ne partage que le nom et le
        portefeuille.
      properties:
        individual:
          type: array
          items:
            type: string
            enum:
              - name
              - wallet_address
              - address
              - national_id
              - customer_identification
              - date_of_birth
              - place_of_birth
          description: Champs partagés concernant une personne physique.
        company:
          type: array
          items:
            type: string
            enum:
              - name
              - wallet_address
              - address
              - national_id
              - customer_identification
          description: Champs partagés concernant une personne morale.
    TravelRuleMatchingRules:
      type: object
      description: >-
        Niveau de rigueur de la comparaison de chaque champ des données de la
        contrepartie avec celles dont vous disposez, par type d'entité. Un champ
        omis conserve sa valeur par défaut. `NONE` ignore la comparaison,
        `STRICT` requiert exactement les mêmes mots, `CONTAINS` accepte une
        valeur dont tous les mots apparaissent dans l'autre, `DEFAULT`
        correspond à la vérification par sous-ensemble standard, et `FUZZY`
        accepte les graphies proches (et, pour les dates de naissance,
        l'inversion du jour et du mois).
      properties:
        individual:
          type: object
          description: Règles pour une personne physique.
          properties:
            name:
              type: string
              enum:
                - NONE
                - STRICT
                - CONTAINS
                - DEFAULT
                - FUZZY
              description: 'Par défaut : suit `name_matching_strictness`.'
            date_of_birth:
              type: string
              enum:
                - NONE
                - STRICT
                - CONTAINS
                - DEFAULT
                - FUZZY
              description: Valeur par défaut `NONE`.
            address:
              type: string
              enum:
                - NONE
                - STRICT
                - CONTAINS
                - DEFAULT
                - FUZZY
              description: Valeur par défaut `NONE`.
            account:
              type: string
              enum:
                - NONE
                - STRICT
                - CONTAINS
                - DEFAULT
                - FUZZY
              description: >-
                Le portefeuille par lequel l'échange a été acheminé. Par défaut
                `STRICT`.
        company:
          type: object
          description: Règles applicables à une personne morale.
          properties:
            name:
              type: string
              enum:
                - NONE
                - STRICT
                - CONTAINS
                - DEFAULT
                - FUZZY
              description: 'Par défaut : suit `name_matching_strictness`.'
            address:
              type: string
              enum:
                - NONE
                - STRICT
                - CONTAINS
                - DEFAULT
                - FUZZY
              description: Valeur par défaut `NONE`.
            account:
              type: string
              enum:
                - NONE
                - STRICT
                - CONTAINS
                - DEFAULT
                - FUZZY
              description: >-
                Le portefeuille par lequel l'échange a été acheminé. Par défaut
                `STRICT`.
    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.
    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.