We’re excited to share that concurrency protection is now available for key inventory and refund mutations.
Using idempotency keys, you can now protect your merchants from duplicate operations when network issues cause retries.
Here’s what you get with idempotency keys:
-
Safer retries—Shopify guarantees each operation processes only once, no matter how many times it’s retried
-
No more duplicate inventory changes, double refunds, or unexplained discrepancies for your merchants
-
Less defensive code—Shopify handles deduplication, so you don’t have to build your own retry logic
Additionally, using changeFromQuantity fields, you can now protect your merchants from operating on stale data.
What’s changing:
-
Starting with API version 2026-04, the @idempotent directive is required for 17 inventory and refund mutations
-
In the 2026-04 version, the changeFromQuantity field will be made mandatory for 5 inventory mutations (pass in `null` to opt-out).
-
Both features are available now in the 2026-01 API version, so you can start using them today
Generate a unique UUID for each operation and reuse the same key when retrying failed requests.
Next steps:
-
See the concurrency protection documentation:
-
Review which of your mutations need updating
-
Start using the directive and new fields today
If you have questions, post them here. We’re here to help!