> ## 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/transactions/get-transaction-history",
  "feedback": "Description of the issue"
}
```

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

</AgentInstructions>

# Get transaction history

> Get the transaction history for your workspace.

**Endpoint Permissions:** Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer.




## OpenAPI

````yaml https://docs.fireblocks.com/api/v1/swagger.yaml get /transactions
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:
  /transactions:
    get:
      tags:
        - Transactions
      summary: Get transaction history
      description: >
        Get the transaction history for your workspace.


        **Endpoint Permissions:** Admin, Non-Signing Admin, Signer, Approver,
        Editor, Viewer.
      operationId: getTransactions
      parameters:
        - in: query
          name: next
          description: >-
            Cursor returned in next-page header that can be used to fetch the
            next page of results
          required: false
          schema:
            type: string
        - in: query
          name: prev
          description: >-
            Cursor returned in prev-page header that can be used to fetch the
            previous page of results
          required: false
          schema:
            type: string
        - in: query
          name: before
          description: >
            Unix timestamp in milliseconds. Returns only transactions created
            before the specified date.

            Provides an explicit end time. If not provided, default value will
            be applied, and may change over time. 

            The current default value is the past 90 days.
          required: false
          schema:
            type: string
        - in: query
          name: after
          description: >
            Unix timestamp in milliseconds. Returns only transactions created
            after the specified date.

            Provides an explicit start time. If not provided, default value will
            be applied, and may change over time. 

            The current default value is the past 90 days.
          required: false
          schema:
            type: string
        - in: query
          name: status
          description: You can filter by one of the statuses.
          required: false
          schema:
            type: string
        - in: query
          name: orderBy
          description: >
            The field to order the results by.


            **Note:** Ordering by a field that is not `createdAt` may result in
            transactions that receive updates as you request the next or
            previous pages of results, resulting in missing those transactions.
          required: false
          schema:
            type: string
            enum:
              - createdAt
              - lastUpdated
        - in: query
          name: sort
          description: The direction to order the results by
          required: false
          schema:
            type: string
            enum:
              - ASC
              - DESC
        - in: query
          name: limit
          description: >-
            Limits the number of results. If not provided, a limit of 200 will
            be used. The maximum allowed limit is 500
          required: false
          schema:
            type: integer
            minimum: 1
            default: 200
        - in: query
          name: sourceType
          description: The source type of the transaction
          required: false
          schema:
            type: string
            enum:
              - VAULT_ACCOUNT
              - EXCHANGE_ACCOUNT
              - INTERNAL_WALLET
              - EXTERNAL_WALLET
              - CONTRACT
              - FIAT_ACCOUNT
              - NETWORK_CONNECTION
              - COMPOUND
              - UNKNOWN
              - GAS_STATION
              - END_USER_WALLET
        - in: query
          name: sourceId
          description: The source ID of the transaction
          required: false
          schema:
            type: string
        - in: query
          name: destType
          description: The destination type of the transaction
          required: false
          schema:
            type: string
            enum:
              - VAULT_ACCOUNT
              - EXCHANGE_ACCOUNT
              - INTERNAL_WALLET
              - EXTERNAL_WALLET
              - CONTRACT
              - FIAT_ACCOUNT
              - NETWORK_CONNECTION
              - COMPOUND
              - ONE_TIME_ADDRESS
              - END_USER_WALLET
        - in: query
          name: destId
          description: The destination ID of the transaction
          required: false
          schema:
            type: string
        - in: query
          name: assets
          description: A list of assets to filter by, seperated by commas
          required: false
          schema:
            type: string
        - in: query
          name: txHash
          description: Returns only results with a specified txHash
          required: false
          schema:
            type: string
        - in: query
          name: sourceWalletId
          description: Returns only results where the source is a specific end user wallet
          required: false
          schema:
            type: string
        - in: query
          name: destWalletId
          description: >-
            Returns only results where the destination is a specific end user
            wallet
          required: false
          schema:
            type: string
      responses:
        '200':
          description: A list of transactions
          headers:
            X-Request-ID:
              $ref: '#/components/headers/X-Request-ID'
            next-page:
              $ref: '#/components/headers/next-page'
            prev-page:
              $ref: '#/components/headers/prev-page'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetTransactionsResponse'
        default:
          $ref: '#/components/responses/Error'
      x-codeSamples:
        - lang: TypeScript
          source: >-
            const response: Promise<FireblocksResponse<GetTransactionsResponse>>
            =
            fireblocks.transactions.getTransactions(transactionsApiGetTransactionsRequest);
        - lang: Java
          source: >-
            CompletableFuture<ApiResponse<List<TransactionResponse>>> response =
            fireblocks.transactions().getTransactions(next, prev, before, after,
            status, orderBy, sort, limit, sourceType, sourceId, destType,
            destId, assets, txHash, sourceWalletId, destWalletId);
        - lang: Python
          source: >-
            response = fireblocks.transactions.get_transactions(next, prev,
            before, after, status, order_by, sort, limit, source_type,
            source_id, dest_type, dest_id, assets, tx_hash, source_wallet_id,
            dest_wallet_id);
components:
  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
    next-page:
      schema:
        type: string
      description: >-
        URL representing a new request to this API endpoint to receive the next
        page of results.
    prev-page:
      schema:
        type: string
      description: >-
        URL representing a new request to this API endpoint to receive the
        previous page of results.
  schemas:
    GetTransactionsResponse:
      type: array
      items:
        $ref: '#/components/schemas/TransactionResponse'
    TransactionResponse:
      type: object
      properties:
        id:
          type: string
          description: ID of the transaction.
        externalTxId:
          type: string
          description: >-
            Unique transaction ID provided by the user. Fireblocks highly
            recommends setting an `externalTxId` for every transaction created,
            to avoid submitting the same transaction twice.
        status:
          type: string
          description: >-
            The primary status of the transaction. For details, see [Primary
            transaction
            statuses](https://developers.fireblocks.com/reference/primary-transaction-statuses).
        subStatus:
          type: string
          description: >-
            See [Transaction
            substatuses](https://developers.fireblocks.com/reference/transaction-substatuses)
            for the list of transaction sub statuses.
        txHash:
          type: string
          description: |-
            The hash of the transaction on the blockchain.
             * This parameter exists if at least one of the following conditions is met:

                 1. The transaction’s source type is `UNKNOWN`, `WHITELISTED_ADDRESS`, `NETWORK_CONNECTION`, `ONE_TIME_ADDRESS`, `FIAT_ACCOUNT` or `GAS_STATION`.

                 2. The transaction’s source type is `VAULT` and the status is either: `CONFIRMING`, `COMPLETED`, or was in any of these statuses prior to changing to `FAILED` or `REJECTED`. In some instances, transactions in status `BROADCASTING` will include the txHash as well.

                 3. The transaction’s source type is `EXCHANGE_ACCOUNT` and the transaction’s destination type is `VAULT`, and the status is either: `CONFIRMING`, `COMPLETED`, or was in any of these status prior to changing to `FAILED`.


            * In addition, the following conditions must be met:

                1. The asset is a crypto asset (not fiat).

                2. The transaction operation is not RAW or `TYPED_MESSAGE`.
        operation:
          $ref: '#/components/schemas/GetTransactionOperation'
        note:
          type: string
          description: >-
            Custom note, not sent to the blockchain, that describes the
            transaction at your Fireblocks workspace.
        assetId:
          type: string
          description: >-
            The ID of the asset to transfer for `TRANSFER`, `MINT`, `BURN`,
            `ENABLE_ASSET`, or `STAKE` operations. [See the list of supported
            assets and their IDs on
            Fireblocks](https://developers.fireblocks.com/reference/get_supported-assets).
          x-fb-entity: asset
        assetType:
          type: string
          description: Type classification of the asset
          example: ERC20
        source:
          $ref: '#/components/schemas/SourceTransferPeerPathResponse'
        sourceAddress:
          type: string
          description: >-
            For account based assets only, the source address of the
            transaction.

            **Note:** If the status is `CONFIRMING`, `COMPLETED`, or has been
            `CONFIRMING`; then moved forward to `FAILED` or `REJECTED`, then
            this parameter will contain the source address. In any other case,
            this parameter will be empty.
        tag:
          type: string
          description: >-
            Source address tag for XRP, used as memo for EOS/XLM, or Bank
            Transfer Description for the fiat provider BLINC (by BCB Group).
        destination:
          $ref: '#/components/schemas/DestinationTransferPeerPathResponse'
        destinations:
          type: array
          description: >-
            The transaction’s destinations.

            **Note:** In case the transaction is sent to a single destination,
            the `destination` parameter is used instead of this.
          items:
            $ref: '#/components/schemas/TransactionResponseDestination'
        destinationAddress:
          type: string
          description: |-
            Address where the asset were transferred.
            Notes:
              - For [Multi destination transactions](https://support.fireblocks.io/hc/en-us/articles/360018447980-Multi-destination-transactions), this parameter will be empty. In this case, you should refer to the destinations field.
              - If the status is `CONFIRMING`, `COMPLETED`, or has been `CONFIRMING`; then moved forward to `FAILED` or `REJECTED`, then this parameter will contain the destination address. In any other case, this parameter will be empty.
        destinationAddressDescription:
          type: string
          description: Description of the address.
        destinationTag:
          type: string
          description: >-
            Destination address tag for XRP, used as memo for EOS/XLM, or Bank
            Transfer Description for the fiat provider BLINC (by BCB Group).
        contractCallDecodedData:
          description: >-
            Decoded data for `CONTRACT_CALL` operations. The Fireblocks
            [development
            libraries](https://developers.fireblocks.com/docs/ethereum-development#convenience-libraries)
            are recommended for setting this parameter's value.
          type: object
          properties:
            contractName:
              type: string
            functionCalls:
              type: array
              items:
                type: object
        amountInfo:
          $ref: '#/components/schemas/AmountInfo'
        treatAsGrossAmount:
          type: boolean
          description: >-
            For transactions initiated via this Fireblocks workspace, when set
            to `true`, the fee is deducted from the requested amount.


            **Note**: This parameter can only be considered if a transaction's
            asset is a base asset, such as ETH or MATIC. If the asset can't be
            used for transaction fees, like USDC, this parameter is ignored and
            the fee is deducted from the relevant base asset wallet in the
            source account.
        feeInfo:
          $ref: '#/components/schemas/FeeInfo'
        feeCurrency:
          type: string
          description: >-
            The asset which was withdrawn to pay the transaction fee, for
            example ETH for EVM-based blockchains, BTC for Tether Omni.
        networkRecords:
          type: array
          description: >-
            In case a single transaction resulted with multiple transfers, for
            example a result of a contract call, then this parameter specifies
            each transfer that took place on the blockchain. In case of a single
            transfer transaction, this parameter is empty.
          items:
            $ref: '#/components/schemas/NetworkRecord'
        createdAt:
          type: number
          description: The transaction’s creation date and time, in unix timestamp.
        lastUpdated:
          type: number
          description: The transaction’s last update date and time, in unix timestamp.
        createdBy:
          type: string
          description: User ID of the initiator of the transaction.
        signedBy:
          type: array
          description: User ID’s of the signers of the transaction.
          items:
            type: string
        rejectedBy:
          type: string
          description: >-
            User ID of the user that rejected the transaction (in case it was
            rejected).
        authorizationInfo:
          $ref: '#/components/schemas/AuthorizationInfo'
        exchangeTxId:
          type: string
          description: >-
            If the transaction originated from an exchange, this is the ID of
            this transaction at the exchange.
        customerRefId:
          type: string
          description: >-
            The ID for AML providers to associate the owner of funds with
            transactions.
        travelRuleMessageId:
          type: string
          description: >-
            The ID of the travel rule message from any travel rule provider.
            Used for  travel rule supporting functionality to associate
            transactions with existing  travel rule messages.
          example: trm_12345678-1234-1234-1234-123456789012
        amlScreeningResult:
          $ref: '#/components/schemas/AmlScreeningResult'
        complianceResults:
          $ref: '#/components/schemas/ComplianceResults'
        notBroadcastByFireblocks:
          type: boolean
          description: Indicates the transaction was not broadcast by Fireblocks
          example: false
        dappUrl:
          type: string
          description: DApp URL for Web3 transactions
          example: https://app.uniswap.org
        gasLimit:
          type: string
          description: Gas limit for EVM-based blockchain transactions
          example: '21000'
        blockchainIndex:
          type: string
          description: Blockchain-specific index or identifier for the transaction
          example: 1.1.1
        paidRent:
          type: string
          description: Solana rent payment amount
          example: '0.00203928'
        extraParameters:
          $ref: '#/components/schemas/ExtraParameters'
        signedMessages:
          $ref: '#/components/schemas/SignedMessages'
        numOfConfirmations:
          type: number
          description: >-
            The number of confirmations of the transaction. The number will
            increase until the transaction will be considered completed
            according to the confirmation policy.
        blockInfo:
          $ref: '#/components/schemas/BlockInfo'
        index:
          type: number
          description: >-
            For UTXO based assets this is the vOut, for Ethereum based, this is
            the index of the event of the contract call.
             **Note:** This field is not returned if a transaction uses the `destinations` object with more than one value.
        rewardInfo:
          $ref: '#/components/schemas/RewardInfo'
        feePayerInfo:
          $ref: '#/components/schemas/FeePayerInfo'
        systemMessages:
          type: array
          items:
            $ref: '#/components/schemas/SystemMessageInfo'
        addressType:
          type: string
          enum:
            - ''
            - WHITELISTED
            - ONE_TIME
        requestedAmount:
          description: >-
            The amount requested by the user. Deprecated - please use the
            `amountInfo` field for accuracy.
          type: number
          deprecated: true
        amount:
          description: >-
            If the transfer is a withdrawal from an exchange, the actual amount
            that was requested to be transferred. Otherwise, the requested
            amount. Deprecated - please use the `amountInfo` field for accuracy.
          type: number
          deprecated: true
        netAmount:
          description: >-
            The net amount of the transaction, after fee deduction. Deprecated -
            please use the `amountInfo` field for accuracy.
          type: number
          deprecated: true
        amountUSD:
          description: >-
            The USD value of the requested amount. Deprecated - please use the
            `amountInfo` field for accuracy.
          type: number
          nullable: true
          deprecated: true
        serviceFee:
          description: >-
            The total fee deducted by the exchange from the actual requested
            amount (`serviceFee` = `amount` - `netAmount`). Deprecated - please
            use the `feeInfo` field for accuracy.
          type: number
          deprecated: true
        fee:
          description: Deprecated - please use the `feeInfo` field for accuracy.
          type: number
          deprecated: true
        networkFee:
          description: >-
            The fee paid to the network. Deprecated - please use the `feeInfo`
            field for accuracy.
          type: number
          deprecated: true
        errorDescription:
          description: >-
            The transaction's revert reason. This field will be returned when 
            `subStatus` =  'SMART_CONTRACT_EXECUTION_FAILED'.
          type: string
        replacedTxHash:
          type: string
          description: >-
            if the transaction is a replace by fee (RBF) transaction, this is
            the hash of the transsaction that was replaced
        nonce:
          type: string
          description: blockchain nonce for the transaction
          example: '11228'
        blockchainInfo:
          type: object
          description: A JSON used to store additional data that is blockchain-specific.
          example:
            evmTransferType: NATIVE
    ErrorSchema:
      type: object
      properties:
        message:
          type: string
        code:
          type: number
    GetTransactionOperation:
      type: string
      enum:
        - TRANSFER
        - BURN
        - CONTRACT_CALL
        - MINT
        - RAW
        - TYPED_MESSAGE
        - ENABLE_ASSET
        - STAKE
        - REDEEM_FROM_COMPOUND
        - SUPPLY_TO_COMPOUND
        - PROGRAM_CALL
        - APPROVE
      description: >
        * `TRANSFER` - Transfers funds from one account to another. UTXO
        blockchains allow multi-input and multi-output transfers. All other
        blockchains allow transfers with one source address and one destination
        address.

        * `MINT` - Mints new tokens. Supported for Stellar, Ripple and EVM-based
        blockchains.

        * `BURN` - Burns tokens. Supported for Stellar, Ripple and EVM-based
        blockchains.

        * `CONTRACT_CALL` - Calls a smart contract method for web3 operations on
        any EVM blockchain. The Fireblocks [development
        libraries](https://developers.fireblocks.com/docs/ethereum-development#convenience-libraries)
        are recommended for building contract call transactions.

        * `TYPED_MESSAGE` - An off-chain message in either Ethereum Personal
        Message or EIP712 format. Use it to sign specific readable messages that
        are not actual transactions. [Learn more about typed
        messages](https://developers.fireblocks.com/docs/typed-message-signing).

        * `RAW` - An off-chain message with no predefined format. Use it to sign
        any message with your private key, including protocols such as
        blockchains and custom transaction types that are not natively supported
        by Fireblocks. [Learn more about raw signing
        transactions.](https://developers.fireblocks.com/docs/raw-message-signing)

        * `ENABLE_ASSET` - Algorand, DigitalBits, Solana, and Stellar require an
        on-chain transaction to create an asset wallet and enable the deposit
        address. This transaction is automatically created when adding assets on
        these blockchains at a vault account.

        * `STAKE` - Assign assets to a staking pool managed by a staking
        validator. Supported for Stellar and EVM-based blockchains. This
        transaction is automatically created when performing staking operations.

        * `SUPPLY_TO_COMPOUND` - Deprecated since April 1st, 2023. Older
        transactions may have this as their operation, in case users in the
        workspace have used the direct integration between Fireblocks and the
        Compound DeFI protocol.

        * `REDEEM_FROM_COMPOUND` - Deprecated since April 1st, 2023. Older
        transactions may have this as their operation, in case users in the
        workspace have used the direct integration between Fireblocks and the
        Compound DeFI protocol.

        * `PROGRAM_CALL` - In Solana refers to invoking on-chain programs (smart
        contracts) to execute transactions and interact with the blockchain.

        * `APPROVE` - Enables the approve function for a smart contract or
        wallet to  withdraw from a designated wallet. [Learn
        more](https://support.fireblocks.io/hc/en-us/articles/4404616097426-Amount-Cap-for-Approve-transactions).
    SourceTransferPeerPathResponse:
      type: object
      description: Source of the transaction.
      properties:
        type:
          $ref: '#/components/schemas/TransferPeerPathType'
        subType:
          type: string
          description: >-
            In case the type is set to `EXCHANGE_ACCOUNT` or `FIAT_ACCOUNT`, the
            specific exchange vendor name or fiat vendor name. In case the type
            is set to `INTERNAL_WALLET` or `EXTERNAL_WALLET`, the subType is set
            to `Internal` or `External`.
        id:
          type: string
          nullable: true
          description: >-
            The ID of the peer. You can retrieve the ID of each venue object
            using the endpoints for [listing vault
            accounts](https://developers.fireblocks.com/reference/getpagedvaultaccounts),
            [listing exchange
            account](https://developers.fireblocks.com/reference/getexchangeaccounts),
            [listing fiat
            accounts](https://developers.fireblocks.com/reference/getfiataccounts),
            [listing internal
            wallets](https://developers.fireblocks.com/reference/getinternalwallets),
            [listing external
            wallets](https://developers.fireblocks.com/reference/getexternalwallets),
            [listing network
            connections](https://developers.fireblocks.com/reference/getnetworkconnections).
            For the other types, this parameter is not needed.
        name:
          type: string
          description: The name of the peer.
        walletId:
          type: string
          format: uuid
        tradingAccount:
          type: string
          nullable: true
          description: >-
            If this transaction is an exchange internal transfer, this field
            will be populated with the type of that trading account.
      required:
        - type
    DestinationTransferPeerPathResponse:
      type: object
      description: >-
        Destination of the transaction.


        **Note:** In case the transaction is sent to multiple destinations, the
        `destinations` parameter is be used instead of this.
      properties:
        type:
          $ref: '#/components/schemas/TransferPeerPathType'
        subType:
          type: string
          description: >-
            In case the type is set to `EXCHANGE_ACCOUNT` or `FIAT_ACCOUNT`, the
            specific exchange vendor name or fiat vendor name.In case the type
            is set to `INTERNAL_WALLET` or `EXTERNAL_WALLET`, the subType is set
            to `Internal` or `External`.
        id:
          type: string
          nullable: true
          description: >-
            The ID of the peer. You can retrieve the ID of each venue object
            using the endpoints for [listing vault
            accounts](https://developers.fireblocks.com/reference/getpagedvaultaccounts),
            [listing exchange
            account](https://developers.fireblocks.com/reference/getexchangeaccounts),
            [listing fiat
            accounts](https://developers.fireblocks.com/reference/getfiataccounts),
            [listing internal
            wallets](https://developers.fireblocks.com/reference/getinternalwallets),
            [listing external
            wallets](https://developers.fireblocks.com/reference/getexternalwallets),
            [listing network
            connections](https://developers.fireblocks.com/reference/getnetworkconnections).
            For the other types, this parameter is not needed.
        name:
          type: string
          description: The name of the peer.
        walletId:
          type: string
          format: uuid
        tradingAccount:
          type: string
          nullable: true
          description: >-
            If this transaction is an exchange internal transfer, this field
            will be populated with the type of that trading account.
      required:
        - type
    TransactionResponseDestination:
      type: object
      properties:
        amount:
          type: string
          description: The amount to be sent to this destination.
        amountUSD:
          type: string
          description: The USD value of the requested amount.
        travelRuleMessageId:
          type: string
          description: >-
            The ID of the travel rule message from any travel rule provider.
            Used for  travel rule supporting functionality to associate
            transactions with existing  travel rule messages.
          example: trm_12345678-1234-1234-1234-123456789012
        amlScreeningResult:
          $ref: '#/components/schemas/AmlScreeningResult'
        destination:
          $ref: '#/components/schemas/DestinationTransferPeerPathResponse'
        authorizationInfo:
          $ref: '#/components/schemas/AuthorizationInfo'
    AmountInfo:
      type: object
      description: The details of the requested amount to transfer.
      properties:
        amount:
          description: >-
            If the transfer is a withdrawal from an exchange, the actual amount
            that was requested to be transferred. Otherwise, the requested
            amount.
          type: string
        requestedAmount:
          description: The amount requested by the user.
          type: string
        netAmount:
          description: The net amount of the transaction, after fee deduction.
          type: string
        amountUSD:
          type: string
          description: The USD value of the requested amount.
    FeeInfo:
      type: object
      description: Details of the transaction's fee.
      properties:
        networkFee:
          description: The fee paid to the network
          type: string
        serviceFee:
          description: >-
            The total fee deducted by the exchange from the actual requested
            amount (serviceFee = amount - netAmount)
          type: string
        gasPrice:
          type: string
        L1networkFee:
          type: string
          description: Layer 1 network fee for Layer 2 blockchain transactions
          example: '0.003955'
        L2networkFee:
          type: string
          description: Layer 2 network fee (gas price component for Layer 2 transactions)
          example: '0.0005'
        paidByRelay:
          type: boolean
          description: Wether the fee was paid by the relay or not
          example: true
        relayType:
          type: string
          description: >-
            Wether the relay is the same tenant (LOCAL) or another tenant
            (THIRD_PARTY)
          enum:
            - LOCAL
            - THIRD_PARTY
          example: LOCAL
        relayId:
          type: string
          description: The vault account ID of the relay
          example: 1
        relayName:
          type: string
          description: The name of the tenant, only for THIRD_PARTY relays
          example: Tenant Name
        feeUSD:
          type: string
          description: The USD value of the fee
          example: '0.0013'
    NetworkRecord:
      type: object
      properties:
        source:
          $ref: '#/components/schemas/SourceTransferPeerPathResponse'
        destination:
          $ref: '#/components/schemas/DestinationTransferPeerPathResponse'
        txHash:
          type: string
        networkFee:
          type: string
        assetId:
          type: string
          x-fb-entity: asset
        netAmount:
          description: The net amount of the transaction, after fee deduction
          type: string
        isDropped:
          type: boolean
        type:
          type: string
        destinationAddress:
          type: string
        amountUSD:
          type: string
        rewardInfo:
          $ref: '#/components/schemas/RewardInfo'
    AuthorizationInfo:
      type: object
      description: >-
        The information about your [Transaction Authorization Policy
        (TAP).](https://developers.fireblocks.com/docs/capabilities#transaction-authorization-policy-tap)
      properties:
        allowOperatorAsAuthorizer:
          type: boolean
        logic:
          type: string
          enum:
            - AND
            - OR
        groups:
          type: array
          items:
            $ref: '#/components/schemas/AuthorizationGroups'
    AmlScreeningResult:
      type: object
      description: The result of the AML screening.
      properties:
        provider:
          type: string
        payload:
          type: object
    ComplianceResults:
      type: object
      description: The result of the Compliance AML/Travel Rule screening.
      properties:
        aml:
          $ref: '#/components/schemas/ComplianceScreeningResult'
        tr:
          $ref: '#/components/schemas/ComplianceScreeningResult'
        amlList:
          type: array
          description: The list of all results of the AML screening.
          items:
            $ref: '#/components/schemas/ComplianceScreeningResult'
        status:
          $ref: '#/components/schemas/ComplianceResultStatusesEnum'
        amlRegistration:
          $ref: '#/components/schemas/AmlRegistrationResult'
        trlinkRegistration:
          $ref: '#/components/schemas/TRLinkRegistrationResult'
        trlinkDestinations:
          type: array
          description: The list of TRLink destination screening results.
          items:
            $ref: '#/components/schemas/TRLinkResult'
    ExtraParameters:
      type: object
      description: >
        Additional protocol / operation specific key-value parameters:


        For UTXO-based blockchain input selection, add the key `inputsSelection`
        with the value set to the [input selection
        structure.](https://developers.fireblocks.com/reference/transaction-objects#inputsselection)
        The inputs can be retrieved from the [Retrieve Unspent Inputs
        endpoint.](https://developers.fireblocks.com/reference/getunspentinputs)


        For `RAW` operations, add the key `rawMessageData` with the value set to
        the [raw message data
        structure.](https://developers.fireblocks.com/reference/raw-signing-objects#rawmessagedata)


        For `CONTRACT_CALL` operations, add the key `contractCallData` with the
        value set to the Ethereum smart contract Application Binary Interface
        (ABI) payload. The Fireblocks [development
        libraries](https://developers.fireblocks.com/docs/ethereum-development#convenience-libraries)
        are recommended for building contract call transactions.

        For **exchange compliance (e.g., Binance) and Travel Rule purposes**,
        include the key `piiData` containing a **custom JSON structure** with
        Personally Identifiable Information (PII) relevant to the transaction.
        This data must be fully **encrypted by the sender** before being
        submitted to the Fireblocks API. The recommended encryption method is
        **hybrid encryption** using AES-256-GCM for the payload and RSA-OAEP for
        key exchange, with the recipient exchange's public key. [development
        libraries](https://developers.fireblocks.com/docs/a-developers-guide-to-constructing-encrypted-pii-messages-for-binance-via-fireblocks)


        **Note:** `rawMessageData`, `contractCallData`, and `inputsSelection`
        cannot be used together in the same call.
      additionalProperties: true
      properties:
        nodeControls:
          description: >-
            Configure special node requirements. For routing transactions to a
            custom node: Set `type` to `NODE_ROUTER` and `tag` to the
            pre-configured tag value. **For MEV protection:** Set only the
            `type` property to `MEV` (tag is not required at this stage).

            **Note:** This is a premium feature that should be enabled in your
            workspace. Please contact your Customer Success Manager/Fireblocks
            Support for more info.
          anyOf:
            - type: object
              additionalProperties: true
            - enum:
                - null
        rawMessageData:
          description: >-
            Object containing messages for raw signing and the algorithm to be
            used. The value should be set to the [raw message data
            structure.](https://developers.fireblocks.com/reference/raw-signing-objects#rawmessagedata)
          anyOf:
            - type: object
              additionalProperties: true
            - enum:
                - null
        contractCallData:
          description: >-
            Hex encoded contract call data as a string. For `CONTRACT_CALL`
            operations, the value should be set to the Ethereum smart contract
            Application Binary Interface (ABI) payload. The Fireblocks
            [development
            libraries](https://developers.fireblocks.com/docs/ethereum-development#convenience-libraries)
            are recommended for building contract call transactions.
          anyOf:
            - type: string
            - enum:
                - null
        programCallData:
          description: BASE64 encoded Solana unsigned serialized transaction object.
          anyOf:
            - type: string
            - enum:
                - null
        inputsSelection:
          description: >-
            For UTXO based blockchains, selections of inputs for the
            transaction. The value should be set to the [input selection
            structure.](https://developers.fireblocks.com/reference/transaction-objects#inputsselection)
            The inputs can be retrieved from the [Retrieve Unspent Inputs
            endpoint.](https://developers.fireblocks.com/reference/get_vault-accounts-vaultaccountid-assetid-unspent-inputs)
          anyOf:
            - type: object
              additionalProperties: true
            - enum:
                - null
        allowBaseAssetAddress:
          description: >-
            Transfers to unmanaged wallets only. When true, if the destination
            doesn't have a whitelisted address for the requested asset, we'll
            use the destination's whitelisted address of the base asset (e.g.,
            use the ETH address for an ERC-20). If the requested asset's
            whitelisted address exists, it is used.

            **Note:** This is a premium feature that should be enabled in your
            workspace. Please contact your Customer Success Manager or
            Fireblocks Support for more information.
          anyOf:
            - type: boolean
            - enum:
                - null
        piiData:
          description: >-
            For exchange compliance (e.g., Binance) and Travel Rule purposes,
            contains a custom JSON structure with Personally Identifiable
            Information (PII) relevant to the transaction. This data must be
            fully encrypted by the sender before being submitted to the
            Fireblocks API. The recommended encryption method is hybrid
            encryption using AES-256-GCM for the payload and RSA-OAEP for key
            exchange, with the recipient exchange's public key. [Learn
            more](https://developers.fireblocks.com/docs/a-developers-guide-to-constructing-encrypted-pii-messages-for-binance-via-fireblocks)
          anyOf:
            - type: object
              additionalProperties: true
            - enum:
                - null
    SignedMessages:
      type: array
      items:
        $ref: '#/components/schemas/SignedMessage'
    BlockInfo:
      type: object
      description: >-
        The block hash and height of the block that this transaction was mined
        in.
             **Note**: If an outgoing transaction uses the destinations object with more than one value in the array, blockHash is set to null.
      properties:
        blockHeight:
          type: string
        blockHash:
          type: string
          nullable: true
    RewardInfo:
      type: object
      description: >-
        This field is relevant only for Algorand transactions. Both `srcRewards`
        and `destRewards` will appear only for Vault to Vault transactions,
        otherwise you will receive only the Fireblocks’ side of the transaction.
      properties:
        srcRewards:
          type: string
        destRewards:
          type: string
    FeePayerInfo:
      type: object
      properties:
        feePayerAccountId:
          type: string
          description: The account ID of the fee payer
          example: '123'
    SystemMessageInfo:
      type: object
      properties:
        type:
          type: string
          enum:
            - WARN
            - BLOCK
        message:
          type: string
          description: >-
            A response from Fireblocks that communicates a message about the
            health of the process being performed. If this object is returned
            with data, you should expect potential delays or incomplete
            transaction statuses.
          example: Slow transaction processing. Outgoing transactions might be stuck.
    TransferPeerPathType:
      type: string
      enum:
        - VAULT_ACCOUNT
        - EXCHANGE_ACCOUNT
        - CONNECTED_ACCOUNT
        - INTERNAL_WALLET
        - EXTERNAL_WALLET
        - CONTRACT
        - NETWORK_CONNECTION
        - FIAT_ACCOUNT
        - COMPOUND
        - GAS_STATION
        - ONE_TIME_ADDRESS
        - UNKNOWN
        - END_USER_WALLET
        - PROGRAM_CALL
        - MULTI_DESTINATION
        - OEC_PARTNER
    AuthorizationGroups:
      type: object
      properties:
        th:
          type: number
        users:
          type: object
          additionalProperties:
            type: string
            enum:
              - PENDING_AUTHORIZATION
              - APPROVED
              - REJECTED
              - NA
    ComplianceScreeningResult:
      type: object
      description: >
        The result of the AML/Travel Rule screening.

        This unified schema contains all fields that may be returned for both
        AML and Travel Rule screening results.

        Not all fields will be present in every response - the actual fields
        depend on the screening type and provider.
      properties:
        provider:
          type: string
          description: |
            The AML/Travel Rule provider name.
            For AML: ELLIPTIC, CHAINALYSIS, etc.
            For Travel Rule: NOTABENE, SUMSUB, GTR, or any TRLink provider name.
          example: NOTABENE
        payload:
          type: object
          description: >
            The raw payload of the screening result from the provider.

            The payload is a JSON object that contains the screening result.

            The payload structure is different for each screening provider.

            This field contains the complete, unmodified response from the
            screening service.
        timestamp:
          type: number
          format: date-time
          description: >-
            Unix timestamp in milliseconds when the screening result was
            generated
          example: 1753459111824
        screeningStatus:
          type: string
          description: Current status of the screening process
          enum:
            - COMPLETED
            - PENDING
            - BYPASSED
            - FAILED
            - FROZEN
          example: COMPLETED
        bypassReason:
          type: string
          description: >
            Reason for bypassing the screening, if applicable.

            For AML: UNSUPPORTED_ASSET, PASSED_BY_POLICY.

            For Travel Rule: UNSUPPORTED_ASSET, NO_TRAVEL_RULE_MESSAGE,
            TRANSACTION_ZERO_AMOUNT.
          example: UNSUPPORTED_ASSET
        status:
          $ref: '#/components/schemas/AmlStatusEnum'
        prevStatus:
          $ref: '#/components/schemas/AmlStatusEnum'
        prevBypassReason:
          type: string
          deprecated: true
          description: >
            Deprecated: This field is not currently returned in the API
            response.

            Previous bypass reason before the current bypass reason change.
          example: BELOW_THRESHOLD
        verdict:
          $ref: '#/components/schemas/ScreeningVerdictEnum'
        risk:
          type: string
          description: >
            Risk level assessment for screening results.

            Values vary by provider and are not managed by this service.


            Known values by provider:

            - Chainalysis: severeRisk, highRisk, mediumRisk, lowRisk, noRiskInfo

            - Elliptic: noRiskDetected


            Legacy values (SCREAMING_SNAKE_CASE, may appear in old
            transactions):

            VERY_HIGH, SEVERE, HIGH, MEDIUM, LOW, NO_RISK_INFO, UNKNOWN
          example: lowRisk
        extendedRisk:
          type: string
          deprecated: true
          description: >
            Deprecated: This field is not currently returned in the API
            response.

            Use risk instead.
          example: lowRisk
        externalId:
          type: string
          description: External identifier for the screening (provider-specific)
          example: aml_screening_12345
        customerRefId:
          type: string
          description: Customer-provided reference identifier for tracking
          example: customer_ref_789
        refId:
          type: string
          deprecated: true
          description: >
            Deprecated: This field is not currently returned in the API
            response.

            Internal reference identifier.
          example: ref_12345
        category:
          type: string
          description: >
            Risk category classification.

            Examples: EXCHANGE, GAMBLING, MIXER, DARKNET_SERVICE,
            SANCTIONED_ENTITY
          example: EXCHANGE
        categoryId:
          type: number
          description: Numeric identifier for the risk category
          example: 5
        destAddress:
          type: string
          description: The destination blockchain address associated with the screening
          example: '0xA2dC2490ED1DcA2D21613508fdb0c82daEAb0715'
        destTag:
          type: string
          description: Destination tag or memo (for chains that support it like XRP, XLM)
          example: memo_12345
        destRecordId:
          type: string
          deprecated: true
          description: >
            Deprecated: This field is not currently returned in the API
            response.

            The destination record identifier used by the screening provider.
          example: record_001
        addressResolutionSignature:
          type: string
          deprecated: true
          description: >
            Deprecated: This field is not currently returned in the API
            response.

            Cryptographic signature for address resolution verification.
          example: '0x1234567890abcdef'
        amlResult:
          $ref: '#/components/schemas/AmlResult'
        result:
          $ref: '#/components/schemas/TravelRuleResult'
        detailsMessage:
          type: string
          description: >-
            Additional human-readable details or message about the screening
            result
          example: Travel rule screening completed successfully
        matchedAlert:
          type: object
          description: >
            Information about the AML alert that was matched, if any.

            Contains details about the specific alert that triggered during
            screening.
        matchedRule:
          type: object
          description: |
            The matched rule information for this screening result.
            Contains details about which screening rule was applied and matched.
        matchedPrescreeningRule:
          $ref: '#/components/schemas/TravelRulePrescreeningRule'
        matchedNoTrmScreeningRule:
          type: object
          description: |
            Matched no-TRM (Travel Rule Message) screening rule details.
            Used when TRLink screening detects a missing TRM scenario.
        customerIntegrationId:
          type: string
          description: Customer integration identifier used by Travel Rule providers
          example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
        customerShortName:
          type: string
          description: Customer short name registered with Travel Rule providers
          example: ACME Corp
        travelRuleMessageId:
          type: string
          description: >-
            Travel rule message identifier for linking and tracking across
            providers
          example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
        providerResponse:
          $ref: '#/components/schemas/ScreeningProviderResponse'
    ComplianceResultStatusesEnum:
      type: string
      description: Status of compliance result screening
      enum:
        - Unknown
        - Stalled
        - Started
        - NetworkConnectionAddressResolve
        - ScreeningPrepare
        - AMLStarted
        - AMLCompleted
        - AMLFailed
        - AMLInBackground
        - TRPreconditionChecks
        - TRStarted
        - TRLinkStarted
        - TRLinkDestinationStarted
        - TRLinkDestinationPrescreenPolicy
        - TRLinkDestinationNoTRMPolicy
        - TRLinkDestinationScreen
        - TRLinkDestinationPostscreenPolicy
        - TRLinkDestinationCompleted
        - TRLinkCompleted
        - TRCompleted
        - TRFailed
        - Completed
        - RegistrationStarted
        - RegistrationWaitForFirstConfirmation
        - AMLRegistrationStarted
        - AMLRegistrationCompleted
        - TRUpdateStarted
        - TRUpdateCompleted
        - UpdateCompleted
        - IncomingStarted
        - IncomingByorkSL
        - IncomingScreeningPrepare
        - IncomingWaitForFirstConfirmation
        - AMLIncomingStarted
        - AMLIncomingCompleted
        - AMLIncomingFailed
        - AMLIncomingInBackground
        - TRIncomingStarted
        - TRIncomingCompleted
        - TRIncomingFailed
        - IncomingCompleted
        - AddressAmlInitiated
        - AddressAmlAddressResolve
        - AddressAmlPrepare
        - AddressAmlProcessing
        - AddressAmlSucceeded
        - AddressAmlFailed
        - AddressAmlCompleted
      example: Completed
    AmlRegistrationResult:
      type: object
      properties:
        provider:
          type: string
        success:
          type: boolean
        timestamp:
          type: number
    TRLinkRegistrationResult:
      type: object
      description: TRLink registration result containing status and metadata
      properties:
        status:
          $ref: '#/components/schemas/TRLinkRegistrationStatus'
        provider:
          type: string
          description: The TRLink provider name
          example: SUMSUB
        success:
          type: boolean
          description: Whether the registration was successful
          example: true
        timestamp:
          type: number
          description: Unix timestamp of the registration
          example: 1640995200000
        destRecordId:
          type: string
          description: Destination record identifier
          example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
        travelRuleMessageId:
          type: string
          description: Travel rule message identifier for linking
          example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
        customerIntegrationId:
          type: string
          description: Customer integration identifier
          example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
        customerShortName:
          type: string
          description: Customer short name
          example: ACME Corp
        result:
          $ref: '#/components/schemas/TRLinkProviderResult'
        matchedPrescreeningRule:
          $ref: '#/components/schemas/TRLinkPreScreeningRule'
      required:
        - status
        - timestamp
    TRLinkResult:
      type: object
      description: TRLink screening result
      properties:
        provider:
          type: string
          description: The TRLink provider name
          example: SUMSUB
        timestamp:
          type: number
          description: Unix timestamp of the screening result
          example: 1640995200000
        status:
          type: string
          description: Status of the TRLink screening
          enum:
            - COMPLETED
            - PENDING
            - BYPASSED
            - FAILED
            - FROZEN
        verdict:
          $ref: '#/components/schemas/TRLinkVerdict'
        destAddress:
          type: string
          description: The destination address associated with the TRLink screening
          example: '0xA2dC2490ED1DcA2D21613508fdb0c82daEAb0715'
        destTag:
          type: string
          description: Destination tag for the screening
          example: memo_12345
        bypassReason:
          type: string
          description: Reason for bypassing the TRLink screening
          example: MANUAL
        detailsMessage:
          type: string
          description: Additional details message about the screening result
          example: Screening completed successfully
        customerIntegrationId:
          type: string
          description: Customer integration identifier
          example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
        customerShortName:
          type: string
          description: Customer short name
          example: ACME Corp
        travelRuleMessageId:
          type: string
          description: Travel rule message identifier for linking
          example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
        result:
          $ref: '#/components/schemas/TRLinkProviderResultWithRule'
        matchedPrescreeningRule:
          $ref: '#/components/schemas/TRLinkPreScreeningRule'
        matchedNoTrmScreeningRule:
          $ref: '#/components/schemas/TRLinkMissingTrmDecision'
      required:
        - provider
        - timestamp
        - status
    SignedMessage:
      type: object
      description: A list of signed messages returned for raw signing.
      properties:
        content:
          type: string
        algorithm:
          type: string
          enum:
            - MPC_ECDSA_SECP256K1
            - MPC_EDDSA_ED25519
        derivationPath:
          type: array
          items:
            type: number
        signature:
          type: object
          properties:
            fullSig:
              type: string
            r:
              type: string
            s:
              type: string
            v:
              type: number
        publicKey:
          type: string
    AmlStatusEnum:
      type: string
      deprecated: true
      description: |
        Deprecated: Use screeningStatus instead.
        AML screening status.
      enum:
        - COMPLETED
        - PENDING
        - BYPASSED
        - FAILED
        - FROZEN
      example: COMPLETED
    ScreeningVerdictEnum:
      type: string
      description: >
        The final verdict of the screening (unified for AML, Travel Rule, and
        TRLink).

        Different providers may return different verdict values:

        - AML: PASS, FAIL, ALERT

        - Travel Rule: PASS, FAIL, TRAVEL_RULE_REQUIRED

        - TRLink: PASS, REJECT, WARN
      enum:
        - PASS
        - FAIL
        - ALERT
        - REJECT
        - WARN
        - TRAVEL_RULE_REQUIRED
        - ACCEPT
        - REVIEW
      example: PASS
    AmlResult:
      type: object
      deprecated: true
      description: >
        Deprecated: This field is not currently returned in the API response.

        Detailed AML screening result information.

        Contains alerts, risk scores, and other AML-specific data from
        provider-specific responses.
      properties:
        alerts:
          type: array
          description: List of AML alerts triggered during screening
          items:
            $ref: '#/components/schemas/AmlAlert'
        providerResponse:
          type: object
          description: >
            Complete response from the AML provider. This is a dynamic object
            that varies

            significantly between different AML providers (Chainalysis,
            Elliptic, etc.).

            Each provider has their own proprietary response format and schema.


            Examples of provider-specific structures:

            - Chainalysis: Contains cluster info, risk scores, sanctions data

            - Elliptic: Includes risk assessment, entity types, compliance flags


            The structure is provider-dependent and cannot be standardized as
            each

            vendor implements their own proprietary data models and response
            formats.
          additionalProperties: true
        matchedRule:
          $ref: '#/components/schemas/AmlMatchedRule'
        matchedAlert:
          $ref: '#/components/schemas/AmlAlert'
    TravelRuleResult:
      type: object
      deprecated: true
      description: >
        Deprecated: This field is not currently returned in the API response.

        Detailed Travel Rule screening result containing provider-specific data.

        Contains Travel Rule specific information like verified status, rule
        type, and actions.
      properties:
        direction:
          $ref: '#/components/schemas/TravelRuleDirectionEnum'
        isVerified:
          type: boolean
          description: Whether the travel rule information was verified
          example: true
        action:
          $ref: '#/components/schemas/TravelRuleVerdictEnum'
        providerResponse:
          type: object
          description: >
            Complete response from the travel rule provider. This is a dynamic
            object that varies

            significantly between different travel rule providers (NOTABENE
            etc.).

            Each provider has their own proprietary response format and schema.


            Examples of provider-specific structures:

            - NOTABENE: Contains VASP information, PII data, protocol-specific
            fields


            The structure is provider-dependent and cannot be standardized as
            each

            vendor implements their own proprietary data models and response
            formats.
          additionalProperties: true
        matchedRule:
          $ref: '#/components/schemas/TravelRuleMatchedRule'
    TravelRulePrescreeningRule:
      type: object
      description: |
        Matched prescreening rule details.
        Prescreening rules are evaluated before the main screening to determine
        if screening is necessary or should be bypassed.
      properties:
        bypassReason:
          type: string
          description: Reason for bypass if prescreening rule triggered a bypass
          example: MANUAL
        sourceType:
          $ref: '#/components/schemas/TransferPeerTypeEnum'
        sourceSubType:
          $ref: '#/components/schemas/TransferPeerSubTypeEnum'
        destType:
          $ref: '#/components/schemas/TransferPeerTypeEnum'
        destSubType:
          $ref: '#/components/schemas/TransferPeerSubTypeEnum'
        transferPeerType:
          $ref: '#/components/schemas/TransferPeerTypeEnum'
        transferPeerSubType:
          $ref: '#/components/schemas/TransferPeerSubTypeEnum'
        destAddress:
          type: string
          description: Destination address
          example: '0xA2dC2490ED1DcA2D21613508fdb0c82daEAb0715'
        sourceId:
          type: string
          description: Source ID
          example: '0'
        destId:
          type: string
          description: Destination ID
          example: ext_address_001
        asset:
          type: string
          description: Asset identifier
          example: ETH
        baseAsset:
          type: string
          description: Base asset
          example: ETH
        amount:
          type: number
          description: Amount
          example: 0.5
        amountUSD:
          type: number
          description: Amount in USD
          example: 1000
        networkProtocol:
          type: string
          description: Network protocol
          example: ETH
        operation:
          $ref: '#/components/schemas/TransactionOperationEnum'
        action:
          $ref: '#/components/schemas/TravelRuleActionEnum'
    ScreeningProviderResponse:
      type: object
      description: >
        Complete response from the screening provider. This is a dynamic object
        that varies

        significantly between different providers (Chainalysis, Elliptic,
        NOTABENE, etc.).

        Each provider has their own proprietary response format and schema.


        For AML providers: Contains risk scores, alerts, entity information

        For Travel Rule providers: Contains VASP information, PII data,
        protocol-specific fields


        The structure is provider-dependent and cannot be standardized as each

        vendor implements their own proprietary data models and response
        formats.
      additionalProperties: true
    TRLinkRegistrationStatus:
      type: string
      description: TRLink registration status
      enum:
        - STARTING
        - PRESCREENED
        - COMPLETED
        - FAILED
        - VOID
      example: COMPLETED
    TRLinkProviderResult:
      type: object
      description: Provider-specific response data wrapper
      properties:
        providerResponse:
          type: object
          description: Raw provider response
    TRLinkPreScreeningRule:
      type: object
      description: TRLink pre-screening rule definition
      allOf:
        - $ref: '#/components/schemas/TRLinkRuleBase'
        - type: object
          properties:
            action:
              $ref: '#/components/schemas/TRLinkPreScreeningAction'
          required:
            - action
    TRLinkVerdict:
      type: string
      description: TRLink verdict after screening
      enum:
        - ACCEPT
        - ALERT
        - REJECT
        - WAIT
      example: ACCEPT
    TRLinkProviderResultWithRule:
      type: object
      description: Provider response and matched rule wrapper for TRLink screening results
      properties:
        providerResponse:
          type: object
          description: Raw provider response
        matchedRule:
          $ref: '#/components/schemas/TRLinkPostScreeningRule'
    TRLinkMissingTrmDecision:
      type: object
      description: Interface for reporting missing TRM screening decisions in ITRLinkResult
      allOf:
        - $ref: '#/components/schemas/TRLinkMissingTrmRule'
        - type: object
          properties:
            source:
              type: string
              description: TRLink missing TRM source
              example: policy
            timestamp:
              type: string
              format: date-time
              description: Timestamp of the decision
            reason:
              type: string
              description: Reason for the decision
              example: Missing travel rule message
          required:
            - source
    AmlAlert:
      type: object
      description: AML alert information
      properties:
        alertLevel:
          $ref: '#/components/schemas/AlertLevelEnum'
        alertName:
          type: string
          description: Name or type of the alert
          example: Sanctions Match
        category:
          type: string
          description: Alert category
          example: SANCTIONED_ENTITY
        service:
          type: string
          description: Service that generated the alert
          example: CHAINALYSIS
        externalId:
          type: string
          description: External identifier for the alert
          example: alert_12345
        alertAmount:
          type: number
          description: Amount associated with the alert
          example: 1000.5
        exposureType:
          $ref: '#/components/schemas/AlertExposureTypeEnum'
        policyAction:
          type: string
          description: Recommended action based on policy
          example: BLOCK
        categoryId:
          type: number
          description: Category identifier
          example: 101
      required:
        - alertLevel
        - externalId
        - alertAmount
        - exposureType
    AmlMatchedRule:
      type: object
      description: AML matched rule information
      properties:
        ruleId:
          type: string
          description: Identifier of the matched rule
          example: rule_001
        ruleName:
          type: string
          description: Name of the matched rule
          example: High Risk Sanctions Check
        action:
          $ref: '#/components/schemas/PolicyVerdictActionEnum'
    TravelRuleDirectionEnum:
      type: string
      description: Travel rule direction
      enum:
        - INBOUND
        - OUTBOUND
      example: OUTBOUND
    TravelRuleVerdictEnum:
      type: string
      description: The final verdict of the travel rule screening
      enum:
        - ACCEPT
        - REJECT
        - ALERT
        - REVIEW
        - WAIT
        - FREEZE
        - CANCEL
      example: ACCEPT
    TravelRuleMatchedRule:
      type: object
      description: The travel rule configuration that was matched
      properties:
        direction:
          $ref: '#/components/schemas/TravelRuleDirectionEnum'
        status:
          $ref: '#/components/schemas/TravelRuleStatusEnum'
        amountUSD:
          type: number
          description: Amount in USD
          example: 1000.5
        amount:
          type: number
          description: Amount in base currency
          example: 0.025
        asset:
          type: string
          description: Asset identifier
          example: BTC
        action:
          $ref: '#/components/schemas/TravelRuleVerdictEnum'
    TransferPeerTypeEnum:
      type: string
      description: Transfer peer type (source or destination)
      enum:
        - VAULT_ACCOUNT
        - EXCHANGE_ACCOUNT
        - INTERNAL_WALLET
        - EXTERNAL_WALLET
        - CONTRACT
        - NETWORK_CONNECTION
        - FIAT_ACCOUNT
        - COMPOUND
        - GAS_STATION
        - ONE_TIME_ADDRESS
        - UNKNOWN
        - END_USER_WALLET
        - PROGRAM_CALL
        - MULTI_DESTINATION
      example: VAULT_ACCOUNT
    TransferPeerSubTypeEnum:
      type: string
      description: Transfer peer sub-type for prescreening rules
      enum:
        - EXTERNAL
        - INTERNAL
        - CONTRACT
        - EXCHANGETEST
      example: INTERNAL
    TransactionOperationEnum:
      type: string
      description: Transaction operation type
      enum:
        - TRANSFER
        - BURN
        - CONTRACT_CALL
        - MINT
        - RAW
        - TYPED_MESSAGE
        - ENABLE_ASSET
        - STAKE
        - UNSTAKE
        - WITHDRAW
        - REDEEM_FROM_COMPOUND
        - SUPPLY_TO_COMPOUND
        - PROGRAM_CALL
        - APPROVE
      example: TRANSFER
    TravelRuleActionEnum:
      type: string
      description: Travel rule action
      enum:
        - SCREEN
        - BYPASS
        - BLOCK
        - PASS
        - FREEZE
      example: SCREEN
    TRLinkRuleBase:
      type: object
      description: Base interface for TRLink policy rules
      properties:
        customerId:
          type: string
          description: Reference to TrlinkCustomer.id
          example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
        direction:
          $ref: '#/components/schemas/TransactionDirection'
        sourceType:
          $ref: '#/components/schemas/TransferPeerTypeEnum'
        sourceSubType:
          $ref: '#/components/schemas/TransferPeerSubTypeEnum'
        sourceAddress:
          type: string
          description: Source address
          example: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
        destType:
          $ref: '#/components/schemas/TransferPeerTypeEnum'
        destSubType:
          $ref: '#/components/schemas/TransferPeerSubTypeEnum'
        destAddress:
          type: string
          description: Destination address
          example: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
        sourceId:
          type: string
          description: Source ID
          example: '1'
        destId:
          type: string
          description: Destination ID
          example: '1'
        asset:
          type: string
          description: Asset symbol
          example: BTC
        baseAsset:
          type: string
          description: Base asset symbol
          example: USD
        amount:
          $ref: '#/components/schemas/TRLinkAmount'
        networkProtocol:
          type: string
          description: Network protocol
          example: BITCOIN
        operation:
          $ref: '#/components/schemas/TransactionOperationEnum'
        description:
          type: string
          description: Rule description
        isDefault:
          type: boolean
          description: Whether this is a default rule
          default: false
    TRLinkPreScreeningAction:
      type: string
      description: TRLink pre-screening action
      enum:
        - SCREEN
        - PASS
      example: SCREEN
    TRLinkPostScreeningRule:
      type: object
      description: TRLink post-screening rule definition
      allOf:
        - $ref: '#/components/schemas/TRLinkRuleBase'
        - type: object
          properties:
            providerIdent:
              type: string
              description: Provider identifier
              example: sumsub
            trmStatus:
              $ref: '#/components/schemas/TRLinkTrmScreeningStatus'
            validBefore:
              type: number
              description: Unix timestamp when rule expires
              example: 1672531200000
            validAfter:
              type: number
              description: Unix timestamp when rule becomes valid
              example: 1640995200000
            action:
              $ref: '#/components/schemas/TRLinkVerdict'
          required:
            - action
    TRLinkMissingTrmRule:
      type: object
      description: TRLink missing TRM rule definition
      allOf:
        - $ref: '#/components/schemas/TRLinkRuleBase'
        - type: object
          properties:
            validBefore:
              type: number
              description: Unix timestamp when rule expires
              example: 1672531200000
            validAfter:
              type: number
              description: Unix timestamp when rule becomes valid
              example: 1640995200000
            action:
              $ref: '#/components/schemas/TRLinkMissingTrmAction'
          required:
            - action
    AlertLevelEnum:
      type: string
      description: Alert level severity
      enum:
        - SEVERE
        - HIGH
        - MEDIUM
        - LOW
      example: HIGH
    AlertExposureTypeEnum:
      type: string
      description: Alert exposure type (AlertExposureType enum)
      enum:
        - DIRECT
        - INDIRECT
      example: DIRECT
    PolicyVerdictActionEnum:
      type: string
      description: Policy verdict action
      enum:
        - ALLOW
        - BLOCK
        - 2-TIER
        - SCREEN
        - ACCEPT
        - REJECT
        - ALERT
        - WAIT
        - FREEZE
        - CANCEL
      example: ALLOW
    TravelRuleStatusEnum:
      type: string
      description: Travel rule status
      enum:
        - COMPLETED
        - PENDING
        - BYPASSED
        - FAILED
        - FROZEN
        - REJECTED
        - CANCELED
        - BLOCKING_TIME_EXPIRED
      example: COMPLETED
    TransactionDirection:
      type: string
      description: Transaction direction
      enum:
        - INBOUND
        - OUTBOUND
      example: OUTBOUND
    TRLinkAmount:
      type: object
      description: >-
        TRLink amount definition with range and currency, compatible with TAP
        format from Policy Engine V2
      properties:
        range:
          $ref: '#/components/schemas/AmountRangeMinMax'
        currency:
          type: string
          description: Currency type
          enum:
            - USD
            - NATIVE
          example: USD
    TRLinkTrmScreeningStatus:
      type: string
      description: TRLink TRM screening status
      enum:
        - PENDING
        - ACCEPTED
        - REJECTED
        - FAILED
      example: ACCEPTED
    TRLinkMissingTrmAction:
      type: string
      description: TRLink missing TRM action
      enum:
        - WAIT
        - REJECT
        - ACCEPT
        - INITIATE_TRM
      example: WAIT
    AmountRangeMinMax:
      type: object
      description: Amount range with minimum and maximum values
      properties:
        min:
          type: string
          description: Minimum amount
          example: '100'
        max:
          type: string
          description: Maximum amount
          example: '10000'
  responses:
    Error:
      description: Error Response
      headers:
        X-Request-ID:
          $ref: '#/components/headers/X-Request-ID'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorSchema'

````