WooCommerce India GST Tax Rates CSV Generator

CGST + SGST rows for sales within your state and a single IGST row for every other state, built on the post-reform GST slabs.

Describe the result you need. AI will set up the tool and ask for any missing details.

Configure with AI

Enter to submit · Shift + Enter for a new line

Sent to AI. Leave out passwords and private customer data.

Your details

The two-letter code WooCommerce uses for your registered state, e.g. MH for Maharashtra, KA for Karnataka, DL for Delhi, TN for Tamil Nadu. It's the same list you pick from under your store's address in Settings → General.

Freight billed by the seller is generally taxed at the same rate as the goods it's shipping.

WooCommerce India GST rate import CSV

woocommerce-india-gst-rates.csv
Country code,State code,Postcode / ZIP,City,Rate %,Tax name,Priority,Compound,Shipping,Tax class
IN,MH,,,9.0000,CGST,1,0,1,
IN,MH,,,9.0000,SGST,1,0,1,
IN,,,,18.0000,IGST,1,0,1,
IN,MH,,,2.5000,CGST,1,0,1,reduced-rate
IN,MH,,,2.5000,SGST,1,0,1,reduced-rate
IN,,,,5.0000,IGST,1,0,1,reduced-rate
IN,,,,0.0000,GST,1,0,1,zero-rate

7 tax rate rows for 3 GST slabs. Rates reflect the GST 2.0 restructuring effective 22 Sep 2025 (headline slabs 5%, 18% and a 40% de-merit rate, alongside 0% nil-rated), checked 30 Sep 2026. Import at WooCommerce → Settings → Tax → Standard rates → Import CSV, and again on the Reduced rate, Zero rate and any custom class tab.

Each active slab gets three rows: CGST + SGST scoped to MH (your state), each at half the rate, plus a single IGST row with a blank state that matches every other Indian state. WooCommerce matches the more specific state row first, so a customer in MH sees CGST + SGST and everyone else in India sees IGST. Assign products to the matching tax class (blank = Standard, "reduced-rate", "zero-rate", or a class you add named "GST 40%" for the slug "gst-40").

These are the headline post-reform slabs, not a full HSN-code rate table. Some categories (gold, silver and precious stones, certain services, goods still being phased onto the new slabs) use different rates. Check your product's actual GST rate against its HSN/SAC code on the GST portal before relying on this file, and confirm whether your state uses SGST or UTGST (union territories) for its half.

Why GST needs three rows, not one

GST splits into CGST + SGST (or UTGST in a union territory) when the sale is within your own state, and a single IGST when it crosses state lines. A generic sales-tax CSV can't express that, since WooCommerce's tax table normally maps one rate to one location. This generator uses a trick that works with WooCommerce's own matching order: it writes CGST and SGST as two rows scoped to your specific home state, and IGST as one row with a blank state that matches every other state in India. WooCommerce always matches the more specific row first, so a customer in your home state gets the two specific rows and everyone else falls through to the blank-state IGST row.

Default settings (home state MH, 18%, 5% and 0% slabs on)

Home state
MH
Slabs
18%, 5%, 0% (nil-rated)

7 rows: for 18% and 5%, a CGST row (half the rate) and SGST row (half the rate) scoped to MH, plus a blank-state IGST row at the full rate; for 0%, a single blank-state row.

The GST 2.0 slabs

India's GST Council restructured the rate slabs effective 22 September 2025: the old five-slab structure (0%, 5%, 12%, 18%, 28%, plus special rates) was collapsed into two headline rates, 5% and 18%, with a new 40% de-merit rate on select luxury and sin goods, alongside the existing 0% nil-rated category.

  • These are the headline post-reform slabs, not a full HSN-code-by-HSN-code table. Some categories, including gold, silver, precious stones and certain services, use different rates. Check your specific product's HSN or SAC code against the GST portal's rate finder before assigning it a tax class.
  • The 40% slab needs a class named exactly "GST 40%" added under WooCommerce → Settings → Tax → Additional tax classes first, or those rows fall back to Standard on import.
  • A union territory without its own legislature uses UTGST instead of SGST for its half. The mechanics (half + half, or the full rate as IGST) are the same either way; this file just labels the state-portion row "SGST" for simplicity.

Setting it up

  1. 01

    Turn on taxes

    WooCommerce → Settings → General → tick Enable tax rates and calculations, and set your store's base country/state to your registered GST state.

  2. 02

    Add the 40% class if you need it

    WooCommerce → Settings → Tax → Additional tax classes, add a line reading exactly GST 40%.

  3. 03

    Import each class

    WooCommerce → Settings → Tax, Import CSV on Standard rates for the 18% rows, then on Reduced rate for 5%, Zero rate for 0%, and the new class for 40%.

  4. 04

    Assign products

    Set each product's Tax class (Products → edit product → General) to match the slab it's actually taxed at.

Questions people ask

Why CGST + SGST instead of one combined GST rate?

Indian tax law itself splits GST into a central and a state component for sales within a state, shown separately on the invoice. WooCommerce's tax table can show two rows as two separate lines the same way.

What if my state code is wrong?

The CSV uses whatever two-letter code you enter in "Your business's registered state", which must match WooCommerce's own state list (the same one you pick from under your store address). Check Settings → General if you're not sure of the exact code.

Does this handle the 3% rate on gold and jewelry?

No. That's outside the headline slabs this tool covers. Add it as its own tax class and rate rows if you sell gold, silver or precious stones, after confirming the current rate on the GST portal.

Do I need to charge GST on shipping?

Freight billed by the seller is generally taxed at the same rate as the goods it's shipping, which is why "Charge GST on shipping too" defaults to on. Confirm this for your specific goods, since some categories differ.

Is this a substitute for a GST-registered accountant?

No. It gets the WooCommerce tax table set up correctly for the CGST/SGST/IGST mechanism; it doesn't replace GST return filing or HSN classification advice.

Want this builtinto your store?

I'm Emmanuel, a Shopify and WooCommerce developer. If this tool pointed at something you'd rather have fixed for you (a faster store, cleaner product data, a migration, a custom feature), send me a note.

Emmanuel Asika

Emmanuel Asika

Shopify & WooCommerce developer, Dublin

I build and fix online stores: new builds, migrations, speed, SEO and the custom bits apps can't do.

hello@emmanuelasika.com