Shopify: not receiving webhook events?

Edited

Shopify sends native webhooks: Shopify notifies Apideck as soon as something changes, and Apideck forwards it to you as a unified ecommerce event. Apideck registers these notifications with Shopify for you, but a few things have to be in place first.

Received the test notification but no real events?

When you create a webhook subscription, Apideck sends a test notification ({"message": "Validating delivery URL"}) to your delivery URL. It only checks that your endpoint responds. It doesn't involve Shopify or any store, so receiving it doesn't mean Shopify events are set up. See How does the webhook delivery URL validation work?

Checklist

  1. Create your webhook subscription before connecting stores. Apideck registers Shopify notifications when a store's connection becomes active, and only for the ecommerce events your webhook subscription includes at that moment.

- If a store was connected before you created the subscription, or before you added the events, Apideck catches up automatically, usually within about a day.

- To start right away, ask the merchant to reconnect the store.

  1. Subscribe to the ecommerce events you need, for example ecommerce.order.created. See the list below.

  2. Make sure the connection is healthy. Events for a store whose connection needs re-authorization aren't delivered. See Why did my connection stop working?

  3. Keep the app's access scopes. Shopify only sends notifications for data your app has access to, so keep the order, product and customer scopes.

  4. Check your endpoint. It has to respond with a 2xx within 60 seconds, or the delivery is retried and eventually the subscription is disabled. See Are webhooks retried when they cannot be delivered?

Supported events

Event

Sent when

ecommerce.order.created

An order is created

ecommerce.order.updated

An order is edited, paid, fulfilled or refunded

ecommerce.order.paid

An order is paid

ecommerce.order.shipped

An order is fully or partially fulfilled

ecommerce.order.refunded

A refund is created

ecommerce.order.deleted

An order is deleted

ecommerce.product.created / .updated / .deleted

A product is created, updated or deleted

ecommerce.customer.created / .updated / .deleted

A customer is created, updated or deleted

Some Shopify changes produce two events. For example, a payment sends both ecommerce.order.paid and ecommerce.order.updated. Subscribe to the ones you need, and deduplicate on the x-apideck-idempotency-key header.

Still nothing?

Contact Apideck support through the Customer Portal (the Requests link at the top of this help center), your Slack channel with us, or support@apideck.com. Include the consumer ID and the event you expected.

Was this article helpful?

Sorry about that! Care to tell us more?

Thanks for the feedback!

There was an issue submitting your feedback
Please check your connection and try again.