When to Go International: VAT, Localisation and the Tooling That Matters
One EUR 10,000 threshold replaced 27 national ones. Here is what OSS, IOSS and the £135 UK rule actually require, and how the four big platforms handle it.

The most expensive way to sell internationally is by accident. You switch on worldwide shipping, orders start arriving from Germany and France, and nine months later you find out you crossed a VAT registration threshold in month two and owe back tax in a country you've never visited.
That used to be much harder to avoid than it is now. Before July 2021 there were 27 separate national distance-selling thresholds, each with its own registration process, and a growing store could trip several of them in a year without noticing. That whole regime is gone. One EU-wide threshold of EUR 10,000 replaced the lot, and a single registration now covers sales to all 27 member states[1].
The Commission's own estimate is that this reduces administrative burden by up to 95%[1]. That figure comes from the body that designed the scheme, so treat the number as promotional. The structural simplification is real regardless.
What follows is the practical version: what OSS and IOSS actually are, what the UK does differently, which of it your platform handles and which of it you handle, and the three things that break first when a domestic store starts selling abroad.
What actually changed, and what did not
What changed
From 1 July 2021, the previous national distance-selling thresholds were abolished and replaced by a single EU-wide threshold of EUR 10,000[1]. Below it you can keep charging your home country's VAT. Above it, VAT is due where the customer is, and you account for all of it through one One Stop Shop return in one member state[2].
Also gone: the VAT exemption on imported consignments valued up to EUR 22. Every good imported into the EU now carries VAT[1]. The Import One Stop Shop was created alongside it, letting you collect VAT at checkout on consignments up to EUR 150 and remit through a single return rather than having it charged to the customer at the border[1].
What did not change
Rates. Every member state still sets its own, they still differ by product category, and reduced rates on books, food and children's clothing are still a minefield. OSS simplified the filing. It did nothing about the rate determination, which is where the actual work is.
Also unchanged: customs. IOSS handles VAT on low-value consignments. It does not handle duty, and it does not handle the paperwork. Those remain yours or your carrier's.
Does this actually impact you?
Four questions, and the first one is the only one most stores need.
Are your cross-border EU sales over EUR 10,000 a year? Total across all member states, not per country. If yes, you're destination-taxed and you need OSS or 27 registrations[1].
Are you shipping into the EU from outside it? Then IOSS applies to consignments under EUR 150 and you have a choice: collect at checkout via IOSS, or let the customer get a surprise bill from the courier. The second option is legal and it destroys your reviews.
Are you selling into the UK from outside it? This one catches people. The UK VAT registration threshold is £90,000 of taxable turnover, but that applies to UK-established businesses. If your business is based outside the UK and you supply goods or services to the UK, you must register regardless of turnover[3]. There is no threshold. The first £30 order triggers it.
Do you hold stock in a country you're not established in? Then you almost certainly need a local registration there, OSS or not. Fulfilment centre placement is a tax decision that gets made by a logistics team.
The stakes if you get it wrong
VAT liability doesn't expire quietly. Tax authorities assess backwards, with interest and penalties, and the amount owed is calculated on gross sales rather than on your margin. A store doing £200,000 of German sales at 19% that never registered is looking at a number that exceeds its annual profit.
The second cost is quieter and more common: the delivered-duty-unpaid customer experience. You ship to a customer in Ireland, the courier charges them VAT plus a handling fee at the door, they refuse the parcel, and you pay return shipping on an item that comes back damaged. Your margin on that order is deeply negative and you've lost the customer. That's what IOSS exists to prevent.
What we found: how the four platforms handle destination VAT
We read the current documentation for Shopify, WooCommerce, Adobe Commerce and BigCommerce on multi-currency, tax determination and duty collection. The finding is a clean split that maps almost exactly onto the hosted-versus-self-hosted line.
| Multi-currency | Destination VAT rates | Duty at checkout | Where the work lands | |
|---|---|---|---|---|
| Shopify | Native, per market[4] | Native | Native, needs HS codes[5] | Product data |
| BigCommerce | Native, multi-currency API[6] | Native or via tax provider | Via provider | Configuration |
| Adobe Commerce | Per website scope[7] | Tax rules you define | Extension | Implementation |
| WooCommerce | Plugin | Plugin or tax service | Plugin | Plugin selection and maintenance |
The non-obvious finding is where the effort moves rather than whether it exists.
On Shopify, duty collection at checkout is native, but it will not work at all until you've added HS codes and country of origin to every product. Shopify's own documentation states plainly that "HS codes are required for all international orders"[5]. So the feature is free and the prerequisite is a catalogue data project, which is the same catalogue data project that keeps appearing in the PIM discussion.
Second finding, from Shopify's own docs and worth flagging because it catches people out: carrier brokerage and disbursement fees are not included when you charge duties at checkout[5]. You've told the customer their total is final. The courier can still add a handling fee. That gap is a support ticket waiting to happen and you should price it into your shipping rate.
Third: on Adobe Commerce, multi-store scope is genuinely the best model here for a serious multi-country operation, because websites, stores and store views let you run different catalogues, currencies, tax rules and content per market from one installation[7]. It's also the most work to set up by a wide margin. That trade-off is the whole Magento story in miniature.
OSS and IOSS, practically
The Union OSS scheme
If you're established in the EU and selling cross-border to consumers in other member states, you register for OSS in your own member state and file one quarterly return covering all of them[8]. You still charge each country's rate. You just don't file 27 returns.
The non-Union scheme, and UK sellers
If you're outside the EU, including the UK post-Brexit, you can still use OSS for services and IOSS for low-value goods, but you'll generally need an EU-established intermediary to register on your behalf. That intermediary is jointly liable, which is why they charge what they charge and why they ask so many questions.
IOSS and the EUR 150 line
IOSS covers consignments up to EUR 150 intrinsic value[1]. Above that, normal import procedures apply and VAT plus duty is collected at the border. Note that it's the consignment value, not the item value. Two £90 items in one parcel is a EUR 150-plus consignment and falls outside IOSS. Split-shipment logic in your fulfilment layer is a real design decision, not a nicety.
The UK's £135 rule
The UK runs a structurally similar scheme with a different number. Goods outside the UK at the point of sale, in a consignment valued at £135 or less, are subject to UK VAT at the point of sale rather than at import, and the overseas seller must register and account for it[9]. If the customer is UK VAT-registered and gives you their number, you can apply the reverse charge and note it on the invoice instead[9].
If your goods are already in the UK when sold, registration is required for any sale to a customer, regardless of value[9]. Which brings us back to the fulfilment-centre point. Where your stock sits determines your obligations.
One more UK wrinkle that catches subscription and high-return categories: there's separate HMRC guidance on goods sent to the UK and then returned to the seller, and the VAT treatment is not symmetrical with the outbound sale[16]. If you're running a try-before-you-buy model into the UK from outside it, read that before you model the margin.
If you are on Shopify
What Markets gives you
Shopify Markets bundles multi-currency, international domains, market-specific pricing, localisation and translation into one place[4], and it's a first-class object in the Admin API if you need to drive it programmatically[17]. For a store going from one country to five, this is the least painful path available on any platform and it's the honest answer to "which platform should I use to go international".
Where Shopify stores come unstuck
Three places.
HS codes. Nothing works without them. Not duty collection, not accurate landed cost, not clean customs paperwork[5]. Budget a real project for a catalogue of any size.
Rounding and price psychology. Automatic currency conversion produces prices like EUR 43.27. Market-specific price lists let you set EUR 44.95 instead. Most stores never do it and it reads as amateur in every market except the one they started in.
Translation that stops at the theme. Your navigation gets translated. Your product descriptions, your size guide, your returns policy and your checkout error messages often don't. A German shopper hitting an English returns policy at the decision point is 13% abandonment in Baymard's data[10].
Not on Shopify? The other platforms
WooCommerce
Everything is a plugin, which means everything is a decision and a maintenance liability. Multi-currency, tax determination, translation and duty each need one, and they need to agree with each other about what a "market" is.
The pragmatic Woo approach for international: pick a hosted tax service that handles rate determination and OSS reporting, rather than a rate-table plugin you maintain by hand. Stripe Tax publishes the countries it covers, which is a useful sanity check against wherever you're actually selling[15]. Rates change. Reduced-rate categories change. A table you exported in 2024 is wrong now and nothing will tell you.
The REST API is solid if you're pushing orders into an accounting system for OSS reporting, which is usually the right architecture[11].
Magento and Adobe Commerce
The websites, stores and store views hierarchy is the most capable multi-market model of the four[7]. Separate catalogues per country, separate tax rules, separate currencies, separate content, one admin.
The cost is that you have to design it, and mistakes at the scope level are expensive to unwind. Decide early whether a market is a store view (same catalogue, different language) or a website (different catalogue, different tax). Getting that wrong is a re-platform inside your platform.
BigCommerce
Native multi-currency with a documented currencies API and a reasonable set of tax provider integrations[6]. It sits between Shopify's opinionated simplicity and Magento's configurability, which is BigCommerce's position on most things.
Headless and custom builds
You own tax determination, which is the single hardest thing on this list to get right and the easiest to get subtly wrong. Use a tax API rather than a rate table. And be careful with caching: a cached product page showing the wrong currency or a VAT-inclusive price to a customer in a VAT-exclusive market is a class of bug that is very hard to notice and very easy to ship.
The obligations you'll meet that aren't tax
Going international drags in a set of rules that have nothing to do with VAT and that people discover late.
Geo-blocking
Regulation (EU) 2018/302 restricts your ability to block or redirect customers based on their nationality or residence within the EU[12]. You don't have to ship everywhere. You do have to let an EU customer buy on the same terms as a local one where you do sell.
Product safety
The General Product Safety Regulation, (EU) 2023/988, has applied since December 2024 and requires a responsible person established in the EU for products placed on the EU market[13]. For a UK seller shipping into the EU, that's a real obligation with a real cost and it's separate from everything tax-related. The UK runs its own product safety regime in parallel[14], so selling both ways means satisfying both.
Consumer withdrawal rights
EU shoppers have a 14-day cooling-off period and, since June 2026, the right to start a withdrawal online in two clicks without logging in. We've written that up separately in the right of withdrawal piece, and it's the single most-read thing on this site, which tells you how many people got caught by it.
Accessibility
Selling to EU consumers puts you in scope of the European Accessibility Act unless you're a microenterprise. Covered here.
Data protection
Selling into the EU brings your customer data into scope of EU data protection rules regardless of where you're established[19], and cross-border consumer enforcement is coordinated between national authorities under the CPC Regulation, which is why a complaint in one member state can travel[20]. If you're selling digital goods alongside physical, the portability rules are worth a read too[18].
The go-international readiness checklist
| # | Item | Done when |
|---|---|---|
| 1 | Cross-border EU sales measured against EUR 10,000 | You know the number for the last 12 months[1] |
| 2 | OSS or IOSS registration decided | Registered, or documented why not[2] |
| 3 | UK position checked if you're not UK-established | You know there's no threshold[3] |
| 4 | HS codes on every product | Coverage above 99%[5] |
| 5 | Country of origin on every product | Same |
| 6 | Landed cost shown at checkout, DDP not DDU | Customer never gets a courier bill |
| 7 | Brokerage fees priced into shipping | You've read the exclusion in the docs[5] |
| 8 | Prices rounded per market, not converted | No EUR 43.27 anywhere |
| 9 | Returns policy translated and locally credible | Return address in-region, or clearly stated |
| 10 | Payment methods match each market | See the payments piece |
| 11 | Withdrawal function live for EU customers | Two clicks, no login |
| 12 | GPSR responsible person appointed if shipping to EU | Named and documented[13] |
| 13 | Geo-blocking rules reviewed | No nationality-based redirects[12] |
| 14 | Stock locations mapped to registrations | Every warehouse country accounted for |
What AI agents change about selling abroad
Agents are worse at ambiguity than humans and better at comparison. Both cut the same way for an international store.
An agent comparing your product against three others cares about the landed price, delivered, including tax and duty, in the shopper's currency. If your page shows an ex-VAT price with duty determined later, the agent either can't compare you or compares you unfavourably against a competitor who publishes a final number.
Same for delivery time. "3 to 10 working days" is not comparable data. A date is. And the third thing an agent needs before committing somebody's money is the return terms, which for a cross-border purchase means who pays return shipping and where it goes.
All three of those are things you should publish for humans anyway. Going international just makes the gap between "we have this information internally" and "it's on the page as data" cost you real orders.
What to do this week
- Pull your last twelve months of orders by delivery country. Sum the EU cross-border total. Compare to EUR 10,000[1].
- If you're not UK-established and you've shipped to the UK, check your registration position today. There is no threshold and the liability is retrospective[3].
- Audit HS code coverage. Export your catalogue, count the blanks. That number is your project size.
- Place a test order to your second-biggest export market and see whether the customer would get a courier bill.
- Check your prices in each currency for unrounded conversions.
- Read your own returns policy as a French customer would. Is the return address in France? If not, does it say so before checkout?
- Ask your accountant one question: are we filing OSS, and if not, why not. Write down the answer.
The takeaway
The EU made cross-border VAT dramatically simpler in 2021 and a lot of merchants are still operating as though it didn't. One threshold, one registration, one return[1]. The hard part moved from filing to product data: HS codes, country of origin, landed cost, and translated policies.
Which means the bottleneck on going international is now the same bottleneck as on agent visibility and on merchant feeds. Your catalogue. That keeps being the answer and I've been slow to say it plainly enough.
The thing I'd do differently, having watched several stores do this badly: don't switch on worldwide shipping and see what happens. Pick one market, do it properly, and only then add the second. The stores that opened everywhere at once are the ones with the retrospective VAT bills.
Which country is your second-biggest by revenue right now, and are you registered there?
Sources
- European Commission, "VAT One Stop Shop". Accessed 22 July 2026.
- European Commission, "One Stop Shop". Accessed 22 July 2026.
- HM Government, "VAT registration: when to register", GOV.UK. Accessed 22 July 2026.
- Shopify, "Managing international sales". Accessed 22 July 2026.
- Shopify, "Duties and import taxes". Accessed 22 July 2026.
- BigCommerce, "Currencies". Accessed 22 July 2026.
- Adobe, "Websites, stores and store views". Accessed 22 July 2026.
- European Commission, "Declare and pay OSS". Accessed 22 July 2026.
- HM Revenue & Customs, "VAT and overseas goods sold directly to customers in the UK", GOV.UK. Accessed 22 July 2026.
- Baymard Institute, "Cart Abandonment Rate Statistics". Accessed 22 July 2026.
- WooCommerce, "WooCommerce REST API". Accessed 22 July 2026.
- European Union, Regulation (EU) 2018/302 on unjustified geo-blocking, EUR-Lex.
- European Union, Regulation (EU) 2023/988 on general product safety (GPSR), EUR-Lex.
- HM Government, "Product safety advice for businesses", GOV.UK. Accessed 22 July 2026.
- Stripe, "Stripe Tax supported countries". Accessed 22 July 2026.
- HM Revenue & Customs, "VAT and overseas goods sent to the UK and returned to the seller", GOV.UK.
- Shopify, "Market object, Admin GraphQL API". Accessed 22 July 2026.
- European Union, Regulation (EU) 2017/1128 on cross-border portability, EUR-Lex.
- European Commission, "Data protection". Accessed 22 July 2026.
- European Commission, "Consumer Protection Cooperation Regulation". Accessed 22 July 2026.