Skip to main content
Menu
Industry12 minApril 3, 2026Updated July 12, 2026

Best Pharmacy POS Software: Batch Tracking, Traceability and Expiry 2026

Batch tracking, expiry alerts, FEFO and recall traceability: what pharmacy POS software should do in 2026, from Lagos to Nairobi, and what it really costs.

By Marie Dubois

POS & restaurant consultant — 12 years in the industry

Why pharmacies need a POS with batch tracking

Tuesday morning, the wholesaler delivers. Twelve cartons, forty order lines, and on every box a batch number and an expiry date that nobody copies down anywhere. Three months later you find a strip of antibiotics at the back of a drawer, expired for six weeks. It was paid for, it will never be sold, and nobody knows how many others are sitting in the same state elsewhere in the store room. That scene plays out the same way in a chemist on a busy Lagos street, a pharmacy in Nairobi’s Eastlands or a shop in Accra.

A pharmacy is not an ordinary retail business. Every product you sell carries obligations no other shop has to think about: tracking batches, respecting expiry dates, reacting within hours when a health authority recalls a medication. A generic POS records a sale and gives change, and it does that perfectly well. What it does not know is that a box belongs to a batch, that the batch expires in September, or that it was recalled yesterday.

The recall is the scenario that separates the two worlds. When your wholesaler, NAFDAC in Nigeria or the Pharmacy and Poisons Board in Kenya asks you to pull batch X of a medication, you have to say how much of it you received, what is still on the shelf and, ideally, who bought the rest. With an exercise book or a spreadsheet, that reconstruction takes hours, sometimes days, and it is still approximate. With software that tracks batches, it is a one-minute search, and it is exact.

Then there is the daily grind, less dramatic but more expensive over time: products creeping towards their dates with nobody noticing, wholesaler returns never made because the return window closed, an expired box sold by mistake on a busy Saturday. A POS built for pharmacies, like digabloPos, turns those blind spots into alerts. It knows what expires and when, and it tells you while there is still time to act. This guide covers what that changes in practice, what it costs, and how to get started without losing your evenings.

Expiry date management: avoid losses and stay compliant

Start with an uncomfortable calculation. Industry studies put the share of a pharmacy’s stock lost every year to expired, unsold products at between 1% and 3%. On an average stock value of 150,000 euros, that is up to 4,500 euros thrown away, every single year. The reasoning holds in any currency: run the same percentages on a 20 million naira stock in Lagos or a 5 million shilling stock in Nakuru and you are looking at serious money quietly leaving through the bin. It is almost never one big visible loss. It is a slow leak, a box here, a bottle there, and nobody ever adds it up.

Expiry is not fought on the day it happens. It is fought weeks earlier. Software that tracks dates alerts you automatically when a product approaches its limit, with thresholds you set yourself: 90 days before expiry for slow-moving references, 30 days for fast movers. Inside that window everything is still possible. You push the product at the counter, offer it first when the molecule is requested, or return it to the wholesaler while the return conditions still apply. Once the date has passed, the only option left is destruction, at your expense.

The other side is regulatory, and it does not forgive. Selling an expired product exposes the pharmacy to penalties and, harder to repair, to the trust of a patient who found an expired box in their bag once they got home. Let us be honest: no team checks every date on every sale at 6 pm on a Saturday. That is exactly the machine’s job. With digabloPos, the sale of a product past its date is blocked at the moment of scanning, with a clear alert on screen and a list of still-valid batches of the same product in stock. Human error no longer makes it past the counter.

One vocabulary point to close, because pharmacy shelves mix two regimes. Medications carry a strict expiry date, not negotiable. Cosmetics and food supplements often carry a best-before date, which is indicative. Software that tracks both saves you from the double waste of throwing away what could still be sold, and selling what should have been thrown away.

Lot traceability: from supplier to patient

A batch recalled by an authority, whether that is the FDA, the EMA, NAFDAC or Ghana’s FDA, always follows the same path: the wholesaler or the authority notifies you, and you have to answer three questions. How many boxes of this batch did you receive? How many are still on the shelf or in the store room? And who bought the others? The quality of your answer depends entirely on what your POS has been recording over the months, without you thinking about it.

A pharmacy POS worthy of the name records every stock movement with the associated batch number: receipt from the wholesaler, shelving, sale, return, destruction. Day to day it is nothing spectacular, a few seconds per delivery line. But on recall day, a search on the batch number pulls up the complete list of affected sales, with dates, quantities and patient contact details where they were recorded. You call the people concerned within the hour instead of taping a notice to the window and hoping they walk past. That responsiveness protects your patients first. It also changes the tone of an inspection: a printable history, batch by batch, is worth more than any speech in front of an inspector.

Traceability also settles a problem every pharmacy knows: the same medication bought from two wholesalers, with two batches and two different expiry dates sitting on the same shelf. Which one do you sell first? The right answer is called FEFO, first expired, first out: on every sale, the batch with the nearest date should be the one that leaves. On a shelf, FEFO depends on the shelving discipline of the whole team, including the locum who started on Monday. In software like digabloPos it is automatic: at the moment of sale, the system deducts the most urgent batch and records the link between the receipt and the batch number. The chain is complete, from the supplier’s delivery note to the patient, without relying on anyone’s memory.

How digabloPos handles batch and expiry tracking for pharmacies

Concretely, here is what it looks like in an equipped pharmacy, from the morning delivery to the evening counter.

When goods arrive, you scan each product and enter the batch number and expiry date. On boxes that carry a GS1 Data Matrix code, the small square printed next to the regular barcode, the scan fills in the batch number and the date by itself: receiving comes down to checking quantities. Every unit in stock is now attached to its batch, with its date.

The expiry dashboard then ranks your stock by urgency, in three colours you can read at a glance: red for products already expired, orange for those expiring within 30 days, yellow for those within 90 days. Five minutes in front of that screen on Monday morning replaces walking the shelves squinting at tiny printed dates, and above all it comes early enough to act: sell through, push at the counter, return to the wholesaler.

At the counter, scanning a product triggers an automatic check. Expired product: sale blocked, alert on screen, alternative batches suggested. Several valid batches in stock: the FEFO batch is offered first. The receipt keeps the batch number that was sold, which feeds the traceability described above without any extra typing on your part.

For recalls, a dedicated search finds every receipt linked to a batch number in one click, with an export of the affected patients so you can contact them. And because a pharmacy does not stop when the connection drops, whether the power has gone in Lagos or the network is down in a small Ghanaian town, digabloPos works offline: sales are stored on the device and sync back on their own when the network returns, with nothing lost.

Everything above, batch tracking, alerts, FEFO, blocking of expired products and recall search, is free in digabloPos. No subscription is required for these functions, because they are not a luxury: they are the core of the trade.

How much does pharmacy POS software cost?

The market splits into three price families, and the right one for you depends mostly on the size of the pharmacy.

Legacy pharmacy systems first, sold as licences with an annual maintenance contract: expect several hundred to several thousand dollars upfront, then a fee every year. They do an enormous amount, part of which you will never open, and they generally assume a dedicated computer and a stable connection. For a large, established pharmacy, that choice can make sense. For a chemist getting started in Lagos, Kumasi or Kisumu, the entry ticket is off-putting and the ratio between the price and what you actually use does not hold up.

Generic subscription POS systems next, often between 20 and 50 dollars a month. The problem is not the price. The problem is that they track neither batches nor expiry dates. In a pharmacy, that single gap disqualifies them: you would be paying every month for a tool that ignores your biggest financial and regulatory risk.

That leaves the free-with-optional-modules model, which is how digabloPos works: selling, stock, batch tracking, expiry alerts and FEFO cost nothing, and advanced functions are added one by one, at around ten dollars a month each, cancellable whenever you want. You start with no commitment and only pay, later, for what has proven its worth in your own pharmacy.

One tip when comparing offers: add up the total for the first year, not the monthly headline. A 30-dollar subscription plus a compulsory proprietary terminal plus paid onboarding easily reaches the price of a good tablet before you have sold a single box. A free core plus one optional module, running on hardware you already own, keeps that first year close to zero. In a trade where the margin is made box by box, that difference is not a detail.

On the hardware side, the list is short: an Android tablet or phone you may already own, a thermal printer for receipts, and a barcode scanner. In a pharmacy the scanner is not a gadget. Dozens of boxes look alike, scanning eliminates typing errors, and on GS1 codes it fills in the batch details by itself. Be wary, on the other hand, of offers that impose a proprietary terminal with a monthly rental: you end up paying every month for a box that does less than your own tablet.

Where to start in your pharmacy

Do not try to enter your entire stock with batches on the first weekend: that is the surest way to give up by the second shelf. The method that works takes a month, without closing the shop.

Week 1: create your fifty fastest-moving references, the ones that make most of your turnover. For those only, enter the batches currently in stock with their dates. Start selling through the software from day one, keeping your old system running alongside if that reassures you.

Weeks 2 and 3: build the receiving habit. Every wholesaler delivery now comes in with its batch numbers and dates, scanning the Data Matrix codes where they exist. This is the tipping point: from here on, all new stock is traced without effort, and the old stock sells through naturally.

Week 4: complete the rest of the catalogue shelf by shelf, set your expiry alert thresholds according to how fast each family moves, and give every team member a PIN code so that every sale and every cancellation is signed. Take half an hour to train whoever serves at the counter, including the part-timers: a good tool used badly produces wrong numbers, and wrong numbers are worse than no numbers at all.

Two mistakes to avoid along the way. The first: postponing batch entry until later and only recording products. You would have a till, not a traced pharmacy, and the first recall would remind you of that the hard way. The second: never comparing theoretical stock against real stock. A rolling count, one shelf a week, fifteen minutes each time, is enough to keep the numbers honest and catch discrepancies while they are still small.

Trying it costs you nothing: digabloPos is free for everything related to batches and expiry dates, it runs on an ordinary Android device, and it keeps selling when the connection drops. A month from now, your next expiry alert will arrive before the bin, not after.

Frequently asked questions

Why is lot tracking critical in a pharmacy?

Medications have strict expiry dates and traceable lot numbers in case of health recalls. Lot tracking lets you instantly identify which sales are concerned by a recall. It's also legally mandatory for pharmaceutical products.

What is the difference with simple stock management?

Simple stock counts units. Lot tracking distinguishes each delivery with its number, expiry date, supplier. At sale, you destock the specific lot (FEFO — First Expired First Out). Essential for pharmacy, parapharmacy, supplements.

Does the software alert before expiry?

Pharmacy-oriented solutions (digabloPos with stock module, or specialized) send alerts 30/60/90 days before expiry. You can then promote or return to supplier. Without alerts, you discover losses at inventory — too late.

Is specific certification needed for pharmacy?

For parapharmacy or herbal store cash register, standard NF525 is enough. For prescription medication, the software must be LGO-approved (Officine Management Software) — a much stricter framework. Check your activity scope.

Try batch tracking with digabloPos

Batch tracking, expiry alerts, FEFO and recall search: all free in digabloPos, and it keeps working without internet. Try it in your pharmacy today.

Try for free