If you are selling WordPress plugins & themes (or any other digital products) globally, you already know that once every few months, the “universe” throws you unexpected regulatory/legal/privacy/tax laws that you must comply with by law. EU VAT, GDPR, SCA, CCPA are just a few of the recently added requirements. This time, it’s actually not a new law or regulation, but a side-effect of COVID that has unexpectedly introduced new and quite complicated challenges for global sellers, especially those selling auto-renewing subscriptions.
You are probably wondering: “What the heck is the relation between COVID, subscriptions, and your WordPress plugin/theme business?” With the exception of products for travel & hospitality industries, the entire WordPress plugin & theme business ecosystem is seeing positive growth. So what’s going on?
That’s a good question! Let me explain.
It’s not a secret that COVID is an economic killer. Unemployment is soaring, many countries are enforcing constant lockdowns, which has a major impact on the livelihoods of local businesses. Stores are closing, and people have less money to spend on things that are not essential.
U.S Civilian unemployment rate jumped from 3.5% on Feb to 14.7% on Apr
To stimulate the economy and encourage more trade, many countries, including EU (European Union) countries, are offering temporary tax relieves to lower their sales taxes, aka EU VAT, for short periods of 6-12 months.
For example, on July 1st, Germany lowered its EU VAT rate from 19% to 16%. This change applies until the end of 2020, so the VAT Rate will be changed back to 19% on January 1, 2021.
While a VAT relief is a powerful economic stimulus, the decision makers apparently failed to consider the impact of all these VAT Rate changes for smaller businesses, like most of us plugin & theme developers are running.
Who Should be Concerned About EU VAT Rate Changes?
If you’re selling your WordPress products to consumers in the EU, changes in EU VAT rates should be your concern.
If you’re not yet charging & remitting EU VAT at all, you are most likely violating European tax laws regardless of the country from which you are selling your digital products.
Even if your operation is small at the moment and the chances of being caught by authorities are slim, there are solutions available, like Freemius, that can help you forget about EU VAT. So no reason to build up your business foundation with such financial risks and liabilities.
Why Should You be Concerned About EU VAT Rate Changes?
You should track all the changes to the EU VAT rate and update your system accordingly whenever a change is made. Otherwise, you’ll charge consumers the wrong VAT rate.
If you charge the wrong VAT rate, not only will it piss off your customers, you’ll also get a deluge of refund requests and possible chargebacks. In addition, your invoices will not meet the EU requirements. And when VAT rates change again after the relief period, you may have to pay more VAT than you actually collected out-of-pocket for no good reason. And I’m not even mentioning potential accounting complications down the road when you want to fix your financial books.
How to Track Changes in the EU VAT Rate?
If you’ve ever scuba-dived, you know it’s quite a risky hobby. But with all its risks, most likely nothing fatal will happen as long as you stay calm and breathe.
Similar to scuba diving, it’s relatively easy to keep track of changes in the EU VAT rate!
If you manage EU VAT yourself, you’re likely using a VAT MOSS (Mini-One-Stop-Shop) to report & remit EU VAT in one country in the EU. Typically, a VAT MOSS will send you an email with updates on changes to EU VAT rates.
There are also plenty of companies like Avalara that focus on global sales taxes and maintain up-to-date tax rates tables that you can easily find on Google.
However, if you’re selling auto-renewing subscriptions, this is where things get tricky.
What Are The Challenges In Dealing with EU VAT Rate Changes When Selling Subscriptions?
You must ensure that your subscription renewals will use the correctly updated VAT rate. A challenging task as most eCommerce solutions in our ecosystem, including EDD and WooCommerce, will renew under the original subscription terms, leading to overcharging or undercharging VAT.
For example, a German consumer purchased your WordPress plugin’s annual subscription in November 2019 for $100 per year. If you collect EU VAT using a VAT extension, as it should, the subscription created in Stripe/PayPal will be set for $119 per year (19% VAT rate). If you do nothing, the subscription will renew for $119 instead of $116 in November (reduced VAT rate is 16%), overcharging the customer with $3.
And the other way around, if a German purchases an annual subscription this month during the VAT Rate Relief period, the subscription will be set at $116 per year. A year from now, the customer will be charged with the same amount instead of $119, undercharging $3.
With most recurring payment plugins, like the one from Easy Digital Downloads, the subscription amount is fixed forever at the time of the initial payment and there’s no option to update it in future. They’re not designed to push price changes through to the payment gateway for an existing subscription. This causes problems if a country’s tax rate changes, as it’s important to charge the current tax rate for each subscription payment. It’s a lot of work to fix these problems manually for each affected customer, so it’s great that Freemius has found an automatic solution to this complex problem. I hope that other subscription plugins like EDD implement similar solutions soon.
Co-Founder, Barn2 Plugins
Fixing charged VAT amounts retroactively can be a nightmare and time-consuming. In addition to finding and updating the terms of the affected subscriptions on Stripe and PayPal, you also need to figure out how to update your WordPress database payment records. Otherwise, your VAT reporting tools will produce invalid results, which can lead to issues during remittance.
Which Countries Have Already Changed Their VAT Rate and for How Long?
You can find the latest changes to the VAT rate here. Once you open this link, you’ll see that changes to the VAT rate will apply differently depending on the product category you are selling, so make sure to review the type of products covered by the VAT rate change.
If you are selling WordPress plugins and themes, the VAT rate changes in Germany and Ireland apply to your business:
|Old rate||New rate||Implementation date||End date|
|Germany||19%||16%||Jul 1, 2020||Dec 31, 2020|
|Ireland||23%||21%||Sep 1, 2020||Feb 28, 2021|
How Are We Handling the EU VAT Rate Changes at Freemius?
If you’ve ever had a VAT rate change incident like we have, you probably spent a few weeks developing a custom script to patch the system for that particular incident.
This time we realized that we have to come up with a robust solution. Otherwise, it’ll be a loss of work weeks for every VAT rate change incident, and there are already 3 planned to come. Definitely not something we wanted to deal with.
Since we only found out about the change in the German VAT rate after the new rate was already “live”, we were unable to push the rate update in time. Therefore, some of the new subscriptions created after the VAT rate change had incorrect VAT amounts. So, our first step was to develop a script to correct the affected payments & subscriptions. Here’s what the script does:
- Identify all affected payments that have been charged an incorrect VAT rate.
- Calculate the difference in the VAT charged and issue a partial refund for each payment, and update the VAT amount in our backend for accurate reporting.
- Iterate through all the subscriptions created between the effective date of the VAT rate change and when we deployed the robust fix (covered below), and update the renewal terms to match the correct VAT amount.
After we set this up and were already informed of the upcoming change in the VAT rate in Ireland, we have changed the EU VAT treatment in our codebase to be dynamic based on the current date. Instead of hard-coding 16% as Germany’s VAT rate, for example, we now have a function that dynamically returns 16% between July and December, and 19% thereafter. That way, we no longer have to remember to push an update at the end of the VAT Rate Relief period.
The next step was to automate the update of the subscription renewal amounts in Stripe and PayPal. For this purpose, we have created a cron job that is executed at the beginning of each month to find all the matching subscriptions that are about to renew in the upcoming VAT rate change period and update their amounts directly on Stripe and PayPal.
Note that if your Stripe/PayPal webhook calculations are not based on the actual payment amounts processed but uses the data from your database records, you will also need to update your database records renewal amounts. Otherwise, payments will be recorded with the incorrect amounts, which will impact invoices, reporting, etc.
There are several ways you can implement renewal amount updates using Stripe. For example, you can use balance adjustments or coupons, or even update the designated tax property of a charge if you’ve recently integrated it. It all depends on what your integration looks like. With PayPal Express Checkout (the integration we use), you can directly update the amount of the recurring profile. There are some limitations, but you won’t reach them for this task.
Now that we have those in place, all we need to do as VAT rates keep changing is feed the system with those planned VAT rate changes – the platform does the rest automatically!
Now that we have those in place, all we need to do as VAT rates keep changing is feed the system with those planned VAT rate changes – the platform does the rest automatically!Tweet
How Often Will VAT Rate Changes Happen?
This is not the first time that countries have updated their VAT rates, although previously, it was a relatively rare event that happened once every few years. The coronavirus has lowered VAT rates in many countries, so it looks more like an ongoing “trend.” You don’t have to be a fortune teller to predict what’s to come – you can expect these VAT rates to change much more frequently in the near future.
A Giant Tax Mess
EU VAT has become a big hassle for many plugin and theme companies that sell to European customers. Although the few weeks have been intense for our team, I’m happy and proud that our clients didn’t have to waste a minute on this issue and could continue to focus on vital business priorities such as marketing, development, and customer support.
Managing global sales taxes only gets worse and more complex every year. If you are still using a self-hosted eCommerce (or a service that doesn’t act as a Merchant of Records), I strongly encourage you to consider a switch. Regardless of whether you choose Freemius or other solutions, it’s all about forgetting sales taxes and many regulations once and for all. So, what are you waiting for?
We are always happy to help, so if you have any questions about EU VAT, feel free to ask in the comments below 👇