This is the page to read if you have ever got a tax split wrong on a Friday evening. The short version: you do not choose between CGST and IGST. It is decided for you.
Why it works this way
Choosing the split by hand is the single commonest error in Indian invoicing, and it is not a knowledge problem — everybody knows the rule. It is an attention problem. It goes wrong on one document in a hundred, late in the day, on a customer whose address says Maharashtra in one place and MH in another. And nobody finds out until somebody reconciles a return.
So it is derived, from two facts the system already has.
Place of supply
- Your business has a state code, from your GSTIN, set in Settings → Business profile.
- The customer has a place of supply, from their GSTIN or their state.
- If the two match, the supply is intra-state and the tax splits into CGST and SGST.
- If they differ, it is inter-state and the tax is IGST.
One 18% rate therefore behaves as CGST 9 plus SGST 9 for a local customer and IGST 18 for one in the next state. You set up the rate once; the split follows the parties.
Union territories take UTGST, not SGST. Seven of them: Chandigarh, Delhi, Dadra & Nagar Haveli and Daman & Diu, Lakshadweep, Puducherry, Andaman & Nicobar, and Ladakh. You do nothing; the component changes by itself.
It understands how people actually type states
Thirty-eight GST state codes are mapped, along with forty-two ISO subdivision codes and the names people still use. Orissa, Pondicherry, NCT of Delhi and Uttaranchal all resolve. Where it genuinely cannot tell, it returns nothing rather than guessing — because a guessed state code is a wrong tax split with no warning.
The six treatments
Every line, and every charge, carries a treatment. This is what you set when a line is not ordinary taxable supply.
| Treatment | When |
|---|---|
| Taxable | The normal case. |
| Exempt | Goods or services exempt from GST. |
| Nil rated | Rated at nil. |
| Zero rated | Exports and SEZ supplies. |
| Non-GST | Outside GST entirely. |
| Reverse charge | The recipient pays the tax, not you. |
Slabs, HSN and cess
- Eleven slabs are recognised: 0, 0.1, 0.25, 1, 1.5, 3, 5, 6, 12, 18 and 28.
- HSN or SAC sits on every line. An HSN master can carry the default slab and cess per code, so picking the item brings the right rate with it.
- Cess is supported both as a percentage and as a per-unit amount, because some goods are cessed per unit rather than per rupee.
Reverse charge
Set per line, or as a flag on the whole document. The document carries its own reverse-charge total, and the print shows the line “Tax payable by the recipient under reverse charge” with the figure — which is what makes it a valid document for the customer to act on.
How it prints
- An HSN summary table, grouped by code with quantity, taxable value, rate and tax. This is required by Rule 46.
- A rate-wise summary showing CGST and SGST, or IGST, depending on the supply.
- Amount in words, for rupee documents.
- GST shown combined as one line or split into CGST and SGST — set on the template, overridable per document.
Outside India
The same engine runs four regimes: Indian GST, VAT, sales tax and none at all. Selling into the Gulf or the UK is not a second system. The HSN column takes itself off the print outside India, and an export invoice titles itself EXPORT INVOICE rather than TAX INVOICE.
The rule that protects old documents
An issued document keeps the tax it went out under. Correcting a customer’s state next March does not silently turn an invoice you sent last year from CGST and SGST into IGST. Drafts still follow the customer, because a draft is still being written.
Where to go next
Something missing or wrong here? Tell us. A question that needed asking usually means a page that needed writing.