> For the complete documentation index, see [llms.txt](https://developer.emporix.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.emporix.io/ce/system-management/webhooks-user-guide.md).

# Webhook Event Publishing

Here you can find an overview of the Emporix Webhook Service, along with its features and benefits.

{% hint style="info" %}

* Looking for code tutorials? Check out the [Webhook Service guide](/api-references/api-guides/webhooks/webhook-service/webhooks-tutorial.md).
* Looking for API reference? Check out the [Webhook Service](/api-references/api-guides/webhooks/webhook-service.md) in the Emporix API Reference.
  {% endhint %}

### Purpose

To move towards an event-driven architecture, we are introducing the Webhook Event Publishing functionality. This feature, implemented through the Emporix API Webhook Service, allows external systems to subscribe to internal events published by the Commerce Engine. Thanks to the Webhook Service, you do not need to call specific API endpoints to look for recent changes in services — you will be automatically notified instead.

### Features

The Webhook Service introduces the following features:

| Feature                           | Description                                                                                                                                                                                                                                                                                                                                     |
| --------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Events**                        | All actions that take place in the Emporix API are considered events. For example, creating and updating a catalog in the Emporix API Catalog Service are both considered events. You can also subscribe to Schema custom entity events (`schema.custom-instance-created`, `schema.custom-instance-updated`, `schema.custom-instance-deleted`). |
| **Event subscription management** | You can manage notifications for your Emporix tenant by subscribing to and unsubscribing from particular events.                                                                                                                                                                                                                                |
| **Event Gateway**                 | The Event Gateway is a dashboard where you pre-configure endpoints to receive notifications about events you have subscribed to in the Webhook Service. The Event Gateway acts as an intermediary, as it passes notifications from the Webhook Service directly to your tenant.                                                                 |
| **Statistics**                    | You can retrieve statistics for the Shared Account strategy on the number of events successfully sent to the endpoints that you earlier configured in the Event Gateway.                                                                                                                                                                        |
| **Strategy configuration**        | Possible to configure within the Emporix Management Dashboard if Shared Account, Licensed Account - Svix, or Other - HTTP strategy is used.                                                                                                                                                                                                     |
| **Multiple webhook targets**      | For the Other - HTTP strategy, you can register multiple HTTP targets for the same event type. Each target can have its own URL, headers, HMAC secret, optional JsonPath filter, and payload field selection.                                                                                                                                   |
| **JsonPath filtering**            | For the Other - HTTP strategy, optional Jayway JsonPath predicates let you deliver an event to a target only when the sanitized payload matches your condition. Invalid filters are rejected at configuration time.                                                                                                                             |

#### Webhooks strategies

You can apply one of the following strategies to your tenant:

* Svix-Shared - default strategy allowing you to use the shared Svix subscription offered by Emporix
* Svix - strategy that allows you to connect your own Svix licence
* HTTP - strategy that lets you receive event notifications as HTTP requests to one or more declared URLs, with optional JsonPath filters per target

### Overview

The Emporix Webhook Event Publishing process consists of the following sequence of events:

1. When an event that you subscribed to takes place, a message is sent to the Webhook Service.
2. The Webhook Service forwards the message to the Event Gateway.
3. The Event Gateway matches the event to your configured HTTP or Svix endpoints for that event type. For HTTP multiple webhook targets, optional JsonPath filters are evaluated against the sanitized payload. Targets with no filter receive all events of the subscribed type; inactive targets are skipped.

{% hint style="info" %}
For the HTTP strategy, you can store multiple `eventsConfiguration` entries for the same event type.
{% endhint %}

{% hint style="success" %}
For example, if a catalog is created in the Emporix environment, a notification is sent to the Webhook Service. The service passes the message to the Event Gateway. If you configured an endpoint for catalog creation beforehand, you receive the notification that a new catalog has been created. With HTTP JsonPath filters, you can also limit delivery—for example, send only `schema.custom-instance-updated` events where `@.type == 'contract'`.
{% endhint %}

#### Filter evaluation (HTTP)

For the HTTP strategy, after the payload is sanitized to the allowlisted fields for that event type:

1. The service finds `eventsConfiguration` entries for the event type.
2. Inactive entries are skipped (no filter evaluation, delivery, or retries for that entry).
3. Optional JsonPath `filter` values are evaluated against the sanitized payload.
4. Empty or omitted filters match every event of that type.
5. Invalid JsonPath expressions are rejected with HTTP `400` when you save the configuration and are never stored.

For Management Dashboard setup, see [Webhooks](/ce/management-dashboard/administration/webhooks.md). For request and response examples, see the [Webhook Service Tutorials](/api-references/api-guides/webhooks/webhook-service/webhooks-tutorial.md).

<figure><img src="/files/dbVn4CVKG1x3VcbA3wap" alt=""><figcaption></figcaption></figure>

{% hint style="danger" %}
With the Svix-shared strategy, the maximum number of events per tenant is limited to 5000/month. The limit resets on the first day of each month. After you exceed the set limit, the requests do not get sent. For further information about the limits, please contact the Sales department at <sales@emporix.com>.
{% endhint %}

{% hint style="info" %}
For more information about webhooks usage, see [Webhooks](/ce/management-dashboard/administration/webhooks.md).\
For more information on HMAC configuration, see [HTTP Webhook Strategy - HMAC Configuration](/ce/system-management/webhooks-user-guide/hmac-configuration.md).\
To see example integration with external application through webhooks, see:

* [HTTP Webhook Strategy - Integration with Azure Service Bus](/ce/system-management/webhooks-user-guide/azure-service-bus-integration.md)
* [HTTP Webhook Strategy - Integration with Amazon Simple Queue Service (SQS)](/ce/system-management/webhooks-user-guide/amazon-sqs-integration.md)
  {% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://developer.emporix.io/ce/system-management/webhooks-user-guide.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
