The signature never verifies
The signature never verifies
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.Every delivery is rejected as too old
Every delivery is rejected as too old
Your server’s clock is off. Synchronise it with NTP; the timestamp check compares
t with your clock.The same event arrives twice
The same event arrives twice
That is expected: delivery is at least once. Store each event id you have processed and ignore repeats.
Deliveries keep being retried although my handler works
Deliveries keep being retried although my handler works
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.I stopped receiving events
I stopped receiving events
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.An event refers to an order my state does not know yet
An event refers to an order my state does not know yet
Events can arrive out of order. Read the order with
GET /orders/{order_id} and use its current status.