Skip to main content
Not available yet. Webhooks are being built and are not part of the API today: there is no way to subscribe yet, and no events are sent. This page describes the planned design so you can prepare; details may change before release.
Verify against the raw request body, before any JSON parsing or re-encoding; many frameworks hand you a parsed body by default. Check that you sign t + "." + body (with the dot), use the secret of the right endpoint and environment, and compare hex strings. See Signature verification.
Your server’s clock is off. Synchronise it with NTP; the timestamp check compares t with your clock.
That is expected: delivery is at least once. Store each event id you have processed and ignore repeats.
Your endpoint is probably answering too slowly or with a non-2xx status. Acknowledge with 2xx straight away and process the event afterwards. Point the subscription at the final URL: any status other than 2xx counts as a failure.
After repeated failures an event is dead-lettered and not sent again. Fix your endpoint, then catch up by reading your orders with GET /orders and since. See Retries and dead-lettering.
Events can arrive out of order. Read the order with GET /orders/{order_id} and use its current status.