> ## 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 busca no diretório de VASPs: rotas da Travel Rule

> Pesquise no diretório de VASPs da Travel Rule e na rede Didit, com filtros e as rotas que sua aplicação tem para cada VASP.



Prompt da API de busca no diretório de VASPs
        Copiar o prompt para a área de transferência



      
      

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



      
      

Colar em



## OpenAPI

````yaml pt-br/openapi-25.json GET /v3/travel-rule/vasps/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: API de verificação de identidade. Autentique-se com o cabeçalho x-api-key.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/travel-rule/vasps/:
    get:
      tags:
        - Travel Rule
      summary: Pesquisar no diretório de VASPs
      description: >-
        Busca paginada e ordenada por nome no diretório de VASPs: as entradas do
        diretório compartilhado, que a Didit monta a partir do registro
        provisório MiCA da ESMA, do diretório público TRISA, do registro global
        de LEI e da sua própria curadoria, além dos membros da rede Didit. Cada
        linha traz as rotas que sua aplicação tem hoje até ela. O perfil da sua
        própria aplicação nunca é listado. As linhas também trazem a avaliação
        de due diligence compartilhada e a decisão, a triagem de entidade e os
        questionários da sua própria aplicação.
      operationId: listTravelRuleVasps
      parameters:
        - name: search
          in: query
          schema:
            type: string
            maxLength: 255
          description: >-
            Um fragmento de nome ou alias (sem diferenciar maiúsculas de
            minúsculas), um LEI exato ou um domínio (example.com ou uma URL
            nesse domínio). Membros da rede Didit correspondem pelo nome legal,
            pelo LEI ou pelo domínio do seu e-mail de conformidade.
        - name: network
          in: query
          schema:
            type: string
            enum:
              - GTR
              - TRUST
              - VERIFYVASP
              - SYGNA
              - TRISA
          description: >-
            Somente entradas do diretório que o diretório de membros de uma rede
            lista atualmente.
        - name: jurisdiction
          in: query
          schema:
            type: string
          description: >-
            Código de país ISO 3166 alpha-2 ou alpha-3. Qualquer outro valor
            retorna 400.
        - name: reachable
          in: query
          schema:
            type: boolean
          description: >-
            true: apenas VASPs para os quais sua aplicação tem uma rota
            disponível (incluindo membros da rede Didit). false: apenas entradas
            do diretório que ela não consegue alcançar hoje.
        - name: kind
          in: query
          schema:
            type: string
            enum:
              - directory
              - didit
          description: Somente entradas do diretório, ou somente membros da rede Didit.
        - name: risk
          in: query
          schema:
            type: string
            enum:
              - LOW
              - MEDIUM
              - HIGH
          description: >-
            Somente entradas do diretório cujo risk_level seja esta faixa.
            Membros da rede Didit, que não recebem pontuação, nunca
            correspondem.
        - name: responsiveness
          in: query
          schema:
            type: string
            enum:
              - RESPONSIVE
              - UNRESPONSIVE
              - UNKNOWN
          description: >-
            Somente entradas do diretório cujo responsiveness.status seja este
            valor. Membros da rede Didit nunca correspondem.
        - 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: Resultados paginados do diretório de VASPs, ordenados por nome.
          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: >-
            Um filtro não é válido: o corpo nomeia cada campo, por exemplo, uma
            rede, um código de país, uma faixa de risco ou um status de
            responsividade desconhecido.
          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: >-
        Um VASP do diretório ou um membro da rede Didit, com as rotas que sua
        aplicação tem até ele. Um cliente é membro da rede Didit somente
        enquanto sua aplicação estiver em produção, sua Travel Rule estiver
        ativada, seu perfil for localizável, tiver uma razão social e um e-mail
        de conformidade confirmado, e a Didit não tiver marcado a aplicação como
        de teste, demonstração ou interna. Cada linha também traz a avaliação de
        due diligence compartilhada (dd_score, risk_level, responsiveness,
        essential_checks) e a decisão, a triagem da entidade e os questionários
        da sua própria aplicação, que nenhum outro cliente vê.
      properties:
        id:
          type: string
          format: uuid
          description: O id da entrada, para GET /v3/travel-rule/vasps/{vasp_id}/.
        kind:
          type: string
          enum:
            - directory
            - didit
          description: >-
            directory para uma entrada do diretório compartilhado; didit para um
            membro da rede Didit.
        name:
          type: string
        lei:
          type: string
        jurisdiction:
          type: string
          description: Código de país ISO 3166, conforme informado pela fonte.
        domains:
          type: array
          items:
            type: string
          description: Os domínios web do VASP. Sempre vazio para membros da rede Didit.
        reachable:
          type: boolean
          description: >-
            Se a sua aplicação tem uma rota disponível até este VASP ou, no caso
            de uma marca, até uma de suas entidades. Sempre true para um membro
            da rede Didit, exceto em uma aplicação de sandbox, onde todas as
            linhas são 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 (do registro global de LEI),
                  network_name (o nome em uma rede de Travel Rule), attribution
                  (o nome da entidade que a análise de blockchain atribui às
                  carteiras do VASP), merged (o nome de uma entrada duplicada
                  mesclada nesta) ou staff.
          description: Outros nomes pelos quais o VASP é conhecido.
        networks:
          type: array
          items:
            type: object
            description: >-
              Uma listagem atual deste VASP no diretório de membros de uma rede
              de Travel Rule. Uma listagem na TRISA indica quem o VASP é na
              TRISA; a Didit não tem canal TRISA, então ela nunca é uma rota.
            properties:
              network:
                type: string
                enum:
                  - GTR
                  - TRUST
                  - VERIFYVASP
                  - SYGNA
                  - TRISA
              code:
                type: string
                description: O identificador do VASP nessa rede.
              listed_name:
                type: string
                description: O nome sob o qual a rede lista o VASP.
              country:
                type: string
                description: O país informado pela rede, quando ela informa um.
              verified_at:
                type: string
                format: date-time
                nullable: true
                description: >-
                  Quando a equipe da Didit verificou a listagem. Nulo para
                  listagens lidas de um diretório público.
              last_seen_at:
                type: string
                format: date-time
                nullable: true
                description: >-
                  Quando a fonte exibiu a listagem pela última vez. Uma listagem
                  que a fonte não exibe há três semanas é removida.
              source:
                type: string
                enum:
                  - trisa_directory
                  - staff
                description: >-
                  Origem da listagem: o diretório público da TRISA ou a equipe
                  da Didit.
        routes:
          type: array
          items:
            type: object
            description: >-
              Uma forma pela qual sua aplicação pode entregar dados de Travel
              Rule a este VASP, na ordem em que o envio as tenta. Uma rota de
              rede exige uma associação a essa rede: a sua própria (conectada no
              Marketplace) ou a da Didit, quando a Didit tiver uma. Sem ela, a
              rota é listada como indisponível, com o motivo, e nunca como uma
              forma de alcançar o 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: >-
                  Por que uma rota indisponível não pode ser usada:
                  no_membership (nem você nem a Didit têm associação nessa
                  rede), network_switched_off (você desativou essa rede nas suas
                  configurações) ou sandbox_application (uma aplicação sandbox
                  envia apenas para o Didit Test VASP, então nenhuma rota está
                  disponível para ela). Vazio quando a rota está disponível.
              via:
                type: string
                enum:
                  - ''
                  - own_membership
                  - didit_membership
                  - directory
                  - contact
                  - didit_network
                description: >-
                  Como uma rota disponível é alcançada: own_membership ou
                  didit_membership para um trilho de rede, directory para um
                  endpoint TRP verificado pelo diretório, contact para o trilho
                  EMAIL, didit_network para um membro da rede Didit. Vazio
                  quando a rota não está disponível.
        umbrella:
          type: object
          nullable: true
          description: >-
            A marca da qual esta entrada é uma entidade regulada. Nulo quando
            não faz parte de nenhuma.
          properties:
            id:
              type: string
              format: uuid
            name:
              type: string
        entities:
          type: array
          items:
            type: object
            description: >-
              Uma entidade regulada de uma marca: a entidade jurídica que recebe
              uma transferência.
            properties:
              id:
                type: string
                format: uuid
              name:
                type: string
              lei:
                type: string
              jurisdiction:
                type: string
              reachable:
                type: boolean
                description: Se a sua aplicação tem uma rota disponível até ele.
          description: >-
            Para uma marca, as entidades reguladas que recebem as suas
            transferências. Uma transferência que indica a marca vai para a
            entidade acessível na jurisdição que ela informa
            (beneficiary_data.counterparty_vasp_jurisdiction); caso contrário,
            para a entidade que a atribuição da análise de blockchain vinculou à
            carteira de destino; caso contrário, para a única entidade acessível
            quando nenhuma jurisdição é informada. Nunca se escolhe por
            suposição entre duas entidades que se encaixam igualmente.
        contacts:
          type: array
          items:
            type: object
            description: >-
              Um contato de conformidade para o qual o canal EMAIL pode
              escrever.
            properties:
              id:
                type: string
                format: uuid
              email:
                type: string
                format: email
              name:
                type: string
              source:
                type: string
                enum:
                  - staff
                  - application
                  - learned
                description: >-
                  staff: curado pela Didit; application: adicionado pela sua
                  aplicação; learned: um endereço que respondeu a uma requisição
                  de Travel Rule pelo link de resposta.
              scope:
                type: string
                enum:
                  - platform
                  - application
                description: >-
                  Os contatos platform são usados nas transferências de todos os
                  clientes da Didit; os contatos application são privados da sua
                  aplicação, que vê apenas os próprios.
              verified_at:
                type: string
                format: date-time
                nullable: true
                description: >-
                  Quando alguém neste endereço respondeu a uma requisição. Nulo
                  enquanto ainda não tiver respondido.
          description: >-
            Os contatos da plataforma para este VASP e os da sua própria
            aplicação.
        dd_status:
          type: string
          enum:
            - NOT_STARTED
            - IN_PROGRESS
            - COMPLETED
            - REJECTED
          description: >-
            Status de verificação da entrada atribuído pela Didit, pontuado pelo
            componente de verificação do dd_score. Sempre COMPLETED para um
            membro da rede Didit.
        dd_score:
          type: integer
          nullable: true
          minimum: 0
          maximum: 100
          description: >-
            A pontuação de due diligence compartilhada de uma entrada do
            diretório, de 0 a 100, em que valores mais altos são mais seguros
            (veja dd_score_semantic): a soma dos pontos em dd_score_breakdown.
            Nula para um membro da rede Didit, que não é pontuado. Uma entrada
            ainda não avaliada (dd_assessed_at nulo) mostra 0 com risk_level
            vazio, então leia risk_level em vez da pontuação bruta.
        reachable_rails:
          type: array
          items:
            type: string
            enum:
              - INTERNAL
              - TRP
              - GTR
              - TRUST
              - VERIFYVASP
              - SYGNA
              - EMAIL
          description: >-
            Canais registrados na entrada. Consulte as rotas para ver o que sua
            aplicação pode usar hoje.
        is_didit_customer:
          type: boolean
          description: >-
            true para um membro da rede Didit (para esses, dd_status é sempre
            COMPLETED, dd_score é null e risk_level fica vazio) e para uma
            entrada do diretório vinculada a um cliente da Didit.
        dd_score_breakdown:
          type: object
          description: >-
            Um objeto por componente de dd_score. Componentes, seu peso (máximo)
            e seus códigos de motivo: 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). Vazio para um
            membro da rede Didit.
          additionalProperties:
            type: object
            properties:
              points:
                type: number
                description: >-
                  Pontos com que o componente contribui, arredondados para uma
                  casa decimal.
              max:
                type: integer
                description: 'O peso do componente: o máximo de pontos que ele pode somar.'
              reason:
                type: string
                description: Código legível por máquina do veredito do componente.
              detail:
                type: string
                description: Explicação de uma linha em inglês.
        dd_assessed_at:
          type: string
          format: date-time
          nullable: true
          description: >-
            Quando dd_score, risk_level e responsiveness foram calculados pela
            última vez: após uma troca com a entrada ser concluída, finalizada,
            expirar, apresentar divergência ou ser recusada, quando a Didit
            atualiza ou faz a curadoria da entrada e na atualização semanal do
            diretório. Nulo para um membro da rede Didit.
        dd_score_semantic:
          type: string
          enum:
            - higher_is_safer
          description: 'Em que direção o dd_score aponta: sempre higher_is_safer.'
        risk_level:
          type: string
          enum:
            - LOW
            - MEDIUM
            - HIGH
            - ''
          description: >-
            A faixa em que dd_score se encontra: LOW (70 ou mais), MEDIUM (40 a
            69) ou HIGH (abaixo de 40). Vazio para um membro da rede Didit e
            para uma entrada ainda não avaliada. Filtre por ela com risk. Sua
            própria triagem sinalizada nunca altera esse valor compartilhado: em
            vez disso, ela torna counterparty_risk_level HIGH nas suas regras.
        responsiveness:
          type: object
          description: >-
            Se o VASP responde a requisições de Travel Rule: a proporção das
            requisições que clientes da Didit iniciaram para ele nos últimos 90
            dias e que ele respondeu. Só contam as requisições enviadas por um
            trilho de rede ou de protocolo, ou por e-mail para um endereço
            compartilhado (o endereço de conformidade da entrada ou um contato
            da plataforma); uma requisição enviada para um endereço digitado por
            um cliente, ou para um contato privado de um cliente, nunca conta.
            Uma requisição expirada é considerada sem resposta; uma troca
            concluída, uma recusa ou uma divergência de dados é uma resposta;
            uma requisição cancelada ou um trilho inacessível não é nenhum dos
            dois. Sempre UNKNOWN com contagens zeradas para um membro da rede
            Didit.
          properties:
            status:
              type: string
              enum:
                - RESPONSIVE
                - UNRESPONSIVE
                - UNKNOWN
              description: >-
                UNKNOWN com menos de 5 requisições decididas na janela;
                UNRESPONSIVE quando menos de 10 por cento delas foram
                respondidas; RESPONSIVE nos demais casos.
            answered:
              type: integer
              description: Requisições decididas na janela que o VASP respondeu.
            total:
              type: integer
              description: 'Requisições decididas na janela: respondidas mais expiradas.'
            computed_at:
              type: string
              format: date-time
              nullable: true
        essential_checks:
          type: object
          description: >-
            O relatório de verificações essenciais de uma entrada do diretório,
            construído apenas a partir das fontes verificadas da plataforma:
            registration (um registro oficial lista o VASP: o registro
            provisório MiCA da UE, o diretório público TRISA ou o registro
            global de LEI), licence (uma autorização MiCA consta nos registros e
            está vigente), domain (o domínio da entrada corresponde ao seu
            endpoint TRP ou ao site indicado pelo seu registro) e lei (seu
            registro LEI está ativo, emitido e consistente com os nomes e o país
            da entrada). O componente essentials de dd_score é a proporção de
            verificações decididas que são aprovadas. Fica vazio até que a
            atualização semanal do diretório verifique a entrada pela primeira
            vez, e fica sempre vazio para um membro da rede 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 quando nenhuma fonte registrada consegue decidir a
                      verificação.
                  reason:
                    type: string
                    description: Código legível por máquina do veredito.
                  detail:
                    type: string
                    description: Explicação de uma linha em inglês.
            passed:
              type: integer
            failed:
              type: integer
            unknown:
              type: integer
            total:
              type: integer
        decision:
          allOf:
            - $ref: '#/components/schemas/TravelRuleCounterpartyDecision'
          nullable: true
          description: >-
            A decisão da sua aplicação sobre esta VASP ou, para uma entidade sem
            decisão própria, a da sua marca (inherited_from indica a marca).
            Nulo quando não há nenhuma. Privada da sua aplicação.
        entity_screening:
          allOf:
            - $ref: '#/components/schemas/TravelRuleCounterpartyScreening'
          nullable: true
          description: >-
            A análise mais recente de sanções e mídia adversa desta VASP feita
            pela sua aplicação. Nula quando você nunca a analisou. Privada da
            sua aplicação.
        questionnaires:
          type: array
          items:
            $ref: '#/components/schemas/TravelRuleCounterpartyQuestionnaire'
          description: >-
            Os questionários de due diligence da sua aplicação com esta VASP,
            dos mais recentes para os mais antigos. Privados da sua aplicação.
      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: >-
        A decisão da sua aplicação sobre uma VASP contraparte. Privada da sua
        aplicação: ela nunca altera a entrada compartilhada do diretório e
        nenhum outro cliente a vê. Ela atua apenas por meio das suas regras de
        transação (o campo de regra counterparty_dd_status e os presets
        travel-rule-counterparty-blocked e travel-rule-counterparty-restricted);
        ela nunca altera como uma transferência é roteada.
      properties:
        decision:
          type: string
          enum:
            - APPROVED
            - RESTRICTED
            - BLOCKED
          description: >-
            APPROVED: sua equipe liberou a contraparte. RESTRICTED:
            transferências para ela podem prosseguir após revisão. BLOCKED: sua
            equipe a recusou.
        reason:
          type: string
          maxLength: 255
          description: >-
            Motivo em texto livre que você informou, vazio quando nenhum foi
            informado.
        decided_by:
          type: string
          description: >-
            O usuário do console que tomou a decisão ou a alterou por último.
            Vazio quando a decisão foi tomada por uma chave de API.
        updated_at:
          type: string
          format: date-time
        inherited_from:
          type: object
          nullable: true
          description: >-
            A marca cuja decisão esta entidade segue porque você não tomou
            nenhuma decisão na própria entidade. Nulo quando a decisão é da
            própria contraparte.
          properties:
            id:
              type: string
              format: uuid
            name:
              type: string
    TravelRuleCounterpartyScreening:
      type: object
      description: >-
        Uma análise de sanções e mídia adversa da entidade contraparte,
        executada para a sua aplicação e faturada a ela. Privada para a sua
        aplicação: nenhum outro cliente a vê.
      properties:
        id:
          type: string
          format: uuid
        status:
          type: string
          enum:
            - Approved
            - In Review
            - Declined
          description: >-
            Aprovado: nenhuma possível correspondência requer atenção. Em
            revisão ou Recusado: uma possível correspondência em sanções ou
            mídia adversa.
        total_hits:
          type: integer
          description: Quantas possíveis correspondências a análise retornou.
        score:
          type: number
          nullable: true
          description: >-
            A maior pontuação de risco entre as possíveis correspondências. Nulo
            quando não houve nenhuma correspondência.
        screened_at:
          type: string
          format: date-time
        fresh:
          type: boolean
          description: >-
            Se a triagem é mais recente que fresh_days (30 dias). Uma triagem
            recente é reutilizada em vez de ser cobrada novamente.
        flagged:
          type: boolean
          description: >-
            true enquanto a análise estiver recente e seu status for In Review
            ou Declined. Enquanto sua análise mais recente estiver sinalizada e
            a análise de contrapartes permanecer ativada,
            counterparty_risk_level é HIGH nas suas regras.
    TravelRuleCounterpartyQuestionnaire:
      type: object
      description: >-
        Um questionário de due diligence que sua aplicação enviou à contraparte:
        o questionário padrão da Didit, enviado por e-mail a um endereço de
        conformidade registrado, com um link de resposta de uso único. Privado
        para sua aplicação.
      properties:
        id:
          type: string
          format: uuid
        status:
          type: string
          enum:
            - SENT
            - ANSWERED
            - EXPIRED
          description: >-
            SENT: aguardando respostas. ANSWERED: a contraparte respondeu a
            todas as perguntas. EXPIRED: o link de resposta foi fechado sem
            resposta (o prazo passou ou um questionário mais recente o
            substituiu), ou as respostas ultrapassaram valid_until.
        form_version:
          type: string
          description: >-
            Versão do questionário padrão da Didit à qual as respostas
            pertencem. Atualmente 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: >-
            O prazo de resposta, 30 dias após o envio. O link para de funcionar
            depois dele.
        answered_at:
          type: string
          format: date-time
          nullable: true
        valid_until:
          type: string
          format: date-time
          nullable: true
          description: >-
            Por quanto tempo as respostas permanecem válidas: 365 dias após
            serem respondidas. Null até serem respondidas.
        current:
          type: boolean
          description: >-
            true enquanto o questionário estiver ANSWERED e valid_until não
            tiver passado.
        answers:
          type: object
          additionalProperties:
            type: string
          description: >-
            As respostas indexadas pelo id da pergunta: legal_name, licensing,
            jurisdictions, aml_program, compliance_officer, sanctions_screening,
            transaction_monitoring, travel_rule, custody, ownership,
            record_keeping, data_protection. Cada resposta tem até 2,000
            caracteres. Ficam vazias até serem respondidas.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        Chave de API da sua aplicação, em Developers -> API keys no Business
        Console. A chave principal tem acesso total. Uma chave nomeada pode ter
        escopo restrito: nenhum acesso, leitura ou escrita por recurso, limitada
        a alguns fluxos ou a sessões aprovadas, a uma lista de endereços IP e a
        uma data de validade. 401 significa que a chave está errada, revogada ou
        expirada; 403 significa que nenhuma chave foi enviada, que a chave não
        tem acesso a este recurso ou ação, ou que a requisição veio de um
        endereço fora da sua lista de IPs; 404 em uma rota de sessão significa
        que a sessão está fora dos fluxos ou status da chave. Uma chave sem
        acesso a mídia recebe URLs de imagem, vídeo e PDF como null, e uma chave
        sem permissão de escrita em sessões recebe links e tokens de sessão como
        null. Consulte https://docs.didit.me/console/api-keys.

````

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