Skip to content
PrintMyLabels

Linear symbology

GS1-128

GS1-128 is Code 128 carrying structured GS1 data, where each field is introduced by a two-to-four digit Application Identifier in parentheses — (01) for a GTIN, (10) for a batch or lot, (17) for an expiry date. It is the standard symbology for logistics and carton labels because a trading partner's system can parse the fields rather than guess at them.

Specification

These are the values the editor enforces while you design, not figures collected from elsewhere — the same numbers its quiet-zone and resolution checks run on.

GS1-128 specification: minimum X-dimension, quiet zone and dimensionality
PropertyValueIn context
Minimum X-dimension0.25 mm0.0098 in · 10 thou
Quiet zone10 modules2.50 mm at the minimum X-dimension
DimensionalityLinear (1D)Read by laser or imager

GS1-128 at 203, 300 and 600 dpi

A printer can only place whole dots, and 0.25 mm is not a whole number of them at any of these resolutions. What changes is how much a single dot of rounding costs you as a share of the narrow bar.

GS1-128 narrow bar in printer dots at 203, 300 and 600 dpi
ResolutionNarrow bar in dotsPrinted asRounding error
203 dpi2.002 dots0%
300 dpi2.953 dots2%
600 dpi5.916 dots2%

What GS1-128 encodes

One or more GS1 Application Identifiers and their values, concatenated into a single symbol. Each AI defines the format and length of the data that follows it, which is what lets a receiving system split one barcode back into a GTIN, a batch code and a date without ambiguity.

Where it is used

  • Carton, case and pallet labels moving between trading partners
  • Batch, lot and expiry data that a retailer or 3PL scans on receipt
  • Serialised shipping container codes on logistics units

Check digit

Two independent things are happening. The Code 128 symbol carries its own mandatory modulo-103 check character, and separately the GTIN inside AI (01) carries the GS1 mod-10 check digit as its final digit. A GTIN with a wrong check digit produces a barcode that scans perfectly and is then rejected by the receiving system.

How GS1-128 fails in practice

  • Typing the parentheses as literal data. They delimit the Application Identifier for the encoder and are not themselves encoded — a symbol containing real bracket characters is not valid GS1-128.
  • A GTIN in AI (01) whose check digit is wrong. Nothing about the printed symbol looks wrong; the failure appears at the trading partner as a rejected shipment.
  • Getting the date format wrong in AI (17). It is YYMMDD, and a transposed month reads as a valid but incorrect expiry rather than as an error.

When to use something else

  • Code 128 — choose it instead when the value is your own internal identifier and no trading partner needs to parse fields out of it.
  • ITF-14 — choose it instead when the carton needs only a GTIN-14 and will be printed directly onto corrugated board.

Questions about GS1-128

Do I type the brackets around the Application Identifier?
Yes. Enter them exactly as shown, for example (01)09501101020917. The brackets tell the encoder where each Application Identifier begins and ends; they are not encoded into the bars themselves.
Can one GS1-128 barcode hold more than one field?
Yes. Application Identifiers concatenate, so a single symbol can carry a GTIN, a batch code and an expiry date together. Whether your trading partner expects them in one symbol or several is their specification, not a limit of the symbology.