I am trying to use APP_SUBSCRIPTIONS_UPDATE
webhook to track subscription changes in my Shopify app. The webhook gets triggered correctly whenever there is a change (such as subscription creation, update, or cancellation). However, the webhook payload does not provide any information about why the update happened.
For example, if a subscription is canceled, I don’t receive details like whether it was canceled, updated or accepted.
Is there a way to get more context on why the subscription update occurred?
{
request: {
method: 'POST',
url: '/',
header: {
'x-shopify-webhook-id': 'some id',
'x-shopify-triggered-at': '2025-02-11T13:24:22.873029759Z',
'x-shopify-topic': 'app_subscriptions/update',
'x-shopify-shop-domain': 'some name',
'x-shopify-hmac-sha256': 'some id',
'x-shopify-event-id': 'some id',
'x-shopify-api-version': '2024-04',
'x-forwarded-proto': 'https',
'x-forwarded-for': 'some number',
'content-type': 'application/json',
connection: 'close',
'cf-worker': 'trycloudflare.com',
'cf-warp-tag-id': 'some id',
'cf-visitor': '{"scheme":"https"}',
'cf-ray': 'some id-AMS',
'cf-ipcountry': 'NL',
'cf-ew-via': '15',
'cf-connecting-ip': 'some number',
'cdn-loop': 'cloudflare; loops=1; subreqs=1',
'accept-encoding': 'gzip',
accept: '*/*',
'content-length': '314',
'user-agent': 'Shopify-Captain-Hook',
host: 'some host'
}
},
response: {
status: 202,
message: 'Accepted',
header: [Object: null prototype] {
'content-security-policy': 'frame-ancestors https://undefined https://admin.shopify.com'
}
},
app: { subdomainOffset: 2, proxy: false, env: 'development' },
originalUrl: '/webhooks',
req: '<original node req>',
res: '<original node res>',
socket: '<original node socket>'
}