POST request to the endpoint(s) you configure.
The event payload reuses the same Order object returned by the Merchant API
V2 Get order endpoint, so you only need
to model the order shape once.
Configuring endpoints
Add and manage endpoints in your admin dashboard under Settings → Apps → Webhooks. For each endpoint you choose:- Endpoint URL — an
https://URL that acceptsPOSTrequests. - Events — which events this endpoint subscribes to.
Events
Payload
Every delivery has the same envelope.data is the V2 Order object.
Headers
Verifying signatures
Each request is signed with your endpoint’s signing secret using HMAC-SHA256. TheX-Take-Signature header looks like:
t— the Unix timestamp (seconds) when the request was signed.v1— the HMAC-SHA256 of{t}.{raw_request_body}, hex-encoded.
v1 with your secret over {t}.{raw_body} and compare
using a constant-time comparison. Reject requests whose timestamp is too old
(e.g. older than 5 minutes) to defend against replays.
Responding
Return a2xx status as soon as you’ve received the event. Do any heavy
processing asynchronously so you can respond quickly.
Retries
If your endpoint returns a non-2xx status or times out, delivery is retried
with exponential backoff. A 4xx response (other than 408 and 429) is
treated as a permanent rejection and is not retried.
Because retries and at-least-once delivery are possible, treat webhooks as
idempotent: use X-Take-Delivery-Id to ignore duplicates.
Ordering
Events are not guaranteed to arrive in order. Use the order’supdated_at
field to discard stale updates if you persist order state.
Configure webhook endpoints in Settings → Apps → Webhooks.