Skip to main content

Webhooks

Subscription model

The app uses app-specific webhook subscriptions declared in shopify.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 returns 401 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.