POST to your endpoint when something happens to one of the store’s orders. The webhook carries the full order (order), the same object as Get an order at the moment of the event, in your key’s language. One call is enough: there is nothing to fetch.
Payload
store_idis the store of the order. It tells your stores apart when you use an integrator key.orderisnullonly if XFaster could not build it. Then fetch it byurl.- Headers you gave XFaster (for example your own
Authorization) come with every webhook. See POS-hosted mode.
Verify the signature
X-XFaster-Signature: t=<unix seconds>,v1=<hex> where v1 = HMAC-SHA256(webhook_secret, t + "." + raw_body).
Replying and retries
- Answer any
2xxwithin 5 seconds, then do the work. - Otherwise XFaster retries after about 10 s, 30 s, 2 min, 5 min and 15 min (retries run once a minute), then stops.
- Webhooks can arrive twice or out of order: skip an
event_idyou already handled, and ignore anorderwhoseupdated_atis older than the one you have. - Safety net: List orders with
updated_sinceevery minute. - The store tablet still rings for every new order, so a failed webhook never loses an order.
