GST HSN Code Compliance
Ask most business owners what an HSN code is, and you'll get a shrug followed by "it's just a number my accountant puts on the invoice." Fair enough — it usually works that way, right up until it doesn't. Get the code wrong, and you've potentially charged the wrong GST rate, confused your buyer's input tax credit, and given the department a reason to send you a notice. None of that is dramatic on its own, but it adds up fast once you're issuing hundreds of invoices a month.
Here's a walk-through of what an HSN code actually is, how it's different from an SAC code, who's required to mention it, how to actually find the right one, and where businesses most commonly slip up.
What Is an HSN Code?
HSN stands for Harmonized System of Nomenclature — an international system for classifying goods, developed by the World Customs Organization back in 1988. It's used in more than 200 countries, which is really the whole point: a textile exporter in Surat and a customs officer somewhere in Europe are reading the same code for the same kind of fabric.
Under GST, every product gets slotted into this system using a numeric code — 4, 6, or 8 digits, depending on how specific you need to get. The first two digits give you the chapter (a broad category, like "textiles" or "electrical machinery"), the next two narrow it to a heading, and the next two get you to a sub-heading. Add two more digits, and you're at India's national 8-digit level, which is what exporters and importers work with.
Here's the part that actually matters for your day-to-day invoicing: the GST rate on your product is tied directly to its HSN code. Get the code wrong, and you've effectively applied the wrong tax rate — even if nobody meant for that to happen.
Why HSN Codes Matter Under GST
It's tempting to treat HSN as a box-ticking formality, but it's doing real work behind the scenes:
- It determines the GST rate you charge on a product.
- It lets the GST system process invoices and returns automatically, without anyone manually typing out product descriptions.
- It gives your buyer what they need to validate their input tax credit against your invoice.
- It's one of the first things a GST officer checks during a notice or an audit, because a mismatch here usually points to a bigger classification problem underneath.
A wrong HSN code rarely stays small and contained. It tends to ripple outward — into your invoice, into your buyer's ITC claim, and into your GSTR-1.
HSN vs SAC: What Businesses Should Know
This one trips up a lot of people, so it's worth being precise about it: HSN codes classify goods. SAC codes classify services. Same underlying logic, different chapters.
SAC stands for Services Accounting Code, and every SAC code is six digits, always starting with "99" — think of Chapter 99 as the part of the system carved out specifically for services in India. So if you're a manufacturer selling a physical product, you're working with HSN. If you're billing for consultancy, repair work, or a works contract, you're in SAC territory instead. And if your business does both — say, you sell machinery and also handle the installation — your invoice will likely carry both an HSN line and a SAC line, and that's completely normal, not a sign something's gone wrong.
Who Must Mention HSN Codes Under GST?
This comes down to your turnover in the preceding financial year, under CGST Notification No. 78/2020:
- Turnover up to ?5 crore: 4-digit HSN code mandatory on B2B invoices. Optional on B2C invoices, though it's good practice to include it anyway.
- Turnover above ?5 crore: 6-digit HSN code mandatory on every invoice — B2B and B2C alike.
- Exporters and importers: 8-digit HSN code, mandatory, regardless of turnover.
One detail people genuinely miss: this turnover is calculated PAN-wise, not GSTIN-wise. If you're running three GST registrations under one PAN and each does ?2 crore, your combined turnover is ?6 crore — and all three registrations need to report 6-digit HSN, even though no single one of them individually crossed ?5 crore.
How to Find the Correct HSN Code
The GST portal has a built-in HSN search tool (under Services > User Services), and the CBIC's customs tariff schedule is the actual source of truth behind it — every valid HSN code traces back to that schedule, along with its description and applicable rate.
A few things genuinely help here:
- Search by the product's actual description, not a guessed code. Chapter and heading notes often exclude items you'd assume belong there.
- Confirm the rate at the full 6-digit (or 8-digit) level, not just the 4-digit heading. Two products can sit under the same broad heading and still attract different rates once you go a level deeper.
- When a product genuinely fits two categories, the usual tie-breaker is its essential character — what the product fundamentally is, not how it's marketed.
A quick example: picture a trader selling three styles of footwear that look almost identical on a shelf — except one's leather, one's rubber, and one's a textile canvas shoe. These don't share an HSN code, even though a shopper browsing the store would never clock the difference. Lumping them under one code because "they're all just shoes" is exactly the kind of shortcut that causes trouble later — different materials sit under different headings, and sometimes carry different rates.
For genuinely ambiguous cases — new products, composite items, anything where two interpretations seem equally fair — it's worth a second opinion from a GST practitioner, or, in high-value recurring situations, applying for an advance ruling to get certainty in writing.
HSN Code Requirements on GST Invoices
A GST tax invoice needs a fairly specific set of fields, and HSN is one of the non-negotiable ones:
- Supplier and recipient GSTIN
- Invoice number and date
- HSN code (for goods) or SAC code (for services), at the digit-length your turnover requires
- Description, quantity, and Unit Quantity Code (UQC)
- Taxable value, GST rate, and tax amount
E-commerce sellers run into this constantly. If you're listing fifty SKUs on a marketplace, each one needs its own correctly mapped HSN code — not one generic code applied across the whole catalogue because it's quicker to set up. Marketplaces usually let you bulk-upload product data, which is genuinely useful, except it also means one wrong code gets multiplied across every single sale of that product until someone notices.
The most common invoicing mistakes are pretty simple, honestly: using fewer digits than your turnover requires, carrying forward an old code after a rate change, or copying a competitor's invoice without ever checking whether their classification was right in the first place.
How HSN Codes Appear in GSTR-1
HSN-wise reporting happens in Table 12 of GSTR-1, and this part of the return has changed quite a bit recently. Through a series of phased updates rolled out across 2025, GSTN made HSN reporting in Table 12 mandatory for every taxpayer, not just those above a certain turnover, and switched it to dropdown-only selection pulled from the official HSN master — manual typing isn't accepted anymore. Table 12 is also now split into separate B2B and B2C tabs, instead of one combined table like before.
There's a handy "My HSN" feature that lets you save your frequently used codes, so picking one auto-fills the description and UQC rather than you typing it out every time. There's also a "Download HSN Codes List" option if you want to cross-check your own master list against the portal's. The same round of changes also made Table 13 — a summary of the documents (invoices, credit notes, debit notes) issued during the period — mandatory whenever you've reported any B2B or B2C supply, so it's not something you can leave blank anymore either.
The portal also runs validation checks comparing the HSN-wise totals in Table 12 against the figures you've reported elsewhere in the same return (Tables 4, 5, 6, 7, and so on). This started out as a soft warning that let you file anyway, but it's been tightening — recent guidance suggests a mismatch can now actually hold up filing rather than just flag it, so it's worth treating this as a hard requirement rather than something you can shrug off and fix later.
For a finance team, this usually means a monthly reconciliation step: pull the HSN-wise summary from your invoices, match it against what actually landed in Table 12, and chase down any gap before you file. Tedious, sure. Still a lot less tedious than explaining three months later why the numbers don't add up.
Common HSN Code Errors and Their Impact
- Wrong HSN selection — usually from guessing off a product name instead of actually checking its classification.
- Wrong GST rate as a result — since rate is tied to code, a wrong code almost always means a wrong rate, one way or the other.
- Invoice and return mismatches — the code on your invoice doesn't match what's reported in GSTR-1, or doesn't match what your buyer has on file.
- ITC trouble for your buyer — your mistake quietly becomes their problem the moment they try to validate credit against your invoice.
- Departmental notices — HSN mismatches are a common trigger for scrutiny, mostly because they're so easy for the system to flag automatically.
On top of all this, getting HSN reporting wrong can attract a general penalty under Section 125 of the CGST Act — up to ?25,000, with a matching penalty possible under the state GST law too. It's rarely the headline issue, but it adds to an already messy situation.
A manufacturer is a good example of where this gets layered. Raw material going into a factory carries one HSN code; the finished product coming out often carries a completely different one, because manufacturing usually changes the classification entirely — steel coils don't share an HSN with the finished steel furniture made from them. Treating raw material and finished goods as "basically the same thing, tax-wise" is a mistake that shows up the moment someone traces the purchase-to-sale chain during an audit.
Best Practices for HSN Code Compliance
A few habits go a long way here:
- Build and maintain an HSN master for your full product catalogue — code, description, UQC, and current rate, all in one place. Don't let this live in someone's memory or an old spreadsheet nobody's touched in years.
- Review classifications periodically, especially right after a GST Council rate change. A code can still be technically correct and still apply the wrong rate if the rate notification has moved on without you.
- Keep your ERP or accounting software in sync with the portal's HSN master, rather than letting it run on whatever was configured at implementation and never revisited.
- Reconcile regularly between your invoices, your HSN master, and what's actually reported in GSTR-1 — monthly, ideally, not just in the days before an audit.
The Takeaway
HSN compliance isn't glamorous, and it's easy to treat it as background noise — right up until a wrong code quietly turns into a wrong tax rate, a stuck ITC claim, or a notice nobody was expecting. The fix isn't complicated: get the classification right at the product level, keep it current as rates shift, and build reconciliation into your regular routine rather than your panic response. Most of the pain here is avoidable with a clean master list and a habit of checking — not a deep knowledge of customs law.


