Optical shop billing mistakes to avoid
6 min read · Last updated 4 September 2026
1. One HSN and one tax rate for the whole shop
This is the most common mistake, and it comes from using a tool built for a shop that sells one kind of thing. An optical bill routinely carries three different tax treatments at once.
| Line | HSN / SAC | GST |
|---|---|---|
| Spectacle frame | 9003 | 12% |
| Sunglass | 9004 | 12% |
| Spectacle lens | 9001 | 12% |
| Contact lens | 9001 1000 | 12% |
| Case or pouch | 4202 | 18% |
| Cleaning solution | 3402 | 18% |
| Fitting or repair labour | 9987 (SAC) | 18% |
| Eye test | 9993 (SAC) | Exempt |
Set one shop-wide rate of 12% and every accessory and service line is under-taxed. Set 18% and every frame and lens is over-taxed, which means you have collected tax from customers that you must now pay. Neither error announces itself; both accumulate.
The fix: HSN and tax rate belong to the product, set once when the product is created, and the bill picks them up per line. Rates as notified; confirm with your CA, and see our full HSN and GST reference for optical shops.
2. GST charged on the pre-discount amount
Tax is charged on the taxable value, which is what remains after the discount. Getting the order wrong is easy when the bill is written by hand: the discount gets applied at the end, after the tax has already been worked out on the gross.
On a ₹3,500 frame with a 5% discount at 12%, the correct tax is 12% of ₹3,325, which is ₹399.00 — CGST ₹199.50 plus SGST ₹199.50, and a grand total of ₹3,724.00. Tax on the pre-discount ₹3,500 would be ₹420.00, so the customer is overcharged ₹21 and your books show output tax you did not owe. Twenty-one rupees a bill, on a few thousand bills a year, is not a rounding error.
The fix: the calculation order must be structural, not a habit — subtotal, then discount, then tax on what is left. And the same applies to an invoice-level discount, which has to be spread across the lines before each line’s tax is computed, not deducted from the total afterwards.
3. The wrong document type
A registered shop under the regular scheme issues a Tax Invoice. A composition dealer or an unregistered shop issues a Bill of Supply, charges no GST, and carries no tax rate column and no tax rows; LensVerge leaves the HSN column off it as well. A composition dealer must also carry the prescribed declaration that they are not eligible to collect tax on supplies, printed under their own GSTIN.
Two failures happen. A non-registered shop prints something headed “Tax Invoice” because that is what the software called it, which claims a status it does not have. And a registered shop prints “Bill of Supply” on a fully-discounted or fully-redeemed zero-tax bill, because the software decided the title by looking at the tax total instead of the shop’s registration.
The fix: the document type is derived from your registration mode, once, and every surface — screen, thermal, A4, A5 and any shared link — follows the same source. Never from the arithmetic on the individual bill. The GST invoice format guide lists the mandatory fields for both documents.
4. Missing place of supply
For a counter sale, place of supply is your own state and the tax splits into CGST and SGST. The moment you courier a pair to a customer in another state, the place of supply becomes the delivery address, the supply is inter-state, and the full rate is charged as IGST instead.
Shops that started shipping orders taken over WhatsApp are the ones that get caught here. The bill goes out with CGST and SGST as usual, and the GSTR-1 then reports an inter-state supply as intra-state — a mismatch that is tedious to unwind and entirely avoidable.
The fix: capture the customer’s state whenever goods are delivered anywhere other than across your counter, let the tax split follow it, and print place of supply with its state code on the invoice as a matter of course.
5. No prescription snapshot on the bill
Not a GST requirement, and the omission that causes the most arguments. A customer returns after four months saying the power feels wrong. Without the prescription on the bill, you have a disagreement about what was ordered — and in a disagreement with a customer standing in your shop, you generally lose whether or not you were right.
Recording it against the customer is not quite enough either. Prescriptions get updated, and next year’s record does not tell you what was dispensed last year. The bill needs a snapshot of the values as they were at the moment of sale, along with the lens type and index and, ideally, the frame photo.
The fix: copy the prescription values onto the invoice at billing time rather than linking to a record that can change. Same principle for the frame photo — snapshot it, so the bill shows what was actually sold even if the product record is edited later.
6. Deleting a bill instead of voiding it
Invoice numbers must run sequentially within the financial year. Delete number 412 and your series jumps from 411 to 413, which is exactly the pattern an assessment looks for and which you will be asked to explain. “It was a mistake, so we removed it” is not an answer that reassures anyone.
The fix: void, never delete. The number stays in the series, the document is marked cancelled on screen and on paper, and there is a record of who cancelled it and when. If the period has already been filed, the correct instrument is a credit note rather than any change to the original bill. And when you void, remember to check two knock-on effects that shops routinely forget: the stock that was decremented, and any loyalty points earned or redeemed against that sale.
7. Bills that do not move stock
If billing and inventory are two separate exercises — a bill book at the counter and a stock sheet updated on Sundays — the stock figure is fiction within a month. Everyone knows this and it still happens, because the correction feels small each time.
The subtler version is worse: software that does decrement stock, but silently fails to when two sales touch the same product at once, or when a permissions problem blocks the write. The bill succeeds, the customer leaves happy, and the stock quietly never moved. Nothing alerts anybody, and the error is only found at the next physical count.
The fix: stock moves through the bill or through a recorded adjustment with a reason and a name attached — never by editing a quantity because it looked wrong. Reconcile with rolling section counts rather than one annual panic, as described in frame inventory management.
8. Credit sales recorded as receipts
Optical shops give credit constantly — a customer pays an advance and settles at collection, or a regular takes the spectacles and pays next week. The mistake is recording the credit portion as if the money had arrived.
The consequences compound. Your day’s cash position is overstated, so the cash in the drawer never matches. Your receivables are invisible, so nobody chases them. And the outstanding amount does not appear anywhere at the counter, so the customer who owes ₹2,400 is served without anyone knowing.
- Record what was actually collected, split by mode — cash, UPI, card — and what remains due.
- A credit amount is a receivable, never a receipt.
- Show the outstanding balance on the customer’s record, where staff will see it.
- Log the later payment against the same invoice, so the bill tells its own story.
- Review outstandings weekly. A polite WhatsApp reminder at two weeks recovers most of it.