A practical HSN code and GST rate reference for grocery and kirana shops, covering staples, dairy, packaged food, beverages and household items, plus the pre-packaged and labelled rule that decides whether an item is nil-rated or taxable.
If you run a grocery or kirana store, HSN codes are harder than they look. A furniture shop can put most of its catalogue under two or three headings. Your shop sells rice, milk, biscuits, soap, atta, cooking oil, namkeen, a few steel vessels and a rack of mobile recharge cards, and those sit under a dozen different chapters of the HSN schedule at three or four different tax rates. Worse, the same product can be nil-rated when sold loose and taxable when sold in a sealed, labelled pack.
This guide lists the HSN codes and GST rates you will actually use behind a kirana counter, and explains the one rule that decides the rate for most of your staples.
For cereals, pulses, flour and several other staples, GST does not depend on the food itself. It depends on how it leaves your shop.
The practical consequence: two rows on the same bill can carry the same HSN code and different tax treatment. Create them as two separate items in your item master rather than trying to remember at billing time.
| Item | HSN | Typical GST rate |
|---|---|---|
| Rice | 1006 | Nil (loose); check current rate for packaged |
| Wheat | 1001 | Nil (loose) |
| Atta, maida, suji, besan | 1101 / 1102 / 1106 | Nil (loose) |
| Pulses and dals | 0713 | Nil (loose) |
| Sugar | 1701 | 5% |
| Jaggery (gur) | 1701 | Nil |
| Salt | 2501 | Nil |
| Edible oils (groundnut, sunflower, mustard) | 1507 to 1515 | 5% |
| Vanaspati / refined palm oil | 1516 / 1511 | 5% |
| Spices, whole or ground | 0904 to 0910 | 5% |
| Tea | 0902 | 5% |
| Coffee | 0901 | 5% |
| Fresh vegetables and fruit | 0701 to 0810 | Nil |
| Papad, bread | 1905 | Nil |
Dairy is where kirana owners most often pick the wrong code, because milk, curd, paneer, ghee and cheese all live in the same neighbourhood of Chapter 4 but do not all carry the same rate.
Note that cheese and paneer share heading 0406 but are not treated alike, so use the six-digit code rather than the four-digit heading if your turnover requires six digits anyway.
Most of this group sat at 12% or 18% before the September 2025 rate rationalisation and was moved to 5%. If you built your item master before that, it is worth a one-time audit of every packaged-food item rather than trusting old rates.
Every kirana sells these even though they are not food at all:
HSN digit requirements follow your turnover, not your product category. Small kirana shops below the five crore threshold can generally print four digits on B2B invoices, while larger turnovers need six. Store the full six or eight digit code in your item master regardless and let your billing software trim what it prints, so you do not have to re-tag your catalogue when you cross a threshold.
The realistic workflow for a kirana store is to tag HSN and GST rate against each item once, at the point you create it, and never think about it again at the counter. In Trayvo, HSN and tax rate are fields on the item itself, so a mixed basket of nil-rated dal, 5% biscuits and 18% ice cream splits into the right tax rows on the invoice and the right buckets in your GSTR-1 summary automatically.
A sensible one-hour project: export your item list, sort it by category, and fill the HSN column in blocks. Ninety percent of a kirana catalogue falls into about twenty codes.
There is no single HSN code for grocery items. Groceries span several HSN chapters: Chapter 4 for dairy, Chapter 9 for tea, coffee and spices, Chapter 10 and 11 for cereals and flour, Chapter 15 for edible oils, Chapter 19 to 21 for processed and packaged food, and Chapter 33 to 39 for household and personal care goods. Tag each item individually rather than looking for one code for the shop.
Yes, cereals and flour sold loose and unbranded are nil-rated. The tax treatment changes when the goods are sold in a pre-packaged and labelled form carrying a Legal Metrology declaration. Keep loose and packed versions as separate items in your billing system so the correct treatment is applied without a decision at the counter.
Composition dealers issue a bill of supply rather than a tax invoice and do not charge GST separately, so the HSN requirement is lighter. Even so, recording HSN against your items is useful, because it makes your returns easier and means nothing has to be redone if you move to the regular scheme later.
Look the code up on the official GST portal's HSN search, which reflects the notified rate at the time you check. Rates on grocery items have moved more than once, so treat any list, including this one, as a starting point and confirm anything unusual before you print it on an invoice.
An incorrect code can lead to the wrong tax being charged, mismatches between your GSTR-1 summary and your customer's input credit, and penalties for incorrect invoicing. The common failure is charging tax on a nil-rated staple or vice versa, which is why the loose-versus-packed distinction is worth getting right before you worry about the last two digits of the code.
Start using Trayvo today and see the difference in your shop.