Shopify Webhooks: What They Are and How to Create One

A Shopify webhook is a message Shopify sends to a web address you choose the moment something happens in your store, such as an order being paid or a product’s price changing. You can create one yourself in the admin under Settings > Notifications > Webhooks: pick the event, the format (JSON or XML) and an https:// address that receives the data. The hard part is the receiving end, which needs a server or a service that knows what to do with the message.
What a webhook sends
Shopify’s Help Center page on webhooks, read on October 23, 2026, describes them as a way to retrieve and store data from an event: you register an https:// URL, and Shopify posts the event’s data there in JSON or XML. Events are grouped by what they are about, including carts, checkouts, collections, customers, discounts, draft orders, fulfillments, inventory, locations, markets, orders, products, refunds, the shop and themes. An Order payment webhook, for example, fires every time an order is paid and carries that order’s details.
A webhook pushes one event at a time. It tells the receiving system what just happened, and a system that misses a message will not find out unless it checks back through the API.
Create a webhook in the admin
- Go to Settings > Notifications and open the Webhooks section.
- Click Create webhook.
- In the Event drop-down, choose the event, for example Order payment or Shop update.
- In the Format drop-down, choose JSON or XML. JSON is what most services expect.
- Enter the
https://address of the receiving endpoint in the URL field. - Pick a version in the Webhook API version field and click Save. The event cannot be changed after you create the webhook, and the URL cannot point to localhost, your store’s own domains or a Shopify domain.
- On the webhook’s row, click the Horizontal menu icon, then Send test, and check that the sample arrived at your endpoint.
Webhooks you create in the admin differ from those an app creates. Shopify sends a failure email to the store owner only for webhooks created by an App Store app or a custom app, and if a destination keeps returning errors, the subscription is eventually removed. For a webhook you created by hand, you will not get that email, so the receiving end must alert you itself when messages stop arriving.
Common uses
Shopify’s page lists the jobs webhooks are commonly used for:
- Recording orders as they are placed, for example in a warehouse or ERP system.
- Reacting to a product price change.
- Notifying a chat tool or a pager when you are offline.
- Collecting data for a data warehouse.
- Integrating accounting software.
- Filtering order items and informing different shippers about an order.
- Removing customer data from your database when they uninstall your app, which is a job for app developers.
Every one of them needs a receiver: a small server, a cloud function or an integration service that accepts the message, checks it came from Shopify, and acts on it. Checking the sender matters; Shopify signs webhook messages, and the developer documentation explains how a receiver verifies them, so a fake request to the same address cannot pose as an order.
Apps that need order or customer events usually subscribe to webhooks themselves when you install them, which is why a merchant rarely needs to create a webhook by hand.
Webhooks, Flow or Zapier?
| You want to | Use | Why |
|---|---|---|
| Send order data to your own server or a developer’s system | A webhook | Direct, no extra service |
| Act inside Shopify (tag, notify, hold an order) when something happens | Shopify Flow | Built into Shopify; ideas in Shopify Flow |
| Call another system from a Flow workflow | Flow’s Send HTTP request action | Shopify’s Help Center lists it for the Grow, Advanced and Plus plans |
| Connect Shopify to an off-the-shelf tool (sheets, CRM, Slack) | Zapier or a similar service | It hosts the receiver for you; see Zapier with Shopify |
| Build a two-way integration with an ERP or warehouse | A custom app or integration partner | Needs the API, retries and error handling; see custom API integrations |
If you are not writing the receiver yourself, start with Flow or Zapier, and keep admin webhooks for the case where a developer has already built the endpoint. More operations guides are in the running a store hub.
Frequently asked questions
Where are webhooks in Shopify? Webhooks you create yourself are under Settings > Notifications, in the Webhooks section. Webhooks that apps create are managed by the app.
What happens if my endpoint fails? If a destination keeps returning errors, Shopify removes the webhook subscription. The failure email to the store owner goes only for webhooks created by an App Store app or a custom app, so for webhooks you created in the admin, build your own alert on the receiving side.
Do I need a developer? Creating the webhook takes a few minutes in the admin. Receiving it needs an endpoint that can accept and verify the message, which means a developer or a service such as Zapier that provides one.