> ## 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، وهو الجانب الموجّه للطرف المقابل من مسار البريد الاحتياطي.



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



      
      

\<pre>

\`Read the pending Travel Rule exchange behind a one-time email pickup link. This is the counterparty-facing side of Didit's EMAIL fallback rail - used by the compliance team of a VASP that has no protocol channel yet.

Endpoint:
GET https://verification.didit.me/v3/travel-rule/pickup/{token}/

Authentication:
None - the one-time link token is the credential. No Didit account or API key is needed; the hosted pickup page drives this same endpoint.

What to read from the response:
\- reference (the transfer's uuid), requested_at, deadline_at, reminders_sent.
\- originator_vasp_name, originator_vasp_lei - who initiated the exchange; recipient_vasp_name - who it is addressed to; language - the language of the email and page.
\- amount, currency, fiat_amount, fiat_currency, chain, beneficiary_wallet - the transfer being negotiated.
amount is the stored decimal verbatim, so it carries the full 18 decimal places (for example "1500.000000000000000000"). fiat_amount and fiat_currency are empty when the sender gave no converted value.
\- originator_data - only the originator fields the sending VASP shares; the name and the wallet are always included. beneficiary_data - the beneficiary as the sender named it. ivms_request - the same request as an IVMS 101 object (left out while data_masked is true, which never happens on this endpoint).
\- decline_reasons - the codes decline_reason accepts. contact - the link's ?contact= value, echoed unchanged (it is not validated). join_invitation {eligible, url} - eligible is true while the counterparty holds a live invitation to join Didit; the link itself is only in the email.
\- status - the exchange state (AWAITING_COUNTERPARTY while the window is open).

Respond with POST /v3/travel-rule/pickup/{token}/respond/ ({"decision": "accept", "beneficiary_name": "..."}, an IVMS 101 ivms_response, or {"decision": "decline", "decline_reason": "..."}).

Failure modes:
\- 404 - unknown token.
\- 410 - the window closed: the counterparty already answered, the transfer left AWAITING_COUNTERPARTY, or the pickup deadline passed.

Counterparty integration guide: /transaction-monitoring/travel-rule-interoperability#email-pickup.`

\</pre>



      
      

الصق في



## OpenAPI

````yaml ar/openapi-25.json GET /v3/travel-rule/pickup/{token}/
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/pickup/{token}/:
    get:
      tags:
        - Travel Rule
      summary: الحصول على معلومات استلام email-rail
      description: >-
        عام وغير مصادق عليه. يتيح لـ VASP الطرف المقابل غير التابع لـ Didit
        معاينة عملية التبادل المعلقة من رابط الاستلام المُرسل عبر البريد
        الإلكتروني. يُعد الـ token نفسه هو وسيلة المصادقة.
      operationId: getTravelRulePickup
      parameters:
        - name: token
          in: path
          required: true
          schema:
            type: string
        - name: contact
          in: query
          required: false
          schema:
            type: string
          description: >-
            قيمة `?contact=` الخاصة بالرابط، وهي جهة الاتصال التي أُرسل إليها
            الرابط. يتم إرجاعها كقيمة `contact` دون تغيير؛ ولا يتم التحقق من
            صحتها.
      responses:
        '200':
          description: معاينة الاستلام.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TravelRulePickupInfo'
              example:
                reference: 33333333-4444-5555-6666-777777777777
                requested_at: '2026-07-05T10:00:00Z'
                originator_vasp_name: Origin CASP SL
                originator_vasp_lei: 529900EXAMPLEORIG001
                recipient_vasp_name: Example Counterparty VASP
                language: es
                amount: '0.250000000000000000'
                currency: ETH
                fiat_amount: ''
                fiat_currency: ''
                chain: ETH
                beneficiary_wallet: '0xede2d7e4f5b097e6391ab6bbcf2f47a53f4778cb'
                status: AWAITING_COUNTERPARTY
                ivms_version: ivms101.2023
                deadline_at: '2026-07-07T10:00:00Z'
                reminders_sent: 0
                contact: ''
                decline_reasons:
                  - data_mismatch
                  - not_our_customer
                  - wallet_not_hosted
                  - sanctions
                  - risk_appetite
                  - jurisdiction
                  - insufficient_data
                  - other
                join_invitation:
                  eligible: false
                  url: ''
                originator_data:
                  name: Jane Doe
                  wallet_address: '0x77ccff0cc624a53cd8b8d8703ced826710211ec7'
                beneficiary_data:
                  name: Ana Diaz
                  wallet_address: '0xede2d7e4f5b097e6391ab6bbcf2f47a53f4778cb'
                ivms_request:
                  originator:
                    originatorPersons:
                      - naturalPerson:
                          name:
                            nameIdentifier:
                              - primaryIdentifier: Doe
                                secondaryIdentifier: Jane
                                nameIdentifierType: LEGL
                    accountNumber:
                      - '0x77ccff0cc624a53cd8b8d8703ced826710211ec7'
                  beneficiary:
                    beneficiaryPersons:
                      - naturalPerson:
                          name:
                            nameIdentifier:
                              - primaryIdentifier: Diaz
                                secondaryIdentifier: Ana
                                nameIdentifierType: LEGL
                    accountNumber:
                      - '0xede2d7e4f5b097e6391ab6bbcf2f47a53f4778cb'
                data_masked: false
        '404':
          description: token غير معروف.
        '410':
          description: >-
            أُغلقت النافذة: استجاب الطرف المقابل بالفعل، أو غادر التحويل حالة
            AWAITING_COUNTERPARTY، أو انقضى الموعد النهائي.
      security:
        - {}
      x-codeSamples:
        - lang: curl
          label: curl
          source: curl https://verification.didit.me/v3/travel-rule/pickup/{token}/
components:
  schemas:
    TravelRulePickupInfo:
      type: object
      description: >-
        التبادل المعلق وراء رابط الاستلام المُرسل عبر البريد الإلكتروني، كما
        تعرضه صفحة استجابة الطرف المقابل.
      properties:
        reference:
          type: string
          format: uuid
          description: معرّف uuid الخاص بالتحويل، كما تعرضه لوحة تحكم VASP المُرسِل.
        requested_at:
          type: string
          format: date-time
        originator_vasp_name:
          type: string
        originator_vasp_lei:
          type: string
        recipient_vasp_name:
          type: string
          description: VASP الطرف المقابل الذي تم توجيه الطلب إليه.
        language:
          type: string
          description: >-
            لغة بريد الطلب وصفحة الاستجابة، المستندة إلى الولاية القضائية للطرف
            المقابل.
        amount:
          type: string
        currency:
          type: string
        fiat_amount:
          type: string
          description: القيمة المحولة التي قدمها المُرسِل، أو فارغة.
        fiat_currency:
          type: string
        chain:
          type: string
        beneficiary_wallet:
          type: string
        status:
          type: string
        ivms_version:
          type: string
        deadline_at:
          type: string
          format: date-time
          description: متى يتوقف الرابط عن الاستجابة.
        reminders_sent:
          type: integer
        contact:
          type: string
          description: >-
            قيمة `?contact=` للرابط، يتم إرجاعها كما هي؛ وتكون فارغة إذا لم
            يتضمن الرابط أي قيمة.
        decline_reasons:
          type: array
          items:
            type: string
            enum:
              - data_mismatch
              - not_our_customer
              - wallet_not_hosted
              - sanctions
              - risk_appetite
              - jurisdiction
              - insufficient_data
              - other
          description: القيم التي يقبلها `decline_reason`.
        join_invitation:
          type: object
          description: >-
            ما إذا كان الطرف المقابل يمتلك دعوة نشطة للانضمام إلى Didit مجاناً.
            يُرسل رابط الدعوة فقط في البريد الإلكتروني إلى العنوان المُرسَل
            إليه، لذا تكون قيمة `url` فارغة هنا.
          properties:
            eligible:
              type: boolean
            url:
              type: string
        originator_data:
          type: object
          description: >-
            حقول المُرسِل التي يشاركها VASP المُرسِل (`data_sharing_fields`).
            يتم دائماً تضمين الاسم والمحفظة.
        beneficiary_data:
          type: object
        ivms_request:
          type: object
          description: >-
            الطلب نفسه ككائن IVMS 101. يُستبعد طالما أن `data_masked` قيمته
            true.
        data_masked:
          type: boolean
          description: >-
            دائماً false في هذا الـ endpoint: طلب البريد الإلكتروني يكون صادراً،
            ولا يتم أبداً حجب مستخدم المُرسِل نفسه.

````

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