Tax Setup

From ADempiere
Jump to: navigation, search
This Wiki is read-only for reference purposes to avoid broken links.

Table of Contents#System Administrator's Guide{{#if: Implementation| | Implementation }}{{#if: | | [[{{{3}}}]] }}{{#if: | | [[{{{4}}}]] }}{{#if: | | [[{{{5}}}]] }} | Tax Setup{{#if: Establish Opening Balances| | Establish Opening Balances }} ⇒

Before entering documents that have tax consequences, the taxes must be created.

Taxes can be complex, with different accounting requirements, calculations and reporting requirements. The tax can vary by product and by the geographical location of the seller, or buyer. In the ADempiere tax model, the tax to use on a document is selected based on a tax category. The tax category is assigned to products and charges and must contain at least one summary or parent tax definition. Subordinate taxes determine the details and actual accounting consequences based on the situation and geography. For really difficult and unruly tax situations, a software or script rule can be created to determine what tax to apply.

Note.gif Note:

There is a Tax Setup workflow defined in ADempiere but since you have not setup the products yet, you can skip most of it. Follow the window sequence below instead.


Before getting into the details, consider a few examples.


In Canada, the sales tax varies by province. There is typically a provincial sales tax (PST), and a common national goods and services tax (GST). Certain provinces combine these into a harmonized sales tax (HST) but there are still products where only the GST or PST portion of the HST applies. GST/HST is a pass through tax meaning that it is tracked as a liability or receivable based on the sales or purchase transactions. The PST is a end-user tax meaning its a liability on a sale but an expense on a purchase.

EU and VAT

The rules in the EU are complex. A primer can be found on the VAT page. The page also contains lots of examples. Many of the countries use a graded tax scheme based on the type of product. For example, in Sweden there are four different VAT categories on sold goods and services. These are:

  • Full Rate - 25%
  • Half Rate - 12%
  • Low Rate - 6%
  • No VAT - 0%

Different products and services belong to these different categories.

Setup Taxes

To setup the tax, use the following windows found in the menu under Performance Analysis{{#if: Accounting Rules |  » Accounting Rules }}{{#if: |  »  }}{{#if: |  »  }}{{#if: |  »  }}:

  • {{#if: Tax Category|Tax Category|TaxCategory }} Window - The Tax Category Window is used to enter and maintain Tax Categories. Each and every product or charge is associated with a tax category which determines how taxes will be applied to the product. This is where the major differences in taxes applied to various products are defined. Set up the categories to identify the high level differences. Regional differences will be handled in other windows. A good selection of Tax Categories in Canada would be
    • No Tax - no tax applied to the document. Tax is not applicable to the transaction.
    • Exempt - the product or service is exempt from tax. This has special consequences for input tax credits and the accountants will want to track it. The Government determines which products and services are exempt.
    • Zero-Rated - the product of service is considered tax free without the special consequences. Again, the Government determines where this applies.
    • PST Only - the product only has PST applied.
    • GST only - the product only has GST applied.
    • PST/GST - the product can have both PST and GST applied.
    • HST - the product has HST applied.
  • {{#if: Tax Rate|Tax Rate|TaxRate }} Window - The Tax Rate Window defines the different taxes used for each tax category. For example Sales Tax must be defined for each State in which it applies. If you have multiple taxes falling in a single category, create a summary level tax with the approximate total tax rate. Then create the subordinate tax rates and assign the the summary level tax as their parent.
Note.gif Note:

Every tax rate requires a parent or summary tax. When entering the order or invoice lines the tax is first estimated using the summary tax rate. The correct tax is calculated when the document is prepared or completed. With many possible rates for a tax category, be aware that estimation can be wrong and that the order total shouldn't be trusted until the document is prepared.

The tax is always calculated from the line net amount. For taxes that include another tax in the base amount, you will have to calculate the net effect and adjust the tax rate accordingly. For example: in formula, ADempiere calculates the tax as TT = LNA*(Tax1 + Tax2) where TT is the Total Tax and LNA is the line net amount. If you need the calculation where Tax2 is based on the Tax1 amount or TT = LNA*Tax1 + (LNA*Tax1)*Tax2, you will have to adjust the Tax2 rate to equal Tax1*Tax2. Similarly, if the equation was TT = LNA*Tax1 + LNA*(1+Tax1)*Tax2, the adjusted Tax2 rate would be (1+Tax1)*Tax2.
The tax rates are defined regionally as that is the major difference. The billing from and shipping to location information determines the match with the regions and the tax to apply. In other words, if HST only applies to sales billed in Canada and shipped to customers located in Canada, the HST tax rate has the From and To countries set to Canada. HST will not be applied to sales billed in Canada and shipped to customers in the USA. The granularity of the regional definitions can be extended from countries to regions to ZIP codes within regions. Leave the country and regions fields blank if they are not relevant.
Note.gif Note:

A corollary rule is that every business partner needs to have a bill from and ship to location defined, as does every warehouse that receives goods. If not, there will be errors.

You can define tax rates as "SO Exempt". If a business partner is flagged at Tax Exempt, the software will find the the first such tax rate with the lowest actual rate - not necessarily zero, just the lowest rate. In the simplest case, define a single tax rate as SO Exempt with the rate set to 0%.
The Valid From date field will only limit new taxes which come into effect. The date is compared to the billing date. There is no way to define a date to stop applying a tax. For that, you have to manually mark the rate as inactive.
For special cases, a software or script rule can be defined to determine what amount of tax to apply.
Note.gif Note:

There is no restriction on the number of tax rates assigned to a category. The software will simply pick the first summary tax rate it finds that can be applied. The sort order for the tax rate in a tax category is defined by the IDs of the countries and regions which just about makes it random. The only useful info is that the summary tax rate with no country or region defined will be tested first.

Finally, don't forget to setup the accounting properly for each tax rate.

There are a few other windows that you can use to define tax related information. The information in these windows is not used by ADempiere but is available for use by any rules or scripts you may need to develop. Find them in the menu under Performance Analysis{{#if: Accounting Rules |  » Accounting Rules }}{{#if: Global Tax Management |  » Global Tax Management }}{{#if: |  »  }}{{#if: |  »  }}:

See Also

Also look into the localization projects for the various countries. A lot of work has been done to define special tax handling procedures around the world.

For Developers

The tax software is in the following files:

  • base/src
    • org.compiere.model/
    • org.compiere.model/