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

Manager Controls: Tax Maintenance – wtaxmaint  


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.

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.

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 several fields relevant to tax:

Tax RegimeTax regime code applied. By default the customer’s tax regime is applied or that of the dispatch additional address (if one is applied).  
Tax ClassSales tax class. 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 AmountTax applied on dispatch quantity. This is the sum value of all taxes paid for the item in the currency of the Invoice.  
Tax DetailsTax 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 than 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.    

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 IdentifierThe 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 IdentifierThe 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.
NothingBlank data.G/L transactions not involving tax regime definition and not being posted to a tax accrual (type T) account.


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.

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

File Path

File > System Manager > Taxes…

This file path takes you to the Tax Maintenance window. This window has 4 tabs.

Tax Class Definitions tab

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 (related to TARCLAS).


Class description.

New Class button

Click to add a new tax class to the system.

Check Master Data button

To perform 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.

To print a report of tax setup.

Revert button

Revert the edited tax data to that saved on file.

Save button

Save the edited tax details to file.

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.

Tax Definitions and Rates tab

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

Tax 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

Unique tax code (related to TALTAXC and TARTAXC).


Tax description.

Options – Tax is calculated compound (tax on tax)

Tax is calculated compound (tax on preceding taxed value).

Options – Quick-payment discount is not taxable

Quick payment discount is not taxable.

Options – expense when purchase (not accrued)

Tax is expensed on a purchase rather than accrued.

Accural a/c

General Ledger accrual account.

G/L a/c description

General Ledger Accounts description.

Reg. No

Tax authority registration number.

User ID

User ID to use when communication with the tax authority.



Plain button

Toggle to show in plain text.

New Tax button

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.

Tax Rate for Selected Tax

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

Tax Class

The tax class.

Rate in Percent

Tax rate in percent.

Class Description

Description of the tax class.

Tax Regimes tab

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 regime code used in transactions (related to TALCODE).


Tax description for user to identify (can combine multiple taxes).

Regime Type

Tax type – determines when the regime is offered to the user (0 = Sales and Purchase (VAT), 1 = Sales only, 2 = Purchase only).

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.

Tax List

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

New Regime button

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

Regime Tax Matrix

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.

See also:Sales Tax Analysis Results

Compiled in Program Version 6.00.  Help date last modified on 5 February 2024

Class wtaxmaint (Tax Maintenance) last modified 25 May 2022 FP: File > System Manager > Taxes…

Was this article helpful?

Get started.

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