# Webhooks

Webhooks allow you to receive real-time notifications about events in your Resolve account. When an event occurs, Resolve sends an HTTP POST request to your configured webhook endpoint with details about the event.

 - [Webhook Event Structure](https://docs.resolvepay.com/merchant-api/openapi/webhooks/webhook-event-structure.md): ## Webhook Event Structure All webhook events follow a consistent structure: ```json { "id": "4ecbe7f9e8c1c9092c000027", "object": "invoice", "type": "invoice.created", "occurred_at": "2021-0
 - [Supported Event Types](https://docs.resolvepay.com/merchant-api/openapi/webhooks/supported-event-types.md): ## Supported Event Types
 - [Invoice Events](https://docs.resolvepay.com/merchant-api/openapi/webhooks/invoice-events.md): ### Invoice Events - **`invoice.created`** - Triggered when a new invoice record is created. - **`invoice.balance_updated`** - Triggered when the outstanding balance of an invoice changes (for example
 - [Customer Events](https://docs.resolvepay.com/merchant-api/openapi/webhooks/customer-events.md): ### Customer Events - **`customer.created`** - Triggered when a new customer record is created. - **`customer.status_updated`** - Triggered when a customer's status changes (for example, when a custom
 - [Order Events](https://docs.resolvepay.com/merchant-api/openapi/webhooks/order-events.md): ### Order Events - **`order.created`** - Triggered when a new order record is created. - **`order.updated`** - Triggered when an order is updated.
 - [Payment Events](https://docs.resolvepay.com/merchant-api/openapi/webhooks/payment-events.md): ### Payment Events - **`payment.created`** - Triggered when a new payment record is created. - **`payment.status_changed`** - Triggered when the status of a payment changes.
 - [Payout Events](https://docs.resolvepay.com/merchant-api/openapi/webhooks/payout-events.md): ### Payout Events - **`payout.created`** - Triggered when a new payout record is created. - **`payout.status_changed`** - Triggered when the status of a payout changes (for example, pending, in transi
 - [Verifying Webhook Signatures](https://docs.resolvepay.com/merchant-api/openapi/webhooks/verifying-webhook-signatures.md): ## Verifying Webhook Signatures To ensure webhook requests are genuine and coming from Resolve, you should verify the webhook signature. Resolve includes a signature in the `x-webhook-signature` heade
 - [JavaScript Example](https://docs.resolvepay.com/merchant-api/openapi/webhooks/javascript-example.md): ### JavaScript Example ```javascript const crypto = require('crypto'); function verifyWebhookSignature(payload, signature, secret) { const computedSignature = crypto .createHmac('sha256', secr
 - [Retry Policy](https://docs.resolvepay.com/merchant-api/openapi/webhooks/retry-policy.md): ## Retry Policy If your webhook endpoint doesn't respond successfully (non-2xx status code or connection error), Resolve will automatically retry sending the webhook notification. The retry schedule f
 - [Best Practices](https://docs.resolvepay.com/merchant-api/openapi/webhooks/best-practices.md): ## Best Practices - Always verify webhook signatures to ensure the request is from Resolve - Respond with a `200` status code as quickly as possible to acknowledge receipt - Process webhook events asy
 - [GET /webhooks](https://docs.resolvepay.com/merchant-api/openapi/webhooks/listwebhookendpoints.md): Returns a list of all configured webhook endpoints for the merchant account.
 - [POST /webhooks](https://docs.resolvepay.com/merchant-api/openapi/webhooks/upsertwebhookendpoints.md): Create a new webhook endpoint or update an existing one. If an endpoint with the same URL already exists, it will be updated with the new event subscriptions.
 - [DELETE /webhooks](https://docs.resolvepay.com/merchant-api/openapi/webhooks/deletewebhookendpoints.md): Delete a webhook endpoint and all its event subscriptions.
