---
url: /docs/learn/webhooks.md
description: >-
  Receive real-time events for customers, payments, virtual accounts, wallets,
  and transfers instead of polling the API.
---

A webhook is an HTTP callback that BlindPay sends to your server when something changes: a payin completes, a customer is created, a virtual account is approved. Subscribe once and receive every event as it happens, instead of polling the API for status.

Webhooks are configured per [instance](/learn/instances). One endpoint receives every event fired by that instance; there is no per-event-type endpoint. You can register multiple endpoints on the same instance if you want to split traffic across services.

## Create a webhook

### Open the Webhooks tab

Go to the [BlindPay dashboard](https://app.blindpay.com), select an instance, and open the **Webhooks** tab.

### Add your endpoint URL

Enter your endpoint URL and save. The URL must be `https`; local or private addresses are rejected.

For quick testing before you have a real handler, point the endpoint at [webhook.cool](https://webhook.cool/): it gives you a temporary URL that logs every incoming request so you can inspect a payload first.

### Key events for fiat

Working with the fiat flavor, you will listen most often to:

* `virtualAccount.complete`: the account is approved and ready to receive deposits
* `payin.complete`: a deposit arrived and settled
* `payout.complete`: a bank transfer was sent, failed, or was refunded

See [Events](/learn/webhooks-events) for the full catalog.

### Key events for stablecoin

Working with the stablecoin flavor, you will listen most often to:

* `wallet.inbound`: stablecoins were deposited into a managed wallet
* `payin.complete`: fiat was received and stablecoins were delivered
* `payout.complete`: stablecoins were pulled and fiat was sent

See [Events](/learn/webhooks-events) for the full catalog.

## In this section

* [Events](/learn/webhooks-events): the full event catalog, payload shapes, and when each one fires
* [Verification](/learn/webhooks-verification): how to verify the signature headers on every call

## Related

* [Instances](/learn/instances): webhooks are configured per instance
* [API keys](/learn/api-keys): authenticate the rest of the API alongside your webhook endpoint
* [Partner fees](/learn/partner-fees): how partner fee tracking fields appear on payin/payout webhooks
* [Fiat quickstart](/fiat/quickstart): see webhooks in a full payment flow
* [Stablecoin quickstart](/stablecoin/quickstart): see webhooks in a payout flow
