Documentation / Pharmacy

๐Ÿ’Š Pharmacy / Medical Store Guide

This guide covers everything that's specific to pharmacy and medical-store usage of Ledgr โ€” features, fields, and workflows you won't find in generic accounting software.

Why Ledgr for pharmacies?

Pharmacy retail has compliance and operational requirements that most billing software ignores. Ledgr's pharmacy preset adds:

Niche enabled when: you pick "Pharmacy / Medical Store" during onboarding (or change to it via Settings โ†’ Modules โ†’ Business Type later). The batch_expiry feature flag is auto-enabled.

Initial setup

1. Pick the Pharmacy niche

During onboarding, select Pharmacy / Medical Store at the business-type step. Ledgr enables:

Already onboarded with a different niche? Go to Settings โ†’ Modules โ†’ change Business Type to Pharmacy.

2. Configure GST (India)

Most medicines in India fall under 5% GST; some (like Vitamins, OTC supplements) attract 12% or 18%. Set up tax groups:

3. Add your distributors / wholesalers

Pharmaceutical distributors need a Drug License (DL) on file:

  1. CRM โ†’ + New Contact with type=vendor (or both).
  2. Fill the standard fields (name, address, GSTIN, phone).
  3. Scroll down to Pharmacy Distributor Fields (only visible when niche=pharmacy and type=vendor):
    • Drug License Number (DL No.) โ€” e.g. MH-MUM-12345
    • DL Expiry Date โ€” Ledgr shows a red "EXPIRED" badge on the distributor list when this passes. Yellow "expires in 30 days" warning before that.
    • Salesman / Contact Person โ€” the rep who takes your orders
    • Salesman Phone
    • Delivery Days โ€” e.g. "Mon, Wed, Fri"
  4. Save. Visible on Distributor List with the DL info column.
Tip: Set DL expiry dates accurately. Ledgr shows you which suppliers are expiring soon โ€” chase them for renewed copies before they expire so you never accept stock from an unlicensed source.

Adding medicines to inventory

The Pharmacy Product Form

When the pharmacy niche is on, the product form gains a Pharmacy Info section:

FieldWhat it does
ManufacturerPharmaceutical company (e.g. "Sun Pharma", "Cipla"). Searchable on POS.
Salt CompositionActive ingredients (e.g. "Paracetamol 500mg + Caffeine 30mg"). Helps with substitutions.
Drug ScheduleOTC / G / H / H1 / X. Shown as colored badge on POS โ€” amber for H, orange for H1, red for X.
Rx RequiredCheckbox. Adds an "Rx" badge so cashier knows to ask for prescription.
Pack SizeFree text โ€” "10 tablets per strip", "100 ml bottle", "30 g tube".
Storage Condition"Below 25ยฐC", "Refrigerate 2-8ยฐC" โ€” informational on POS.
Rack Location"Aisle 3, Shelf B" โ€” speeds up dispensing.

Multi-UOM (loose dispensing)

Common scenario: you stock strips of 10 tablets but customers buy by tablet. Set this up via the multi-UOM picker:

  1. On the product, set primary unit = tablet with rate = price per tablet.
  2. Click Manage UOMs on the product form.
  3. Add a row: strip with conversion factor 10 (1 strip = 10 tablets).
  4. Optionally add: box with factor 100 if you stock in 10-strip boxes.

On POS, the cashier sees a UOM dropdown per cart line โ€” pick tablet for loose sale, strip for full strip. The stock_ledger always records movements in the base unit (tablets), so inventory stays accurate.

Recording sales (POS)

FEFO batch picking

When you sell a medicine that has multiple batches in stock, the POS auto-picks the oldest expiring batch first (First-Expiry-First-Out). The cashier sees:

Drug schedule + Rx badges

While billing, Ledgr displays:

Schedule H / H1 / X register

The Drugs & Cosmetics Act, 1940 (and the H1 amendment, 2014) requires pharmacies to maintain a register of every sale of restricted-schedule drugs. Ledgr generates this automatically.

How to access

Sidebar โ†’ Reports โ†’ Schedule H/H1 Register (only visible when niche=pharmacy).

What it shows

One row per (invoice, drug) for every sale of a Schedule H / H1 / X medicine in the date range you pick. Columns:

Adding prescriber details

The register doesn't have a dedicated "doctor name + reg no" field yet โ€” these vary widely between states. The recommended workflow is to enter prescriber details in the internal notes field of each invoice. They appear in the Notes column of the register.

Drug inspector audits: Print the register for the date range the inspector asks for, sign each page, and present it. CSV export also works for digital audit submissions.

Expiry alerts

Stay ahead of expired stock โ€” a major financial loss for pharmacies.

Common workflows

Reorder from a distributor

  1. Reports โ†’ Reorder Report shows items at/below min_stock with suggested reorder qty (max โˆ’ current).
  2. Click Generate POs โ€” Ledgr groups items by their last_supplier and creates one draft Purchase Order per supplier.
  3. Review each draft, send via WhatsApp or email.
  4. When stock arrives, convert the PO to a Purchase Bill โ€” batch + expiry are entered at this point.

Handling expired stock

  1. Inventory โ†’ Stock Adjustment โ†’ pick the expired batch โ†’ reduce qty with reason "Expired write-off".
  2. Ledgr posts journal entry: Dr. Stock Loss / Cr. Inventory.
  3. For supplier-credit-eligible expired stock: create a Debit Note (purchase return) to the distributor.

Drug returns

  1. From the original invoice, click Create Credit Note.
  2. Pick the line items being returned, adjust qty.
  3. Save โ€” Ledgr posts the journal (Dr. Sales Return + Tax / Cr. Sundry Debtors) and reverses the stock movement.

FAQ โ€” Pharmacy specific

Does Ledgr support distributor schemes (e.g. 1+1 free, 10+1 free)?

Yes โ€” every invoice line has a free_qty field. Enter the paid quantity in the regular qty column and the free quantity in free_qty. The stock movement is paid+free, but the invoice value is calculated only on paid qty.

Can I track multiple manufacturers / brand substitutes?

Each product is one brand. To track substitutes, use the salt composition field โ€” search by salt to find all brands with the same active ingredient.

What about Form 16 / Form 17 (sale / purchase registers for wholesalers)?

Form 16 (sale register) and Form 17 (purchase register) are required for drug wholesalers, not retailers. These are on the roadmap. For now, retail Schedule H/H1 register covers the most common audit need.

Multi-store pharmacy chain โ€” does each store get its own database?

Yes. Each Ledgr install is a separate company database. You can move data between stores via the .ledgr backup format. For consolidated reporting across stores, an export-and-merge workflow is currently the only option (a multi-tenant cloud version is on the roadmap).

Question we didn't answer?

WhatsApp us โ€” we've helped hundreds of pharmacies set up. We'll answer in plain English.

Chat on WhatsApp