Sign In
Products
ZPL ViewerBarcode GeneratorImage → ZPLZPL cheat sheetLabel DesignerTemplate Gallery
Developers
API QuickstartAPI ReferenceMCP ServerBulk GenerationWebhooksSDKs & ExamplesLimitsDirectPrint agent NewGitHub ActionVS Code extensionOn-Premise
Solutions
Logistics & ShippingE-CommerceERP & WMSManufacturingRetailHealthcare & LaboratoryAll solutions
Tools
ZPL Diagnostics HubZPL DebuggerSize & DPI AnalyzerDPI ConverterBarcode fit calculatorShipping Label AnalyzerFont InspectorOrientation DebuggerCalibration AssistantPrinter Compatibility CheckerBarcode Readability CheckerPrinter Language DetectorThermal Printer Test PackZPL ToolsEPL ToolsTSPL ToolsCPCL ToolsPrinter Language ConverterAll ToolsGuidesPricing
Language
EnglishTürkçeDeutsch
Home›Solutions›Pharmaceutical Pack and Serialization Labels

Pharmaceutical Pack and Serialization Labels

Verify the GTIN + serial + batch + expiry chain in the Data Matrix on screen, before it is printed.

The problem

In serialization every pack is unique: GTIN, serial number, batch and expiry travel in a single Data Matrix. A miscoded symbol does not fail on the packaging line — it fails at the wholesaler's goods-in or in the track-and-trace report, where the fix is not a reprint but a batch-return process. The most insidious error is invisible: a GS1 Data Matrix and a plain Data Matrix look identical; only the symbology identifier the scanner reports (]d2 vs ]d1) reveals the difference.

What does Labelixa do?

Is the code really GS1?

When FNC1 is requested via the `^BX` escape character the preview engine produces a true GS1 Data Matrix; when it cannot, it does not silently draw a plain symbol — it returns a warning.

The AI chain in one symbol

(01) GTIN, (21) serial, (17) expiry and (10) batch travel in a single code; the reading system resolves each field without separators.

Small pack faces

The area a carton reserves for the code is narrow. Change the module size and compare renders on screen; catch readability problems in design, not in the warehouse.

Serial data never stays on the server

The rendering service is stateless: the ZPL you send is never written to disk or logged — serial numbers leave no trace in our system.

Example label

Pharmaceutical Pack and Serialization Labels

This image was produced from the ZPL beside it with the Labelixa engine.

Try your own ZPL code →
ZPL
^XA
^FO25,20^A0N,24,22^FDPAINEX 500 MG 20 TABLETS^FS
^FO25,52^A0N,18,16^FDGTIN: 08699999000010^FS
^FO25,78^A0N,18,16^FDSN: 1234567890  BN: A24001^FS
^FO25,104^A0N,18,16^FDEXP: 2027-05^FS
^FO25,136^BXN,4,200,,,,_^FD_1(01)08699999000010(21)1234567890(17)270531(10)A24001^FS
^XZ

Commonly used symbologies

SYMBOLOGYData Matrix

The serialization code; the standard carrier on the pack

SYMBOLOGYCode 128

Case- and pallet-level GS1-128 labels

SYMBOLOGYQR Code

Link to the patient information leaflet

How to integrate

  1. Paste your pack label template into the preview tool and see it at its real size.
  2. Define the escape character in `^BX` and start the data with FNC1; if no warning appears the symbol is a GS1 Data Matrix.
  3. Compare the AI order (01)(21)(17)(10) with what your system produces; the date format is YYMMDD.
  4. Once the template is final, generate from your serialization system via the API — one request can carry many labels.

Go to the API reference →

Frequently asked questions

How do I know the code complies with track-and-trace rules?

A symbol whose first codeword is FNC1 is reported by the scanner as `]d2`; a plain Data Matrix reports `]d1`. When Labelixa cannot produce FNC1 it returns a warning — there is no silent fallback.

Do you store serial numbers?

No. The rendering service is stateless: the ZPL you send is never written to disk or logged.

Does Labelixa certify FMD/track-and-trace compliance?

No. Labelixa produces the code and helps you verify it; the regulatory compliance decision remains the licence holder's responsibility.