Community mailing list archives

Re: Odoo Taxes different countries

Ermin Trevisan
- 06/20/2016 15:57:00

This time I spent the effort to read your complete answer and made my
remarks inside the text as I consider the topic to be too important to
be answered in your way.
IMHO your answer is - despite its overwhelming length again - mostly
misleading, confusing, partly wrong and very much off-topic.
Unfortunately it does not provide new insights either.

> The tax rules are much more complicated for EU  to EU and even Non EU to
> EU Customers as you might know.

This might be true or not, it is not relevant to the topic.

The topic of the TO is an issue of Consumer Protection, especially the
EU directive for consumer rights
which requires that in B2C trades prices must be indicated including VAT
(and other taxes).
A guidance document is available here:

If I'm an e-commerce trader resident in the EU or a trader of
electronically delivered digital services from anywhere in the world and
I'm selling to consumers anywhere in the EU, I have to display my prices
including VAT in my online shop.
That's all, and this is not a VAT calculation problem nor a software
problem of any software whatsoever.

If I include the highest applicable VAT rate in the EU in my prices,
there is nothing I can do wrong. If I do include any arbitrary VAT rate
in my prices and do not care about my margin after closing the contract
when I'm able to calculate the proper taxes and deduct them from the
published price, everything is alright also.

As you can see, this is only a price comparison and/or margin issue.
It does (legally) not matter what VAT rate is included in the price you
display on your website.

If I'm selling comparable products/services in highly competitive and
price sensitive markets, then I do have to care about my margin and
prices and I'm interested in displaying prices which do reflect the VAT
rate applicable as accurately as possible, but unfortunately before

In some cases the place of taxable transaction is the residence of the
customer (sales of digital services to consumers for example), in some
cases it is the place of delivery, in some cases it is the place of
provision of services etc. It is dependent on several factors (type of
transaction, type of goods and services, location of the seller,
location of the buyer and so on). I'm not going to provide a lecture in
EU VAT law and regulations as it is not relevant to the topic.

So you could use Geo-IP localization in order to determine the fiscal
position of your (anonymous) website visitor and/or you offer different
webshops for each country, but you do it at your own risk. And the
highest risk you can have is that you assume that the place of
transaction is outside the EU and after completing the transaction it
results in a place of transaction inside the EU.

Additional remark (off topic, but maybe of interest):

There is a special case of electronically provided digital services,
where you must make a reasonable presumption (in order to apply the
proper VAT rate for the transaction) if you do not know the proper
location of your consumer based on 2 pieces of non-contradictory
evidence (see
for example).

> Taxamo is providing a service, which does this
> with Taxrates worldwide.

Nice, but not relevant to the topic. What could be a "nice to have" in
Odoo for example is a small module to select the proper fiscal position
based on Geo-IP localization of an anonymous visitor if not already
available as there exists the possibility of geo-referencing.
> Before you can actually calculate a proper price for a customer you
> would need his IP to find from where he is contacting you and you need
> to match this with his Billing Adress. Is there a difference than you
> would actually need to ask the customer why there is a difference. 

According to what I have explained above this statement is an
inadmissible simplification and more confusing than enlightening. You
should not mix up the indication of a legally correct price on your
website with the proper VAT handling when closing the contract with your
buyer. Besides that the billing address does constitute the place of
transaction only in particular cases.
> On the other hand in Germany all prices need to get displayed with VAT,
> which is not possible if you don't know those two informations - and
> even than a customer could be on his way - i.e. by using a proxy or some
> anonymous settings in the browsers.

You are repeating yourself, Germany is a member state of the EU and
therefore subject to EU law.
> But even than you could ask this customer for his Billing Location. This
> Billing Location can be of course different from the Language. Also in
> Germany we have people who look at the English translation of a site and
> they have billing address in Germany and therefore would need the VAT
> always been displayed.

You are repeating yourself and suddenly mixing in the language selection
instead of the IP address as above which for sure does not make any sense.
> I think the only possible way in solving this problem is providing a
> check via GEO-IP (even it could be false location if using a proxy,
> anonymizer).
> This is a check which can happen by the system itself without input from
> the website visitor.

As mentioned in earlier answers and explained in more detail here,
Geo-IP localization bears its risks. Unfortunately it's mostly the best
starting point you can have.
> but
> You also would need step two: you would need to ask the customer in what
> region he is living. Only to ask him for the country is by the way not
> sufficient as in US and Canada also states inside those countries often
> apply different taxes to products (i.e. cigarette-tax in US). In other
> words check two would need to ask the customer for his BILLING location
> (as only the billing address is important) and if inside that states
> taxes get applied differently by states inside a country they would need
> to ask also for the state he is in or even for the city (i.e. US
> cigarette tax). 

Again, this is not relevant to the topic. Besides that we all know that
there are different tax regimes and taxes in different countries. This
is only relevant if a tax is related to the customer location AND if you
are legally required to show prices including taxes before you are able
to know about the customer location.
> This could be done by a modal box which pops up in front of the shop and
> asking visitors simply those questions without that they have to login.

NO! Obviously not even you know about the "Place of taxable transaction"
- which equals the billing address only in particular cases - despite of
your lengthy answer again, how should a website visitor know? And you
would have to ask these questions before you show your prices in the shop.
> Based on those informations the price could than be calculated either
> with VAT (EU-Law) or without VAT (only for non EU B2B customers, or for
> customers who are in another non EU country than the shop is in) 

Any place of transaction outside the EU is tax exempt, no matter if B2C
or B2B.
> If the shop is outside the EU and it is selling digital goods to
> customers inside the EU - even than the VAT rules need to get applied.

"Selling digital goods" is misleading and inappropriate. To be precise
and correct: "electronically providing digital services"
> ---
> All this above could happen in Odoo without that a customer would need
> to get logged in but Odoo would need to be capable to collect the needed
> data for this pre calculation of the price.

Login by itself does not provide any necessary information as long as
you don't explicitely ask for it during signing up, so this does not
mean anything.
> If IP address differs from the billing location the customer could be
> asked to explain it and options could be provided too. i.e. he is on a
> holiday in Thailand but wants to buy a digital product online here and
> his billing address is in Germany, Than it would be a B2C Sale and 19%
> tax (tax-rate Germany) need to be added to the price the Thai shop is
> offering but the IP address would be from Thailand.

This is still not relevant to the topic, even if you are repeating the
same again and again.

> ---
> One possibility would be to create something like Taxamo inside of Odoo
> or using Taxamo with their API and integrate Taxamo into Odoo.

What for exactly? As taxamo does not have an inbuilt crystal ball
either, before website checkout they only provide an indicative VAT rate
based on the Geo-IP of the website visitor (see ). You
don't need taxamo for that.
> Usually you can't wait until checkout to display the VAT or not, so
> another solution would be to display a 

To be correct: you do not have to display the VAT, but the price
including VAT before checkout (which is again an important
clarification). This and only this is the topic of this thread, anything
else is off topic.
> [price without VAT]  - assigned to a drop down for the [Billing Adress]
> (Germany)
> the VAT which applies to the price according to the Billing Address
> (Germany 10%) - and this should be named i.e. VAT 19%
> [Total Price]
> It would be good if the customer would need to choose his billing
> Country/State/City - could be done perhaps easier by ZIP Code - [Enter
> your ZIP Code prefixed by Country] 
> ( DE - 70812 and they would know it is in Germany - Baden Wuerttemberg -
> Stuttgart ) or
> ( TH - 83130 and they would know it is in Thailand - Phuket - Rawai )

This is absolutely unnecessary and useless, because the topic is the
price indication before the checkout. At checkout time this is not an issue.

> All this can happen without that the customer has logged in and if you
> work with a cookie which stores that Billig Location it could be done
> once the customer is visiting the site. Even that the cookie could be
> checked if it is in the correct GEO-IP region or not. [i.e. Business
> Travelers buying stuff from their notebooks and smartphones]

Nobody needs a login in order to provide proper checkout information,
what's the point again?
> ---
> I would suggest to mark the price even than with an asterisk * and
> explaining somewhere on the site that the correct tax rate will be
> applied in the cart when he enters the billing location - and the IP
> address probably should get outputted and printed in the bill too hiding
> the last digits (otherwise again a problem in Germany)

If you mean the price shown in the web shop before checkout, then this
is not compliant with the EU directive on Consumer Rights. Otherwise it
is completely off topic, confused and meaningless.

> This way you inform the customer in a correct way with the correct VAT
> displayed and also B2B customers can see the correct prices for them.
> If a B2B customer enters at the checkout his own valid VAT number the
> B2B price without VAT will be added and if that is missing the B2C price
> incl. the tax rate will be applied.

Odoo and most probably any other checkout software is legally compliant
and therefore works out of the box as long as you have defined the
proper tax codes and fiscal positions.
> ---
> While displaying things on the ODOO website is one thing but calculating
> and entering and managing the right values also inside ODOO is another -
> even perhaps different - thing, it would be nice to get some real world
> examples on how ODOO is actually doing that.

While still off-topic, there is no magic behind. And as any other
ERP/Accounting software, Odoo provides a generic tax framework which has
to be customized according to the particular requirements. Do the work
yourself as it has been and is still being done by so many Odoo users
and Odoo itself and create your tax setup and your business cases and
check the results Odoo provides. But in order to check the results, you
have to know about taxes and its legal foundations as any experienced
and professional accountant has.
> Probably it would be a good idea to setup a wiki site where people can
> contribute their ideas - order them and get a solution done - starting
> i.e. with Cigarettes (as we have different taxes per state and city in
> the US and different VAT inside EU - and let those Cigarettes been sold
> in your ODOO eShop - and another product could be i.e. hosting a website
> - It would be good to have some examples which are complex to find a
> solution which will fit all those complex possibilities - probably you
> know much more complex ones.)

We are not talking about ideas and exploring any imaginable
possibilities, we are talking about compliance and legal requirements.
And we are talking about a proper tax setup using an ERP software. If
you want to handle business cases which are not covered by the available
localizations out of the box, you need the help of a professional (tax)
accountant to amend the basic setup, that's what the generic tax
framework is intended for.
But of course sharing documentation on some not so easy business cases
can be helpful and is always welcome.

> ---
> And by doing all this we should think always like doing it in a
> Multi-domain, multi-lingual website where the websites run even in
> multiple locations in and outside the EU or even in different US-States
> and Cities.

This is an absolutely meaningless and unnecessary endeavour. You create
the tax setup your company uses for its business cases. Anything else is
wasting substantial resources for nothing.

My 2c

twanda AG
Ermin Trevisan
Artherstrasse 19
CH-6318 Walchwil
T    +41 41 758 1515
M    +41 79 208 7373