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

# Info Pickup Email Travel Rule via API

> Baca pertukaran Travel Rule yang tertunda dari tautan pickup email sekali pakai di Didit, sisi pihak lawan dari rail email fallback.



Prompt API untuk Mendapatkan Info Pengambilan Email
        Salin prompt ke papan klip



      
      

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



      
      

Tempel ke



## OpenAPI

````yaml id/openapi-25.json GET /v3/travel-rule/pickup/{token}/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: API Verifikasi Identitas. Lakukan autentikasi dengan header x-api-key.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/travel-rule/pickup/{token}/:
    get:
      tags:
        - Travel Rule
      summary: Dapatkan info penjemputan jalur email
      description: >-
        Publik, tidak terautentikasi. Memungkinkan VASP pihak lawan non-Didit
        melihat pratinjau pertukaran yang tertunda dari tautan pengambilan yang
        dikirim melalui email. Token itu sendiri berfungsi sebagai autentikasi.
      operationId: getTravelRulePickup
      parameters:
        - name: token
          in: path
          required: true
          schema:
            type: string
        - name: contact
          in: query
          required: false
          schema:
            type: string
          description: >-
            Nilai `?contact=` dari tautan, kontak tujuan pengiriman tautan.
            Dikembalikan sebagai `contact` tanpa perubahan; nilai ini tidak
            divalidasi.
      responses:
        '200':
          description: Pratinjau pengambilan.
          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 tidak dikenal.
        '410':
          description: >-
            Jendela waktu telah ditutup: pihak lawan telah menjawab, transfer
            keluar dari AWAITING_COUNTERPARTY, atau batas waktu telah terlewati.
      security:
        - {}
      x-codeSamples:
        - lang: curl
          label: curl
          source: curl https://verification.didit.me/v3/travel-rule/pickup/{token}/
components:
  schemas:
    TravelRulePickupInfo:
      type: object
      description: >-
        Pertukaran tertunda di balik tautan penjemputan yang dikirim melalui
        email, sebagaimana ditampilkan pada halaman respons pihak lawan.
      properties:
        reference:
          type: string
          format: uuid
          description: uuid transfer, seperti yang ditampilkan konsol VASP pengirim.
        requested_at:
          type: string
          format: date-time
        originator_vasp_name:
          type: string
        originator_vasp_lei:
          type: string
        recipient_vasp_name:
          type: string
          description: VASP pihak lawan yang menjadi tujuan permintaan.
        language:
          type: string
          description: >-
            Bahasa email permintaan dan halaman respons, dari yurisdiksi pihak
            lawan.
        amount:
          type: string
        currency:
          type: string
        fiat_amount:
          type: string
          description: Nilai terkonversi yang diberikan pengirim, atau kosong.
        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: Waktu tautan berhenti merespons.
        reminders_sent:
          type: integer
        contact:
          type: string
          description: >-
            Nilai `?contact=` dari tautan, ditampilkan kembali; kosong jika
            tautan tidak memilikinya.
        decline_reasons:
          type: array
          items:
            type: string
            enum:
              - data_mismatch
              - not_our_customer
              - wallet_not_hosted
              - sanctions
              - risk_appetite
              - jurisdiction
              - insufficient_data
              - other
          description: Nilai yang diterima `decline_reason`.
        join_invitation:
          type: object
          description: >-
            Apakah pihak lawan memiliki undangan aktif untuk bergabung dengan
            Didit secara gratis. Tautan undangan hanya dikirim melalui email ke
            alamat yang diundang, sehingga `url` kosong di sini.
          properties:
            eligible:
              type: boolean
            url:
              type: string
        originator_data:
          type: object
          description: >-
            Kolom pengirim yang dibagikan oleh VASP pengirim
            (`data_sharing_fields`). Nama dan dompet selalu disertakan.
        beneficiary_data:
          type: object
        ivms_request:
          type: object
          description: >-
            Permintaan yang sama sebagai objek IVMS 101. Ditiadakan saat
            `data_masked` bernilai true.
        data_masked:
          type: boolean
          description: >-
            Selalu false pada endpoint ini: permintaan email bersifat keluar
            (outbound), dan pengguna milik pengirim tidak pernah disamarkan.

````

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