Supported events
Not all webhook events appear in every account, some are restricted to specific use cases.transfer
transfer.initiatedPayload:
transactionId, details
Transfer initiated. Fires multiple times as the transfer advances — see Transaction lifecycle.
transfer.completedPayload:
transactionId, details
Transfer successfully completed.
transfer.failedPayload:
transactionId, details
Transfer failed. See Failure reasons.
withdrawal
withdrawal.initiatedPayload:
transactionId, details
Withdrawal initiated. Fires multiple times as the withdrawal advances — see Transaction lifecycle.
withdrawal.completedPayload:
transactionId, details
Withdrawal successfully completed.
withdrawal.failedPayload:
transactionId, details
Withdrawal failed. See Failure reasons.
deposit
deposit.attributedPayload:
transactionId
Deposit attribution completed. Also fires when a USD deposit settles, since fiat deposits don’t require attribution.
deposit.pending-attributionPayload:
transactionId
New deposit pending attribution. Crypto only; fiat deposits don’t require attribution.
program-customer-onboard
Wealth manager only.program-customer-onboard.completedPayload:
customerId, applicationType
New RIA program customer passed onboarding KYC. Subaccount creation is now available.
program-customer-onboard.rfiPayload:
customerId
Request for more information on program customer onboarding.
subaccount
Wealth manager only.subaccount.openedPayload:
subaccountId
New RIA program customer subaccount opened.
subaccount.subaccount-withdrawal-request-status-changePayload:
transactionId (subaccount tx)
Subaccount withdrawal request status changed.
subaccount.low-balancePayload:
subaccountId
Subaccount balance is low.
collateral-package-state-change
Collateral management only.collateral-package-state-change.margin-returnPayload:
collateralPackageId, state, pledgorName, securedPartyName, exposureId, amountReturned, currentLTV, marginReturnThresholdLTV, marginReturnReturnToLTV
Package LTV fell below the defined MarginReturn LTV.
collateral-package-state-change.margin-callPayload:
collateralPackageId, state, pledgorName, securedPartyName, exposureId, currentLTV, amountRequired, marginCallThresholdLTV, actionRequired, cureDeadline
Package LTV exceeded the defined MarginCall LTV.
collateral-package-state-change.healthyPayload:
collateralPackageId, state, pledgorName, securedPartyName, exposureId, currentLTV
Package LTV returned to the healthy range.
collateral-package-state-change.criticalPayload:
collateralPackageId, state, pledgorName, securedPartyName, exposureId, currentLTV, criticalThresholdLTV
Package LTV exceeded the defined Critical LTV.
collateral-package-state-change.cure-period-expiredPayload:
collateralPackageId, state, pledgorName, securedPartyName, exposureId, curePeriod, action
Margin call cure deadline passed.
collateral-package-state-change.accelerated-margin-callPayload:
collateralPackageId, state, pledgorName, securedPartyName, exposureId, currentLTV, amountRequired, actionRequired, cureDeadline
Accelerated margin call issued.
collateral-package-state-change.cm-operation-createdPayload:
collateralPackageId, state, pledgorName, securedPartyName, exposureId
New collateral management operation created.
collateral-package-state-change.package-defaultedPayload:
collateralPackageId, state, pledgorName, securedPartyName, exposureId, currentLTV, defaultNoticeWarning
Package entered the defaulted state.
trade-order
trade-order.execution-reportPayload: (varies) Trade order execution report received.
tax
tax.transaction-taggedPayload:
transactionId, state, warnings
Tax lot tagging applied to a transaction.
tax.transaction-untaggedPayload:
transactionId, state
Tax lot tagging removed from a transaction.
Transaction lifecycle (transfers and withdrawals)
Fortransfer and withdrawal, the three events, initiated, completed, and failed, track an operation across its whole lifecycle. Unlike other topics, initiated fires more than once: each time the operation reaches a new phase, a fresh initiated event arrives with a different details value. Read details to know where the operation is. completed fires once on success, and failed fires once on a terminal failure, each with its own details value.
Expanded lifecycle
details are rolling out per organization. If you don’t yet see a details field on your transfer and withdrawal events, notify your integration point of contact.initiated event carries one of these details values:
The
completed event carries a single details value, completed, once the operation settles successfully.
Failure reasons
Afailed event fires once if the operation ends unsuccessfully, carrying one of these details values:
Some
failed events arrive with no details field. Treat a missing details as an unspecified failure.
Because initiated now fires multiple times, order matters. Webhook delivery is at-least-once and events may arrive out of order, so use details rather than arrival order to track progress. See Delivery and reliability for handling duplicates and out-of-order events.