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

> Didit의 Travel Rule 이메일 대체 경로에서 일회용 픽업 링크로 대기 중인 교환 정보를 조회합니다. 거래 상대방이 사용하는 기능입니다.



이메일 픽업 정보 조회 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 ko/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: 이메일 레일 픽업 정보 조회
      description: >-
        공개, 비인증. Didit을 사용하지 않는 거래 상대방 VASP가 이메일로 수신한 픽업 링크를 통해 대기 중인 교환 건을 미리 볼
        수 있도록 합니다. 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: 송금 VASP 콘솔에 표시되는 전송의 uuid입니다.
        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: 이 endpoint에서는 항상 false입니다. 이메일 요청은 아웃바운드이며, 발신자 본인의 사용자는 마스킹되지 않습니다.

````

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