Order refunded (Snapcaster → Platform)
Sent when a shipped or delivered Order (or a subset of its lines) is refunded, regardless of initiator (the echo back to the caller is harmless under `event_id` dedup). Reuses the `order.created` envelope, signing, and delivery semantics (see https://developers.snapcaster.ca/guide/webhook-signing). Routed only to order-family Subscriptions (`orders` / `both`); inventory-family Platforms receive the compensating positive `inventory.adjusted` instead, and only when `restock=true`. Refunds are repeatable (line 3 today, line 7 next week): each Refund is its own event with its own `event_id`, deduped per Refund. A Refund identifies lines, not money amounts.
Delivery payload
The signed `order.refunded` event.
{ "event_id": "evt_sandbox_01K4A9FY6Z3N8H2W5S7M1Q0CVR", "type": "order.refunded", "created_at": "2026-09-04T20:12:00.000Z", "data": { "order_id": "ord_sandbox_01K4A8Y6D4QJH2N3P5R7S9T0VW", "seller_id": 42, "restock": true, "lines": [ { "sku_id": 427286, "external_ref": "platform-listing-1042", "quantity": 1 } ] }, "api_version": "2026-07"}Signature headers
| Field | In | Type | Constraints | Meaning | Example |
|---|---|---|---|---|---|
X-Snapcaster-Timestamprequired | header | string | None | Unix seconds when the request was signed; reject if outside a ±5 minute window. | string (generated) |
X-Snapcaster-Signaturerequired | header | string | None | `sha256=` + lowercase hex of HMAC_SHA256(signingSecret, timestamp ‖ raw request body). | string (generated) |
Envelope fields
| Field | Type | Constraints | Meaning | Example |
|---|---|---|---|---|
event_idrequired | string | None | Globally unique, stable across retries. Refunds are repeatable: each Refund is its own event with its own id; dedup is per-Refund, not per-Order (STABLE). | evt_sandbox_01K4A9FY6Z3N8H2W5S7M1Q0CVR |
typerequired | string | allowed values: order.refunded | Event discriminator (STABLE). | order.refunded |
created_atrequired | string | None | ISO-8601 UTC instant of the Refund itself (STABLE). | 2026-09-04T20:12:00.000Z |
datarequired | object | None | The operation or event payload. | {
"order_id": "ord_sandbox_01K4A8Y6D4QJH2N3P5R7S9T0VW",
"seller_id": 42,
"restock": true,
"lines": [
{
"sku_id": 427286,
"external_ref": "platform-listing-1042",
"quantity": 1
}
]
} |
api_versionrequired | string | allowed values: 2026-07 | The dated partner API version this payload was serialized at: the version frozen when the delivery was enqueued (never the live pin), so every retry carries the same value and byte-identical bytes. Added additively per the tolerant-reader rule; see https://developers.snapcaster.ca/guide/api-versioning (STABLE). | 2026-07 |
Receiver response
200 - Receiver acked. Return any 2xx after durably accepting the event (verified + persisted/enqueued).