Order created (Snapcaster → Platform)
Sent when a buyer checks out: the cart fans out into one order per Seller, and Snapcaster POSTs one `order.created` event per Seller-order to the Platform’s registered webhook endpoint. Each event carries `seller_id` so the Platform can route it to the right store. Signing and delivery semantics (at-least-once, retries, no ordering) are specified at https://developers.snapcaster.ca/guide/webhook-signing and https://developers.snapcaster.ca/guide/path-b#delivery-semantics. Dedup on `event_id`. Fields are tagged STABLE / PROVISIONAL; treat the payload as open and ignore unknown fields.
Delivery payload
The signed `order.created` event.
{ "event_id": "evt_sandbox_01K4A90CFV7X8B2MD6J3H5Q1ZR", "type": "order.created", "created_at": "2026-09-04T18:42:18.000Z", "data": { "order_id": "ord_sandbox_01K4A8Y6D4QJH2N3P5R7S9T0VW", "seller_id": 42, "created_at": "2026-09-04T18:42:17.000Z", "currency": "CAD", "customer": { "name": "Alex Morgan", "email": "alex.morgan@example.test", "shipping_address": { "line1": "123 Sandbox Avenue", "line2": "Unit 4", "city": "Toronto", "province": "ON", "postal_code": "M5V 2T6", "country": "CA" } }, "lines": [ { "sku_id": 427286, "product_id": 24692, "quantity": 1, "unit_price": 2499, "name": "Lightning Bolt", "set": "Magic 2011", "condition": "Near Mint", "external_ref": "platform-listing-1042", "language": "English", "finish": "Non-Foil" } ], "totals": { "subtotal": 2499, "shipping": 599, "tax": 403, "grand_total": 3501 }, "tax": { "lines": [ { "label": "HST", "rate": 0.13, "amount": 403 } ] }, "shipping": { "method": "Tracked parcel", "cost": 599 }, "buyer_notes": "Please protect the card with a top loader." }, "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; the idempotency/dedup key (STABLE). | evt_sandbox_01K4A90CFV7X8B2MD6J3H5Q1ZR |
typerequired | string | allowed values: order.created | Event discriminator; future lifecycle events reuse this envelope (STABLE). | order.created |
created_atrequired | string | None | ISO-8601 UTC instant the event was generated; unchanged across retries (STABLE). | 2026-09-04T18:42:18.000Z |
datarequired | object | None | The operation or event payload. | {
"order_id": "ord_sandbox_01K4A8Y6D4QJH2N3P5R7S9T0VW",
"seller_id": 42,
"created_at": "2026-09-04T18:42:17.000Z",
"currency": "CAD",
"customer": {
"name": "Alex Morgan",
"email": "alex.morgan@example.test",
"shipping_address": {
"line1": "123 Sandbox Avenue",
"line2": "Unit 4",
"city": "Toronto",
"province": "ON",
"postal_code": "M5V 2T6",
"country": "CA"
}
},
"lines": [
{
"sku_id": 427286,
"product_id": 24692,
"quantity": 1,
"unit_price": 2499,
"name": "Lightning Bolt",
"set": "Magic 2011",
"condition": "Near Mint",
"external_ref": "platform-listing-1042",
"language": "English",
"finish": "Non-Foil"
}
],
"totals": {
"subtotal": 2499,
"shipping": 599,
"tax": 403,
"grand_total": 3501
},
"tax": {
"lines": [
{
"label": "HST",
"rate": 0.13,
"amount": 403
}
]
},
"shipping": {
"method": "Tracked parcel",
"cost": 599
},
"buyer_notes": "Please protect the card with a top loader."
} |
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).