GS1-128 explained: Application Identifiers

GS1-128 looks like an ordinary barcode with brackets in the text. Those brackets are the whole point — they turn raw data into something every supply-chain system understands.

EAN Studio · Updated July 2026

GS1-128 is a barcode standard built on the Code 128 symbology. What sets it apart is structure: instead of encoding free text, it uses Application Identifiers (AIs) to label each piece of data, so a scanner anywhere in the chain knows whether it is reading a product number, a batch, an expiry date or a pallet ID.

What is an Application Identifier?

An AI is a short numeric code, shown in brackets, that declares the meaning of the data that follows it. A single GS1-128 barcode can chain several AIs together. Common ones include:

AIMeaningExample
(00)SSCC — serial shipping container code (logistics unit)(00)123456789012345675
(01)GTIN — the product number(01)05601234567892
(10)Batch / lot number(10)ABC123
(11)Production date (YYMMDD)(11)260720
(17)Expiry date (YYMMDD)(17)261231
(21)Serial number(21)000042

So a single logistics barcode reading (01)05601234567892(10)ABC123(17)261231 says, unambiguously: this GTIN, from this batch, expiring on that date — all in one scan.

How it differs from plain Code 128

 Code 128GS1-128
DataFree text, any structureStructured via Application Identifiers
Special startNone requiredLeading FNC1 character
Meaning of dataDefined by youStandardised across all GS1 users
Typical useSKUs, internal labelsLogistics, pallets, regulated supply chains

Under the hood, GS1-128 is Code 128 — the difference is the leading FNC1 character and the AI conventions that give the data a shared, machine-readable meaning. That is why fixed-length AIs need no separator, while variable-length ones are separated by an FNC1 function character.

Where GS1-128 is used

It is the workhorse of logistics and regulated supply chains: shipping labels, pallet and case labels, and anywhere batch, expiry or serial data must travel with the product number. Retail checkouts still use EAN-13 or UPC-A on the consumer unit; GS1-128 lives on the boxes and pallets behind them.

Still just an image from a number. As with every barcode, GS1-128 encodes data you provide — the GTIN inside it is assigned by GS1. EAN Studio renders the barcode; it does not issue the numbers or AIs.

GS1-128 is a Pro feature

GS1-128, GS1 DataBar, GS1 DataMatrix and Pharmacode are part of the Pro plan. Plain Code 128 is free.

See the Pro plan Free Code 128 generator

Frequently asked questions

What is GS1-128?

GS1-128 is a barcode standard that uses the Code 128 symbology with a defined data structure. Application Identifiers (AIs) label each piece of data — such as GTIN, batch, expiry or SSCC — so any GS1 system reads it consistently.

What is an Application Identifier (AI)?

An AI is a short numeric prefix in brackets that says what the following data means. For example (01) is GTIN, (10) is batch/lot, (17) is expiry date and (00) is the SSCC logistics unit number.

How is GS1-128 different from Code 128?

Code 128 is the underlying symbology and encodes free text. GS1-128 adds the GS1 rules on top: a leading FNC1 character and Application Identifiers that give the data a standard, machine-readable meaning.

Where is GS1-128 used?

On shipping and logistics labels, pallets and cases, and in regulated supply chains that need batch, expiry or serial data alongside the product number.