Skip to main content

🚩 FluentCart EU VAT Implementation – Critical Gaps on the current beta 1.0.21 - Tax Module Feedback. Part 2

Part 1 of the feedback: https://community.wpmanageninja.com/portal/space/fluent-cart/post/feedback-on-tax-module

——

Part 2

At the moment, FluentCart’s EU VAT settings only allow us to configure one EU country at a time, rather than handling the EU as a unified jurisdiction (all countries).

This approach could be legally incomplete and risks misalignment with the actual VAT rules under Council Directive 2006/112/EC and the VAT e-Commerce package (July 2021).

Of course, for a proper configuration this should be reviewed with a qualified tax advisor to fully understand your specific obligations, but the tool itself should take this into account and allow the following:


1. OSS (One-Stop Shop) Support

Legally, when selling cross-border B2C digital services within the EU, merchants must either:

  • Register separately in each Member State where they sell (which is burdensome), or
  • Register for the Union OSS scheme in their home country, and submit a single consolidated return covering all EU sales.

👉 FluentCart should therefore allow merchants to toggle “Collect EU VAT” for the whole EU bloc (not just country by country), and apply the correct VAT rate of the customer’s country automatically, while tagging these sales for OSS reporting.


2. Micro-Business Threshold (Article 59c Directive 2006/112/EC)

There is a 10,000 EUR annual threshold for total cross-border B2C sales of digital services within the EU.

  • Below this threshold: the merchant may continue charging their home country VAT rate on all EU sales and declare it domestically (no OSS required).
  • Above this threshold: the merchant must apply the VAT rate of the customer’s country and file via OSS.

👉 FluentCart currently has no option to manage this Micro-Business Threshold automatically. This is a crucial legal requirement: without it, small businesses are either forced into OSS prematurely or risk mis-charging VAT.


3. Reverse Charge for EU B2B Transactions

When a buyer provides a valid EU VAT number (verified via VIES), the merchant must not charge VAT. This part works fine ✅

BUT, for legal compliance the invoice must also include the standard reverse-charge note:

“VAT reverse charge – Article 196 Directive 2006/112/EC”

So, FluentCart should:

  • Validate VAT numbers automatically against VIES. ✅ Done
  • Apply reverse charge logic only when validation passes. ✅ Done
  • Store the VIES validation log for audit/compliance and automatically add the required legal note to the invoice. ❌ Pending. Maybe with a dynamic field?

4. Invoice Annotations and Reporting

For compliance, FluentCart invoices must clearly show:

  • VAT charged (rate + amount),
  • Merchant’s VAT ID,
  • Customer’s VAT ID (if applicable),
  • OSS vs domestic regime,
  • Reverse-charge wording where applicable.

5. Country List Issue

Currently, FluentCart groups a list of “Europe” countries that includes both EU Member States and non-EU jurisdictions such as the UK, Norway, Switzerland, Andorra, Monaco, etc.

This could be right for location purposes, but not for tax management.

👉 This could be misleading, because these countries are outside the EU VAT OSS scheme and follow completely different VAT rules.

Expected behaviour:

  • EU OSS bloc toggle (all EU states covered, harmonised).
  • Separate list for non-EU European countries (UK, Norway, Switzerland, Andorra, Monaco, etc.), managed individually.
  • Clear distinction between OSS countries and non-OSS countries to avoid merchant confusion and legal mistakes.

✅ Expected Behaviour of FluentCart’s Tax Module

  • Global EU toggle: “Collect EU VAT (OSS)” – applies VAT rates across EU Member States automatically.
  • Micro-Business Threshold toggle: allows merchants under €10,000 cross-border sales to charge home VAT rate only.
  • Automatic threshold monitoring: system tracks cross-border EU sales turnover and notifies when the threshold is exceeded. Could be a really cool feature for the Reports module.
  • Reverse charge logic: auto-validate VAT numbers via VIES and apply exemption + legal note when valid.
  • OSS compliance mode: correctly tag and export sales data for quarterly OSS reporting.
  • Correct EU scope: limit “EU VAT” settings to EU Member States only, and split off non-EU European countries into a separate section.

👉 Without these features, FluentCart’s current country-by-country setup is legally inadequate / incomplete for EU merchants and could expose them to VAT mis-charges, penalties, and double taxation.

This should work in addition to the current country-by-country feature, not as a replacement.

Hope this analysis helps :) - yep, in Europe we love the party… and our VAT rules are the hangover 🤪

cc: Shahjahan Jewel


TL;DR

FluentCart needs:

  • ✅ EU bloc toggle (OSS), not just country-level.
  • ✅ Micro-business threshold toggle (10k threshold)
  • ✅ Automatic threshold tracking
  • ✅ VIES + reverse charge invoice notes
  • ✅ OSS-ready reporting
  • ✅ Stop mixing EU and non-EU countries under the same “Europe” label

Otherwise, EU VAT compliance could remain incomplete and risky for merchants.


📎 Note: I’m also attaching a screenshot of how this is handled in other platforms, so you can see how they solved the EU bloc vs non-EU Europe separation.

Shahjahan Jewel

Got it. The team will work on these.

Jorge de los Reyes

Shahjahan Jewel the best 💪

I tried adding a 25% into the tax module here: Tax & Duties Tax classes. I thought I could add the Norwegian 25% tax there. I expected to also have the opportunity to either have it automatically included in the product price or seeing it added at the end in the Cart. I have still a lot to explore...

Jorge de los Reyes

Paal Joachim Romdahl Hello Paal!

Definitely, you can do this.

But yes! There’s a “Learning curve” here.

It took me some time to realize that you need:

  1. First, select that taxes are calculated taking into account: billing address, shipping address, or store location (to your preference - but the most flexible one is billling). (General)
  2. Select if you want tax included or excluded (general)
  3. Create classes for Standard, Reduced and Zero (General > rates).
  4. Select your countries on Tax > settings (and any other jurisdicción your selling into).
  5. Select any VAT rules you may need (atm, only EU VAT and local reverse).
  6. On a product level (you may be missing this), assign one of your classes to their product: eg.: standard, reduced or zero.

That way, if you have selected Norway, and conduct a test with Norway, (eg. As a billing address), the tax will be applied in consequence just at a local level, and you will not charge any out from Norway :)

Let me know if it works for you 😄.

Yesterday I conducted many test and use cases. And leaving the post feedback to one side (part 1, part 2 and speed tests -it brings +26 queries to the database-), it appears to work fine. And… it’s fast! 😄

Jorge de los Reyes I just expected this to be a simple go to taxes and add the percentage I need. But nope not that simple. It really should be from my very basic testing of this feature. Taxes should be simple to add. Thank you for the feedback and tips Jorge..:)

Jorge de los Reyes

Paal Joachim Romdahl Yes, I know! I also thought it could be more straightforward.

But I understand there are quite a few things - and idiosyncrasies - to take into account. I’m hopeful, considering it’s still in beta.

Also, maybe the word “instructed” together with “a lot of steps” (like I did before) could make it sound more complex than it actually is. In reality, it’s just a matter of knowing what you’re doing - which, of course, is not always the case when we’re trying new software and still exploring how it exactly works 😄

Eg.: if you are used to Thrivecart or Surecart, you may think this was going to work automatically 🫣: just to discover you have that extra step on the product level. (I think other softwares use the expression “charge tax on this product” and it’s set by default with the general rate.

Not the best approach, but definitely it avoids forgetting to add the tax at a product level!

That being said: YES, haha!

I also assumed that once everything was set up, taxes would be added automatically. I wasn’t aware of how granular you can go at the product level.

Again, power to the user 🫡: but this time, on a really touchy matter haha

So yes - if you don’t assign a class to a product, you probably won’t be charging taxes on that one…🫣.

That’s why I really hope a more “global” option is added in the future, so nothing gets missed.

Because the truth is: taxes should feel simple for the merchant, but the system must be smart enough underneath to handle the exceptions. and help the user too…

Otherwise, it looks easy but fails on compliance.

That being said, this setup is indeed very powerful in terms of granular tax settings -which is great for those who need to customize rates depending on the type of product (e.g. selling an eBook at a reduced rate, alongside services and digital products at standard rates, etc.).

The team did an amazing job! (What a labor to code all this 🤯).

Now, we need to start talking about the nuances I guess 😅

Jorge de los Reyes In general global should impact all products etc etc. Then having a local detailed level that impacts and overwrites the global setting. As a Global level can make things in general a lot easier. Then for the more advanced level - more fine tuned adjusting local variants.

It can often be a lot easier setting a global level setting - overview setting. Then looking at unique case by case where local details need to be adjusted. Then fine tuning the local detailed setting.

Jorge de los Reyes

Paal Joachim Romdahl yes! Maybe we’re missing something here 🫠

Because I’ve seen “priority rules” too during my testing of the module.

And overwrite rules are also available.

So, yep! Maybe it’s just a matter of the beta.