GS1 linear data carrier

GS1-128 Barcode

GS1-128 uses the Code 128 symbology together with GS1 rules and Application Identifiers to carry structured supply-chain information such as GTINs, lot numbers, serial numbers and dates.

GS1-128 barcode example using GS1 demonstration prefix 952
GS1-128 example created with the GS1-reserved 952 demonstration prefix.Encoded example: (01)09521234567899
GS1 reserves prefix 952 for demonstrations and examples; this symbol is generated locally from example data rather than copied from a third-party image.

What is GS1-128?

GS1-128 is a GS1 barcode data carrier based on Code 128. The bars use Code 128 encoding, but the data follows GS1 syntax so receiving systems can understand not just the value, but what each value means.

A special FNC1 character near the beginning identifies the symbol as GS1-formatted. GS1 Application Identifiers, or AIs, define the meaning and expected format of the data fields that follow.

Barcode family1D / linear
Underlying symbologyCode 128
Data structureGS1 Application Identifiers
Common useLogistics labels, cases, pallets and supply-chain data

Understanding Application Identifiers

An Application Identifier is a two-, three- or four-digit prefix that tells software what the following data field represents and how it is formatted. Common examples include identifiers for a GTIN, batch or lot, serial number, and expiration date.

Example AIMeaningExample display
01GTIN(01)09506000134352
10Batch or lot number(10)LOT247A
17Expiration date(17)281231
21Serial number(21)ABC12345
Parentheses are generally for people, not barcode data. They are commonly printed in human-readable text to show where each AI begins. Barcode-generation software must encode the GS1 element strings correctly rather than simply encoding the printed parentheses.

Why FNC1 matters

FNC1 is used to indicate GS1 formatting and, where necessary, to separate variable-length data fields. The exact placement and field rules are part of GS1 syntax, which is why GS1-capable barcode software should be used instead of manually assembling a plain Code 128 string.

Where is GS1-128 used?

GS1-128 is common on logistics and supply-chain labels where a single symbol needs to carry multiple standardized pieces of information. Examples include shipping container identification, lot traceability, dates, serial numbers and other attributes exchanged between trading partners.

It is frequently associated with outer cases and logistic labels rather than the traditional retail checkout symbol printed on a consumer unit.

GS1-128 vs. Code 128

CharacteristicCode 128GS1-128
Bars and spacesCode 128Code 128
Data meaningDefined by the applicationDefined using GS1 Application Identifiers
GS1 FNC1 usageNot inherently GS1Required as part of GS1 formatting
Typical contextInternal/general identificationStandardized supply-chain exchange

Printing considerations

Because GS1-128 is linear, data length has a direct effect on symbol width. Keep the data limited to what the application requires, follow the applicable GS1 size and quiet-zone rules, and verify the final printed symbol when compliance matters.

Frequently asked questions

Is every Code 128 barcode a GS1-128 barcode?

No. GS1-128 uses Code 128 as its underlying symbology, but it must follow GS1 data-formatting rules.

Can GS1-128 carry more than one field?

Yes. That is one of its major strengths: multiple GS1 element strings can be encoded in one symbol when the application rules permit it.

Where do I get official AI definitions?

GS1 maintains the official Application Identifier definitions and GS1 General Specifications. Barcode Education explains the concepts, but implementation should always be checked against the current GS1 requirements for your industry and trading partners.

Standards references

Official references: GS1 Application Identifiers and GS1 barcode standards overview.

Related learning