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.
Your details
WooCommerce India GST rate import 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-rate7 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
- 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.
- 02
Add the 40% class if you need it
WooCommerce → Settings → Tax → Additional tax classes, add a line reading exactly
GST 40%. - 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%.
- 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.
Related tools
Last reviewed 30 September 2026.
Sources: Press Information Bureau: GST 2.0 reforms (5% and 18% slabs, effective 22 Sep 2025) · GST portal: rate finder by HSN/SAC code · WooCommerce: Setting up taxes
