Legal Issues due to Noncompliant Tax Functionality
Hugo reyes
After testing your theme for weeks, using the Activities setup, we noticed some concerning issues (aside certain bugs that were quickly resolved by your support upon discussion). We are company that operates over 200 hospitality business both, in the USA and Europe, and we found your theme to be a great match to our needs, however, upon further use and testing, and discussing with our lawyers, they pointed out that this matter would be a quick and painful lawsuit, for it is clearly noncompliant.
The way your theme is currently coded is that the admin sets only one "Sales" Tax in the theme's option, one tax alone that applies to all transactions when enabled. Unfortunately, this is illegal in some countries such as the USA and Europe, where states have jurisdiction to apply the sales tax rates they want, each state applying different rates.
To list just a few examples, there are 28 states in the USA out of a total of 50 that apply Internet Sales & Use Tax currently, and each of those states applies a different tax rate. 20 states also apply a retail sales tax, which means that the tax is applied at the point of delivery/usage of the activity, service or product, not where it was sold, due to a legal aspect called "Sales Tax Nexus" that defines Sales and Use Tax requirements. This is also why when you buy online, say on Amazon, if you checkout using a Florida zip code, Florida Sales Tax is applied, but if you checkout with a New York zip code, then New York's Sales Tax is applied, automatically. Therefore, for a theme that may feature many partners selling activities in many different locations, states, or even counties, like yours, this is a serious issue that has to do with law compliance. More specifically, Florida charges 7%, Alabama 9% NY 8.53%, California 8.85%, Texas 8.2%, etc. In Europe, Spain charges 21% VAT, France 20%, Italy 22%, Germany 19%, etc., these are just a few examples of many. Your theme only allows for one tax to be applied during booking/checkout, and this fact renders your theme unlawful for commerce and for business/monetary transactions in both USA and Europe, due to not complying with current Sales Tax regulations. Your support team mentioned that many of your clients in these countries are happy using your theme, and we believe you but happy does not make it is legal to use! probably unaware that their clients could find out at any point and pose legal actions. It only takes one individual to raise the concern to tax authorities, and it'll become a big issue for your clients, which in turn will pass the liability on to you as the software developer and provider. This also means that using your theme in any of these countries may carry severe penalties under tax law, so if you don't intend to resolve this issue, we strongly recommend that you add a disclaimer adverting your customers about this.
We think that your theme is well design and has lots of potential to become the world's favorite, however, this issue needs to be resolved first and quickly, before it results in reserve problems to your clients and your company alike.
After our long testing of your theme, this issue in mind, we believe the simplest way to resolve it so that it is user-friendly to use and manage, would be as follows.
a. In Theme Options > Booking Options > Tax Options, add a "Tax By Location" option. When disabled, the one tax is applied like you currently do now (for clients with only one business location). When this is enabled however, step (b) takes place.
b. When "Tax By Location" is enabled in Booking Options, admin is able to add an individual tax to each location created. All activities that are created under each location would have their respective tax applied, making it easy to manage as we would just modify the location, not each activity, etc.
Another option is Tax by Partner but we don't recommend it because a partner's offices may be located in Atlanta, State of Georgia, but they may sell services to customers in many other states, therefore you end up with the same issue.