Which events to subscribe to
Bring Your Own Screening does not send its own event when a transaction starts waiting for your verdict. Watch for the transaction’s
transaction.status.updated events, or poll it.
Step 1: Subscribe
- Webhooks v2 events: set up an endpoint and subscribe to the events you need. See Webhooks Overview.
- Compliance notifications: in the Console, go to Settings > Notifications > Webhooks > Create Webhook, and select Compliance.
Step 2: Read screening outcomes
Thedata object of transaction.status.updated is the full transaction. Read its status and subStatus:
See Statuses and Sub-statuses for the full lists.
Because
subStatus does not say which check made the decision, read the complianceResults object when the event includes it. It carries each check’s provider, verdict, and risk level. For the full AML/KYT and Travel Rule result, including the raw provider payload, call GET /screening/transaction/{txId}:
Step 3: Handle Travel Rule notifications (Sumsub, GTR)
These are not Webhooks v2 events. They are audit-log notifications in the Compliance category (categoryId: "7"). You receive every notification in this category, and tell them apart by note.messageType.
note is a JSON-encoded string, so parse it before reading it. Only screeningMessage and messageType are always present; every other field appears only when the screening result has a value for it.
Required actions. When a Travel Rule message needs more data, you receive a messageType of TRLink.RequiredActions, once per destination:
Missing message. When a transaction that needs a Travel Rule message does not have one, you receive a
messageType of TRLink.NoTRMessage, with the txId, destinationScreeningId, and destination details. Create and link a message, or accept or reject the transaction with a manual decision.
For both flows, see the Sumsub and GTR guides.
Step 4: Act on the outcome
- Rejected or frozen transaction: bypass, rescreen, or unfreeze it. See Transaction Screening Operations.
- Transaction waiting for your verdict: submit
ACCEPTorREJECT. See Bring Your Own Screening.
Handling events reliably
- Acknowledge fast. Return
200right away, and process the event asynchronously. - Do not rely on order. Fireblocks does not guarantee that events arrive in the order they happened. Compare against the transaction’s current state rather than the previous event.
- Deduplicate. The same change can arrive more than once. Deduplicate on the notification
id. For Travel Rule notifications, usedestinationScreeningIdwhen it is present, or the envelopeidwhen it is not. - Re-fetch before acting. Before bypassing, rescreening, unfreezing, or submitting a verdict, read the current state from the API. The transaction may have moved on.
- Recover missed events. Webhooks v2 can resend notifications for up to 30 days. See Resending & troubleshooting webhook notifications.