Skip to main content
XFaster sends an HTTPS 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_id is the store of the order. It tells your stores apart when you use an integrator key.
  • order is null only if XFaster could not build it. Then fetch it by url.
  • 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 2xx within 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_id you already handled, and ignore an order whose updated_at is older than the one you have.
  • Safety net: List orders with updated_since every minute.
  • The store tablet still rings for every new order, so a failed webhook never loses an order.