> ## 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 عبر البريد

> اطّلع على عناوين الامتثال التي يمكن لقناة البريد الإلكتروني لقاعدة Travel Rule الكتابة إليها لتطبيقك: جهات اتصال منصة Didit وجهات الاتصال الخاصة بك.



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



      
      

\<pre>

\`List the compliance addresses Didit's Travel Rule EMAIL rail may write to for my application.

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

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

Query parameters:
\- counterparty (optional) - a directory entry id from GET /v3/travel-rule/vasps/. Must be a UUID; a value that is not one answers 400 {"counterparty": ["Must be a valid UUID."]}. An empty value means no filter.
\- limit (default 50), offset. The list is newest first; count stops at 100, so 100 means 100 or more.

What to read from each contact:
\- scope - platform (curated by Didit, or learned from an address at one of the VASP's own domains that answered; used for every Didit customer, read-only) or application (private to my application).
\- counterparty, counterparty_name, email, name.
\- source - staff (curated by Didit), learned (an address that answered a request through its response link: platform scope when it is at one of the VASP's own domains, otherwise application scope, private to the application whose request it answered) or application (added by my application).
\- verified_at - when the address last answered a request through its response link.
\- is_invalid, invalid_reason (hard_bounce | soft_bounce | spam_complaint | suppressed, empty while valid), invalid_detail, invalid_at - a bounced or complaining address is skipped by the EMAIL rail. A bounce marks only the contact it reached; suppressed marks every contact at an address Didit's email delivery stopped sending to (after a permanent bounce, a spam complaint or an unsubscribe), and those contacts are valid again once sending to the address resumes.
\- created_by - empty on platform contacts and on contacts an API key added.

Add a contact with POST /v3/travel-rule/counterparty-contacts/ and delete one of mine with DELETE /v3/travel-rule/counterparty-contacts/{contact_uuid}/.

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

\</pre>



      
      

الصق في



## OpenAPI

````yaml ar/openapi-25.json GET /v3/travel-rule/counterparty-contacts/
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/counterparty-contacts/:
    get:
      tags:
        - Travel Rule
      summary: سرد جهات اتصال الطرف المقابل
      description: >-
        عناوين الامتثال التي قد يرسل إليها مسار EMAIL لتطبيقك: جهات اتصال منصة
        Didit بالإضافة إلى جهات الاتصال الخاصة بتطبيقك، بما في ذلك المرتدة،
        الأحدث أولاً. مقسمة إلى صفحات باستخدام `limit` (الافتراضي 50) و`offset`؛
        يتوقف `count` عند 100، لذا فإن 100 تعني 100 أو أكثر.
      operationId: listTravelRuleCounterpartyContacts
      parameters:
        - name: counterparty
          in: query
          schema:
            type: string
            format: uuid
          description: >-
            جهات الاتصال الخاصة بإدخال الدليل هذا فقط. يجب أن تكون بتنسيق UUID؛
            والقيمة الفارغة تعني عدم تطبيق تصفية.
        - 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/TravelRuleCounterpartyContact'
              example:
                count: 1
                next: null
                previous: null
                results:
                  - uuid: 6c1f9b8e-2d4a-4f7e-8b3c-5a9d0e1f2a3b
                    counterparty: 0d6f3c2a-6a1e-4c55-9a39-1f2b0c7d8e91
                    counterparty_name: Example Counterparty VASP
                    email: compliance@counterparty.example
                    name: Compliance desk
                    source: application
                    scope: application
                    created_by: ''
                    verified_at: null
                    is_invalid: false
                    invalid_reason: ''
                    invalid_detail: ''
                    invalid_at: null
                    created_at: '2026-10-19T09:00:00Z'
        '400':
          description: '`counterparty` ليس بصيغة UUID.'
          content:
            application/json:
              example:
                counterparty:
                  - Must be a valid UUID.
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: >-
            curl -X GET
            'https://verification.didit.me/v3/travel-rule/counterparty-contacts/?counterparty={vasp_id}'
            \
              -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.counterparty_contacts.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.counterpartyContacts.list()) {
              console.log(item);
            }
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\niter := client.TravelRule.CounterpartyContacts.ListAutoPaging(ctx, didit.TravelRuleCounterpartyContactsListParams{})\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().counterpartyContacts().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->counterpartyContacts->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.counterparty_contacts.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.CounterpartyContacts.ListAsync())

            {
                Console.WriteLine(JsonSerializer.Serialize(item));
            }
components:
  schemas:
    TravelRuleCounterpartyContact:
      type: object
      description: عنوان امتثال تراسله وسيلة EMAIL لإدخال دليل واحد.
      properties:
        uuid:
          type: string
          format: uuid
        counterparty:
          type: string
          format: uuid
          description: حقل `id` الخاص بإدخال الدليل، كما يعرضه GET /v3/travel-rule/vasps/.
        counterparty_name:
          type: string
        email:
          type: string
          format: email
        name:
          type: string
          description: تسمية اختيارية، على سبيل المثال اسم الفريق.
        source:
          type: string
          enum:
            - staff
            - application
            - learned
          description: >-
            staff: مُنسَّق من قبل Didit. learned: عنوان في أحد نطاقات VASP
            الخاصة التي استجابت لطلب عبر رابط الاستجابة الخاص بها. application:
            تمت إضافته بواسطة تطبيقك.
        scope:
          type: string
          enum:
            - platform
            - application
          description: >-
            platform: تنتقيه Didit أو تستخلصه من إجابة تم التحقق منها، ويُستخدم
            لجميع عملاء Didit، ويكون للقراءة فقط بالنسبة لك. application: خاص
            بتطبيقك.
        created_by:
          type: string
          description: فارغ لجهات اتصال المنصة ولجهات الاتصال التي أضافها مفتاح API.
        verified_at:
          type: string
          format: date-time
          nullable: true
          description: وقت آخر إجابة لهذا العنوان على طلب عبر رابط الاستجابة الخاص به.
        is_invalid:
          type: boolean
          description: true بمجرد ارتداد العنوان أو تقديم شكوى بشأنه؛ ويتخطاه مسار EMAIL.
        invalid_reason:
          type: string
          enum:
            - ''
            - hard_bounce
            - soft_bounce
            - spam_complaint
            - suppressed
        invalid_detail:
          type: string
          description: السبب الذي قدمه خادم البريد المستلم، إن وُجد.
        invalid_at:
          type: string
          format: date-time
          nullable: true
        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.