> ## 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 من VASP المُرسِل، لمطابقة كل إيداع مع الرسالة التي أرسلها الطرف المقابل عبر Didit.



واجهة برمجة تطبيقات لإدراج إيداعات Travel Rule غير المطابقة
        نسخ الموجّه إلى الحافظة



      
      

\<pre>

\`List the inbound deposits of my application that still wait for the originating VASP's Travel Rule data.

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

Authentication:
Use the x-api-key header with my Didit API key. A scoped API key needs the transactions privilege.

Which deposits it returns:
\- Inbound transfers whose status is AWAITING_COUNTERPARTY, NOT_ENOUGH_COUNTERPARTY_DATA or COUNTERPARTY_VASP_NOT_FOUND.
\- Only deposits with no received Travel Rule message paired to them and nobody matched by hand.

Query parameters (all optional): the same filters as GET /v3/travel-rule/transfers/ (direction, status, rail, kind, currency, start_date, end_date, counterparty), plus limit (default 50) and offset.

What to read from each row:
\- The same fields as a row of GET /v3/travel-rule/transfers/: id, transaction_id, txn_id, kind, direction, status, rail, asset, amount, originator_vasp, beneficiary_vasp, wallets, memos, matched_transaction_id, deadline_at, created_at.
\- transaction_id is the deposit to pass as {transaction_uuid} to POST /v3/travel-rule/unmatched/{transaction_uuid}/match/.

Failure modes:
\- 400 - a filter value is not valid, for example {"status": ["Unknown value(s): awaiting."]}.
\- 401 - invalid API key.
\- 403 - the key lacks the transactions privilege.

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

\</pre>



      
      

الصق في

## متى تستخدمهقد يصل إيداع وارد إلى محفظتك قبل أن تصل بيانات Travel Rule الخاصة بـ VASP المُرسِل إلى Didit.
إلى أن تصل هذه البيانات، يبقى الإيداع في الانتظار.
اعرض قائمة الإيداعات المعلّقة لتحديد الإيداعات التي تحتاج إلى حلّ.عندما تصل البيانات في رسالة مستلمة منفصلة، اقرن الإيداع والرسالة باستخدام [مطابقة إيداع غير مطابق](https://docs.didit.me/ar/management-api/travel-rule/match-unmatched-deposit.md).## الطلب```bash theme={null}
curl "https://verification.didit.me/v3/travel-rule/unmatched/" \
  -H "x-api-key: YOUR_API_KEY"
```## ملاحظات- الصفوف والتصفية هي نفسها الموجودة في [عرض تحويلات Travel Rule](https://docs.didit.me/ar/management-api/travel-rule/list-transfers.md)، مرتبة من الأحدث إلى الأقدم.
- يخرج الإيداع من القائمة عند إقران رسالة مستلمة به، أو عند مطابقته يدوياً، أو عند تغيّر حالته.
- القائمة فارغة للتطبيقات التي ليس لديها تحويلات Travel Rule.## ذات صلة- [مطابقة إيداع غير مطابق](https://docs.didit.me/ar/management-api/travel-rule/match-unmatched-deposit.md)
- [Travel Rule](https://docs.didit.me/ar/transaction-monitoring/travel-rule.md)


## OpenAPI

````yaml ar/openapi-25.json GET /v3/travel-rule/unmatched/
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/unmatched/:
    get:
      tags:
        - Travel Rule
      summary: عرض قائمة بإيداعات Travel Rule غير المتطابقة
      description: >-
        الإيداعات الواردة التي لا تزال بانتظار بيانات Travel Rule من VASP
        المُرسِل: حالة تحويلها هي `AWAITING_COUNTERPARTY` أو
        `NOT_ENOUGH_COUNTERPARTY_DATA` أو `COUNTERPARTY_VASP_NOT_FOUND`، ولا
        توجد رسالة مستلمة مقترنة بها، ولم يقم أحد بمطابقتها يدوياً. الصفوف
        وعوامل التصفية هي نفسها كما في `GET /v3/travel-rule/transfers/`، الأحدث
        أولاً، ومقسّمة إلى صفحات باستخدام `limit` (الافتراضي 50) و`offset`.
        يمكنك إقران إيداع بالرسالة التي أرسلها VASP المُرسِل باستخدام `POST
        /v3/travel-rule/unmatched/{transaction_uuid}/match/`.
      operationId: listUnmatchedTravelRuleDeposits
      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
            maximum: 1000000
          description: حجم الصفحة، القيمة الافتراضية 50.
        - name: offset
          in: query
          required: false
          schema:
            type: integer
            minimum: 0
            maximum: 1000000
          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: 7d3a1c55-0b9e-4d52-8a3c-1f6e2b9d4a08
                    transaction_id: c41f9b2e-5a8d-4e0c-9f17-3b6d8a2e5c91
                    txn_id: dep-2026-10-20-0007
                    txn_date: '2026-10-19T08:41:12Z'
                    kind: deposit
                    direction: INBOUND
                    status: AWAITING_COUNTERPARTY
                    rail: TRP
                    asset: ETH
                    amount: '1.25'
                    originator_vasp: ''
                    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: null
                    created_at: '2026-10-19T08:41:13Z'
        '400':
          description: قيمة التصفية غير صالحة.
          content:
            application/json:
              example:
                start_date:
                  - Use the YYYY-MM-DD format.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            for item in client.travel_rule.unmatched_deposits.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.unmatchedDeposits.list())
            {
              console.log(item);
            }
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\niter := client.TravelRule.UnmatchedDeposits.ListAutoPaging(ctx, didit.TravelRuleUnmatchedDepositsListParams{})\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().unmatchedDeposits().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->unmatchedDeposits->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.unmatched_deposits.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.UnmatchedDeposits.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
  responses:
    Unauthorized:
      description: غير مصرح به
      content:
        application/json:
          examples:
            Invalid API Key:
              summary: مفتاح API غير صالح
              value:
                detail: Invalid API Key.
    Forbidden:
      description: محظور
      content:
        application/json:
          examples:
            No Permission:
              summary: لا يوجد إذن
              value:
                detail: You do not have permission to perform this action.
            Not Enough Credits:
              summary: الرصيد غير كافٍ
              value:
                error: >-
                  You don't have enough credits to perform this request. Please
                  top up at https://business.didit.me
  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.