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

# Aggiorna impostazioni Travel Rule: API di configurazione

> Attiva la Travel Rule e configura profilo VASP, policy di negoziazione, metodi di prova e opt-out delle reti con un aggiornamento parziale di Didit.



Prompt API per l'aggiornamento delle impostazioni Travel Rule
        Copia il prompt negli appunti



      
      

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



      
      

Incolla in



## OpenAPI

````yaml it/openapi-25.json PUT /v3/travel-rule/settings/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: API di verifica dell'identità. Autenticati con l'intestazione x-api-key.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/travel-rule/settings/:
    put:
      tags:
        - Travel Rule
      summary: Aggiorna le impostazioni di Travel Rule
      description: >-
        Esegui l'upsert delle impostazioni della Travel Rule e del profilo VASP
        dell'applicazione. Aggiornamento parziale: invia solo i campi che
        desideri modificare. L'impostazione `is_enabled: true` richiede un
        valore non vuoto per `legal_name` (già memorizzato o incluso nella
        stessa richiesta), altrimenti restituisce 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: Impostazioni e profilo aggiornati, con la stessa struttura del GET.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TravelRuleSettingsDetail'
        '400':
          description: >-
            Errore di validazione, ad esempio abilitazione senza un legal_name,
            una sunrise_policy o non_responsive_policy diversa da HOLD, REJECT,
            PROCEED o vuota, un campo sconosciuto in `matching_rules`, oppure
            una scelta di `data_sharing_fields` che non è in grado di soddisfare
            gli obblighi dell'ordinante previsti dal regime della tua
            giurisdizione (gli errori sono indicizzati per tipo di entità sotto
            `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` accetta un nome le cui parole compaiono tutte nell''altro.'
        confirmation_timeout_hours:
          type: integer
          minimum: 1
        timeout_outcome:
          type: string
          enum:
            - HOLD
            - REJECT
            - PROCEED
        compliance_email:
          type: string
          format: email
          description: >-
            Email di contatto per la compliance per il tuo profilo VASP. La rete
            Didit mostra il tuo profilo solo dopo che questo indirizzo è stato
            confermato tramite un link inviato via email (POST
            /v3/travel-rule/settings/compliance-email/confirmation/); la
            modifica richiede una nuova conferma.
        is_discoverable:
          type: boolean
          description: >-
            Indica se il tuo profilo VASP può essere elencato nella rete Didit:
            trovato in GET /v3/travel-rule/vasps/ da altri clienti Didit e
            raggiunto tramite il canale INTERNAL. L'inserimento nell'elenco
            richiede inoltre un'applicazione attiva, Travel Rule abilitata, una
            ragione sociale e un'email di compliance confermata; didit_network
            indica quali requisiti mancano. Predefinito true.
        threshold_amount:
          type: string
          description: >-
            Stringa decimale, pari o superiore a zero, nella valuta predefinita
            della tua applicazione. Importo minimo di trasferimento che attiva
            uno scambio gestito.
        ownership_validation_mode:
          type: string
          enum:
            - FULL
            - SIMPLIFIED
            - AUTOMATED
          description: Vedere il campo di risposta con lo stesso nome.
        simplified_validation_threshold:
          type: string
          description: Stringa decimale, pari o superiore a 0.
        data_sharing_fields:
          allOf:
            - $ref: '#/components/schemas/TravelRuleDataSharingFields'
          description: >-
            Unito per tipo di entità: un tipo di entità che ometti mantiene la
            scelta corrente. Una scelta che non soddisfa gli obblighi relativi
            all'ordinante previsti dal regime della tua `jurisdiction` (EU TFR o
            FATF Recommendation 16), inclusa una lista vuota, viene rifiutata
            con `400`.
        matching_rules:
          allOf:
            - $ref: '#/components/schemas/TravelRuleMatchingRules'
          description: >-
            Unito per tipo di entità e per campo al suo interno. Un campo che
            tale tipo di entità non confronta (ad esempio `date_of_birth` per
            `company`) viene rifiutato con `400`.
        inbound_auto_accept:
          type: boolean
        allow_self_declaration:
          type: boolean
        allow_screenshot_proof:
          type: boolean
          description: >-
            Se true, il widget di titolarità del wallet offre il caricamento di
            screenshot come metodo di prova dell'assetto proprietario. Il valore
            predefinito è true.
        auto_wallet_verification:
          type: boolean
        vasp_attribution_enabled:
          type: boolean
        counterparty_screening_enabled:
          type: boolean
          description: >-
            Screening opzionale su sanzioni e notizie negative dei VASP di
            controparte, fatturato per screening al prezzo di Screening AML per
            aziende. Se attivo, Didit esegue lo screening della controparte
            raggiunta da un trasferimento in uscita (riutilizzando uno screening
            effettuato da meno di 30 giorni) e puoi eseguirne uno con POST
            /v3/travel-rule/vasps/{vasp_id}/screening/. Il valore predefinito è
            false: non viene eseguito alcuno screening né addebitato alcun
            costo.
        sunrise_policy:
          type: string
          enum:
            - ''
            - HOLD
            - REJECT
            - PROCEED
          description: >-
            HOLD, REJECT, PROCEED o vuoto per seguire timeout_outcome. Consulta
            il campo di risposta con lo stesso nome.
        non_responsive_policy:
          type: string
          enum:
            - ''
            - HOLD
            - REJECT
            - PROCEED
          description: >-
            HOLD, REJECT, PROCEED o vuoto per seguire timeout_outcome. Consulta
            il campo di risposta con lo stesso nome.
        disabled_networks:
          type: array
          items:
            type: string
            enum:
              - GTR
              - TRUST
              - VERIFYVASP
              - SYGNA
          description: >-
            Reti escluse dall'adesione alla piattaforma. Non disabilita le
            proprie adesioni connesse né effettua il provisioning di reti non
            disponibili.
          default: []
      description: Tutti i campi sono opzionali; PUT applica un aggiornamento parziale.
    TravelRuleSettingsDetail:
      type: object
      properties:
        is_enabled:
          type: boolean
          description: >-
            Indica se il flusso gestito di negoziazione Travel Rule è attivo per
            le transazioni `travelRule` in uscita su questa applicazione.
        jurisdiction:
          type: string
          maxLength: 8
          description: >-
            Il codice della giurisdizione operativa del tuo VASP. Predefinito
            `"EU"`. Didit lo mappa nel regime che appone sulle tue transazioni
            Travel Rule come `travel_rule_regime` (ad esempio `EU` o il codice
            di un paese membro dell'UE diventa `eu`), su cui le regole di
            transazione possono basarsi. Gli altri clienti Didit lo vedono come
            la tua giurisdizione nella directory dei VASP una volta che la rete
            Didit inserisce il tuo profilo nella directory.
        name_matching_strictness:
          type: string
          enum:
            - NONE
            - STRICT
            - CONTAINS
            - DEFAULT
            - FUZZY
          description: >-
            Il livello di rigore con cui i nomi dei beneficiari devono
            corrispondere prima che un trasferimento possa raggiungere lo stato
            COMPLETED. `CONTAINS` accetta un nome le cui parole compaiono tutte
            nell'altro.
        confirmation_timeout_hours:
          type: integer
          minimum: 1
          description: >-
            Ore durante le quali un trasferimento AWAITING_COUNTERPARTY può
            rimanere non confermato prima che il processo periodico di pulizia
            lo dichiari scaduto. Valore predefinito: 48.
        timeout_outcome:
          type: string
          enum:
            - HOLD
            - REJECT
            - PROCEED
          description: >-
            Cosa succede alla transazione sottostante quando un trasferimento
            scade. Valore predefinito HOLD. sunrise_policy e
            non_responsive_policy hanno la precedenza quando sono applicabili e
            configurate.
        threshold_amount:
          type: string
          description: >-
            Stringa decimale, nella valuta predefinita della tua applicazione.
            Importo minimo di trasferimento che attiva uno scambio gestito; i
            trasferimenti inferiori ad esso si risolvono direttamente in
            NOT_APPLICABLE. Didit confronta l'importo della transazione
            convertito nella tua valuta predefinita, o l'importo
            `amount_in_default_currency` inviato; quando non è disponibile alcun
            importo convertito, la soglia non si applica. Il valore predefinito
            è "0.00" (il TFR dell'UE non applica alcun importo minimo).
        ownership_validation_mode:
          type: string
          enum:
            - FULL
            - SIMPLIFIED
            - AUTOMATED
          description: >-
            Il livello di prova richiesto per l'assetto proprietario di un
            wallet. `FULL` richiede sempre una prova (messaggio firmato,
            deposito di prova o screenshot verificato), mai la sola
            dichiarazione dell'utente finale. `SIMPLIFIED` accetta
            un'autodichiarazione al di sotto di
            `simplified_validation_threshold` e una prova al di sopra.
            `AUTOMATED` consente alla rubrica e a prove precedenti di rispondere
            autonomamente, incluse le autodichiarazioni quando
            `allow_self_declaration` è true. Il valore predefinito è
            `AUTOMATED`.
        simplified_validation_threshold:
          type: string
          description: >-
            Stringa decimale, valore predefinito "0.00". In modalità
            `SIMPLIFIED`, un trasferimento inferiore a questo importo (nella
            valuta della soglia) accetta un'autodichiarazione. Un trasferimento
            senza importo in tale valuta viene considerato superiore ad essa.
        data_sharing_fields:
          $ref: '#/components/schemas/TravelRuleDataSharingFields'
        matching_rules:
          $ref: '#/components/schemas/TravelRuleMatchingRules'
        legal_name:
          type: string
          description: >-
            La ragione sociale del tuo VASP. Obbligatoria (non vuota) per
            impostare is_enabled su true.
        lei:
          type: string
          description: Il tuo Legal Entity Identifier, visibile nella directory dei VASP.
        compliance_email:
          type: string
          format: email
          description: >-
            Email di contatto per la compliance per il tuo profilo VASP. La rete
            Didit mostra il tuo profilo solo dopo che questo indirizzo è stato
            confermato tramite un link inviato via email (POST
            /v3/travel-rule/settings/compliance-email/confirmation/); la
            modifica richiede una nuova conferma.
        is_discoverable:
          type: boolean
          description: >-
            Indica se il tuo profilo VASP può essere elencato nella rete Didit:
            trovato in GET /v3/travel-rule/vasps/ da altri clienti Didit e
            raggiunto tramite il canale INTERNAL. L'inserimento nell'elenco
            richiede inoltre un'applicazione attiva, Travel Rule abilitata, una
            ragione sociale e un'email di compliance confermata; didit_network
            indica quali requisiti mancano. Predefinito true.
        inbound_auto_accept:
          type: boolean
          description: >-
            Se true, un'indagine TRP in entrata il cui wallet beneficiario è una
            voce verificata della rubrica con un nome corrispondente viene
            approvata automaticamente. Se false, tale indagine rimane in ON_HOLD
            in attesa che tu la approvi o la rifiuti con l'endpoint dell'assetto
            proprietario. I trasferimenti su canale INTERNAL e successivi al
            deposito non sono interessati. Il valore predefinito è true.
        allow_self_declaration:
          type: boolean
          description: >-
            Se true, il widget di titolarità del wallet offre
            l'autodichiarazione come metodo di prova di riserva. Il valore
            predefinito è true.
        allow_screenshot_proof:
          type: boolean
          description: >-
            Se true, il widget di titolarità del wallet offre il caricamento di
            screenshot come metodo di prova dell'assetto proprietario. Il valore
            predefinito è true.
        auto_wallet_verification:
          type: boolean
          description: >-
            Se true, l'invio di un trasferimento Travel Rule in uscita che
            richiede la prova del controllo del wallet da parte dell'utente
            finale genera automaticamente una sessione del widget di titolarità
            del wallet associata alla transazione e la espone nel blocco
            action_required della transazione. Il valore predefinito è true.
        vasp_attribution_enabled:
          type: boolean
          description: >-
            Se true, un trasferimento Travel Rule in uscita che nessun canale
            può instradare viene attribuito tramite analisi blockchain: il
            wallet di destinazione viene ricondotto al VASP che lo possiede,
            l'entità viene registrata sul trasferimento e nella directory VASP,
            e i canali vengono rieseguiti una volta con il nome attribuito. Il
            valore predefinito è true.
        counterparty_screening_enabled:
          type: boolean
          description: >-
            Screening opzionale su sanzioni e notizie negative dei VASP di
            controparte, fatturato per screening al prezzo di Screening AML per
            aziende. Se attivo, Didit esegue lo screening della controparte
            raggiunta da un trasferimento in uscita (riutilizzando uno screening
            effettuato da meno di 30 giorni) e puoi eseguirne uno con POST
            /v3/travel-rule/vasps/{vasp_id}/screening/. Il valore predefinito è
            false: non viene eseguito alcuno screening né addebitato alcun
            costo.
        sunrise_policy:
          type: string
          enum:
            - ''
            - HOLD
            - REJECT
            - PROCEED
          description: >-
            Effetto di un trasferimento scaduto sulla relativa transazione
            quando la controparte è una voce di directory in una giurisdizione
            presente in sunrise_jurisdictions, che non applica ancora la Travel
            Rule: HOLD lo sposta in revisione, REJECT lo rifiuta, PROCEED ne
            lascia inalterato lo stato. Se vuoto (impostazione predefinita),
            segue timeout_outcome. Si applica prima di non_responsive_policy.
        sunrise_jurisdictions:
          type: array
          items:
            type: string
          readOnly: true
          description: >-
            Sola lettura. I paesi (ISO 3166 alpha-2) che Didit considera in un
            periodo di entrata in vigore per la Travel Rule (sunrise period), in
            cui si applica sunrise_policy. Attualmente CO, KH e VN. Qualsiasi
            altra giurisdizione, nonché una vuota o sconosciuta, segue
            timeout_outcome.
        non_responsive_policy:
          type: string
          enum:
            - ''
            - HOLD
            - REJECT
            - PROCEED
          description: >-
            Effetto di un trasferimento scaduto sulla relativa transazione
            quando la controparte è una voce di directory la cui capacità di
            risposta è UNRESPONSIVE: HOLD, REJECT o PROCEED, come per
            timeout_outcome. Se vuoto (impostazione predefinita), segue
            timeout_outcome. sunrise_policy si applica per prima se entrambe
            sono pertinenti.
        travel_address:
          type: string
          description: >-
            Sola lettura. Il Travel Address del tuo VASP: l'endpoint codificato
            per le richieste TRP in entrata utilizzato dagli altri VASP per
            contattarti. Vuoto finché `is_enabled` è false.
        disabled_networks:
          type: array
          items:
            type: string
            enum:
              - GTR
              - TRUST
              - VERIFYVASP
              - SYGNA
          description: >-
            Reti escluse dall'adesione alla piattaforma. Non disabilita le
            proprie adesioni connesse né effettua il provisioning di reti non
            disponibili.
          default: []
        networks:
          type: object
          readOnly: true
          description: >-
            Per ciascuna rete, come questa applicazione invierebbe e perché non
            può farlo. Nessuna rete, inclusa GTR, è inclusa per impostazione
            predefinita: una rete è raggiungibile tramite la tua adesione
            connessa, oppure tramite l'adesione di Didit una volta che
            l'adesione di Didit a tale rete è attiva e il tuo partecipante su di
            essa è attivo. Non si tratta di un controllo di stato o consegna in
            tempo reale.
          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: >-
            Indica se la rete Didit elenca il tuo profilo VASP, in modo che
            altri clienti Didit possano trovarlo nella directory e raggiungerlo
            sul canale INTERNAL, e ciascuna condizione che ancora non soddisfa.
          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: >-
                Vuoto quando presente nell'elenco. compliance_email_unconfirmed:
                invia la conferma con POST
                /v3/travel-rule/settings/compliance-email/confirmation/ e apri
                il link ricevuto via email. excluded_by_staff: Didit ha
                contrassegnato l'applicazione come di test, demo o interna.
            compliance_email_confirmed:
              type: boolean
              description: >-
                Indica se l'attuale compliance_email è stata confermata tramite
                il link inviato via email.
    TravelRuleDataSharingFields:
      type: object
      description: >-
        I campi che Didit invia al VASP della controparte sui tuoi utenti, per
        tipo di entità. `name` e `wallet_address` vengono sempre inviati, a
        prescindere da quanto indicato nell'elenco. Un tipo di entità non
        selezionato condivide tutti i campi. Anche un elenco vuoto è una scelta:
        condivide solo il nome e il wallet.
      properties:
        individual:
          type: array
          items:
            type: string
            enum:
              - name
              - wallet_address
              - address
              - national_id
              - customer_identification
              - date_of_birth
              - place_of_birth
          description: Campi condivisi relativi a una persona fisica.
        company:
          type: array
          items:
            type: string
            enum:
              - name
              - wallet_address
              - address
              - national_id
              - customer_identification
          description: Campi condivisi relativi a una persona giuridica.
    TravelRuleMatchingRules:
      type: object
      description: >-
        Il livello di rigore con cui ogni campo dei dati della controparte viene
        confrontato con quelli in tuo possesso, per tipo di entità. I campi
        omessi mantengono il valore predefinito. `NONE` salta il confronto,
        `STRICT` richiede esattamente le stesse parole, `CONTAINS` accetta un
        valore le cui parole compaiono tutte nell'altro, `DEFAULT` è la
        corrispondenza standard per sottoinsieme e `FUZZY` accetta grafie simili
        (e, per le date di nascita, giorno e mese invertiti).
      properties:
        individual:
          type: object
          description: Regole per una persona fisica.
          properties:
            name:
              type: string
              enum:
                - NONE
                - STRICT
                - CONTAINS
                - DEFAULT
                - FUZZY
              description: 'Valore predefinito: segue `name_matching_strictness`.'
            date_of_birth:
              type: string
              enum:
                - NONE
                - STRICT
                - CONTAINS
                - DEFAULT
                - FUZZY
              description: Valore predefinito `NONE`.
            address:
              type: string
              enum:
                - NONE
                - STRICT
                - CONTAINS
                - DEFAULT
                - FUZZY
              description: Valore predefinito `NONE`.
            account:
              type: string
              enum:
                - NONE
                - STRICT
                - CONTAINS
                - DEFAULT
                - FUZZY
              description: >-
                Il wallet attraverso cui è stato instradato lo scambio.
                Predefinito `STRICT`.
        company:
          type: object
          description: Regole per una persona giuridica.
          properties:
            name:
              type: string
              enum:
                - NONE
                - STRICT
                - CONTAINS
                - DEFAULT
                - FUZZY
              description: 'Valore predefinito: segue `name_matching_strictness`.'
            address:
              type: string
              enum:
                - NONE
                - STRICT
                - CONTAINS
                - DEFAULT
                - FUZZY
              description: Valore predefinito `NONE`.
            account:
              type: string
              enum:
                - NONE
                - STRICT
                - CONTAINS
                - DEFAULT
                - FUZZY
              description: >-
                Il wallet attraverso cui è stato instradato lo scambio.
                Predefinito `STRICT`.
    TravelRuleNetworkState:
      type: object
      description: >-
        Come verrebbero inviati i messaggi Travel Rule su una rete per questa
        applicazione e perché non è possibile farlo. Stato della configurazione,
        non una verifica in tempo reale dello stato o della consegna.
      properties:
        rail:
          type: string
          enum:
            - GTR
            - TRUST
            - VERIFYVASP
            - SYGNA
        mode:
          type: string
          enum:
            - own
            - didit
            - 'off'
            - unavailable
          description: >-
            own: viene utilizzata la membership collegata dell'applicazione;
            didit: la membership di Didit include l'applicazione come
            partecipante attivo proprio; off: routing di piattaforma
            disabilitato in disabled_networks senza una propria membership;
            unavailable: nessun elemento può ancora trasmettere su questa rete
            (vedi state e 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: trasmette la tua membership collegata;
            live_through_didit: trasmette il tuo partecipante sulla membership
            di Didit; off: hai disattivato il routing di piattaforma;
            didit_onboarding: la membership di Didit per questa rete non è
            ancora attiva, quindi non può veicolare alcun partecipante;
            questionnaire_needed / questionnaire_in_review: il questionario di
            due diligence deve essere inviato o è presso Didit; request_access:
            il questionario è approvato, richiedi l'accesso alla rete;
            request_sent: l'onboarding del tuo partecipante è in corso;
            unavailable: vedi reason; error: vedi 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: >-
            Dettaglio dello stato leggibile dalla macchina. own_membership_only:
            Didit non supporta applicazioni su questa rete (TRUST), collega la
            tua iscrizione; sandbox_application: i trasferimenti in sandbox non
            raggiungono mai una rete; provisioning_failed: la rete ha rifiutato
            la registrazione, il last_error del partecipante ne indica il motivo
            e una nuova richiesta alla rete avvia un nuovo tentativo.
        platform_available:
          type: boolean
          description: >-
            Indica se la partecipazione di Didit a questa rete è configurata;
            non si tratta di un controllo in tempo reale dello stato.
        connected:
          type: boolean
          description: >-
            Indica se esiste un'adesione cliente collegata. Le credenziali
            vengono convalidate localmente; la convalida di rete avviene su uno
            scambio in tempo reale.
        participant:
          $ref: '#/components/schemas/TravelRuleNetworkParticipantSummary'
        vasps_reachable:
          type: integer
          description: VASP presenti nella directory e raggiungibili su questa rete.
        routed_30d:
          type: integer
          description: >-
            I trasferimenti di questa applicazione veicolati su questa rete
            negli ultimi 30 giorni.
    TravelRuleNetworkParticipantSummary:
      type: object
      nullable: true
      description: >-
        Il partecipante di questa applicazione sulla rete, oppure null se non ne
        ha nessuno.
      properties:
        mode:
          type: string
          enum:
            - platform
            - own
          description: >-
            platform: veicolato tramite la membership di Didit; own: sottoposto
            a onboarding sotto la membership dell'applicazione.
        status:
          type: string
          enum:
            - not_requested
            - questionnaire_pending
            - submitted_to_network
            - active
            - suspended
            - rejected
          description: >-
            not_requested: mai richiesta, oppure la rete ha rifiutato la prima
            richiesta (vedi last_error); questionnaire_pending: in attesa
            dell'approvazione del questionario di due diligence;
            submitted_to_network: trasmessa all'onboarding della rete; active:
            la rete ha assegnato a questa applicazione il proprio codice
            partecipante; suspended / rejected: Didit l'ha sospesa o rifiutata.
        participant_code:
          type: string
          description: >-
            Il codice assegnato dalla rete a questa applicazione (per GTR, il
            relativo codice VASP). I messaggi in uscita riportano questo codice,
            mai quello di 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 risposta della rete in caso di rifiuto della registrazione; vuota
            altrimenti.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        La chiave API della tua applicazione, da Developers -> API keys nella
        Business Console. La chiave primaria ha accesso completo. Una chiave con
        nome può avere un ambito definito: nessuno, lettura o scrittura per
        risorsa, limitata ad alcuni workflow o a sessioni approvate, a un elenco
        di indirizzi IP e a una data di scadenza. 401 indica che la chiave è
        errata, revocata o scaduta; 403 indica che non è stata inviata alcuna
        chiave, che la chiave non ha accesso a questa risorsa o azione, oppure
        che la richiesta proviene da un indirizzo non incluso nel suo elenco IP;
        404 su una route di sessione indica che la sessione non rientra nei
        workflow o negli stati previsti dalla chiave. Una chiave senza accesso
        ai media riceve gli URL di immagini, video e PDF come null, e una chiave
        senza permessi di scrittura sulle sessioni riceve link e token di
        sessione come null. Consulta https://docs.didit.me/console/api-keys.

````

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