GS1-128 (formerly known as UCC/EAN-128) is a barcode symbology built on Code 128 that encodes structured data for logistics, warehousing, and supply chain operations. Unlike standard retail barcodes that typically carry only a GTIN, GS1-128 uses Application Identifiers (AIs) to include additional information such as batch numbers, expiry dates, serial numbers, and shipping container codes in a single symbol.
How GS1-128 Works
GS1-128 encodes data in a standardised format governed by the GS1 General Specifications. Each data element begins with an Application Identifier — a two- to four-digit prefix that tells the reader what type of information follows. The AI is enclosed in parentheses in human-readable text (but the parentheses are not encoded in the barcode itself).
Common Application Identifiers include:
| AI | Data Element | Example Format |
|---|---|---|
| 00 | SSCC (Serial Shipping Container Code) | 18 digits |
| 01 | GTIN (Trade Item) | 14 digits |
| 10 | Batch/Lot Number | Alphanumeric, variable length |
| 11 | Production Date | YYMMDD |
| 15 | Best Before Date | YYMMDD |
| 17 | Expiration Date | YYMMDD |
| 21 | Serial Number | Alphanumeric, variable length |
| 30 | Count of Items | Variable length numeric |
| 37 | Number of Units Contained | Variable length numeric |
Multiple AIs can be combined in a single GS1-128 symbol. For example, a label might encode GTIN (01), batch number (10), and expiry date (17) together.
GS1-128 vs Standard Retail Barcodes
| Feature | EAN-13/UPC | GS1-128 |
|---|---|---|
| Primary use | Retail point-of-sale | Logistics, warehousing, healthcare |
| Data capacity | Fixed 13 digits | Variable, multiple data elements |
| Application Identifiers | None | Required for structured data |
| Typical encoding | GTIN only | GTIN + batch, dates, serials, quantities |
| Scanning environment | Consumer checkout | Industrial scanners, shipping docks |
Retail POS systems are generally not configured to parse GS1-128 symbols. These barcodes are designed for supply chain partners — manufacturers, distributors, logistics providers, and receiving warehouses — rather than end-consumer transactions.
Common Use Cases
Pallet and Case Labels
GS1-128 frequently appears on logistics labels conforming to the GS1 Logistic Label specification. A pallet label might encode:
- SSCC (00) to identify the pallet uniquely
- GTIN (01) of the contained product
- Quantity (37) of units on the pallet
Healthcare and Pharmaceuticals
Regulated industries use GS1-128 for traceability requirements, encoding serial numbers and expiry dates to support recall management and authentication.
Fresh Food and Perishables
Suppliers to grocery distribution centres often must include production dates (11), best-before dates (15), or batch numbers (10) to support stock rotation and food safety protocols.
Creating Valid GS1-128 Symbols
Accurate encoding requires:
- Correct AI selection — consult the GS1 General Specifications for valid AIs and their formats
- Proper data formatting — dates must use YYMMDD; fixed-length fields must not be truncated or padded incorrectly
- FNC1 character handling — Function 1 characters separate variable-length AIs; omission causes misreads
- Check digit verification — SSCC and GTIN components need valid check digits
Software that generates GS1-128 must support the FNC1 start character (which distinguishes GS1-128 from plain Code 128) and proper AI delimiting. Many label design packages and ERP systems include GS1-128 wizards, but manual encoding risks structural errors.
For GTIN validation during label design, the GTIN validator and check digit calculator can help verify numeric components before encoding.
Trading Partner Requirements
Trading partner requirements should always be followed. GS1-128 implementation is not universal — specific AIs, label formats, and placement rules vary by industry and by customer. Major retailers, healthcare consortia, and government agencies publish their own guidelines that may restrict which AIs are mandatory, optional, or prohibited.
Before producing GS1-128 labels for a new trading partner:
- Request their latest logistics label specification
- Confirm required AIs and data formats
- Verify physical label size, placement, and quiet zone requirements
- Conduct scan testing with their actual equipment where possible
For guidance on physical label placement, see Label Placement Guidelines.
Relationship to Other GS1 Standards
GS1-128 is one of several barcode formats within the GS1 system. While GTINs identify trade items, GS1-128 extends that identification with contextual data. Other GS1 data carriers include:
- GS1 DataMatrix — 2D symbology for small items and direct part marking
- GS1 QR Code — growing use in consumer-facing and B2B applications
- EPC/RFID — radio-frequency identification for non-line-of-sight reading
The choice between these depends on scanning distance, label space, industry norms, and trading partner systems.
Verification and Quality
Poor print quality is a common cause of GS1-128 scanning failures in logistics environments. Issues include:
- Inadequate quiet zones (minimum 10x module width on each side)
- Low contrast or reflective substrates
- Bar growth or reduction from press gain
- Incorrect symbol height for the scanning environment
The barcode colour legibility simulator can help assess whether chosen colour combinations will scan reliably. For formal verification, ISO/IEC 15416-based grading measures decode, decodability, defect, and contrast parameters.
External References
- GS1 GTIN Overview
- GS1 Barcode Standards
- GS1 General Specifications (January 2024) — authoritative reference for AI definitions, formats, and encoding rules
The International Barcodes Network includes member resources worldwide that can assist with GS1-128 implementation questions and label production for specific markets.