Configuring webhooks
When creating or editing your app, you can configure:- Webhook URL — The HTTPS endpoint on your server that will receive webhook payloads
- Webhook Topics — The event types you want to subscribe to
Webhook delivery
When an event occurs, OrderProtection sends an HTTP POST request to your webhook URL:Authentication
Every webhook request includes anx-webhook-secret header. Use this secret to verify that the request originated from OrderProtection and has not been tampered with.
Available topics
Claims
Messages
Protection
App lifecycle
app/uninstalled behaves differently from the event topics above: it is delivered directly to your app’s webhook URL for every installation, the moment you add the topic to your app’s webhook settings — no per-store registration involved. By the time it arrives, the installation’s tokens are already revoked. Body:
app/installed topic — on a marketplace install your redirect URI already receives the authorization code (see Installing Your App), and on an API install your backend is the caller.
For detailed payload schemas for each webhook topic, see the Webhooks reference.
Best practices
- Respond quickly — Return a
200status code within 5 seconds. If you need to do heavy processing, acknowledge the webhook and handle the work asynchronously. - Handle duplicates — Webhooks may occasionally be delivered more than once. Use the event ID or resource ID to deduplicate.
- Use HTTPS — Your webhook URL must use HTTPS in production to ensure payloads are encrypted in transit.

