Webhooks
There are 2 ways to get notified of order status changes via webhooks:
Global webhook URL set in the merchant dashboard (applies to all orders)
Per-order webhookUrl field when creating an order (overrides global URL for that order)
When an order status changes, a POST request is sent to the webhook URL with the following payload type:
Example payload
Webhook Verification
We send a signature with each webhook request to protect merchants from fraudulent requests. Each request should be verified using a secret provided in the merchant dashboard.
The signature is sent in the x-signature HTTP header.
The signature is computed as follows:
TypeScript example:
Webhook Response Requirements
Your webhook endpoint must:
Respond with HTTP status code 2xx to acknowledge receipt
Respond within 20 seconds (requests taking longer will timeout)
Any other status code or timeout will be considered a failure.
Retry Policy
If your webhook endpoint fails to respond successfully:
We will retry up to 10 times
Retries will be attempted with exponential backoff: 1sec, 2sec, 4sec, 8sec, 16sec, 32sec, 64sec, 128sec, 256sec, 512sec
Webhooks can be viewed in the merchant dashboard
Last updated