Webhook Event

A webhook event is generated whenever an action occurs that matches a subscribed webhook.

When an event is triggered, IBM Digital Asset Haven creates a webhook event object that includes details about the action. IBM Digital Asset Haven then:
  • Sends the event to your webhook endpoint.
  • Stores a trace of the event so that you can review all webhook events sent to your endpoints by using the List Webhook Events or Get Webhook Event APIs.
Note: IBM Digital Asset Haven retains webhook event traces for 31 days. After this period, they are permanently removed and can no longer be retrieved through the webhook event APIs.
Webhook Ordering
IBM Digital Asset Haven does not guarantee that webhook events are delivered in the order in which they are generated. For example, when a wallet transfer is confirmed on chain, you might receive:
  • wallet.transfer.confirmed: Notifies you that the transfer request has been confirmed on chain
  • wallet.blockchainevent.detected: Notifies you that a new blockchain event has been added to the wallet’s history
Your endpoint must handle these events without assuming a specific order of arrival.
Supported webhook events
You can subscribe webhooks to the following event kinds.
Event enum Description
wallet.blockchainevent.detected A wallet event was detected on chain, for example a deposit.
wallet.created A wallet was /api-reference/wallets/create-wallet.
wallet.delegated A wallet was /api-reference/wallets/delegate-wallet.
wallet.signature.requested A /api-reference/keys/generate-signature request was created.
wallet.signature.failed A /api-reference/keys/generate-signature request failed to process.
wallet.signature.rejected A /api-reference/keys/generate-signature request that required policy approval was rejected.
wallet.signature.signed A /api-reference/keys/generate-signature request completed.
wallet.transaction.requested A /api-reference/wallets/sign-and-broadcast-transaction request was created.
wallet.transaction.failed A /api-reference/wallets/sign-and-broadcast-transaction request failed to process.
wallet.transaction.rejected A /api-reference/wallets/sign-and-broadcast-transaction request that required policy approval was rejected.
wallet.transaction.broadcasted A /api-reference/wallets/sign-and-broadcast-transaction request was submitted to the mempool.
wallet.transaction.confirmed A /api-reference/wallets/sign-and-broadcast-transaction request was confirmed on chain.
wallet.transfer.requested A /api-reference/wallets/transfer-asset request was created.
wallet.transfer.failed A /api-reference/wallets/transfer-asset request failed to process.
wallet.transfer.rejected A /api-reference/wallets/transfer-asset request that required policy approval was rejected.
wallet.transfer.broadcasted A /api-reference/wallets/transfer-asset request was submitted to the mempool.
wallet.transfer.confirmed A /api-reference/wallets/transfer-asset request was confirmed on chain.
policy.triggered A policy rule evaluated to true for an activity, and the policy was triggered.
policy.approval.pending A new /core-concepts/policies#approval process was created and is pending.
policy.approval.resolved An /core-concepts/policies#approval process was finalized. The request was either approved or rejected.
Deliveries and Retries
A webhook delivery attempt fails if IBM Digital Asset Haven cannot reach your endpoint or if your endpoint returns any status code other than 200. When a delivery fails, IBM Digital Asset Haven retries the request up to five times over 24 hours using exponential backoff (1 minute, 12 minutes, 2 hours, 1 day). Each delivery attempt is recorded as a distinct webhook event with its own ID. The payload includes:
  • deliveryAttempt: the attempt number
  • retryOf: the ID of the previous delivery attempt, if applicable
You can view the delivery status of each attempt in the List Webhook Events or Get Webhook Event APIs. Failed deliveries include a deliveryFailed field and, if retry attempts remain, a nextAttemptDate. Events with no nextAttemptDate have exhausted their retry attempts.If a webhook endpoint is disabled or deleted when a retry is attempted, future retries stop. If you re‑enable the endpoint before the next retry window, remaining retry attempts will continue.