Tax Basics July 2026 ~1,000 words · 6 min read

CGST, SGST and IGST Explained — How to Split GST Correctly for Every Transaction

India's GST is three separate taxes — not one. Which one applies depends entirely on where your buyer is. Get it wrong and your GSTR-1 misfires, your buyer loses ITC, and the wrong government collects the money. Here is the complete, plain-English breakdown with rupee examples.

The rule — in one sentence

Intrastate supply (seller and buyer in the same state): CGST + SGST apply. Equal halves of the total rate.

Interstate supply (seller and buyer in different states): IGST applies. Full rate to the Centre, which settles with the destination state.

That is the entire decision tree. Everything else is application.

The identity to memorise: CGST = SGST always. IGST = CGST + SGST always. If the total GST rate is 18%, then intrastate means CGST 9% + SGST 9%. Interstate means IGST 18%. The rupee amount collected from the customer is identical. What changes is which government receives it.

Worked examples in rupees

Example 1: Laptop sold intrastate (seller in Maharashtra, buyer in Maharashtra)

Line item Amount Calculation
Invoice value (ex-GST) ₹80,000 Base price
CGST @ 9% ₹7,200 ₹80,000 × 9%
SGST @ 9% ₹7,200 ₹80,000 × 9%
Total invoice value ₹94,400 CGST + SGST = ₹14,400

The CGST ₹7,200 goes to the Central Government. The SGST ₹7,200 stays with Maharashtra. Both appear as separate line items on the invoice. Both go into your GSTR-1 as separate entries.

Example 2: Same laptop sold interstate (seller in Maharashtra, buyer in Karnataka)

Line item Amount Calculation
Invoice value (ex-GST) ₹80,000 Base price
IGST @ 18% ₹14,400 ₹80,000 × 18%
Total invoice value ₹94,400 Single IGST line

The buyer in Karnataka pays the same ₹94,400. The Central Government collects the ₹14,400 IGST and then settles Karnataka's share. Karnataka gets its portion — it just comes from the Centre, not directly from the seller in Maharashtra.

Example 3: 18% GST in rupees — quick reference table

Invoice value CGST (9%) SGST (9%) IGST (18%) Total GST
₹5,000 ₹450 ₹450 ₹900 ₹900
₹10,000 ₹900 ₹900 ₹1,800 ₹1,800
₹25,000 ₹2,250 ₹2,250 ₹4,500 ₹4,500
₹50,000 ₹4,500 ₹4,500 ₹9,000 ₹9,000
₹1,00,000 ₹9,000 ₹9,000 ₹18,000 ₹18,000

The complete supply-type decision tree

Situation Tax applicable Who receives it
Seller state = Buyer state CGST + SGST Centre + Seller's state
Seller state ≠ Buyer state IGST Centre (settles with destination state)
Supply to a Union Territory CGST + UTGST Centre + Union Territory
Export or SEZ supply IGST @ 0% Zero-rated — refund available
Import of goods IGST + Customs Centre
Union Territory note: Delhi, Chandigarh, Puducherry, Ladakh, Dadra and Nagar Haveli, Daman and Diu, and Lakshadweep are Union Territories. Supplies within these areas use CGST + UTGST — not CGST + SGST. The rate is identical. The receiving authority is the Union Territory administration, not a state government.

The five most common mistakes

1. Applying IGST on intrastate sales. The most common error in e-commerce platforms that don't check the buyer's state before tax calculation. The total tax is the same but the tax filing is wrong — IGST collected on an intrastate sale shows as a mismatch in GSTR-2B reconciliation.

2. Treating SGST and IGST as alternatives. They are never alternatives for the same transaction. Either CGST+SGST applies, or IGST applies. Never both, never a choice.

3. Assuming Union Territory = State. UT supplies use UTGST, not SGST. Billing software that auto-fills SGST for all domestic intrastate supplies will produce incorrect invoices for buyers in Delhi, Chandigarh, and other UTs.

4. Hardcoding the supply type. An e-commerce platform where sellers are spread across states cannot hardcode "intrastate" or "interstate" — it depends on the seller's registered state vs the buyer's delivery state for each individual order. See why hardcoding GST data creates compliance risk.

5. Not separating CGST and SGST on the invoice. The GST invoice format mandated by CBIC requires CGST and SGST to appear as separate line items. A single "GST 18%" line without the split is a non-compliant invoice.

How developers handle this automatically

Every transaction needs to know the supply type before the tax split can be calculated. The correct approach is to determine supply type at order time — compare the seller's GSTIN state code against the buyer's delivery state — and then pass that to the rate API.

Here is the complete pattern in Python using the GST Accelerator API:

# pip install gstaccelerator
from gstaccelerator import GSTAccelerator

gst = GSTAccelerator("your_api_key")

# Determine supply type from GSTIN state codes
seller_state = "27"  # Maharashtra GSTIN prefix
buyer_state  = "29"  # Karnataka GSTIN prefix

supply_type = "intrastate" if seller_state == buyer_state else "interstate"

# Get the correct split for this specific transaction
rate = gst.lookup(
    "laptop computer",
    supply_type=supply_type,
    branded=True
)

invoice_value = 80000
r = rate[0]["tax_rates"]

if supply_type == "intrastate":
    cgst = invoice_value * r["cgst"] / 100  # ₹7,200
    sgst = invoice_value * r["sgst"] / 100  # ₹7,200
    print(f"CGST: ₹{cgst:,.0f} | SGST: ₹{sgst:,.0f}")
else:
    igst = invoice_value * r["igst"] / 100   # ₹14,400
    print(f"IGST: ₹{igst:,.0f}")

The API returns all three values — CGST, SGST, and IGST — in every response. Your code picks which to apply based on the supply type you passed. The notification_ref field in the response gives you the exact CBIC notification that authorises the rate — which is your audit trail if a CA ever challenges it.

GST 2.0 update (September 2025): The GST Council simplified the rate structure in September 2025. Most goods now fall under 5% or 18%. The 12% slab was eliminated for the majority of products. If your application references the pre-reform rate tables, the CGST/SGST values you are calculating are based on the wrong base rate. Verify your rates against a current GST API.

Frequently asked questions

What is the difference between CGST, SGST and IGST?
CGST (Central GST) and SGST (State GST) apply together on intrastate supplies — when buyer and seller are in the same state. IGST (Integrated GST) applies on interstate supplies. The total tax rate is identical in both cases. CGST always equals SGST. IGST always equals CGST plus SGST combined.
How do you calculate 18% GST in rupees?
For intrastate supply: multiply invoice value by 9% for CGST and 9% for SGST. For a ₹10,000 invoice: CGST = ₹900, SGST = ₹900, total = ₹1,800. For interstate: multiply by 18% for IGST. Same invoice: IGST = ₹1,800. Total tax is the same — which government receives it differs.
Who receives CGST, SGST and IGST?
CGST goes to the Central Government. SGST goes to the seller's State Government. IGST goes to the Central Government, which then settles the state's share with the destination state.
What is UTGST and when does it apply?
UTGST (Union Territory GST) replaces SGST for supplies within Union Territories — Delhi, Chandigarh, Puducherry, Dadra and Nagar Haveli, Daman and Diu, Ladakh, and Lakshadweep. The rate equals CGST. Only the receiving administration changes.

Get CGST, SGST and IGST in one API call

Pass your supply type and get all three values returned separately — with the notification reference and the condition that triggered the rate.

Get free API key →

100 calls free · No card needed · View API docs · See pricing