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

> اعرض المعاملات الأخرى في تطبيقك التي تشترك مع معاملة مراقَبة في vendor_data نفسه، من الأحدث إلى الأقدم ومقسّمة إلى صفحات في Didit.



مطالبة API لسرد المعاملات ذات الصلة
        نسخ الموجّه إلى الحافظة



      
      

\<pre>

\`List the transactions related to one Didit monitored transaction through the Management API.

Endpoint:
GET https://verification.didit.me/v3/transactions/{transaction_id}/related/

Authentication:
Use the x-api-key header with my Didit API key. A scoped key needs transactions: read. Keys limited to specific workflows or to approved sessions cannot call this endpoint.

Goal:
\- See the other transactions that involve the same people or companies as this one (same applicant, or this transaction's counterparty appearing elsewhere) so I can review a transaction in context.

Path parameter:
\- transaction_id: the Didit transaction uuid, not my own txn_id.

Behavior:
\- A transaction is related when one of its parties, in any role, has the same vendor_data as one of this transaction's parties. Matching uses vendor_data only, within my application.
\- The transaction itself is never returned. Parties without vendor_data are ignored, so if none of this transaction's parties has a vendor_data the result is always empty.
\- Ordered by txn_date, newest first, then created_at.
\- Paginated with limit (default 50) and offset. count is exact up to 100 and capped at 100 above that, so keep following next until it is null.

Example call:
curl -X GET "https://verification.didit.me/v3/transactions/{transaction_id}/related/?limit=50" \
-H "x-api-key: YOUR_API_KEY"

What to read from the response:
\- results[].uuid: use it with GET /v3/transactions/{transaction_id}/ for the full detail.
\- results[].txn_id, status, score, severity, amount, currency, txn_date: the summary of each related transaction.
\- results[].subject_vendor_data and counterparty_vendor_data: which party links it to this transaction.
\- next: URL of the next page, null on the last page.

Failure modes:
\- 400: limit or offset above 1000000.
\- 401: the API key has expired.
\- 403: missing API key (a wrong, revoked or expired key gets 401) ({"detail": "You do not have permission to perform this action."}), a scoped key without transactions: read, a key with workflow or status limits, or a request from outside the key's IP allowlist.
\- 404: no transaction with this uuid in my application ({"detail": "No Transaction matches the given query."}).
\- 429: more than 600 GET requests per minute with this key; wait Retry-After seconds and retry.

Side effects: none. This is a pure read.

For the full integration shape, see /integration/integration-prompt.`

\</pre>



      
      

الصق في

تُربط المعاملات ذات الصلة عبر `vendor_data` الذي ترسله لكل طرف عند [إرسال المعاملة](https://docs.didit.me/ar/transaction-monitoring/transactions.md#الطرف-المعني-والطرف-المقابل). أرسل نفس `vendor_data` للشخص أو الشركة نفسها في كل مرة، وسيعيد هذا endpoint السجل الكامل للمعاملات حول أي معاملة بعينها، وهي القائمة نفسها التي يطّلع عليها المراجعون تحت **المعاملات ذات الصلة** في [تفاصيل المعاملة](https://docs.didit.me/ar/transaction-monitoring/console.md#تفاصيل-المعاملة) داخل وحدة التحكم.يحمل كل نتيجة بنية الملخص نفسها الموجودة في [عرض المعاملات](https://docs.didit.me/ar/management-api/transactions/list.md). استدعِ [الحصول على المعاملة](https://docs.didit.me/ar/management-api/transactions/get.md) باستخدام `uuid` الخاص بالنتيجة للحصول على أطرافها وتنبيهاتها وعمليات تشغيل القواعد الخاصة بها.


## OpenAPI

````yaml ar/openapi-25.json GET /v3/transactions/{transaction_id}/related/
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/transactions/{transaction_id}/related/:
    get:
      tags:
        - Transactions
      summary: عرض المعاملات ذات الصلة
      description: >-
        عرض قائمة بالمعاملات الأخرى في تطبيقك التي تتضمن نفس الأشخاص أو الشركات
        مثل هذه المعاملة. تُعد المعاملة ذات صلة عندما يكون لأي من أطرافها، في أي
        دور، نفس قيمة `vendor_data` الخاصة بأحد أطراف هذه المعاملة. لا يتم إرجاع
        المعاملة نفسها أبدًا، ويتم تجاهل الأطراف التي ليس لديها `vendor_data`:
        عندما لا يمتلك أي من أطراف هذه المعاملة قيمة منها، تكون النتيجة فارغة
        دائمًا.


        تستخدم النتائج بنية الملخص الخاصة بـ `GET /v3/transactions/`، مرتبة من
        الأحدث أولاً (`txn_date`، ثم `created_at`). مقسمة إلى صفحات باستخدام
        `limit` و `offset`؛ تكون قيمة `count` دقيقة حتى 100 وتتوقف عند 100 كحد
        أقصى لما فوق ذلك، لذا تابع الرابط `next` حتى تصبح قيمته `null`.


        يتطلب مفتاح API محدد النطاق صلاحية `transactions: read`؛ ولا يمكن لمفتاح
        مقتصر على بعض مهام سير العمل أو على الجلسات المقبولة استدعاء هذا الـ
        endpoint. أرسل نفس قيمة `vendor_data` لنفس الشخص أو الشركة في كل
        [معاملة](https://docs.didit.me/ar/transaction-monitoring/transactions#الطرف-المعني-والطرف-المقابل)
        لجعل هذه القائمة مكتملة.
      operationId: list_related_transactions
      parameters:
        - name: transaction_id
          in: path
          required: true
          description: >-
            معرّف UUID لمعاملة Didit: وهو `uuid` الذي تُرجعه `POST
            /v3/transactions/` و`GET /v3/transactions/`. لا يُقبل `txn_id` الخاص
            بك.
          schema:
            type: string
            format: uuid
          example: abcdef12-3456-7890-abcd-ef1234567890
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            default: 50
            minimum: 1
            maximum: 1000000
          description: >-
            عدد المعاملات لكل صفحة. القيمة الافتراضية هي 50. أي قيمة ليست عدداً
            صحيحاً موجباً تعود تلقائياً إلى 50؛ وتُرجع القيمة التي تتجاوز
            1000000 الرمز `400`.
        - name: offset
          in: query
          required: false
          schema:
            type: integer
            maximum: 1000000
            minimum: 0
            default: 0
          description: >-
            موضع يستند إلى الصفر للمعاملة الأولى المراد إرجاعها. يُفضل اتباع
            `next`. القيمة التي ليست عدداً صحيحاً غير سالب ترجع تلقائياً إلى 0؛
            والقيمة التي تزيد عن 1000000 تُرجع `400`.
      responses:
        '200':
          description: صفحة من المعاملات ذات الصلة، الأحدث أولاً.
          content:
            application/json:
              schema:
                type: object
                required:
                  - count
                  - next
                  - previous
                  - results
                properties:
                  count:
                    type: integer
                    description: >-
                      عدد المعاملات ذات الصلة: دقيق حتى 100، ويقتصر على 100 كحد
                      أقصى بعد ذلك. تتبّع `next` بدلاً من حساب الصفحات بناءً
                      عليه.
                  next:
                    type: string
                    format: uri
                    nullable: true
                    description: رابط URL مطلق للصفحة التالية، أو `null` في الصفحة الأخيرة.
                  previous:
                    type: string
                    format: uri
                    nullable: true
                    description: رابط URL مطلق للصفحة السابقة، أو `null` في الصفحة الأولى.
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/TransactionSummary'
              examples:
                One related transaction:
                  value:
                    count: 1
                    next: null
                    previous: null
                    results:
                      - uuid: abcdef99-3456-4890-abcd-ef1234567890
                        transaction_number: 4087
                        txn_id: your-txn-2026-10-02-017
                        transaction_type: finance
                        action_type: deposit
                        status: APPROVED
                        source: LIVE
                        direction: INBOUND
                        amount: '250'
                        currency: EUR
                        currency_type: fiat
                        preferred_currency_amount: '270.08'
                        preferred_currency_code: USD
                        payment_details: Card top-up
                        txn_date: '2026-10-02T14:10:00Z'
                        created_at: '2026-10-02T14:10:03.512244Z'
                        score: 12
                        severity: LOW
                        decision_reason_code: null
                        decision_reason_label: null
                        tags: []
                        subject_name: Maria Garcia
                        subject_vendor_data: user-12345
                        subject_type: user
                        subject_uuid: e1111111-2222-4333-8444-555555555555
                        counterparty_name: null
                        counterparty_vendor_data: null
                        counterparty_country: null
                        subject_country: ESP
                        assigned_to_name: null
                        travel_rule_status: null
                        application_id: aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
                        application_name: Production app
                        organization_id: 11111111-2222-3333-4444-555555555555
                        organization_name: Example Org
                No party has vendor_data:
                  value:
                    count: 0
                    next: null
                    previous: null
                    results: []
        '400':
          description: >-
            `limit` أو `offset` أكبر من 1000000. نص الاستجابة هو مصفوفة JSON من
            الرسائل، وليس كائناً.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
              examples:
                Limit too large:
                  value:
                    - limit must not exceed 1000000.
                Offset too large:
                  value:
                    - offset must not exceed 1000000.
        '401':
          description: >-
            انتهت صلاحية مفتاح API. المفتاح الذي تم إنشاؤه مع تاريخ انتهاء هو
            فقط الذي يمكن أن تنتهي صلاحيته؛ بعد هذا التاريخ، تجيب جميع الطلبات
            باستخدامه بـ `401`.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
              examples:
                Expired key:
                  value:
                    detail: This API key has expired.
        '403':
          description: >-
            الطلب غير مسموح به. يتلقى المفتاح المفقود الرسالة العامة؛ بينما
            يتلقى المفتاح الخاطئ أو الملغى أو منتهي الصلاحية الرمز `401`.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
              examples:
                Missing or invalid key:
                  value:
                    detail: You do not have permission to perform this action.
                Scoped key without transactions read:
                  value:
                    detail: This API key has no read access to transactions.
                Key limited to workflows or approved sessions:
                  value:
                    detail: >-
                      This API key only reaches sessions inside its workflow or
                      status limits, so it can't use this endpoint.
                Outside the key's IP list:
                  value:
                    detail: This API key can't be used from this IP address.
        '404':
          description: >-
            لا توجد معاملة بمعرّف UUID هذا في التطبيق (لم يتم إنشاؤها مطلقاً، أو
            محذوفة، أو مملوكة لتطبيق آخر). إن قيمة `transaction_id` التي لا تمثل
            معرّف UUID لا تصل إلى واجهة API: بل تُرجع صفحة HTML برمز `404` بدلاً
            من نص JSON هذا.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
              examples:
                Not found:
                  value:
                    detail: No Transaction matches the given query.
        '429':
          description: >-
            أكثر من 600 طلب GET في الدقيقة باستخدام مفتاح API هذا. انتظر لعدد
            الثواني المحدد في `Retry-After`، ثم أعد المحاولة.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
              examples:
                Throttled:
                  value:
                    detail: >-
                      GET request rate limit exceeded. You can make up to 600
                      requests per minute.
          headers:
            Retry-After:
              description: عدد الثواني حتى إعادة تعيين النافذة الحالية البالغة دقيقة واحدة.
              schema:
                type: integer
                example: 23
            X-RateLimit-Limit:
              description: الطلبات المسموح بها في الدقيقة ضمن هذه الميزانية.
              schema:
                type: integer
            X-RateLimit-Remaining:
              description: الطلبات المتبقية في النافذة الحالية.
              schema:
                type: integer
            X-RateLimit-Reset:
              description: توقيت Unix عند إعادة تعيين النافذة.
              schema:
                type: integer
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: >-
            curl -X GET
            'https://verification.didit.me/v3/transactions/abcdef12-3456-7890-abcd-ef1234567890/related/?limit=50'
            \
              -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.transactions.list_related(
                "abcdef12-3456-7890-abcd-ef1234567890",
            ):
                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.transactions.listRelated("abcdef12-3456-7890-abcd-ef1234567890"))
            {
              console.log(item);
            }
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\niter := client.Transactions.ListRelatedAutoPaging(ctx, \"abcdef12-3456-7890-abcd-ef1234567890\", didit.TransactionsListRelatedParams{})\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.transactions().listRelated("abcdef12-3456-7890-abcd-ef1234567890"))
            {
                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->transactions->listRelated('abcdef12-3456-7890-abcd-ef1234567890')
            as $item) {
                print_r($item->toArray());
            }
        - lang: ruby
          label: Ruby
          source: >-
            require "didit"


            # Reads DIDIT_API_KEY.

            didit = Didit::Client.new


            didit.transactions.list_related("abcdef12-3456-7890-abcd-ef1234567890").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.Transactions.ListRelatedAsync("abcdef12-3456-7890-abcd-ef1234567890"))

            {
                Console.WriteLine(JsonSerializer.Serialize(item));
            }
components:
  schemas:
    TransactionSummary:
      type: object
      description: >-
        ملخص لمعاملة خاضعة للمراقبة، بالهيكل الذي يسرده `GET /v3/transactions/`.
        استدعِ `GET /v3/transactions/{transaction_id}/` باستخدام `uuid` للحصول
        على الأطراف، والتنبيهات، وعمليات تشغيل القواعد.
      properties:
        uuid:
          type: string
          format: uuid
          description: >-
            معرّف UUID لمعاملة Didit. استخدمه كـ `{transaction_id}` في endpoints
            الخاصة بالمعاملات.
        transaction_number:
          type: integer
          nullable: true
          description: رقم تسلسلي بنطاق التطبيق يظهر في وحدة التحكم.
        txn_id:
          type: string
          nullable: true
          description: المعرّف الخاص بك من استدعاء الإنشاء. فريد لكل تطبيق.
        transaction_type:
          type: string
          description: >-
            الفئة كما هي مخزنة: `finance`، `kyc`، `travelRule`،
            `userPlatformEvent`، `gamblingBet`، `gamblingLimitChange`،
            `gamblingBonusChange`، أو `auditTrailEvent`.
        action_type:
          type: string
          description: النوع الفرعي ضمن الفئة، على سبيل المثال `withdrawal`.
        status:
          type: string
          enum:
            - APPROVED
            - IN_REVIEW
            - DECLINED
            - AWAITING_USER
          description: قرار المراقبة الحالي.
        source:
          type: string
          enum:
            - LIVE
            - IMPORTED
          description: >-
            `LIVE` للمعاملات المرسلة للمراقبة، و`IMPORTED` لعمليات الاستيراد
            السابقة.
        direction:
          type: string
          enum:
            - INBOUND
            - OUTBOUND
          description: الاتجاه بالنسبة إلى الشخص المعني.
        amount:
          type: string
          description: المبلغ كسلسلة عشرية مع إزالة الأصفار اللاحقة (حتى 18 خانة عشرية).
        currency:
          type: string
          description: رمز العملة أو رمز أصل العملة المشفرة الخاص بـ `amount`.
        currency_type:
          type: string
          nullable: true
          description: '`fiat` أو `crypto` عندما تكون معروفة.'
        preferred_currency_amount:
          type: string
          nullable: true
          description: >-
            `amount` محولاً إلى العملة المفضلة للتطبيق، عندما كان سعر الصرف
            متاحًا.
        preferred_currency_code:
          type: string
          nullable: true
          description: عملة `preferred_currency_amount`.
        payment_details:
          type: string
          nullable: true
          description: مرجع الدفع بنص حر.
        txn_date:
          type: string
          format: date-time
          description: وقت حدوث المعاملة.
        created_at:
          type: string
          format: date-time
          description: وقت تسجيل Didit له.
        score:
          type: integer
          description: درجة المخاطر. القيمة الأعلى تعني مخاطر أكبر.
        severity:
          type: string
          nullable: true
          enum:
            - UNKNOWN
            - LOW
            - MEDIUM
            - HIGH
            - CRITICAL
            - null
          description: شدة المخاطر، وتكون `null` حتى يتم تعيينها.
        decision_reason_code:
          type: string
          nullable: true
          description: السبب المقروء آلياً للحالة الحالية `status`.
        decision_reason_label:
          type: string
          nullable: true
          description: تسمية سهلة القراءة لـ `decision_reason_code`.
        tags:
          type: array
          description: العلامات على المعاملة.
          items:
            type: object
            properties:
              uuid:
                type: string
                format: uuid
              name:
                type: string
              color:
                type: string
                description: لون سداسي عشري، على سبيل المثال `#F59E0B`.
              description:
                type: string
                nullable: true
              source:
                type: string
                enum:
                  - didit
                  - custom
                description: وسم Didit مسبق الضبط أو مخصص.
        subject_name:
          type: string
          nullable: true
          description: الاسم الكامل للطرف `APPLICANT`.
        subject_vendor_data:
          type: string
          nullable: true
          description: حقل `vendor_data` الخاص بك لمقدّم الطلب.
        subject_type:
          type: string
          nullable: true
          enum:
            - user
            - business
            - null
          description: >-
            ما إذا كان مقدم الطلب مرتبطاً بمستخدم أو شركة في Didit؛ وتكون `null`
            عندما لا يكون مرتبطاً بأي منهما.
        subject_uuid:
          type: string
          format: uuid
          nullable: true
          description: معرّف UUID لمستخدم أو شركة Didit المرتبط بها مقدم الطلب.
        subject_country:
          type: string
          nullable: true
          description: رمز الدولة لمقدم الطلب.
        counterparty_name:
          type: string
          nullable: true
          description: الاسم الكامل للطرف `COUNTERPARTY`، إن وجد.
        counterparty_vendor_data:
          type: string
          nullable: true
          description: حقل `vendor_data` الخاص بك للطرف المقابل.
        counterparty_country:
          type: string
          nullable: true
          description: رمز الدولة للطرف المقابل.
        assigned_to_name:
          type: string
          nullable: true
          description: اسم مراجع Console المعيّن للمعاملة.
        travel_rule_status:
          type: string
          nullable: true
          description: >-
            حالة تحويل Travel Rule الخاص بالمعاملة، أو `null` إذا لم يكن هناك أي
            تحويل.
        application_id:
          type: string
          format: uuid
          description: التطبيق الذي يمتلك المعاملة.
        application_name:
          type: string
          nullable: true
          description: اسم ذلك التطبيق.
        organization_id:
          type: string
          format: uuid
          description: المؤسسة التي تملك التطبيق.
        organization_name:
          type: string
          nullable: true
          description: اسم تلك المؤسسة.
  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.