Community mailing list archives

Re: Odoo Taxes different countries

- 06/19/2016 22:01:20
Ermin good input.

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

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

Since 2015 B2B Tax rates did not change in EU but B2C changed.

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. 

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.

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.

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.


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). 

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.

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) 

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.


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.

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.


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

Usually you can't wait until checkout to display the VAT or not, so another solution would be to display a 

[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 )

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]


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)

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.


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.

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.)


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.