Three axes, three event types
A flow does not have one status. It has three, and they move independently. That is the single most useful thing to understand about the event model, because a flow can be finished on one axis and still in progress on another.
Each event carries both the previous and the new state, so your backend can react to a specific transition rather than re-deriving what changed.
Reconciling a completed payment
When settlement reachescompleted, the event carries the on-chain transaction hash that delivered the funds to your destination. Paired with the flow’s memo, that is everything needed to match a payment against an internal order or treasury record.
The same payload carries the destination chain name and ID, plus block explorer URLs, so you can link a customer straight to their transaction without assembling explorer URLs yourself.
Choosing webhooks or polling
Polling is simpler to stand up and fine for a prototype or a low-volume flow. Webhooks are the right default in production: they remove the latency of a poll interval, they cost nothing while a flow is idle, and they deliver the settlement transaction hash without an extra read. Nothing stops you doing both. A webhook-driven backend that also reconciles by polling on a schedule is a reasonable belt-and-braces posture for payments.Flow event payloads
Flow events send a state-transition payload, not the full flow object. Use theflowId with getFlow to fetch the full flow state. See the Flow API guide for details on each state.
object
Occurs whenever a flow’s execution state changes. The payload includes
previousState and newState: for example initiated → source_attached, signing → broadcasted, or broadcasted → failed. Possible execution states: initiated, source_attached, quoted, signing, broadcasted, source_confirmed, cancelled, expired, failed.object
Occurs whenever a flow’s settlement state changes. Settlement tracks the post-broadcast movement of funds.
data.additionalData identifies the destination chain the settlement lands on with chainName (for example SOL or EVM) and chainId (a string, for example "101"). When the new state is completed, it also includes settlementTxHash (the on-chain transaction hash that delivered the settled funds) and blockExplorerUrls (explorer links for that transaction). Possible settlement states: none, routing, bridging, swapping, settling, completed, failed.object
Occurs whenever a flow’s risk assessment state changes. Fired when risk screening transitions, for example
unknown → pending → cleared. Possible risk states: unknown, pending, cleared, blocked, review.Example Flow Event Payload
Example Flow Settlement Completed Payload
settlementTxHash with chainName and chainId to reconcile the completed flow against the destination-chain transaction, and blockExplorerUrls to link your users straight to it. Pair the hash with the flow memo to match the settlement to an internal order or invoice.
Fields with nothing to report are omitted rather than sent as
null. chainName and chainId are absent until the flow has a destination chain, and blockExplorerUrls is absent when the settlement has no transaction hash yet or the destination network has no configured explorer.Exchange transfer events
object
Occurs whenever an exchange transfer is successfully initiated. Is an
ExchangeTransferResponse.
object
Occurs whenever an exchange transfer fails for any reason. Contains error details
about the failure.
Legacy checkout events
Checkout transaction events apply to the legacy checkout system. For new integrations, use Fireblocks Flow and subscribe to
flow.* events instead.transactionId with getFlow to fetch the full flow state.
object
Occurs whenever a checkout transaction’s execution state changes. The execution state tracks how the transaction is moving through the payment lifecycle: for example
initiated, source_attached, quoted, signing, broadcasted, failed, cancelled, or expired.object
Occurs whenever a checkout transaction’s settlement state changes. The settlement state tracks the post-broadcast flow of funds: for example
none, routing, bridging, swapping, settling, completed, or failed.object
Occurs whenever a checkout transaction’s risk assessment state changes. Fired when risk screening transitions between states such as
unknown, cleared, or blocked.Example Checkout Event Payload
Next
Webhook setup
Configuring endpoints and verifying signatures.
Delivery best practices
Retries, idempotency, and signature verification.