Pharmacode Barcode Generator
Generate Pharmacode symbols used for pharmaceutical packaging and production verification.
Barcode & Matrix Generator
Live Studio Preview
Code 128 Batch Serial Number Generator
Generate sequential Code 128 barcodes for warehouse SKUs, asset tags, inventory labels, and other internal identifiers.
Pharmacode Barcode Generator
Quick answer: Pharmacode, also called Laetus Code, encodes a single integer between 3 and 131,070 in binary bar encoding. It carries no check digit and has no GS1 or ISO standard. It is a process-control barcode used on pharmaceutical packaging lines to verify that the correct leaflet or carton is present, not to identify a product.
How to create a Pharmacode barcode
- Enter the integer to encode — it must be between 3 and 131,070. Pharmacode encodes a number, not a character string; do not enter text.
- Confirm the value is not on the list of unusable values (documented in the technical spec section below). These values produce non-legible symbols.
- Select the variant: one-track standard, one-track miniature, or two-track. Match this to the equipment and label space on your packaging line.
- Review the Smart Barcode Intelligence panel for validation and readability feedback.
- Download as PNG, SVG, WEBP or JPG at up to 4096 px, with the background set to current colour, white or transparent.
The barcode is generated in your browser. Nothing you enter is uploaded.
What Pharmacode is
Pharmacode is the common name for the Pharmaceutical Binary Code. It is also known as the Laetus Code or Laetuscode, after Laetus am Sandberg, the German company that developed and published the specification. The definitive source is the PHARMACODE GUIDE, 4th edition, published by Laetus in July 1997.
Pharmacode has no ISO/IEC standard and is not a GS1 standard. It is a proprietary format used exclusively in the pharmaceutical packaging industry.
What Pharmacode encodes — and why that matters
Most barcodes encode a string of characters. Pharmacode encodes a single non-negative integer. The valid range is 3 to 131,070. The encoding is binary: each bar is either narrow or wide. A narrow bar represents the binary value 2^n and a wide bar represents 2 × 2^n, where n is the bar's position from the right, starting at zero. The reader sums the values to decode the integer.
This design has two important consequences. First, it makes the symbol extremely compact — between 2 and 16 bars carry a complete value. Second, because the value is an integer assigned by the packaging operation (not derived from the product's identity), Pharmacode is a packaging-control barcode, not a product-identification barcode.
Pharmacode deliberately carries no check digit and is described in the Laetus PHARMACODE GUIDE as not self-checking. This was a deliberate design choice: speed and compactness on a high-speed packaging line matter more than the multi-digit check arithmetic used in retail barcodes. The scanner must read the symbol correctly in a single pass at line speed, even when the barcode is printed in a single ink colour on a packaging substrate.
Why Pharmacode exists
In pharmaceutical manufacturing, a packaging line assembles multiple components: the product, a carton, a leaflet (package insert) and sometimes an outer wrap. A mix-up — putting the wrong leaflet in the wrong carton — is a GMP (Good Manufacturing Practice) violation with serious patient-safety consequences.
Pharmacode provides in-line verification: each component carries a Pharmacode representing a number assigned to that specific article in that specific line configuration. A vision system or scanner reads the Pharmacode at high speed as each component passes. If the code does not match the expected value, the line stops or the item is rejected.
This is entirely different from a retail barcode's purpose, which is product identification for a checkout scanner or supply chain. Pharmacode does not appear in GS1's product databases. It is invisible to retail point-of-sale systems. It coexists on pharmaceutical packaging alongside — or has been superseded by — GS1 Data Matrix under EU FMD serialisation requirements, but Pharmacode and GS1 Data Matrix serve different functions and are not interchangeable.
Pharmacode technical specification
All dimensions and structural values in this section are from the Laetus PHARMACODE GUIDE, 4th edition, July 1997. The research file for this page notes that the PHARMACODE GUIDE is cited via a third-party hosted copy at pdf4pro.com (https://pdf4pro.com/view/pharmacode-guide-5bc5aa.html), not directly from Laetus. Additional confirmation for numeric values comes from Wikipedia (https://en.wikipedia.org/wiki/Pharmacode) and neodynamic.com (http://www.neodynamic.com/barcodes/Pharmacode-Barcode.aspx).
| Field | Value | Source |
|---|---|---|
| Full name | Pharmacode (Pharmaceutical Binary Code) | Wikipedia |
| Also known as | Laetus Code, Laetuscode | Wikipedia; bulkbarcode-generator.com |
| ISO/IEC standard | None — proprietary. Published as PHARMACODE GUIDE, 4th edition, July 1997, by Laetus am Sandberg, Germany. | PHARMACODE GUIDE (via pdf4pro.com) |
| GS1 standard | No | bulkbarcode-generator.com; Wikipedia |
| Encodable data type | Single non-negative integer only | Wikipedia; neodynamic.com |
| Valid value range | 3 to 131,070 | Wikipedia; neodynamic.com |
| Check digit | None — not self-checking by design | PHARMACODE GUIDE |
| Bar count | Minimum 2 bars; maximum 16 bars | Wikipedia |
| Encoding | Binary: narrow bar = 2^n; wide bar = 2 × 2^n (n = bar position from right, starting at 0) | Wikipedia |
| Read direction | Right-to-left (standard); omnidirectional reading detects orientation by directional asymmetry | Wikipedia; bulkbarcode-generator.com |
| Directional security | Scanning left-to-right yields a different number than scanning right-to-left — detects upside-down insertion | Wikipedia; bulkbarcode-generator.com |
| One-track standard dimensions | Thin bar: 0.5 mm; thick bar: 1.5 mm; gap: 1.0 mm; height: 8.0 mm (nominal) | PHARMACODE GUIDE §dimensions |
| One-track miniature dimensions | Thin bar: 0.35 mm; thick bar: 1.0 mm; gap: 0.65 mm; height: 6.0 mm | PHARMACODE GUIDE |
| Variants | One-track standard; one-track miniature; two-track | PHARMACODE GUIDE |
| Best practice | Use at least 3 bars; mix of thick and thin bars. An all-thick or all-thin symbol is not secure. | Wikipedia |
| Typical use | Pharmaceutical packaging line verification — carton flaps, instruction leaflets | PHARMACODE GUIDE; bulkbarcode-generator.com |
Unusable values
The following integer values produce non-legible Pharmacode symbols and must not be used. Source: neodynamic.com.
3, 6, 7, 14, 15, 30, 31, 62, 63, 126, 127, 254, 255, 510, 511, 1022, 1023, 2046, 2047, 4094, 4095, 8190, 8191, 16382, 16383, 32766, 32767, 65534, 65535, 131070
These values correspond to combinations of bars that produce ambiguous or degenerate patterns. Before assigning a Pharmacode value to a packaging article, confirm the value is not on this list. The generator will flag these values and decline to produce a symbol.
One-track, miniature and two-track variants
One-track standard is the most commonly used variant. The nominal bar height is 8.0 mm, with a thin bar width of 0.5 mm and a thick bar width of 1.5 mm. Gaps between bars are 1.0 mm.
One-track miniature is used where label space is restricted — for example, a narrow carton flap or a small blister pack. The bar height is 6.0 mm and all bar widths are proportionally smaller.
Two-track Pharmacode uses two parallel rows of bars, allowing a higher range of values or a more compact symbol for the same value. The PHARMACODE GUIDE (4th edition, 1997) documents the two-track structure. Two-track is less commonly deployed than one-track in practice.
When to use Pharmacode
Pharmaceutical packaging lines using in-line verification systems. Pharmacode is the appropriate choice when your line equipment — camera systems, scanners, rejection units — is configured to read Pharmacode for packaging control. If your equipment reads Code 128 or GS1 Data Matrix, use those formats instead.
Leaflet verification. An instruction leaflet folded and inserted into a carton typically carries a Pharmacode on the folded edge. The scanner reads the code as the leaflet is inserted. If the value does not match the expected number for that carton, the assembly is rejected.
Carton identification within a line. A Pharmacode on the carton blank is read when the carton is erected and again when the product is packed. The code confirms the correct carton is in use for this line configuration.
Pharmacode is not appropriate for retail product identification, supply chain tracking, product serialisation or any use that requires the barcode to carry a GTIN or be read by a retail scanner. For those purposes, use EAN-13, Code 128 or GS1 Data Matrix.
Design and print requirements
Pharmacode is designed to be read at high speed in a single ink pass on a packaging substrate. Print quality requirements are strict.
Bar widths must be accurate. The thin bar (0.5 mm standard or 0.35 mm miniature) and thick bar (1.5 mm standard or 1.0 mm miniature) widths must be printed precisely. Ink spread that makes a thin bar look wide will cause a decoding error.
Do not use low-contrast ink. Pharmacode must be readable through the packaging line's vision system or scanner, often at high speed. High contrast between bar and substrate is mandatory.
Confirm that at least 3 bars are present in the symbol, and that the pattern is a mix of thick and thin bars. The PHARMACODE GUIDE states that an all-thick or all-thin symbol is not secure.
The SVG export from this generator is resolution-independent and provides the most accurate output for plate-making and label production workflows.
Troubleshooting: why your Pharmacode is not scanning
The value is in the unusable list. Check the value against the list above. Assign a different integer that is not on the list.
The symbol is all-thick or all-thin bars. This indicates the encoded value does not produce a secure pattern. Change the value.
The print quality is poor. Thin bars that ink-spread into gaps, or gaps that are too narrow, will cause decoding errors at high line speeds. Use a verifier under production conditions before full deployment.
The variant does not match the equipment. One-track and two-track Pharmacode require different decoder configurations. Confirm which variant the line equipment expects.
The orientation is inverted. The directional asymmetry of Pharmacode means an upside-down code decodes to a different value. Confirm the orientation the scanner expects on your line.
Pharmacode versus Code 128
| Feature | Pharmacode | Code 128 |
|---|---|---|
| Data encoded | Single integer (3–131,070) | Any ASCII character string, variable length |
| ISO/IEC standard | None (proprietary Laetus, 1997) | ISO/IEC 15417:2007 |
| Check digit | None | Mandatory Mod-103 check character |
| Primary use | Pharma packaging line process control | Shipping, warehouse, inventory, GS1-128 |
| Retail scanner support | No — not read by retail or supply-chain scanners | Yes — default on all modern scanners |
| GS1 standard | No | Yes (as GS1-128 with FNC1 and Application IDs) |
| Appropriate for | In-line packaging verification on pharma lines | Any alphanumeric labelling; supply chain |
Pharmacode and Code 128 are not interchangeable. If your packaging system uses Pharmacode for line verification and also needs a supply-chain or serialisation barcode, both symbols appear on the same label or carton — Pharmacode for the in-line verification system and Code 128 or GS1 Data Matrix for supply-chain tracking.
Using this barcode in Bahrain and international supply chains
Bahrain retailers, importers, manufacturers and logistics teams should match identifiers to the rules of their trading partners. Retail GTINs must come from the proper issuing organisation; a generator creates artwork but does not assign ownership. Internal stock and asset references may use organisation-defined values when the receiving system supports them.
Use British English in operational guidance where it matches your organisation’s style, and add Arabic instructions for teams that need them. Print under the actual conditions of use. Bahrain’s heat, bright light, dust, curved packaging and reflective laminate can expose contrast or surface problems that are invisible on a monitor.
Keep quiet zones clear, avoid stretching the image, and prefer dark bars on a plain light background. Scan samples from the beginning, middle and end of a print run. For regulated retail, healthcare, publishing or logistics use, confirm the current GS1, ISBN-agency, customer or industry specification before approving production.
Before you print
- Correct symbology selected
- Identifier ownership confirmed
- Check digit verified
- Quiet zones kept clear
- Strong bar contrast
- Aspect ratio unchanged
- SVG or high-resolution PNG
- Production scanner test
Frequently asked questions
Open a question to read a concise technical answer.
01What is a Pharmacode barcode?+
Pharmacode, also called the Laetus Code, is a pharmaceutical binary barcode that encodes a single integer between 3 and 131,070. It is a process-control barcode used on pharmaceutical packaging lines to verify that the correct leaflet or carton is in the correct position. It has no ISO/IEC standard and no GS1 standard. Source: Laetus PHARMACODE GUIDE, 4th edition, 1997.
02What does Pharmacode encode?+
Pharmacode encodes a single non-negative integer. It does not encode a text string, a product name, or a GTIN. The integer is assigned by the pharmaceutical packaging operation and is meaningful only within that system. The valid range is 3 to 131,070. Certain values within that range are unusable because they produce non-legible symbols.
03What is the valid range of values for Pharmacode?+
Pharmacode can represent integers from 3 to 131,070. A list of approximately 30 specific values within that range are unusable because they produce degenerate bar patterns — they include 3, 6, 7, 14, 15, 30, 31, 62, 63, 126, 127 and continuing in a doubling pattern through 131,070. Source: neodynamic.com.
04Why is Pharmacode used in pharmaceutical packaging?+
Pharmacode serves as an in-line verification barcode on pharmaceutical packaging lines. The code confirms that the correct leaflet, carton or component is in the correct position before assembly is completed. A scanner reads the Pharmacode as each component passes; a mismatch halts the line or ejects the item. This prevents GMP packaging mix-ups, which are a patient-safety concern.
05Does Pharmacode have a check digit?+
No. Pharmacode carries no check digit and is not self-checking. This is a deliberate design choice. The format is optimised for high-speed reading in a single ink pass on a packaging line, where compact size and decoding speed matter more than the additional character needed for check arithmetic. Source: Laetus PHARMACODE GUIDE.
06Is Pharmacode a GS1 standard?+
No. Pharmacode is not a GS1 standard and does not carry a GTIN. It is a proprietary standard published by Laetus am Sandberg in the PHARMACODE GUIDE, 4th edition (1997). GS1 Data Matrix is the GS1 standard used for pharmaceutical serialisation under EU FMD. Pharmacode and GS1 Data Matrix serve different functions and may coexist on the same label.
07What is a two-track Pharmacode?+
A two-track Pharmacode uses two parallel rows of bars instead of one. This allows a higher value range or a more compact physical symbol for the same value. The PHARMACODE GUIDE (Laetus, 1997) documents the two-track structure. It requires scanner and line equipment configured to read two-track symbols. One-track is more commonly deployed in practice.
08Can Pharmacode scan in both directions?+
Pharmacode is designed with directional asymmetry — scanning left-to-right yields a different integer than scanning right-to-left. This is a deliberate security feature: an upside-down leaflet or carton produces the wrong value at the reader, triggering rejection. Omnidirectional readers exploit this to detect mis-oriented components. Source: Wikipedia; bulkbarcode-generator.com.
09What is the minimum number of bars in a Pharmacode symbol?+
Pharmacode requires a minimum of 2 bars and a maximum of 16 bars per track. The Laetus PHARMACODE GUIDE recommends using at least 3 bars and ensuring the symbol contains a mix of thick and thin bars. An all-thick or all-thin symbol is described in the guide as not secure.
10Can I use Pharmacode for retail product identification?+
No. Pharmacode encodes a single integer meaningful only within a pharmaceutical packaging line's configuration. It is not read by retail point-of-sale scanners and does not carry a GTIN. For retail product identification, use EAN-13 or UPC-A with a GS1-licensed number. For pharmaceutical supply-chain serialisation, use GS1 Data Matrix per EU FMD or the applicable national standard.