=== CatCode GST Invoice and GSTR-1 for WooCommerce ===
Contributors: catcodestudio
Tags: gst, gst invoice, gstr-1, hsn, india
Requires at least: 6.2
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

GST tax invoices with HSN, CGST, SGST and IGST by place of supply, GSTIN check at checkout, and GSTR-1 files for the Returns Offline Tool.

== Description ==

For a WooCommerce store registered under GST in India. Each paid order gets a numbered tax invoice, each refund a credit note, and each month's documents turn into the section files of GSTR-1. Everything runs inside your site: no API keys and no outside service.

**This is software, not tax advice.** You choose the GST rate and the HSN or SAC of each product. The plugin holds no table of which goods pay which rate. Talk to your tax professional, and check every return before you file it.

= Invoices =

* Tax invoice with the particulars of rule 46: supplier and recipient with GSTIN, HSN or SAC, quantity and unit (UQC), taxable value after discount, rate, CGST and SGST or IGST, place of supply, delivery address, reverse charge line, signatory line.
* UTGST in place of SGST for the Union territories of section 2(114) CGST Act.
* Bill of supply when nothing on the order is taxed, and an invoice-cum-bill of supply for taxable and exempt goods to an unregistered buyer (rule 46A).
* Credit note for every refund, against its invoice (rule 53). A refund of a plain amount is spread over the invoice lines in proportion.
* Exports with the endorsement of rule 46, your LUT reference, the destination country, and rupee amounts at the rate you enter.
* Original, Duplicate for Transporter and Triplicate for Supplier copies, and the optional declaration of rule 46(s).
* A printable page for you and for the buyer, linked from My Account and from the order e-mails. It saves as PDF from the browser.
* An issued document is frozen. Changing a product, an order or a setting later does not change it.

= Place of supply =

* Goods: the State the order is shipped to (section 10(1)(a) IGST Act).
* Orders with nothing to ship: the State of a registered buyer's GSTIN, otherwise the billing State (section 12(2) IGST Act).
* Outside India: an export.
* Same State as your GSTIN: CGST and SGST. Another State: IGST.

Other place of supply rules, such as those for events, immovable property or transport, are not modelled. If WooCommerce charged a different kind of GST than the place of supply calls for, the document follows the place of supply and the plugin flags it before you file.

= Numbers =

* Consecutive and unique within the financial year, starting over on 1 April, in separate series for invoices, bills of supply and credit notes.
* Up to 16 letters, digits, hyphens and slashes, as rule 46(b) and the portal ask. `{FY}` in a prefix becomes 2627.
* Numbers are taken in one database statement, so two checkouts at the same moment cannot share one.
* Moving here mid-year? Continue from the number you have reached.

= GSTIN =

* Optional GSTIN and business name fields on the classic and the block checkout.
* A filled-in number must match the pattern and the check digit of the official tool. GSTIN, UIN, non-resident and TDS numbers are accepted.
* That proves the number is well formed, not that it is active. Only the GST portal can show that.

= Rates =

Tick the rates you sell at and the plugin makes one WooCommerce tax class for each, with CGST and SGST for your State and IGST for the others. Prices can include tax or not, as WooCommerce allows. If you already have tax rates, you can keep them: the plugin reads the tax on each line and splits it by place of supply.

= GSTR-1 =

For each month or quarter the screen shows every table with its figures, lists what to look at before filing, and gives you zip of the section CSV files.

* Files and headers are those of the samples bundled with the Returns Offline Tool 3.2.4: b2b, b2cl, b2cs, cdnr, cdnur, exp, exemp, hsn(b2b), hsn(b2c), docs.
* B2CL takes inter-State invoices to unregistered buyers above 1 lakh rupees (2.5 lakh up to July 2024 periods).
* Table 12 is split into B2B and B2C as the portal has required since the May 2025 period, with the HSN list of the tool for checking codes and for their descriptions.
* Credit notes against small B2C sales lower Table 7 of the month they are issued in.
* The checks name missing or unknown HSN, HSN shorter than your turnover requires, rates the portal does not take, invalid numbers, paid orders with no invoice, and credit notes dated after 30 November following the year of the invoice (section 34(2) CGST Act).

Import the CSV files into the Returns Offline Tool section by section, generate the file there and upload it on www.gst.gov.in.

= What it does not do =

* No e-invoice IRN and no e-way bill. If your aggregate turnover in any year since 2017-18 passed 5 crore rupees, B2B invoices and exports normally have to be e-invoices (rule 48(4), Notification 10/2023 - Central Tax).
* No filing: nothing is sent to the GST portal.
* SEZ supplies, deemed exports, reverse charge, cess, the 65% rate, supplies through e-commerce operators (Tables 14 and 15), advances (Table 11) and amendments stay out of the files. Add them in the tool or on the portal.
* Port code and shipping bill of an export are left blank, which the tool allows. Add them later.
* Composition dealers do not charge GST or file GSTR-1, so this plugin is not for them.

= Where the rules come from =

Rules and the file format were read on 31 October 2026 from the sources below. Under GSTR-1 the plugin shows them with that date, and warns once 120 days have passed without a review.

* GSTR-1 structure, CSV headers, field rules, rate list, UQC list, State codes, HSN list: [Returns Offline Tool 3.2.4](https://tutorial.gst.gov.in/offlineutilities/returns/gst_offline_tool.zip) with Excel template V2.2, GSTN, installer dated 24 September 2026.
* HSN digits: [Notification 78/2020 - Central Tax](https://www.gstcouncil.gov.in/sites/default/files/2024-05/notfctn-78-central-tax-english-2020.pdf).
* Table 12: [GSTN advisory of 25 April 2025](https://tutorial.gst.gov.in/downloads/news/updated_advisory_hsn_table12_25042025.pdf).
* Invoice contents: [rule 46](https://taxinformation.cbic.gov.in/content/html/tax_repository/gst/rules/cgst_rules/active/chapter6/rule46_v1.00.html), [rule 46A](https://taxinformation.cbic.gov.in/content/html/tax_repository/gst/rules/cgst_rules/active/chapter6/rule46a_v1.00.html), [rule 49](https://taxinformation.cbic.gov.in/content/html/tax_repository/gst/rules/cgst_rules/active/chapter6/rule49_v1.00.html), [rule 53](https://taxinformation.cbic.gov.in/content/html/tax_repository/gst/rules/cgst_rules/active/chapter6/rule53_v1.00.html) of the CGST Rules.
* Place of supply: [IGST Act 2017](https://gstcouncil.gov.in/sites/default/files/2024-03/annexure-5-igst-act_2017.pdf).
* Credit notes: [section 34 CGST Act](https://taxinformation.cbic.gov.in/content/html/tax_repository/gst/acts/2017_CGST_act/active/chapter7/section34_v1.00.html).
* E-invoice threshold: [Notification 10/2023 - Central Tax](https://gstcouncil.gov.in/sites/default/files/2024-05/10ct_eng.pdf).

GST, GSTN and the GST portal belong to the Government of India and the Goods and Services Tax Network. This plugin is an independent product, not affiliated with or endorsed by them.

// @pro-begin
= Pro =

Sold on [catcode.com.ua](https://catcode.com.ua/modules/gst-invoice-gstr1-woocommerce/) with a 7-day trial:

* **JSON for the portal**: the GSTR-1 file itself, in the layout the Returns Offline Tool writes, split into parts when a period passes the limits of one upload.
* **PDF documents**: download one, attach them to customer e-mails, or take a whole period as a zip.
* **Filing log**: mark a period as filed with its ARN. Its documents can then no longer be cancelled, and months not marked stay open.

// @pro-end
== Installation ==

1. Install and activate the plugin. WooCommerce must be active.
2. Open WooCommerce > GST India > Settings. Enter your GSTIN and legal name, and check the number prefixes.
3. Under Tax classes tick your rates and press Set up tax classes.
4. On each product choose the tax class and enter the HSN or SAC and the unit, or set them on the category.
5. Enter the SAC for shipping if you charge it.

== Frequently Asked Questions ==

= When is the invoice issued? =

When the order reaches Processing, or Completed if you choose that. You can also issue it from the GST box on the order.

= What happens when I cancel an order? =

In an open period the invoice is marked cancelled. It keeps its number and appears as cancelled in Table 13. After that, refund the order so a credit note is issued.

= Does it know the GST rate of my product? =

No. Rates change by notification and depend on your goods. You set them.

= Can I sell in another currency? =

Yes. Enter the rate of the currency in the settings. Documents and returns hold rupees, and an order in a currency with no rate gets no invoice until you add it.

= What happens to my documents if I delete the plugin? =

They stay in the database unless you tick Delete documents in the settings first, since tax records have to be kept.

= Does the plugin send personal data anywhere? =

No. Names, addresses and GSTINs stay in your site's database, in its own table. They are copied there when a document is issued and are not removed by the personal data eraser, as tax records have to be kept.

== Screenshots ==

1. The GSTR-1 screen of a month, with the checks before filing.
2. A tax invoice.
3. The settings.

== Changelog ==

= 1.0.0 =
* First release.
