What Is EU VAT OSS (One Stop Shop)? A Plain-English Guide
If you sell from a WooCommerce store to customers in other EU countries, “OSS” and the “EUR 10,000 threshold” eventually land in your inbox — usually from an accountant, and usually without much explanation. This guide is the plain-English version: what the EU VAT One Stop Shop is, when it starts to matter, and how Sellinor’s plugin keeps you on the right side of the line.
Not tax advice. This article explains the rules in general terms. VAT depends on your specific situation and changes over time — confirm your actual registration and reporting obligations with a qualified tax professional.
What the One Stop Shop actually is
Before July 2021, every EU country set its own distance-selling threshold — often somewhere between EUR 35,000 and EUR 100,000 — and once you crossed a country’s threshold you had to register for VAT in that country. Sell into five countries and you could face five registrations and five sets of returns.
The EU’s e-commerce VAT package, in force from 1 July 2021, replaced that patchwork with two things:
- A single pan-EU threshold of EUR 10,000 on your total cross-border B2C sales to all other member states combined, per calendar year.
- The One Stop Shop (OSS) — a way to declare all of that EU VAT through one quarterly return filed in your home country, instead of registering in each destination.
OSS covers cross-border B2C sales of physical goods and digital services to consumers. It is the intra-EU scheme — not IOSS, which deals with low-value imports from outside the EU. (Sellinor’s plugin tracks the intra-EU OSS threshold; it does not handle IOSS or import VAT.)
The EUR 10,000 threshold and “destination VAT”
Below EUR 10,000 in combined cross-border B2C sales, you can keep charging your home-country VAT rate on those sales. The moment your running total crosses EUR 10,000 in a calendar year, the rule flips: you must charge each customer the VAT rate of their own country — this is what “destination VAT” means.
Two details trip people up:
- It’s cumulative across countries. EUR 4,000 to France plus EUR 4,000 to Germany plus EUR 3,000 to Spain is EUR 11,000 — over the line, even though no single country is large.
- Once you cross, you stay crossed. Destination VAT applies for the rest of that calendar year, and — because exceeding the threshold one year obligates you for the next — for the whole following year too.
OSS doesn’t lower your VAT bill; it removes the need for many separate registrations. You still charge the right destination rate per sale, but you report it all in one place.
B2B is different: the reverse charge
The threshold is about B2C — sales to consumers. Cross-border B2B sales, where your customer is a VAT-registered business in another member state, generally fall under the reverse charge: you don’t charge VAT, and the buyer accounts for it in their own country. A zero-rated intra-Community supply must carry an explicit reverse-charge statement (Article 138 of the EU VAT Directive) and the buyer’s VAT number.
Because B2B sales sit outside OSS, correctly separating them from B2C is essential — counting a business order toward your EUR 10,000 threshold inflates your position and could push you to register before you actually need to.
Digital vs physical: where the sale “happens”
EU place-of-supply rules decide which country a sale is taxed in:
- Digital products (orders made up entirely of virtual or downloadable items) are taxed where the customer belongs — the billing country in the plugin’s model.
- Physical goods are taxed at the destination they ship to (falling back to billing when no shipping address is present).
That distinction matters for getting the right country — and the right rate — on every order.
How Sellinor tracks your position
Sellinor EU VAT One Stop Shop for WooCommerce is built around one job: telling you, in real time, where you stand against the EUR 10,000 threshold so the change in your obligations never catches you out. It prepares figures — it does not file or submit your return.
Free features:
- Real-time threshold tracking. One running total per calendar year, aggregated per destination country, updated live as orders reach Processing or Completed. Each qualifying order is tracked as its total minus tax (shipping in, VAT out), in EUR.
- Automatic order classification. Every order is sorted into Domestic, Non-EU, EU B2B, EU B2C, or No country — only cross-border EU B2C counts. Digital orders use the billing country, physical goods use shipping (billing fallback), special territories like the Canary Islands are excluded, and Northern Ireland (a GB address with a BT postcode, treated as XI) stays in scope for goods.
- Honest refund handling. Refunds, cancellations, and status reversals reduce the total automatically via a per-order ledger, with no double-counting. But once you cross in a year, the year stays exceeded and the next year is treated as obligated from the start.
- A B2B VAT-number field at checkout (classic and block) with local format validation — no external lookup. A malformed number never silently hides a sale — it keeps counting and is flagged for review.
- A colour-coded dashboard at WooCommerce → One Stop Shop, an orders-list OSS status column, admin notices at 70% and on crossing, and one email alert when you hit 100% of the threshold.
The free plugin tracks EUR stores and makes no external requests for classification.
Pro add-on layers on the parts that require live data or filing prep: live VIES verification that can zero-rate confirmed cross-border B2B orders with the Article 138 statement (Pro); automatic import of each member state’s standard destination rate when you cross (Pro); ECB-based multi-currency conversion for non-EUR stores (Pro); quarterly country-by-country OSS reports with CSV export (Pro); and predictive forecasting with 70% / 90% early-warning emails (Pro).
One caveat worth repeating: the plugin works with standard VAT rates only. Reduced and zero rates for specific product categories are not handled automatically — and, as always, confirm your real obligations with a qualified tax professional.
Frequently asked questions
What is the EU VAT One Stop Shop (OSS)?
OSS is an EU scheme that lets you report VAT on cross-border B2C sales of goods and digital services to other EU member states through a single quarterly return, instead of registering for VAT in every country you sell to.
What is the EUR 10,000 OSS threshold?
It is a single pan-EU limit, introduced 1 July 2021, on your total cross-border B2C sales to all other EU countries combined in a calendar year. Below it you can charge home-country VAT; once you cross it, you must charge each customer's destination-country VAT rate.
Does the Sellinor plugin file my OSS return for me?
No. The plugin prepares figures — a live threshold position, a per-country breakdown, and (with Pro) quarterly country-by-country reports — but it does not submit anything to any tax portal. You or your accountant file the return.
How does the plugin decide which orders count toward the threshold?
It classifies every order automatically as Domestic, Non-EU, EU B2B, EU B2C, or No country. Only genuine cross-border EU B2C sales count. Digital orders use the billing country and physical goods use the shipping country, following EU place-of-supply rules.
Is VIES VAT-number verification included for free?
No. The free plugin checks a B2B VAT number's format locally and excludes the order on that basis. Live verification against the EU VIES service — which can zero-rate a confirmed cross-border B2B order at checkout — is a Pro feature and requires the PHP SOAP extension.
Does the plugin handle reduced or zero VAT rates?
No. It works with each member state's standard VAT rate only. Reduced and zero rates for specific product categories are not handled automatically and must be configured manually if they apply to your catalog.
Know exactly where you stand against the EUR 10,000 threshold
Sellinor EU VAT One Stop Shop for WooCommerce tracks your cross-border B2C sales in real time and tells you the moment destination VAT becomes required. Start free.
See plans & pricingOr read the documentation.