POST /api/v1/webhooks. See Webhooks
for subscription setup, signature verification, and delivery behavior.
Events
Historical imports and unchanged provider duplicates do not emit lifecycle
events. If one marketplace notification changes status and other fields,
OmniCommerce emits one
order.status.changed event with all changed paths.
Marketplace cancellation is a status transition to canceled, not an
order.deleted event.
Identity and source
subject.id is the stable OmniCommerce order ID. Marketplace identity is
scoped by all of:
source.accountId is the exact connected store that produced the order. A
missing account is never used as a wildcard. providerEventId and
providerEventType can be null when the provider does not supply them or when
the change comes from a scheduled sync or developer API call.
source.system is one of:
Statuses and money
data.order.status is one of:
marketplaceStatus. Monetary values
are objects with a decimal string and ISO 4217 currency:
Order snapshot
Each
items[] entry includes stable internal and external line IDs, matched
productId, marketplace item and variant IDs, SKU aliases, name, status,
quantity, currency, unit/paid prices, line total, and historical unitCost.
Money is a decimal string plus currency; unavailable values are null.
changedFields contains public field paths such as status,
marketplaceStatus, totals.total, itemCount, quantity, or items. Internal sync
metadata and buyer PII never appear in this list.
Example status change
Example deletion
Deletion events contain stable identity only; they do not repeat a stale financial snapshot.Consumer rules
- Deduplicate by event
id, not by provider event ID. - Partition order state by
organizationIdandsubject.id. - Ignore an event when its
resourceVersionis not newer than the last applied version for that subject. - Replace the local integration view from
data.order; do not merge raw marketplace payloads into the standardized resource. - Treat unknown additive fields as forward-compatible and ignore them.
- Remove or tombstone the local order integration record on
order.deleted.