Transaction Webhooks

This page describes all events relating to transactions that produce webhook notifications, and their associated data objects.

The type parameter is automatically set to the description name for the data objects below.

Transaction Created

Notification is sent when any new transaction is identified in the workspace.

Webhook data

ParameterTypeDescription
typestringTRANSACTION_CREATED
tenantIdstringUnique ID of your Fireblocks' workspace
timestampnumberTimestamp in milliseconds
dataTransactionDetailsAll the transaction information

Transaction Status Updated

Notification is sent when there is any change in a transaction's status or when Fireblocks detects an update to the number of confirmations.

Webhook data

ParameterTypeDescription
typestringTRANSACTION_STATUS_UPDATED
tenantIdstringUnique id of your Fireblocks' workspace
timestampnumberTimestamp in milliseconds
dataTransactionDetailsAll the transaction information

Transaction Approval Status Updated

Notification is sent with every approval based on the Transaction Authorization Policy.

Webhook data

ParameterTypeDescription
typestringTRANSACTION_APPROVAL_STATUS_UPDATED
tenantIdstringUnique id of your Fireblocks' workspace
timestampnumberTimestamp in milliseconds
dataTransactionDetailsAll the transaction information

TransactionDetails

ParameterTypeDescription
idstringThe ID of the transaction.
externalTxIdstringUnique transaction ID provided by the user. Fireblocks highly recommends setting an externalTxId for every transaction created, to avoid submitting the same transaction twice.
statusstringThe current primary status of the transaction. See Primary Transaction Statuses for a detailed list.
subStatusstringSee Transaction Substatuses for a detailed list of transaction substatuses.
txHashstringThe hash of this transaction on the blockchain. txHash is only returned for crypto assets (not fiat) when the operation type is not RAW or TYPED_MESSAGE.

This parameter exists if at least one of the following conditions is met:

1) The transaction’s source type is UNKNOWN, WHITELISTED_ADDRESS, ONE_TIME_ADDRESS, FIAT or GAS_STATION.

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

3) The transaction’s source type is EXCHANGE and the transaction’s destination type is VAULT, and the status is: CONFIRMING, COMPLETED, or was either status prior to changing to FAILED.
operationTransactionOperationThe transaction operation type. The default is TRANSFER.
[TRANSFER, MINT, BURN, CONTRACT_CALL, TYPED_MESSAGE, RAW, ENABLE_ASSET, STAKE, UNSTAKE, WITHDRAW]
notestringCustom note that describes this transaction in your Fireblocks workspace. The note isn’t sent to the blockchain.
assetIdstringThe ID of the transaction’s asset, for TRANSFER, MINT, BURN or ENABLE_ASSET operations. See the list of supported assets and their IDs on Fireblocks.
assetTypeAssetTypeone of the following - XLM_ASSET
XDB_ASSET
TRON_TRC20
SOL_ASSET
HBAR_ERC20
FIAT
ERC721
ERC20
ERC1155
BEP20
BASE_ASSET
ALGO_ASSET
sourceTransferPeerPathResponseThe transaction’s source.
sourceAddressstringFor account based assets only, the source address of the transaction.

Note: If the status is CONFIRMING, COMPLETED, or was CONFIRMING before either FAILED or REJECTED, then this parameter will contain the source address. This parameter is empty in any other case.
destinationTransferPeerPathResponseThe transaction’s destination.

Note: If a transaction is sent to multiple destinations, the destinations parameter is used instead of destination.
destinationsArray of DestinationsResponseFor UTXO-based assets, all outputs are specified here.
destinationAddressstringAddress where the asset was transferred.

Notes:

For Multi-destination transactions, this parameter will be empty and you should refer to the destinations field instead.

If the status is CONFIRMING, COMPLETED, or was CONFIRMING before either FAILED or REJECTED, then this parameter will contain the destination address. This parameter is empty in any other case.
destinationAddressDescriptionstringDescription of the address
destinationTagstring(Optional) Destination address tag for Ripple; destination memo for EOS, Stellar, Hedera, & DigitalBits; destination note for Algorand; bank transfer description for fiat providers.
amountInfoAmountInfoFor TRANSFER operations, all details of the transfer amount.
treatAsGrossAmountbooleanWhen set to true, the fee is deducted from the requested amount for transactions initiated from this Fireblocks workspace.
feeInfoFeeInfo objectDetails of the transaction's fee.
feeCurrencystringThe asset type used to pay the fee (ETH for ERC-20 tokens, BTC for Omni, XLM for Stellar tokens, etc.)
networkRecordsArray of NetworkRecord objectsA transaction in Fireblocks can aggregate several blockchain transactions, typically as part of a contract call. Network records specify all intermediate transactions that took place on the blockchain. For single transactions, this parameter is empty.
createdAtnumberThe transaction’s creation date and time, in Unix timestamp.
lastUpdatednumberThe transaction’s last update date and time, in Unix timestamp.
createdBystringUser ID of the initiator of this transaction.
signedByArray of stringsUser ID(s) of the signer(s) of this transaction.
rejectedBystringUser ID of the user that rejected the transaction, only if the transaction was rejected.
authorizationInfoAuthorizationInfoData object with information about your Transaction Authorization Policy (TAP). For more information about the TAP, refer to the Fireblocks Help Center.
exchangeTxIdstringIf the transaction originated from an exchange, this is the exchange’s ID of this transaction.
customerRefIdstringThe ID for AML providers to associate the owner of the funds with the transaction.
amlScreeningResultAmlScreeningResult objectThe result of the AML screening.
replacedTxHashstringThe hash of the replaced transaction, only If this is an RBF transaction on an EVM blockchain. Learn more about RBF transactions.
extraParametersTransactionExtraParameters objectParameters that are specific to some transaction operation types and blockchain networks.
signedMessagesArray of SignedMessage objectsA list of signed messages returned for raw signing.
numOfConfirmationsnumberThe number of blockchain confirmations of the transaction. The number will increase until the transaction is considered completed according to the confirmation policy.
blockInfoBlockInfo objectThe hash and height of the block that the 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.
indexnumber[optional] For UTXO-based assets this is the vOut, for EVM 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.
rewardsInfoRewardsInfo objectThis field is relevant only for ALGO transactions. Both srcRewrds and destRewards appear only for vault-to-vault transactions. Otherwise, only your workspace side of the transaction is recorded.
systemMessagesArray of SystemMessageInfo objectsA response from Fireblocks with details about the health of the current process(es). If this object is returned with data, expect potential delays or incomplete transaction statuses.
addressTypestring(Optional) [ ONE_TIME, WHITELISTED]
requestedAmount (Deprecated)numberThe amount requested by the user.
amount (Deprecated)numberIf the transfer is a withdrawal from an exchange, the actual transfer amount. Otherwise, the requested amount.
netAmount (Deprecated)numberThe net amount of the transfer, after fee deduction.
amountUSD (Deprecated)numberThe USD value of the requested amount.
serviceFee (Deprecated)numberThe total fee deducted by the exchange from the actual requested amount (serviceFee = amount - netAmount).
networkFee (Deprecated)numberThe fee paid to the blockchain network.

TransactionOperation

ParameterTypeDescription
operationstring[TRANSFER, MINT, BURN, CONTRACT_CALL, TYPED_MESSAGE, RAW, ENABLE_ASSET, STAKE, UNSTAKE, WITHDRAW]
Not all operations are available in all workspaces. Contact your account manager to enable additional features.

TRANSFER - Default. 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. Learn more about tokenization on Fireblocks.

BURN - Burns tokens. Supported for Stellar, Ripple, and EVM-based blockchains. Learn more about tokenization on Fireblocks.

CONTRACT_CALL - Calls a smart contract method for web3 operations on any EVM blockchain. The Fireblocks development 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.

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.

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 to a vault account.

STAKE - Assign assets to a staking pool managed by a staking validator. Learn more about staking transactions and supported blockchains. This transaction is automatically created when performing staking operations.

UNSTAKE - Remove assets from a staking pool managed by a staking validator. Learn more about staking transactions and supported blockchains.This transaction is automatically created when performing staking operations.

WITHDRAW - Transfer assets from a dedicated staking vault account to another address. Learn more about staking transactions and supported blockchains.This transaction is automatically created when performing staking operations.
Note: Fireblocks may rename this type from WITHDRAW to a different name soon. There will be at minimum a 7-day notice regarding the new type name.

AmountInfo

ParameterTypeDescription
amountstringIf the transfer is a withdrawal from an exchange, the actual amount that was requested to be transferred. Otherwise, it is the requested amount. This value will always be equal to the amount (number) parameter of TransactionDetails.
requestedAmountstringThe amount requested by the user
netAmountstringThe net amount of the transaction, after fee deduction
amountUSDstringThe USD value of the requested amount

FeeInfo

ParameterTypeDescription
networkFeestringThe fee paid to the network
serviceFeestringThe total fee deducted by the exchange from the actual requested amount (serviceFee = amount - netAmount)

TransferPeerPathResponse

ParameterTypeDescription
typestring[ VAULT_ACCOUNT, EXCHANGE_ACCOUNT, INTERNAL_WALLET, EXTERNAL_WALLET, ONE_TIME_ADDRESS, NETWORK_CONNECTION, FIAT_ACCOUNT, GAS_STATION, UNKNOWN ]
idstringThe ID of the account to return. Can return as null if the related transaction fails due to a connectivity error.
namestringThe name of the account.
subTypestringThe specific account or wallet.

📘

Sources and destinations

Learn more about transaction sources and destinations.


DestinationsResponse

ParameterTypeDescription
amountstringThe amount to be sent to this destination
destinationTransferPeerPathResponseDestination of the transaction
amountUSDnumberThe USD value of the requested amount
destinationAddressstringAddress where the asset was transferred
destinationAddressDescriptionstringDescription of the address
amlScreeningResultAmlScreeningResultThe result of the AML screening
customerRefIdstringThe ID for AML providers to associate the owner of funds with transactions

TransactionExtraParameters

ParameterTypeDescription
inputsSelectionInputsSelection objectFor UTXO-based blockchain multi-input selection, use the inputsSelection field with values set to the input selection structure. The inputs can be retrieved using the Retrieve Unspent Inputs endpoint.
rawMessageDataRawMessageData objectFor RAW operations, use the rawMessageData field with the values set to the raw message data structure. Only included with raw signing transactions on Bitcoin and Ethereum.
This is an opt-in feature. Please contact Fireblocks Support to include this feature in your workspace.
contractCallDatastringFor CONTRACT_CALL operations, use the contractCallData field with the value set to the Ethereum smart contract Application Binary Interface (ABI) payload. The Fireblocks development libraries are recommended for building contract call transactions

SystemMessageInfo

ParameterTypeDescription
typestring(WARN, BLOCK)
messagestringA 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.