Back to Blog

EU Compliance · 13 min

Shopify OSS VAT for Subscriptions 2026: Destination Tax Done Right

EU OSS VAT gets genuinely hard once orders recur: three countries raised their standard rate within 20 months, corrections go into later quarterly returns, and subscription apps like Recharge fragment your tax data. What Shopify Tax covers (free up to €100K, then 0.25%), where it stops, and what a clean setup looks like.

NoRentApps
Subscriptions
1.49% + $0.19€11,400/yr
01

Recurring Orders Turn OSS From a Quarterly Routine Into a Permanent Project

Since July 2021, any EU merchant selling more than €10,000 per year cross-border to consumers in other EU countries has to charge the destination country's VAT rate — 27 countries, standard rates between 17% and 27% — and report it quarterly through the One-Stop-Shop (OSS). For a store selling one-time orders, this is mostly a solved problem: Shopify applies the right rate at checkout, your accountant files four returns a year, done.

For a subscription business, it is not solved, and the last 20 months proved it. Finland raised its standard rate from 24% to 25.5% in September 2024. Slovakia went from 20% to 23% in January 2025. Estonia went from 22% to 24% in July 2025 — its second increase since 2024. A one-time seller just charges the new rate on the next order. A subscription merchant has hundreds of running contracts with a fixed gross price, billed month after month, in exactly those countries. Every rate increase silently eats margin, or forces a price change you have to communicate to paying subscribers.

Add the reporting side — recurring orders, failed-payment recoveries, and refunds landing in different OSS quarters than the original signup — and you get the topic of this article: why subscriptions make destination VAT harder, what Shopify handles natively, where apps like Recharge complicate it, and what a clean setup looks like. Written for DACH merchants, because that is where we see this go wrong most often.
02

OSS in Four Facts That Matter for Subscription Stores

You do not need a tax-law seminar. You need these four facts:

1. The threshold is €10,000 — EU-wide, not per country. Total net cross-border B2C sales into all other EU countries combined, per calendar year. A German store doing €900/month into Austria alone crosses it. Below the threshold you may charge German VAT on everything; above it, destination rates apply. Most subscription stores with any EU reach are above it in year one.

2. Destination rate means destination rate — including reduced rates. Coffee ships at 7% in Germany but 5.5% in France. Food supplements are reduced-rate in some countries and standard-rate in others. Subscription boxes live almost entirely in food, beverage, supplements, and pet products — the exact categories where reduced-rate mapping differs country by country. Getting the standard rate right is easy; the reduced-rate mapping is where OSS returns actually go wrong.

3. The OSS return is quarterly, due at the end of the following month. April 30, July 31, October 31, January 31 — filed with your home tax authority (in Germany: the BZSt), which distributes the VAT to the destination countries. Miss deadlines repeatedly and you can be excluded from the scheme, which means registering for VAT in every country you sell to. That is the outcome to avoid at almost any cost.

4. You cannot amend a filed OSS return — corrections go into a later one. A refund on a February subscription order that you process in April belongs, as a correction of Q1, inside the correction field of your Q2 return (possible up to three years back). For one-time stores this is a rare event. For subscription stores — with cancellations, partial refunds, and failed-then-recovered payments as weekly routine — cross-period corrections are a structural feature of every single return.
03

What Shopify Handles Natively — and Where It Stops

Shopify's answer for the EU is Shopify Tax, and it is about to become the default: from May 13, 2026 — two days after this post goes live — Basic Tax is no longer available for new stores selling in or to the EU. Existing stores can keep Basic Tax for now, but the direction is set.

What Shopify Tax does well: you register your OSS number as a registration type, and Shopify applies the correct destination rate per country automatically — including rate updates when a country changes its rate, which is exactly what you want after the Finland/Slovakia/Estonia wave. Product categories map your items to reduced rates per country, and Shopify can generate VAT invoices for EU orders. The pricing is fair: free up to €100,000 in annual sales, then 0.25% per order (0.15% on Shopify Plus), capped at €0.99 per order and — for stores created before May 13, 2026 — capped at the equivalent of €5,000 per year; stores created on or after that date get the €100,000 free allowance as a lifetime threshold instead of an annual one. Compared to what per-order fees usually look like in the Shopify ecosystem, this one is defensible.

Where it stops, and this matters for subscriptions:

  • Shopify does not file your OSS return. It calculates and collects; you (or your Steuerberater, or a tool like Taxdoo) still have to assemble and submit the quarterly return from Shopify's tax reports.
  • Invoices cannot be regenerated after order edits. Shopify's own documentation states this. Subscription orders get edited constantly — swaps, partial refunds, dunning adjustments — and each edit leaves you with an invoice that no longer matches the order.
  • Product categories do not apply to orders created by third-party apps or via the API. Also straight from Shopify's EU tax documentation. Recurring orders are exactly that kind of order when your subscription app creates them outside the native flow — which can silently push a reduced-rate coffee subscription to the standard rate on renewals.

Our recommendation is unambiguous: turn Shopify Tax on, register OSS as the registration type, categorize every product. It is the right base layer. It is just not the whole job.
04

Where Recharge and Other Subscription Apps Complicate OSS

To be precise about the accusation: the problem is not that Recharge calculates EU VAT wrong. On the current Shopify Checkout Integration, taxes for both the first checkout and recurring orders are calculated from your Shopify tax settings — Recharge itself confirms this in its documentation. If your Shopify Tax setup is correct, the rate on each billed order is correct. The complications sit one level deeper:

Queued orders show €0.00 tax until they are billed. Recharge displays upcoming recurring orders without the tax amount — it only materializes at billing time. For cash-flow and OSS forecasting that means your subscription pipeline is tax-blind: you cannot see today what your Q3 Estonian VAT liability will be, even though the contracts already exist.

Refunds and cancellations live in the app, corrections live in the OSS return. When your support team refunds a subscription order inside Recharge, that refund must surface as a correction of the original OSS period in a later return. Nobody at Recharge is going to map that for you. Stores doing 1,000+ subscription orders a month typically have 20–60 refund events per quarter that belong in the correction field — and the export that proves which original period they belong to is manual work.

Legacy integrations are worse. Recharge setups that predate the native Subscriptions API ran billing outside Shopify's checkout, with their own tax logic. Anything still on that path has a hard deadline anyway with the checkout migration in August 2026 — if you are on a legacy Recharge integration, the OSS data problem is one more reason to migrate now, not later.

And then there is the fee stack. Recharge charges $99/month plus 1.49% plus $0.19 per transaction on its Starter plan ($499/month plus 1.34% plus $0.19 on the Plus plan) — we did the full Recharge cost math including alternatives in a separate post. Cheaper alternatives exist: Appstle is free until $500/month in subscription revenue, then $10–100/month with 0% transaction fees; Loop Subscriptions starts at $99/month plus roughly 1% — no per-order cent fee, but not fee-free either. But note what none of these fees buy you: not one of them includes OSS reporting, correction tracking, or compliant invoice generation for the EU. You pay 1.49% + $0.19 per order and the quarterly VAT work is still entirely yours.
05

A Rate Change Mid-Subscription: The Concrete Math

Here is the scenario every EU subscription merchant hit at least once since 2024. Take Slovakia, January 2025: standard rate up from 20% to 23%. You have 200 Slovak subscribers on a €29.90/month box, gross price fixed in the contract.

At 20% VAT, €29.90 gross meant €24.92 net for you and €4.98 for the Slovak treasury. At 23%, the same €29.90 splits into €24.31 net and €5.59 VAT. You lose €0.61 per order — about 2% of gross revenue on that cohort, roughly €1,460 per year for those 200 subscribers, with no change in what you deliver. Finland's 1.5-point increase and Estonia's two increases since 2024 do the same math to their cohorts.

You have three options, and only one of them is a default we would defend:

Absorb it. Right answer if the affected cohort is small (under ~5% of subscribers) or the increase is under a point. Wrong answer as a permanent policy — with 27 countries adjusting rates independently, absorbing every increase is an uncontrolled, compounding margin leak.

Raise the gross price. Legally cleaner if your terms include a VAT pass-through clause; in Germany, changing subscription prices without such a clause needs the customer's consent, which in practice means churn. Budget for it: a price-change email to a cohort typically costs 3–8% of that cohort in cancellations.

Price net per country from day one. The structural fix: define the net price, let VAT float on top, display the resulting gross per country. Shopify supports dynamic tax-inclusive pricing per market, but most subscription apps assume one fixed gross price per plan — check whether yours can even represent this before you promise it to your CFO.

Whichever you choose, the operational requirement is the same: somebody has to watch the EU rate calendar. Rate changes are announced months ahead in national budget laws. A subscription store that learns about a rate change from its Q1 OSS numbers, instead of from a calendar entry the quarter before, has already paid for the lesson.
06

Cost Model: When a Custom Subscription Stack Beats the SaaS Fees

Here is the break-even math, because "custom app" sounds expensive until you price the alternative honestly.

The SaaS stack at 2,000 subscription orders/month with a €30 average order (€60,000/month in subscription volume): Recharge Starter at $99 plus 1.49% plus $0.19 per transaction comes to roughly €1,330/month; Shopify Tax above the free threshold adds about €150/month; Taxdoo €100–300/month; an invoicing app €50–100/month. Total: around €1,650–€1,900/month — €20K–€23K per year — plus the 5–10 hours a month someone spends mapping refunds to OSS correction periods by hand, because no tool in that stack does it.

Custom, tier one: a custom EU invoicing and OSS-export app — the piece that closes the correction and invoice gaps above — is typically an €8K–15K fixed-price build. It replaces Taxdoo and the invoicing app (€150–400/month) and, more importantly, the manual correction work — together usually €7K–12K/year. Break-even inside 12–24 months, and afterwards the source code is yours and the fee meter stops. Custom, tier two: replacing the subscription billing layer itself — your own module on the native Subscriptions API with no percentage fees — is a €20K–€40K project that removes the ~€16K/year Recharge line entirely. Worth pricing from about 1,500–2,000 subscription orders/month upward — not below.

The honest cut-off: below roughly 500 subscription orders/month, the percentages are small enough that the SaaS stack is the right answer — keep it and put your energy into the setup steps in the next section. Above 1,500–2,000 orders/month, the fee line compounds every month you wait — and what a custom build buys you is not just lower cost, but an OSS-shaped data model no rental app will ever ship.
07

What a Clean OSS Setup for a Shopify Subscription Store Looks Like

The setup we consider defensible for a DACH subscription store above the €10,000 threshold, in order:

1. Shopify Tax on, OSS registered as registration type, every product categorized. This gets destination rates and reduced-rate mapping right at the source. Cost: nothing until €100,000 annual sales, then 0.25% capped at €0.99/order.

2. Subscription billing through the native Subscriptions API. Whether that is Recharge on the Shopify Checkout Integration, Appstle, Loop, or a custom subscription module — recurring orders must be created where Shopify's tax engine and product categories apply. Any app that generates renewal orders through its own pipeline is disqualified for EU use, whatever its feature list says.

3. A quarterly OSS export that reconciles orders, refunds, and corrections. Either your Steuerberater builds it from Shopify's tax reports, or a tool like Taxdoo does it automatically — Taxdoo starts at around €49/month net (marked "around" deliberately: the effective price scales with transaction volume and add-ons like the DATEV export, and typically lands at €100–300/month for a mid-size store). For most stores under roughly 500 orders/month, the Steuerberater route is cheaper and completely fine — keep it. Above that, manual reconciliation of subscription refunds against original OSS periods is where errors and hours pile up, and automation wins.

4. An invoicing layer that survives order edits. Shopify Tax generates VAT invoices but cannot regenerate them after modifications — a real gap for subscription orders. A dedicated invoicing app (Sufio and Billbee are the usual suspects) or a custom EU invoicing app that reissues corrected invoices automatically closes it. If you are a German merchant, build this decision together with the 2027 B2B e-invoicing mandate — solving invoicing twice in two years is the expensive way.

5. A rate-change calendar with an owner. One person, four checks a year, each covering announced VAT changes in your top-10 destination countries. Fifteen minutes per quarter that protect low-four-figure amounts per rate change.

And the honest boundary line: if you are under the €10,000 threshold, none of this applies — charge home-country VAT and revisit in twelve months. If you are mid-size with a Steuerberater who reliably files your OSS quarters from Shopify exports, that is a working setup — do not replace it because a blog post told you to. The stores that need to act are the ones where subscription volume, refund frequency, and country count have grown past what a quarterly spreadsheet can absorb. For those, the same logic applies as everywhere in the European app-stack strategy: EU compliance is not a side feature you rent — it is a design constraint you own.

If you want that boundary drawn against your own numbers, that is what our 30-minute app-stack audit is for: we walk through your subscription volume, fee lines, and OSS gaps, and you leave with a fixed-price quote — or the honest answer that your current setup is fine.

FAQ

Frequently Asked Questions

Does Shopify file my OSS return automatically?+

No. Shopify Tax calculates and collects the correct destination-country VAT and provides the tax reports, but the quarterly OSS return itself must be assembled and filed by you, your Steuerberater, or a tool like Taxdoo (from around €49/month net). Shopify Tax is free up to €100,000 in annual sales, then 0.25% per order (0.15% on Plus), capped at €0.99 per order.

What happens to my subscriptions when an EU country raises its VAT rate?+

Existing contracts keep billing at the agreed gross price, so the increase comes out of your margin: Slovakia's January 2025 move from 20% to 23% costs about €0.61 per €29.90 order — roughly €1,460/year per 200 affected subscribers. Your options are absorbing it (fine for small cohorts), raising the gross price (needs a VAT pass-through clause in your terms and costs typically 3–8% of the cohort in churn), or pricing net per country with VAT floating on top.

Does Recharge calculate EU VAT correctly on recurring orders?+

On the current Shopify Checkout Integration, yes — taxes for both the initial checkout and recurring orders come from your Shopify tax settings, so a correct Shopify Tax setup produces correct rates. The complications are elsewhere: queued orders show €0.00 tax until billed, refunds processed in Recharge must be manually mapped to OSS correction periods, and legacy pre-Subscriptions-API integrations ran their own tax logic and need to be migrated by August 2026 anyway.

How do I correct a mistake in a filed OSS return?+

You cannot amend a filed OSS return. Corrections are entered in the correction field of a later return, stating the original quarter and the amount, and this is possible up to three years after the original filing deadline. For subscription stores this is routine, not exceptional: every refund or cancellation of an order from a previous quarter becomes exactly this kind of cross-period correction.

Do I need OSS at all if my subscription store is small?+

Only above €10,000 per calendar year in total net cross-border B2C sales into all other EU countries combined — not per country. Below that you charge your home-country VAT on everything and skip the whole apparatus. A German store shipping €900/month of subscription boxes to Austria alone already crosses the line, so most subscription stores with real EU reach are in OSS territory within their first year.

Ready?

Let's audit your Shopify app stack.

30 minutes. We walk through your stack and tell you honestly which apps can be replaced with a custom build — and which can't.

Book a Consultation

Read Next