> ## 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 para listar transferências da Travel Rule

> Liste transferências da Travel Rule na Didit com status, rail, VASP contraparte, carteiras e memos; filtre por direção, status, rail ou VASP.



Prompt da API de listagem de transferências da Travel Rule
        Copiar o prompt para a área de transferência



      
      

\<pre>

\`List my application's Travel Rule transfers.

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

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

Query parameters (all optional; direction, status, rail and kind are case-sensitive and take comma-separated values to select several, while currency, start_date, end_date and counterparty take one value each):
\- direction - INBOUND, OUTBOUND (case-sensitive).
\- status - any transfer status, for example AWAITING_COUNTERPARTY or COUNTERPARTY_VASP_NOT_FOUND.
\- rail - INTERNAL, TRP, GTR, TRUST, VERIFYVASP, SYGNA, EMAIL, TEST_VASP.
\- kind - withdrawal (outbound), message (an inbound transfer a rail created from a counterparty's message: a TRP inquiry, the INTERNAL inbound leg, or a GTR, VerifyVASP or Sygna Bridge message), deposit (any other inbound transfer).
\- currency - the transaction's currency, case-insensitive.
\- start_date, end_date - YYYY-MM-DD, inclusive, on the transfer's creation day in UTC.
\- counterparty - the id of a directory entry or Didit network member from GET /v3/travel-rule/vasps/.
\- limit (default 50), offset.

What to read from each row:
\- id (the transfer), transaction_id, txn_id, txn_date, kind, direction, status, rail, asset, amount, deadline_at, created_at.
\- reason - why a COUNTERPARTY_VASP_NOT_FOUND or COUNTERPARTY_VASP_NOT_REACHABLE transfer is stuck, for example email_undeliverable or directory_match_no_route; empty for any other status.
\- originator_vasp, beneficiary_vasp - VASP names: my own legal name on my side; on the other side the directory entry, the Didit network member, the TRP sender, the Didit Test VASP in sandbox, or the name the transfer declared. Empty when none is known.
\- originator_wallet, beneficiary_wallet, originator_memo, beneficiary_memo, originator_wallet_type, beneficiary_wallet_type (vasp | self_hosted | own).
\- matched_transaction_id - the other side of a deposit matched by hand.
Rows never carry person data. For a transfer's full detail, read the transaction with GET /v3/transactions/{transaction_id}/.

Failure modes:
\- 400 - a filter value is not valid, for example {"direction": ["Unknown value(s): inbound."]}, {"start_date": ["Use the YYYY-MM-DD format."]} or {"counterparty": ["Use a valid id."]}.

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

\</pre>



      
      

Colar em



## OpenAPI

````yaml pt-br/openapi-25.json GET /v3/travel-rule/transfers/
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/transfers/:
    get:
      tags:
        - Travel Rule
      summary: Listar transferências da Travel Rule
      description: >-
        As transferências de Travel Rule da sua aplicação, das mais recentes
        para as mais antigas, paginadas com `limit` (padrão 50) e `offset`. As
        linhas trazem apenas nomes de VASPs, carteiras e memos, nunca dados de
        pessoas. Valores separados por vírgula selecionam vários. Um valor
        desconhecido responde 400 indicando o parâmetro, por exemplo
        `{"direction": ["Unknown value(s): inbound."]}`.
      operationId: listTravelRuleTransfers
      parameters:
        - name: direction
          in: query
          required: false
          schema:
            type: string
          description: >-
            INBOUND, OUTBOUND ou ambos separados por vírgula. Diferencia
            maiúsculas de minúsculas.
        - name: status
          in: query
          required: false
          schema:
            type: string
          description: Um ou mais status de transferência, separados por vírgula.
        - name: rail
          in: query
          required: false
          schema:
            type: string
          description: >-
            Um ou mais entre INTERNAL, TRP, GTR, TRUST, VERIFYVASP, SYGNA,
            EMAIL, TEST_VASP, separados por vírgula.
        - name: kind
          in: query
          required: false
          schema:
            type: string
          description: withdrawal, deposit ou message, separados por vírgula.
        - name: currency
          in: query
          required: false
          schema:
            type: string
          description: A moeda da transação, sem distinção entre maiúsculas e minúsculas.
        - name: start_date
          in: query
          required: false
          schema:
            type: string
            format: date
          description: Transferências criadas neste dia (UTC) ou depois dele, YYYY-MM-DD.
        - name: end_date
          in: query
          required: false
          schema:
            type: string
            format: date
          description: Transferências criadas neste dia (UTC) ou antes dele, YYYY-MM-DD.
        - name: counterparty
          in: query
          required: false
          schema:
            type: string
            format: uuid
          description: >-
            O `id` de uma entrada do diretório ou de um membro da rede Didit
            retornado por GET /v3/travel-rule/vasps/: suas transferências com
            essa contraparte. Um valor que não seja um id válido retorna 400.
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
          description: Tamanho da página, padrão 50.
        - name: offset
          in: query
          required: false
          schema:
            type: integer
            minimum: 0
          description: Linhas a ignorar.
      responses:
        '200':
          description: Uma página de transferências.
          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/TravelRuleTransferRow'
              example:
                count: 1
                next: null
                previous: null
                results:
                  - id: 5b0f6c2e-2a4d-4f0e-9a41-0c3f9a7e1d22
                    transaction_id: a3c1e8f4-7b62-4d1a-8e0b-2f9d6c4b7a10
                    txn_id: wd-2026-10-19-0042
                    txn_date: '2026-10-19T08:41:12Z'
                    kind: withdrawal
                    direction: OUTBOUND
                    status: AWAITING_COUNTERPARTY
                    rail: TRP
                    asset: ETH
                    amount: '1.25'
                    originator_vasp: Origin CASP SL
                    beneficiary_vasp: Example Counterparty VASP
                    originator_wallet: '0x77ccff0cc624a53cd8b8d8703ced826710211ec7'
                    beneficiary_wallet: '0xede2d7e4f5b097e6391ab6bbcf2f47a53f4778cb'
                    originator_memo: ''
                    beneficiary_memo: ''
                    originator_wallet_type: vasp
                    beneficiary_wallet_type: vasp
                    matched_transaction_id: null
                    deadline_at: '2026-10-21T08:41:13Z'
                    created_at: '2026-10-19T08:41:13Z'
        '400':
          description: Um valor de filtro não é válido.
          content:
            application/json:
              example:
                start_date:
                  - Use the YYYY-MM-DD format.
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: >-
            curl -X GET
            'https://verification.didit.me/v3/travel-rule/transfers/?direction=OUTBOUND&status=AWAITING_COUNTERPARTY'
            \
              -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.transfers.list():
                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.transfers.list()) {
              console.log(item);
            }
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\niter := client.TravelRule.Transfers.ListAutoPaging(ctx, didit.TravelRuleTransfersListParams{})\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().transfers().list()) {
                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->transfers->list() as $item) {
                print_r($item->toArray());
            }
        - lang: ruby
          label: Ruby
          source: |-
            require "didit"

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

            didit.travel_rule.transfers.list.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.Transfers.ListAsync())

            {
                Console.WriteLine(JsonSerializer.Serialize(item));
            }
components:
  schemas:
    TravelRuleTransferRow:
      type: object
      description: >-
        Uma transferência Travel Rule como aparece na lista de transferências:
        apenas nomes de VASP, carteiras e memorandos, nunca os dados pessoais do
        remetente ou do beneficiário.
      properties:
        id:
          type: string
          format: uuid
          description: O id da transferência.
        transaction_id:
          type: string
          format: uuid
          description: A transação da Didit à qual a transferência pertence.
        txn_id:
          type: string
          nullable: true
          description: >-
            Seu próprio id para a transação. As transferências que a Didit
            registra para você, como uma transferência de entrada do Didit Test
            VASP, recebem um id gerado.
        txn_date:
          type: string
          format: date-time
        kind:
          type: string
          enum:
            - withdrawal
            - deposit
            - message
          description: >-
            withdrawal: de saída. message: uma transferência de entrada que um
            canal criou a partir de uma mensagem da contraparte (uma consulta
            TRP, a ponta INTERNAL de entrada ou uma mensagem GTR, VerifyVASP ou
            Sygna Bridge). deposit: qualquer outra transferência de entrada.
        direction:
          type: string
          enum:
            - INBOUND
            - OUTBOUND
        status:
          type: string
          enum:
            - AWAITING_COUNTERPARTY
            - ON_HOLD
            - COMPLETED
            - FINISHED
            - CANCELLED
            - EXPIRED
            - COUNTERPARTY_MISMATCHED_DATA
            - COUNTERPARTY_VASP_NOT_FOUND
            - COUNTERPARTY_VASP_NOT_REACHABLE
            - UNCONFIRMED_OWNERSHIP
            - COUNTERPARTY_VASP_GENERAL_DECLINE
            - NOT_ENOUGH_COUNTERPARTY_DATA
            - NOT_APPLICABLE
        reason:
          type: string
          description: >-
            Motivo pelo qual uma transferência `COUNTERPARTY_VASP_NOT_FOUND` ou
            `COUNTERPARTY_VASP_NOT_REACHABLE` está parada, com o mesmo valor do
            `reason` da própria transferência, para que a lista diferencie um
            e-mail de conformidade devolvido de uma contraparte sem rota sem
            precisar abrir cada transferência. `""` para qualquer outro status.
            Veja [Por que uma transferência está
            parada](/pt-br/transaction-monitoring/travel-rule#por-que-uma-transferência-fica-travada).
        rail:
          type: string
          nullable: true
          enum:
            - INTERNAL
            - TRP
            - GTR
            - TRUST
            - VERIFYVASP
            - SYGNA
            - EMAIL
            - TEST_VASP
            - null
        asset:
          type: string
          description: A moeda da transação.
        amount:
          type: string
          description: O valor como decimal simples, por exemplo "1.25".
        originator_vasp:
          type: string
          description: >-
            Saída: a razão social do seu VASP. Entrada: o nome da contraparte,
            obtido da sua entrada no diretório, do membro da rede Didit, do
            remetente TRP, do Didit Test VASP ou do nome declarado na
            transferência. Vazio quando nenhum nome é conhecido.
        beneficiary_vasp:
          type: string
          description: >-
            Saída: o nome da contraparte, determinado da mesma forma. Entrada: a
            razão social do seu VASP.
        originator_wallet:
          type: string
        beneficiary_wallet:
          type: string
        originator_memo:
          type: string
          description: Memo ou tag de destino, vazio em blockchains que não têm um.
        beneficiary_memo:
          type: string
        originator_wallet_type:
          type: string
          enum:
            - vasp
            - self_hosted
            - own
          description: >-
            vasp, self_hosted (declarada como não custodiada) ou own (uma
            carteira que seu catálogo de endereços registra como sua). O seu
            próprio lado é sempre vasp.
        beneficiary_wallet_type:
          type: string
          enum:
            - vasp
            - self_hosted
            - own
        matched_transaction_id:
          type: string
          format: uuid
          nullable: true
          description: >-
            O outro lado de um depósito que você associou manualmente a uma
            transferência anunciada.
        deadline_at:
          type: string
          format: date-time
          nullable: true
          description: >-
            Quando a transferência expira, se ainda estiver aguardando a
            contraparte. Definido em toda transferência que você cria com `POST
            /v3/transactions/` e que exige uma troca, seja de saída ou de
            entrada. Nulo abaixo do limiar, em um pagamento Lightning ao qual a
            Travel Rule não se aplica e em transferências de entrada que a Didit
            cria quando uma contraparte entra em contato com você (uma consulta
            TRP de entrada, uma mensagem de rede ou a etapa de entrada
            INTERNAL).
        created_at:
          type: string
          format: date-time
  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.