GST Billing + Expiry Inventory: The Integration You Need
GST billing and expiry tracking share the same data but run on separate systems. Integration eliminates duplicate entry and catches ITC issues.
Two systems that should be one
Indian businesses maintain two separate workflows that share the same underlying data: GST billing and inventory management. The billing system tracks what you sell (products, quantities, prices, tax rates) and generates GSTR-1/3B returns. The inventory system tracks what you have (products, quantities, batch numbers, expiry dates).
The problem: when these systems don't talk to each other, you create reconciliation gaps, duplicate data entry, and inventory errors that compound over time. You bill a product but forget to deduct it from inventory. You write off expired stock but the GST implications of the write-off are unclear. You issue a credit note for a return, but the returned stock doesn't get added back to inventory with its batch information.
In 2026, with both GST compliance and FSSAI expiry reporting becoming more stringent, the case for integration is not just operational efficiency. It is regulatory necessity.
Not sure how much you're losing to expiry?
Run a free inventory waste audit — find your bleeding SKUs in 60 seconds. No sign-up required.
Run free auditWhere GST billing and expiry tracking intersect
At the point of sale
When you sell a product, three things should happen simultaneously:
- GST invoice is generated — with the correct HSN code, tax rate (5%, 12%, 18%, or 28%), and customer details
- Inventory is deducted — from the specific batch with the nearest expiry date (FEFO)
- Batch record is updated — showing the sale quantity, remaining quantity, and remaining days to expiry
If your billing and inventory systems are separate, steps 2 and 3 require manual reconciliation. In an integrated system, they happen in the same transaction.
At receiving (purchase/GRN)
When you receive goods from a supplier:
- Purchase entry is recorded — with the supplier's GST details, invoice number, and line items for input tax credit (ITC)
- Inventory is added — each line item with its batch number, manufacturing date, and expiry date
- Supplier account is updated — with the payable amount
The critical detail: the purchase invoice contains batch numbers and expiry dates, but most standalone GST billing software ignores them because they are not required for GST returns. The batch information is discarded at the point of entry, making future expiry tracking impossible without re-entering the data.
At stock write-off
When products expire and must be written off:
- Inventory is reduced — the expired batch is removed from saleable stock
- GST impact is recorded — you need to reverse the input tax credit claimed on the expired stock (per Section 17(5)(h) of the CGST Act for goods destroyed or lost)
- Write-off value is recorded — for income tax purposes, the expired stock write-off is a business expense
This is where most businesses get it wrong. They physically remove expired stock but don't process the ITC reversal. In a GST audit, this creates a mismatch between your ITC claimed and your legitimate business use of the goods.
At returns
When you return near-expiry stock to a distributor:
- Debit note is issued — against the original purchase invoice
- Inventory is reduced — the returned batch is removed from stock
- ITC adjustment is made — the input tax credit on the returned goods is reversed
When a customer returns a product to you:
- Credit note is issued — against the sale invoice
- Inventory is added back — with the same batch number and expiry date
- Output tax liability is adjusted — the GST collected on the returned sale is reversed
Without integrated systems, returns are where reconciliation errors accumulate most. The credit note is issued but inventory isn't updated. Or inventory is updated but the batch information is lost. Or the ITC adjustment is forgotten entirely.
The ITC reversal trap for expired stock
This deserves special attention because it catches businesses in GST audits.
Under GST law, input tax credit is available only for goods used in the course of business or for making taxable supplies. When goods expire and are destroyed or disposed of, they are no longer "used for business." The ITC claimed on those goods must be reversed.
Example calculation:
You purchased 100 packs of a product at ₹200 each (+ 12% GST = ₹24 GST per pack). Total ITC claimed: ₹2,400. 15 packs expired. ITC to reverse: 15 × ₹24 = ₹360.
For a business with ₹50 lakh in annual purchases and a 3% expiry rate, the ITC reversal amount is approximately ₹18,000-₹30,000 per year (depending on GST rates of expired goods). Not catastrophic, but the penalty for incorrect ITC claims can be up to 100% of the tax amount plus interest at 18% per annum.
An integrated system handles this automatically. When expired stock is written off, the system calculates and records the ITC reversal, and includes it in your GSTR-3B filing.
HSN code accuracy and expiry tracking
Every product in your inventory needs an HSN (Harmonised System of Nomenclature) code for GST compliance. The HSN code determines the applicable GST rate. For perishable goods, HSN codes matter more than most businesses realise:
- Fresh milk (0401): 0% GST
- UHT/processed milk (0402): 5% GST
- Curd/yoghurt (0403): 5% GST
- Paneer (0406): 5% GST
- Fresh fruits and vegetables (07/08): 0% GST
- Processed/packaged food (various): 5-18% GST
- Medicines (3003/3004): 5-12% GST
When your billing system and inventory system share the same product master — with HSN code, GST rate, shelf life, and storage conditions all in one record — accuracy improves across the board. A product scanned at the POS automatically carries the correct HSN and tax rate, while the inventory system simultaneously deducts the correct batch.
Practical setup: integrated GST + expiry system
Configure your product master once
For each product, define:
- Product name, brand, variant
- HSN code and applicable GST rate
- Default shelf life (for auto-calculating expiry from manufacturing date)
- Reorder level and reorder quantity
- Category (for FSSAI reporting and expiry alert grouping)
- Storage conditions (ambient, refrigerated, frozen)
This single product master feeds both billing and inventory workflows. Change the GST rate once, and it updates everywhere.
Receiving workflow
- Receive goods from supplier
- Scan or enter the supplier's invoice (or use invoice OCR to auto-extract)
- System creates a purchase entry with GST details for ITC
- Same transaction records batch numbers and expiry dates for inventory
- Products are immediately available in both the billing system and the expiry tracking system
Sales workflow
- Scan product at POS
- System selects the nearest-expiry batch automatically (FEFO)
- GST invoice is generated with correct HSN code and tax rate
- Inventory deducts the sold quantity from the specific batch
- If the product is Schedule H1, the H1 register entry is created in the same transaction
Expiry write-off workflow
- Expired products are identified (either through daily alerts or physical audit)
- Staff marks products as expired in the system with batch numbers and quantities
- System calculates the cost value and the ITC reversal amount
- The write-off is recorded as a business expense
- The ITC reversal is queued for the next GSTR-3B filing
- If FSSAI quarterly reporting is enabled, the expired stock is added to the quarterly FoSCoS report
Return workflow (to supplier)
- Identify near-expiry stock eligible for return
- Create a debit note in the system with batch details
- System reverses the inventory for those specific batches
- ITC adjustment is calculated and queued for GSTR-3B
- When the credit note from the supplier is received, it is matched against the debit note
GSTR-1/3B reporting with expiry awareness
An integrated system simplifies GST return filing:
GSTR-1 (outward supplies): Auto-generated from all sales invoices and credit notes. Each invoice already has the correct HSN code and tax breakup because the product master is shared with inventory.
GSTR-3B (summary return): Auto-calculated from:
- Output tax from all sales
- Input tax credit from all purchases
- ITC reversals from expired stock write-offs
- ITC adjustments from supplier returns
The GSTR-3B line items that most businesses calculate manually — particularly the ITC reversal for expired stock — are auto-populated when billing and inventory are integrated.
For pharmacies: the triple integration
Pharmacies face the most complex version of this integration:
- GST billing — with correct HSN codes for medicines (different rates for different schedules)
- Expiry/batch tracking — critical for patient safety and drug licence compliance
- Schedule H1 register — batch-level recording of specific drug sales
A pharmacy using three separate systems for these workflows is doing triple data entry for what is essentially the same transaction. An integrated system records it once and distributes the data to all three compliance requirements.
Implementation for existing businesses
If you currently use standalone GST billing software (Tally, Busy, or a basic invoicing app), here is the migration path:
Week 1: Export your product master from your current billing software. Add batch/expiry fields.
Week 2: Import the enhanced product master into an integrated system. Begin using the new system for all purchases (capturing batch and expiry data at receiving).
Week 3: Switch billing to the new system. Verify that GST calculations match your old system for the first few days.
Week 4: Activate expiry alerts. Run your first reconciliation: do the inventory quantities in the new system match your physical stock?
Month 2: File your first GSTR-1/3B from the new system. Process your first expiry write-off with automatic ITC reversal.
The transition is not trivial — any system change requires effort. But the alternative is maintaining two systems indefinitely, with all the reconciliation overhead and compliance risk that entails.
ShelfLifePro integrates GST billing (GSTR-1/3B ready), batch-level expiry tracking, FEFO enforcement, and WhatsApp alerts in a single platform. One entry, multiple compliance outputs.
Stop reconciling two systems. Start running one.
See what batch-level tracking actually looks like
ShelfLifePro tracks expiry by batch, automates FEFO rotation, and sends markdown alerts before stock expires. 14-day free trial, no credit card required.