1. Home
  2. Knowledge Base
  3. Manager Controls
  4. Manager Controls: Tax Maintenance

Manager Controls: Tax Maintenance

Tax Maintenance

The program’s tax management system accommodates both Value Added Tax systems and complex multiple tax environments, as found in North America.

In its simplest form you need a single tax class, a single tax and a single tax regime. The regime is what the user associates with a customer on a sales order, job or invoice and a class is what the user associates with the part or type of product or service being sold. The rate of tax is then automatically calculated from the tax associated with the regime and the class. More complex arrangements involve multiple classes, multiple taxes and multiple regimes involving multiple taxes.

Tax Structure

The data structure is illustrated above. There is a table of tax classes and a table of taxes. Each tax and class combination can have a non-zero tax rate. There is then a table of tax regimes (which is what the user selects for a customer or supplier) and a link file that determines which tax or taxes are applied under the regime and in what order. A total of five files make up the tax system definitions.

Customers, Suppliers and Additional Addresses are assigned a tax regime. Parts and various non-part defaults are assigned a tax class. These then provide the default regime/class combination for sales order, job and invoice line items.

Tax Treatment

When sales order or job line items are dispatched and invoice line items and sales history records are created, the prevailing tax structure is applied and a tax identifier is stored in ledger transactions.

Ledger transaction detail is not available if you do not have the Ledgers license option.

The sales history records (that are Invoice line items) contain a number of fields relevant to tax:



Tax regime

Sales History. Tax regime code applied. {SAHFILE.SAHTAMC char 6}

By default the customer’s tax regime is applied or that of the dispatch additional address (if one is applied).

Tax class

Sales History. Sales tax class. {SAHFILE.SAHTAXC char 1}.

Sales class appropriate to the goods being sold. The tax class applied by default is that of the part or the default sales non-part class set in the company details.

Tax amount

Sales History. Tax applied on dispatch quantity. {SAHFILE.SAHTAX number 2dp}

This is the sum value of all taxes paid for the item in the currency of the Invoice.

Tax details

Sales History. Tax details. Tilde ~ separated string of Tax Id jst(TAXCODE,’3X’,TACCLAS,’1X’), Rate, Compound, QPDI, Tax Amount, Turnover (# separated list when multiple tax regime). {SAHFILE.SAHTAXD char 1000}

This is a ‘hidden’ field that contains a set of data for each applied tax that was assigned to the tax regime at the time of invoicing. the data lists:

  • Tax Identifier – tax code and class.
  • Percent rate.
  • Whether the tax was calculated compound (1 or 0).
  • Whether quick-payment discount was taxable (1 or 0).
  • The tax amount in invoice currency.
  • The turnover value associated with the tax charge in invoice currency.

Each piece of data above is separated by a tilde ~ character and if more that one tax applied to the regime, the set would be repeated and each set separated by a hash # character.

The content of SAHTAXD enables the system to efficiently record the tax conditions, regardless of the current state of the tax rules.

Customisation CUSTOM CAPABILITY: The $ctask.tTaxes.$MergeSAHTaxList (pTaxDetails, pMergeList, pTaxId, pTaxDecimals, pExchangeRate) method is available for dynamically extracting SAHTAXD data for use on custom reports. It merges the taxes into pMergeList and sets the pTaxId (same as $GetTaxId) applicable to the pTaxDetails (as stored in SAHTAXD) and pTaxDecimals (default 2). pMergeList must be pre-defined using $ctask.tTaxes.$DefineTaxMergeList (pMergeList, pTaxDecimals) and all values in it are resolved to local currency if pExchangeRate is set to SAHRATE rather than it’s default of 1.

When transactions involving tax are posted to the Ledgers the Tax Identifier field (TRATAXC) is used to store either the tax regime identifier OR the tax identifier OR nothing on the following basis:




Tax Regime Identifier

The tax regime code padded with spaces to 6 characters followed by the tax class character – a total of 7 characters (jst(TAMCODE,’6X’,TACCLAS,’1X’)).

A/R or A/P transactions for invoices or credits (not payments or refunds). G/L transactions that have a value in the tax amount (TRATAX) field such as cash book or petty cash transactions when tax is involved.

Tax Identifier

The tax code (government tax) padded with spaces to 3 characters followed by the tax class character – a total of 4 characters (jst(TAXCODE,’3X’,TACCLAS,’1X’)).

G/L transaction posted to a tax accrual account (account type T). It is this specific tax identifier that enables the tax analysis in the Sales Tax Analysis Results window.


Blank data.

G/L transactions not involving tax regime definition and not being posted to a tax accrual (type T) account.

Warning WARNING: Deleting any element of the tax structure will lead to the system applying a zero rate for the regime or class that is subsequently un-defined.

Maintenance Window Functions and Fields

The following maintenance buttons are available for all tab panes of the maintenance window.



Check Master Data

To perform a a test of tax field validity in the master document data.

If tax regimes are removed, by default any master records that retain the now missing regime will have zero tax applied. This function can be used to check for master records that do not hold current tax regimes.

Print Report

To print a report of tax setup.


Save the edited tax details to file.


Revert the edited tax data to that saved on file.

Tip TIP: Normal practice in most countries has it that an invoice or other document showing tax should have a tax breakdown list and that the values are shown in local (tax authority) currency rather than the invoice currency. The program provides this by default. However, an Option optTaxListInCurrency can be used to override this so that the tax and turnover are listed in the document currency.

Tip TIP: In almost all circumstances tax authorities apply tax directly on the value of the goods sold or purchased. However, in some cases, such as some import excise duties, taxes can be charged on an uplifted value of the goods. The program provides for this with an Option. optTaxOnUpliftValue is a list of TaxRegime,UpliftPercent, separated by commas, of those tax regimes where the tax is calculated on the goods value uplifted by a percentage. A negative percent rate would apply the tax on a reduced value.

The window has 4 tab panes.

Tax Class Definitions 
Tax Definitions and Rates 
Tax Regimes 
Regime Tax Matrix 

Tax Class Definitions

Tax Maintenance - Tax Class Definitions Pane

Use this pane to define tax classes. Parts in the system are designated to a tax class and each government tax can have a tax rate for each tax class.

The tax class code is a single uppercase character. Therefore you can have up to 36 classes if you wish. Typically you have only a few. These provide default classifications for products that incur different tax rates.



Tax Class List

List of all tax classes. Parts in the system are designated to a tax class.

Tax Class

Tax class definitions. Tax class (related to TARCLAS). {TACFILE.TACCLAS char 1}


Tax class definitions. Class description. {TACFILE.TACDESC char 30}



New Class

Click to add a new tax class to the system.

Warning WARNING: Deleting a tax class (click on the list line and use the delete key) that is assigned elsewhere in the system will lead to the system applying a zero rate for the class that is subsequently un-defined.

Back to top

Tax Definitions and Rates

Tax Maintenance - Tax Definitions and Rates Pane

Government sales and purchase taxes. Each tax has a rate for each tax class and tax regimes contain one or more taxes.

These are the actual taxes that are paid to governments. It is here that you define how the taxes are calculated and where in the Ledgers (if licensed) the tax charged is accrued. If you have Ledgers licensed you must assign a G/L type T account as each tax’s accrual account, however, multiple taxes can be accrued to the same account.

The options control how the tax is calculated. Some taxes in multiple tax environments are charged on the taxed sale. For example, Quebec state sales tax is charged on the sale after Canadian federal sales tax has been applied. This is a compound tax. To effect this the Quebec sales tax should be the second tax in a regime, with the federal tax first. The Quebec tax is marked as a ‘Tax is calculated compound’. If the federal tax is 10% and the Quebec tax is 5%; for a $100 sale, federal tax is $10.00 and Quebec tax is 5% * $110 = $5.50 and not $5.00.

Tax authorities also vary in their treatment of Quick-Payment Discounts. In the UK and other European VAT territories, tax is charged on the discounted sale regardless of whether, in due course, the discount is granted to the customer. The tax authority’s view is that a quick-payment discount is in practice a ‘late-payment finance charge’ and as such is not taxable. For example, if you sell a GBP100 item with a quick-payment discount of 5% and a VAT rate of 10%, the tax will be 10% * GBP95 = GBP9.50. If the customer pays on time, he pays GBP95.00 + 9.50 = GBP104.50 or if he is a late payer GBP100.00 + 9.50 = GBP109.50.

The Expense when purchase is a special case in that the tax calculated is not accrued but posted to the cost account of the transaction in the G/L. This is appropriate when you cannot claim the tax back but want it individually recorded in the A/P, particularly when combined with taxes which can be accrued.



Taxes List

List of all government taxes. Each tax has a rate for each tax class and tax regimes contain one or more taxes.

Tax Code

Tax Definitions. Unique tax code (related to TALTAXC and TARTAXC). {TAXFILE.TAXCODE char 3}


Tax Definitions. Tax description. {TAXFILE.TAXDESC char 30}

Tax is calculated compound (tax on tax)

Tax Definitions. Tax is calculated compound (tax on preceding taxed value). {TAXFILE.TAXCOMP boolean}

Quick-payment discount is not taxable

Tax Definitions. Quick payment discount is not taxable. {TAXFILE.TAXQPDN boolean}

Expense when purchase (not accrued)

Tax Definitions. Tax is expensed on a purchase rather than accrued. {TAXFILE.TAXEXPE boolean}

Accrual account

Tax Definitions. General Ledger accrual account. {TAXFILE.TAXACCO char 10}

G/L a/c description

General Ledger Accounts. Description. {GLAFILE.GLADESC char 40}

Tax Rates for Selected Tax

List of all tax class percent rates for the selected tax.

Tax Class

Tax class rates. Tax class (related to TACLASS). {TARFILE.TARTACC char 1}

Rate in Percent

Tax class rates. Tax percent rate. {TARFILE.TARRATE number float}

Class description

Tax class definitions. Class description. {TACFILE.TACDESC char 30}



New Tax

Click to add a new government tax to the system. If the tax is to be used it must then be included in a Tax Regime.

Warning WARNING: Deleting a tax (click on the list line and use the delete key) that is assigned to a regime will lead to the system ignoring instances where it is used.

Back to top

Tax Regimes

Tax Maintenance - Tax Regimes Pane

Tax regimes generally apply to customers and suppliers. They contain one or more taxes. When tax is applied the tax regime is combined with the tax class to arrive at the appropriate tax rates.

To generate a tax regime, enter a code of up to 6 characters and a description, then drag a tax from the taxes listed at the bottom right and drop it onto the list above. When applying more than one tax, the order is significant when a second or subsequent tax is a compound tax. To change the order in the list click and edit the numbers in the list.

The type of regime is significant in where it will be made available to users; either sales or purchase or both. Only sales taxes are of use if you do not have the Ledgers license.



Regime List

List of all tax regimes that can be applied by users of the system. Regimes can contain more than one tax. Each tax in a regime has a rate for each tax class.

Regime Code

Tax Regimes. Tax regime code used in transactions (related to TALCODE). {TAMFILE.TAMCODE char 6}


Tax Regimes. Tax description for user to identify (can combine multiple taxes). {TAMFILE.TAMDESC char 30}

Regime Type

Tax Regimes. Tax type – determines when the regime is offered to the user (0 = Sales and Purchase (VAT), 1 = Sales only, 2 = Purchase only). {TAMFILE.TAMTYPE integer shortint}

List of Taxes for Selected Regime

List of taxes that apply to the regime. The order is only significant when taxes are compound. Drag a tax from the list below to add a tax to the regime.

Taxes List

List of all government taxes. Drag a tax from this list to add it to a regime.



New Regime

Click to add a new tax regime which must have at least one tax assigned.

Back to top

Regime Tax Matrix

Tax Maintenance - Regime Tax Matrix Pane

This pane provides a listing of net rates for the tax classes and regimes.



Net Tax List

List of all net tax rates for each tax class and each regime.

Back to top

See also: –

Compiled in Program Version 5.10. Help data last modified 4 Jun 2012 04:49:00.00. Class wTaxMaint last modified 23 Sep 2017 10:51:12.

Was this article helpful?

Related Articles

Get started.

Try our state-of-the-art ERP Software today.