Digital Goods VAT OSS Guidance: The EU Rules Explained

Everyone selling online has heard the same line by now. Register for OSS, charge local VAT, file one return, done. So why do so many store owners still get this wrong in their first year?
Here’s what’s actually happening. OSS is simple on paper and messy in practice, because the mess lives in the details nobody puts in the summary bullets. Which country’s rate applies when a customer’s billing address and card issuer disagree. What happens the quarter you sell zero. Whether your WordPress checkout is even capturing the evidence you’d need if audited.
We’re going to walk through it properly, the actual mechanics, sourced from the European Commission’s own OSS portal.
TL;DR
- OSS lets you register once in one EU country and file one quarterly return for all EU B2C sales, instead of registering in 27 countries
- The EUR 10,000 threshold is EU-wide and combines all your cross-border digital and TBE sales, not per-country
- You charge VAT at your customer’s country rate, not your own, once you’re over the threshold
- Non-EU sellers use the Non-Union OSS scheme and don’t need a separate EU VAT registration first
- B2B sales to VAT-registered EU businesses use reverse charge instead, which takes them out of OSS entirely
- Returns are due by the last day of the month after each quarter, and nil returns are mandatory even with zero sales
- You need to keep two pieces of non-contradictory location evidence per customer, stored for 10 years

What Is OSS and VAT
Before any of this makes sense, two acronyms need to actually mean something.
VAT stands for Value Added Tax. It’s the consumption tax added to almost everything sold in the EU, collected at the point of sale. OSS stands for One Stop Shop. It’s the system built specifically to make paying that tax across 27 different countries less of a nightmare.
That’s it. Now the actual story can start.
One more thing before we go further, and keep this in the back of your mind because it changes everything later. Everything in the next few sections is about selling to individual customers, what’s usually called B2C. If you’re selling to other registered businesses instead, the rules flip almost completely, and a different mechanism called reverse charge takes over. We’ll get there properly, but not yet.
What OSS Actually Solves
Let’s say a solo developer builds a Notion template pack and starts selling it worldwide through a WordPress store. First month, three sales land in Germany, France, and Poland. Before July 2021, that meant three different VAT registrations, three different filing calendars, three sets of rules to track.
That’s the exact mess OSS was built to kill.
From 1 July 2021, sellers can register once in an EU country of their choice and use that single registration to declare VAT on distance sales of goods and services to consumers across all 27 member states. You register via the OSS portal of the EU country’s tax authority, which becomes your “Member State of Identification.” One return. One payment. The tax authority splits the money and forwards it to whichever countries you actually sold into.
Sounds clean. It mostly is, once you get the setup right the first time.
But here’s where sellers actually trip up, and it happens in one of two directions. Some register for OSS on day one, before they’ve made a single euro from the EU, and end up filing nil returns for months over nothing. Others assume OSS is only for big operations and skip it entirely, only to find out months later they were already over the line and owed back VAT in half a dozen countries.
Both mistakes come from the same gap. Nobody told them exactly when OSS actually applies. There’s a specific number that settles it, and most sellers have never heard the real version of it, just a vague “ten grand” they half remember from somewhere. That’s next.
The EUR 10,000 Threshold Everyone Quotes
The threshold isn’t per country. It’s EU-wide, and it combines your B2C distance sales of goods and TBE services, meaning telecommunications, broadcasting, and electronically supplied services, all added together across every EU country you sell into. Cross it, and you’re taxing at the customer’s local rate everywhere. Stay under it, and you can still charge your home country’s rate.

Here’s the thing though. Most digital sellers cross ten grand faster than they expect, because a single decent SaaS quarter or a viral course launch can blow past it in weeks. So if you’re anywhere close, register early. You’re allowed to opt into OSS voluntarily before you hit the threshold, and that avoids a messy mid-year switch.
One more wrinkle worth knowing. The old EUR 22 exemption for small imported parcels is gone. Every good imported into the EU is now subject to VAT, no exceptions for cheap items. That’s a separate rule from digital OSS, but it shapes the same 2021 reform, so you’ll see it mentioned alongside OSS constantly.
How the Calculation Actually Works
This is where things break for a lot of first-time sellers. Not the registration. The math. The process runs in a fairly predictable order:

Figure out the taxable country: Where is your customer actually located, based on billing address, and for goods, shipping address? This determines which country’s rate you apply.
Pick your OSS scheme: Union OSS if you’re EU-based selling to other EU countries. Non-Union OSS if you’re outside the EU entirely selling services or digital products to EU consumers. Import OSS if you’re shipping physical goods under EUR 150 from outside the EU.
Apply the right rate: Standard, reduced, or zero rated, depending on the product category and destination country. Rates genuinely differ by country and by product type, so a rate table that’s accurate for France won’t be accurate for Hungary.
Handle any reverse charge cases: More on this below, because it trips up almost everyone selling B2B.
That way, by the time an order hits your reporting, the tax country, the rate applied, and the scheme used are all already locked in. Nothing gets recalculated later with whatever your settings happen to be at filing time. If your platform recalculates tax retroactively using current rates instead of preserving what was charged at checkout, that’s a real compliance gap, not a minor bug.
If a customer disputes a charge eight months later and your system can’t reproduce the exact rate and evidence from the original order, you’re the one explaining that to a tax auditor.
B2B Sales: The Reverse Charge Everyone Forgets
Selling to another business changes everything. OSS is a B2C mechanism. Business-to-business sales use the reverse-charge mechanism, meaning the buyer accounts for VAT themselves, not you.

But you can’t just take a customer’s word for it that they’re a business. You need to verify the VAT number is active in the VIES database, the EU’s official verification system, before applying zero-rate treatment.
Your invoice then needs the reverse charge notation, both VAT numbers with country prefixes, and a reference to the relevant directive article. Skip the check, apply reverse charge on a number that turns out to be invalid, and you’re the one liable for the VAT you didn’t collect.
Be thorough, quick about it. Be consistent every single time a VAT number gets entered at checkout. Not occasionally when you remember. Every time.
Filing the Return: Deadlines That Don’t Move
Your OSS return is due electronically by the end of the month following the tax period, and there’s no extension if that date lands on a weekend or public holiday. Q1 ends March 31, return’s due April 30. No flexibility built in.
Here’s how it can go wrong. A store owner has a quiet quarter, decides there’s nothing to report, and skips the filing entirely. Wrong move. A nil return is still required even with zero qualifying sales, and missing three consecutive returns can get you automatically excluded from the scheme.
So mark the calendar. Four fixed dates a year, quarter close plus one month, no matter what happened in your store.
Record Keeping: The Boring Part That Gets You Audited
Nobody gets excited about this, but it’s the one that actually protects you if a tax authority comes asking.

You’re required to keep detailed records of every OSS transaction for up to 10 years in case of audits. That’s not a typo. Ten years. And it’s not just invoices. You need proof of where the customer actually was, because “they told me they’re in Germany” isn’t evidence on its own.
The standard is two non-contradictory pieces of location evidence per transaction. Billing address, IP geolocation, card issuer country, bank IBAN country. Any two that agree with each other. That way, if a customer’s billing address says Spain but their card was issued in Ireland, you’ve got a real problem to resolve at checkout, not six months later during a filing correction.
If you’re running on WordPress, something like FluentCart just handles this evidence capture automatically at the point of sale, storing the tax country, applied rate, and validation status against the order itself so you’re not reconstructing it from memory later. FluentCart’s team went as far as rebuilding their tax module around exactly this idea, storing the decision and the reasoning behind it, not just the final number, so a refund dispute or an audit six months later has something solid to point back to.
Does OSS Actually Apply To Your Store
You’re in scope if you sell digital products, SaaS subscriptions, online courses, or any electronically delivered service to consumers in the EU, and your combined EU cross-border sales are near or over EUR 10,000 a year. Doesn’t matter if you’re based in the EU, the UK, Bangladesh, or anywhere else. What matters is where your customer sits when they buy.

You’re probably fine without OSS if you’re strictly B2B, selling exclusively to VAT-registered businesses that you’re verifying through VIES. You’re also fine if your EU sales are genuinely tiny and you’d rather charge your home rate under the threshold, though most growing stores outgrow that position fast.
Let’s say a course creator selling a €49 cohort program. Fifteen EU sales in a slow month sounds trivial until you multiply it against a full year and realize you crossed ten grand back in March. That’s the trap. Small transactions, consistent volume, threshold gone before anyone checks.
So the real question isn’t “do I sell enough to worry about this.” It’s “have I actually checked my EU revenue this year, or am I assuming.”
FAQs
Wrapping Up
So here’s where all of this actually lands. OSS isn’t a form you fill out once and forget. It’s a habit, four dates a year, a rate check per order, two pieces of evidence per customer, kept for a decade.
None of that is complicated on its own. It gets complicated when it’s scattered across a spreadsheet, an old plugin, and your memory of what the rate was in March. That’s the actual failure mode. Not the rules themselves, the tracking.
Getting this right once, at checkout, saves you from unwinding a mess later. That’s the real value of digital goods VAT OSS guidance done properly: fewer surprises at filing time, and evidence you can actually stand behind if anyone asks.
Now go check your EU revenue for this year. That’s the first move, before anything else on this list.
References
- European Commission, VAT One Stop Shop, Your Europe: https://europa.eu/youreurope/business/taxation/vat/one-stop-shop/index_en.htm
- European Commission, Declare and pay in OSS: https://vat-one-stop-shop.ec.europa.eu/one-stop-shop/declare-and-pay-oss_en
- European Commission, VAT e-Commerce One Stop Shop homepage: https://vat-one-stop-shop.ec.europa.eu/index_en
- Veroskat, OSS & IOSS in the EU Complete Guide (legal source references, nil return / exclusion rule): https://www.veroskat.com/vat-registration/oss-ioss
- Intertax, One Stop Shop OSS 2025 Guide (filing deadline format): https://polishtax.com/one-stop-shop-oss/
- VatPad, EU VAT Number Checker (VIES validation mechanics): https://vatpad.com/checker
- Invoxo, VIES VAT Number Checker (reverse charge invoicing requirements): https://invoxo.eu/tools/vies-checker
Hi, this is Abir, a Deputy Marketing Lead, passionate product designer, and WordPress core contributor. Creating interesting content and products that ensure a 360-degree customer experience is my daily job.

Subscribe now






Leave a Reply