PHARMA-CODE vs. EAN-13 vs. GS1 DataMatrix: Which Code Solves Which Packaging Problem?
Walk a pharmaceutical packaging line and you'll find three very different kinds of code doing three very different jobs — and a surprising number of spec conversations that treat them as interchangeable. They aren't. One exists to keep the wrong leaflet out of the right carton, one exists to ring up a product anywhere on earth, and one exists to carry lot, expiry, and serial data through a supply chain. Choosing between them isn't a preference call; it's a matter of which problem you're actually solving.
PHARMA-CODE: the in-house matchmaker
PHARMA-CODE (documented by Laetus, the technology's owner — these details come from their technical literature, not an independent ISO specification) is a closed-loop packaging-control code. Its whole purpose is internal: match a package with its own labels, leaflets, and components during production. It is not a retail identifier, not a GS1 code, and not a serialization standard — it never leaves the plant with a job to do.
And it's built strangely on purpose. Per Laetus's own FAQs, PHARMA-CODE has no start/stop patterns, no human-readable line, and no check digit — and it's direction-sensitive: read left-to-right and right-to-left, the same bars yield different data. That sounds like a defect until you understand the design bargain: the code stays printable at high speed in tight spaces on cheap print processes, and the application supplies the safeguards the symbology omits — controlled line design, fixed reader orientation, and a governed code list.
The classic deployment: the code on the carton flap gets compared against the codes on every insert, often through an MES lookup, and a mismatch triggers whatever the line is configured to do — stop, divert to rework, reject, or quarantine. Note the honest verb in all of that: the system helps detect component mix-ups and matches against an approved list. Nothing about it is "error-proof," and no honest integrator will sell it as a guarantee.
EAN-13: one number, plainly
EAN-13 is the retail workhorse: it carries a GTIN-13 — a product identity — in plain syntax. One number, no attributes. It answers "what product is this?" at a point of sale and answers nothing else. No lot. No expiry. No serial. For a huge share of commerce that's exactly enough, which is why it's everywhere. But when a recall, an expiry check, or a serialization mandate enters the conversation, EAN-13 has nothing more to give.
GS1 DataMatrix: the structured carrier
GS1 DataMatrix is where the attributes live. Using GS1 Application Identifiers, a single compact symbol can carry the GTIN (01), batch/lot (10), expiration date (17), and serial number (21) — the data set that regulated healthcare packaging increasingly runs on. (Which of those a given package actually needs is set by the applicable market, product, and trading-partner requirements — not every symbol must carry every identifier.)
Technically, per GS1's implementation guidance, it's a robust little thing: an L-shaped finder pattern, ECC 200 Reed-Solomon error correction, and a quiet zone of just one X-dimension on each side, which is why it fits on a vial where a linear code never could. But GS1's own playbook is equally clear that small is earned, not free: symbol size still has to match your printer resolution, substrate, package forming, and — easy to forget — the scanners that have to read it downstream, not just the one on your line.
The distinction that bites: reading is not verifying
Here's the trap hiding in the phrase "the camera checked the barcode." A successful decode proves one scanner read one symbol one time. Formal verification is a different discipline: GS1 separates operational scanning from print-quality grading, with 2D symbol quality evaluated to ISO/IEC 15415 and the physical measurement itself requiring an ISO/IEC 15426-2-compliant verifier. Inline cameras can absolutely provide useful relative grading — trend data that tells you the printer is drifting before customers do — but per GS1's playbook they may not test every formal quality requirement. If a trading partner or regulator asks for a grade, the answer comes from a verifier, not from "it scanned fine here."
So a well-run line often has three distinct checks wearing similar-looking cameras: content verification (is this the right code for this batch?), decode confirmation (can it be read?), and quality grading (will it stay readable, measured to standard?). Knowing which one each device performs is most of the spec work.
The decision, compressed
Matching a carton to its own leaflets inside your four walls: that's PHARMA-CODE territory — closed-loop, application-safeguarded, internal. Identifying a product for open commerce with no attribute data: EAN-13. Carrying lot, expiry, and serial through a regulated chain in minimal space: GS1 DataMatrix with the Application Identifiers your market requires. And whichever symbols you print — know the difference between the scanner that reads them, the system that checks their content, and the verifier that grades them. Three jobs, three tools, and the packaging engineers who keep them straight are the ones who don't discover the difference during a recall.
Code-reading and text-inspection hardware for these applications lives in our Balluff vision and identification line. Where identification continues downstream into item-level traceability, that's a separate architecture layer — see our Turck identification and RFID category.
Sources
- Laetus — PHARMA-CODE Series 1: Introduction
- Laetus — PHARMA-CODE Series 3: FAQs
- GS1 — 2D Barcode Implementation Guideline (2D in Retail)
- GS1 — 2D Barcode Creation and Printing Playbook
All sources retrieved August 26, 2026.
Speccing code reading, content checks, or grading for a packaging line?
Tell us what prints, on what substrate, at what speed — and which of the three checks your line actually needs. We'll match the hardware to the job.
Talk to Our Team →