RSD Track and Trace Explained: How a Pharmacy System Handles SFDA Drug Tracking

RSD Track and Trace Explained: How a Pharmacy System Handles SFDA Drug Tracking

For a pharmacy or a pharmaceutical warehouse in Saudi Arabia, RSD track and trace is no longer a project for later. The Saudi Food and Drug Authority (SFDA) expects every movement of a tracked pack, from the warehouse that receives it to the pharmacy that dispenses it, to be reported through its Drug Track and Trace System, known as RSD. Getting it wrong is costly: the SFDA penalises facilities that do not report drug movements through the system, and penalties can extend beyond fines to the facility's licence.

The good news is that compliance does not have to mean extra work at the counter. When the pharmacy system is designed around RSD, the notification is created by the scan the pharmacist already makes. This guide explains how RSD works, what is encoded on each pack, which events must be reported, and how Sellify, the pharmacy and pharma-distribution ERP built by S-Plus, handles each step.

What RSD track and trace is

The SFDA introduced RSD in 2018 to monitor human pharmaceutical products manufactured in or imported into the Kingdom. It is built on GS1 global standards and covers pharmaceutical products on the Saudi market, including over-the-counter medicines. Every stakeholder in the chain, from manufacturers and importers to warehouses, distributors, hospitals and pharmacies, reports the operations it performs on each pack, and the SFDA's guidance encourages stakeholders to integrate their own computer systems with RSD rather than enter transactions by hand, which removes a common source of error.

Why it matters to your business

  • Counterfeit protection: each pack carries a unique, randomly generated serial number, so a duplicated or unregistered pack can be detected.
  • Recalls in hours, not days: because every pack's path is known, a recalled batch can be located down to the pharmacy that holds it.
  • Shortage visibility: the regulator sees stock moving across the market in near real time.
  • Enforcement: missing notifications are a finable violation, as the 2026 penalties show.

What is inside the GS1 DataMatrix on each pack

The small square code printed on a medicine box is a GS1 DataMatrix. It carries several data fields, each introduced by a GS1 Application Identifier (AI). The SFDA integration guide shows the standard sequence below.

AIFieldWhat it tells you
(01)GTINThe product and pack size, a 14-digit Global Trade Item Number.
(21)Serial numberThe unique identity of this individual pack.
(17)Expiry dateThe pack's expiry date.
(10)Batch or lotThe production batch the pack belongs to.

Two other GS1 keys matter. The GTIN identifies the product, and the system must check its check digit so that a mistyped code never becomes an item. The GLN (Global Location Number) identifies a location or party, such as your warehouse, a customer pharmacy or a supplier, so that a dispatch can say exactly where a pack is going.

The events: what must be reported and when

RSD works on operations. Each one is keyed by GTIN and serial number, or by batch, and each changes who holds the pack. A key rule from the SFDA: a receiving party must send an accept notification before it can work with the product sent to it. Until it does, the product sits between the two parties and neither can perform any operation on it.

Business momentRSD meaning
Goods arrive from a supplierAccept: you confirm receipt of the specific serials.
A warehouse sells to a licensed pharmacy or hospitalDispatch to the customer's GLN, which the customer then accepts.
A pharmacy sells to a patientPharmacy sale (dispense): the pack leaves the supply chain.
Stock moves between your own warehouses or branchesTransfer, then receipt at the destination.
A customer returns packsReturn of the specific serials.
A sale is cancelledCancellation of the earlier notification.

The exact service names, message fields, authentication and signing are defined in the SFDA's integration documentation and are configured for each facility during onboarding with the authority.

How Sellify handles RSD, step by step

1. Linking items to GTINs and locations to GLNs

From the RSD section, each item is linked to its GTIN-14, validated by its check digit, and serial tracking is switched on for it. Each warehouse, customer and supplier can hold its GLN, so a dispatch always knows its destination.

2. Receiving by serial

After the purchase invoice records the batch and expiry date, staff scan the GS1 DataMatrix of each box in the serial receiving screen, and the system creates the accept notification. Scanning works with a barcode reader or with a phone camera, which matters in a warehouse receiving dozens of cartons.

3. Selling at the counter

For a tracked item, the POS asks the pharmacist to scan every box sold, including free bonus units. Each box is taken from its real batch. The system then creates a dispatch notification when the buyer is a licensed customer with a GLN, or a dispense notification when the buyer is a patient or a cash customer. The regular sales invoice screen refuses tracked items, so they cannot slip out without scanning. The sales rep app follows the same rule when a rep places an order.

4. Returns, cancellations and transfers

  • Full return: covers every box on the line. Partial return: the user picks the specific serial numbers. Both create a return notification.
  • Deleting an invoice creates a cancellation notification for its packs.
  • Transfers between your warehouses require scanning the boxes before sending, and the destination receives the same serials.

5. A queue that never stops the counter

Every notification goes into an event queue with retry attempts and back-off, processed every minute. If the connection to the regulator is slow or down, the sale still completes and the notification is sent later. The pharmacist is never told to make a patient wait because a government endpoint is busy.

6. Screens for the compliance officer

  • Notifications: each event with its status (sent, pending, failed).
  • Trace: the full history of a single box, for example received, transferred, sold.
  • Coverage: registered serials compared with batch stock, which reveals boxes that were received without scanning.
  • Settings: the connection mode, with changes recorded in the audit log.

What the system prevents

Common mistakeWhat happens in Sellify
Selling a box that was never received by serialRefused: the serial is not registered in your stock.
Selling the same box twiceRefused: the serial is already sold.
Selling an expired boxRefused, together with FEFO dispensing for batch-tracked items.
Forgetting to scan the bonus unitsThe POS asks for every unit, paid and free.
Losing notifications during an outageThey wait in the queue and are retried automatically.
Selling tracked items offline without scanningThe offline POS mode does not allow serial-tracked items.

Serial tracking works best on top of clean batch data. If you are still building that foundation, start with our guide to FEFO and pharmacy expiry management.

Who does what: RSD responsibilities inside the business

Track and trace fails most often at the hand-offs between people, not inside the software. Before go-live, agree who owns each step and give each role only the permissions it needs.

RoleRSD responsibilityWhat to check daily
Storekeeper or receiving staffScan every box at receipt after the purchase invoice is posted, and scan boxes before sending a transfer.No delivery is shelved before serial receiving is complete.
Pharmacist or cashierScan every box of a tracked item at the counter, including bonus units, and choose the right customer so the event is a dispatch or a dispense.Returns are entered against the original invoice, with the correct serials.
Compliance officerWatch the notifications and coverage screens and follow up on failed events.Failed or pending events older than a day, and coverage gaps.
Branch or warehouse managerApprove exceptions and make sure staff are trained in log mode before live sending.The audit log for deleted invoices and settings changes.

Two habits make the biggest difference. First, never put a delivery on the shelf before it is received by serial, because a box that is not registered cannot be sold later and will stop the queue at the counter. Second, close every day with a look at failed events, so a configuration problem is spotted in hours rather than discovered weeks later. If your branches sometimes lose connectivity, read how sales continue in our guide to an offline pharmacy POS, and note that serial-tracked items wait for the connection to return.

Going live with the SFDA: a practical path

Sellify's internal RSD side is complete: GTIN linking, serial scanning, the event queue, retries, history and coverage. The connection supports three modes: off, a log mode that simulates the queue for staff training, and live sending. A connector for the SFDA's service interface is prepared and ready to be configured against the authority's specification. Going live follows these steps:

  1. Register the facility with the SFDA's track-and-trace programme and confirm the requirements that apply to your activity (pharmacy, warehouse or both).
  2. Obtain the integration documents and credentials for your facility from the SFDA.
  3. Map the fields in Sellify's RSD configuration to the official specification.
  4. Test on the authority's environment, then switch from log mode to live.
  5. Train staff in log mode first, so scanning habits are in place before live notifications start.
  6. Watch the coverage screen during the first weeks to catch any receipts done without scanning.

The warehouse app makes steps five and six easier, because receiving and counting are done by scanning on a phone. See our article on sales rep and warehouse mobile apps.

The GCC context

Saudi Arabia is not alone. In the UAE, the Ministry of Health and Prevention leads Tatmeen, a national platform for tracking and tracing pharmaceuticals using GS1-based serialisation, launched together with the Department of Health Abu Dhabi and the Dubai Health Authority. Other Gulf states have their own regulators and timelines, so check the current requirements with your local authority. Sellify's track-and-trace integration targets the SFDA today; its building blocks (GTIN, GLN, serial scanning, an event queue and pack history) are the same ones any GS1-based programme relies on, which makes adaptation a matter of scoping rather than rebuilding. Talk to us before planning a rollout outside Saudi Arabia.

Frequently asked questions

Does RSD apply to small, single-branch pharmacies?

The SFDA states that RSD covers pharmaceutical products on the Saudi market, and the 2026 fines were issued to pharmacies. Any pharmacy that receives and dispenses tracked medicines should treat reporting as mandatory and confirm its obligations with the SFDA.

Do I need to scan every box, or is the batch enough?

For serialised products, each box has its own serial number and is reported individually. Sellify asks for a scan of every box of a tracked item at receipt, sale, transfer and return, including free bonus units.

What happens if the SFDA connection is down during a sale?

The sale goes through. The notification waits in the queue and is retried automatically, and failed events are visible on the notifications screen.

Can a pharmacy that buys from a warehouse sell a pack before accepting it?

Under the SFDA's rule, a receiving party must send an accept notification before working with the product. In Sellify, a serial-tracked box must be received by serial before it can be sold.

Is Sellify's RSD connection already sending to the SFDA?

The internal workflow is complete and the connector is ready to configure. Live sending is activated per facility once its SFDA registration and credentials are in place and the connection is tested on the authority's environment.

Make RSD part of the scan, not extra paperwork

RSD compliance is decided at the counter and the receiving dock. If your team already scans every box, the system should do the rest. RSD is one part of a full pharmacy ERP, alongside batches, ZATCA invoicing and permissions. Request a Sellify demo and we will walk through a serialised receipt, a sale and a return on your own scenarios.

Related Posts

Welcome Back

Sign in to access your account

Create Account

Join and enjoy the full experience

+965 expand_more
🇰🇼 Kuwait +965
🇸🇦 Saudi Arabia +966
🇦🇪 United Arab Emirates +971
🇶🇦 Qatar +974
🇧🇭 Bahrain +973
🇴🇲 Oman +968
🇪🇬 Egypt +20
🇯🇴 Jordan +962

lock_reset

Reset Password

Enter your email to receive a recovery link