Test Shopify Webhooks With the Delivery Context Intact
Send a Shopify webhook to a temporary CatchHook endpoint and see its topic, shop domain, delivery ID, API version, headers, and JSON payload together. Save the endpoint for HMAC verification, replay, Actions, and longer history.
Your Shopify Test Endpoint
npx @catchhook/tunnel ep_neqaRo3YOkmxSn7gGP257M69 --key tkey_58362833f8e5725da4c532740038e0a6 --port 3000curl -X POST https://temp.catchhook.app/hooks/ep_neqaRo3YOkmxSn7gGP257M69 \
-H "Content-Type: application/json" \
-H "X-Shopify-Topic: orders/create" \
-H "X-Shopify-Shop-Domain: example-store.myshopify.com" \
-H "X-Shopify-Webhook-Id: 7c8d573d-1575-4c09-9ac5-2a1f8467c082" \
-H "X-Shopify-Event-Id: 2fd4a9ae-68d2-4d1c-9e64-b4ddff112c89" \
-H "X-Shopify-Api-Version: 2026-07" \
-H "X-Shopify-Triggered-At: 2026-07-24T18:30:00Z" \
-d '{
"id": 820982911946154508,
"admin_graphql_api_id": "gid://shopify/Order/820982911946154508",
"order_number": 1001,
"currency": "USD",
"financial_status": "paid"
}'Or
to see it appear in real time below.Live Webhook Requests
Watch requests stream in automatically with full headers, payloads, and timestamps.
Streaming Live
Waiting for your first webhook...
Send a test request using the cURL command above or configure Shopify to use your endpoint URL.
How to test Shopify webhooks with Catchhook
Follow these steps to start receiving Shopify events on your temporary endpoint.
Create your temporary endpoint
Copy the HTTPS CatchHook URL above. The demo endpoint lasts for two days and does not require an account.
Create a Shopify webhook subscription
Register the CatchHook URL as the callback URI for the topics your app needs. Shopify recommends app-specific webhook subscriptions; use the current Shopify developer documentation for the Admin API or app configuration flow you use.
Trigger a real store event
Create or update a test order, product, fulfillment, refund, or inventory level in a development store. CatchHook identifies classic HTTPS deliveries from their X-Shopify headers.
Inspect delivery context
CatchHook shows the Shopify topic, shop domain, delivery ID, event ID, API version, trigger time, and a bounded resource identifier when it is safe and unambiguous. The full original request remains available below.
Verify and deliver to your app
Save the endpoint and configure your Shopify app client secret to verify the raw request body. Run the CatchHook tunnel when you want the captured webhook delivered to your local application.
Useful Shopify topics to test
Order events
- order ingestion
- payment workflows
- fulfillment automation
X-Shopify-Topic: orders/createProduct events
- catalog synchronization
- search indexing
- inventory workflows
X-Shopify-Topic: products/updateFulfillment and refund events
- shipping updates
- customer notifications
- financial reconciliation
X-Shopify-Topic: fulfillments/createApp lifecycle events
- uninstall cleanup
- access revocation
- integration monitoring
X-Shopify-Topic: app/uninstalledCommon Shopify webhook problems this helps debug
Catchhook helps you diagnose these issues before they reach production.
The webhook does not arrive
- The subscription callback URI matches the CatchHook endpoint
- The app is subscribed to the expected topic
- The event happened after the subscription was created
- The Shopify delivery log shows an HTTPS attempt
HMAC verification fails
Shopify signs the exact raw request body with your app client secret. Read and verify those bytes before JSON parsing or middleware changes them. A saved CatchHook endpoint can verify X-Shopify-Hmac-Sha256 and distinguish a failed signature from a missing or unconfigured one.
Duplicate processing occurs
Use Shopify delivery metadata to make processing idempotent and trace retries:
- X-Shopify-Webhook-Id identifies a delivery
- X-Shopify-Event-Id correlates deliveries from the same merchant action
- X-Shopify-Triggered-At records when Shopify triggered the webhook
- CatchHook replay can create a new delivery ID without changing the commerce resource ID
The local handler is hard to debug
Capture the Shopify request on CatchHook first, then run the CatchHook tunnel to stream it to your local server. The hosted request history stays available while your application restarts, raises an exception, or returns a non-2xx response.
What you get for free
Free / no signup
- temporary Shopify webhook URL
- live request inspection
- headers and JSON payload view
- Shopify topic and shop detection
- delivery ID and API version context
- generated cURL test
- localhost tunnel command
- short-lived request history
Signup / free trial
- permanent endpoint URL
- Shopify HMAC verification
- longer retention
- safe replay controls and replay guidance
- conditional Endpoint Actions using normalized Shopify fields
- semantic request comparison
- alerts and production monitoring
- MCP diagnostics for AI editors
When to create a permanent endpoint
Use the temporary endpoint while integrating. Save it when you need a stable Shopify callback URL, HMAC verification, replay, Actions, alerts, longer retention, or team access.
Save This Shopify EndpointFrequently Asked Questions
You've captured 0 requests on this temp endpoint.
Create an account to keep this endpoint and continue debugging.
Ready for Production Webhooks?
Plans start at $10/month with a 14-day free trial. No credit card required.
Conditional Endpoint Actions, CSV/JSON export, custom domains, outbound webhooks, AI debugging, and a full REST API.