Skip to main content
The Anchorage Digital Webhooks API delivers event-driven notifications for operations and transactions across both crypto and USD. Event notifications are configurable by endpoint and by event type. For details on retry behavior, delivery guarantees, and consumer requirements, see Delivery and reliability.

Supported events

Not all webhook events appear in every account, some are restricted to specific use cases.

transfer

transfer.initiated
Payload: transactionId, details
Transfer initiated. Fires multiple times as the transfer advances — see Transaction lifecycle.
transfer.completed
Payload: transactionId, details
Transfer successfully completed.
transfer.failed
Payload: transactionId, details
Transfer failed. See Failure reasons.

withdrawal

withdrawal.initiated
Payload: transactionId, details
Withdrawal initiated. Fires multiple times as the withdrawal advances — see Transaction lifecycle.
withdrawal.completed
Payload: transactionId, details
Withdrawal successfully completed.
withdrawal.failed
Payload: transactionId, details
Withdrawal failed. See Failure reasons.

deposit

deposit.attributed
Payload: transactionId
Deposit attribution completed. Also fires when a USD deposit settles, since fiat deposits don’t require attribution.
deposit.pending-attribution
Payload: transactionId
New deposit pending attribution. Crypto only; fiat deposits don’t require attribution.

program-customer-onboard

Wealth manager only. program-customer-onboard.completed
Payload: customerId, applicationType
New RIA program customer passed onboarding KYC. Subaccount creation is now available.
program-customer-onboard.rfi
Payload: customerId
Request for more information on program customer onboarding.

subaccount

Wealth manager only. subaccount.opened
Payload: subaccountId
New RIA program customer subaccount opened.
subaccount.subaccount-withdrawal-request-status-change
Payload: transactionId (subaccount tx)
Subaccount withdrawal request status changed.
subaccount.low-balance
Payload: subaccountId
Subaccount balance is low.

collateral-package-state-change

Collateral management only. collateral-package-state-change.margin-return
Payload: collateralPackageId, state, pledgorName, securedPartyName, exposureId, amountReturned, currentLTV, marginReturnThresholdLTV, marginReturnReturnToLTV
Package LTV fell below the defined MarginReturn LTV.
collateral-package-state-change.margin-call
Payload: collateralPackageId, state, pledgorName, securedPartyName, exposureId, currentLTV, amountRequired, marginCallThresholdLTV, actionRequired, cureDeadline
Package LTV exceeded the defined MarginCall LTV.
collateral-package-state-change.healthy
Payload: collateralPackageId, state, pledgorName, securedPartyName, exposureId, currentLTV
Package LTV returned to the healthy range.
collateral-package-state-change.critical
Payload: collateralPackageId, state, pledgorName, securedPartyName, exposureId, currentLTV, criticalThresholdLTV
Package LTV exceeded the defined Critical LTV.
collateral-package-state-change.cure-period-expired
Payload: collateralPackageId, state, pledgorName, securedPartyName, exposureId, curePeriod, action
Margin call cure deadline passed.
collateral-package-state-change.accelerated-margin-call
Payload: collateralPackageId, state, pledgorName, securedPartyName, exposureId, currentLTV, amountRequired, actionRequired, cureDeadline
Accelerated margin call issued.
collateral-package-state-change.cm-operation-created
Payload: collateralPackageId, state, pledgorName, securedPartyName, exposureId
New collateral management operation created.
collateral-package-state-change.package-defaulted
Payload: collateralPackageId, state, pledgorName, securedPartyName, exposureId, currentLTV, defaultNoticeWarning
Package entered the defaulted state.

trade-order

trade-order.execution-report
Payload: (varies)
Trade order execution report received.

tax

tax.transaction-tagged
Payload: transactionId, state, warnings
Tax lot tagging applied to a transaction.
tax.transaction-untagged
Payload: transactionId, state
Tax lot tagging removed from a transaction.

Transaction lifecycle (transfers and withdrawals)

For transfer 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.
Transfer and withdrawal request lifecycle: initiated queued, quorum-met (withdrawal only), and signing are cancelable and can fail; initiated broadcasting is not cancelable; then completed. Failures are rejected, expired, or canceled.
Each initiated event carries one of these details values: The completed event carries a single details value, completed, once the operation settles successfully.

Failure reasons

A failed 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.

Related topics

Overview