How to Create GST Invoices in WooCommerce?

How to Create GST Invoices in WooCommerce?

AI Summary

WooCommerce doesn’t generate GST invoices out of the box. And for Indian store owners, that’s not a minor inconvenience; a missing mandatory field on your invoice means your B2B buyers can’t claim Input Tax Credit, and a pattern of non-compliant invoices can attract penalties of up to ₹10,000 per incorrect document under the CGST Act.

This guide covers everything you need: what a valid GST invoice must include, how to configure tax rates in WooCommerce, how to add HSN/SAC codes, and how to auto-generate compliant PDF invoices for every order.

What is a GST Invoice?

A GST invoice is a document issued by a GST-registered seller to a buyer that records the details of a transaction and the applicable Goods and Services Tax. It serves as the official record of the sale for both parties and is the primary document through which a buyer claims Input Tax Credit (ITC).

In India, GST invoices are governed by Rule 46 of the CGST Rules and must include specific mandatory fields: the seller’s GSTIN, HSN/SAC codes, tax breakup (CGST, SGST, or IGST), place of supply, and more. An invoice that’s missing any of these fields isn’t just incomplete; it’s invalid. It’s non-compliant, and the buyer loses the ability to claim ITC against it.

There are a few types depending on the transaction:

  • Tax Invoice: The standard GST invoice issued by a registered supplier for taxable goods or services. This is what most WooCommerce store owners will be generating.
  • Bill of Supply: Issued instead of a tax invoice when GST cannot be charged, such as when selling exempted goods or when the seller is under the composition scheme.
  • Credit Note: Issued when a previously issued invoice needs to be revised downward, typically on a return or cancellation.
  • Debit Note: Issued when additional tax or value needs to be charged against a prior invoice.

For eCommerce, the tax invoice is what matters day-to-day. Every order from a GST-registered business to a buyer (B2C or B2B) requires one, and the format has to be correct for it to hold up in a GST audit or ITC claim.

What a Valid GST Invoice Must Include

Before touching your WooCommerce settings, it helps to know what you’re building toward. Under Rule 46 of the CGST Rules, every GST tax invoice must carry these mandatory fields:

  • Seller’s name, address, and GSTIN
  • A unique, consecutive invoice number (maximum 16 characters)
  • Invoice date
  • Buyer’s name, address, and GSTIN or UIN (for B2B transactions)
  • Place of supply
  • HSN code (for goods) or SAC code (for services)
  • Description of goods or services
  • Quantity and unit of measurement
  • Taxable value (before tax)
  • Applicable tax rate and tax amount broken down as CGST, SGST/UTGST, or IGST
  • Total invoice value
  • Whether tax is payable on a reverse charge basis
  • Authorized signature or digital signature

Missing any of these doesn’t just create a compliance risk for you, it directly hurts your B2B buyers. Without a properly structured tax invoice, they cannot claim ITC on their purchases. That’s the kind of problem that makes buyers switch suppliers.

One more thing to flag: penalties under Section 122(1)(i) of the CGST Act apply per invoice. At ₹10,000 per incorrect document (or the tax amount evaded, whichever is higher), this compounds fast for high-volume stores.

CGST, SGST, and IGST — Which Apply to Your Orders

This is where most WooCommerce store owners get tripped up. The tax type you charge isn’t based on your business location alone — it’s determined by the “place of supply,” which compares your registered state with your buyer’s state.

Here’s the rule:

  • Same state (intra-state): Charge CGST + SGST. For example, a seller registered in Karnataka shipping to a Karnataka buyer charges 9% CGST + 9% SGST = 18% total.
  • Different states (inter-state): Charge IGST. That same Karnataka seller shipping to a buyer in Tamil Nadu charges 18% IGST instead.

This distinction matters for invoicing because the tax breakdown on the invoice must match the actual supply type. Charging CGST+SGST on an inter-state transaction, or vice versa, is non-compliant even if the total tax amount is correct. The buyer can’t claim ITC on misclassified tax, and you’re exposed to 18% interest on the difference.

WooCommerce’s native tax system doesn’t automatically determine this. You’ll need to configure separate tax rates for intra-state and inter-state scenarios, which we’ll cover next.

Configure GST Tax Rates in WooCommerce

WooCommerce handles tax as a standard percentage rate tied to the customer’s shipping or billing location. With the right configuration, you can set it up to reflect CGST + SGST or IGST correctly, depending on where the order is going.

Step 1: Enable Tax Calculations

Go to WooCommerce → Settings → General. Check “Enable tax rates and calculations” and save.

Enable taxes

Step 2: Set Up the Tax Tab

Navigate to WooCommerce → Settings → Tax. Configure these settings:

  • Prices entered with tax: Set this to “No, I will enter prices exclusive of tax” (recommended for GST-registered businesses, as GST is calculated on the base price)
  • Calculate tax based on: Use “Customer shipping address” for most stores. This is what determines the place of supply
  • Display prices in the shop: “Excluding tax” is standard for B2B stores; “Including tax” is common for B2C retail
Add price exclusive of tax

Step 3: Add Tax Rates

Click on “Standard rates” (or create a new tax class for each GST slab your products fall under). For each slab, you’ll need two entries for intra-state and one for inter-state:

For an 18% GST slab (intra-state, Karnataka):

  • Tax name: CGST
  • Rate: 9
  • State Code: 29 (for Karnataka)
  • Priority: 1

Add one new row

  • Tax name: SGST 
  • Rate: 9
  • State code: 29 (for Karnataka)
  • Priority: 2 (must be different from CGST to apply both)

For the same slab (inter-state):

  • Tax name: IGST 18%
  • Rate: 18
  • Leave state blank (applies to all other states)
  • Priority: 1

Step 4: Assign Tax Classes to Products

In each product’s edit page, set the “Tax class” to the correct GST slab. For stores with mixed inventory across 5%, 12%, 18%, and 28% slabs, create a separate tax class for each rate and assign products accordingly.

This native setup correctly calculates GST at checkout. What it doesn’t do is generate a GST-compliant invoice PDF with all the mandatory fields. That’s the next step.

Add HSN/SAC codes to your WooCommerce Products

HSN (Harmonized System of Nomenclature) codes are mandatory for goods, and SAC (Services Accounting Code) codes for services. Both must appear on every GST invoice.

The number of digits required depends on your annual turnover:

  • Up to ₹5 crore: 4-digit HSN codes on B2B invoices
  • Above ₹5 crore: 6-digit HSN codes on all invoices
  • Import/export transactions: 8-digit codes

WooCommerce doesn’t have a built-in HSN/SAC field. The most practical approach is to add it as a product-level custom field or attribute, and then pull that into your invoice template using a plugin. The WebToffee PDF Invoices plugin supports adding product meta fields to invoices, which means you can store the HSN code at the product level and have it automatically appear in the product table on every invoice.

Generate GST-compliant PDF Invoices Automatically

This is the part that WooCommerce leaves entirely to you. No invoice PDF is generated by default, not even a basic one. You need a plugin to create, format, and attach GST-compliant invoices to order emails.

WebToffee’s PDF Invoices & Packing Slips plugin handles this. It auto-generates invoice PDFs when an order reaches a set status, attaches them to order confirmation emails, and supports all mandatory GST fields, including GSTIN, tax breakup, and HSN codes. The plugin is used by over 90,000 WooCommerce stores and supports both free and pro versions depending on your requirements.

Here’s how to set it up:

Step 1: Install the plugin

  • After purchasing the WebToffee WooCommerce PDF Invoice plugin, you will receive an email with the link to download the plugin. 
  • Then upload the plugin file, and install and activate the plugin.

Step 2: Configure company details

Go to Invoice/Packing → General Settings → General. Fill in your company details:

  • Name: Your business name as registered under GST
  • Logo: Upload your store logo (recommended 150×50px)
  • Company Tax ID: Enter your GSTIN in this format – GSTIN: 29XXXXXXXXXXXXXXX
Add company details

This is what makes your invoices legally valid as a GST document. Your GSTIN must appear on every invoice.

Step 3: Enable WooCommerce Invoices

  • Go to Invoice/PackingInvoice General.
Enable invoice
  • Select the Enable Invoice toggle button.
  • Choose the Invoice date.
  • Under “Automate invoice creation,” select the order statuses at which an invoice should be generated — typically “Processing” and “Completed.”
  • Then, under “Attach invoice PDF to selected WooCommerce emails,” select the matching email types. Make sure these match the statuses you selected above, or invoices won’t attach correctly.

Step 4: Configure WooCommerce Invoice Number

Under the Invoice Number section, configure a sequential numbering format. A format like INV/FY/0001 works well for Indian stores. It’s audit-friendly and easy to reference in GST returns. The plugin supports custom prefixes, suffixes, and auto-reset at the start of each financial year.

Set the invoice number

Step 5: Customize the Invoice Template

Go to Invoice/Packing → Invoice → Customize. The plugin includes a visual editor that lets you add, remove, or rearrange fields. For GST compliance, make sure the following are visible on the invoice:

  • GSTIN
  • Tax breakdown showing CGST, SGST, and IGST as separate line items
  • Place of supply

The invoice template editor lets you include custom order or product meta fields without writing any code. If you’ve stored HSN codes as product meta, you can pull them into the product table from here.

Once configured, every order will automatically trigger a PDF invoice that gets attached to the customer’s order email

WooCommerce GST Invoice

Invoice Numbering, Retention, and GST Return Readiness

A few operational things that are easy to overlook until an audit happens.

  • Sequential invoice numbers are mandatory: GST rules require invoice numbers to be unique and consecutive within a financial year, with a maximum length of 16 characters. Gaps in the sequence (from deleted or voided invoices) can raise flags during audits. The WebToffee PDF invoice plugin handles this automatically and supports annual auto-reset, so your numbering restarts cleanly at the beginning of each financial year.
  • Retention period is 8 years: You’re required to retain all GST invoices for at least 8 years from the date of filing the annual return. This means your invoicing setup needs reliable storage. The plugin’s bulk export feature lets you download all invoices as a ZIP file filtered by date range, order status, or customer, which is useful for annual archiving or handing over records to your CA.
  • E-invoicing thresholds: If your annual aggregate turnover (AATO) exceeds ₹5 crore, e-invoicing is mandatory. This means each invoice must be reported to the Invoice Registration Portal (IRP), and a valid IRN (Invoice Reference Number) and QR code must be printed on the invoice before it’s issued to the buyer. Businesses above ₹10 crore must report e-invoices to the IRP within 30 days of invoice generation.

Conclusion

Setting up GST invoices in WooCommerce isn’t just about adding tax percentages to your store. It’s about making sure every invoice you issue is legally compliant, audit-ready, and usable for your customers’ Input Tax Credit claims. From configuring CGST, SGST, and IGST correctly to adding HSN/SAC codes and generating sequential invoice numbers, each step plays a role in keeping your business aligned with GST regulations.

While WooCommerce can handle basic tax calculations, it still lacks built-in support for generating GST-compliant invoice PDFs. That’s where a dedicated invoicing plugin becomes essential. With tools like WebToffee PDF Invoices & Packing Slips, you can automate invoice generation, include mandatory GST details, and ensure every order email carries a properly formatted tax invoice without any manual effort.

Once your setup is in place, invoicing becomes a smooth, automated process instead of a repetitive compliance headache. More importantly, it gives your customers confidence that they’re dealing with a professional and GST-compliant business.

Article by

Associate Product Marketer @ WebToffee. I work on WooCommerce plugins and write about eCommerce growth, automation, coupons, subscriptions, and data privacy. Interested in practical marketing strategies that actually move metrics.

Got any query? Please leave a comment or reach out to our support

Your email address will not be published. Required fields are marked *

Google Preferred Source

You Only Need One Invoice Plugin for WooCommerce