Pharmacy counter rules
Retail Extensions · App · checked 2026-10-24
Pharmacy counter rules checks a medicine sale before the till takes payment. A prescription line is paid only against a valid prescription for this patient. Prescription and controlled medicine is sold only by a pharmacist whose license is in date. A controlled sale needs the patient's ID on record. Quantity caps apply, and dispensed medicine is not taken back. The same rules apply when a sales order, delivery or sales invoice is submitted on the Desk. This page covers what the app adds, how to set it up, what the cashier reads, how long to keep records, and how to remove it. It is part of Pharmacy on iVendNext.
What it does
Your pharmacist keeps the rules as records: the drug schedules, the pharmacists, the prescriptions and the patients' records. Nothing is written in for a country. The check runs at Pay, at a return's confirm, and at Submit on a Desk order, delivery or invoice. Everything the rules do not refuse is allowed.
| The cashier reads | When |
|---|---|
| "Line 1: AMOX-250: Only a pharmacist may sell this." | A counter assistant sells a prescription line |
| "… Only a pharmacist may sell this: your licence ran out on 2026-10-21." | The pharmacist's license has expired |
| "… needs a prescription. Add the prescription number in Sale details." | A prescription line has no prescription number in Sale details |
| "… Prescription RX-00012 was valid until 2026-10-01." or "… is dated 2026-10-25, after today." | The prescription has expired, or is dated in the future |
| "… Prescription RX-00012 has nothing left to dispense." or "… has only 9 of this left." | Every fill is used, or the sale is more than what is left |
| "… Prescription RX-00012 is for another patient." or "… needs a named customer, not a walk-in sale." | The prescription belongs to another patient, or the sale has no named customer |
| "… needs the customer's national or residence ID. Add it on their patient record on the Desk." | A controlled line, and the patient has no ID on record |
| "… needs the customer's consent to keep their records. Add it on their patient record on the Desk." | The schedule needs consent, and none is on record |
| "… needs the prescription's date in Sale details: 2026-10-19." | The schedule's register books the prescription's date, and none is in Sale details |
| "… No more than 20 may be sold at once." or "The patient has reached the limit for CD Schedule 2 until 2026-11-11." | The sale is over the schedule's cap, or the patient reached its frequency limit |
| "… Prescription RX-00012 was written on 2026-10-19. Correct the date in Sale details." | The date typed in Sale details is not the prescription's |
| "… Prescriptions RX-00012, RX-00015 were written on different days. Sell each in a sale of its own." | The sale names prescriptions written on different days, where a date is booked or typed |
| "… Dispensed medicine cannot be taken back." | A till return, or a Desk credit note, of dispensed medicine |
| "… Sell this at the dispensary." | Prescription medicine is sold on a profile for the front of the store |
| "… needs a prescription. Add a prescription number field." | Submit on the Desk, with no prescription number |
Each sale that dispenses against a prescription makes one Dispensing record. It counts against the prescription and the patient's caps from the moment the sale is allowed, so two tills cannot dispense the same fill. A sale that was never booked keeps its fill until its POS day is closed, so close every POS day. If a fill is stuck, the pharmacist in charge can set that Dispensing to Released. A return gives the quantity back where the schedule allows returns, once the return is booked.
A prescription that is edited after its first dispensing is not dispensed again. The till says it "was changed after it was dispensed. Enter a new one." The record keeps its change history.
What you set up first
- Install the app. Its service reads the prescriptions and the names of your patients, so your iVendNext partner installs it and runs its service for you, in your region: the App library lists it as an app you get through your partner. Your partner's copy is the developers' sample S39 under the partner's own prefix, which takes the place of IVENDNEXT RXC in the names on this page (see About Retail Extensions). The install adds the record types IVENDNEXT RXC Settings, Drug Schedule, Pharmacist, Premises Licence, Patient, Prescription and Dispensing, fields on Item, Item Group, Sales Order, Delivery Note and Sales Invoice, five sale details, a report, two license reminders and four roles. Everything comes in switched off.
- Make a user for the app. Tick Is Desk User, give it the role IVENDNEXT RXC Integration alone and save. Then generate its API key: on the user, open Settings and press Generate Keys. Give this user no User Permissions, because a sale the app cannot see cannot be counted.
- Search Desk for Role Permissions Manager. Give IVENDNEXT RXC Integration read on Item, Item Group, Customer, POS Profile, POS Invoice, POS Opening Entry, Sales Order, Delivery Note and Sales Invoice.
- Search Desk for Registered Application and open IVENDNEXT RXC Counter. Choose the app's user as its Application User and save. Your partner then presses Connect again on the app's record.
- Give your people their roles. Pharmacists get IVENDNEXT RXC Pharmacist. The pharmacist in charge gets IVENDNEXT RXC Pharmacist in Charge. That person adds each pharmacist on IVENDNEXT RXC Pharmacist, with a user, a license number and a Valid until date, and enters the Premises Licence. Only that role writes the list, so nobody adds themselves. A row ticked delegate does not sell pharmacist-only medicine.
- Make your drug schedules, as described under Drug schedules. Make the settings record titled Default. Enter your hours from UTC, and list any walk-in customers besides each POS Profile's own.
- Narrow the till services before you switch either on. On Pharmacy counter rules (dispensary), choose the dispensary's POS Profile. On (front), choose your other profiles. A check switched on with no POS Profile answers every till.
- Switch the services on. Search Desk for Retail Extension Subscription, open each of the five services, read what it is sent, tick the consent and switch it on. The three Desk services are included.
A POS Profile answers at most three checks, and they share 10 seconds. This app takes one on each profile, so there is room for the age check and one more. Keep the dispensary's profile on POS Offline Selling: Disabled, because a pharmacy sells offline nothing this app must check.
The patient's record
A patient's national or residence ID, date of birth, authority to possess and consent go on their IVENDNEXT RXC Patient record. There is one record for each customer, and a pharmacist enters it on the Desk. The till cannot take or show these fields. Only the pharmacist roles, the Records Officer, the app's user and the site's System Manager read the record. Do not give another role a right on it. Three paths still tell others something. The Pharmacy group on a customer's record shows anyone who reads customers how many prescriptions the customer has, and never which. Never assign a patient record to anyone. One engine call returns any record to any signed-in user, so keep Desk logins to your own staff. Never make a patient record for a walk-in customer, because the regulated stock register, when it comes, would print that ID on every walk-in sale.
Drug schedules
Search Desk for Drug Schedule and make one schedule for each class, for each way your law classifies medicine. Set the schedule on the item, in Drug schedules, or on an item group, which covers the groups below it. For items with variants, add Drug schedules in Item Variant Settings. A schedule on the item beats one on its group, and where an item has several schedules the strictest applies.
These notes say what some markets ask. They report the laws as read in October 2026. Check them with your adviser.
| Market | What to set |
|---|---|
| Egypt | Tick Needs the patient's recorded consent where no law requires the record: it must be written and explicit (Law 151 of 2020, Art. 12). Make a Schedule 3 class for benzodiazepines, pregabalin, codeine, zolpidem and the other medicines the decree lists (Decree 44 of 2026). Its dispensing rules are not yet read from the law: set them with your adviser. |
| Mexico and Saudi Arabia | Tick the consent for what goes beyond dispensing, such as an image kept or a history used for later sales (Mexico, LFPDPPP arts 8 and 9; Saudi Arabia, Personal Data Protection Law Art. 6(2)). |
| Kenya | Tick the consent if your pharmacy is a health care provider under the Digital Health Act (s. 31). |
| Jordan | Consent is likely not needed for dispensing records, because the law lets a licensed medical professional keep health data without it (Law 24 of 2023, Art. 6(a)(2)). That is our reading, not a ruling. Tick it if you want the consent anyway. A claim to a private insurer, or a recall trace to a manufacturer, needs the patient's consent and a record of it (Art. 14). |
| UAE | Tick Needs the customer's national or residence ID on every schedule (Federal Law 2 of 2019, Art. 21). A narcotic prescription never repeats and is kept with its register entry number (Federal Decree-Law 30 of 2021, Art. 37). On your narcotic schedule, set Most fills a prescription may authorise to 1, and never to 0, because 0 means no cap. Set Most dispensings of one prescription to 1, and have the pharmacist tick Original retained at the pharmacy on each such prescription. Give a psychotropic schedule Most fills 1 too, unless the Minister's list allows a repeat. On a controlled or semi-controlled habit-forming schedule, leave Most fills empty: a prescription with no Fills authorised is one fill, and the pharmacist enters more only when the prescriber marked a repeat (Federal Decree-Law 38 of 2024, Art. 79). |
| Jordan and Mexico, register date | Tick Its register books the prescription's date where your register prints the date a prescription was written. Jordan's narcotics and psychotropics register does (Form 9), and so does Mexico's control book (RIS Art. 117 I). The till then refuses a sale until the date is in Sale details. |
| Saudi Arabia | Controlled prescriptions are dispensed through SFDA's Raqeeb platform, on paper only while it is down. A prescription in this app is the shop's working copy for the counter's rules, not the lawful record. This is our reading. The app does not connect to Raqeeb. Enter a prescription dispensed on paper in Raqeeb once it is back. |
| Jordan, altered prescriptions | A special prescription that anyone but its prescriber struck out or amended, signed and stamped, is refused. That is the pharmacist's check at the counter, because the app does not see the paper. |
Record the patient's consent before you enter the prescription. The app checks it at Pay and on the Desk, never when a prescription is saved. A consent day after today counts as none. When a patient withdraws consent, clear the date: their next sale under that schedule is refused. What a law makes you keep stays for its period. What you kept only on consent has no basis left, so delete it.
Where it shows
- At the till: a refusal at Pay, or at a return's confirm. The prescription number goes in the basket's Sale details, and the cashier types the prescription's date there as Rx Date.
- On the Desk: prescriptions, which a pharmacist enters before the sale; dispensings with their status; the pharmacist list and the premises license; each customer's prescriptions and dispensings under Pharmacy on their record; each patient's record, for the pharmacist roles only; and a refusal at Submit.
The prescriptions register
The report IVENDNEXT RXC Prescriptions Register lists one row for each sale that dispensed against a prescription, in the order they were taken. It suits a daily prescriptions register such as Jordan's Form 7. Filter it by Day and print it from the report view.
| Column | What it shows |
|---|---|
| Patient's name | The customer's name |
| Prescriber | The prescriber of each prescription, written when it was taken |
| What it dispensed | Each item, its quantity and its prescription |
| Directions (the dose) | The prescriber's directions on the prescription. It is empty where the prescription has none. |
| Day (the shop's) | The POS day of the sale |
| Pharmacist | The seller's name from the pharmacist record, when it is active, not a delegate and in date. On the Desk, the pharmacist who submitted the first document. |
The report has no age and no price. A report cannot read the patient's record, so write the age in from it. The price is on the sale named by Sale reference or Desk document. A sale that names two prescriptions is one row, so sell each prescription in its own sale where your register wants an entry for each. Close every POS day before you print a day's register, and strike any row marked Reserved whose Sale reference has no booked sale. Only the pharmacist roles read the report. A clerk is refused.
What leaves your shop
The service runs where your iVendNext partner hosts it, in your region. At Pay, and before each refund the till pays, the till sends the priced sale: the cashier's user, the customer and their group, the sale details with the prescription number, the POS day, each line's item, group, quantity and unit, and on a refund the original sale. At each Desk submit, iVendNext sends the fields each Desk service names.
With the app's user, the service then reads the prescriptions the sale names, the operator's pharmacist record, the patient's dispensings, the schedules, the items, the sales and days those dispensings name, and every POS Profile's default customer. For each patient field the sale needs, iVendNext answers only whether it is filled in. The ID, date of birth, authority and consent never leave your site. The service never asks for them, but its key could read them, so keep that key as you would a pharmacist's password. The service writes only its own Dispensing records, and fills one field on a Desk document, the prescription's date. It keeps nothing between calls but a minute's copy of the settings.
The prescription number reaches every check on the POS Profile, the age check included, as a sale detail.
Limits
- The till cannot fill the prescription's date. The cashier types it, and the app checks it against the prescription. On the Desk it is filled at Submit.
- A POS Invoice made on the Desk POS screen, or through the API, is not checked. Sell medicine at the till, or on a Sales Invoice.
- When the service is down, the dispensary stops taking payment, and the front till lets sales through, flagged on Sales to review.
- The front of the store sells offline unchecked. Keep prescription and controlled stock only in the dispensary's store, or turn offline selling off on every profile that sells medicine.
- The till keeps a check's answer for the basket, not for the cashier who asked.
- Whoever may write an Item may change its Drug schedules rows, and removing a row removes that drug's rules. Keep Item writing to your item managers.
- The prescription image is private only when it is attached on the Desk with its lock closed. A file attached through the API is public unless the call says it is private. Keep the lock closed.
- A customer renamed or merged after a dispensing has their dispensed prescriptions refused as changed. Enter new ones.
- Where a patient record exists, the Desk refuses to delete the customer. Before you merge two customers who both have one, keep one record: the Records Officer deletes the other.
- The site's System Manager reads patients' records and can give any role a right on them. Keep that role to few people.
- A POS day left open keeps its reservations, so close every day.
- The engine's own Returnable box on an item, off by default, refuses a till return of the item before any check is asked.
How long to keep prescriptions
No role that works the counter can delete a prescription or a dispensing. A prescription entered by mistake is set to Cancelled, and a canceled prescription never sells. These are the periods the laws set, read in October 2026.
| Market | Keep a prescription | Counted from |
|---|---|---|
| UAE | 25 years (Federal Law 2 of 2019, Art. 20). In Dubai this covers all prescriptions, controlled drugs included. | The patient's last health procedure |
| Egypt | 10 years, the controlled-drug prescriptions and the books (Law 182 of 1960, Art. 31) | The book's last entry |
| Saudi Arabia | The original 3 years, and the pharmacy's prescriptions register 5 years (Executive Regulation, Art. 21) | Not stated in the text read |
| Ghana | 2 years (Act 489, s. 32(b)) | The full dispensing |
| Kenya | 2 years for a prescription that cannot be repeated (Rules, r. 6(6)) | Not stated in the text read |
| Nigeria | At least 2 years for the controlled-drug records (reg. 26) | The prescription's date or the last entry |
| Jordan | At least 5 years for the narcotic and psychotropic prescriptions, registers and documents. They are destroyed in the inspector's presence (Law 12 of 2013, Art. 74). | The last entry |
Elsewhere no prescription period was found. Keep records as long as your pharmacy law and your register need, and no longer, because a data-protection law ends the keeping when its purpose ends. Egypt erases what it kept only because a law says so, and keeps it unreadable and not identifying until then. In Nigeria, where no law sets a period, it is 6 months after the purpose. In Kenya, data sent to the national Shared Health Record is kept 20 years.
After the period, you act. Nothing runs on a timer.
- Where your law says how a record is destroyed, do that first. In Saudi Arabia it is a three-member committee that the director appoints, with minutes. In Jordan it is in the inspector's presence.
- Give one person the role IVENDNEXT RXC Records Officer for the act. It reads and deletes prescriptions, dispensings and patient records, and nothing else.
- Delete a prescription and all its dispensings together, the dispensings first. Never delete a dispensing while its prescription stays, because its fill would count again. An attached image goes with its prescription. A dispensing names only the first prescription its sale used. Look for the others in its lines, and keep the dispensing until the last of their periods ends.
- When the last of a patient's periods has ended, the Records Officer deletes their IVENDNEXT RXC Patient record. No other role can.
- The Desk still has copies. A System Manager deletes the Deleted Document rows, and the site's Administrator deletes each record's change history.
- The prescription number, prescriber, license and directions also stay on the sales orders, deliveries and invoices that carried them. What your law lets you keep of them is yours to decide.
- Take the role back.
A patient's request to erase does not shorten a period that a law sets, in seven of the eight markets read. Egypt's law lists no exception to erasure, so ask your adviser there. See Your duties under data-protection law.
How to remove it
Never remove this app while a period runs. Removing it deletes every prescription, patient record and dispensing with it. Take the export it offers, and keep it as long as the longest period.
- In the App library, find the app under Installed and press Details.
- On the app's record, press Export and uninstall and confirm. iVendNext first exports the app's records to a file.
- iVendNext removes the record types, the fields, the services and the feed registration. The sale details stay, switched off, because booked sales name them.
- Make a new API key for the app's user, or disable the user.