Understanding Tax Codes

Understanding Tax Codes

Under normal circumstances WooCommerce uses tax classes to determine how the tax is applied to orders and shipping by using table of rates based on the billing or shipping address in the order (or shop base address).

Each product and the shipping classes can be assigned a tax class to determine which table of tax rates to use.  The rates are based on location (Country, State, City & Zip/Postcode) and priority (to allow application of multiple tax rates).  Each rate is given a name and this name is combined with the location elements (Country, city etc) and priority to create a tax rate code that is stored in WooCommerce orders against product and shipping (e.g. GB-VAT-1).

If no tax rate is found for a location, then the tax is set to zero (0.00) and other tax-related fields are left blank (null).

It is usual to set rates for all locations you sell/ship to, applying the relevant rates.

Normally, not assigning a tax class for an item (product or shipping) or not having codes for all locations is ok, if you are happy that it does not apply any tax.  However, Sage 50 requires tax to be given tax codes (T Codes) to classify tax for various reasons (e.g. government tax returns) and Woosage uses the WooCommerce tax rate code to facilitate this via a mapping table.

We recommend that your rates include default rates (i.e. rates that apply if none of the other rates match the location information), but we have also included a default rate that will be used for mapping a T-code in such cases.

Warning
Some retail/consumer sites setup WooCommerce so that tax calculations are not performed in WooCommerce and all prices include tax.  You must setup WooCommerce to calculate tax even if it is not shown to the online customer or the Sage tax codes will be incorrect and no VAT will be shown.
An example “Standard” tax class table in WooCommerce might contain:


Country Code


State Code


Postcode / ZIP


City


Rate %


Tax Name


Priority


Compound


Shipping

*

*

*

20

VAT

1

 

Yes

*

*

*

*

0

ZERO

1

 

 

In the above example the first line determines that UK (GB) orders will be taxed at 20%, including shipping charges (this is shown as a tick in WooCommerce).  The second line determines that orders for all other locations will be zero-rated (assuming all products have a “Standard” tax class).

The resulting tax WooCommerce tax code for the first line one would be GB-VAT-1 and the second line would be ZERO-1 (see below)

The same would apply if the second line was omitted and although WooCommerce would still show zero tax on the order for outside the UK, this would create problems for assigning T-code in Sage.

If you use other tax classes to apply tax to product or shipping, then these work in exactly the same way and you should define tax code for each class to cover each region you sell/ship to.

All tax codes defined in WooCommerce must be mapped to a T-code in Woosage50>Settings>Taxes. (See Woosage50 Tax Settings)

Each tax class entry that is used in WooCommerce must be mapped to an appropriate Sage tax code.  Standard, Reduced and Zero Rates are provide by WooCommerce when installed and we recommend removing tax classes that are not used.

During WooCommerce order processing a tax code is inserted in to the order.  The form of the WooCommerce tax code is Country code-Tax name-Priority (e.g. GB-VAT-1) and this is obtained by concatenating the following fields from WooCommerce/Settings/Tax/Standard Rates, Reduced Rates and Zero Rates (see figure 4 below) with a “-“ (minus) character between each:

  1. Location components, such as Country code (e.g. GB)
  2. Tax name (e.g. VAT)
  3. Priority (e.g. 1)


The Sage tax codes are T0 through T99 and typical default codes are shown below, but you should check your Sage installation:
  1. T0 Zero rated
  2. T1 Standard Rate
  3. T2 Exempt
  4. T4 Sales to other EU countries (where applicable)
  5. T5 Reduced
  6. T9 Non-taxable
Warning
Do not enable automated taxes using WooCommerce Services to automatically set tax codes as this dynamically generates names for codes based on customer location, which are not always consistent.



    • Related Articles

    • Tax Discrepancies

      As Woosage50 works with two different systems, WooCommerce & Sage, both of which can have different tax calculation methods and number precision, there is scope for discrepancies between the WooCommerce order and the imported sales order/invoice in ...
    • Woosage50 Tax Settings

      By Default Woosage50 uses the tax calculations from the website order when creating a Sales Order or Sales Invoice in Sage. This is done to ensure the tax figures that the customer has been presented with in the checkout are used in Sage, avoiding ...
    • Product Codes (AKA SKU or Stock Codes)

      Sage Code Restrictions. A requirement of Woosage50 is that the SKU codes in WooCommerce must match the Product (Stock) codes on Sage in order to process orders and update website products. While WooCommerce can have SKU codes up to 255 characters in ...
    • How Sage Customer Account Codes are Applied in Woosage50

      All website orders must be created in Sage against a particular Customer Account as a Sales Order or Sales Invoice and Woosage provides a number of methods for determining which Customer Account an order is allocated to. Sage Customer Accounts are ...
    • Setting Sage Customer Account Codes in the Customers Wesbsite Profile

      The Woosage50 plugin adds a field to the website user account profile (shown below) to allow the Sage Customer Account Code to be added to orders generated by the user (when logged on), so that the order is imported to the relevant Sage account. Add ...