IOSS or OSS? Choosing the Right VAT Scheme for Your Shopify Store in 2025
EU OSS and IOSS share three letters but serve completely different transaction flows. Map each scheme to your store's product mix and order geography.
Two Schemes, Fundamentally Different Trigger Conditions
The acronyms appear together so often that many Shopify merchants assume IOSS and OSS are variants of the same registration. They are not. The Import One Stop Shop (IOSS) and the Union One Stop Shop (OSS) were both introduced under the EU VAT e-commerce package in July 2021, and both allow a seller to remit VAT across multiple EU member states through a single registration. But they address entirely different types of transactions, and registering for the wrong one — or registering for both when only one applies — creates filing obligations that don't match your actual sales.
Understanding the difference starts with a single question: where are your goods located at the point of sale?
IOSS: Import Transactions, Goods Outside the EU at Time of Sale
The Import One Stop Shop applies to B2C sales of physical goods where the goods are located outside the EU at the moment the customer places the order, the parcel is shipped directly to an EU consumer, and the consignment value does not exceed €150 (intrinsic value, excluding transport and insurance).
The legal basis is Article 14a(2) of the EU VAT Directive (as amended by Council Directive 2017/2455/EU), which establishes the deemed-supplier rule for electronic interfaces and, more relevant here, the IOSS facility for distance sales of imported goods. Under this facility, the seller registers in a single EU member state, receives an IOSS identification number in the format IM[country code][10 digits] — for example IMFR1234567890 for a French registration — and uses that number on every qualifying commercial invoice and customs declaration.
The practical effect: import VAT is collected at checkout at the destination country rate (Germany 19%, France 20%, Italy 22%, Netherlands 21%, etc.) and remitted monthly by the seller through the MOSS portal. The carrier presents an IOSS number on the customs declaration and the parcel clears without a separate VAT invoice at the border.
Monthly filing is not a suggestion — it is a requirement. IOSS returns are due on the last day of the calendar month following the reporting month. Miss a return and the member state of identification can suspend your IOSS number, which immediately breaks the duty-free collection arrangement and reverts your shipments to the carrier-collects-at-door scenario.
Who Needs IOSS
A Shopify store based in France, shipping from a warehouse in the UK or Hong Kong, selling B2C orders under €150 to German, Dutch, Belgian, or Spanish consumers: IOSS is the correct scheme. The goods are outside the EU at the point of sale and they cross an external EU border to reach the customer.
A Shopify store based in France, shipping from a warehouse in Lyon to German consumers: IOSS does not apply. There is no import into the EU — the goods are already inside the EU customs territory. These transactions fall under OSS if the annual volume crosses the threshold.
OSS: Intra-EU Distance Selling, Goods Already Inside the EU
The Union One Stop Shop applies to B2C distance sales where the goods are already located within the EU at the point of sale and are dispatched to consumers in other EU member states. The legal basis is Articles 369a–369x of the EU VAT Directive (Title XII, Chapter 6, Section 3, as amended).
The triggering threshold is €10,000 in aggregate annual B2C intra-EU distance sales (combined across all destination member states). Below this threshold, a merchant may charge the VAT rate of the member state of dispatch — their own country rate — and register for VAT only in that country. Once cumulative B2C cross-border sales exceed €10,000 in a calendar year, the seller must apply the destination-country rate and either register for VAT locally in every destination member state, or register for OSS in their member state of establishment and file a single quarterly return covering all destinations.
OSS registration in France is handled through the DGFiP (Direction Générale des Finances Publiques) via the impots.gouv.fr platform. In Germany, OSS registration falls to the Bundeszentralamt für Steuern (BZSt). Both portals require the merchant's VAT registration number in the country of establishment, company details, and a bank account for the single VAT payment.
OSS Filing: Quarterly, Not Monthly
Unlike IOSS, OSS returns are filed quarterly: Q1 by 30 April, Q2 by 31 July, Q3 by 31 October, Q4 by 31 January. The return aggregates every B2C cross-border intra-EU sale by destination member state and applies the destination-country standard VAT rate (or reduced rate if applicable to the product). A single payment is made to the member state of identification, which distributes the VAT to each destination member state.
The quarterly return is filed even if sales in a given quarter are zero — a nil return is required. Merchants who miss this sometimes discover that OSS registrations are administratively deregistered by the tax authority after three consecutive nil returns, requiring re-registration before the scheme can be used again.
Which Scheme Applies to Your Store: A Decision Map
The fastest way to map your situation is to categorise your order flow into two buckets:
- Parcel originates outside EU, B2C, value ≤ €150: IOSS — register in one EU member state, file monthly, use IOSS number on customs declaration
- Parcel originates within EU, ships to another EU member state, B2C: OSS (once the €10,000 threshold is crossed) — register in member state of establishment, file quarterly
- Parcel originates outside EU, value > €150: neither IOSS nor OSS covers this; standard import procedures apply with duty and VAT collected at the border or under DDP terms by the seller pre-paying
- B2B sales to VAT-registered businesses in other EU member states: neither IOSS nor OSS applies; reverse charge / intra-community supply rules govern
A Shopify store with a mixed product catalogue — some items fulfilled from a French warehouse, others drop-shipped from a supplier in China — can require both IOSS and OSS simultaneously, with separate registration numbers, separate return schedules, and different transaction mapping rules in the Shopify Tax export.
The Operational Complication: Shopify Tax Export Mapping
Shopify's built-in tax reporting does not automatically segment transactions by IOSS-eligible vs OSS-eligible. The Shopify Tax export provides a transaction-level CSV with country, gross, tax rate, and tax collected fields — but correctly bucketing each transaction requires knowing the shipment origin for every order, not just the shipping destination.
Consider a growing French homewares brand — call them Atelier Petitfour, operating a Shopify store at roughly €800k GMV — that fulfils some orders from a Paris-region warehouse and others from a logistics partner in the UK for UK-stocked SKUs. The same German customer buying two items in a single order may have one item in the IOSS bucket and another in the OSS bucket if those items ship from different origins in different parcels. Shopify's line-item export does not make this split cleanly. Correct IOSS/OSS filing requires either manual reconciliation per fulfilment origin, or a system that tags each shipment at the time of dispatch with the origin warehouse flag and the applicable scheme.
We are not saying Shopify Tax is inadequate for domestic VAT — it handles French VAT reporting cleanly. We are saying it was not designed to handle the multi-origin, multi-scheme complexity that EU cross-border DTC merchants encounter once they scale past single-warehouse fulfilment.
Common Filing Errors and Their Consequences
In the merchant onboarding work we do, the most frequent IOSS/OSS errors fall into three patterns:
Using an IOSS number on intra-EU shipments. An IOSS number on a parcel shipped from France to Germany (goods already in the EU) is invalid. The carrier's customs declaration will be rejected or, worse, accepted incorrectly and flagged during a post-clearance audit. The fix is to ensure that only non-EU origin shipments carry the IOSS number and that intra-EU parcels carry no IOSS reference.
Filing OSS on shipments above the IOSS value cap. A merchant who ships a €200 order from a non-EU warehouse and attempts to report it through IOSS is outside the scheme's scope. The €150 limit is per consignment (per parcel), not per order. Split shipments of a single order sent in two sub-€150 parcels from the same non-EU warehouse are generally not acceptable as a workaround under the scheme rules — customs authorities have flagged this practice in guidance documents.
Remitting IOSS VAT to the wrong member state. IOSS VAT is paid to the member state of registration, not to each destination country separately. Merchants who have been advised by accountants to pay German VAT directly to the Bundeszentralamt because German customers dominate their sales are filing incorrectly if they are IOSS-registered in France.
Timing: When to Register Before You Ship
IOSS registration takes 1–3 weeks from application to receipt of the IOSS number, depending on the member state of registration. OSS registration through DGFiP is typically processed in 1–2 weeks. Both registrations must be in place before the first qualifying shipment — there is no retroactive coverage. Shipping under IOSS without a valid IOSS number means the carrier will attempt to collect VAT at the border, which for sub-€150 B2C parcels triggers the same refused-delivery dynamic as DAP shipping under duty terms.
The operational takeaway: build registration lead time into your market-entry timeline. If you are planning to open DACH shipping from a UK fulfilment hub in Q1, the IOSS registration application should be submitted at least six weeks before the planned go-live date to allow for processing, testing the IOSS number in your Shopify checkout configuration, and confirming that your carrier's API accepts the number without error.
REasy handles IOSS collection at checkout and automates quarterly OSS filing data — so you focus on selling, not filing.
Book a Demo