For the complete documentation index, see llms.txt. This page is also available as Markdown.

Webhooks

Enable and configure webhooks to get notified about events in the system.

The Webhooks section allows you to manage available webhooks that you can connect to other systems you use in your company.

Webhooks is a convenient tool that allows you to subscribe to certain events that are happening in the Emporix Commerce Engine to get instant information about them. For example, you might want to subscribe to all instances when an order is created in the system and send a message about it to your external order management application for further processing.

Configuring webhook service

To receive notifications about events happening in the system, firstly configure the webhook service according to your needs. To choose the relevant strategy, follow these steps:

1

Go to Administration -> Webhooks.

2

Select one of the available strategies.

3

Depending on the selected option, you might be asked to provide more details to enable the notifications. Confirm with Active.

Webhook strategies

Emporix offers the following strategies you can choose for the webhook event gateway:

You can have only one strategy active at a time.

Shared account - SVIX strategy

The default solution to handle webhook events that comes with Commerce Engine is Svix-shared strategy. You can use this strategy out-of-the-box up to the set monthly limit.

Svix Dashboard

With Svix-shared webhook strategy, you get access to Svix dashboard. This is the place to connect the webhooks to specific endpoints.

1

In Administration -> Webhooks, choose Open Svix Dashboard. You're redirected to Svix.

2

Go to Endpoints and choose Add endpoint.

  • In Endpoint URL, provide a URL of the system you want to connect the webhooks to.

  • Choose the event types of your interest and choose Create to start receiving notifications.

Now, in Svix Dashboard, you can see all the events of the types that you have subscribed to. You are able to check the payload details of each particular event message sent to the external system. You can also check the schema of a particular event type under the Event catalog.

Viewing your webhook usage

You can keep the webhooks usage under control by checking the usage statistics.

In Administration -> Webhooks, you can see your current monthly usage. By choosing the Webhook usage, you get a detailed overview of the webhooks usage in a particular period.

Licensed account - SVIX strategy

Choose the Svix strategy if you need more flexibility and want to connect your independent Svix subscription to Commerce Engine system. To activate this strategy, provide an API key that you get directly from Svix. With the Svix strategy, the monthly webhook traffic limit depends on your own Svix plan.

Other - HTTP strategy

This strategy allows you to receive webhook event notifications as HTTP POST requests. When you activate the HTTP strategy, provide a global destination URL that is used when an event type has no custom endpoints configured.

HTTP webhook strategy configuration
HTTP strategy settings in Management Dashboard

Optionally, you can secure HTTP communication with an HMAC secret. The HMAC (keyed-Hash Message Authentication Code) security layer verifies if the checksum of data that came to the destination point is correct. HMAC is a type of authentication technique that uses a hash function and a secret key. You can use it to sign a request with a shared secret.

For more information on how to secure the requests with HMAC encryption, see HTTP Webhook Strategy - HMAC Configuration.

With Custom Headers, you can define a list of headers which are attached to the API request sent through the webhooks. For example, use custom headers to provide the following:

  • authentication and authorization measures: API keys, bearer tokens, or other security tokens

  • context information: some additional information about the context of a request, for example the request origin, the response preferred language, or user-defined preferences

Moreover, each HTTP request has emporix-event-publish-time header attached which contains timestamp in RFC3339 UTC "Zulu" format and provides information about the time at which the message was published.

Multiple webhook targets

With the HTTP strategy, you can register several HTTP targets for the same event type. Each target can have its own destination URL, HMAC secret, custom headers, optional JsonPath filter, and payload field selection.

To configure endpoints for a subscribed event, select the event from the list and choose the Edit icon. The event dialog has two tabs:

  • Event defaults – default payload fields inherited by endpoints that do not define a custom field selection

  • Endpoints – list of HTTP targets for this event type

Event defaults tab with payload field toggles
Event defaults — default payload fields for the event type

When at least one custom endpoint is configured, an info banner indicates that the global destination URL is not used for that event type.

Adding and editing endpoints

On the Endpoints tab, choose + Add to register another target for the same event. For each endpoint you can configure:

  • Name – descriptive label for the integration

  • Destination URL – required HTTP endpoint that receives the event

  • HMAC secret – optional per-endpoint signing secret; when set, it overrides the global HTTP secret for this target

  • Custom headers – optional key/value headers for this target

  • Filter (JsonPath) – optional Jayway JsonPath predicate evaluated against the event payload

  • Payload fieldsInherit event defaults or Customize for this endpoint

  • Active – delivery toggle; when off, this endpoint does not receive events

Endpoints tab with endpoint editor and JsonPath filter
Endpoints — multiple HTTP targets for a single event type

JsonPath filters

The Filter (JsonPath) field accepts an optional Jayway JsonPath predicate. Filters are evaluated against the sanitized event payload.

  • If the filter is empty or omitted, all events of the subscribed event type match the endpoint.

  • If the filter is set, the endpoint receives the event only when the predicate evaluates to true.

  • Invalid or malformed JsonPath expressions are rejected with a validation error and are not saved.

Use the predicate form $[?(@.<path> <operator> <value>)]. Match the path to the field shape in the event payload:

  • Use a top-level field when the value is a string – for example @.status on order events ("status": "DECLINED").

  • Use a nested path when the value sits on an object – for example @.status.value on quote events, where status is { "value": "DECLINED", ... }.

The JsonPath help overlay inserts the string-field examples. Adjust the path when you filter a nested object.

Example
Expression

Match by status (string field)

$[?(@.status == 'DECLINED')]

Match nested status (quotes)

$[?(@.status.value == 'DECLINED')]

Custom entity type (schema.custom-instance-*)

$[?(@.type == 'contract')]

Match by code

$[?(@.code == 'abc')]

AND (all conditions)

$[?(@.status == 'DECLINED' && @.channel == 'web')]

OR (any condition)

$[?(@.status == 'DECLINED' || @.status == 'CANCELLED')]

AND + OR with grouping

$[?(@.channel == 'web' && (@.status == 'DECLINED' || @.status == 'CANCELLED'))]

JsonPath filter help overlay with examples
JsonPath filter help with clickable examples

For API request and response examples, including invalid filter validation (400) and multi-entry configuration, see the Webhook Service Tutorials.

Subscribing to webhook events

Apart from choosing the webhook strategy that is right for you, decide which specific events you'd like to listen to. You can subscribe to Commerce Engine events across services, including Schema custom entity events such as schema.custom-instance-created, schema.custom-instance-updated, and schema.custom-instance-deleted.

1

In Administration -> Webhooks, expand the service of your interest to see the list of available events. Turn on the slide under Status column to switch the webhook on.

2

Go to edit mode by choosing the Edit icon.

Webhook event subscription editor
Edit a webhook event subscription
3

Select the attributes you'd like to see in the webhook payload message. Confirm with Update subscription.

Payload attribute selection for a webhook subscription
Select payload attributes for the subscription

For the HTTP strategy, after you subscribe to an event, you can open the same event dialog to manage Event defaults and Endpoints. Pair a Schema custom-instance subscription with an optional JsonPath filter on type when you only want specific custom entity types delivered to a target.

productid
price with associated sites
number of emitted events
sites the event was emitted to

123

$10 - site A, B

2

A, B

234

$10 - site A, $15- siteA, B, C

3

A, B, C

345

no price

0

none

For more information on Webhooks, see the following documentation:

Last updated

Was this helpful?