> ## 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 Daftar Transfer Travel Rule

> Ambil daftar transfer Travel Rule di Didit: status, rail, VASP pihak lawan, dompet, memo. Filter per arah, status, rail, atau pihak lawan.



Prompt API Daftar Transfer Travel Rule
        Salin prompt ke papan klip



      
      

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



      
      

Tempel ke



## OpenAPI

````yaml id/openapi-25.json GET /v3/travel-rule/transfers/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: API Verifikasi Identitas. Lakukan autentikasi dengan header x-api-key.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/travel-rule/transfers/:
    get:
      tags:
        - Travel Rule
      summary: Daftar transfer Travel Rule
      description: >-
        Transfer Travel Rule aplikasi Anda, yang terbaru lebih dahulu, diberi
        penomoran halaman dengan `limit` (default 50) dan `offset`. Baris hanya
        memuat nama VASP, dompet, dan memo, tidak pernah data individu. Nilai
        yang dipisahkan koma memilih beberapa. Nilai yang tidak dikenal
        menghasilkan respons 400 yang menyebutkan parameternya, misalnya
        `{"direction": ["Unknown value(s): inbound."]}`.
      operationId: listTravelRuleTransfers
      parameters:
        - name: direction
          in: query
          required: false
          schema:
            type: string
          description: >-
            INBOUND, OUTBOUND, atau keduanya dipisahkan koma. Peka huruf
            besar/kecil.
        - name: status
          in: query
          required: false
          schema:
            type: string
          description: Satu atau lebih status transfer, dipisahkan koma.
        - name: rail
          in: query
          required: false
          schema:
            type: string
          description: >-
            Satu atau lebih dari INTERNAL, TRP, GTR, TRUST, VERIFYVASP, SYGNA,
            EMAIL, TEST_VASP, dipisahkan koma.
        - name: kind
          in: query
          required: false
          schema:
            type: string
          description: withdrawal, deposit, atau message, dipisahkan koma.
        - name: currency
          in: query
          required: false
          schema:
            type: string
          description: Mata uang transaksi, tidak peka huruf besar/kecil.
        - name: start_date
          in: query
          required: false
          schema:
            type: string
            format: date
          description: >-
            Transfer yang dibuat pada atau setelah tanggal ini (UTC),
            YYYY-MM-DD.
        - name: end_date
          in: query
          required: false
          schema:
            type: string
            format: date
          description: >-
            Transfer yang dibuat pada atau sebelum tanggal ini (UTC),
            YYYY-MM-DD.
        - name: counterparty
          in: query
          required: false
          schema:
            type: string
            format: uuid
          description: >-
            `id` entri direktori atau anggota jaringan Didit dari GET
            /v3/travel-rule/vasps/: transfer Anda dengan pihak lawan tersebut.
            Nilai yang bukan id yang valid menghasilkan 400.
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
          description: Ukuran halaman, nilai default-nya 50.
        - name: offset
          in: query
          required: false
          schema:
            type: integer
            minimum: 0
          description: Baris yang akan dilewati.
      responses:
        '200':
          description: Satu halaman transfer.
          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: Nilai filter tidak valid.
          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: >-
        Satu transfer Travel Rule seperti yang ditampilkan dalam daftar
        transfer: hanya nama VASP, dompet, dan memo, tanpa data pribadi pengirim
        atau penerima.
      properties:
        id:
          type: string
          format: uuid
          description: id transfer.
        transaction_id:
          type: string
          format: uuid
          description: Transaksi Didit yang terkait dengan transfer tersebut.
        txn_id:
          type: string
          nullable: true
          description: >-
            ID Anda sendiri untuk transaksi tersebut. Transfer yang dicatat
            Didit untuk Anda, seperti transfer masuk Didit Test VASP, membawa ID
            yang dibuat secara otomatis.
        txn_date:
          type: string
          format: date-time
        kind:
          type: string
          enum:
            - withdrawal
            - deposit
            - message
          description: >-
            withdrawal: keluar. message: transfer masuk yang dibuat oleh jalur
            berdasarkan pesan pihak lawan (pertanyaan TRP, bagian masuk
            INTERNAL, atau pesan GTR, VerifyVASP, atau Sygna Bridge). deposit:
            transfer masuk lainnya.
        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: >-
            Alasan transfer `COUNTERPARTY_VASP_NOT_FOUND` atau
            `COUNTERPARTY_VASP_NOT_REACHABLE` tertahan, nilai yang sama dengan
            `reason` transfer itu sendiri, sehingga daftar tersebut membedakan
            email kepatuhan yang dikembalikan dari pihak lawan tanpa rute tanpa
            harus membuka setiap transfer. `""` untuk status lainnya. Lihat
            [Mengapa transfer
            tertahan](/id/transaction-monitoring/travel-rule#mengapa-transfer-macet).
        rail:
          type: string
          nullable: true
          enum:
            - INTERNAL
            - TRP
            - GTR
            - TRUST
            - VERIFYVASP
            - SYGNA
            - EMAIL
            - TEST_VASP
            - null
        asset:
          type: string
          description: Mata uang transaksi.
        amount:
          type: string
          description: Jumlah sebagai desimal biasa, misalnya "1.25".
        originator_vasp:
          type: string
          description: >-
            Keluar: nama resmi VASP Anda. Masuk: nama pihak lawan, dari entri
            direktorinya, anggota jaringan Didit, pengirim TRP, Didit Test VASP,
            atau nama yang dinyatakan transfer. Kosong jika tidak ada yang
            diketahui.
        beneficiary_vasp:
          type: string
          description: >-
            Keluar: nama pihak lawan, ditentukan dengan cara yang sama. Masuk:
            nama resmi VASP Anda.
        originator_wallet:
          type: string
        beneficiary_wallet:
          type: string
        originator_memo:
          type: string
          description: Memo atau tag tujuan, kosong pada rantai yang tidak memilikinya.
        beneficiary_memo:
          type: string
        originator_wallet_type:
          type: string
          enum:
            - vasp
            - self_hosted
            - own
          description: >-
            vasp, self_hosted (dinyatakan unhosted) atau own (dompet yang
            dicatat oleh buku alamat Anda sebagai milik Anda). Sisi Anda sendiri
            selalu vasp.
        beneficiary_wallet_type:
          type: string
          enum:
            - vasp
            - self_hosted
            - own
        matched_transaction_id:
          type: string
          format: uuid
          nullable: true
          description: >-
            Sisi lain dari setoran yang Anda cocokkan secara manual dengan
            transfer yang diumumkan.
        deadline_at:
          type: string
          format: date-time
          nullable: true
          description: >-
            Kapan transfer kedaluwarsa jika masih menunggu pihak lawannya.
            Ditetapkan pada setiap transfer yang Anda buat dengan `POST
            /v3/transactions/` yang memerlukan pertukaran, keluar atau masuk.
            Bernilai null di bawah ambang batas, pada pembayaran Lightning yang
            tidak berlaku Travel Rule, dan pada transfer masuk yang dibuat Didit
            saat pihak lawan menghubungi Anda (permintaan TRP masuk, pesan
            jaringan, atau bagian masuk INTERNAL).
        created_at:
          type: string
          format: date-time
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        Kunci API aplikasi Anda, dari Developers -> API keys di Business
        Console. Kunci utama memiliki akses penuh. Kunci bernama dapat diberi
        cakupan: none, read, atau write per sumber daya, dibatasi pada beberapa
        alur kerja atau pada sesi yang disetujui, pada daftar alamat IP, dan
        pada tanggal kedaluwarsa. 401 berarti kuncinya salah, dicabut, atau
        kedaluwarsa; 403 berarti tidak ada kunci yang dikirimkan, kunci tidak
        memiliki akses ke sumber daya atau tindakan ini, atau permintaan datang
        dari alamat di luar daftar IP-nya; 404 pada rute sesi berarti sesi
        berada di luar alur kerja atau status kunci tersebut. Kunci tanpa akses
        media menerima URL gambar, video, dan PDF sebagai null, dan kunci tanpa
        izin tulis sesi menerima tautan sesi dan token sebagai null. Lihat
        https://docs.didit.me/console/api-keys.

````

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