Open Inventory / Docs
EndpointsWebhooks

Receive an outgoing Inventory event

The API runs on your application instance. Schemas and field names come directly from the OpenAPI specification. Session-authenticated requests require a session on that instance.

This operation documents the HTTP request Inventory sends to each subscribed target; it is not an endpoint hosted by Inventory. Delivery is at least once, so receivers must deduplicate by the stable event id. Return any 2xx status to acknowledge the exact request body.

Header Parameters

X-Inventory-Event-Id*string

Stable event UUID; use it as the receiver's deduplication key.

Formatuuid
X-Inventory-Event-Type*string

Event name, also present in the JSON envelope.

Value in"inventory.resource.created""inventory.resource.updated""inventory.resource.deleted""inventory.resource.merged""inventory.stock.movement.created""inventory.webhook.test"
X-Inventory-Delivery-Id*string

UUID of this endpoint-specific delivery record.

Formatuuid
X-Inventory-Timestamp*string

Unix timestamp also carried as t in the signature header.

Match^[0-9]+$
X-Inventory-Signature*string

t=<unix>,v1=<hex> where v1 is the lowercase hexadecimal HMAC-SHA256 of <unix>.<exact raw request body> using the endpoint signing secret. Verify the raw bytes before parsing JSON.

Match^t=[0-9]+,v1=[a-f0-9]{64}$

Request Body

application/json
  1. body
id*string

Stable event identifier used by receivers for deduplication across retries.

Formatuuid
type*WebhookOutboundEventType

Event name sent in a delivery. Test actions use a dedicated type that cannot be subscribed to.

Value in"inventory.resource.created""inventory.resource.updated""inventory.resource.deleted""inventory.resource.merged""inventory.stock.movement.created""inventory.webhook.test"
apiVersion*string
occurredAt*string
Formatdate-time
actor*|

Identity responsible for the event when one is available.

data*

Event-specific snapshot: create, update, and delete events include resource; updates also include changedFields; merges include keptResource, removedResource, keptResourceId, and removedResourceId; stock movement events include the immutable movement snapshot; test deliveries include test: true and a human-readable message.

Response Body

Event acknowledged; Inventory marks the delivery successful.

Example Requests
POST/inventoryEvent
Request Body
application/json
{  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "type": "inventory.resource.created",  "apiVersion": "1",  "occurredAt": "2019-08-24T14:15:22Z",  "actor": "string",  "data": {}}
Header Parameters
{  "X-Inventory-Event-Id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "X-Inventory-Event-Type": "inventory.resource.created",  "X-Inventory-Delivery-Id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "X-Inventory-Timestamp": "string",  "X-Inventory-Signature": "t=1786608000,v1=7d6f2dba7b8d83cd0c87bfce4c34f35621e96fe930a29d309926f7156bdb976c"}