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

# قائمة تحويلات Travel Rule عبر API

> اعرض تحويلات Travel Rule في Didit مع حالتها وقناتها وأسماء VASP المقابلة ومحافظها ومذكراتها، وصفِّها حسب الاتجاه أو الحالة أو القناة أو الطرف المقابل.



موجه API لعرض تحويلات Travel Rule
        نسخ الموجّه إلى الحافظة



      
      

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



      
      

الصق في



## OpenAPI

````yaml ar/openapi-25.json GET /v3/travel-rule/transfers/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: API التحقق من الهوية. قم بالمصادقة باستخدام الرأس x-api-key.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/travel-rule/transfers/:
    get:
      tags:
        - Travel Rule
      summary: سرد تحويلات Travel Rule
      description: >-
        تحويلات Travel Rule الخاصة بتطبيقك، الأحدث أولاً، مقسمة إلى صفحات
        باستخدام `limit` (الافتراضي 50) و`offset`. تحمل الصفوف أسماء VASP
        والمحافظ والملاحظات فقط، ولا تتضمن أبداً بيانات الأشخاص. تحدد القيم
        المفصولة بفواصل عدة عناصر. تُرجع القيمة غير المعروفة استجابة 400 مع ذكر
        اسم المعامل، على سبيل المثال `{"direction": ["Unknown value(s):
        inbound."]}`.
      operationId: listTravelRuleTransfers
      parameters:
        - name: direction
          in: query
          required: false
          schema:
            type: string
          description: INBOUND أو OUTBOUND أو كلاهما مفصولين بفاصلة. حساس لحالة الأحرف.
        - name: status
          in: query
          required: false
          schema:
            type: string
          description: حالة تحويل واحدة أو أكثر، مفصولة بفواصل.
        - name: rail
          in: query
          required: false
          schema:
            type: string
          description: >-
            واحد أو أكثر من INTERNAL، TRP، GTR، TRUST، VERIFYVASP، SYGNA، EMAIL،
            TEST_VASP، مفصولة بفواصل.
        - name: kind
          in: query
          required: false
          schema:
            type: string
          description: withdrawal، أو deposit أو message، مفصولة بفواصل.
        - name: currency
          in: query
          required: false
          schema:
            type: string
          description: عملة المعاملة، غير حساسة لحالة الأحرف.
        - name: start_date
          in: query
          required: false
          schema:
            type: string
            format: date
          description: >-
            التحويلات التي تم إنشاؤها في هذا اليوم أو بعده (UTC)، بتنسيق
            YYYY-MM-DD.
        - name: end_date
          in: query
          required: false
          schema:
            type: string
            format: date
          description: >-
            التحويلات التي تم إنشاؤها في هذا اليوم أو قبله (UTC)، بتنسيق
            YYYY-MM-DD.
        - name: counterparty
          in: query
          required: false
          schema:
            type: string
            format: uuid
          description: >-
            معرّف `id` الخاص بإدخال في الدليل أو عضو في شبكة Didit من GET
            /v3/travel-rule/vasps/: تحويلاتك مع ذلك الطرف المقابل. تؤدي القيمة
            التي لا تمثل معرّفاً صالحاً إلى الرد بالرمز 400.
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
          description: حجم الصفحة، القيمة الافتراضية 50.
        - name: offset
          in: query
          required: false
          schema:
            type: integer
            minimum: 0
          description: الصفوف المراد تخطيها.
      responses:
        '200':
          description: صفحة من التحويلات.
          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: قيمة التصفية غير صالحة.
          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: >-
        تحويل Travel Rule واحد كما تعرضه قائمة التحويلات: أسماء VASP والمحافظ
        والملاحظات فقط، دون بيانات المُرسِل أو المستفيد الشخصية على الإطلاق.
      properties:
        id:
          type: string
          format: uuid
          description: معرّف التحويل.
        transaction_id:
          type: string
          format: uuid
          description: معاملة Didit التي تنتمي إليها عملية التحويل.
        txn_id:
          type: string
          nullable: true
          description: >-
            المعرّف الخاص بك للمعاملة. التحويلات التي تسجلها Didit نيابة عنك،
            مثل التحويل الوارد لـ Didit Test VASP، تحمل معرّفاً تم إنشاؤه.
        txn_date:
          type: string
          format: date-time
        kind:
          type: string
          enum:
            - withdrawal
            - deposit
            - message
          description: >-
            withdrawal: صادر. message: تحويل وارد أنشأه مسار من رسالة طرف مقابل
            (استعلام TRP، أو المسار الوارد INTERNAL، أو رسالة من GTR أو
            VerifyVASP أو Sygna Bridge). deposit: أي تحويل وارد آخر.
        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: >-
            سبب تعثر معاملة بحالة `COUNTERPARTY_VASP_NOT_FOUND` أو
            `COUNTERPARTY_VASP_NOT_REACHABLE`، وهي نفس قيمة `reason` الخاصة
            بالمعاملة نفسها، بحيث تُميّز القائمة بين رسالة الامتثال الإلكترونية
            المرتدة من طرف مقابل ليس لديه مسار دون فتح كل معاملة. وتكون `""` لأي
            حالة أخرى. راجع [سبب تعثر
            المعاملة](/ar/transaction-monitoring/travel-rule#لماذا-يتوقف-التحويل).
        rail:
          type: string
          nullable: true
          enum:
            - INTERNAL
            - TRP
            - GTR
            - TRUST
            - VERIFYVASP
            - SYGNA
            - EMAIL
            - TEST_VASP
            - null
        asset:
          type: string
          description: عملة المعاملة.
        amount:
          type: string
          description: المبلغ كرقم عشري عادي، على سبيل المثال "1.25".
        originator_vasp:
          type: string
          description: >-
            الصادر: الاسم القانوني لـ VASP الخاص بك. الوارد: اسم الطرف المقابل،
            من مدخل الدليل الخاص به، أو العضو في شبكة Didit، أو مُرسِل TRP، أو
            Didit Test VASP، أو الاسم المعلن في التحويل. فارغ عند عدم معرفة أي
            منها.
        beneficiary_vasp:
          type: string
          description: >-
            الصادر: اسم الطرف المقابل، ومُحدَّد بالطريقة نفسها. الوارد: الاسم
            القانوني لـ VASP الخاص بك.
        originator_wallet:
          type: string
        beneficiary_wallet:
          type: string
        originator_memo:
          type: string
          description: >-
            الملاحظة (Memo) أو وسم الوجهة (destination tag)، ويكون فارغاً على
            سلاسل البلوكتشين التي لا تتضمن ذلك.
        beneficiary_memo:
          type: string
        originator_wallet_type:
          type: string
          enum:
            - vasp
            - self_hosted
            - own
          description: >-
            vasp، أو self_hosted (معلن كمحفظة غير مستضافة) أو own (محفظة يسجلها
            دفتر عناوينك كملكية لك). يكون طرفك دائماً vasp.
        beneficiary_wallet_type:
          type: string
          enum:
            - vasp
            - self_hosted
            - own
        matched_transaction_id:
          type: string
          format: uuid
          nullable: true
          description: الجانب الآخر من إيداع قمت بمطابقته يدوياً مع تحويل معلن.
        deadline_at:
          type: string
          format: date-time
          nullable: true
          description: >-
            وقت انتهاء صلاحية التحويل إذا كان لا يزال بانتظار الطرف المقابل.
            يُعيَّن لكل تحويل تُنشئه عبر `POST /v3/transactions/` يتطلب تبادلاً،
            سواء كان صادراً أو وارداً. يكون Null إذا كان أقل من الحد، أو في
            مدفوعات Lightning التي لا تنطبق عليها Travel Rule، وفي التحويلات
            الواردة التي تنشئها Didit عندما يتواصل معك طرف مقابل (استفسار TRP
            وارد، أو رسالة شبكة، أو مسار INTERNAL الوارد).
        created_at:
          type: string
          format: date-time
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        مفتاح API الخاص بتطبيقك، من Developers -> API keys في Business Console.
        يمتلك المفتاح الأساسي وصولاً كاملاً. يمكن تحديد نطاق المفتاح المسمى: لا
        شيء، أو قراءة، أو كتابة لكل مورد، ومحدوداً ببعض مسارات العمل أو بالجلسات
        المقبولة، وبقائمة من عناوين IP، وبتاريخ انتهاء الصلاحية. يشير 401 إلى أن
        المفتاح غير صحيح أو ملغى أو منتهي الصلاحية؛ ويشير 403 إلى أنه لم يتم
        إرسال أي مفتاح، أو أن المفتاح ليس لديه حق الوصول إلى هذا المورد أو
        الإجراء، أو أن الطلب جاء من عنوان خارج قائمة عناوين IP الخاصة به؛ ويشير
        404 في مسار جلسة إلى أن الجلسة خارج مسارات العمل أو الحالات الخاصة
        بالمفتاح. يتلقى المفتاح الذي لا يمتلك حق الوصول إلى الوسائط عناوين URL
        للصور ومقاطع الفيديو وملفات PDF كـ null، ويتلقى المفتاح الذي لا يمتلك
        إذن كتابة للجلسات روابط الجلسة وtoken كـ null. راجع
        https://docs.didit.me/console/api-keys.

````

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