Pharmacy billing software with batch & expiry
Bill your chemist counter at speed — code, batch, expiry, scheme and MRP in one grid, FEFO batch selection, Schedule-H capture and GST, all offline.
Live product UI — sample data.
One-grid counter billing
Code, batch, expiry, scheme, MRP and GST in a single keyboard-first grid; FEFO picks the oldest batch.
Compliance at billing
Schedule-H/H1 warnings and doctor/prescription capture, with an inspection-ready register.
Expiry under control
Expiry Radar and Rescue surface near-expiry stock and the best recovery action.
What this actually means in practice
A pharmacy bill is a document with statutory content, not a receipt. Every line has to carry the batch number and expiry of what actually left the shelf, the pack and MRP the customer can check against the strip in their hand, the quantity in the unit it was sold in, and the tax split for the category. Where the item is Schedule H, H1 or X, the prescriber's name and prescription reference belong on the record too.
Getting that right at speed means the bill is assembled from the batch rather than typed over it. Choosing a product pulls the earliest-expiry batch in stock, with its own expiry, MRP and purchase rate; a scheme in force adds the free quantity as its own line, so the printed document shows what was given away; and a loose sale against a pack of ten converts to base units, so the printed rate and the stock movement agree.
Then it has to leave the machine. The same bill prints as an 80mm thermal receipt for the counter or a full A4 tax invoice for a credit customer, and either way it posts — sale, output tax, cost of goods, party balance and batch reduction, in one transaction. A bill that prints but does not post is how shops end up reconciling a printer's memory against a ledger months later.
| Printed on the line | Why it has to be there | Where the value comes from |
|---|---|---|
| Batch number | Traceability to the strip that left the shelf | The batch FEFO selected at the moment of billing |
| Expiry date | The customer's check, and the inspector's | Held on the batch, never on the product |
| MRP and pack | Verifiable against the strip in the customer's hand | Batch MRP, with the item's pack size |
| Quantity in units sold | A loose sale must not read as a full pack | Converted to base units from the pack entry |
| Free quantity or scheme | What was given away is part of the document | The scheme in force on the billing date |
| Doctor and prescription no. | Required where the item is Schedule H, H1 or X | Captured at the line, retained in the register |
What’s included
- One-grid counter billing
- FEFO batch & expiry
- Schedule-H / H1 capture
- Schemes & free goods
- MRP-inclusive pricing
- 80mm thermal receipts
- GST returns & ledger
What it does not do
- · Prescription details are keyed at the counter. There is no integration with a clinic system or EMR, so nothing is pulled in electronically or validated against a prescriber's database.
- · Printing covers 80mm thermal rolls and A4. 58mm is not supported, and silent printing to a chosen printer needs the Desktop edition — the browser edition goes through the print dialogue.
- · Payroll is not part of the product, and Tally data arrives only as a manual master-file upload, never as an automatic sync.
Frequently asked
Does it pick the batch automatically?
Yes — billing selects the earliest-expiry batch first (FEFO); you can override if needed.
Does it handle Schedule-H drugs?
Yes — H/H1/X items prompt for the doctor and prescription, and an audit flags any that are missing.
Is it offline?
Yes — counter billing, batch/expiry, GST and Pharma AI all run on your machine with no internet.
Does the printed bill differ for a counter sale and a credit sale?
The layout differs; the record does not. A cash counter sale prints as an 80mm thermal receipt, while a credit sale to a regular or an institution prints as a full A4 tax invoice with party GSTIN and terms. Both post identical entries — sale, output tax, cost of goods, batch reduction and party balance.
What happens to the bill if a customer returns part of it?
You raise a credit note against the original invoice rather than editing it. The returned quantity goes back to its own batch, the output tax reverses, the party balance adjusts, and the original bill stays intact in the register — which matters, because an altered pharmacy bill is precisely what an inspection questions.
What exactly is included in Pharmacy · counter?
one-grid counter billing, FEFO batch & expiry, schedule-H / H1 capture, schemes & free goods, MRP-inclusive pricing and 80mm thermal receipts, and 1 more. Every item on that list is a working screen you can open in the trial rather than a capability described in the abstract.
How is pharmacy · counter handled differently here?
It rests on one-grid counter billing, compliance at billing and expiry under control. The distinction that matters is that these are structural rather than cosmetic — the behaviour is built into how records are posted, not layered on as a report you have to remember to run.
Does Pharmacy · counter post to the real books?
Yes, and that is the whole reason it lives in this product rather than beside it. What one-grid counter billing records lands in the same posted double-entry ledger the Trial Balance, P&L and GST returns are built from — so there is no second set of pharmacy · counter numbers to reconcile against the first.
Does Pharmacy · counter cost extra?
No. Pharmacy · counter is part of the accounting core rather than a paid add-on, so compliance at billing is there on the entry tier exactly as it is on the highest one. What the tiers change is reach and depth — devices, multi-branch and multi-warehouse reporting, and whether the conversational AI copilots are switched on.
Can I try Pharmacy · counter before committing?
Yes — 14 days, no card. Test pharmacy · counter against your own masters and your own transactions rather than sample data: the questions worth answering here are about your business's edge cases, and a demo dataset is built not to have any.