GST Invoice in WooCommerce
A GST invoice in WooCommerce is the PDF that shows your GSTIN, the buyer's state, an HSN or SAC, and the tax split. Turn taxes on, set the shop state, and save the GSTIN. A same-state test order prints CGST and SGST. An order to another state prints IGST only.
For Indian WooCommerce store owners: from tax settings to a customer-ready GST invoice, verified with two test orders.
knowledge
- Read time
- 5 min
- Sections
- 6
- Updated
- 14 Nov 2026
- Written by
- WebJi® team
Last editorial update: 15 November 2026.
What must a GST invoice from WooCommerce show?
A customer-facing GST invoice is the tax bill for an Indian sale — not the short WooCommerce email that only says the order is complete — and it carries your trade name and GSTIN, an invoice number and date, the buyer's name and state, and the place of supply. Each line needs the item, an HSN or SAC, the taxable value and the tax: inside your state the tax appears as CGST plus SGST, and a buyer in another state gets the same slab as a single IGST line.
Division of labour keeps this simple: WooCommerce calculates tax only after you switch that on, the PDF layout itself comes from a GST invoice plugin, and the store runs on e-commerce hosting that can carry WordPress and WooCommerce. WebJi® hosts the store — we are not the plugin maker, and we do not file your GST return.
How do you add GST to the invoice?
Do the setup in wp-admin before a real customer pays, and stop when two test PDFs show your GSTIN and exactly one kind of tax split each. Work top to bottom:
- Open WooCommerce → Settings → General. Set the store state to the state on your GST registration, tick Enable tax rates and calculations, and save.
- Open the Tax tab. Set Prices entered with tax to "No, I will enter prices exclusive of tax". Set Calculate tax based on to the customer shipping address when you ship goods, or the billing address when that is your place of supply. Save.
- Open Plugins → Add New, search for a GST invoice plugin, install and activate it, then enter your GSTIN in its GST or invoice settings. If those fields are missing, deactivate it and pick one that shows GSTIN, HSN and CGST or IGST.
- Edit each product: enter the HSN for goods or the SAC for a service, set the slab if the plugin asks, and update.
- Place two test orders — one with an address in your state, one in another state — and download both invoice PDFs.
It worked when the home-state PDF shows CGST and SGST, each half the slab, and the other PDF shows only IGST at the full slab. If both PDFs list every tax, a rate row with a blank state is stacking on the state rate — delete that extra row and rerun the two orders. Taking the payment is a separate setup; Razorpay in WooCommerce does not choose CGST or IGST for you.
How do you update the GST number?
The GSTIN on a new invoice is whatever number is saved in the invoice plugin, because WooCommerce core keeps no shop GSTIN field of its own. Three cases, three actions:
- Shop GSTIN: open the plugin's GST or invoice settings, replace the number, save. Invoices created after that save use the new number.
- Buyer GSTIN: edit that order — or have the buyer check out again with the corrected field — and regenerate the PDF.
- Old PDFs: a file already downloaded keeps the old number; if you already sent it, issue a revised PDF and keep the old file.
Open one new test order after saving: the GSTIN line on that PDF is the check. If it still shows the old number, you edited a product or an old order rather than the shop setting.
WooCommerce tax settings or a GST plugin — which one do you need?
Tax settings do the calculation; a GST invoice plugin writes the Indian-format PDF and fills the rate rows so you do not add every state by hand. Neither replaces the other:
| Job | WooCommerce tax settings | GST invoice plugin |
|---|---|---|
| Turn calculation on | Yes, under Settings | Still needs that tick |
| Home state and other states | One rate row per state, or taxes stack | Builds CGST, SGST, IGST and UTGST from the slab and your shop state |
| Your GSTIN on the PDF | No core field | A setting on the invoice |
| Buyer GSTIN at checkout | No core field | A checkout field on B2B orders |
| HSN or SAC on the line | No core product field | A field on the product |
| PDF download | Needs a separate PDF plugin | Usually part of the same plugin |
Stay on native rates only if you sell into one or two states and already have a PDF tool: add two rows for your state (CGST and SGST) with compound turned off so the second rate does not tax the first, plus a separate IGST row per other state — and never leave the state cell blank, because a blank state matches every state and stacks tax. Use a plugin when orders leave your state. Plugin pricing is the vendor's, not ours; WooCommerce hosting is the account the shop runs on, and support@webji.services quotes accounts by email — the office number is not a support line.
When is the tax CGST plus SGST, and when is it IGST?
The slab stays the same and only the split changes: same state means half the slab as CGST and half as SGST, another state means the whole slab as one IGST line, and in a Union Territory UTGST replaces SGST. The plugin compares your shop state with the state on the order.
- 18 percent slab: a home-state buyer sees 9 percent CGST plus 9 percent SGST; an other-state buyer sees 18 percent IGST and no CGST line.
- 5 percent slab: the halves are 2.5 and 2.5.
- Reduced-rate goods: need their own tax class or the plugin's per-product slab, or they pick up the standard rate.
How do you verify the invoice before a customer sees it?
Read both test PDFs line by line before sending one to a paying customer — the split, the GSTIN and the codes, not just the total. The pass checklist:
- Home-state order: CGST and SGST, and no IGST line.
- Other-state order: IGST only, at the full slab.
- Both PDFs: your current GSTIN, plus an HSN or SAC on every line.
- Arithmetic: taxable value plus tax equals what the customer paid.
A wrong rate usually means the product sits in the wrong tax class — standard rates are the default class, so give a reduced slab its own class and rows, then repeat the two test orders. Two boundaries: if your CA says e-invoicing applies to you, the government IRP document is a separate file and this PDF does not replace it; and the monthly return is separate too — export the orders for your CA. This setup stops at the invoice the customer receives.
Frequently asked questions
Can WooCommerce print CGST and SGST without a plugin?
It can calculate them if you add two rates for your state with compound turned off. Core WooCommerce will not print your GSTIN or HSN on a tax-invoice PDF by itself. A GST invoice plugin adds those fields plus the other states' IGST rows in one place.
Do I need an HSN code on every WooCommerce product?
Yes for a goods line, and a SAC for a service. Put the code in the plugin's product field. If a PDF line comes out blank, that product's field is empty — one code does not copy itself across the catalog, so bulk-edit the rest.
What if both CGST and IGST appear on one invoice?
A rate row with the state left blank is applying on top of the state rate, because a blank state matches every state. Remove that extra row, or let the plugin rebuild the rates from your shop state, then run the two test orders again before sending any PDF.
Does this GST invoice PDF satisfy e-invoicing rules?
Not by itself. If your CA says e-invoicing applies to your turnover, the invoice must also be registered on the government Invoice Registration Portal, and the IRP document is a separate file. The customer PDF this page builds does not replace it.
Does WebJi® file my GST return or issue my shop invoices?
No. WebJi® hosts the WooCommerce site, your plugin writes the customer invoice, and your CA files the return. For a copy of a hosting bill, email support@webji.services; GST on our hosting bill is separate from your shop's tax.
Last editorial update: 15 November 2026.
Ready to get started with WebJi®?
Join 12,000+ businesses across India and overseas. INR pricing, 18% GST shown before payment and 24/7 email support in Hindi and English — average first reply under 60 minutes.