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.

screenshot: accounting-taxes-default-taxes-product
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 Accounting ‣ Configuration ‣ Settings, 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.

screenshot: accounting-taxes-default-taxes-settings
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 Accounting ‣ Configuration ‣ Taxes and enable the toggle button under the Active column.

screenshot: accounting-taxes-list-activation
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 Accounting ‣ Configuration ‣ Taxes and open a tax or click on New.

screenshot: accounting-taxes-tax-form
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_unit and quantity values, as well as the product fields.

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

screenshot: accounting-taxes-definition-tab
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.

screenshot: accounting-taxes-invoice-label
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.

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

screenshot: accounting-taxes-invoice-tax-group
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.

Tax Name

Label on Invoice

Tax Group

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.

screenshot: accounting-taxes-subsequent-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 Accounting ‣ Configuration ‣ Taxes, and drag and drop the lines with the handles next to the tax names.

screenshot: accounting-taxes-list-sequence
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%.

screenshot: accounting-taxes-ecotax
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., S for standard rate, E for exempt).

Both fields can also be displayed as optional columns in the list of taxes.

screenshot: accounting-taxes-unece-fields
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.