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.
- menu
- Accounting ‣ Customers ‣ Products ‣ New
- shows
- New product form, "General Information" tab; the "Sales Taxes" field is prefilled with the default sales tax (e.g., "27%").
- highlight
- The "Sales Taxes" field (red frame).
- data
- Demo company "YourCompany HU" with the Hungarian chart of accounts; default sales tax "27%".
- module
- account
- notes
- English UI, light theme, 1440px width, crop to the upper part of the form.
To change your default taxes, go to , scroll to the Taxes section, select the appropriate Sales Tax and Purchase Tax in the Default Taxes setting, and click Save.
In the same setting, the Prices field defines whether the sales prices used on products and invoices are Tax Excluded or Tax Included by default. This setting can no longer be changed once a journal entry has been created.
- menu
- Accounting ‣ Configuration ‣ Settings
- shows
- Settings page scrolled to the "Taxes" section; "Default Taxes" setting with the "Sales Tax", "Purchase Tax" and "Prices" fields, and the "Rounding Method" setting next to it.
- highlight
- The "Default Taxes" setting block (red frame).
- data
- Demo company "YourCompany HU"; Sales Tax "27%", Purchase Tax "27%", Prices "Tax Excluded".
- module
- account
- notes
- English UI, light theme, 1440px width, crop to the Taxes section.
The Rounding Method setting defines how the total tax amount is computed on orders and invoices: Round per Line or Round Globally. Rounding per line is advised if your prices are tax-included, so that the sum of the line subtotals equals the total with taxes.
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.
- menu
- Accounting ‣ Configuration ‣ Taxes
- shows
- Taxes list view (default Sale and Purchase filters) with the "Active" toggle column; some taxes active, some inactive (greyed out).
- highlight
- The "Active" column (red frame).
- data
- Demo company "YourCompany HU" with the Hungarian taxes.
- module
- account
- notes
- English UI, light theme, 1440px width.
Tip
Use the Active and Inactive filters to display only the active or the deactivated taxes, and group the list by Tax Type or Tax Scope.
Configuration¶
To edit or create a tax, go to and open a tax or click on New.
- menu
- Accounting ‣ Configuration ‣ Taxes ‣ (open a tax)
- shows
- Tax form of a 27% sales tax: Tax Name, Tax Computation, Active, Tax Type, Tax Scope, Amount fields; "Definition" tab with the "Distribution for Invoices" and "Distribution for Refunds" tables.
- data
- Demo company "YourCompany HU"; tax "27%" (Sales, Percentage, 27%).
- module
- account
- notes
- English UI, light theme, 1440px width.
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¶
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 that the tax sequence is correct, as the order in which they are may impact the taxes’ amounts computation, especially if one of the taxes affects the base of the subsequent ones.
Fixed
The tax has a fixed amount in the default currency. The amount remains the same, regardless of the sales price.
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
The sales price is the taxable basis: the tax amount is computed by multiplying the sales price by the tax percentage.
Example
A product has a sales price of $1000, and we apply a 10% Percentage tax. We then have:
Product sales price |
Price without tax |
Tax |
Total |
|---|---|---|---|
1,000 |
1,000 |
100 |
1,100.00 |
Percentage Tax Included
The total is the taxable basis: the tax amount is a percentage of the total.
Example
A product has a Sales Price of $1000, and we apply a 10% Percentage Tax Included tax. We then have:
Product sales price |
Price without tax |
Tax |
Total |
|---|---|---|---|
1,000 |
1,000 |
111.11 |
1,111.11 |
Custom Formula
The tax amount is computed by a formula entered in the Formula field, which appears when this computation is selected. The formula can use the
base(the amount on which the tax is applied),price_unitandquantityvalues, as well as theproductfields.Note
This option requires the Define Taxes as Python Code (
account_tax_python) module.
Example
Formula: price_unit * 0.10
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.
Purchases: 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. The distribution is defined separately for invoices (Distribution for Invoices) and refunds (Distribution for Refunds).
- menu
- Accounting ‣ Configuration ‣ Taxes ‣ (open a tax) ‣ Definition tab
- shows
- "Definition" tab with the "Distribution for Invoices" and "Distribution for Refunds" tables; one "Base" line and one "of tax" line (100%) each, with the tax account and the tax grids.
- highlight
- The "Based On", "Account" and "Tax Grids" columns (red frame).
- data
- Demo company "YourCompany HU"; tax "27%" with tax account "467 Fizetendő ÁFA".
- module
- account
- notes
- English UI, light theme, 1440px width, crop to the tab.
%: the percentage of the base or of the tax amount allocated by the line.
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.
Tax Closing Entry: when enabled, the line is included in the tax closing entry.
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.
- menu
- Accounting ‣ Customers ‣ Invoices ‣ (open a posted invoice) ‣ Preview
- shows
- Invoice PDF/portal preview; the invoice lines' "Taxes" column shows the tax's "Label on Invoices" value.
- highlight
- The "Taxes" column (red frame).
- data
- Demo company "YourCompany HU"; tax "27%" with Label on Invoices "27%".
- module
- account
- notes
- English UI, light theme, crop to the invoice lines table.
Description¶
An internal description of the tax, displayed in the tax selector and when searching for taxes.
Legal notes¶
The Legal Notes are printed on the invoices that use the tax (e.g., the legal reason for a VAT exemption or for a reverse charge).
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
- menu
- Accounting ‣ Customers ‣ Invoices ‣ (open a posted invoice) ‣ Preview
- shows
- Invoice to an intra-community customer; the line's Taxes column shows "0% EU S", and the totals block shows the tax group "VAT 0%" above the "Total" line.
- highlight
- The "0% EU S" label and the "VAT 0%" tax group line (red frames).
- data
- Belgian demo company, intra-community customer with the "Intra-Community B2B" fiscal position.
- module
- account, l10n_be
- notes
- English UI, light theme, crop to the lines and the totals block.
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¶
The Included in Price field overrides the company’s default (the Prices field of the Default Taxes setting) for this tax. Leave it empty to use the company’s default, or select Tax Included or Tax Excluded.
With Tax Included, the total (including the tax) equals the sales price.
Total = Sales Price = Computed Tax-Excluded price + Tax
Example
A product has a sales price of $1000, and we apply a 10% Percentage tax, which is included in the price. We then have:
Product sales price |
Price without tax |
Tax |
Total |
|---|---|---|---|
1,000 |
900.10 |
90.9 |
1,000.00 |
Note
If you need to define prices accurately, both tax-included and tax-excluded, please refer to the following documentation: B2B (tax excluded) and B2C (tax included) pricing.
Note
On customer invoices, the Amount column of the invoice lines shows the tax-excluded amount if the company’s default Prices setting is Tax Excluded, and the tax-included amount if it is Tax Included.
Affect base of subsequent taxes¶
With this option, the total tax-included becomes the taxable basis for the other taxes applied to the same product.
You can configure a new group of taxes to include this tax or add it directly to a product line.
- menu
- Accounting ‣ Customers ‣ Invoices ‣ (open a draft invoice)
- shows
- Invoice line with two taxes "Ecotax 5%" and "21%"; the totals block shows the 21% tax computed on the price plus the eco-tax.
- highlight
- The line's Taxes field and the tax amounts in the totals block (red frames).
- data
- Belgian demo company; product sold at 1,000; taxes "Ecotax 5%" (Affect Base of Subsequent Taxes) and "21%".
- module
- account
- notes
- English UI, light theme, crop to the lines and the totals block.
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.
- menu
- Accounting ‣ Configuration ‣ Taxes
- shows
- Taxes list view with the drag handles in the first column; the "Ecotax 5%" tax placed above the "21%" tax.
- highlight
- The drag handles (red frame).
- data
- Belgian demo company; taxes "Ecotax 5%" and "21%".
- module
- account
- notes
- English UI, light theme, crop to the top of the list.
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, check 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%.
- menu
- Accounting ‣ Configuration ‣ Taxes ‣ (open the Ecotax tax) ‣ Advanced Options tab
- shows
- Tax form of the "Ecotax 5%" tax on the "Advanced Options" tab, with "Affect Base of Subsequent Taxes" enabled.
- highlight
- The "Affect Base of Subsequent Taxes" checkbox (red frame).
- data
- Belgian demo company; tax "Ecotax 5%".
- module
- account
- notes
- English UI, light theme, 1440px width.
UNECE tax codes¶
With the Account Tax UNECE (account_tax_unece) module, taxes can be classified according to the
nomenclature of the United Nations Economic Commission for Europe (UNECE). The codes are used when
generating structured electronic invoices (e.g., UBL or CII). The module adds two fields to the
Advanced Options tab of the tax form:
UNECE Tax Type: the tax type code (UNECE DataElement 5153, e.g.,
VAT);UNECE Tax Category: the tax category code (UNECE DataElement 5305, e.g.,
Sfor standard rate,Efor exempt).
Both fields can also be displayed as optional columns in the list of taxes.
- menu
- Accounting ‣ Configuration ‣ Taxes ‣ (open a tax) ‣ Advanced Options tab
- shows
- "Advanced Options" tab of the tax form with the "UNECE Tax Type" (VAT) and "UNECE Tax Category" (S) fields below the checkbox options.
- highlight
- The two UNECE fields (red frame).
- data
- Demo company "YourCompany HU"; tax "27%".
- module
- account, account_tax_unece
- notes
- English UI, light theme, 1440px width, crop to the tab.
See also