> ## 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 configuración de Travel Rule: perfil de VASP

> Lee con Didit la configuración de Travel Rule de tu aplicación: perfil de VASP, política de negociación, métodos de prueba, redes y travel address.



Prompt de la API para obtener la configuración de Travel Rule
        Copiar el prompt al portapapeles



      
      

\<pre>

\`Read the application's Travel Rule configuration and VASP profile.

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

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

What to read from the response:
\- is_enabled - whether the managed exchange runs for outbound travelRule transactions.
\- legal_name, lei, jurisdiction, compliance_email, is_discoverable - the VASP profile shown to counterparties and the directory.
\- name_matching_strictness (NONE | STRICT | DEFAULT | FUZZY), confirmation_timeout_hours, timeout_outcome (HOLD | REJECT | PROCEED), threshold_amount, inbound_auto_accept - the negotiation policy.
\- threshold_amount is compared with the amount converted to the application's default currency (or the amount_in_default_currency you send); a transfer whose amount cannot be converted stays in scope, and "0.00" puts every transfer in scope.
Sandbox applications never convert the amount, so there the threshold applies only when the request sends amount_in_default_currency.
\- inbound_auto_accept defaults to true.
\- allow_self_declaration, allow_screenshot_proof, auto_wallet_verification, vasp_attribution_enabled - proof-method and automation toggles (all default to true).
\- counterparty_screening_enabled - opt-in sanctions and adverse-media screening of counterparty VASPs, billed per screening at the Company AML Screening price (default false: nothing is screened or billed).
\- sunrise_policy, non_responsive_policy - HOLD | REJECT | PROCEED, or empty to follow timeout_outcome: what an expired transfer does to its transaction when the counterparty is a directory entry in a jurisdiction listed in sunrise_jurisdictions, or a directory entry whose responsiveness is UNRESPONSIVE.
The sunrise policy applies first, then the non-responsive policy, then timeout_outcome.
\- sunrise_jurisdictions - read-only; the countries Didit treats as in a Travel Rule sunrise period (currently CO, KH and VN).
Any other jurisdiction follows timeout_outcome.
\- disabled_networks - network rails (GTR | TRUST | VERIFYVASP | SYGNA) opted out of Didit's platform membership.
It only affects platform membership, which Didit does not offer on any network yet.
\- Didit has no platform membership on any network today (Didit is onboarding as a provider), so a network rail routes only through your own membership connected in Marketplace.
Enabling Travel Rule does not change network availability.
\- networks - read-only per-network status keyed by gtr/trust/verifyvasp/sygna: {rail, mode, state, reason, platform_available, connected, participant} where mode is own | didit | off | unavailable.
Production does not report didit yet: every network reads unavailable (state didit_onboarding) unless you connected your own membership (own) or disabled it (off).
GET /v3/travel-rule/networks/ returns the same states with the questionnaire and participants.
\- 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.
\- travel_address - read-only; your VASP's own encoded TRP inquiry address, for example "ta2ih1MicegQ3JqiKz9xT89KsSuwaDJYw8DgzmeS5uNDp3dGW3bweBWLKws442chRsyNxmmJnyWc7frxjjSeABVsYR11UuBePkw6E".
It is empty until Travel Rule is enabled (is_enabled: true).
Share it with counterparties so they can reach you machine-to-machine.
\- didit_network - read-only {listed, missing[], compliance_email_confirmed}: whether the Didit network lists your profile, so other Didit customers find it and reach you on the INTERNAL rail, and each condition still unmet (travel_rule_off, sandbox_application, not_discoverable, legal_name_missing, compliance_email_missing, compliance_email_unconfirmed, excluded_by_staff, internal_organization).
Confirm the compliance email with POST /v3/travel-rule/settings/compliance-email/confirmation/.

Update with PUT /v3/travel-rule/settings/ (partial update - send only the fields to change).

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

\</pre>



      
      

Pegar en

## Disponibilidad de redesGTR, TRUST, VerifyVASP y Sygna requieren una membresía activa.
Hoy Didit no tiene membresía de plataforma en ninguna de estas redes; Didit está en proceso de onboarding como proveedor.
Hasta entonces, un canal de red solo enruta a través de tu propia membresía, conectada en **Marketplace**.
Consulta `networks` para la aplicación que estás configurando:- **`own`** - Tu membresía conectada tiene prioridad, incluso si la red está en `disabled_networks`. Los intercambios usan tu identidad en la red.
- **`didit`** - La membresía de Didit incorpora tu aplicación como participante activo propio en esta red, con el código que la red te asignó.
  No se necesitan credenciales de membresía del cliente para esta red.
  Para llegar a este modo se requieren el cuestionario de red de Didit y una solicitud a la red: consulta [Obtener redes de Travel Rule](https://docs.didit.me/es/management-api/travel-rule/get-networks.md).
  El entorno de producción aún no informa sobre este modo, porque la membresía propia de Didit aún no está activa.
- **`off`** - Desactivaste el enrutamiento de plataforma y no tienes una membresía propia conectada. Quita la red de `disabled_networks` para permitir el enrutamiento de plataforma cuando esté disponible, o conecta tu propia membresía.
- **`unavailable`** - Todavía no se puede enviar nada por esta red para tu aplicación.
  `state` y `reason` indican el motivo: por ejemplo, `didit_onboarding` mientras la membresía propia de Didit en la red no está activa, o `questionnaire_needed` antes de que se apruebe tu cuestionario.
  Hoy todas las redes informan este modo, salvo que hayas conectado tu propia membresía o desactivado la red.
  Conecta tu propia membresía en **Marketplace**, o usa una contraparte `INTERNAL`, `TRP` o `EMAIL` accesible.`disabled_networks` solo afecta a la membresía de plataforma de Didit, que aún no está disponible, por lo que hoy no tiene ningún efecto en el enrutamiento.Se elige un canal de red cuando el `beneficiary_data` de la transferencia incluye el identificador de la contraparte en esa red (por ejemplo, `counterparty_gtr_vasp_code` o `counterparty_trust_membership_id`), o cuando la [entrada del directorio](https://docs.didit.me/es/transaction-monitoring/travel-rule.md#rutas) de la contraparte la incluye con un código en esa red.En GTR, VerifyVASP y Sygna, Didit lee la respuesta de la contraparte a partir de la respuesta de la red o consultando la red cada 5 minutos, y la transferencia pasa a `COMPLETED`, `COUNTERPARTY_MISMATCHED_DATA` o `COUNTERPARTY_VASP_GENERAL_DECLINE`.
TRUST solo envía: una transferencia enviada por esta red permanece en `AWAITING_COUNTERPARTY` hasta que transcurre `confirmation_timeout_hours` y pasa a `EXPIRED`; entonces se aplica `timeout_outcome`.
Si el mensaje no se puede entregar, la transferencia pasa en su lugar a `COUNTERPARTY_VASP_NOT_REACHABLE`.
Consulta [Redes de Travel Rule](https://docs.didit.me/es/transaction-monitoring/travel-rule-networks.md) para ver qué permite alcanzar cada red hoy.`platform_available` es un estado de configuración, no una comprobación en tiempo real del estado de la red. `connected` indica una membresía guardada que superó la validación local de credenciales, no un intercambio correcto con el proveedor. Activar `is_enabled` o vaciar `disabled_networks` no puede aprovisionar una membresía que falta.Para las comprobaciones que puedes ejecutar sin credenciales de red, consulta [Pruebas sin credenciales de red](https://docs.didit.me/es/transaction-monitoring/travel-rule.md#pruebas-sin-credenciales-de-red).


## OpenAPI

````yaml es/openapi-25.json GET /v3/travel-rule/settings/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: API de verificación de identidad. Autentícate con el encabezado x-api-key.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/travel-rule/settings/:
    get:
      tags:
        - Travel Rule
      summary: Obtener la configuración de Travel Rule
      description: >-
        Lee la configuración de Travel Rule de la aplicación y su perfil de
        VASP. En la primera lectura, crea automáticamente una fila de
        configuración predeterminada (desactivada) y un perfil vacío.
      operationId: getTravelRuleSettings
      responses:
        '200':
          description: Configuración actual de Travel Rule y perfil de VASP.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TravelRuleSettingsDetail'
              examples:
                Disabled (default):
                  value:
                    is_enabled: false
                    jurisdiction: EU
                    name_matching_strictness: DEFAULT
                    confirmation_timeout_hours: 48
                    timeout_outcome: HOLD
                    threshold_amount: '0.00'
                    inbound_auto_accept: true
                    allow_self_declaration: true
                    allow_screenshot_proof: true
                    auto_wallet_verification: true
                    vasp_attribution_enabled: true
                    legal_name: ''
                    lei: ''
                    compliance_email: ''
                    is_discoverable: true
                    counterparty_screening_enabled: false
                    sunrise_policy: ''
                    sunrise_jurisdictions:
                      - CO
                      - KH
                      - VN
                    non_responsive_policy: ''
                    travel_address: ''
                    disabled_networks: []
                    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
                    didit_network:
                      listed: false
                      missing:
                        - travel_rule_off
                        - legal_name_missing
                        - compliance_email_missing
                      compliance_email_confirmed: false
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: |-
            curl -X GET https://verification.didit.me/v3/travel-rule/settings/ \
              -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.retrieve_settings()
            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.retrieveSettings();
            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.TravelRule.RetrieveSettings(ctx)\nif err != nil {\n\tlog.Fatal(err)\n}\nfmt.Printf(\"%+v\\n\", result)"
        - lang: java
          label: Java
          source: |-
            import me.didit.Didit;

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

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

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

            result = didit.travel_rule.retrieve_settings
            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.RetrieveSettingsAsync();
            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    TravelRuleSettingsDetail:
      type: object
      properties:
        is_enabled:
          type: boolean
          description: >-
            Si el flujo gestionado de negociación de Travel Rule está activo
            para las transacciones `travelRule` salientes de esta aplicación.
        jurisdiction:
          type: string
          maxLength: 8
          description: >-
            Código de la jurisdicción en la que opera tu VASP. Valor
            predeterminado: `"EU"`. Didit lo asigna al régimen que registra en
            tus transacciones de Travel Rule como `travel_rule_regime` (por
            ejemplo, `EU` o el código de un Estado miembro de la UE se convierte
            en `eu`), en el que pueden basarse las reglas de transacción. Los
            demás clientes de Didit lo ven como tu jurisdicción en el directorio
            de VASP una vez que la red de Didit incluye tu perfil.
        name_matching_strictness:
          type: string
          enum:
            - NONE
            - STRICT
            - CONTAINS
            - DEFAULT
            - FUZZY
          description: >-
            Con qué rigor deben coincidir los nombres de los beneficiarios antes
            de que una transferencia pueda llegar a COMPLETED. `CONTAINS` acepta
            un nombre cuyas palabras aparezcan todas en el otro.
        confirmation_timeout_hours:
          type: integer
          minimum: 1
          description: >-
            Horas que una transferencia AWAITING_COUNTERPARTY puede permanecer
            sin confirmar antes de que el proceso de limpieza periódico la
            expire. Valor predeterminado: 48.
        timeout_outcome:
          type: string
          enum:
            - HOLD
            - REJECT
            - PROCEED
          description: >-
            Qué ocurre con la transacción subyacente cuando una transferencia
            expira. Valor predeterminado: HOLD. sunrise_policy y
            non_responsive_policy tienen prioridad cuando son aplicables y están
            configuradas.
        threshold_amount:
          type: string
          description: >-
            Cadena decimal, en la moneda predeterminada de tu aplicación.
            Importe mínimo de transferencia que dispara un intercambio
            gestionado; las transferencias inferiores se resuelven directamente
            como NOT_APPLICABLE. Didit compara el importe de la transacción
            convertido a tu moneda predeterminada, o el
            `amount_in_default_currency` que envíes; cuando no hay un importe
            convertido disponible, el umbral no se aplica. Valor predeterminado:
            "0.00" (el TFR de la UE no aplica ningún importe mínimo).
        ownership_validation_mode:
          type: string
          enum:
            - FULL
            - SIMPLIFIED
            - AUTOMATED
          description: >-
            Cuánta prueba requiere la propiedad de una wallet. `FULL` siempre
            necesita una prueba (mensaje firmado, depósito de prueba o captura
            de pantalla revisada), nunca la palabra del usuario final.
            `SIMPLIFIED` acepta una autodeclaración por debajo de
            `simplified_validation_threshold` y una prueba por encima.
            `AUTOMATED` permite que la libreta de direcciones y las pruebas
            anteriores respondan por sí solas, incluidas las autodeclaraciones
            mientras `allow_self_declaration` sea true. Valor predeterminado:
            `AUTOMATED`.
        simplified_validation_threshold:
          type: string
          description: >-
            Cadena decimal, valor predeterminado "0.00". En el modo
            `SIMPLIFIED`, una transferencia inferior a este importe (en la
            moneda del umbral) acepta una autodeclaración. Una transferencia sin
            importe en esa moneda se considera superior a él.
        data_sharing_fields:
          $ref: '#/components/schemas/TravelRuleDataSharingFields'
        matching_rules:
          $ref: '#/components/schemas/TravelRuleMatchingRules'
        legal_name:
          type: string
          description: >-
            Nombre legal de tu VASP. Es obligatorio (no puede estar vacío) para
            establecer is_enabled en true.
        lei:
          type: string
          description: >-
            Tu identificador de entidad jurídica (LEI), que se muestra en el
            directorio de VASP.
        compliance_email:
          type: string
          format: email
          description: >-
            Correo electrónico de contacto de cumplimiento de tu perfil de VASP.
            La red de Didit solo publica tu perfil cuando se confirma esta
            dirección mediante un enlace enviado por correo electrónico (POST
            /v3/travel-rule/settings/compliance-email/confirmation/). Si la
            cambias, necesitas una nueva confirmación.
        is_discoverable:
          type: boolean
          description: >-
            Indica si tu perfil de VASP puede figurar en la red de Didit: otros
            clientes de Didit lo encuentran en GET /v3/travel-rule/vasps/ y
            pueden contactarlo por la vía INTERNAL. Para figurar también se
            necesita una aplicación en producción, Travel Rule activado, una
            razón social y un correo electrónico de cumplimiento confirmado;
            didit_network indica cuáles faltan. Valor predeterminado: true.
        inbound_auto_accept:
          type: boolean
          description: >-
            Si es true, una consulta TRP entrante cuya wallet beneficiaria es
            una entrada verificada de la libreta de direcciones con un nombre
            coincidente se aprueba automáticamente. Si es false, esa consulta
            espera en ON_HOLD hasta que la apruebes o la deniegues con el
            endpoint de propiedad. Las transferencias por el rail INTERNAL y las
            posteriores al depósito no se ven afectadas. Valor predeterminado:
            true.
        allow_self_declaration:
          type: boolean
          description: >-
            Si es true, el widget de propiedad de wallet ofrece la
            autodeclaración como método de prueba alternativo. Valor
            predeterminado: true.
        allow_screenshot_proof:
          type: boolean
          description: >-
            Si es true, el widget de propiedad de wallet ofrece la carga de
            capturas de pantalla como método de evidencia de propiedad. Valor
            predeterminado: true.
        auto_wallet_verification:
          type: boolean
          description: >-
            Si es true, al enviar una transferencia saliente de Travel Rule que
            requiere que el usuario final demuestre el control de la wallet, se
            crea automáticamente una sesión del widget de propiedad de wallet
            vinculada a la transacción y se expone en el bloque action_required
            de la transacción. Valor predeterminado: true.
        vasp_attribution_enabled:
          type: boolean
          description: >-
            Si es true, una transferencia saliente de Travel Rule que ningún
            rail puede enrutar se atribuye mediante análisis de blockchain: la
            wallet de destino se asocia al VASP que la posee, la entidad se
            registra en la transferencia y en el directorio de VASP, y los rails
            se vuelven a ejecutar una vez con el nombre atribuido. Valor
            predeterminado: true.
        counterparty_screening_enabled:
          type: boolean
          description: >-
            Análisis opcional de sanciones y medios adversos de los VASP
            contraparte, facturado por análisis al precio del Análisis AML de
            empresas. Cuando está activado, Didit analiza la contraparte a la
            que llega un intercambio saliente (reutilizando un análisis de menos
            de 30 días) y puedes analizar una con POST
            /v3/travel-rule/vasps/{vasp_id}/screening/. Valor predeterminado
            false: no se analiza ni se factura nada.
        sunrise_policy:
          type: string
          enum:
            - ''
            - HOLD
            - REJECT
            - PROCEED
          description: >-
            Qué efecto tiene una transferencia expirada en su transacción cuando
            la contraparte es una entrada del directorio en una jurisdicción
            incluida en sunrise_jurisdictions, que aún no aplica la Travel Rule:
            HOLD la envía a revisión, REJECT la rechaza y PROCEED deja su estado
            sin cambios. Vacío (el valor por defecto) sigue timeout_outcome. Se
            aplica antes que non_responsive_policy.
        sunrise_jurisdictions:
          type: array
          items:
            type: string
          readOnly: true
          description: >-
            Solo lectura. Los países (ISO 3166 alfa-2) que Didit considera en
            periodo de transición (sunrise) de la Travel Rule, donde se aplica
            sunrise_policy. Actualmente, CO, KH y VN. Cualquier otra
            jurisdicción, así como una vacía o desconocida, sigue
            timeout_outcome.
        non_responsive_policy:
          type: string
          enum:
            - ''
            - HOLD
            - REJECT
            - PROCEED
          description: >-
            Qué efecto tiene una transferencia expirada en su transacción cuando
            la contraparte es una entrada del directorio cuya capacidad de
            respuesta es UNRESPONSIVE: HOLD, REJECT o PROCEED, igual que en
            timeout_outcome. Vacío (el valor por defecto) sigue timeout_outcome.
            sunrise_policy se aplica primero cuando ambas corresponden.
        travel_address:
          type: string
          description: >-
            Solo lectura. La travel address propia de tu VASP: el endpoint
            codificado de consultas TRP entrantes que otros VASP usan para
            contactarte. Está vacía mientras `is_enabled` sea false.
        disabled_networks:
          type: array
          items:
            type: string
            enum:
              - GTR
              - TRUST
              - VERIFYVASP
              - SYGNA
          description: >-
            Redes excluidas de la membresía de la plataforma. No desactiva tus
            propias membresías conectadas ni habilita redes no disponibles.
          default: []
        networks:
          type: object
          readOnly: true
          description: >-
            Por cada red, cómo enviaría esta aplicación y por qué no puede
            hacerlo. Ninguna red, incluida GTR, se incluye de forma
            predeterminada: una red es accesible a través de tu propia membresía
            conectada, o a través de la membresía de Didit una vez que la
            membresía de Didit en esa red esté activa y tu propio participante
            en ella esté activo. No es una comprobación en tiempo real del
            estado ni de la entrega.
          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: >-
            Si la red de Didit incluye tu perfil de VASP, de modo que otros
            clientes de Didit lo encuentren en el directorio y lo contacten por
            la vía INTERNAL, y cada condición que aún no cumple.
          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: >-
                Vacío cuando el perfil está listado.
                compliance_email_unconfirmed: envía la confirmación con POST
                /v3/travel-rule/settings/compliance-email/confirmation/ y abre
                el enlace recibido por correo. excluded_by_staff: Didit marcó la
                aplicación como de prueba, de demostración o interna.
            compliance_email_confirmed:
              type: boolean
              description: >-
                Si el compliance_email actual se confirmó mediante el enlace
                enviado por correo electrónico.
    TravelRuleDataSharingFields:
      type: object
      description: >-
        Los campos que Didit envía a la VASP contraparte sobre tus propios
        usuarios, por tipo de entidad. El `name` y la `wallet_address` se envían
        siempre, diga lo que diga la lista. Un tipo de entidad que nunca
        elegiste comparte todos los campos. Una lista vacía también es una
        elección: solo comparte el nombre y la wallet.
      properties:
        individual:
          type: array
          items:
            type: string
            enum:
              - name
              - wallet_address
              - address
              - national_id
              - customer_identification
              - date_of_birth
              - place_of_birth
          description: Campos compartidos sobre una persona física.
        company:
          type: array
          items:
            type: string
            enum:
              - name
              - wallet_address
              - address
              - national_id
              - customer_identification
          description: Campos compartidos sobre una persona jurídica.
    TravelRuleMatchingRules:
      type: object
      description: >-
        Con qué rigor se compara cada campo de los datos de la contraparte con
        los que tienes, por tipo de entidad. Un campo que omitas conserva su
        valor predeterminado. `NONE` omite la comparación, `STRICT` exige
        exactamente las mismas palabras, `CONTAINS` acepta un valor cuyas
        palabras aparezcan todas en el otro, `DEFAULT` es la coincidencia
        estándar por subconjunto y `FUZZY` acepta grafías parecidas (y, en las
        fechas de nacimiento, el día y el mes intercambiados).
      properties:
        individual:
          type: object
          description: Reglas para una persona física.
          properties:
            name:
              type: string
              enum:
                - NONE
                - STRICT
                - CONTAINS
                - DEFAULT
                - FUZZY
              description: 'Valor predeterminado: sigue `name_matching_strictness`.'
            date_of_birth:
              type: string
              enum:
                - NONE
                - STRICT
                - CONTAINS
                - DEFAULT
                - FUZZY
              description: 'Valor predeterminado: `NONE`.'
            address:
              type: string
              enum:
                - NONE
                - STRICT
                - CONTAINS
                - DEFAULT
                - FUZZY
              description: 'Valor predeterminado: `NONE`.'
            account:
              type: string
              enum:
                - NONE
                - STRICT
                - CONTAINS
                - DEFAULT
                - FUZZY
              description: >-
                La wallet por la que se enrutó el intercambio. Valor
                predeterminado: `STRICT`.
        company:
          type: object
          description: Reglas para una persona jurídica.
          properties:
            name:
              type: string
              enum:
                - NONE
                - STRICT
                - CONTAINS
                - DEFAULT
                - FUZZY
              description: 'Valor predeterminado: sigue `name_matching_strictness`.'
            address:
              type: string
              enum:
                - NONE
                - STRICT
                - CONTAINS
                - DEFAULT
                - FUZZY
              description: 'Valor predeterminado: `NONE`.'
            account:
              type: string
              enum:
                - NONE
                - STRICT
                - CONTAINS
                - DEFAULT
                - FUZZY
              description: >-
                La wallet por la que se enrutó el intercambio. Valor
                predeterminado: `STRICT`.
    TravelRuleNetworkState:
      type: object
      description: >-
        Cómo se enviarían los mensajes de Travel Rule en una red para esta
        aplicación y por qué no pueden enviarse. Es un estado de configuración,
        no una comprobación en vivo del estado ni de la entrega.
      properties:
        rail:
          type: string
          enum:
            - GTR
            - TRUST
            - VERIFYVASP
            - SYGNA
        mode:
          type: string
          enum:
            - own
            - didit
            - 'off'
            - unavailable
          description: >-
            own: se usa la membresía conectada de la aplicación; didit: la
            membresía de Didit incluye a la aplicación como su propio
            participante activo; off: enrutamiento de plataforma desactivado en
            disabled_networks y sin membresía propia; unavailable: todavía no
            hay nada que pueda enviar en esta red (consulta state y 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: envía tu membresía conectada; live_through_didit:
            envía tu propio participante a través de la membresía de Didit; off:
            desactivaste el enrutamiento de plataforma; didit_onboarding: la
            membresía propia de Didit en esta red aún no está activa, por lo que
            no puede dar servicio a nadie; questionnaire_needed /
            questionnaire_in_review: el cuestionario de diligencia debida debe
            enviarse o está en manos de Didit; request_access: el cuestionario
            está aprobado, solicita la red; request_sent: tu participante está
            en proceso de onboarding; unavailable: consulta reason; error:
            consulta 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: >-
            Detalle legible por máquina del estado. own_membership_only: Didit
            no gestiona aplicaciones en esta red (TRUST), conecta tu propia
            membresía; sandbox_application: las transferencias de sandbox nunca
            llegan a una red; provisioning_failed: la red rechazó el registro,
            el last_error del participante indica el motivo y volver a solicitar
            la red lo reintenta.
        platform_available:
          type: boolean
          description: >-
            Indica si está configurada la membresía propia de Didit en esta red;
            no es una comprobación de estado en tiempo real.
        connected:
          type: boolean
          description: >-
            Indica si existe una membresía de cliente conectada. Las
            credenciales se validan localmente; la validación en la red se
            produce en un intercambio real.
        participant:
          $ref: '#/components/schemas/TravelRuleNetworkParticipantSummary'
        vasps_reachable:
          type: integer
          description: VASP del directorio accesibles en esta red.
        routed_30d:
          type: integer
          description: >-
            Las transferencias de esta aplicación realizadas en esta red en los
            últimos 30 días.
    TravelRuleNetworkParticipantSummary:
      type: object
      nullable: true
      description: >-
        El participante propio de esta aplicación en la red, o null cuando no
        tiene ninguno.
      properties:
        mode:
          type: string
          enum:
            - platform
            - own
          description: >-
            platform: a través de la membresía de Didit; own: incorporado con la
            membresía propia de la aplicación.
        status:
          type: string
          enum:
            - not_requested
            - questionnaire_pending
            - submitted_to_network
            - active
            - suspended
            - rejected
          description: >-
            not_requested: nunca se solicitó, o la red rechazó la primera
            solicitud (consulta last_error); questionnaire_pending: a la espera
            de que se apruebe el cuestionario de diligencia debida;
            submitted_to_network: entregado al onboarding de la red; active: la
            red asignó a esta aplicación su propio código de participante;
            suspended / rejected: Didit lo suspendió o lo rechazó.
        participant_code:
          type: string
          description: >-
            El código que la red asignó a esta aplicación (en GTR, su código de
            VASP). Los mensajes salientes llevan este código, nunca el 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 respuesta de la red cuando rechazó el registro; vacío en caso
            contrario.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        La clave de API de tu aplicación, que encontrarás en Developers -> API
        keys en la Business Console. La clave principal tiene acceso completo.
        Una clave con nombre puede tener un alcance limitado: ninguno, lectura o
        escritura por recurso, limitada a algunos flujos o a sesiones aprobadas,
        a una lista de direcciones IP y a una fecha de caducidad. 401 significa
        que la clave es incorrecta, se revocó o expiró; 403 significa que no se
        envió ninguna clave, que la clave no tiene acceso a este recurso o
        acción, o que la solicitud provino de una dirección fuera de su lista de
        IP; 404 en una ruta de sesión significa que la sesión está fuera de los
        flujos o estados de la clave. Una clave sin acceso a contenido
        multimedia recibe las URL de imágenes, videos y PDF como null, y una
        clave sin permiso de escritura en sesiones recibe los enlaces y tokens
        de sesión como null. Consulta https://docs.didit.me/console/api-keys.

````

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