> ## Documentation Index
> Fetch the complete documentation index at: https://developers.fireblocks.com/llms.txt
> Use this file to discover all available pages before exploring further.

<AgentInstructions>

## Submitting Feedback

If you encounter incorrect, outdated, or confusing documentation on this page, submit feedback:

POST https://developers.fireblocks.com/feedback

```json
{
  "path": "/api-reference/trlink/create-travel-rule-message",
  "feedback": "Description of the issue"
}
```

Only submit feedback when you have something specific and actionable to report.

</AgentInstructions>

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



## OpenAPI

````yaml https://docs.fireblocks.com/api/v1/swagger.yaml post /screening/trlink/customers/integration/{customerIntegrationId}/trm
openapi: 3.0.0
info:
  title: Fireblocks API
  description: >
    Fireblocks provides a suite of applications to manage digital asset
    operations and a complete development platform to build your business on the
    blockchain.


    - Visit our website for more information: [Fireblocks
    Website](https://fireblocks.com)

    - Visit our developer docs: [Fireblocks
    DevPortal](https://developers.fireblocks.com)
  version: 1.6.2
  contact:
    email: developers@fireblocks.com
servers:
  - url: https://api.fireblocks.io/v1
    description: Fireblocks Production Environment Base URL
  - url: https://sandbox-api.fireblocks.io/v1
    description: Fireblocks Sandbox Environment Base URL
security: []
paths:
  /screening/trlink/customers/integration/{customerIntegrationId}/trm:
    post:
      tags:
        - TRLink
      summary: Create Travel Rule Message
      description: >-
        Creates a new travel rule message with IVMS101-compliant PII data.
        Encrypts sensitive originator and beneficiary information before sending
        to partner.
      operationId: createTRLinkTrm
      parameters:
        - name: customerIntegrationId
          in: path
          required: true
          description: Customer integration unique identifier
          schema:
            type: string
            format: uuid
        - $ref: '#/components/parameters/X-Idempotency-Key'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TRLinkCreateTrmRequest'
      responses:
        '201':
          description: TRM created successfully
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TRLinkTrmInfoResponse'
        default:
          $ref: '#/components/responses/Error'
      x-codeSamples:
        - lang: TypeScript
          source: >-
            const response: Promise<FireblocksResponse<TRLinkTrmInfoResponse>> =
            fireblocks.tRLink.createTRLinkTrm(tRLinkApiCreateTRLinkTrmRequest);
        - lang: Java
          source: >-
            CompletableFuture<ApiResponse<TRLinkTrmInfoResponse>> response =
            fireblocks.tRLink().createTRLinkTrm(tRLinkCreateTrmRequest,
            customerIntegrationId, idempotencyKey);
        - lang: Python
          source: >-
            response =
            fireblocks.t_r_link.create_t_r_link_trm(t_r_link_create_trm_request,
            customer_integration_id, idempotency_key);
components:
  parameters:
    X-Idempotency-Key:
      name: Idempotency-Key
      in: header
      description: >-
        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.
      required: false
      schema:
        type: string
  schemas:
    TRLinkCreateTrmRequest:
      type: object
      description: Request to create a Travel Rule Message with IVMS101 PII data
      properties:
        assetId:
          type: string
          description: Asset identifier (required when txId not provided)
          nullable: true
          example: USDT_ERC20
        amount:
          type: string
          description: Transaction amount (required when txId not provided)
          nullable: true
          example: '1000'
        amountUSD:
          type: string
          description: Amount in USD (optional)
          nullable: true
          example: '1000.50'
        source:
          $ref: '#/components/schemas/TRLinkSourceTransferPeerPath'
        srcAddress:
          type: string
          description: Source address (optional)
          nullable: true
          example: '0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb'
        destination:
          $ref: '#/components/schemas/TRLinkDestinationTransferPeerPath'
        destAddress:
          type: string
          description: Destination address (optional)
          nullable: true
          example: '0x8d12A197cB00D4747a1fe03395095ce2A5CC6819'
        destTag:
          type: string
          description: Destination tag (optional)
          nullable: true
          example: '1234567890'
        txId:
          type: string
          format: uuid
          description: >-
            Fireblocks transaction ID (optional) - RECOMMENDED for inbound
            transactions
          nullable: true
          example: 550e8400-e29b-41d4-a716-446655440000
        txHash:
          type: string
          description: Transaction hash (optional)
          nullable: true
          example: '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef'
        direction:
          $ref: '#/components/schemas/TRLinkTransactionDirection'
        originatorVaspId:
          type: string
          description: Originator VASP identifier - required for inbound transactions
          nullable: true
          example: did:ethr:0x1234567890abcdef
        beneficiaryVaspId:
          type: string
          description: Beneficiary VASP identifier - required for outbound transactions
          nullable: true
          example: did:ethr:0xfedcba0987654321
        ivms101:
          $ref: '#/components/schemas/TRLinkIvms'
      required:
        - ivms101
    TRLinkTrmInfoResponse:
      type: object
      description: Travel Rule Message information
      properties:
        id:
          type: string
          description: TRM message ID
          example: trm_1234567890abcdef
        version:
          type: string
          description: TRM version
          nullable: true
          example: '1.0'
        status:
          $ref: '#/components/schemas/TRLinkTrmStatus'
        reason:
          type: string
          description: Human readable reason for the current status
          nullable: true
          example: Travel Rule compliance required for this transaction
        externalId:
          type: string
          description: External ID (e.g., Fireblocks ID)
          example: 550e8400-e29b-41d4-a716-446655440000
        asset:
          $ref: '#/components/schemas/TRLinkAsset'
        amount:
          type: string
          description: Transaction amount in asset units
          example: '1000'
        fiatValue:
          $ref: '#/components/schemas/TRLinkFiatValue'
        direction:
          $ref: '#/components/schemas/TRLinkTrmDirection'
        originatorVaspId:
          type: string
          description: ID of the originator VASP
          nullable: true
          example: did:ethr:0x1234567890abcdef
        beneficiaryVaspId:
          type: string
          description: ID of the beneficiary VASP
          nullable: true
          example: did:ethr:0xfedcba0987654321
        txnInfo:
          $ref: '#/components/schemas/TRLinkTxnInfo'
        ivms101:
          $ref: '#/components/schemas/TRLinkIvmsResponse'
        providerData:
          $ref: '#/components/schemas/TRLinkProviderData'
      required:
        - id
        - externalId
        - asset
        - amount
        - direction
        - txnInfo
        - ivms101
    TRLinkSourceTransferPeerPath:
      type: object
      description: Source peer path for transaction
      properties:
        type:
          type: string
          description: Source peer type (e.g., VAULT_ACCOUNT, UNKNOWN)
          example: VAULT_ACCOUNT
        id:
          type: string
          description: Source peer ID
          nullable: true
          example: '12'
        walletId:
          type: string
          description: Source wallet ID
          nullable: true
          example: '0'
      required:
        - type
    TRLinkDestinationTransferPeerPath:
      type: object
      description: Destination peer path for transaction
      properties:
        type:
          type: string
          description: Destination peer type (e.g., ONE_TIME_ADDRESS, VAULT_ACCOUNT)
          example: ONE_TIME_ADDRESS
        id:
          type: string
          description: Destination peer ID
          nullable: true
          example: '45'
        walletId:
          type: string
          description: Destination wallet ID
          nullable: true
          example: '0'
        oneTimeAddress:
          $ref: '#/components/schemas/TRLinkOneTimeAddress'
      required:
        - type
    TRLinkTransactionDirection:
      type: string
      enum:
        - INBOUND
        - OUTBOUND
      description: Transaction direction from workspace perspective
      example: OUTBOUND
    TRLinkIvms:
      type: object
      description: IVMS101 data structure containing encrypted PII
      properties:
        version:
          type: string
          description: IVMS version
          example: IVMS101.2023
        data:
          type: string
          description: >-
            Encrypted IVMS101 data containing originator and beneficiary
            information
          example: aGVsbG8gd29ybGQgdGhpcyBpcyBlbmNyeXB0ZWQgZGF0YQ==
        filledFields:
          type: array
          items:
            type: string
          description: List of fields that are filled in the IVMS data
          example:
            - Beneficiary.beneficiaryPersons[].legalPerson.name.nameIdentifier
            - Beneficiary.beneficiaryPersons[].naturalPerson.name.nameIdentifier
      required:
        - version
        - data
        - filledFields
    TRLinkTrmStatus:
      type: string
      nullable: true
      enum:
        - PENDING
        - ACCEPTED
        - REJECTED
        - FAILED
      description: Current status of the Travel Rule Message
      example: ACCEPTED
    TRLinkAsset:
      type: object
      properties:
        format:
          $ref: '#/components/schemas/TRLinkAssetFormat'
        data:
          $ref: '#/components/schemas/TRLinkAssetData'
      required:
        - format
        - data
    TRLinkFiatValue:
      type: object
      properties:
        amount:
          type: string
          description: Fiat amount
          example: '1000.50'
        currency:
          type: string
          description: Fiat currency code
          example: USD
      required:
        - amount
        - currency
    TRLinkTrmDirection:
      type: string
      enum:
        - in
        - out
      description: Transaction direction for TRM (in = inbound, out = outbound)
      example: out
    TRLinkTxnInfo:
      type: object
      properties:
        originatorWalletAddress:
          type: string
          description: Originator's blockchain wallet address
          example: '0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb'
        beneficiaryWalletAddress:
          type: string
          description: Beneficiary's blockchain wallet address
          example: '0x8d12A197cB00D4747a1fe03395095ce2A5CC6819'
        txHash:
          type: string
          description: Blockchain transaction hash
          example: '0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef'
      required:
        - originatorWalletAddress
        - beneficiaryWalletAddress
        - txHash
    TRLinkIvmsResponse:
      type: object
      description: IVMS101 data in response format
      properties:
        version:
          type: string
          description: IVMS101 version
          example: '1.0'
        data:
          type: string
          description: >-
            Base64 encoded IVMS101 data containing originator and beneficiary
            information
          example: >-
            eyJvcmlnaW5hdG9yIjp7Im5hbWUiOiJKb2huIERvZSIsImFkZHJlc3MiOiIxMjMgTWFpbiBTdCJ9LCJiZW5lZmljaWFyeSI6eyJuYW1lIjoiSmFuZSBTbWl0aCIsImFkZHJlc3MiOiI0NTYgRWxtIFN0In19
        filledFields:
          type: array
          items:
            type: string
          description: List of fields that are filled in the IVMS101 data
          example:
            - originator.name
            - originator.address
            - beneficiary.name
            - beneficiary.address
      required:
        - version
        - data
        - filledFields
    TRLinkProviderData:
      type: object
      properties:
        provider:
          type: string
          description: Provider name
          nullable: true
          example: notabene
        data:
          type: object
          description: Provider-specific data
          additionalProperties: true
          nullable: true
          example:
            vasp_did: did:ethr:0x1234567890abcdef
            compliance_status: verified
    ErrorSchema:
      type: object
      properties:
        message:
          type: string
        code:
          type: number
    TRLinkOneTimeAddress:
      type: object
      properties:
        address:
          type: string
          description: Blockchain address
          example: '0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb'
        tag:
          type: string
          description: Destination tag (memo, memo ID, etc.)
          nullable: true
          example: '1234567890'
      required:
        - address
    TRLinkAssetFormat:
      type: string
      enum:
        - fireblocks
        - coinmarketcap
      description: Asset format type
      example: fireblocks
    TRLinkAssetData:
      type: object
      properties:
        ticker:
          type: string
          description: Asset ticker symbol (e.g., BTC, ETH, USDT)
          nullable: true
          example: USDT
        network:
          type: string
          description: Network identifier from Fireblocks (e.g., ETH, BTC)
          example: ETH
        ucid:
          type: number
          description: CoinMarketCap unique coin ID
          nullable: true
          example: 825
        contractAddress:
          type: string
          description: Contract address for tokens
          nullable: true
          example: '0xdac17f958d2ee523a2206206994597c13d831ec7'
        id:
          type: string
          description: Fireblocks asset ID
          nullable: true
          example: USDT_ERC20
      required:
        - network
  headers:
    X-Request-ID:
      schema:
        type: string
      description: >-
        Unique ID correlated to the API request. Please provide it in any
        support ticket you create or on Github issues related to Fireblocks SDKs
  responses:
    Error:
      description: Error Response
      headers:
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorSchema'

````