TRLink

Create Travel Rule Message

Creates a new travel rule message with IVMS101-compliant PII data. Encrypts sensitive originator and beneficiary information before sending to partner.

post/screening/trlink/customers/integration/{customerIntegrationId}/trm

Request

Path parameters

customerIntegrationIdstring uuid required

Customer integration unique identifier

Headers

Idempotency-Keystring

A unique identifier for the request. If the request is sent multiple times with the same idempotency key, the server will return the same response as the first request. The idempotency key is valid for 24 hours.

Request body

assetIdstring nullable

Asset identifier (required when txId not provided)

amountstring nullable

Transaction amount (required when txId not provided)

amountUSDstring nullable

Amount in USD (optional)

srcAddressstring nullable

Source address (optional)

destAddressstring nullable

Destination address (optional)

destTagstring nullable

Destination tag (optional)

txIdstring uuid nullable

Fireblocks transaction ID (optional) - RECOMMENDED for inbound transactions

txHashstring nullable

Transaction hash (optional)

direction'INBOUND' | 'OUTBOUND'

Transaction direction from workspace perspective

originatorVaspIdstring nullable

Originator VASP identifier - required for inbound transactions

beneficiaryVaspIdstring nullable

Beneficiary VASP identifier - required for outbound transactions

Example request

{
  "assetId": "USDT_ERC20",
  "amount": "1000",
  "amountUSD": "1000.50",
  "source": {
    "type": "VAULT_ACCOUNT",
    "id": "12",
    "walletId": "0"
  },
  "srcAddress": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb",
  "destination": {
    "type": "ONE_TIME_ADDRESS",
    "id": "45",
    "walletId": "0",
    "oneTimeAddress": {
      "address": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb",
      "tag": "1234567890"
    }
  },
  "destAddress": "0x8d12A197cB00D4747a1fe03395095ce2A5CC6819",
  "destTag": "1234567890",
  "txId": "550e8400-e29b-41d4-a716-446655440000",
  "txHash": "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef",
  "direction": "OUTBOUND",
  "originatorVaspId": "did:ethr:0x1234567890abcdef",
  "beneficiaryVaspId": "did:ethr:0xfedcba0987654321",
  "ivms101": {
    "version": "IVMS101.2023",
    "data": "aGVsbG8gd29ybGQgdGhpcyBpcyBlbmNyeXB0ZWQgZGF0YQ==",
    "filledFields": [
      "Beneficiary.beneficiaryPersons[].legalPerson.name.nameIdentifier",
      "Beneficiary.beneficiaryPersons[].naturalPerson.name.nameIdentifier"
    ]
  }
}

Response

TRM created successfully

idstring required

TRM message ID

versionstring nullable

TRM version

status'PENDING' | 'ACCEPTED' | 'REJECTED' | 'FAILED' nullable

Current status of the Travel Rule Message

reasonstring nullable

Human readable reason for the current status

externalIdstring required

External ID (e.g., Fireblocks ID)

amountstring required

Transaction amount in asset units

direction'in' | 'out' required

Transaction direction for TRM (in = inbound, out = outbound)

originatorVaspIdstring nullable

ID of the originator VASP

beneficiaryVaspIdstring nullable

ID of the beneficiary VASP

Example response

{
  "id": "trm_1234567890abcdef",
  "version": "1.0",
  "status": "ACCEPTED",
  "reason": "Travel Rule compliance required for this transaction",
  "externalId": "550e8400-e29b-41d4-a716-446655440000",
  "asset": {
    "format": "fireblocks",
    "data": {
      "ticker": "USDT",
      "network": "ETH",
      "ucid": 825,
      "contractAddress": "0xdac17f958d2ee523a2206206994597c13d831ec7",
      "id": "USDT_ERC20"
    }
  },
  "amount": "1000",
  "fiatValue": {
    "amount": "1000.50",
    "currency": "USD"
  },
  "direction": "out",
  "originatorVaspId": "did:ethr:0x1234567890abcdef",
  "beneficiaryVaspId": "did:ethr:0xfedcba0987654321",
  "txnInfo": {
    "originatorWalletAddress": "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb",
    "beneficiaryWalletAddress": "0x8d12A197cB00D4747a1fe03395095ce2A5CC6819",
    "txHash": "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef"
  },
  "ivms101": {
    "version": "1.0",
    "data": "eyJvcmlnaW5hdG9yIjp7Im5hbWUiOiJKb2huIERvZSIsImFkZHJlc3MiOiIxMjMgTWFpbiBTdCJ9LCJiZW5lZmljaWFyeSI6eyJuYW1lIjoiSmFuZSBTbWl0aCIsImFkZHJlc3MiOiI0NTYgRWxtIFN0In19",
    "filledFields": [
      "originator.name",
      "originator.address",
      "beneficiary.name",
      "beneficiary.address"
    ]
  },
  "providerData": {
    "provider": "notabene",
    "data": {
      "vasp_did": "did:ethr:0x1234567890abcdef",
      "compliance_status": "verified"
    }
  }
}

Changes

No recorded changes to this operation across all 1 revision of this API.