How to Debug Shopify Webhooks

Shopify webhooks notify your app when events occur in a merchant's store, such as new orders, product updates, and customer registrations. They are essential for building Shopify apps and keeping external systems in sync.

What are Shopify Webhooks?

Shopify webhooks are HTTP POST requests that Shopify sends to your server when specific events occur in your account. Rather than continuously polling the Shopify API for updates, webhooks deliver real-time notifications the moment something happens — a payment completes, a user signs up, a deployment finishes, or any other tracked event.

Debugging these webhooks can be challenging because they originate from Shopify's servers, not your browser. You can't simply open DevTools to inspect them. That's where WebhookVault comes in — capture every Shopify webhook, inspect the full payload and headers, and replay them to your local development server.

Common Shopify Webhook Events

EventDescription
orders/createFired when a new order is placed in the store
products/updateFired when a product's details are modified
customers/createFired when a new customer account is created
app/uninstalledFired when the merchant uninstalls your app

Setting Up Shopify Webhooks with WebhookVault

Follow these steps to start capturing and debugging Shopify webhooks using WebhookVault.

1Create a WebhookVault endpoint

Sign up for a free WebhookVault API key and create an endpoint to capture Shopify webhooks.

curl -X POST https://webhookvault.anethoth.com/api/v1/endpoints \
  -H "Authorization: Bearer wv_your_key" \
  -H "Content-Type: application/json" \
  -d '{"name": "Shopify Webhooks"}'

# Response:
# {"url": "https://webhookvault.anethoth.com/hook/abc123", "inspect_url": "https://webhookvault.anethoth.com/inspect/abc123"}

2Configure Shopify to send webhooks

In your Shopify Partner Dashboard, go to your app's configuration Navigate to Notifications > Webhooks or use the Admin API Add your WebhookVault URL as the webhook endpoint Subscribe to the specific topics you need (e.g., orders/create)

3Inspect captured requests

Once Shopify sends a webhook, you can inspect every detail through the WebhookVault API or web inspector.

curl https://webhookvault.anethoth.com/api/v1/endpoints/abc123/requests \
  -H "Authorization: Bearer wv_your_key"

# Returns all captured Shopify webhook requests with full headers, body, and metadata

4Replay to your local server

Replay any captured Shopify webhook to your local development server for testing.

curl -X POST https://webhookvault.anethoth.com/api/v1/endpoints/abc123/requests/1/replay \
  -H "Authorization: Bearer wv_your_key" \
  -H "Content-Type: application/json" \
  -d '{"url": "http://localhost:3000/webhook"}'

# The original Shopify webhook is replayed to your local server

Sample Shopify Webhook Payload

Here is an example of a typical Shopify webhook payload. Use WebhookVault to capture real payloads from your Shopify account for accurate testing.

{
  "id": 820982911946154500,
  "email": "[email protected]",
  "created_at": "2024-01-15T10:30:00-05:00",
  "total_price": "199.00",
  "currency": "USD",
  "financial_status": "paid",
  "line_items": [
    {
      "title": "Premium Widget",
      "quantity": 2,
      "price": "99.50"
    }
  ],
  "shipping_address": {
    "city": "New York",
    "country": "US"
  }
}

Common Shopify Webhook Issues

Here are the most common issues developers encounter when working with Shopify webhooks, and how to resolve them.

HMAC verification fails

Shopify sends an X-Shopify-Hmac-SHA256 header. Compute the HMAC using your app's shared secret and the raw request body.

Webhook removed after failures

Shopify automatically removes webhooks after 19 consecutive failures. Monitor your endpoint uptime.

Rate limiting on webhook creation

Shopify limits the number of webhook subscriptions per app. Use bulk topics like orders/* when possible.

Missing fields in payload

Shopify may omit null fields. Always handle optional fields gracefully in your webhook handler.

Frequently Asked Questions

What are Shopify webhooks?

Shopify webhooks are HTTP callbacks that Shopify sends to your server when specific events occur. Instead of polling the Shopify API for changes, webhooks push real-time notifications to your application, making your integration more efficient and responsive.

How do I test Shopify webhooks locally?

Use WebhookVault to capture Shopify webhooks in the cloud, then replay them to your localhost. Create a WebhookVault endpoint, configure Shopify to send webhooks to it, and use the replay API to forward captured requests to http://localhost:3000/webhook (or your local port).

How do I verify Shopify webhook signatures?

Most webhook providers, including Shopify, sign their webhook payloads to prove authenticity. Check the Shopify documentation for the specific signature header and verification algorithm. Use WebhookVault to capture and inspect the raw headers to debug signature verification issues.

Why is WebhookVault better than ngrok for Shopify webhook testing?

Unlike ngrok, WebhookVault captures and stores every webhook request with full headers and payloads. You can replay any Shopify webhook to your local server as many times as needed, inspect historical requests, and share webhook data with your team. No tunnel to maintain or port to expose.

Start debugging Shopify webhooks now

Create a free WebhookVault endpoint in seconds. Capture, inspect, and replay Shopify webhooks with zero configuration.

Get Free API Key