Skip to main content
NowOS POSTs every event to the webhook URL you registered, as one envelope:

Verifying the signature

Each delivery carries:
v1 is HMAC-SHA256(webhookSecret, "<t>.<rawBody>") in lowercase hex. Recompute it over the raw body bytes (never a re-serialization) and compare in constant time. Reject timestamps older than ~5 minutes to kill replays.

Delivery and ordering

  • Respond 2xx within 10 seconds to acknowledge. Anything else is retried at 1 m, 5 m, 30 m, 2 h, 12 h, then parked.
  • Delivery order is not guaranteed (retries interleave). sequence is monotonic per location and order events carry orderVersion — drop anything older than what you already applied. Each event is self-sufficient; you never need the previous one.
  • id is your idempotency key: the same event re-delivered carries the same id and the exact same body.

Events

Order-derived events fire only for orders with tables — you never see takeaway tickets.