Sent BY Ewity TO your registered
inventory_webhook_url. This
is the inventory webhook URL — separate from the order events
webhook. Identify the event by theX-Eventheader.
Fires when one or more items at one or more online locations may have
changed — stock crossing in/out of "in stock", catalogue toggles
adding or removing items from a storefront, bulk CSV imports, etc.
The event is intentionally uniform across causes: you receive a
list of (online_location_id, product_id, variant_id) triples and
you re-fetch via POST /locations/{id}/catalogue/lookup
to learn the new state.
Multiple changes that pile up between deliveries are coalesced —
a CSV import of 1000 items arrives as one webhook with a long
items array, not 1000 webhooks. Build your receiver around that.
Recommended flow
- Receive the webhook.
- Group
items[].variant_idbyonline_location_id. - For each
(online_location_id, variant_ids)group, call
POST /locations/{online_location_id}/catalogue/lookup
with{variant_ids}. - Upsert each returned product (and its nested variants) into your
local catalogue cache. Variants you asked for that don't appear in
the response have been removed — delete them from your cache.
How to dedupe
Same payload may be delivered more than once. Dedupe by
(online_location_id, variant_id, occurred_at) if you persist a
request log; otherwise the lookup-and-upsert pattern above is
naturally idempotent.
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
2XXReceiver acknowledged.