Modules
What each part of Pharma360 covers, and the decisions behind how it works.
Everything below is one product with one ledger underneath it. Nothing here is an add-on, and no module keeps its own parallel copy of what is in stock.
Inventory & batches
Products carry a category, a regulatory schedule, a sell price, a unit and a reorder point. Stock arrives as batches, each with its own lot number, expiry date and cost. Every change is an append-only movement — receipt, sale, adjustment, transfer, return or write-off — and on-hand quantity is derived from that ledger rather than stored, which is what makes offline merging safe and every figure traceable to the event that caused it.
Expiry tracking
Expiry is a first-class state, not a report you remember to run. Stock is grouped into expired, expiring soon and expiring within your warning window, computed from today's date every time it is asked — never a stored field that goes stale — and surfaced on the dashboard, in alerts and in the batch views.
Point of sale, offline-first
Cash, card and M-Pesa, on your own merchant credentials. The till works with no internet: each sale is written to the device and queued, then merged when the connection returns, with a visible sync state throughout and no possibility of a queued sale posting twice. Controlled supplies are the deliberate exception — those require a live connection, because they are entered on a statutory register against a patient record.
Purchasing & suppliers
Supplier invoices become batches through a two-stage flow: capture the paperwork as a draft, check it, then confirm — so stock only exists once somebody has verified what arrived. Invoices can be typed, uploaded as a file, or photographed and read. Purchase orders, supplier returns, reorder suggestions and a payables ledger sit alongside.
Cash control
Selling is bound to a till shift: an opening float, recorded cash movements during the shift, and a blind close where the counted figure is entered before the expected one is shown. The result is a variance that means something, plus a Z-report per shift and a supervisory review view that cashiers cannot use on themselves.
Stock takes
A count is a controlled exercise, not an edit: starting a session snapshots system quantities, counting happens against that snapshot (offline-capable, because the shelf is the worst-connected part of the shop), and a supervisor posts the differences as ledger corrections. Counting and signing off are separate permissions on purpose.
Write-offs & loss
Damage, theft and expiry leave the books through a request that carries a reason, a note, disposal details and optionally a photo — and, above a threshold you set, an approval. Below the threshold it passes automatically. Losses roll up into a report that shows the pattern no single write-off does.
Recall tracing
Given a lot number, Pharma360 answers the three questions a recall notice raises: what is still on the shelf, where the rest of it went, and which patients received it — across every branch at once, exportable, in one screen.
Multi-branch
On-hand stock across every branch in one view, with transfers between them tracked as documents so in-transit stock is never invisible. Reporting rolls up across branches from the same ledger, with no parallel source of truth.
Roles, permissions & audit
Four roles — owner, pharmacist, assistant, cashier — mapped to permissions the server enforces on every request, not merely a menu that hides things. An owner can adjust individual grants for their own pharmacy. Sensitive actions are attributable: who raised a write-off and who approved it are separate records, and staff, attendance and exception views exist for the same reason.
Compliance records
Premises licences, insurance and registrations tracked with their expiry dates and warnings before they lapse; a controlled-substances register fed from dispensing; and a prescriber registry so a prescription record names a real, checkable person.
Reporting
Sales summaries, best and slow movers, expiry loss, margin and tax views — all sourced from the same sales and movement data, so a report and the till can never disagree. Accounting and tax exports are available for your bookkeeper.
Next
See what you need to run it, or what it costs. Step-by-step instructions for each of these live under Help inside the product once you are signed in.