Multi-Currency Checkout on Shopify: Getting the Tax Math Right
GST, VAT, sales tax, registration thresholds, price inclusive vs exclusive display. The tax edge cases we have seen go wrong for UK/US cross-border stores. Concrete Shopify configuration included.
The first time a Shopify merchant sees a multi-currency store live, the interface makes cross-border selling look almost trivial. Add a market, turn on local pricing, and a British shopper sees pounds while an American sees dollars. The conversion is handled, the checkout localises, and the dashboard celebrates with a green tick. It is only when the first VAT return comes due, or when a customer in Germany opens a dispute because they were charged import fees on a sixty-euro order, that the gap between the interface and the tax rules behind it becomes obvious. Getting Shopify multi currency tax configuration right is the difference between a cross-border store that compounds revenue and one that quietly bleeds margin through misdisplayed prices, uncollected VAT, and refund threads with customs brokers.
This article walks through the tax mechanics we see break most often on Shopify stores selling from the United Kingdom or the United States into multiple regions. It covers the display rules, the registration thresholds that trigger obligations, the way Shopify handles conversion and rounding when tax is inclusive, and the B2B overrides that international brands rely on but rarely configure correctly. The goal is not to replace an accountant but to close the gap between what the Shopify admin exposes and what a tax authority expects to see when they look at a sample order.
The Display Rule That Catches Every UK Merchant Eventually
The single most common mistake we see on stores with a UK shopfront is displaying prices exclusive of VAT to consumers. Under the Price Marking Order 2004, any business selling to UK consumers must show the total price the customer will pay, including VAT, at the point the product is advertised. That means the product page, the collection grid, and any promotional banner need to show the gross price. Showing ninety-nine pounds and adding twenty pounds of VAT at checkout is not a user experience quirk, it is a trading standards breach, and local authorities do enforce it when a competitor complains.
Shopify handles this correctly if you configure it correctly. Under Settings, Markets, and then the United Kingdom market, there is a pricing preference called Include or exclude tax based on your customer's country. With that preference active, and with the UK market flagged as tax-inclusive, a visitor geolocated to the United Kingdom sees the gross price on every page and at checkout. A visitor from the United States, on the same catalogue, sees the net price, because the US side of the same toggle treats tax as excluded and applies it only at checkout. The same store, the same product, two different displays, driven by the country the visitor is shopping from.
Where merchants go wrong is usually one of two ways. Either they leave the global tax inclusion setting off, meaning UK shoppers see net prices and get a VAT shock in the cart, or they turn it on globally, meaning US shoppers see a gross price with implied tax baked in, which is confusing in markets where sales tax is always added at the end. The per-country toggle is the fix, and it should be the first thing verified on any store that ships into both regulatory regimes.
US Sales Tax Is A Different Problem Than VAT
American sales tax operates on an almost opposite logic to European VAT. There is no federal sales tax, which means every state, and in many cases every county and city, sets its own rate. A shipment from a New York warehouse to a buyer in Denver does not just attract Colorado state tax but also a regional transportation district tax, a city tax, and sometimes a special district tax layered on top. Shopify Tax, the platform's built-in calculation engine, uses rooftop-accurate rates based on the delivery address, which means it can resolve the correct combined rate for the destination down to the building. Basic Tax, the older product, uses flat state rates and will almost always be wrong in any state with local variation, which is most of them.
The threshold that matters on the US side is economic nexus. Since the Wayfair ruling in 2018, a state can require a remote seller to collect sales tax once that seller crosses a revenue or transaction threshold in that state. Most states use one hundred thousand dollars in sales or two hundred separate transactions per year as the trigger, though California and Texas sit at five hundred thousand and New York layers transaction count on top of revenue. Shopify will alert you when you approach or cross a threshold under Settings, Taxes and duties, United States. The alert is helpful, but it is not a filing. Registering with the state, collecting the right rate from the day registration is effective, and filing a return on the state's cadence are separate jobs that either fall to a tax tool such as Avalara or TaxJar, or to a human accountant.
Prices on a US-facing storefront are displayed tax-exclusive. The shopper expects to see the price, then tax applied at checkout based on ship-to. This is the inverse of the UK rule, and the per-country inclusion toggle is what allows one Shopify store to obey both.
The EU Is Really Two Regimes Stacked On Top Of Each Other
Selling into the European Union from a UK or US origin point triggers the Import One-Stop Shop, or IOSS, for any consignment valued at or below one hundred and fifty euros. Under IOSS, the seller registers once in a single EU member state, collects the destination country's VAT rate at checkout, and remits it monthly through that single registration. The customer pays no import VAT on delivery, no handling fees from the carrier, and the parcel clears customs quickly. It is the regime that makes low-value cross-border sales to Europe viable.
Shopify supports IOSS natively. Under Settings, Taxes and duties, European Union, a merchant can enter an IOSS number and enable VAT collection per country. With that configuration in place, the platform automatically applies the destination rate when the cart total is at or below the threshold and flags the shipment with the IOSS identifier so the carrier processes it correctly. Above one hundred and fifty euros, IOSS does not apply, and unless the store is set up for delivered-duty-paid shipping, the customer pays import VAT on arrival. Failing to configure IOSS is the single most common cause of one-star reviews from European customers on UK-origin stores, not the product but the surprise customs bill.
There is a second layer for merchants who hold stock inside the European Union, which triggers the One-Stop Shop or OSS regime. Once intra-EU distance sales cross ten thousand euros in a calendar year, the seller must charge destination-country VAT on every sale and remit through OSS. Below that threshold, the seller's home-country rate applies. Shopify can handle OSS charging but merchants need to flip the switch when they cross the threshold, which is easy to miss because the number is low.
Currency Conversion And Tax Calculation Interact In Ways The Interface Hides
Shopify converts the base price of a product using a daily mid-market exchange rate with a configurable margin, then applies tax in the local currency. That sounds clean until you trace a specific order. Consider a product priced at one hundred pounds net in the UK base market, displayed as one hundred and twenty pounds gross inclusive of VAT. A German shopper on the same store sees the EU market price, converted from one hundred pounds to roughly one hundred and fifteen euros, then German VAT of nineteen percent applied to reach a gross display of approximately one hundred and thirty-seven euros. The conversion happens before tax because the UK base is stored as a net value. Flip the base to gross, and the conversion happens on the gross, with the German VAT backed out and reapplied. The math is different, the displayed prices drift, and the merchant ends up with inconsistent pricing ladders across markets.
The fix most international brands land on is fixed-price markets. Rather than let Shopify convert daily, the merchant sets an explicit price per market: one hundred pounds in the UK, one hundred and thirty dollars in the US, one hundred and forty euros in Germany. Each override is stored as the local base, tax is applied against it, and there is no FX drift between Monday and Tuesday. Shopify Markets supports this through price lists, and for brands with stable catalogues it is the only way to maintain predictable margins.
Fixed-price markets introduce a different problem, which is rounding drift. Retailers like to end prices at .99 or .95 for psychological reasons, and Shopify offers rounding rules per currency to enforce it. When tax is inclusive, the rounded gross price is what the customer sees, and Shopify works backwards to compute the implied net and VAT. A gross price of one hundred and nineteen euros ninety-nine with nineteen percent VAT produces an implied net of one hundred point eight-three and VAT of nineteen point one-six, which will not match the clean net price in the UK base. The VAT return is still correct because it is based on the euro gross actually charged, but the internal margin reporting will show small inconsistencies that accountants flag. The answer is to accept the drift, treat each market's price as authoritative in its own currency, and reconcile at the gross level.
Australia, Canada, And The Thresholds That Sneak Up
Australia charges a ten percent goods and services tax and requires non-resident sellers to register once their Australian turnover crosses seventy-five thousand Australian dollars. The tricky part is that low-value imported goods, defined as consignments at or below one thousand Australian dollars, have been in scope since 2018, which means a UK store shipping tee shirts to Sydney is on the hook for GST collection once it crosses the threshold. The Australian Competition and Consumer Commission also requires GST-inclusive display for consumer-facing prices, mirroring the UK rule. Configure the AU market as tax-inclusive in Shopify, enter the ABN under tax registrations, and the platform will charge and display correctly.
Canada layers federal GST at five percent with provincial sales taxes that vary from zero in Alberta to the harmonised HST of fifteen percent in Nova Scotia, plus Quebec's separate QST and the provincial PST in British Columbia, Saskatchewan, and Manitoba. Prices to Canadian consumers are displayed tax-exclusive, matching the US convention, but the calculation is destination-based so Shopify Tax with a valid Canadian registration will resolve the correct combined rate. The federal GST threshold is thirty thousand Canadian dollars of worldwide taxable supplies, which most serious exporters will cross quickly.
The B2B Tax-Exempt Override That Plus Merchants Miss
Shopify B2B, available on Plus plans, introduces company-level tax handling that is distinct from the storefront rules applied to consumers. A verified business buyer with a valid EU VAT number qualifies for reverse charge treatment on cross-border intra-EU sales, meaning the supplier zero-rates the invoice and the buyer self-accounts for VAT in their own jurisdiction. For this to work, the buyer's VAT number must be validated against VIES, the EU's verification system, and the company profile in Shopify must carry the tax-exempt flag. Without that validation, the default is to charge VAT, and the B2B buyer ends up with an invoice they cannot reclaim cleanly.
UK to EU B2B shipments post-Brexit follow a similar reverse charge pattern for services and for goods above the low-value threshold, with the added complication that goods shipments require commercial invoices and customs declarations. US resellers buying from a UK or EU supplier typically present a resale certificate, and the merchant uploads it against the company record to turn off sales tax collection for that buyer. Shopify B2B supports all of this through the company profile, but the defaults do not enforce verification. A store that opens B2B without wiring up VIES validation, or without a process for collecting resale certificates, will either overcharge exempt buyers and lose the account, or undercharge taxable buyers and carry the liability to their own return.
A Configuration Audit That Takes Thirty Minutes
For any Shopify store already selling internationally, an audit of the tax configuration is worth doing at least quarterly, and certainly after any change to markets, catalogue pricing, or B2B structure. Open Settings, Markets, and confirm that every active market has the correct currency, pricing strategy, and tax inclusion preference. Move to Settings, Taxes and duties, and confirm that every region where you are registered has a valid registration entered, and that every region where Shopify reports approaching nexus has a plan. Open the product catalogue and spot-check the tax codes assigned, particularly for categories with exemptions such as children's clothing in the UK or groceries in the US. Place a test order from each market's perspective, using a VPN or a test account with a local address, and verify that the displayed price, the tax line, and the total match what the law requires for that jurisdiction.
The outcome of that audit is usually two or three small fixes that compound into measurable margin recovery. A UK display that was showing net prices starts converting at its proper rate because the sticker shock disappears. An EU market that was failing to collect VAT because IOSS was not flagged starts clearing customs cleanly, which reduces refunds from abandoned parcels. A B2B account that was being overcharged VAT gets its reverse charge applied, which retains the buyer through their next reorder cycle. None of these are heroic engineering projects. They are configuration choices in the admin that nobody made because the default was plausible enough to leave alone.
Where WitsCode Comes In
The stores we work with at WitsCode tend to reach us at one of two points. The first is pre-launch into a new region, when the founder knows they need to get the tax right but does not want to spend six weeks deciphering the intersection of Shopify Markets, IOSS, and their accountant's spreadsheet. The second is post-launch, usually after a VAT return reveals a collection gap or after customer service has spent a quarter fielding customs-fee complaints. In both cases, the work looks similar: audit the current configuration against the regions where the store actually sells, register where registration is overdue, configure Shopify Markets to match the display and collection rules for each region, wire up B2B exemptions where they apply, and document the setup so that future changes, whether a new product category, a new shipping destination, or a new price list, do not silently break the model.
If you are running a Shopify store with cross-border ambition and any of the scenarios in this article sound familiar, the international tax engagement at WitsCode is designed to close those gaps without disrupting the store. We will review your current markets, your registrations, your catalogue tax codes, and your B2B configuration, and return with a concrete plan to bring the setup in line with the regimes you are actually operating in. Getting the tax math right does not win a customer, but getting it wrong loses them twice, once at checkout and again at the doorstep. It is worth closing the loop before the next quarter's returns come due.
Get weekly field notes.
Practical writing on shipping products, straight to your inbox. No spam.
Need help with this?
Shopify Development
We design and build web apps, MVPs, and SaaS products. Talk to us about what you are working on.
Talk to usWant to discuss ecom for your business?
Start a project and we'll talk through where you are, what's working, and the highest-leverage moves for the next 90 days.

