Last updated

End-to-End Guide

A typical Travel Rule transaction passes through five stages.

1. Generate JWT Token

This is the first step in every API session. You send your API Key and receive a temporary JWT token.

Why this is needed

  • Protects the API
  • Prevents unauthorized access
  • Ensures every transfer is linked to a verified VASP

See POST /auth/token.

2. Generate Travel Address

A Travel Address is a unique identifier for the beneficiary VASP. It acts like a Travel Rule routing code that tells TRP where to deliver IVMS101 beneficiary data.

To generate it, you only provide:

  • Beneficiary first name
  • Beneficiary last name (or legalName for legal entities)

No sensitive data is exposed by the Travel Address itself — it is a URL-safe encoded routing token.

When to use

  • Before initiating a transfer
  • When a user enters a beneficiary's wallet address
  • During onboarding flows

See POST /travel-address/generate.

3. Initiate Transfer (Travel Rule Request)

This is the main Travel Rule operation. You submit:

  • Originator data
  • Beneficiary data
  • Asset and amount
  • Travel Address (OPEN_VASP flow) or beneficiary email (EMAIL flow)
  • Callback URL

TRP will:

  • Validate IVMS101 originator & beneficiary data
  • Determine the beneficiary VASP from the Travel Address
  • Forward the data securely
  • Await their confirmation
  • Send callback updates to your backend

See POST /transfers/initiate.

4. Inquiry / Inquiry Resolution

The receiving VASP responds with an inquiry resolution containing the beneficiary wallet address. TRP routes this back to the originator's callback URL.

See POST /transfers/inquiry/{beneficiaryPublicId} and POST /transfers/inquiryResolution.

5. Broadcast TxId & Confirmation

Once the transfer is broadcast on-chain, the originator VASP submits txId. TRP forwards a final confirmation callback to the beneficiary VASP.

See POST /transfers/txId and POST /transfers/confirmation.