---
title: "Create Travel Rule Message"
method: POST
path: "/screening/trlink/customers/integration/{customerIntegrationId}/trm"
tags: ["TRLink"]
---

# Create Travel Rule Message

`POST /screening/trlink/customers/integration/{customerIntegrationId}/trm`

## Request

- Base URL: `https://api.fireblocks.io/v1`
- URL: `https://api.fireblocks.io/v1/screening/trlink/customers/integration/{customerIntegrationId}/trm`
- Auth: none declared
- TypeScript: <https://skmtc.dev/fireblocks/apis/fireblocks-api/docs/screening/trlink/customers/integration/:customerIntegrationId/trm/post.ts> (a function with typed inputs; its response is checked against the schema)

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

## Path parameters

- `customerIntegrationId` string, uuid, required

## Headers

- `Idempotency-Key` string

## Request body

- TRLinkCreateTrmRequest: Request to create a Travel Rule Message with IVMS101 PII data
  - `assetId` string, nullable: Asset identifier (required when txId not provided)
  - `amount` string, nullable: Transaction amount (required when txId not provided)
  - `amountUSD` string, nullable: Amount in USD (optional)
  - `source` TRLinkSourceTransferPeerPath: Source peer path for transaction
    - `type` string, required: Source peer type (e.g., VAULT_ACCOUNT, UNKNOWN)
    - `id` string, nullable: Source peer ID
    - `walletId` string, nullable: Source wallet ID
  - `srcAddress` string, nullable: Source address (optional)
  - `destination` TRLinkDestinationTransferPeerPath: Destination peer path for transaction
    - `type` string, required: Destination peer type (e.g., ONE_TIME_ADDRESS, VAULT_ACCOUNT)
    - `id` string, nullable: Destination peer ID
    - `walletId` string, nullable: Destination wallet ID
    - `oneTimeAddress` TRLinkOneTimeAddress
      - `address` string, required: Blockchain address
      - `tag` string, nullable: Destination tag (memo, memo ID, etc.)
  - `destAddress` string, nullable: Destination address (optional)
  - `destTag` string, nullable: Destination tag (optional)
  - `txId` string, uuid, nullable: Fireblocks transaction ID (optional) - RECOMMENDED for inbound transactions
  - `txHash` string, nullable: Transaction hash (optional)
  - `direction` 'INBOUND' | 'OUTBOUND': Transaction direction from workspace perspective
  - `originatorVaspId` string, nullable: Originator VASP identifier - required for inbound transactions
  - `beneficiaryVaspId` string, nullable: Beneficiary VASP identifier - required for outbound transactions
  - `ivms101` TRLinkIvms, required: IVMS101 data structure containing encrypted PII
    - `version` string, required: IVMS version
    - `data` string, required: Encrypted IVMS101 data containing originator and beneficiary information
    - `filledFields` string[], required: List of fields that are filled in the IVMS data

## Response `201`

TRM created successfully

- TRLinkTrmInfoResponse: Travel Rule Message information
  - `id` string, required: TRM message ID
  - `version` string, nullable: TRM version
  - `status` 'PENDING' | 'ACCEPTED' | 'REJECTED' | 'FAILED', nullable: Current status of the Travel Rule Message
  - `reason` string, nullable: Human readable reason for the current status
  - `externalId` string, required: External ID (e.g., Fireblocks ID)
  - `asset` TRLinkAsset, required
    - `format` 'fireblocks' | 'coinmarketcap', required: Asset format type
    - `data` TRLinkAssetData, required
      - `ticker` string, nullable: Asset ticker symbol (e.g., BTC, ETH, USDT)
      - `network` string, required: Network identifier from Fireblocks (e.g., ETH, BTC)
      - `ucid` number, nullable: CoinMarketCap unique coin ID
      - `contractAddress` string, nullable: Contract address for tokens
      - `id` string, nullable: Fireblocks asset ID
  - `amount` string, required: Transaction amount in asset units
  - `fiatValue` TRLinkFiatValue
    - `amount` string, required: Fiat amount
    - `currency` string, required: Fiat currency code
  - `direction` 'in' | 'out', required: Transaction direction for TRM (in = inbound, out = outbound)
  - `originatorVaspId` string, nullable: ID of the originator VASP
  - `beneficiaryVaspId` string, nullable: ID of the beneficiary VASP
  - `txnInfo` TRLinkTxnInfo, required
    - `originatorWalletAddress` string, required: Originator's blockchain wallet address
    - `beneficiaryWalletAddress` string, required: Beneficiary's blockchain wallet address
    - `txHash` string, required: Blockchain transaction hash
  - `ivms101` TRLinkIvmsResponse, required: IVMS101 data in response format
    - `version` string, required: IVMS101 version
    - `data` string, required: Base64 encoded IVMS101 data containing originator and beneficiary information
    - `filledFields` string[], required: List of fields that are filled in the IVMS101 data
  - `providerData` TRLinkProviderData
    - `provider` string, nullable: Provider name
    - `data` object, nullable: Provider-specific data

## Other responses

- `default`: Error Response

---

[API](https://skmtc.dev/fireblocks/apis/fireblocks-api.md) - [All operations](https://skmtc.dev/fireblocks/apis/fireblocks-api/llms.txt) - [OpenAPI document](https://skmtc.dev/fireblocks/apis/fireblocks-api/revisions/4eba9965659a?raw)
