Each of these exists because the drug trade requires it, and most of them are the reason a general-purpose billing package does not fit a chemist.
01
Batch and expiry on every line
Stock is held per batch with its own expiry month and its own printed MRP. Two deliveries of one batch number at different prices are two rows, each billing at the price on its own pack.
- Expired stock is refused at the counter and at goods receipt.
02
FEFO without anybody thinking about it
Name a medicine and the soonest-expiring sellable batch is taken. Name a different one and the skipped batch is recorded against the bill, so an owner can see which shelf to walk to.
- Not a report of a number. A list naming the bill and both batches.
03
Loose units and part strips
Two strips and five tablets is 35 tablets. Pack size, base unit and loose sale are properties of the medicine, so a six-tablet course bills correctly without arithmetic at the till.
- Per-unit MRP is held to four decimal places and rounds down, because a ceiling that rounds up is not a ceiling.
04
Schedule H, H1 and X
The schedule is derived from the molecule against the gazette lists, not copied from a catalogue flag. H1 asks for the prescriber and patient before the bill commits, and the register is written in the same transaction as the sale.
- Schedule X is refused when the line is added, not after the basket is rung up.
05
Opening day: the shelf and the khata come with you
Enter the stock already on the shelf batch by batch, with its expiry, printed MRP and what a pack cost, or upload three files in order: medicines, then customers and stockists with what each owes, then opening stock. Each upload is previewed row by row and committed all at once or not at all.
- A blank schedule in the file is imported as unknown, never as OTC.
- An expired batch can be counted in, so it can be claimed or written off. The counter will not sell it.
06
The bill, printed or sent
One server-rendered PDF for thermal 58mm, 80mm, A4 and dot matrix, chosen per shop with a per-bill override. Saving and delivering are separate acts: a shop with no printer sends the bill on WhatsApp or as a link instead.
- The link is token-gated, expiring and revocable.
- A customer on a regular medicine who has agreed to messages gets a refill reminder on WhatsApp. The message does not name the medicine.
07
Estimates, orders and delivery challans
An estimate is priced as the tax invoice would be and prints NOT A TAX INVOICE, in its own number series. It moves no stock and takes no money, and becomes a sale only when it is converted at the counter on the day. A sale order can take an advance against a receipt, and a delivery challan sends goods on approval to a hospital or a clinic.
- An H or H1 medicine can be quoted. It is supplied only against a prescription, on a tax invoice.
- A challan refuses Schedule H, H1 and X.
08
Rate lists and schemes
A rate list for a hospital, a nursing home or a doctor, assigned to the party so the counter prices from it. Schemes take per cent off, an amount off, or buy N get M free, on a medicine, a therapeutic class or the whole bill.
- No rate list can price a batch above the MRP printed on it.
09
Purchases, and reading the stockist invoice
Upload the invoice as a PDF or a photograph. Batch, expiry, quantity, free goods, rate and MRP come off the page as a draft you correct. Nothing reaches the shelf until somebody posts it.
- A correction is remembered per supplier, so next month the same wording matches itself.
10
Cash, bank and the day close
Each branch has its cash drawer, and the business its bank and UPI accounts, each a running book that every bill, receipt, payment and expense posts to. The day closes with a counted drawer against the expected cash, and the Z-report prints or saves as a PDF.
- Stock counts by shelf or by group, with a difference above the limit you set waiting for the owner.
11
Branches and staff
A chain is one business with several branches, each with its own bill series and its own GSTIN where it has one. Stock moves between branches with its batch, expiry and printed MRP. A pharmacist or counter hand sees only the branches the owner ticks for them, and a counter hand never sees cost or margin.
- Between two GSTINs a transfer is a tax invoice in the sender’s GSTR-1; under one GSTIN it is a delivery challan.
12
GST, as the return wants it
GSTR-1 with B2B, B2CS, CDNR, HSN and DOCS tables, as JSON for the portal or CSV per table, and GSTR-3B. Credit notes carry their own number series, because the return counts them separately from invoices. E-invoices and e-way bills are raised in the background from the bill, the challan or the transfer, and the books export to Tally.
- Tax is extracted from MRP by subtraction, which is how an Indian retail bill works.
- A pharmacy not registered under GST bills on a cash memo, with no tax and no GSTIN, and no memo reaches a GST return.
13
Two-sided credit
The khata for customers who pay later and the ledger for stockists you owe, both append-only. A correction is another row, never an edit.
- Expiry claims to stockists track what went back and what was credited.