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

# Cerca al directori de VASP: rutes de Travel Rule

> Cerca al directori de VASP de la Travel Rule i a la xarxa de Didit, amb filtres i les rutes de la teva aplicació cap a cada VASP.



Indicació de l'API de cerca del directori de VASP
        Copia el prompt al porta-retalls



      
      

\<pre>

\`Search the VASP directory Didit routes outbound Travel Rule transfers with: the shared directory entries plus the members of the Didit network, each with the routes my application has to it today.

Endpoint:
GET https://verification.didit.me/v3/travel-rule/vasps/?search=<term>

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

Query parameters (all optional):
\- search - a name or alias fragment, an exact LEI, or a domain (example.com or a URL on it).
\- network - GTR, TRUST, VERIFYVASP, SYGNA or TRISA: only entries that network's member directory currently lists.
\- jurisdiction - ISO 3166 alpha-2 or alpha-3 country code.
\- reachable - true: only VASPs my application has an available route to; false: only entries it cannot reach today.
\- kind - directory (shared entries) or didit (Didit network members).
\- risk - LOW, MEDIUM or HIGH: only directory entries whose risk_level is that band.
\- responsiveness - RESPONSIVE, UNRESPONSIVE or UNKNOWN: only directory entries with that responsiveness.status.
Didit network members are not scored, so risk and responsiveness return directory entries only.
\- limit (default 50) / offset - pagination; count/next/previous describe the page window.
An unknown network, country code, risk band or responsiveness status answers 400 naming the field.

What to read from each result:
\- id - use it with GET /v3/travel-rule/vasps/{vasp_id}/.
\- kind, name, lei, jurisdiction, domains, aliases - who the VASP is and the other names it is found by.
\- routes[] - {rail, status, reason, via} in the order dispatch tries them. status is available or unavailable; an unavailable network route carries reason no_membership or network_switched_off and is never a way to reach the VASP. reachable is true when at least one route is available. On a sandbox application every route is unavailable with reason sandbox_application (sandbox sends only to the Didit Test VASP), every row has reachable false, and reachable=true returns no rows.
\- networks[] - the network member directories that list the VASP, with its code there. A TRISA listing is never a route: Didit has no TRISA rail.
\- umbrella / entities[] - a brand and the regulated entities that receive its transfers. A transfer naming the brand goes to the entity in the jurisdiction it states (beneficiary_data.counterparty_vasp_jurisdiction); two entities that fit equally are never guessed between, so without a route of the brand's own it is COUNTERPARTY_VASP_NOT_FOUND.
\- contacts[] - compliance contacts the EMAIL rail writes to: scope platform (curated by Didit or learned from an answered request) or application (private to my application).
\- dd_score (0-100, higher is safer: dd_score_semantic is always higher_is_safer) and risk_level (LOW at 70 or more, MEDIUM 40-69, HIGH below 40) - the shared due-diligence assessment of a directory entry. Didit network members are not scored: dd_score is null and risk_level empty.
\- dd_score_breakdown - {component: {points, max, reason, detail}} for jurisdiction, verification, protocol, lei, history, essentials and responsiveness.
\- responsiveness - {status, answered, total, computed_at}: RESPONSIVE, UNRESPONSIVE (answered less than 10 percent of at least 5 decided requests in the last 90 days) or UNKNOWN.
\- essential_checks - {level, checked_at, checks[{id, status, reason, detail}], passed, failed, unknown, total} for registration, licence, domain and lei. Empty until first checked.
\- decision, entity_screening, questionnaires[] - my application's own decision (APPROVED, RESTRICTED or BLOCKED), latest sanctions screening and due-diligence questionnaires on the VASP. Private to my application: no other customer sees them.

Didit network members are other Didit customers with a live application, Travel Rule on, a discoverable profile with a legal name and a confirmed compliance email, reached on the INTERNAL rail. Network routes need a membership: mine (connected in the Marketplace) or Didit's, and Didit's own memberships are not live yet.

My own VASP profile never appears in my own results.

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

\</pre>



      
      

Enganxa a



## OpenAPI

````yaml ca/openapi-25.json GET /v3/travel-rule/vasps/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: API de verificació d'identitat. Autentica't amb la capçalera x-api-key.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/travel-rule/vasps/:
    get:
      tags:
        - Travel Rule
      summary: Cercar al directori de VASP
      description: >-
        Cerca paginada i ordenada per nom al directori de VASP: les entrades del
        directori compartit, que Didit genera a partir del registre provisional
        MiCA de l'ESMA, el directori públic de TRISA, el registre global LEI i
        la seva pròpia selecció, a més dels membres de la xarxa Didit. Cada fila
        inclou les rutes de què disposa la teva aplicació cap a aquest VASP
        actualment. El perfil de la teva pròpia aplicació no apareix mai a la
        llista. Les files també inclouen l'avaluació de diligència deguda
        compartida i la decisió de la teva aplicació, el cribratge de l'entitat
        i els qüestionaris.
      operationId: listTravelRuleVasps
      parameters:
        - name: search
          in: query
          schema:
            type: string
            maxLength: 255
          description: >-
            Un fragment de nom o àlies (sense distinció entre majúscules i
            minúscules), un LEI exacte o un domini (example.com o una URL que en
            formi part). Els membres de la xarxa Didit coincideixen pel seu nom
            legal, LEI o el domini del seu correu electrònic de compliment
            normatiu.
        - name: network
          in: query
          schema:
            type: string
            enum:
              - GTR
              - TRUST
              - VERIFYVASP
              - SYGNA
              - TRISA
          description: >-
            Només entrades de directori que el directori de membres d'una xarxa
            llista actualment.
        - name: jurisdiction
          in: query
          schema:
            type: string
          description: >-
            Codi de país ISO 3166 alfa-2 o alfa-3. 400 per a qualsevol altre
            valor.
        - name: reachable
          in: query
          schema:
            type: boolean
          description: >-
            true: només els VASP cap als quals la teva aplicació té una ruta
            disponible (inclosos els membres de la xarxa Didit). false: només
            les entrades del directori a les quals no es pot accedir avui.
        - name: kind
          in: query
          schema:
            type: string
            enum:
              - directory
              - didit
          description: Només entrades de directori, o només membres de la xarxa de Didit.
        - name: risk
          in: query
          schema:
            type: string
            enum:
              - LOW
              - MEDIUM
              - HIGH
          description: >-
            Només entrades de directori el risk_level de les quals sigui aquesta
            franja. Els membres de la xarxa de Didit, que no estan puntuats, mai
            no coincideixen.
        - name: responsiveness
          in: query
          schema:
            type: string
            enum:
              - RESPONSIVE
              - UNRESPONSIVE
              - UNKNOWN
          description: >-
            Només entrades de directori el responsiveness.status de les quals
            sigui aquest valor. Els membres de la xarxa de Didit mai no
            coincideixen.
        - name: limit
          in: query
          schema:
            type: integer
            default: 50
            minimum: 1
        - name: offset
          in: query
          schema:
            type: integer
            default: 0
            minimum: 0
      responses:
        '200':
          description: Resultats del directori de VASP paginats i ordenats per nom.
          content:
            application/json:
              schema:
                type: object
                properties:
                  count:
                    type: integer
                  next:
                    type: string
                    nullable: true
                  previous:
                    type: string
                    nullable: true
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/VaspDirectoryEntry'
        '400':
          description: >-
            Un filtre no és vàlid: el cos indica cada camp, per exemple una
            xarxa, codi de país, franja de risc o estat de capacitat de resposta
            desconeguts.
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: array
                  items:
                    type: string
              example:
                jurisdiction:
                  - Use an ISO 3166 alpha-2 or alpha-3 country code.
                network:
                  - '"SWIFT" is not a valid choice.'
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: >-
            curl -X GET
            'https://verification.didit.me/v3/travel-rule/vasps/?search=counterparty&reachable=true'
            \
              -H 'x-api-key: YOUR_API_KEY'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            for item in client.travel_rule.list_vasps():
                print(item)
        - lang: javascript
          label: Node.js
          source: |-
            import Didit from "@didit-protocol/sdk-node";

            // Reads DIDIT_API_KEY.
            const didit = new Didit();

            for await (const item of didit.travelRule.listVasps()) {
              console.log(item);
            }
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\niter := client.TravelRule.ListVASPsAutoPaging(ctx, didit.TravelRuleListVASPsParams{})\nfor iter.Next() {\n\tfmt.Printf(\"%+v\\n\", iter.Current())\n}\nif err := iter.Err(); err != nil {\n\tlog.Fatal(err)\n}"
        - lang: java
          label: Java
          source: |-
            import me.didit.Didit;

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

            for (var item : client.travelRule().listVasps()) {
                System.out.println(item);
            }
        - lang: php
          label: PHP
          source: |-
            <?php

            require 'vendor/autoload.php';

            use Didit\DiditClient;

            // Reads DIDIT_API_KEY.
            $didit = new DiditClient();

            foreach ($didit->travelRule->listVasps() as $item) {
                print_r($item->toArray());
            }
        - lang: ruby
          label: Ruby
          source: |-
            require "didit"

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

            didit.travel_rule.list_vasps.auto_paging_each do |item|
              puts item.to_h
            end
        - lang: csharp
          label: .NET
          source: |-
            using System;
            using System.Text.Json;
            using Didit;

            // Reads DIDIT_API_KEY.
            using var client = new DiditClient();

            await foreach (var item in await client.TravelRule.ListVaspsAsync())
            {
                Console.WriteLine(JsonSerializer.Serialize(item));
            }
components:
  schemas:
    VaspDirectoryEntry:
      type: object
      description: >-
        Un VASP del directori o un membre de la xarxa Didit, amb les rutes que
        la teva aplicació hi té. Un client només és membre de la xarxa Didit
        mentre la seva aplicació està en producció, té la Travel Rule activada,
        el seu perfil es pot trobar, té un nom legal i un correu electrònic de
        compliment confirmat, i Didit no ha marcat l'aplicació com de prova,
        demo o interna. Cada fila també inclou l'avaluació de diligència deguda
        compartida (dd_score, risk_level, responsiveness, essential_checks) i la
        decisió, el cribratge d'entitats i els qüestionaris propis de la teva
        aplicació, que cap altre client pot veure.
      properties:
        id:
          type: string
          format: uuid
          description: >-
            L'identificador de l'entrada, per a GET
            /v3/travel-rule/vasps/{vasp_id}/.
        kind:
          type: string
          enum:
            - directory
            - didit
          description: >-
            directory per a una entrada del directori compartit; didit per a un
            membre de la xarxa Didit.
        name:
          type: string
        lei:
          type: string
        jurisdiction:
          type: string
          description: Codi de país ISO 3166, tal com el proporciona la font.
        domains:
          type: array
          items:
            type: string
          description: >-
            Els dominis web del VASP. Sempre buits per als membres de la xarxa
            de Didit.
        reachable:
          type: boolean
          description: >-
            Indica si la teva aplicació té una ruta disponible cap a aquest
            VASP, o cap a una de les seves entitats per a una marca. Sempre true
            per a un membre de la xarxa de Didit, excepte en una aplicació de
            sandbox, on cada fila és false.
        aliases:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
              kind:
                type: string
                enum:
                  - trading_name
                  - other_legal_name
                  - network_name
                  - attribution
                  - merged
                  - staff
                description: >-
                  trading_name, other_legal_name (del registre global de LEI),
                  network_name (el nom en una xarxa de Travel Rule), attribution
                  (el nom de l'entitat que l'anàlisi de blockchain assigna a les
                  carteres del VASP), merged (el nom d'una entrada duplicada
                  fusionada en aquesta) o staff.
          description: Altres noms amb els quals es pot trobar el VASP.
        networks:
          type: array
          items:
            type: object
            description: >-
              Un registre actual d'aquest VASP al directori de membres d'una
              xarxa de Travel Rule. Un registre de TRISA indica qui és el VASP a
              TRISA; Didit no té cap rail de TRISA, de manera que mai és una
              ruta.
            properties:
              network:
                type: string
                enum:
                  - GTR
                  - TRUST
                  - VERIFYVASP
                  - SYGNA
                  - TRISA
              code:
                type: string
                description: L'identificador del VASP en aquesta xarxa.
              listed_name:
                type: string
                description: El nom sota el qual la xarxa llista el VASP.
              country:
                type: string
                description: El país que indica la xarxa, quan en proporciona un.
              verified_at:
                type: string
                format: date-time
                nullable: true
                description: >-
                  Quan el personal de Didit ha verificat el registre. Nul per
                  als registres llegits d'un directori públic.
              last_seen_at:
                type: string
                format: date-time
                nullable: true
                description: >-
                  Quan la font va mostrar el registre per darrera vegada. Un
                  registre que la font no hagi mostrat durant tres setmanes
                  s'elimina.
              source:
                type: string
                enum:
                  - trisa_directory
                  - staff
                description: >-
                  D'on prové l'entrada: el directori públic de TRISA o el
                  personal de Didit.
        routes:
          type: array
          items:
            type: object
            description: >-
              Una via per la qual la teva aplicació pot lliurar dades de Travel
              Rule a aquest VASP, en l'ordre en què l'enviament les prova. Una
              ruta de xarxa necessita ser membre d'aquesta xarxa: la teva pròpia
              (connectada al Marketplace) o la de Didit un cop Didit en tingui
              una. Sense ella, la ruta apareix com a no disponible amb el motiu,
              mai com una via per arribar al VASP.
            properties:
              rail:
                type: string
                enum:
                  - INTERNAL
                  - TRP
                  - GTR
                  - TRUST
                  - VERIFYVASP
                  - SYGNA
                  - EMAIL
              status:
                type: string
                enum:
                  - available
                  - unavailable
              reason:
                type: string
                enum:
                  - ''
                  - no_membership
                  - network_switched_off
                  - sandbox_application
                description: >-
                  Per què no es pot utilitzar una ruta no disponible:
                  no_membership (ni tu ni Didit sou membres d'aquesta xarxa),
                  network_switched_off (has desactivat aquesta xarxa a la teva
                  configuració) o sandbox_application (una aplicació de sandbox
                  només envia al VASP de prova de Didit, per la qual cosa no té
                  cap ruta disponible). Buit quan la ruta està disponible.
              via:
                type: string
                enum:
                  - ''
                  - own_membership
                  - didit_membership
                  - directory
                  - contact
                  - didit_network
                description: >-
                  Com s'arriba a una ruta disponible: own_membership o
                  didit_membership per a una via de xarxa, directory per a un
                  endpoint TRP que el directori ha verificat, contact per a la
                  via EMAIL, didit_network per a un membre de la xarxa de Didit.
                  Buit quan la ruta no està disponible.
        umbrella:
          type: object
          nullable: true
          description: >-
            La marca de la qual aquesta entrada és una entitat regulada. Null
            quan no forma part de cap.
          properties:
            id:
              type: string
              format: uuid
            name:
              type: string
        entities:
          type: array
          items:
            type: object
            description: >-
              Una entitat regulada d'una marca: l'entitat jurídica que rep una
              transferència.
            properties:
              id:
                type: string
                format: uuid
              name:
                type: string
              lei:
                type: string
              jurisdiction:
                type: string
              reachable:
                type: boolean
                description: >-
                  Indica si la teva aplicació té una ruta disponible cap a
                  aquesta aplicació.
          description: >-
            Per a una marca, les entitats regulades que reben les seves
            transferències. Una transferència que anomena la marca va a
            l'entitat accessible a la jurisdicció que indica
            (beneficiary_data.counterparty_vasp_jurisdiction); si no, a
            l'entitat que l'atribució analítica de blockchain ha vinculat a la
            cartera de destinació; si no, a l'única entitat accessible quan no
            s'indica cap jurisdicció. Si dues entitats són igualment adequades,
            mai no se'n tria una per conjectura.
        contacts:
          type: array
          items:
            type: object
            description: Un contacte de compliment on el rail EMAIL pot escriure.
            properties:
              id:
                type: string
                format: uuid
              email:
                type: string
                format: email
              name:
                type: string
              source:
                type: string
                enum:
                  - staff
                  - application
                  - learned
                description: >-
                  staff: seleccionat per Didit; application: afegit per la teva
                  aplicació; learned: una adreça que ha respost a una
                  sol·licitud de Travel Rule a través del seu enllaç de
                  resposta.
              scope:
                type: string
                enum:
                  - platform
                  - application
                description: >-
                  els contactes de plataforma s'utilitzen per a les
                  transferències de tots els clients de Didit; els contactes
                  d'aplicació són privats per a la teva aplicació, que només veu
                  els seus propis.
              verified_at:
                type: string
                format: date-time
                nullable: true
                description: >-
                  Quan algú en aquesta adreça va respondre a una sol·licitud.
                  Null quan encara no ho ha fet.
          description: >-
            Els contactes de la plataforma per a aquest VASP i els propis de la
            teva aplicació.
        dd_status:
          type: string
          enum:
            - NOT_STARTED
            - IN_PROGRESS
            - COMPLETED
            - REJECTED
          description: >-
            Estat de verificació de Didit de l'entrada, puntuat pel component de
            verificació de dd_score. Sempre COMPLETED per a un membre de la
            xarxa de Didit.
        dd_score:
          type: integer
          nullable: true
          minimum: 0
          maximum: 100
          description: >-
            La puntuació compartida de diligència deguda d'una entrada del
            directori, de 0 a 100, on un valor més alt és més segur (consulta
            dd_score_semantic): la suma dels punts a dd_score_breakdown. Null
            per a un membre de la xarxa Didit, que no es puntua. Una entrada que
            encara no s'ha avaluat (dd_assessed_at null) mostra 0 amb un
            risk_level buit, així que consulta risk_level en lloc de la
            puntuació en brut.
        reachable_rails:
          type: array
          items:
            type: string
            enum:
              - INTERNAL
              - TRP
              - GTR
              - TRUST
              - VERIFYVASP
              - SYGNA
              - EMAIL
          description: >-
            Canals registrats a l'entrada. Consulta les rutes per veure què pot
            utilitzar la teva aplicació avui.
        is_didit_customer:
          type: boolean
          description: >-
            true per a un membre de la xarxa Didit (dd_status sempre és
            COMPLETED, dd_score null i risk_level buit en aquests casos) i per a
            una entrada del directori vinculada a un client de Didit.
        dd_score_breakdown:
          type: object
          description: >-
            Un objecte per component de dd_score. Components, el seu pes (màx.)
            i els seus codis de motiu: jurisdiction, 25
            (jurisdiction_not_high_risk, jurisdiction_high_risk,
            jurisdiction_unknown); verification, 15 (dd_status_completed,
            dd_status_in_progress, dd_status_not_started, dd_status_rejected);
            protocol, 15 (native_rail, email_only, no_rail); lei, 10 (lei_valid,
            lei_missing); history, 10 (history, no_history); essentials, 15
            (essential_checks, no_essential_checks); responsiveness, 10
            (responsive, unresponsive, responsiveness_unknown). Buit per a un
            membre de la xarxa de Didit.
          additionalProperties:
            type: object
            properties:
              points:
                type: number
                description: Punts que aporta el component, arrodonits a una xifra decimal.
              max:
                type: integer
                description: 'El pes del component: els punts que aporta com a màxim.'
              reason:
                type: string
                description: Codi llegible per màquina del veredicte del component.
              detail:
                type: string
                description: Explicació d'una línia en anglès.
        dd_assessed_at:
          type: string
          format: date-time
          nullable: true
          description: >-
            Quan es van calcular per darrera vegada dd_score, risk_level i
            responsiveness: després que un intercanvi amb l'entrada es completi,
            finalitzi, caduqui, no coincideixi o es rebutgi, quan Didit
            actualitza o gestiona l'entrada, i en l'actualització setmanal del
            directori. Null per a un membre de la xarxa Didit.
        dd_score_semantic:
          type: string
          enum:
            - higher_is_safer
          description: 'En quin sentit apunta dd_score: sempre higher_is_safer.'
        risk_level:
          type: string
          enum:
            - LOW
            - MEDIUM
            - HIGH
            - ''
          description: >-
            La franja en què cau dd_score: LOW (70 o més), MEDIUM (de 40 a 69) o
            HIGH (per sota de 40). Buit per a un membre de la xarxa de Didit i
            per a una entrada encara no avaluada. Filtra per aquest valor amb
            risk. El cribratge que has marcat mai no canvia aquest valor
            compartit: en comptes d'això, fa que counterparty_risk_level sigui
            HIGH a les teves regles.
        responsiveness:
          type: object
          description: >-
            Indica si el VASP respon a les sol·licituds de Travel Rule: la
            proporció de sol·licituds iniciades pels clients de Didit cap a ell
            en els darrers 90 dies a les quals ha respost. Només compten les
            sol·licituds enviades a través d'una xarxa o via de protocol, o per
            correu electrònic a una adreça compartida (l'adreça de compliment de
            l'entrada o un contacte de la plataforma); una sol·licitud enviada a
            una adreça que hagi escrit un client, o al contacte privat d'un
            client, no compta mai. Una sol·licitud caducada es considera no
            contestada; un intercanvi completat, un rebuig o una discrepància de
            dades és una resposta; una sol·licitud cancel·lada o una via
            inaccessible no és cap de les dues coses. Sempre és UNKNOWN amb
            recomptes a zero per a un membre de la xarxa de Didit.
          properties:
            status:
              type: string
              enum:
                - RESPONSIVE
                - UNRESPONSIVE
                - UNKNOWN
              description: >-
                UNKNOWN amb menys de 5 sol·licituds decidides a la finestra
                temporal; UNRESPONSIVE quan se n'han respost menys del 10 per
                cent; altrament, RESPONSIVE.
            answered:
              type: integer
              description: Sol·licituds decidides a la finestra que el VASP ha respost.
            total:
              type: integer
              description: >-
                Sol·licituds decidides a la finestra: respostes més les
                caducades.
            computed_at:
              type: string
              format: date-time
              nullable: true
        essential_checks:
          type: object
          description: >-
            L'informe de comprovacions essencials d'una entrada de directori,
            elaborat exclusivament a partir de les fonts verificades de la
            plataforma: registre (un registre oficial llista el VASP: el
            registre provisional de MiCA de la UE, el directori públic de TRISA
            o el registre global de LEI), llicència (hi ha una autorització MiCA
            registrada i vigent), domini (el domini de l'entrada coincideix amb
            el seu endpoint de TRP o amb el lloc web que indica el seu registre)
            i lei (el seu registre LEI està actiu, emès i és coherent amb els
            noms i el país de l'entrada). El component essentials de dd_score és
            la proporció de comprovacions resoltes que resulten favorables. Està
            buit fins que l'actualització setmanal del directori comprova
            l'entrada per primera vegada, i sempre està buit per a un membre de
            la xarxa de Didit.
          properties:
            level:
              type: string
              enum:
                - essential
            checked_at:
              type: string
              format: date-time
            checks:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: string
                    enum:
                      - registration
                      - licence
                      - domain
                      - lei
                  status:
                    type: string
                    enum:
                      - pass
                      - fail
                      - unknown
                    description: >-
                      unknown quan cap font registrada pot determinar la
                      comprovació.
                  reason:
                    type: string
                    description: Codi llegible per màquina del veredicte.
                  detail:
                    type: string
                    description: Explicació d'una línia en anglès.
            passed:
              type: integer
            failed:
              type: integer
            unknown:
              type: integer
            total:
              type: integer
        decision:
          allOf:
            - $ref: '#/components/schemas/TravelRuleCounterpartyDecision'
          nullable: true
          description: >-
            La decisió de la teva aplicació sobre aquest VASP, o per a una
            entitat sense decisió pròpia, la de la seva marca (inherited_from
            indica la marca). Null quan no n'hi ha cap. Privada per a la teva
            aplicació.
        entity_screening:
          allOf:
            - $ref: '#/components/schemas/TravelRuleCounterpartyScreening'
          nullable: true
          description: >-
            L'últim cribratge de sancions i mitjans adversos de la teva
            aplicació sobre aquest VASP. Null si mai no n'has fet el cribratge.
            Privat per a la teva aplicació.
        questionnaires:
          type: array
          items:
            $ref: '#/components/schemas/TravelRuleCounterpartyQuestionnaire'
          description: >-
            Els qüestionaris de diligència deguda de la teva aplicació amb
            aquest VASP, els més recents primer. Privats per a la teva
            aplicació.
      example:
        id: 0d6f3c2a-6a1e-4c55-9a39-1f2b0c7d8e91
        kind: directory
        name: Example Counterparty VASP
        lei: 529900EXAMPLECPTY001
        jurisdiction: DE
        domains:
          - counterparty.example
        reachable: true
        aliases:
          - name: Example Counterparty
            kind: trading_name
        networks:
          - network: GTR
            code: EXAMPLE01
            listed_name: Example Counterparty VASP
            country: DE
            verified_at: '2026-10-12T09:30:00Z'
            last_seen_at: '2026-10-12T09:30:00Z'
            source: staff
        routes:
          - rail: GTR
            status: unavailable
            reason: no_membership
            via: ''
          - rail: EMAIL
            status: available
            reason: ''
            via: contact
        umbrella: null
        entities: []
        contacts:
          - id: 6c1f9b8e-2d4a-4f7e-8b3c-5a9d0e1f2a3b
            email: travelrule@counterparty.example
            name: Travel Rule desk
            source: staff
            scope: platform
            verified_at: null
        dd_status: NOT_STARTED
        dd_score: 62
        dd_score_breakdown:
          jurisdiction:
            points: 25
            max: 25
            reason: jurisdiction_not_high_risk
            detail: DEU is not on the high-risk jurisdiction list
          verification:
            points: 3.8
            max: 15
            reason: dd_status_not_started
            detail: due diligence status NOT_STARTED
          protocol:
            points: 6
            max: 15
            reason: email_only
            detail: reachable over the email fallback only
          lei:
            points: 10
            max: 10
            reason: lei_valid
            detail: valid LEI on record
          history:
            points: 5
            max: 10
            reason: no_history
            detail: no exchange history
          essentials:
            points: 7.5
            max: 15
            reason: no_essential_checks
            detail: no decided essential check yet
          responsiveness:
            points: 5
            max: 10
            reason: responsiveness_unknown
            detail: 0 decided recent requests, too few to judge
        dd_assessed_at: '2026-10-12T09:30:00Z'
        dd_score_semantic: higher_is_safer
        risk_level: MEDIUM
        responsiveness:
          status: UNKNOWN
          answered: 0
          total: 0
          computed_at: '2026-10-12T09:30:00Z'
        essential_checks: {}
        reachable_rails:
          - GTR
          - EMAIL
        is_didit_customer: false
        decision:
          decision: APPROVED
          reason: Licensed in DE, questionnaire reviewed
          decided_by: ''
          updated_at: '2026-10-14T10:05:00Z'
          inherited_from: null
        entity_screening:
          id: 7a1d2c3b-4e5f-4a6b-8c7d-9e0f1a2b3c4d
          status: Approved
          total_hits: 0
          score: null
          screened_at: '2026-10-14T09:58:00Z'
          fresh: true
          flagged: false
        questionnaires:
          - id: 8b7a6c5d-4e3f-4a2b-9c1d-0e9f8a7b6c5d
            status: ANSWERED
            form_version: '1'
            sent_to: travelrule@counterparty.example
            sent_at: '2026-09-02T08:00:00Z'
            expires_at: '2026-10-02T08:00:00Z'
            answered_at: '2026-09-04T15:20:00Z'
            valid_until: '2027-09-04T15:20:00Z'
            current: true
            answers:
              legal_name: >-
                Example Counterparty VASP, incorporated in the example
                jurisdiction.
              licensing: >-
                Crypto-asset service provider authorised under MiCA by its
                national regulator, licence active.
              jurisdictions: EU and EEA. We do not serve the United States.
              aml_program: >-
                Written AML/CFT policy, annual independent review, last
                completed in March 2026.
              compliance_officer: >-
                Head of Compliance, reachable at
                compliance@counterparty.example.
              sanctions_screening: >-
                Customers at onboarding and daily; counterparties on every
                transfer.
              transaction_monitoring: >-
                Rule-based monitoring with analyst review; suspicious activity
                reports filed with the FIU.
              travel_rule: TRP and email; we answer requests within one business day.
              custody: >-
                Segregated customer wallets held with a qualified custodian,
                insured.
              ownership: >-
                No shareholder holds 25 percent or more; parent company Example
                Holding Group.
              record_keeping: >-
                Five-year record-keeping for Travel Rule and transaction data,
                as our regulator requires.
              data_protection: Encrypted at rest and in transit, stored in the EU.
    TravelRuleCounterpartyDecision:
      type: object
      description: >-
        La decisió de la teva aplicació sobre un VASP de contrapart. Privada per
        a la teva aplicació: mai canvia l'entrada compartida del directori i cap
        altre client no la veu. Només actua mitjançant les teves regles de
        transacció (el camp de regla counterparty_dd_status i els valors
        predefinits travel-rule-counterparty-blocked i
        travel-rule-counterparty-restricted); mai canvia com s'enruta una
        transferència.
      properties:
        decision:
          type: string
          enum:
            - APPROVED
            - RESTRICTED
            - BLOCKED
          description: >-
            APPROVED: el teu equip ha autoritzat la contrapart. RESTRICTED: les
            transferències cap a ella poden tirar endavant després de la
            revisió. BLOCKED: el teu equip l'ha rebutjat.
        reason:
          type: string
          maxLength: 255
          description: Motiu de text lliure que has indicat; buit si no n'hi ha cap.
        decided_by:
          type: string
          description: >-
            L'usuari de la consola que ha pres o ha modificat per darrera vegada
            la decisió. Buit quan l'ha pres una clau d'API.
        updated_at:
          type: string
          format: date-time
        inherited_from:
          type: object
          nullable: true
          description: >-
            La marca la decisió de la qual segueix aquesta entitat perquè no
            n'has pres cap sobre la pròpia entitat. Null quan la decisió és
            pròpia de la contrapart.
          properties:
            id:
              type: string
              format: uuid
            name:
              type: string
    TravelRuleCounterpartyScreening:
      type: object
      description: >-
        Un cribratge de sancions i mitjans adversos de l'entitat contrapart,
        executat per a la teva aplicació i facturat a aquesta. Privat per a la
        teva aplicació: un altre client mai no el veu.
      properties:
        id:
          type: string
          format: uuid
        status:
          type: string
          enum:
            - Approved
            - In Review
            - Declined
          description: >-
            Aprovada: cap coincidència possible requereix atenció. En revisió o
            Rebutjada: possible coincidència amb sancions o mitjans adversos.
        total_hits:
          type: integer
          description: Quantes possibles coincidències ha retornat el cribratge.
        score:
          type: number
          nullable: true
          description: >-
            La puntuació de risc més alta d'entre les possibles coincidències.
            Null quan no hi ha hagut cap coincidència.
        screened_at:
          type: string
          format: date-time
        fresh:
          type: boolean
          description: >-
            Si el cribratge és més recent que fresh_days (30 dies). Un cribratge
            recent es reutilitza en lloc de facturar-se de nou.
        flagged:
          type: boolean
          description: >-
            true mentre el cribratge sigui recent i el seu estat sigui In Review
            o Declined. Mentre el teu últim cribratge estigui marcat i el
            cribratge de contraparts es mantingui actiu, counterparty_risk_level
            serà HIGH a les teves regles.
    TravelRuleCounterpartyQuestionnaire:
      type: object
      description: >-
        Un qüestionari de diligència deguda que la teva aplicació ha enviat a la
        contrapart: el qüestionari estàndard de Didit, enviat per correu
        electrònic a una adreça de compliment registrada amb un enllaç de
        resposta d'un sol ús. Privat per a la teva aplicació.
      properties:
        id:
          type: string
          format: uuid
        status:
          type: string
          enum:
            - SENT
            - ANSWERED
            - EXPIRED
          description: >-
            SENT: esperant respostes. ANSWERED: la contrapart ha respost a totes
            les preguntes. EXPIRED: l'enllaç de resposta s'ha tancat sense
            respondre (ha vençut el termini o l'ha substituït un qüestionari més
            recent), o les respostes han superat valid_until.
        form_version:
          type: string
          description: >-
            Versió del qüestionari estàndard de Didit al qual pertanyen les
            respostes. Actualment 1.
        sent_to:
          type: string
          format: email
        sent_at:
          type: string
          format: date-time
          nullable: true
        expires_at:
          type: string
          format: date-time
          nullable: true
          description: >-
            La data límit per respondre, 30 dies després de l'enviament.
            L'enllaç deixa de funcionar a partir d'aquesta data.
        answered_at:
          type: string
          format: date-time
          nullable: true
        valid_until:
          type: string
          format: date-time
          nullable: true
          description: >-
            Quant de temps es mantenen vigents les respostes: 365 dies després
            de respondre. Null fins que es respon.
        current:
          type: boolean
          description: >-
            true mentre el qüestionari estigui en estat ANSWERED i no hagi
            superat valid_until.
        answers:
          type: object
          additionalProperties:
            type: string
          description: >-
            Les respostes indexades per id de pregunta: legal_name, licensing,
            jurisdictions, aml_program, compliance_officer, sanctions_screening,
            transaction_monitoring, travel_rule, custody, ownership,
            record_keeping, data_protection. Cada resposta té fins a 2.000
            caràcters. Buit fins que es respongui.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        La clau d'API de la teva aplicació, des de Developers -> API keys a la
        Business Console. La clau primària té accés complet. Una clau amb nom
        pot tenir l'abast limitat: cap, lectura o escriptura per recurs,
        limitada a determinats fluxos de treball o a sessions aprovades, a una
        llista d'adreces IP i a una data de caducitat. 401 significa que la clau
        és incorrecta, revocada o caducada; 403 significa que no s'ha enviat cap
        clau, que la clau no té accés a aquest recurs o acció, o que la
        sol·licitud prové d'una adreça fora de la seva llista d'IP; 404 en una
        ruta de sessió significa que la sessió està fora dels fluxos de treball
        o estats de la clau. Una clau sense accés a fitxers multimèdia rep els
        URL d'imatge, vídeo i PDF com a null, i una clau sense permís
        d'escriptura de sessions rep els enllaços de sessió i els tokens com a
        null. Consulta https://docs.didit.me/console/api-keys.

````

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