API reference · Webhooks
Order dispatch overdue
order.dispatch_overdueSnapcaster sends this event once per order, when the order has not shipped by its ship-by deadline, dispatch.deadline_at: the end of the third Toronto business day after it was placed. Snapcaster pauses the seller payout for the order at the same moment. The order stays open, and marking it shipped does not lift the pause: dispatch.payout_paused stays true until Snapcaster reviews the order and releases the payout. Ship it, report its tracking, and have the seller contact Snapcaster support. Snapcaster marks orders overdue only in production, so in the sandbox you can read dispatch.overdue_at and dispatch.payout_paused but never receive order.dispatch_overdue.
If you miss the event, the order comes back in your next syncToken poll, and GET /orders/{orderId} shows dispatch.overdue_at and dispatch.payout_paused.
The envelope, signing and retries match order.created; see https://developers.snapcaster.ca/guide/webhook-signing and https://developers.snapcaster.ca/guide/path-b#delivery-semantics. Subscriptions orders and both receive it; an inventory subscription never does. Deduplicate by event_id. Events can arrive out of order, so compare created_at.
Example
{
"event_id": "evt_sandbox_01K4B2M7Q9T3V6X8Z1C4E7G0JN",
"type": "order.dispatch_overdue",
"created_at": "2026-09-11T05:00:00.000Z",
"data": {
"order_id": "ord_sandbox_01K4A8Y6D4QJH2N3P5R7S9T0VW",
"seller_id": 42,
"deadline_at": "2026-09-11T03:59:59.999Z",
"overdue_at": "2026-09-11T05:00:00.000Z",
"payout_paused": true
},
"api_version": "2026-10"
}Signature headers
Snapcaster sends a POST to your webhook endpoint with these headers. Webhook signing shows how to verify them.
X-Snapcaster-Timestampstring requiredUnix seconds when the request was signed; reject if outside a ±5 minute window.
X-Snapcaster-Signaturestring requiredsha256=+ lowercase hex of HMAC_SHA256(signingSecret, timestamp ‖ raw request body).
Delivery payload
The signed order.dispatch_overdue event.
Payload type: Order
Envelope fields
event_idstring requiredA globally unique event id that stays the same across retries. Use it to deduplicate deliveries (STABLE).
Example
evt_sandbox_01K4B2M7Q9T3V6X8Z1C4E7G0JNtypestring requiredThe event type (STABLE).
Constraints: allowed values:
order.dispatch_overdueExampleorder.dispatch_overduecreated_atstring requiredISO-8601 UTC instant of the change the event reports; unchanged across retries (STABLE).
Example
2026-09-11T05:00:00.000ZdataDispatchrequiredOverdue Event Data The operation or event payload.
api_versionstring requiredThe dated API version used for this payload, frozen when Snapcaster queued the delivery. Changing the platform pin does not change queued events or retries; they keep the same version. See https://developers.snapcaster.ca/guide/api-versioning (STABLE).
Constraints: allowed values:
2026-10Example2026-10
Payload fields
data.string requiredorder_id The order that missed its ship-by deadline (STABLE).
Example
ord_sandbox_01K4A8Y6D4QJH2N3P5R7S9T0VWdata.integer requiredseller_id The seller that owns the order. Use this id to route the event to the right store (STABLE).
Example
42data.string requireddeadline_at The ship-by deadline the order missed, the order read’s
dispatch.deadline_at(STABLE).Constraints: format: date-time Example
2026-09-11T03:59:59.999Zdata.string requiredoverdue_at When Snapcaster marked the order overdue (STABLE).
Constraints: format: date-time Example
2026-09-11T05:00:00.000Zdata.boolean requiredpayout_paused True while the seller payout for this order is paused. An overdue dispatch pauses it, and so can a Snapcaster review of the order; shipping does not lift it, only Snapcaster releasing the payout does (STABLE).
Constraints: allowed values:
trueExampletrue
Receiver response
200 - Return any 2xx after verifying the event and durably accepting it. This event moves no stock, so its 2xx acknowledges no sale and leaves every stock hold as it was.