Webhooks
Subscription model
The app uses app-specific webhook subscriptions declared inshopify.app.toml, delivered to a single receiver at /api/webhooks and dispatched by the X-Shopify-Topic header.
Authentication
All webhook requests are verified with HMAC-SHA256 using the Shopify API secret before any handler runs. A failed signature returns401 and no handler or durable job runs.
Operational topics
Compliance topics (GDPR)
Processing model
Webhook handlers stay thin. They verify the signature, resolve affected records, and enqueue work to BullMQ so sorting and cleanup run in the background. Sorting jobs are deduplicated by shop and collection. Completed jobs are retained for 24 hours (or the last 1,000); failed jobs are retained for 7 days.Merchant outbound webhooks
Advanced-plan merchants can register signed outbound webhooks for sorting jobs, A/B metrics, and dynamic collection updates through the app’s API webhooks screen (/api/merchant-webhooks). Secrets are omitted from list responses.