Udyamik

Pharmacy · schema pharmacy

Early access

Software for a counter, not a storeroom

A retail chemist sells part strips, holds four batches of one tablet at three printed prices, and answers to a drug inspector about what left the shop and on whose prescription. This is built around those three facts.

It runs on the same login as every other Udyamik workspace, with its own database schema. A person who owns a pharmacy and sits on a school committee switches between them from the top bar.

245,140

medicines in the shared list

searchable by brand or salt

638

molecules on Schedule H, H1 and X

each citing its notification

882

DPCO ceiling prices

from NPPA

5%

GST on medicaments

HSN 3004, since 22.09.2025

Ekta Medical Store
EMS/2026-27/000041
Medicine name or salt: F2
MedicineBatchExpiryQtyAmount
Dolo 650ParacetamolDL260112/272 + 573.50
Taxim-O 200H1CefiximeTX260302/281 strip109.00
Glycomet 500HMetforminGM260505/282 strips66.00
Thyronorm 50HLevothyroxineTN260408/281 strip23.25
DL255512/26expiring soon60 on handtake
DL260112/27450 on handtake
DL240107/26expired30 on handblocked

A bill in progress. Batch and expiry on every line, and the expired box is blocked rather than hidden.

What it does at the counter

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.

You do not type your catalogue

A shop opening on Monday has four hundred medicines to enter before it can bill anything. The shared list holds 245,140 of them, searchable by brand or by salt, and taking one copies the composition, the dosage form, the manufacturer, the HSN code and the GST rate. The only thing it asks is how many are in the pack you buy, because that is the only thing it cannot know.

The list grows from the shops using it. A medicine you add that the list does not have is offered to it, and once it is reviewed every other pharmacy finds it too.

Drug schedules are matched from the molecule against the gazette lists rather than taken from a catalogue flag, so an amendment is a row and not a re-import. Where a composition came from a source that records at most two ingredients, the record says so instead of presenting a combination as complete.

Shared list · search "azithral"

Azithral 500 Tablet H Azithromycin · Alembic Pharmaceuticals · strip of 5 tablets take
Azithral 250 Tablet H Azithromycin · Alembic Pharmaceuticals · strip of 6 tablets take
Azithral XL 200 Suspension H Azithromycin · Alembic Pharmaceuticals · bottle of 15 ml take
Azithral Eye Drop H Azithromycin · Alembic Pharmaceuticals · bottle of 3 ml take
HSN 3004 · GST 5% · schedule from molecule

One login. Isolated database schemas.

Hot-swap between a school registry, a pharmacy counter, a shop’s bills or a clinic reception desk without signing in again. Each organisation keeps its business data in its own Postgres schema with row-level security on every table, so one account reaching two organisations never means one database holding everything in a column.

Switch the organisation below to see which navigation and which records the same login is given.

Sunrise Medicals
schema=pharmacy · tenant_id scoped

Bills

64

since 09:00

Takings

18,240

rupees, 2 counters

H1 entries

7

written as sold

To act on

5

batches, 90 days

Expired, or expiring within 90 days

14 Oct 2026 · Jayanagar
MedicineBatchExpirySchOn shelfStockistNext
Azithral 500AZ251111/26H9 stripsShree Ganesh PharmaReturn to stockist
Dolo 650DL255512/26OTC4 stripsShree Ganesh PharmaSell first
Pantocid 40PT250812/26H22 stripsMedplus DistributorsReturn to stockist
Augmentin 625AG254901/27H3 stripsMedplus DistributorsSell first
Electral ORSEL240909/26OTC6 sachetsShree Ganesh PharmaWrite off

The counter sells the soonest-expiring batch first, and refuses one that has expired.

What is not in it

Worth saying plainly, so nobody discovers it after signing.

  • This is retail pharmacy software. It does not do hospital IPD ward issue, wholesale distribution, manufacturing, or loyalty points.
  • Billing needs a working connection. Drafts survive a drop, and a sale is committed online.
  • Barcode scanning resolves a medicine on the catalogue screen today and not yet at the till.
  • E-invoicing and e-way bills are switched on per business and use the shop’s own portal credentials, which are the shop’s to obtain.

Early access

Onboarding is personal rather than self-serve. We set you up, move your data in, and stay close for the first month.

Talk to us

Retail chemists · schema pharmacy