HSNBillNest guide

HSN codes and GST rates on Shopify products.

A missing HSN code does not stop an invoice — it quietly taxes the line at your shop default. That is the failure worth catching early.

Updated 24 September 2026 · 4 min read

A missing HSN code does not stop an invoice from being generated. That is the whole problem. The line falls back to your shop's default GST rate, the invoice looks perfectly normal, and you find out at filing time that a month of documents charged 18% on something that should have been 5%.

This guide covers how many digits you actually need, what BillNest does when a code is missing, and how to repair invoices that are already issued.

How many digits you need

Two turnover bands with their minimum HSN digit counts — four digits up to five crore rupees, six digits above it — and the three states an invoice line can be in: a code long enough is taxed at its own rate, a code that is too short is refused, and a missing code is generated anyway at the shop default rate
Two of the three states announce themselves. The third does not, which is why it is the one worth auditing for.

Notification 78/2020 ties the requirement to your aggregate turnover:

Aggregate turnover Minimum digits on a B2B or B2C invoice
Up to ₹5 crore 4
Over ₹5 crore 6

Set the band once in Settings. BillNest validates every line against that minimum, so a 4-digit code that was fine last year starts being refused the year you cross the threshold — which is the behaviour you want, rather than discovering it in a return.

A code that is present but too short is a distinct failure from one that is missing, and worth treating as such: the product looks configured, so nobody goes looking.

HSN or SAC?

HSN classifies goods, SAC classifies services. They share the same column on the invoice and the same digit minimum. If you sell both — a product plus an installation fee, say — each line carries its own code, and the codes come from different schedules.

Shipping is a line too. If you charge for delivery, that charge needs its own HSN or SAC code and its own rate, and it has to meet the same digit minimum. It is the line most often forgotten, because it does not come from a product.

What happens when a code is missing

The line is taxed at your shop's default rate, and the invoice is generated. BillNest then counts how many invoices are in that state and says so:

N invoices may have the wrong GST rate — these invoices have line items with no HSN code, so the shop's default GST rate was applied and the tax may be incorrect.

The repair is two steps, in this order:

  1. Assign the codes on Products / HSN. A shop-specific code overrides the built-in one, so your own mapping always wins.
  2. Bulk & Jobs → Regenerate all over the affected range. This recomputes the documents against the corrected rates.

Regenerating is not editing. A document in a filed period, one carrying an IRN, and one with a credit or debit note against it are all locked, and regeneration skips them rather than silently rewriting a document your return has already reported. For those, the route is a credit note — see credit notes and debit notes.

This is also the argument for doing the mapping before you switch automatic generation on. Fixing eight products costs minutes; regenerating four hundred invoices costs a plan tier.

The built-in list, and its limits

BillNest seeds a searchable starter list of HSN and SAC codes covering the common e-commerce slabs. It is deliberately not the full 5,000-plus schedule — it exists so the lookup is useful on day one, not so you can stop thinking about classification.

Two consequences worth stating plainly:

  • The seeded rates carry a date. They reflect the rate schedule as of the 56th GST Council meeting, which restructured the slabs. Rates change by notification, and when they do, the codes you rely on need re-checking against the CBIC schedule. An app cannot notice a notification for you.
  • Value-based items are a trap. Several categories — apparel, footwear, made-ups — carry one rate below a value threshold and a higher one above it. The same HSN code is correct for both; the rate is not. If you sell either side of such a threshold, the per-product rate matters more than the code.

Classification is ultimately your call, and it is the part of GST most worth asking your accountant about once rather than guessing at repeatedly.

Where the rate actually comes from

Worth being precise, because it is a common misunderstanding: the rate belongs to the line, not to the invoice. An order with a 12% T-shirt, a nil-rated book and 18% headphones produces one invoice with three rates on it, and a summary that adds up whatever the lines produced. There is no "invoice rate" to get wrong.

Which is why a single missing code does not corrupt a whole document — it corrupts one line of it, quietly, while everything else stays right.

A five-minute audit

Worth running once, and again after any rate notification:

  1. Products / HSN — sort by products with no code. That list should be empty.
  2. Check your shipping line has a code and a rate.
  3. Confirm the turnover band matches reality. It is the one setting that silently changes what counts as valid.
  4. Open one invoice per rate you charge and check the rate on the line against your own schedule — not against what the app produced. The app is applying your mapping faithfully; the mapping is the thing that can be wrong.
  5. Check the HSN summary rows in GST Reports. It is the same data your return will carry, aggregated the way the portal wants it — see GSTR-1 and GSTR-3B.

BillNest is on the Shopify App Store. HSN mapping and the built-in code list are on every plan, including the free one.

BillNest icon

BillNest: GST Invoice India on the Shopify App Store

Auto-generate GST-compliant tax invoices on every paid order. Export GSTR-1 and GSTR-3B in a click.

View on the Shopify App Store

FAQCommon questions

How many digits does an HSN code need on a GST invoice?
Under Notification 78/2020 it depends on your aggregate turnover: up to ₹5 crore, at least 4 digits; over ₹5 crore, at least 6. BillNest reads the turnover band from your settings and validates every line against that minimum.
What happens if a product has no HSN code?
The line falls back to your shop's default GST rate, so the tax on that invoice may be wrong. BillNest counts those invoices and warns you, and Bulk & Jobs → Regenerate all recomputes them once the codes are assigned.
Does BillNest include a list of HSN codes?
It seeds a searchable starter list covering the common e-commerce slabs — not the full 5,000-plus schedule. You can add your own codes, and a shop-specific code overrides the built-in one.
What is the difference between HSN and SAC?
HSN classifies goods, SAC classifies services. Both go in the same column on the invoice and both count towards the digit minimum for your turnover band.

NEXTKeep reading

INBOXStill stuck?

If something here doesn't match what you see in the app, tell us — the guides are written from BillNest's own behaviour and we fix them when it changes. support@appnest.studio.

About BillNest