Skip to main content
Shopify retries aggressively, and a double-fulfilled order is a real refund. Verify the source, collapse the retries into one event, and deliver each order to fulfillment — signed, with a retry schedule that survives a downstream blip.
1

Verify Shopify

2

Collapse retries with deduplication

identifier mode keys on the Standard Webhooks webhook-id (or a recognized provider event id), so a provider retry within the window collapses into the event you already have. See deduplication.
3

Deliver to fulfillment, signed and verified-only

Register fulfillment as a destination, then subscribe --require-verified. Each delivery is signed with the destination secret and retried on the fixed schedule (5s → 5m → 30m → 2h → 5h → 10h → 10h); after 20 dead deliveries the destination auto-disables so a hard outage stops hammering it.
Dedup is best-effort load reduction, not exactly-once. Keep fulfillment idempotent on the order id — see build an idempotent consumer.