Shopify signs every webhook delivery with a Base64 HMAC-SHA256 value in theDocumentation Index
Fetch the complete documentation index at: https://supahooks.ar27111994.dev/llms.txt
Use this file to discover all available pages before exploring further.
X-Shopify-Hmac-Sha256 header. Use the Webhook Debugger to verify your shared secret, inspect order and inventory events, and replay individual deliveries to staging — without waiting for real customer activity to trigger a new event.
Configure the actor for Shopify
Start the actor with the following input. Replaceshopify_shared_secret with the client secret from your Shopify app or the shared secret shown in your store’s webhook settings.
orders/* traffic and one for inventory/* or fulfillment/* — without mixing events in the same log view.
Shopify verification runs against the preserved raw request body before JSON parsing, so signatureValid is accurate even with enableJSONParsing enabled.
After the actor starts, call /info to confirm both webhook IDs before updating Shopify.
Register the endpoint in Shopify
Open webhook settings
In your Shopify admin, go to Settings → Notifications (or Settings → Webhooks for newer admin versions).
Create a webhook
Click Create webhook and select the event topic you want to test, such as
orders/create.Paste the endpoint URL
Copy a
/webhook/:id URL from /info and paste it into the URL field. Repeat for each topic using the appropriate webhook ID.Keep
forwardHeaders: true if your downstream receiver also validates X-Shopify-Hmac-Sha256. The actor preserves the original signature header when forwarding.Test order, product, and customer events
After Shopify delivers a webhook, query/logs to see what was captured. Filter by topic using the X-Shopify-Topic header:
/system/metrics to see error counts and the last sync time.
Inspect and replay captured events
If a delivery reached the actor but failed downstream, replay the original captured event to staging after fixing the handler:Common failure patterns
| Signal | What it usually means | What to do |
|---|---|---|
signatureValid=false | Shared secret mismatch or body modification before validation | Re-check the Shopify app secret and compare the raw captured body against the expected payload |
| Duplicate order entries | Shopify retried after a delayed or failed acknowledgement | Use the captured event ID and your order ID mapping to confirm idempotency logic |
| Forwarding failures | The original webhook was accepted but forwarding to staging failed later | Check /system/metrics for error counts, fix the downstream target, then replay the original event |