Launch pricing: Lock in Pro at $79/yr before prices go up View pricing →

Track the EUR 10,000 EU OSS threshold in WooCommerce automatically

If you sell physical or digital goods from one EU country to consumers in other EU countries, you have a number to watch: EUR 10,000. Cross that in a calendar year and you can no longer charge only your home-country VAT — you must charge each customer’s destination-country rate and report it through the One Stop Shop. The hard part has never been the rule; it’s knowing the exact moment you cross it.

Sellinor EU VAT One Stop Shop (OSS) for WooCommerce answers that in real time. It reads your existing orders, works out which ones count, and keeps a running per-year total broken down by destination country — and the core of that, woocommerce eu vat threshold tracking, is free on EUR stores.

What actually counts toward the threshold

Not every sale counts, and counting the wrong ones gives you a misleading picture. The plugin classifies every order automatically into one of five types:

  • Domestic — destination is your home country. Doesn’t count.
  • Non-EU — destination is outside the EU VAT area. Doesn’t count.
  • EU B2B — a cross-border EU order carrying a usable VAT number or marked VAT-exempt. Doesn’t count.
  • EU B2C — a genuine cross-border B2C sale to another EU country. Counts.
  • No country — the order has no destination. Doesn’t count.

Only cross-border EU B2C sales reach your running total. The destination follows EU place-of-supply rules: orders made up entirely of virtual/downloadable products use the billing country (digital supplies are taxed where the customer belongs), while physical goods use the shipping country, falling back to billing when no shipping address is present.

Special territories that carry an EU country code but sit outside the EU VAT area — the Canary Islands, Ceuta and Melilla, the Åland Islands, the French overseas departments, Büsingen and Heligoland, Mount Athos, and Livigno and Campione d’Italia — are excluded, detected from the order’s postcode. Northern Ireland is the reverse case: a GB address with a BT postcode is recognised as XI under the NI Protocol and stays in scope for goods. See order classification for the full ruleset.

How the running total is built

For each qualifying order, the tracked amount is the order total minus tax — shipping in, VAT out — in EUR. On EUR stores no conversion is needed. Orders are counted once they reach Processing or Completed, and the total is one running figure per calendar year, aggregated per destination country.

Crucially, the total reflects reality, not gross sales:

  • Moving an order to Cancelled, Refunded, Failed, On hold, or Pending payment (or to the trash) reverses it out. If it returns to Processing or Completed, it’s counted again.
  • Refunds reduce the total automatically. A per-order refund ledger means partial refunds subtract at their net amount, and a sequence like partial refund → cancelled → back to processing never double-counts or loses a sale.

Once crossed, it stays crossed

EU rules say that once you pass EUR 10,000 in a year, destination VAT applies for the rest of that calendar year — even if refunds later pull the running total back under the line. The plugin latches that state: the dashboard keeps reporting the year as exceeded, and the following year is treated as obligated (Destination VAT required) from the start. You don’t have to remember the rule; the plugin enforces it. Read the mechanics in threshold tracking.

Where you see your position

Open WooCommerce → One Stop Shop for the dashboard:

  • A colour-coded progress bar — green below 70%, yellow 70–90%, red at 90%+ or exceeded.
  • A status card that translates your position into plain language: Below threshold, Approaching threshold, Threshold exceeded, or Destination VAT required.
  • A per-country breakdown table — net sales in EUR (net of VAT and refunds), order counts that link into the filtered orders list, and each country’s share of the threshold.
  • A year selector to review previous years, and Recalculate to rebuild a year from your actual orders after an import or bulk edit.

You also get a compact EU VAT OSS — Threshold widget on the main wp-admin Dashboard, an OSS status column on the orders list (HPOS and legacy), and an EU VAT OSS box on each order edit screen showing how that order was classified. Admin notices surface on WooCommerce screens when the year reaches 70%+ or has exceeded the threshold, each dismissible per user, year, and level.

Selling on Amazon, eBay, or in person too? Those sales count toward the same legal limit. Record them as manual adjustments on the dashboard so your tracking reflects your total EU B2C activity.

The free email alert — and the Pro early warnings

The free plugin sends one decisive email: an OSS threshold alert when your tracked total reaches 100% of EUR 10,000, sent once per calendar year (refunds dipping back under the line don’t re-arm it). It’s a standard WooCommerce email, so you can customise its subject and format — or disable just that email — under WooCommerce → Settings → Emails.

If you’d rather not be surprised at 100%, the Pro add-on adds earlier signals:

  • 70% and 90% early-warning emails (Pro), each fired once per year.
  • A Threshold projection card (Pro) on the dashboard estimating your crossing date from daily-average sales velocity.
  • A monthly digest (Pro) on the 1st of each month at 08:00 UTC.

These levels are fixed (no configurable percentages). See predictive forecasting and the full email notifications list for what’s free versus Pro.

Getting started

Install from the WordPress plugin directory, activate alongside WooCommerce (HPOS compatible), and run the four-step setup wizard: it syncs your home country to your WooCommerce base location and can optionally scan this year’s existing orders in the background so your position is correct even when you install mid-year. From there, tracking is live. The full walkthrough is in getting started.

A few honest limits worth knowing: tracking is EUR-store only on free (non-EUR stores need the Pro multi-currency module), it tracks against standard VAT rates only (reduced and zero rates aren’t handled automatically), and it covers OSS — intra-EU distance selling, not IOSS import VAT. The plugin prepares figures and tracks your position; it does not file your OSS return.

Not tax advice. This plugin is a tracking and awareness tool. VAT rules vary by situation and change over time — always confirm your actual registration and reporting obligations with a qualified tax professional.

Once you’ve crossed, the next jobs are charging destination rates and filing. See OSS VAT return reports for the Pro quarterly filing tables, and B2B VAT number at checkout to keep business sales out of your total. <claims_cut”>[“Trimmed the description frontmatter from 156 to 148 chars (limit is 155) by changing ‘a live per-country running total’ to ‘a live per-country total’. Meaning and primary keyword preserved.”, “In the Pro early-warnings list, added the explicit ‘(Pro)’ label to each of the three bullets (70%/90% emails, Threshold projection card, monthly digest). The intro sentence already framed them as Pro, but per the labelling rule each Pro feature line is now individually marked so a skimming reader is never misled.”, “In the per-country breakdown bullet, clarified ‘net sales in EUR’ to ‘net sales in EUR (net of VAT and refunds)’ to match the dashboard doc exactly (Dashboard: ‘Net sales (EUR) — net of VAT and refunds’). This is a tightening, not a correction of a false claim.”]</claims_cut> The draft was already exceptionally well-grounded — no invented settings/paths/filters, no free-vs-Pro misattributions, no filing/submission claim, no IOSS or reduced/zero-rate claim, and the “not tax advice” note is present. Verified against threshold-tracking.md, order-classification.md, dashboard.md, email-notifications.md, getting-started.md, predictive-forecasting.md, multi-currency.md, and b2b-vat-number.md.

Spot-checks that all PASSED (kept as-is): the five classification types and place-of-supply rules; the special-territories list and XI/Northern Ireland goods carve-out; “order total minus tax, shipping in/VAT out, in EUR”; Processing/Completed counting; the status-reversal list; the per-order refund ledger and the partial-refund→cancelled→processing sequence; the “once crossed, stays crossed” latch carrying into the next year as “Destination VAT required”; the four status-card labels (Below threshold / Approaching threshold / Threshold exceeded / Destination VAT required); progress-bar colour thresholds (green <70%, yellow 70–90%, red 90%+/exceeded); the wp-admin widget, OSS status column (HPOS + legacy), order-edit box; admin notices at 70%+/exceeded dismissible per user/year/level; the single free 100% “OSS threshold alert” once per year, customisable/disable under WooCommerce → Settings → Emails; Pro 70%/90% emails + projection card + monthly digest on the 1st at 08:00 UTC with fixed levels; four-step setup wizard syncing home country to WooCommerce base location with optional background scan; EUR-only on free with Pro multi-currency via ECB daily reference rates not changing what customers pay; standard-rates-only caveat; “prepares figures, does not file.”

Frontmatter validity: title 37 chars (<=60), seoTitle 37 (<=52), description now 148 (<=155), h1 66 chars, type use-case, plugin eu-vat-oss, pubDate 2026-06-14 — all good. 6 FAQs, all grounded. related slugs (woocommerce-oss-vat-return-reports, woocommerce-b2b-vat-number-checkout, blog/eu-vat-distance-selling-threshold-explained) are all in the allowed list, no .md extensions, blog prefix correct. Body sibling links (/woocommerce-oss-vat-return-reports, /woocommerce-b2b-vat-number-checkout) are both in the allowed list; doc links and landing link are permitted. No specific tax/legal advice given.

One judgment call you may want to confirm: the body asserts the plugin covers “OSS — intra-EU distance selling, not IOSS import VAT.” The docs never mention IOSS, so this is a true negative-scope statement (clarifying what it does NOT do), which the ground truth explicitly endorses — kept it. Similarly the standard-rates-only caveat is directly supported by threshold-tracking.md line 56.

Frequently asked questions

What counts toward the EUR 10,000 OSS threshold?

Only cross-border B2C sales to other EU member states count. Domestic sales, sales outside the EU, and B2B orders with a usable VAT number (or marked VAT-exempt) are excluded automatically. For each qualifying order the tracked amount is the order total minus tax — so shipping is included and VAT is not — in EUR.

When is an order counted, and what happens on a refund?

Orders are counted once they reach Processing or Completed. Refunds, cancellations, and status reversals reduce the total automatically: the plugin keeps a per-order refund ledger so partial refunds subtract at their net amount and a sequence like partial refund, then cancelled, then back to processing never double-counts or loses a sale.

What does "once crossed, it stays crossed" mean?

Under EU rules, once your cross-border B2C sales pass EUR 10,000 in a calendar year, destination-country VAT applies for the rest of that year even if refunds later pull the total back under the line. The plugin latches that year as exceeded and treats the next year as obligated (Destination VAT required) from the start.

Is threshold tracking free?

Yes. Real-time threshold tracking, automatic order classification, the dashboard progress bar and per-country breakdown, the admin notices at 70% and exceeded, and one email alert at 100% of the threshold are all free on EUR stores. Pro adds 70%/90% early-warning emails and a projected crossing date.

Does it work on non-EUR stores?

The free plugin tracks EUR stores. On a non-EUR store, tracking is paused until the Pro multi-currency module is active — it converts orders and refunds to EUR using European Central Bank daily reference rates. It does not change what your customers see or pay.

Does the plugin file my OSS return?

No. It prepares the figures and tracks your position against the threshold; it does not file or submit anything to a tax portal. It tracks against standard VAT rates only and is not tax advice — confirm your obligations with a qualified tax professional.

Stop guessing where you stand against EUR 10,000

Install EU VAT One Stop Shop (OSS) for WooCommerce and get a live, refund-aware threshold total with a free alert at 100% — on EUR stores, free.

See plans & pricing

Or read the documentation.