---
title: "Webhooks"
description: "Send selected Enad events to a custom HTTP endpoint."
---

<img src="/assets/integrations/webhooks.svg" alt="Webhooks" className="h-16 w-auto rounded-lg p-2 dark:bg-white" />

The Webhooks integration sends selected Enad events to your own HTTP endpoint. When a product, stock, price, or other record changes, Enad POSTs the event to the URL you registered.

:::note
  This page covers outgoing events configured under **System → Integrations**.
  The separate **System → Webhooks** page is used for incoming provider webhooks.
:::

:::tip
  [Storefront revalidate](/storefront/revalidate/revalidate) provides a dedicated
  workflow for storefront cache revalidation.
:::

## Requirements

Required configuration:

- A publicly reachable HTTPS endpoint
- The event types you want delivered
- An optional authentication header name and value

## Configuration

Register a webhook in Enad Admin: open the app, go to **System → Integrations → Add new integration**, and follow the dialog. The setup includes the endpoint URL and the enabled events.

Supported event types cover products, variants, tags, categories, markets, store groups, prices, stocks, brands, series, users, and organisations.

Additional settings include:

- Store group filters for price-update deliveries
- Market filters for price-update deliveries
- Delivery delay

Empty market or store group filters include matching updates for all markets or store groups.

Connection checks are available under **Status → Integration validation**. The refresh control runs the checks again.

## Event structure

Every event is a JSON object with two keys, `event_type` and `payload`. The `event_type` follows the pattern `category.type`, and `payload` holds the data.

```json
{
  "event_type": "something.happened",
  "payload": {
    "x": "y"
  }
}
```

## Authentication

Enad sends the configured header with every request. Only header authentication is supported: you choose the header key and value, such as `Authorization` with `Bearer xqwerty12345`, or a custom key like `x-api-key` or `api-key`.

The header value is a secret and should be rotated if exposed.

## Delivery

### Ack deadline

Enad drops the event and marks the delivery as failed if it does not receive a 200 response within 15 seconds. The delivery is then retried.

### Ordering

Events are not guaranteed to arrive in chronological order. Your integration should handle events arriving out of order.

### Retries

A failed delivery is retried up to 5 times before Enad considers it a failure.

## Use cases

Common uses are revalidating your frontend, pushing stock and price updates into external systems, syncing product information into external systems, and alerting.
