Shopify POS cart calls will reject when the till refuses a change
EditorialBy TrustList Editorial
Extensions on API version 2026-10 must catch errors on 15 cart mutations or risk stuck screens; versions 2026-07 and earlier keep the old behaviour.
- Shopify
- Point of Sale (POS)
- Retail POS
- eCommerce
About Shopify POS cart calls will reject when the till refuses a change
Shopify POS cart calls will reject when the till refuses a change
7 October 2026: Shopify has made a breaking change to the cart API in POS UI extensions. From API version 2026-10, a cart mutation rejects its promise unless Shopify POS confirms that the cart actually changed. In earlier versions the same calls resolved whether or not POS applied the write.
Not yet independently verified. Single source, Shopify's own developer changelog. We have not tested the behaviour in a POS extension. We will update this when it can be confirmed, and remove this note.
The company says the old behaviour meant an app could not tell an applied write from a dropped one, and could show a fee or discount as applied when the cart was untouched.
The change covers 15 existing mutations, among them bulk cart update, remove line item, apply cart discount, add cart code discount, set customer, remove customer, the line item property calls, the line item discount calls and the two selling plan calls. A new update line item quantity mutation arrives in 2026-10 and rejects from its first release.
An unconfirmed write fails with one of two messages. "POS refused the cart update. The cart was not changed." means POS declined the write, for example after the cashier has moved on to payment, and a retry can work once cart editing reopens. "POS could not confirm the cart update." means the outcome is unknown and a partial write is possible, so the extension should read the cart before it retries. Other rejections, such as an invalid discount value or a missing customer, still happen, so matching on the message matters only when the two cases need separate handling.
The rule applies per extension, set by the api_version it declares, and not per store. Extensions on 2026-07 and earlier are untouched. Code that already wraps cart calls in try and catch will run its handler on an unconfirmed write instead of carrying on as if it succeeded.
The risk is in code that does not catch. An uncaught rejection stops the rest of the handler, including interface updates that follow the write and cleanup such as clearing a loading state, which Shopify says can leave a spinner on screen or skip a confirmation step.
Shopify's instruction is to add rejection handling at every cart mutation call site before changing the version to 2026-10. Teams that cannot do that yet can stay on 2026-07, which keeps working until it reaches the end of its support window under Shopify's API versioning policy.
Company profile on TrustList: Shopify
Related on TrustList:
- Shopify caps Customer Account API at 3,000 requests a minute per customer
- Santé raises $15m Series A for AI point of sale in liquor stores
Sources
- Shopify developer changelog, 7 October 2026
Categories & features
- Shopify
- Point of Sale (POS)
- Retail POS
- eCommerce
TrustList Weekly
The week in software and IT, in one email
The news that matters to buyers, new rankings and our own research. Every Thursday, free, and easy to leave.
More on TrustList
Everything here links back to the same verified catalogue. Pick your next stop.
- More ShopifyThe ranking for this subject
- CompaniesAgencies, consultancies and IT service providers, ranked by verified reviews.
- ProductsSoftware and SaaS with pricing, features, integrations and alternatives.
- AwardsAnnual recognition decided by verified reviews and an independent jury.
- LaunchesNew products and releases, voted up by the community every day.
- AI ModelsBenchmark scores and community ratings for every major model.
- RequestsBuyers describe what they need; vendors respond directly.
- PeopleReviewers, authors and makers with public profiles.
- ComparePut up to four listings side by side before you shortlist.