Skip to content
snapcasterDevelopers

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.

Delivery payload: Signed Refund Delivery payload
{
"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

FieldInTypeConstraintsMeaningExample
X-Snapcaster-TimestamprequiredheaderstringNoneUnix seconds when the request was signed; reject if outside a ±5 minute window.string (generated)
X-Snapcaster-SignaturerequiredheaderstringNone`sha256=` + lowercase hex of HMAC_SHA256(signingSecret, timestamp ‖ raw request body).string (generated)

Envelope fields

FieldTypeConstraintsMeaningExample
event_idrequiredstringNoneGlobally 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
typerequiredstringallowed values: order.refundedEvent discriminator (STABLE).order.refunded
created_atrequiredstringNoneISO-8601 UTC instant of the Refund itself (STABLE).2026-09-04T20:12:00.000Z
datarequiredobjectNoneThe 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_versionrequiredstringallowed values: 2026-07The 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).