How to Bulk Import Tax Rates into WooCommerce

How to Bulk Import Tax Rates into WooCommerce

Entering tax rates one row at a time in WooCommerce gets old fast, especially if you sell across multiple states or countries. WooCommerce ships with a CSV importer for exactly this, so you can load dozens of rates in a single upload. This guide covers the columns it expects and where the import actually lives.

Enable taxes first

The Tax tab does not appear until taxes are switched on. Go to WooCommerce > Settings > General, tick Enable taxes, and save. A new Tax tab shows up in the Settings menu, and that is where the importer waits.

The columns WooCommerce expects

A WooCommerce tax CSV uses ten columns, in this order:

  • Country code - two-letter code like US, or blank for all countries.
  • State code - like CA, or blank for all states.
  • Postcode - a specific postcode, ranges, or blank.
  • City - a specific city, or blank.
  • Rate % - the percentage, like 7.25.
  • Tax name - what shows at checkout, like Sales Tax.
  • Priority - usually 1; only one rate per priority matches.
  • Compound - 1 to stack on top of other taxes, else 0.
  • Shipping - 1 if the rate applies to shipping, else 0.
  • Tax class - blank for Standard, or a slug like reduced-rate.

Blank fields act as wildcards, so a row with an empty Country code applies everywhere. Getting Priority and Compound right matters most, since they decide how rates combine.

Build the CSV without spreadsheet headaches

Hand-formatting a tax CSV is where small mistakes creep in: a stray header row, the wrong column order, a percentage with a % sign. The WooCommerce Tax Rate CSV Generator lays out the fields for you and exports a file in the exact format WooCommerce reads.

  1. Open the WooCommerce Tax Rate CSV Generator and add a row for each rate.
  2. Fill in Country code, State code, Rate %, Tax name, and Priority, leaving wildcards blank.
  3. Set Compound, Shipping, and Tax class as needed for each row.
  4. Download the CSV. Everything runs in your browser, so nothing is uploaded.

Run the import

In your store, go to WooCommerce > Settings > Tax, then open Standard rates (or a specific rate class like Reduced rate). At the bottom you will see an Import CSV button. Click it, choose your file, and WooCommerce reads each row into the table.

A few things to check after importing:

  • Confirm rates landed in the right class. Each class has its own table, so a reduced rate imported into Standard will not behave as expected.
  • Spot-check Priority. Two matching rows at the same priority will conflict.
  • Place a test order to confirm the right tax shows at checkout.

If something looks off, you can clear the table and re-import a corrected CSV.

Build the CSV once, import it, place a test order, and your tax setup is done.

← All posts