ERP for Pharma and Healthcare Distribution in the UAE: Batch, Expiry and MOH Compliance
A pharma distributor does not sell boxes. It sells a registered product, from a specific batch, with a known expiry, stored at a known temperature, to a customer who is licensed to receive it. An ERP that cannot hold all of that on every line is a liability, not a tool.
Pharmaceutical and healthcare distribution in the UAE sits under more regulation than almost any other trading business. Products must be registered with the Ministry of Health and Prevention before they can be imported, facilities are licensed by the health authority of the emirate they operate in, controlled medicines carry their own permit regime, and the move towards unit-level serialisation means a distributor increasingly has to account for individual packs, not just cartons.
Most distributors we meet are running this on a generic accounting package plus a stock module, with the batch and expiry truth living in the warehouse supervisor's head and a set of spreadsheets. It works until the first recall, the first inspection or the first large expired write-off. This guide sets out what a pharma and healthcare distributor should require from an ERP, and how to sequence the implementation so compliance is built in rather than bolted on.
Key takeaways
- Batch number and expiry date must travel with every stock move, from goods receipt to customer delivery and return.
- FEFO picking with a customer-specific minimum shelf life is the single biggest lever on expired stock write-offs.
- Storage conditions, quarantine and controlled-medicine handling belong in the warehouse configuration, not in a procedure document.
- A recall should be one report: which batches, which customers, which quantities, which dates.
- VAT classification by product and customer licence validation by partner should be configured before the first invoice.
Why generic distribution software falls short
A trading ERP cares about SKU, quantity and price. A pharma ERP has to care about the batch behind the quantity, the expiry behind the batch, the temperature the batch was held at and the licence of the customer receiving it. When those attributes are optional fields that staff may or may not fill in, the data is unreliable precisely when you need it most.
The second gap is traceability in both directions. A regulator asking about a batch wants to know every customer who received it. A customer returning a product wants it matched to the original delivery. A system that records sales by product alone cannot answer either question without a manual search through delivery notes.
Master data: register the product the way the regulator sees it
Before any transaction is configured, the product master needs to hold what the ministry and your principals care about.
| Field | Why it matters |
|---|---|
| Registration number and status | Blocks import and sale of unregistered or suspended products |
| Dosage form, strength, pack size | Prevents the "same product, different pack" mix-ups that cause wrong deliveries |
| Storage condition (ambient, 2 to 8, frozen) | Drives which warehouse locations are allowed to hold the product |
| Controlled or semi-controlled class | Enforces permit checks and restricted picking for controlled medicines |
| GTIN and serialisation flag | Enables barcode scanning and unit-level track and trace where it applies |
| VAT classification | Zero-rated or standard rated, inherited by every invoice line |
| Principal and agreement reference | Links sales to the supplier contract for bonus and claim reconciliation |
The same discipline applies to customers. A hospital, a pharmacy chain and a clinic each hold a facility licence with an expiry date. The ERP should store it, warn when it is near expiry and block delivery of controlled items to a customer whose licence does not permit them.
Batch, expiry and FEFO in the warehouse
Every receipt creates or extends a lot with a batch number and an expiry date. Those two attributes then follow the stock through internal transfers, picking, delivery and return. Odoo's lot tracking does this natively, and the configuration decisions that matter are the ones around it.
- Removal strategy set to FEFO at the warehouse level, so the picker is directed to the batch closest to expiry rather than the one nearest the door.
- Minimum remaining shelf life per customer, because a hospital tender may require twelve months and a retail pharmacy six. The pick list should exclude batches that fall below the customer rule, not leave the storekeeper to judge.
- Expiry alerts at 90, 60 and 30 days, routed to sales so short-dated stock is pushed before it becomes a write-off or a return to principal.
- Quarantine locations for goods received pending QA release, for returns awaiting inspection and for recalled stock. Nothing moves out of quarantine without a release step with a named user.
- Storage condition enforcement, so a 2 to 8 product cannot be put away to an ambient rack. This is a location attribute check, and it is cheap to configure and expensive to omit.
Cold chain and the evidence trail
Temperature-sensitive products need a record that they were held in a compliant location at every stage, which location rules provide, and a way to capture an excursion, usually an integration with the data loggers writing readings or exceptions against the lot. At minimum, the delivery record should hold the logger reference and a confirmation that the chain was unbroken, so an inspection or a customer dispute can be answered from the document.
Recalls, returns and serialisation
A recall is the moment the investment in batch tracking pays back. The ERP should produce, in minutes, the list of customers who received the affected batch, the quantities and dates, and the quantity still on hand by location. The same report drives the customer notification, the return pickups and the credit notes. If your current system needs the warehouse team to pull delivery notes to answer that question, the gap is not theoretical.
Serialisation is moving from optional to expected. The UAE has a national track and trace programme built on GS1 standards, and distributors are increasingly asked to report pack-level events such as receipt, dispatch and decommissioning. The practical implication for the ERP is that it must be able to hold serial numbers on units, scan them at receipt and dispatch, and pass events to the reporting platform through an integration layer. Scope and test that integration during the implementation. It is not a feature you want to discover is missing in the week a principal makes it a condition of supply.
Commercial terms: principals, bonuses and claims
The finance side of pharma distribution is where most spreadsheet effort hides. Typical requirements include bonus units on purchase and sale, free goods that must be tracked in stock at zero value, price protection claims when a principal reduces its list price, promotional allowances, and returns of near-expiry stock under agreed terms. Each should be a configured pricing or stock rule tied to the principal agreement, with a report that reconciles what the ERP says you are owed against the principal's statement.
VAT, e-invoicing and the audit file
Healthcare VAT in the UAE is not uniform. Certain registered medicines and medical equipment are zero-rated under the published Cabinet list, while other products are standard rated at 5 percent. The classification must sit on the product, and the tax code must flow onto every invoice line without manual intervention. Mixed invoices with both zero-rated and standard-rated lines are normal and the system must present them correctly.
The UAE e-invoicing mandate adds a second requirement. Invoices will be exchanged as structured data through an Accredited Service Provider, with the first phase set for 1 January 2027 for larger businesses and a second phase from 1 July 2027. Our e-invoicing readiness page covers the stages.
Implementation sequence that works
- Product and customer master cleanup, including registration numbers, storage conditions, licences and VAT classes. This is the longest step and the one that decides everything after it.
- Warehouse design: locations by condition, quarantine, FEFO, shelf-life rules and barcode scanning.
- Purchasing and receipt with QA release, so no stock is saleable until inspected.
- Sales, pricing and principal terms, including bonuses, tenders and credit control.
- Accounting, VAT and reporting, including the recall report and expiry exposure report.
- Serialisation and cold-chain integrations, tested with real batches before go-live.
Migration of opening stock must be by lot with expiry dates, which usually means a physical count during cutover. Migrating product-level quantities and "fixing the batches later" never gets fixed.
How Kaido approaches it
We start with the regulatory map rather than the module list: which products and customers are regulated, which storage conditions apply, which principals have which terms, and what the company must be able to prove to an inspector or a principal on a given day. That becomes the blueprint, and the configuration follows from it. In our experience the warehouse rules and the product master take the most workshop time and deliver the most value, so we front-load them.
On the technology side we usually implement on Odoo for distributors of this size, because lot tracking, FEFO, quarantine and multi-warehouse are standard and the integrations for serialisation and temperature monitoring are well understood. For larger groups with an existing SAP Business One or NetSuite estate we work within that platform. Either way, the test plan before go-live includes a simulated recall and a simulated inspection, because those are the days the system is really for.
Running a pharma or medical distribution business on spreadsheets and a basic accounting package?
Talk to a senior consultant about batch control, FEFO, recalls and serialisation in a single system. We will map your product registrations, storage conditions and customer licences before we talk about modules.
Book a discovery call →