Skip to main content

GS1-128

LogisticsAlso known as: EAN-128

Published by the QRinsec Editorial Team — practical documentation about QR codes, barcode standards, and QRinsec’s client-side tools. Content is reviewed against product testing and published technical documentation from sources such as GS1, Denso Wave, and ISO standards where applicable.

Have questions or corrections? Contact us.

GS1-128 (formerly UCC/EAN-128) is a constrained use of Code 128 that carries structured data through GS1 Application Identifiers (AIs).

Important Notice

A missing FNC1 character after the start code makes the barcode plain Code 128 — not GS1-128. Trading partner systems will reject it.

Important Notice

Always validate AI structure with a GS1-compliant parser. Visually correct barcodes can contain AI data errors.

Key Facts

Base Symbology
Code 128 (Subset A/B/C)
Data Structure
GS1 Application Identifiers
Check Character
Modulo 103 (Code 128)
Standard
GS1 General Specifications
Common Use
Supply chain / retail logistics

What is a GS1-128 barcode?

GS1-128 (formerly known as UCC/EAN-128) is a linear barcode standard based on Code 128 that uses GS1 Application Identifiers (AIs) to encode structured supply chain data — such as GTIN, batch/lot number, expiry date, serial number, and weight — in a single barcode. It is mandatory on master-case and pallet labels for major retailers (Walmart, Amazon, Target) and is the backbone of GS1 global supply chain traceability.

Application Identifiers (AIs) explained

GS1-128 data is structured using Application Identifiers — 2–4 digit numeric prefixes that define the meaning of the following data:

  • (01): GTIN-14 (14-digit product identifier).
  • (17): Expiry date (YYMMDD).
  • (10): Batch or lot number.
  • (21): Serial number.
  • (310n): Net weight in kg.
  • (00): SSCC (Serial Shipping Container Code) for pallets.

AIs with variable-length data are separated by a Function Code 1 (FNC1) character acting as a delimiter.

GS1-128 vs. plain Code 128

GS1-128 is a strict subset of Code 128 with three additional rules: (1) a mandatory FNC1 character immediately after the start character, (2) data structured exclusively using GS1 Application Identifiers, and (3) the human-readable text must show AIs in parentheses e.g. (01)03600029145452(17)251231. A plain Code 128 barcode without FNC1 and AI structure is not GS1-128, even if it visually resembles one.

GS1-128 vs. ITF-14 vs. GS1 DataMatrix

ITF-14 encodes only the 14-digit GTIN-14 with no additional data. GS1-128 can encode GTIN-14 plus multiple AIs (batch, expiry, serial) in one symbol. GS1 DataMatrix serves the same role as GS1-128 in healthcare and pharmaceutical applications, but uses a 2D symbol instead of linear — enabling more data in a smaller footprint.

FeatureGS1-128ITF-14GS1 DataMatrix
SymbologyCode 128 (linear)ITF (linear)Data Matrix (2D)
Data Beyond GTIN?Yes (multiple AIs)NoYes (multiple AIs)
Min Bar Height32 mm32 mmN/A (2D)
Primary UseCase / pallet labelsCorrugated casesPharma unit-dose

When to use GS1-128

GS1-128 is required for:

  • Retailer Advance Ship Notices (ASN) — carton and pallet labels.
  • Healthcare logistics (hospital receiving, pharmacy dispensing).
  • Cold-chain traceability with expiry date and batch number.
  • Any GS1-compliant supply chain application requiring more data than GTIN alone.

Always confirm AI requirements with each trading partner — different retailers require different AI combinations.

Printing requirements

Minimum X-dimension: 0.495 mm (GS1 specification). Maximum symbol width: 165 mm. Minimum bar height: 32 mm. Quiet zones: 10× X-dimension each side. Human-readable text must be present below the bars, with AIs shown in parentheses. Use Code 128 Subset C for numeric-only AI data to maximise density.

Common scanning failures

Missing or misplaced FNC1 character makes the barcode decode as plain Code 128 rather than GS1-128 — trading partner systems will reject it. Incorrect AI delimiters (missing FNC1 between variable-length AIs) cause data parsing errors. Always validate GS1-128 output with a GS1-compliant barcode verifier and a software AI parser.

Frequently Asked Questions

What is the difference between GS1-128 and Code 128?

GS1-128 is a restricted subset of Code 128 that mandates a leading FNC1 character and requires all data to be structured using GS1 Application Identifiers. A Code 128 barcode without FNC1 and AI structure is not GS1-128.

What does the FNC1 character do in GS1-128?

The FNC1 after the start character signals to scanners that the barcode is GS1-128 (not generic Code 128). Between variable-length AIs, FNC1 acts as a delimiter telling the parser where one AI's data ends and the next begins.

Which Application Identifiers do retailers commonly require?

Most retailers require at minimum (01) GTIN-14. Many also require (17) expiry date and (10) batch number for food and pharma. Pallet labels typically require (00) SSCC. Always check each retailer's routing guide.

Can GS1-128 be read by standard barcode scanners?

Yes. GS1-128 is based on Code 128 and is readable by any Code 128-capable scanner. However, the scanner's host system must be configured to parse GS1 Application Identifiers to extract structured data correctly.

What is an SSCC and how is it encoded in GS1-128?

SSCC (Serial Shipping Container Code) is an 18-digit GS1 identifier for logistics units (pallets, cases). It is encoded in GS1-128 using Application Identifier (00) followed by the 18-digit SSCC.

Is there a maximum number of AIs in one GS1-128 symbol?

Technically no fixed limit, but the physical symbol width limit of 165 mm constrains how many AIs fit. In practice, 3–5 AIs is typical. If more data is needed, use multiple GS1-128 symbols or switch to GS1 DataMatrix.

Need to create a GS1-128 barcode?

Generate high-quality, scannable GS1-128 barcodes for free with our advanced barcode generator. Download in vector SVG or PNG format.

Create GS1-128 Barcode Now