Get a free audit
Get a free audithello@conversionsking.online

EU VAT, OSS and IOSS for Shopify Stores Running NetSuite

How EU VAT, the €10,000 threshold, OSS and IOSS work for Shopify brands on NetSuite: nexuses, tax codes, tax schedules and the quarterly OSS return.

EU VAT, OSS and IOSS for Shopify Stores Running NetSuite

A Shopify store running NetSuite handles EU VAT by letting Shopify charge the customer’s local VAT rate once cross-border consumer sales pass the EU-wide €10,000 threshold, then posting each order to NetSuite with an OSS nexus and tax code. NetSuite then produces the quarterly Union OSS return. IOSS covers imported consignments worth €150 or less.

That is the short answer. The detail sits in how the two systems agree on each order: which country the goods left from, which rate applied, how refunds and currencies are recorded, and which NetSuite tax setup you run. This article is general information, not tax advice. VAT rules and thresholds change, and your registrations depend on how your group is structured, so confirm your position with a qualified VAT adviser before you change any settings.

Key takeaways

  • One EU-wide €10,000 threshold applies to cross-border B2C sales of goods and certain digital services by sellers established in one EU country. Above it, you charge the customer’s local VAT.
  • The Union OSS lets you report that VAT in one quarterly return instead of registering in every country.
  • IOSS covers goods imported into the EU in consignments of €150 or less, with a monthly return. Since 1 July 2026 these parcels also carry a temporary €3 customs duty per item category.
  • In NetSuite, SuiteTax and Legacy Tax handle OSS differently. Both create OSS tax codes for you once the OSS nexus is set up.
  • The integration must send the ship-to country, the ship-from location, tax lines and currency, or the OSS return will not match what Shopify charged.

How do the €10,000 threshold and OSS work?

Since 1 July 2021, the old national distance-selling thresholds have been replaced by a single EU-wide threshold of €10,000. It counts your combined cross-border sales of goods to consumers in other EU countries, plus telecoms, broadcasting and electronically supplied services, across the current and previous calendar year. The threshold only helps sellers established in a single EU country. Below it, you can charge your home country’s VAT. Above it, you charge VAT at the rate of the country where the goods arrive.

Charging 27 countries’ VAT would normally mean 27 registrations. The One Stop Shop (OSS) avoids that. You register in one Member State of identification and file one return covering all of your distance sales. According to the Commission’s guidance on declaring and paying OSS, the Union and non-Union schemes use calendar quarters, the import scheme uses calendar months, and each return and payment is due by the end of the month after the period. For the Union scheme, that means 30 April, 31 July, 31 October and 31 January. Corrections to earlier periods go into a later return, within three years of the original deadline.

OSS does not cover everything. Domestic sales, B2B sales and sales made from stock you hold in another EU country still need a local VAT registration there. Moving your own stock to a warehouse in another member state is also outside OSS. If you run fulfilment from more than one EU warehouse, read our guide to inventory sync across EU warehouses alongside this one.

What is IOSS, and when does a €150 consignment use it?

The Import One Stop Shop (IOSS) is for goods shipped into the EU from outside it, in consignments with an intrinsic value of €150 or less, excluding excise goods such as alcohol and tobacco. You charge EU VAT at checkout, the parcel clears customs without the customer paying import VAT, and you report the sales in a monthly IOSS return. Above €150, IOSS is not available and normal import VAT and duty rules apply at the border.

Two changes in 2026 matter here. First, the EU ended the customs duty exemption for low-value parcels. The Commission’s guidance on the temporary flat duty sets a €3 customs duty per item from 1 July 2026, counted by tariff classification rather than by quantity. Five identical T-shirts attract one €3 charge. A T-shirt and a watch attract €6. It applies until 1 July 2028, when normal duty rates are due to take over. The same page mentions a separate EU handling fee with no confirmed amount or start date at the time of writing.

Second, Shopify’s own setup changed. Its EU tax guidance says IOSS and the duties and import taxes feature cannot both be active at checkout. If you turn on duties for the EU, that feature handles all taxes on EU orders and your IOSS number is no longer used at checkout. Decide which route you want before you build the NetSuite side, because each produces different tax lines on the order.

Which EU VAT scheme applies to which sale?

SchemeTypical Shopify saleReturnWhere you file
Union OSSB2C goods shipped from one EU country to a consumer in another, above the €10,000 thresholdQuarterlyMember State of identification
Non-Union OSSServices to EU consumers from a business not established in the EUQuarterlyOne chosen member state
IOSSB2C goods imported into the EU in consignments of €150 or lessMonthlyMember State of identification
Local VAT registrationDomestic sales, sales from local stock, B2B sales, stock transfersNational rulesEach country concerned

How do NetSuite nexuses, tax codes and tax schedules map to OSS?

NetSuite supports OSS under both of its tax engines, and the mapping differs.

SuiteTax accounts

When you save your OSS setup, Oracle’s documentation on OSS tax code provisioning says the SuiteTax Engine creates OSS tax types, tax codes and tax accounts for each Member State of identification. There is one OSS tax code per rate type for all EU countries, and the code holds no rate itself. With Germany as the Member State of identification, the standard-rate code is OSS(DE)_SR. The rate comes from combining the code with the customer’s OSS country. SuiteTax also adds an “OSS Distance Sale” tax transaction type to the default tax codes on each nexus.

On each transaction, the OSS lookup logic checks whether the sale is an OSS sale. If it is, SuiteTax sets the nexus to your Member State of identification and the transaction type to OSS Distance Sale. It then looks for an OSS tax schedule for that item and country, and falls back to the nexus default if none exists. You only need OSS tax schedules for items that should not use the default, such as reduced-rate books, children’s clothing or food in some countries. Each item can belong to only one OSS tax schedule.

Legacy Tax accounts

In accounts without SuiteTax, enabling the EU VAT One Stop Shop feature and giving a subsidiary an OSS nexus provisions codes named by rate, country of consumption and OSS nexus, such as SR-FR-DE, according to Oracle’s EU OSS tax code provisioning notes. Goods are treated as subject to OSS automatically. Service items have to be marked manually.

Either way, the nexus belongs to a subsidiary. If you run several legal entities in OneWorld, each OSS registration sits with the subsidiary that holds it. Our article on Shopify Markets and NetSuite OneWorld covers how to route orders to the right subsidiary.

What should the integration send from Shopify to NetSuite?

The OSS return is only as good as the orders behind it. These are the fields we map on every EU build:

Shopify dataNetSuite useWhy it matters for OSS
Shipping address countryShip-to address, OSS countryDecides the rate and the country line on the return
Fulfilment locationLocation and ship-fromA sale from local stock is domestic, not OSS
Tax lines (rate, amount, title)Tax detail or variance checkProves what the customer was charged
Taxes included flagGross or net line amountsStops VAT being added twice
Presentment and shop currencyTransaction currency and exchange rateOSS returns are made out in euro, or the national currency where a member state requires it
Customer VAT numberCustomer record and tax registrationB2B sales fall outside OSS
RefundsCredit memos in the right periodCorrections belong in a later return

Should NetSuite recalculate the tax or trust Shopify?

Shopify Tax and NetSuite will not always agree to the cent. Rounding happens at different levels, discounts are spread differently and shipping may be taxed differently. Our usual approach is to post the tax Shopify actually charged, so the books match the customer’s receipt, and to flag any order where NetSuite’s own calculation differs by more than a small tolerance. Silent recalculation hides problems until the return is due. You can read more about how we structure order flows on our Shopify to NetSuite integration page.

How do you file the OSS return from NetSuite?

In SuiteTax accounts, you first set the reporting frequency under Setup > Tax Reporting > Country Tax Report Preferences, choosing the OSS-enabled subsidiary and its OSS nexus. NetSuite can then generate the Union OSS VAT return, which takes the Member State of identification from the subsidiary’s nexus and the VAT number from your OSS preferences. NetSuite prepares the figures. You still submit the return through your Member State of identification’s portal.

Before each quarter-end, we suggest three checks:

  1. Reconcile tax collected to tax reported. Total Shopify tax on EU orders for the quarter should match the OSS liability in NetSuite, after refunds.
  2. Check orders with no OSS code. These are usually orders shipped from a local warehouse, B2B orders or orders where the country did not map.
  3. Check the payout side. If payouts are reconciled separately, refunds and chargebacks may sit in a different period. Our guide to Shopify payouts reconciliation in NetSuite covers this.

OSS records must be kept for ten years and made available to tax authorities on request, so keep order-level detail, not just summary journals.

Where do OSS integrations usually go wrong?

  • Multiple warehouses. Shopify picks a fulfilment location per order. If NetSuite does not receive that location, a domestic sale from a Dutch warehouse can end up on the OSS return as a distance sale.
  • Mixed-rate baskets. Reduced-rate items need a Shopify product tax setting and a matching NetSuite tax schedule. If only one side is set, the totals drift.
  • Refunds across quarters. A refund in April for a March sale is a correction. It should flow into the next return, not reopen the old one.
  • Rate changes. When a country changes a rate, both Shopify and NetSuite must reflect it from the same date.
  • B2B orders through the same store. A business customer with a valid VAT number is usually outside OSS. If you sell wholesale through Shopify, see our guide to Shopify B2B with NetSuite in Europe.

For the bigger picture across tax, currencies and entities, our Shopify NetSuite integration guide for Europe and the NetSuite Shopify integration in Europe hub are good next reads. If you also sell into Britain, read UK VAT after Brexit for Shopify and NetSuite.

FAQ

Do I need OSS if I only sell in my own EU country?

No. OSS is for cross-border sales to consumers in other EU countries. Sales to customers in your own country are reported in your normal domestic VAT return.

Does the €10,000 threshold apply to non-EU sellers?

No. The threshold is only available to sellers established in a single EU member state. A business established outside the EU charges destination VAT from the first sale. If it holds stock in the EU, it can generally use the Union OSS for distance sales from that stock.

Can NetSuite file the OSS return for me?

NetSuite prepares the Union OSS VAT return and a detailed report behind it. Submission and payment happen through the OSS portal of your Member State of identification, usually by you or your adviser.

Should I use IOSS or Shopify’s duties feature for EU orders?

It depends on your volumes, the goods and who you want to act as the declarant. Shopify does not allow both at checkout for the EU. Agree the choice with your VAT adviser, then configure NetSuite to record whichever tax lines that route produces.

If your OSS return takes days of spreadsheet work each quarter, the problem is usually in the order data, not the return. Book a free NetSuite Shopify integration assessment and we will review how your EU orders reach NetSuite and where the tax mapping breaks.

All articlesWork with us