Code 128Linear (1D)Introduced 1989

GS1-128

Code 128 carrying GS1 Application Identifier element strings — the standard barcode of global logistics.

GS1-128 Specification

Character setFull ASCII via Code 128; AI element strings are largely numeric with defined formats (e.g. YYMMDD dates)
Data lengthVariable; each AI has its own fixed or predefined-length rule, and symbol size is bounded by label space
Check digitMandatory Mod 103 check character (Code 128) plus AI-embedded check digits such as the GTIN Mod 10
DensitySame as Code 128 — ≈24 numeric characters per inch in code set C
Module width (X-dimension)0.25-0.50 mm; 0.33-0.50 mm is typical on logistics labels
Print ratioVariable-width bars and spaces
MagnificationGS1 logistics label practice: 100% nominal X = 0.33 mm with 80-200% magnification allowed depending on printing process
Quiet zone10X on each side
StandardGS1 General Specifications; symbology basis ISO/IEC 15417
OriginGS1 (UCC/EAN joint standard, built on Code 128), 1989
Sample data(01)09521234543213(3103)000123

Try It: Generate a GS1-128 Barcode

This live generator is preconfigured for GS1-128. Adjust size, colors, and text — then download as PNG or SVG. Free, no signup, all encoding happens in your browser.

Open the full GS1-128 generator →

What Is GS1-128?

GS1-128 (formerly UCC/EAN-128) is not a separate symbology but a strict application of Code 128 governed by the GS1 General Specifications. A GS1-128 symbol starts with the FNC1 character, followed by one or more element strings, each prefixed by an Application Identifier (AI) that defines the meaning and format of the data that follows — (01) for GTIN, (10) for batch or lot number, (17) for expiry date, (00) for SSCC, and over a hundred more.

Because the AI dictionary is standardized worldwide, any trading partner can parse a GS1-128 label without prior agreement on the data layout. It is the required marking for SSCC pallet and carton labels in GS1-based supply chains, the carrier for best-before and lot data in food and pharma traceability, and the base symbology for EANCOM/EDI-linked shipments. When printed to spec, a GS1-128 label on a carton in São Paulo scans identically in Berlin.

Common Applications

  • SSCC (AI 00) pallet and carton labels in global supply chains
  • Batch (10), expiry (17), and serial (21) traceability in food and pharma
  • Retail logistics, cross-docking, and EDI-linked shipments

GS1-128 FAQ

Do I include the parentheses when encoding (01)09521234543213?

No. The parentheses are a human-readable convention that visually separates AIs — they are not encoded in the bars. The encoder writes FNC1, then the AI digits 01, then the data. If you paste a string with parentheses into a compliant generator, the AIs are parsed but only the digits reach the barcode.

When do I need an FNC1 separator inside the data?

AIs come in fixed-length and variable-length flavors. Fixed-length AIs (like 01, exactly 14 digits) chain directly into the next AI. Variable-length AIs (like 10, lot number) must be terminated by FNC1 when another AI follows, so the scanner knows where the field ends. Generators insert this separator automatically.

GS1-128 vs ITF-14 for cartons — which should I use?

Both can carry a GTIN-14. ITF-14 is the low-cost choice for corrugated cartons printed directly on a press, tolerating rough print at the cost of a wider symbol and no extra data. GS1-128 produces a narrower symbol and can carry additional AIs — lot, expiry, SSCC — which is why it dominates anything beyond simple fixed-content cartons.