CGST, SGST, IGST Split on Purchase Orders — Automated GST Compliance in Procurement

Published: April 14, 2026

A purchase order is raised for a vendor in Telangana. The organisation is in Karnataka. The accountant processes the invoice and splits the GST as CGST + SGST — the same way they split it for the local vendor last week. The ITC claim is filed. Months later, the GST return shows a mismatch: the vendor filed IGST (because it is an interstate supply), but the buyer claimed CGST + SGST. The ITC is denied. Interest is levied.

This error — applying the wrong GST split — happens because the split decision was made manually. The accountant looked at the invoice, saw a GST amount, and split it the same way they always do. They did not check whether the vendor's GSTIN state code matched the organisation's state code. In a system where GST handling is embedded in the procurement workflow, this decision is automated: the GSTIN on the purchase order determines the split, and the split flows through to every downstream document — GRN, vendor debit note, and Tally voucher.

1. How the Split Decision Works

The GST split is determined by one comparison:

Vendor GSTIN State CodeOrg State CodeResultSplit
29 (Karnataka)29 (Karnataka)IntrastateCGST (half) + SGST (half)
36 (Telangana)29 (Karnataka)InterstateIGST (full)
27 (Maharashtra)29 (Karnataka)InterstateIGST (full)

The first two digits of the 15-character GSTIN encode the state code. The organisation's state code is configured once in system settings. The comparison is automatic — the buyer does not need to decide or even know the rule. They select a vendor address, and the system determines the split.

2. Multi-State Vendors — The Address-Level GSTIN

Many vendors operate from multiple states. A furniture supplier headquartered in Bangalore (Karnataka, 29) may have a warehouse in Hyderabad (Telangana, 36). Each location has its own GST registration and its own GSTIN.

In a structured system, GSTINs are stored at the address level in the vendor master, not the vendor level. When the vendor has multiple addresses, each with a different GSTIN, the buyer chooses which address to use when creating the purchase order. The GSTIN from the selected address is frozen on the PO as the supplier_gstin.

This frozen GSTIN — not the vendor's "primary" GSTIN — determines the tax split for the entire purchase order. It flows through unchanged to:

The GSTIN is frozen at PO creation for a reason: if the vendor updates their GSTIN later (perhaps due to a re-registration or an amendment), the existing PO should not retroactively change its tax treatment. The tax split is locked to the GSTIN that was valid when the order was placed.

3. GST at the Line Level

Each purchase order line carries its own GST calculation:

The SGST amount is calculated as the floor of half the total GST, and the CGST is the total GST minus the SGST. This deterministic rounding ensures the split always sums exactly to the total — no rounding discrepancy, even on odd-rupee GST amounts.

4. HSN and SAC Codes

Each line can optionally carry an HSN code (for goods) or SAC code (for services). These codes determine the applicable GST rate under the GST law and are required for GST return filing.

The system maintains an HSN/SAC master — an admin-configurable table of valid codes with descriptions and effective date ranges. Validation against this master is soft: invalid codes generate a warning but do not block the transaction. This pragmatic approach avoids blocking procurement when the code master is incomplete or when the government has recently updated code classifications.

The HSN/SAC module is itself a feature toggle — organisations that do not need code-level tracking can disable it entirely.

5. ITC Toggle — Not Every Organisation Claims Input Credit

The GST ITC (Input Tax Credit) toggle controls how GST flows to accounting:

ITC Enabled (Default)ITC Disabled
GST posted to separate CGST/SGST/IGST input credit ledgersGST rolled into purchase/expense amount
Tax ledger entries in Tally for ITC reconciliationSingle amount in Tally, no tax ledgers
GST mismatch at GRN affects ITC claim accuracyGST mismatch is a cost difference, not a compliance issue

Organisations under the composition scheme, educational institutions exempt from GST, or those purchasing exclusively for exempt supplies may not claim ITC. For these organisations, the ITC toggle simplifies accounting — GST is just part of the cost.

6. GST Mismatch Detection at Goods Receipt

When the vendor's invoice arrives with the goods, three types of mismatches can occur:

  1. Quantity mismatch: Invoice says 100, GRN shows 90 accepted
  2. Price mismatch: Invoice unit rate differs from PO unit rate
  3. GST mismatch: Invoice GST amount differs from PO GST amount

Each type is tracked independently. GST mismatches are particularly critical when ITC is enabled: if the organisation claims ITC based on the PO amount but the invoice shows a different GST figure, the claim will be incorrect and may be flagged during GST return reconciliation (GSTR-2B matching).

GST mismatches must be resolved — via acceptance or dispute — before the GRN can be posted. This prevents incorrect tax entries from reaching the books.

7. From PO to Tally — The GST Chain

When the Tally integration is enabled, the GST split on the purchase order flows through to the Tally purchase voucher automatically:

  1. Intrastate PO: Tally voucher debits the expense/asset ledger, credits the vendor ledger, and creates separate CGST and SGST input credit entries
  2. Interstate PO: Tally voucher debits the expense/asset ledger, credits the vendor ledger, and creates a single IGST input credit entry

The ledger names are derived from the ledger mapping configuration — the system maps each vendor, asset classification, and tax type to specific Tally ledger names. This mapping is configured once during setup and applied automatically to every voucher.

8. Frequently Asked Questions

How does the system decide between CGST+SGST and IGST on a purchase order?

The decision compares the vendor's GSTIN state code (first two digits) with the organisation's GST state code. Same state = intrastate = CGST + SGST (each half the total GST). Different states = interstate = IGST (full amount). This is computed automatically based on the GSTIN frozen on the purchase order.

What happens when a vendor has GSTINs in multiple states?

Each vendor address carries its own GSTIN. When creating a PO, the buyer selects which address to use. The selected address's GSTIN is frozen on the PO as the supplier_gstin. This frozen GSTIN — not the vendor's default — determines the tax split for the entire PO and flows through to GRN, debit notes, and Tally vouchers.

How is HSN/SAC validation handled on purchase orders?

HSN/SAC codes are validated against an admin-maintained master table. Validation is soft — it warns on invalid codes but does not block the transaction. The HSN/SAC module is a feature toggle; organisations that do not need code tracking can disable it entirely.

What is the GST ITC toggle and when would you disable it?

The ITC toggle controls whether GST is posted to separate input tax credit ledgers (enabled) or rolled into the purchase amount (disabled). Organisations under the composition scheme or those purchasing for exempt supplies disable ITC. The toggle affects Tally voucher generation — when disabled, GST is included in the item amount.

How does GST mismatch detection work at goods receipt?

Invoice GST amounts are compared against PO GST amounts line by line. Mismatches are tracked separately from price and quantity mismatches. GST mismatches must be resolved before GRN posting to prevent incorrect ITC claims.

Assess How This Applies to Your Organisation

If GST splits are handled manually and ITC mismatches surface during return filing, share a brief overview and we will evaluate how automated GST compliance may apply.

Book a Consultation