> ## Documentation Index
> Fetch the complete documentation index at: https://dev.commerce.moonpay.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Withdrawal Webhooks

> Events, setup, and delivery rules for withdrawal webhooks

Register a webhook via [Create a Withdrawal Webhook](https://dev.commerce.moonpay.com/reference/webhook/withdrawal/create.md) to receive withdrawal lifecycle events instead of polling. JSON payload shapes are in the [Withdrawal payload reference](https://dev.commerce.moonpay.com/reference/webhook/withdrawal/payloads.md).

Deliveries include `Authorization: Bearer <sharedToken>` and an `X-Signature` HMAC-SHA256 header keyed with the same token. See [Webhook request headers](https://dev.commerce.moonpay.com/reference/webhook/overview.md#webhook-request-headers) for the full header reference. Verify signatures using [Verifying Webhook Signatures](https://dev.commerce.moonpay.com/docs/webhooks.md#verifying-webhook-signatures).

## Supported Events

* `SUBMITTING` — the first-leg broadcast has started.
* `SUBMITTED` — the withdrawal transaction has been broadcast on the source chain.
* `BRIDGING` — a cross-chain withdrawal has cleared the source chain and the bridge leg is in flight.
* `COMPLETED` — the withdrawal has settled successfully. (Previously named `CONFIRMED`.)
* `FAILED` — the withdrawal failed. Inspect `errorReason` via the [Get Withdrawal Detail](https://dev.commerce.moonpay.com/reference/withdraw-details/retrieve.md) endpoint.
* `FAILED_EXPIRED` — the quote expired before broadcast (e.g. stale blockhash or user operation); re-quote from prepare.
* `REFUNDED_BY_PROVIDER` — the bridge bounced funds back.

> [!WARNING]
>
> The `CONFIRMED` event has been renamed to `COMPLETED`. Update any webhook consumers that match on `CONFIRMED`.
