Taxes¶
There are numerous types of taxes, and their application varies greatly, depending mostly on your company’s localization. To make sure they are recorded with accuracy, Odoo’s tax engine supports all kinds of uses and computations.
Default taxes¶
Default taxes define which taxes are automatically selected when creating a new product. They are also used to prefill the Taxes field when adding a new line on an invoice in Accounting Firms mode.
To change your default taxes, go to , select the appropriate taxes for your default sales tax and purchase tax, and click on Save.
Note
Default taxes are automatically set up according to the country selected at the creation of your database, or when you set up a fiscal localization package for your company.
Activate taxes from the list view¶
As part of your fiscal localization package, most of your country’s sales taxes are already preconfigured on your database. However, only a few taxes are activated by default. To activate taxes relevant to your business, go to and enable the toggle button under the Active column.
Configuration¶
To edit or create a tax, go to and open a tax or click on New.
Basic options¶
Tax name¶
The tax name is displayed for backend users in the Taxes field in sales orders, invoices, product forms, etc.
Tax computation¶
The Tax Computation field determines how the tax amount is computed from the sales price. The following options are available:
Group of Taxes: a combination of several other taxes
Fixed: a fixed amount
Percentage of Price: a percentage of the tax-excluded sales price
Percentage of Price Tax Included: a percentage of the tax-included total
Python Code: a custom user-defined formula
Group of taxes¶
The tax is a combination of multiple sub-taxes. You can add as many taxes as you want, in the order you want them to be applied.
Important
Make sure the tax sequence is correct, as the display order determines the application order and may affect tax computation, particularly if a tax affects the base of subsequent taxes.
Fixed¶
The tax has a fixed amount in the default currency. The amount remains the same per unit, regardless of the sales price.
The computation is \(\text{tax amount} = \text{fixed tax amount} \times \text{quantity}\).
Example
A product has a sales price of $1000, and we apply a $10 Fixed tax. We then have:
Product sales price |
Price without tax |
Tax |
Total |
|---|---|---|---|
1,000 |
1,000 |
10 |
1,010.00 |
Percentage of price¶
The tax rate is a percentage of the tax-excluded subtotal.
The exact tax computation depends on the Included in Price field, which determines whether the sales price should be treated as tax-excluded or tax-included:
If Included in Price is disabled, the computation is \(\text{tax amount} = \text{sales price} \times \text{tax rate}\).
Example
A product has a sales price of $1000, and we apply a 10% Percentage of Price tax that is not Included in Price. We then have:
Product sales price |
Price without tax |
Tax |
Total |
|---|---|---|---|
1,000 |
1,000 |
100 |
1,100.00 |
If Included in Price is enabled, the computation is \(\text{tax amount} = \text{sales price} \times \frac{\text{tax rate}}{1 + \text{tax rate}}\).
Example
A product has a sales price of $1000, and we apply a 10% Percentage of Price tax that is Included in Price. We then have:
Product sales price |
Price without tax |
Tax |
Total |
|---|---|---|---|
1,000 |
909.09 |
90.91 |
1,000.00 |
Percentage of price tax included¶
Important
This tax computation is rarely used and only useful in countries (e.g., Brazil, Bolivia) that quote tax rates as a percentage of the tax-included total. For the more common need to compute tax amounts from a tax-included price, use the Percentage of Price tax computation with the Included in Price option.
The tax rate is a percentage of the tax-included total.
The exact tax computation depends on the Included in Price field, which determines whether the sales price should be treated as tax-excluded or tax-included:
If Included in Price is disabled, the computation is \(\text{tax amount} = \text{sales price} \times \frac{\text{tax rate}}{1 - \text{tax rate}}\).
Example
A product has a sales price of $1000, and we apply a 10% Percentage of Price Tax Included tax that is not Included in Price. We then have:
Product sales price |
Price without tax |
Tax |
Total |
|---|---|---|---|
1,000 |
1,000 |
111.11 |
1,111.11 |
Note that the real tax rate in terms of the tax-excluded price is \(\frac{111.11}{1000} = 11.111\%\).
If Included in Price is enabled, the computation is \(\text{tax amount} = \text{sales price} \times \text{tax rate}\).
Example
A product has a sales price of $1000, and we apply a 10% Percentage of Price Tax Included tax that is Included in Price. We then have:
Product sales price |
Price without tax |
Tax |
Total |
|---|---|---|---|
1,000 |
900 |
100 |
1,000.00 |
Note that the real tax rate in terms of the tax-excluded price is \(\frac{100}{900} = 11.111\%\).
Python code¶
Important
If a tax can be expressed as a multiple of the quantity of the product to which it applies, it can be defined as a Fixed tax. Doing so is strongly recommended over defining a Python Code tax.
A tax defined as Python Code consists of two snippets of Python code that are executed in a local environment that can access the unit price, quantity, product, and partner. Python Code defines the amount of the tax, and Applicable Code defines whether the tax is applied. Enter a formula for each field at the bottom of the Definition tab.
Example
A product has a sales price of $1000, and we apply a Python Code tax with the following configuration:
Python Code:
result = price_unit * 0.10andApplicable Code:
result = True.
We then have:
Product sales price |
Price without tax |
Tax |
Total |
|---|---|---|---|
1,000 |
1,000 |
100 |
1,100.00 |
Active¶
Only active taxes can be added to new documents.
Important
It is not possible to delete taxes that have already been used. Instead, you can deactivate them to prevent future use.
Note
This field can be modified from the list view.
Tax type¶
The Tax Type determines the tax application, which also restricts where it is displayed.
Sales: Customer invoices, product customer taxes, etc.
Purchase: Vendor bills, product vendor taxes, etc.
None
Tip
You can use None for taxes that you want to include in a Group of Taxes but that you do not want to list along with other sales or purchase taxes.
Tax scope¶
The Tax Scope restricts the use of taxes to a type of product, either goods or services.
Definition tab¶
Allocate with precision the amount of the taxable basis or percentages of the computed tax to multiple accounts and tax grids.
Based On:
Base: the price on the invoice line
% of tax: a percentage of the computed tax.
Account: if defined, an additional journal item is recorded.
Tax Grids: used to generate tax reports automatically, according to your country’s regulations.
Advanced options tab¶
Label on invoices¶
The tax label is displayed on each invoice line in the Taxes column. This is visible to front-end users on exported invoices, in customer portals, etc.
Tax group¶
Select which tax group the tax belongs to. The tax group name is the displayed above the total line on exported invoices and in customer portals.
Tax groups include different iterations of the same tax. This can be useful when you must record the same tax differently according to fiscal positions.
Example
In the example above, the 0% EU S tax for intra-community customers in Europe records the amount on specific accounts and tax grids. However, it remains a 0% tax to the customer. This is why the label indicates 0% EU S, and the tax group name above the Total line indicates VAT 0%.
Important
Taxes have three different labels, each one having a specific use. Refer to the following table to see where they are displayed.
Backend |
Taxes column on exported invoices |
Above the Total line on exported invoices |
Include in analytic cost¶
With this option activated, the tax amount is assigned to the same analytic account as the invoice line.
Included in price¶
With this option activated, the tax will treat the sales price on which it is applied as a total including the tax amount. The tax computation will split the sales price into a base amount and a tax amount. This makes it suitable for B2C sales in most countries where prices are quoted tax-inclusive.
Total = Sales Price = Computed Tax-Excluded price + Tax
Example
A product has a sales price of $1000, and we apply a 10% Percentage of Price tax with Included in Price. We then have:
Product sales price |
Price without tax |
Tax |
Total |
|---|---|---|---|
1,000 |
909.09 |
90.91 |
1,000.00 |
Note
For a guide on configuring tax-excluded and tax-included prices for B2B and B2C customers, see B2B (tax excluded) and B2C (tax included) pricing.
Affect base of subsequent taxes¶
If this setting is enabled, any subsequent tax applied on the same product line that has Base affected by preceding taxes will be based on a modified sales price. The exact behavior depends on whether the tax with Affect base of subsequent taxes is Included in price or not.
If Included in Price is disabled, subsequent taxes with Base affected by preceding taxes will be based on a modified sales price equal to the original sales price plus the tax amount.
Example
A product has a sales price of $1000, and we apply a 10% Percentage of Price tax with Affect base of subsequent taxes. Any subsequent tax with Base affected by preceding taxes will be based on a modified sales price of $1100.
If Included in Price is enabled, subsequent taxes with Base affected by preceding taxes will be based on a modified sales price equal to the original sales price minus the tax amount.
Example
A product has a sales price of $1100, and we apply a 10% Percentage of Price tax with Included in Price and Affect base of subsequent taxes. Any subsequent tax with Base affected by preceding taxes will be based on a modified sales price of $1000.
This setting is considered any time multiple taxes are applied to the same product line, whether via a group of taxes or multiple taxes added directly to a product line.
Warning
The order in which you add the taxes on a product line has no effect on how amounts are computed. If you add taxes directly on a product line, only the tax sequence determines the order in which they are applied.
To reorder the sequence, go to , and drag and drop the lines with the handles next to the tax names.
Base affected by preceding taxes¶
This setting, which is only visible in developer mode, determines whether any previous tax that affects the base of subsequent taxes will modify the sales price that this tax is based on.
Note
Taxes with Included in Price always behave as if this setting is enabled.
Extra taxes¶
“Extra taxes” is a broad term referring to additional taxes beyond the standard or basic taxes imposed by governments. These extra taxes can be luxury taxes, environmental taxes, import or export duties taxes, etc.
Note
The method to compute these taxes varies across different countries. We recommend consulting your country’s regulations to understand how to calculate them for your business.
To compute an extra tax in Odoo, create a tax, enter a tax name, select a Tax Computation, set an Amount, and in the Advanced Options tab, enable Affect Base of Subsequent Taxes. Then, drag and drop the taxes in the order they should be computed.
Example
In Belgium, the formula to compute an environmental tax is:
(product price + environmental tax) x sales tax. Therefore, our environmental tax has to come before the sales tax in the computation sequence.In our case, we created a 5% environmental tax (Ecotax) and put it before the Belgian base tax of 21%.
See also