Setting up Taxes in WooCommerce

Setting up taxes in WooCommerce is one of the first tasks you’ll want to complete when setting up a store. In this guide we look at available options for how to set up taxes in WooCommerce, how to access them, and what the WooCommerce tax settings do.

Related guides for additional reference:

The video below offers a 2-minute guided tour of the WooCommerce tax settings that will acquaint you with the essentials of what this document covers in detail.

This documentation is meant to help with setting up tax rates in the WooCommerce settings and how the platform handles taxes/VAT/GST based on these settings, but not when or what to charge.

We’re not tax professionals so our advice is how to use our software. For specific advice when it comes to what or when to charge tax/VAT/GST etc, we recommend consulting with a tax professional or an accountant on what may be your best options.

Each business is unique, and there’s no way we can cover every possibility.

How to enable taxes in WooCommerce

↑ Back to top

To configure taxes in WooCommerce you first need to enable the Tax settings tab by following the steps below: 

  1. Go to WooCommerce > Settings > General.
  2. Scroll down and select the Enable Taxes and Tax Calculations checkbox. 
  3. Scroll to the bottom of the page and click Save changes.
The settings page located at WooCommerce > Settings > General contains a section tited General options. It in turn contains a setting called Enable tax with a checkbox. When the checkbox is checked and the options are saved, a new Tax tab is added to the top of the screen.

How to configure tax options in WooCommerce

↑ Back to top

Once enabled, access the WooCommerce tax settings in the Tax tab by going to WooCommerce > Settings > Tax.

Your choices for these options depend on the tax jurisdiction your store is located in. Check with your accountant to ensure your tax configuration is suitable for your store. Continue below to get acquainted with each setting, or click here for a how-to guide outlining steps to configure common tax scenarios.

Prices entered with tax

↑ Back to top

The Prices entered with tax option is perhaps the most important setting when you manage taxes in your store. It determines how you enter your product prices. There are 2 options to select from:

  • Yes, I will enter prices inclusive of tax – enter all product prices including your store’s base tax rate.
  • No, I will enter prices exclusive of tax – you should then enter product prices without tax.

For example, let’s say want a product to cost £9.99 including taxes, your store is UK-based and the tax rate is 20%.

  • If you select Yes, I will enter prices inclusive of tax, you would enter £9.99 as the total product price. WooCommere will work backwards from that total and calculate that it includes the base product price of £8.325 and the tax of £1.665 to display, automatically rounded. 
  • If you select No, I will enter prices exclusive of tax but want the same total price, you would enter £8.325 as the product price. WooCommerce then adds 20% on top and offers the same rounded price of £9.99.

Click here to learn more about how taxes are calculated in WooCommerce and refer to the Rounding section below for how this tax setting might be affected by other settings.

Calculate tax based on

↑ Back to top

Use the Calculate tax based on setting to tell WooCommerce which address to use for tax calculations. There are 3 options to choose from: 

  • Customer billing address
  • Customer shipping address (default)
  • Shop base address

Options 1 and 2 require customers to enter the respective address.

If Option 3 is selected, the taxes are always calculated based on your store’s location regardless of the customer’s address.

Shipping tax class

↑ Back to top

The Shipping tax class setting draws from tax classes. It is used to indicate how WooCommerce should calculate tax on the cost of shipping. Each tax class in your shop appears as an option here. This setting always has at least the following options: 

  • Shipping tax class based on cart items
  • Standard

The setting defaults to the first option, Shipping tax class based on cart items. In this case, shipping tax is inherited from the tax class assigned to the product or products being shipped. 

For example, if a product, like baby clothes, has been assigned a reduced tax class, then the tax rate from that class would also apply to the shipping charge. If your jurisdiction treats shipping differently, assign a specific tax class to this setting to use that for shipping instead.

In cases where there are multiple products with different tax rates in the order, the shipping tax is applied as follows:

  • If an order contains a product with the Standard rate tax class, it is used for shipping regardless of being the highest or not. 
  • If the order does not contain a product with the Standard rate tax class, then the first rate found in the Additional tax classes section is used. 

If you don’t use the Standard rate tax class on your products, and if you need the highest tax rate from other tax classes to apply to shipping, then you should make sure your highest tax rate is listed first in the Additional tax class section. Here is a detailed example of how to achieve that.


↑ Back to top

Enable the Rounding tax at subtotal level, instead of per line setting to calculate rounding at the subtotal level instead of on a per line basis.

In certain circumstances this could lead to slight variances. Confirm if this is required for your store by consulting your accountant or check your tax jurisdiction. 

Off-by-one rounding errors

Off-by-one rounding errors are not affected by this setting. These can result if a series of 3 other tax display settings are not all set to either including tax or excluding tax. The series consist of

  • Prices entered with tax
  • Display prices in the store
  • Display prices during cart and checkout

When these 3 settings are mixed it can lead to the calculated price having more decimal precision than allowed to be displayed by the store, causing prices to be rounded in unexpected ways. 

Screenshot of the tax settings showing the series of settings that should be consistent when prices are entred inclusive of tax.
Settings when prices are inclusive of tax

If any of the 3 tax display settings in the series differ, a warning banner is displayed to notify the user when the tax display settings are mismatched and in conflict. Clicking on Use recommended settings changes all the settings to be the same as the one set for Prices entered with tax.

Additional tax classes

↑ Back to top

The default Standard rates is sufficient for most cases, but if you sell goods that require different tax classes, you can add them here. Add one tax class per line. Remove or add additional classes as required, but note that the Standard rates class can’t be removed.

After clicking Save changes, your added tax classes will appear as subtabs at the top of the page. From there you can click on each to add and manage the tax rates within that class.

Display prices in the shop

↑ Back to top

The Display prices in store setting determines how prices are displayed throughout your stop/catalog. Choose from Including tax or Excluding tax.

Refer to the Rounding section for how this setting might be affected by other settings.

Display prices during cart and checkout

↑ Back to top

The Display prices during cart and checkout setting determines how prices are displayed in your cart and during checkout. Choose from Including Tax or Excluding Tax.

Note: The address field needs to be filled in to get tax calculations if you have a tax table that distinguishes between locations.

Refer to the Rounding section for how this setting might be affected by other settings.

Price display suffix

↑ Back to top

The Price display suffix setting allows you to add any text after product prices and, optionally, show how much tax is included or the prices without tax. You can use the following dynamic place holders and add text around it:

  • {price_including_tax}
  • {price_excluding_tax}

For example, using Price incl. VAT: {price_including_tax} in this field will display as “Price incl. VAT: £50.40 in your store. This is a way to add the tax-inclusive price in small print to a store where the prices are configured to exclude tax, or vice versa.

The effect of adding a price display suffix is illustrated on 4 products, the suffix appearing in small print after the normal price.

Suffixes on variable products

Price suffixes are not enabled by default for main Variable products for performance reasons. They are, however, available on the variation level, visible once the variable options have been selected. 

Display tax totals

↑ Back to top

The Display tax total setting determines if multiple taxes are displayed as one total during checkout or if they’re displayed as an itemized list of taxes.

This setting, when set to Itemized, can also be useful to show the tax rate name on the cart and checkout pages, especially when only one tax rate per location is used and the name needs to be updated according to the location. In the image below is an example tax rate to illustrate. Note how the tax name is set to My Tax Name.

A default tax rate where the Tax Name is set to My Tax Name.

The tax appears as the English default Taxes when the Display tax totals is set to As a single total.

When Display tax totals is set to As a single total, then on the cart/checkout page the tax is named the default "Taxes".

However, the tax appears by the name given in the tax rate setup, My Tax Name, when we change the Display tax totals to Itemized.

When Display tax totals is set to Itemized, then on the cart/checkout page the tax is named as per the tax rate's Tax Name, e.g. My Tax Name.

Create a custom translation instead to change the default text (Taxes in English) without using the above setting.

Why are tax options greyed out?

↑ Back to top

If your settings are greyed out, you may notice an extra Automated taxes setting, which is set to Enable automated tax. If that is the case, most of this document won’t apply, as your taxes are automatically managed by an additional plugin.

To make this document more relevant, change the Automated taxes setting to Disable automated taxes (and click Save changes) to return the normal functionality of core WooCommerce tax settings.

The Automated taxes setting is added by an additional extension, in this case WooCommerce Tax. Refer to the WooCommerce Tax Documentation for how it works.

The Automated taxes setting is added by an additional extension, in this case WooCommerce Tax. Refer to the WooCommerce Tax Documentation for how it works.

Configuring tax rates in WooCommerce

↑ Back to top

Tax rate table settings in tax classes

↑ Back to top

Tax classes are displayed as subtabs at the top of the Tax settings screen. Click on a tax class to view its tax rates table which is where you define the tax rates to apply to your customers.

Each tax rate row has the following attributes:

  • Country Code – specify a 2-digit country code that the rate applies to or leave the asteriks (wildcard *) to apply to all countries. All country abbreviations are in the WooCommerce code, viewable here on Github.  
  • State Code – specify a 2-digit state code that the rate applies to, for example “CA” for California, in the U.S or leave the wildcard * to apply to all states. All state/province abbreviations are in the WooCommerce code, viewable here on Github.
  • Postcode / Zip – enter postcodes that the rate applies to. Separate multiple values with a semicolon (;), use the wildcard * to match all postcodes, prefix letters or numbers to the wildcard * to apply to only certain postcodes (e.g. PE* would match all postcodes starting with PE, or 90210* would work in the U.S. for ZIP+4 postcodes), and use numeric ranges to include everything between a start and end (e.g. 2000…3000). 
  • City – semicolon separated list of cities the rate applies to, or use the wildcard * to apply to all cities. If a city is specified, the customer would have to enter it exactly for a match. E.g. a rule for “Cape Town” will not match if a customer enters “Capetown”. 
  • Rate % – enter the tax rate, for example 20 for a tax rate of 20%.
  • Tax name – give your tax a name, e.g. “VAT”.
  • Priority – assign a priority to the tax rate. Only the 1st rate that matches per priority will be used. Specify a different priority per rate to define multiple tax rates for a single area. 1 is the highest priority, and will be considered before 2, which will be considered before 3, etc. Here’s a detailed practical example.
  • Compound – check this box if this rate is compound (applied on top of all prior taxes). 
  • Shipping – enabled by default and signifies that the tax rate also applies to shipping.

Configuring specific tax setups

↑ Back to top

For How-to guides for configuring specific tax setups please see Configuring Specific Tax Setups in WooCommerce.

Manually inserting tax rates

↑ Back to top

Tax rates can be entered manually by following the steps below:

  1. Click Insert row to get started. 
  2. Enter a value as required and explained above, for each column in each row. 
  3. Click Save changes.

Importing and exporting rates

↑ Back to top

Tax rates can also be exported to or imported from Comma-separated Value (CSV) files. Find the Import CSV and Export CSV buttons to the bottom-right of a tax rate table. 

To create a tax rate CSV file from which to import rates, we suggest manually entering a rule first, and then doing a CSV export. It will generate a tax rule CSV file that contains the 10 columns that need to be present for a tax rate import to work, serving as a template for changes or additions. The columns are

country code, state code, postcodes, cities, rate, tax name, priority, compound, shipping, tax class

We’ve provided a sample tax rate CSV below that you can download and use to import for the United States based on state tax only. Leave Tax class blank for standard rates. This should not be used for production/live purposes, as tax rates frequently change. Double-check any rate for accuracy before using.

Download Sample Tax Rate CSV Here

Deleting tax rates

↑ Back to top

Incorrect rates should be deleted by following the steps below: 

  1. Go to WooCommerce > Settings > Tax and click on the appropriate tax class subtab (e.g. Standard rates, Reduced rates, etc.)
  2. Select lines in the tax class rate table by clicking on them. Hold the SHIFT key or the CMD/CTRL key to select consecutive or specific rows respectively. Selected rows are highlighted yellow as pictured below.
  3. Click the Remove Selected Rows button to delete the highlighted row(s).
  4. Click Save changes to finalize the action.

To delete all tax rates at once (maybe because you have an extensive list to redo or perhaps you just want to start fresh) go to WooCommerce > Status > Tools > Delete WooCommerce Tax Rates and click the Delete tax rates button. This action cannot be undone.

Viewing tax reports

↑ Back to top

Tax reports can be found in WooCommerce > Analytics > Taxes. The reports are further detailed in the WooCommerce Analytics Taxes Report Documentation.

Questions and Support

↑ Back to top

Do you still have questions and need assistance? 

This documentation is about the free, core WooCommerce plugin for which support is provided in our community forums on Searching there you’ll often find that your question has been asked and answered before.

If you haven’t created a account to use the forums, here’s how.

  • If you’re looking to extend the core functionality shown here, we recommend reviewing available extensions in the Woo Marketplace.
  • Need ongoing advanced support, or a customization built for WooCommerce? Hire a WooExpert agency.
  • Are you a developer building your own WooCommerce integration or extension? Check our Developer Resources.

If you weren’t able to find the information you need, please use the feedback thumbs below to let us know! 🙏