See all services → Shopify Plus Partner
API Developer

Reconcile Return Shipping Tax With New Admin API Fields

From API version 2026-10 the Admin API exposes estimated and finalized tax on return shipping fees, ahead of Shopify taxing those fees for US orders starting October 23, 2026.

Executive summary

What changed

The distinction between the two fields is the whole point. taxAmountSet sits on CalculatedReturnShippingFee, available through the returnCalculate query. It is an estimate, a MoneyBag in shop and presentment currencies, and resolves to zero when no tax applies. finalizedTaxAmountSet sits on ReturnShippingFee and stays null until the return is processed through returnProcess, where it locks in what the tax provider actually charged.

The two figures can differ, and Shopify is explicit that the provider may return a different amount at processing than at calculation. Use the estimate for anything a buyer sees while the return is created, and the finalized value for anything touching the ledger. Existing shipping tax configuration still applies, so if shipping is untaxed in a state, return shipping fees there remain untaxed.

Why it matters

Most merchants charging return shipping fees have been under-collecting tax on them, and many built a manual workaround: a spreadsheet adjustment, an imported journal entry, a periodic correction from finance. Those workarounds are now a liability. After October 23 Shopify collects the tax and pushes it into tax reports automatically, so any manual process left running will double-count.

The integration consequence is worth planning. Return totals flowing into an ERP will carry a tax component they did not before, and a connector that maps fields positionally or sums a hardcoded set will silently post the wrong figure. We see this repeatedly in ERP to Shopify integration work: the platform change is small, the mapping assumption it invalidates is not. Read finalizedTaxAmountSet explicitly rather than deriving tax from a difference between totals.

Role-specific impact

Use-case example

Real-world scenario

A US apparel brand processing around 4,000 returns a month charges a 9 USD return shipping fee. At a blended rate near 7 percent, that is roughly 2,500 USD a month of tax previously uncollected and reconciled by hand each quarter. After October 23 it is collected automatically. If the ERP connector keeps summing its old field list, it posts return credits short by that amount, surfacing as a reconciliation variance that takes finance longer to diagnose than the integration change would have taken. Mapping finalizedTaxAmountSet before the date makes it a non-event.

Implementation checklist

  1. Confirm whether your store uses Shopify Tax or Tax Platform and ships to US addresses. If not, this is informational only.
  2. Inventory every manual process that reconciles tax on return shipping fees and retire it before October 23, 2026.
  3. Upgrade return-related queries to API version 2026-10.
  4. Add taxAmountSet to return calculation queries and surface it wherever an estimated refund or fee is displayed.
  5. Add finalizedTaxAmountSet to processed return reads and map it into your ERP or accounting integration as an explicit tax line.
  6. Test a return end to end in a development store, comparing the estimate against the finalized amount.
  7. Verify your state-level shipping tax settings still reflect intent, since return shipping fees inherit them.

FAQ

Resources

CalculatedReturnShippingFee object reference

Need guidance? Talk to Makro.