12 November 2026 · 5 min read
How GST works on software sales in India: CGST, SGST and IGST in plain words
General information, not tax advice. GST rules, rates and limits change, and your case may be different. Check anything that affects your money with a chartered accountant (CA). This article explains the idea so you can ask better questions.
If you sell software in India, you will hear three short words again and again: CGST, SGST and IGST. They look confusing, but they follow one simple rule.
One tax, split in two ways
GST (Goods and Services Tax) is one tax on a sale. What changes is who receives the money: the Central government, the State government, or both.
- CGST is the Central part.
- SGST is the State part (for union territories it is called UTGST).
- IGST is the Integrated part. It is used when the sale crosses a state border.
For any one sale, you charge either CGST and SGST together or IGST. Never both.
How do you pick?
You compare two places:
- Your location: the state you are registered in. It is the first two digits of your GSTIN (the 15-character GST number). For example,
27is Maharashtra and29is Karnataka. - The place of supply: for an online sale to a customer, this is usually where the customer is. For a business customer, it is normally the state on their GSTIN. For a person without a GSTIN, it is the state in their address.
| Your state | Customer's state | You charge |
|---|---|---|
| Same | Same | CGST + SGST |
| Different | Different | IGST |
The rules about place of supply have special cases (for example for customers outside India). Ask your CA about anything that is not a simple Indian sale.
A worked example
Say your product costs Rs. 1,000 before tax, and the GST rate that applies to you is 18%. (18% is the rate commonly used for many software and IT services, but the right rate and the right SAC code depend on exactly what you sell. Confirm with your CA.)
The total tax is Rs. 180.
Buyer in your own state: the 18% is split into two equal halves.
| Line | Amount |
|---|---|
| Price | Rs. 1,000 |
| CGST 9% | Rs. 90 |
| SGST 9% | Rs. 90 |
| Total | Rs. 1,180 |
Buyer in another state:
| Line | Amount |
|---|---|
| Price | Rs. 1,000 |
| IGST 18% | Rs. 180 |
| Total | Rs. 1,180 |
The buyer pays the same either way. Only the labels on the invoice change, and which government receives which part.
Keep prices without tax
A habit that saves trouble: store your price without GST, then add the tax at checkout. If you store Rs. 1,180 and work backwards, rounding differences creep in, and you cannot easily change the rate later.
It also helps to keep money as whole numbers of paise (Rs. 1 = 100 paise). Decimal numbers like 0.1 + 0.2 do not add up exactly in most programming languages, and a tax invoice must add up exactly.
// Money as integer paise. Tax is worked out once, from the price without tax.
function splitGst(taxablePaise: number, ratePercent: number, sameState: boolean) {
const taxPaise = Math.round((taxablePaise * ratePercent) / 100);
if (!sameState) return { cgst: 0, sgst: 0, igst: taxPaise };
const cgst = Math.floor(taxPaise / 2);
return { cgst, sgst: taxPaise - cgst, igst: 0 }; // if the tax is an odd number of paise, SGST gets the extra paisa
}
How to round is a small decision. Pick a rule, write it down, test it, and ask your CA that it matches how you file your returns.
Do I need to register for GST?
Registration is required once your yearly turnover crosses a limit. As far as we know, the usual limit for service providers is Rs. 20 lakh a year (lower in some special-category states), but limits and exceptions change, so check the current rule on the official GST portal or with your CA. Some sellers register earlier on purpose, because registered businesses can claim back the GST they pay on their own costs (input tax credit).
If you are not registered, you cannot charge GST, and your invoice must not show any. A plain invoice that clearly says you are not registered is the usual approach. Never charge GST without a GSTIN.
What your customers care about
- Businesses with a GSTIN want their GSTIN on your invoice, because they may be able to claim the GST back as input tax credit. Whether they can is up to them and their CA.
- People without a GSTIN simply pay the total.
If your checkout asks for an optional GSTIN, check that it is real before you use it. The last character of a GSTIN is a check character, so you can catch typing mistakes without calling any service.
Next steps
- Decide with your CA whether you are registered, your rate and your SAC code.
- Store prices without tax, as integers.
- Compare your state with the customer's state to pick CGST + SGST or IGST.
- Issue a proper invoice for every sale. See what a GST invoice must contain.
- Go through the launch checklist for an Indian SaaS before you take real money.
India SaaS Kit does the split described here at checkout and on every invoice, and you can see the plans and prices before you decide. You still need your own CA for your returns.