Starting August 31, 2026, changing the shipping address on an unfulfilled order with orderUpdate recalculates taxes for the new destination. Until now, only the address was updated and the tax lines stayed as they were.
orderUpdate GraphQL mutation to change the shipping address will
recalculate the order's taxes for the new destination.orderUpdate saved the new address but left the original tax lines as they were. As a result, the order total no longer matched the address the order actually shipped to.
The order's financial data is corrected as part of the address update, keeping the total accurate for the shipping destination.No changes are required to adopt this.
taxLines / totalTaxSet / the various totals. No special API and no extra parameters are involved.Tax recalculation runs only "when it can be applied safely." The post spells out the following two cases.
Completely unfulfilledorders have their tax recalculated.Partially fulfilledorders save the address, but the tax is not changed.
Reason: some items have already shipped tothe original destination, so recalculating the whole order with the new address would apply the new destination's tax even to items that were never shipped there, producing totals that don't match what was actually fulfilled.
Recalculationgoes through the order editing mechanism, sothe same constraints as order editing apply as-is.
If the order is not eligible for editing, the address is saved but the tax is not recalculated.
| Item | Until now | From August 31, 2026 |
|---|---|---|
| Saving the address | Yes | Yes(always succeeds) |
| Tax lines (unfulfilled orders) | Left at the original value, not updated | Recalculated based on the new destination |
| Total amount accuracy | Against the actual shipping destination,does not match | Against the shipping destination,stays accurate |
| Partially fulfilled orders | Tax lines are not changed | Tax lines are not changed (left as-is) |
| Orders that cannot be edited | Tax lines are not changed | Tax lines are not changed (left as-is) |
| orders/edited webhook | Operations built on the assumption that it does not fire on address changes | Now fires Notifies you when a tax recalculation happens |
| App-side work | — | None No changes are required to adopt this |
August 31, 2026onward.
All Admin GraphQL API versionsapplies. This is not the kind of change you can avoid by moving to a specific version.
orders/edited subscribers are notifiedwhen an address change triggers a tax recalculation.
No change here. The way you call it stays the same.
taxLines / totalTaxSet / totals again. You can treat it the same as any other order edit.
The webhook now fires for address changes too. Make sure your handler doesn't break on unexpected firings.
The address changealways succeeds, and only the tax recalculation comes with conditions. If you only look at whether the mutation succeeded, you'll misread whether the tax was actually corrected.Checking the re-fetched valuesis the only reliable way to tell.
There's no escape hatch of pinning a version to keep the old behavior.Apps still pointing at an older API version also get the new behavior starting August 31. You'll need to take inventory of every integration you have running.
A notification that previously only arrived from an order edit operationnow also arrives from address changes. Handlers that deal with idempotency or duplicate processing, or that have side effects on inventory or accounting, should be reviewed on the assumption that they'll fire more often.
The recalculationruns through the order editing mechanism. So all the usual order editing considerations apply as-is. On orders that can't be edited, only the address is saved and the tax is left unchanged.
This is by design, not a bug. Applying the new destination's tax to units already shipped to the original destination would producetotals that don't match what was actually fulfilled, so it's deliberately left alone.
Put another way, if you want an address change to correct the tax amount too, an operational design that "locks in the address before fulfillment"becomes the prerequisite. It's worth building this into your CS response flow.
orderUpdate alone recalculates tax based on the new destination. Drop the manual adjustment step from your CS runbook.taxLines / totalTaxSet / totals, then show the updated total on the CS screen. Treat it the same as any other order edit.orders/edited as a trigger, address changes produce new firings, and there is a risk thatunexpected reprocessingruns.