You buy steel fittings from a supplier in Chandigarh. Code 04. The invoice carries CGST and UTGST. Your Tally company does not have a UTGST ledger because you have never bought from a UT before. The import fails with "ledger not found." You add a CGST ledger, rename it UTGST, and re-import. It works. The books are wrong because you used the wrong CGST rate. Nobody catches it until the CA asks why UTGST shows up in your CGST report.
The regime post used Maharashtra vs Delhi because that is the usual factory story. This page is the UT footnote that still breaks Tally ledgers. CGST is the Centre's half. The other half is SGST in a state and UTGST in a Union Territory. IGST is still the cross-border one. Read levy on CBIC. Do not file from a mnemonic.
check_tax_regime treats any non-zero CGST, SGST, or UTGST as the intra pair. Non-zero IGST is the inter pair. Both pairs at once is a conflict. Seller state vs POS (or buyer GSTIN) still has to match that pair. UTGST is not a third regime we special-case beyond that bucket.
CGST + UTGST (or SGST)
IGST here fails the check.
IGST
CGST+UTGST here fails. Same as CGST+SGST would.
Codes in our helper, not a gazette
validators/gstin.py names, among others, 04 Chandigarh, 07 Delhi, 26 Dadra and Nagar Haveli and Daman and Diu, 25 as legacy Daman and Diu, 31 Lakshadweep, 34 Puducherry, 35 Andaman and Nicobar, 38 Ladakh. Delhi is a UT that many people still think of as a "state" in speech. The file is a checksum helper. Mergers happen (25 into 26). If the portal disagrees with this list the week you care, the portal wins. We keep 25 so old invoices do not fail format.
I will not paste a complete UT political list as current law. GSTN's state-code table is the one that matters for a GSTIN. Look it up.
Templates that still say SGST
A Puducherry supplier using a Maharashtra Excel template will print SGST on intra-UT paper. Arithmetic may close. The label is wrong for books that expect a UTGST ledger. Our check may still pass if CGST+SGST is the intra pair and prefixes match. Passing is not "the ledger name is correct." Tally needs the UTGST ledger if that is how you account. Create it before import.
OCR may read UTGST as SGST or as IGST. Review the crop. Do not auto-fix labels to make the CSV pretty.
Place of supply
Same fallback as POS vs GSTIN: printed POS state if extracted, else buyer prefix. A Chandigarh buyer GSTIN (04) and a Punjab seller (03) is inter: IGST. Intra Chandigarh: CGST+UTGST. We do not geocode "Chandigarh" in an address line.
Tally
If you buy from UTs, the company needs UTGST ledgers the way it needs SGST ledgers. Import will fail or post to the wrong tax if the file says UTGST and the ledger does not exist. That is the same class of miss as CGST 9% vs file 18% in the import post. We export amounts that closed. We do not create ledgers in their company.
- CBICcbic-gst.gov.in
Levy of CGST, SGST, UTGST, IGST.
- GST portalgst.gov.in
State/UT codes on a GSTIN.
- EntryLedger
cross_field.check_tax_regime·gstin.STATE_NAMESUTGST in the intra bucket. Helper names, not a gazette.
Is UTGST the same as SGST?+
No. Replacement tax in UTs. Intra = CGST plus UTGST. Inter = IGST.
Do you treat UTGST as its own regime?+
Only as part of the intra pair versus IGST. No separate UT product.
Is Delhi a UT in the GSTIN?+
Code 07 in our helper. Confirm on the portal if you are writing a return, not a blog.