Cases & pallets

GS1-128 barcode

The Code 128 subset that carries GS1 Application Identifiers, the barcode on every carton and pallet shipping label.

Also known as: UCC-128, EAN-128, UCC/EAN-128, Code 128 (GS1)

What is GS1-128?

GS1-128, formerly UCC-128 or EAN-128, is a subset of Code 128 that encodes structured data using GS1 Application Identifiers, so a single barcode can carry a GTIN, a lot number, an expiry date, a count, or a serial shipping container code together. It is the symbology behind every retailer’s carton and pallet shipping label and the case marking for anything with a lot or date.

Encodes: One or more GS1 element strings, each an Application Identifier followed by its data. Alphanumeric, opened by a FNC1 character that tells the scanner to parse AIs.

GS1-128 carrying a case GTIN (01), a lot number (10), and an expiry date (17). The parentheses are shown in the human-readable text but never encoded.

Open GS1-128 in the generator

How GS1-128 is structured

GS1-128 does not have a fixed layout. It is a container for element strings, each opened by a two- to four-digit Application Identifier that tells the reader what the following data means and how long it is. These are the AIs that appear on retail shipping labels and case marks.

Part Length What it means
(00) SSCC 18 digits Serial Shipping Container Code. The unique identity of one carton or pallet, matched to the 856 ASN.
(01) GTIN 14 digits The trade item the case is. A GTIN-12 or -13 is zero-padded to 14.
(02) GTIN of contained items 14 digits On a logistics unit, the GTIN of the trade items inside, paired with (37) for the count.
(10) Batch or lot Up to 20 characters Variable length. Required by grocery, pharma, and FSMA 204 traceability.
(11) (15) (17) Dates 6 digits, YYMMDD Production date, best-before date, and expiration date respectively.
(21) Serial number Up to 20 characters Item-level serial, used with a GTIN for serialized goods.
(30) / (37) Counts Up to 8 digits (30) is a variable count of items; (37) is the count of trade items inside a logistics unit.
(400) Customer PO Up to 30 characters The retailer’s purchase order number, often required on the shipping label.
(410) Ship-to GLN / (420) Ship-to postal code 13 digits / up to 20 characters Destination, expressed as a Global Location Number or a postal code.

Specifications

Base symbology
Code 128, subsets A, B, and C, opened with FNC1
Character set
Full ASCII; numeric pairs compress in subset C
Capacity
48 data characters per symbol, maximum
Maximum width
165 mm including quiet zones
X-dimension
0.495 mm to 1.016 mm on logistics labels
Bar height
32 mm minimum on logistics labels and general-distribution cases
Quiet zones
10X on the left and right
Check characters
Symbol-level mod 103 check character, plus the mod 10 check digit inside any GTIN or SSCC element
Separators
FNC1 after every variable-length AI unless it is the last element in the symbol
Human-readable text
AIs in parentheses beneath the bars; the parentheses are not part of the encoded data

Dimensions are GS1 General Specifications targets. Confirm against the retailer’s current routing guide before a print run.

Where it is used

  • The GS1 logistics label on every carton and pallet, carrying the SSCC in (00)
  • Case marking with GTIN, lot, and expiry for grocery, pharma, and perishables
  • FSMA 204 traceability lot codes on food cases
  • Conveyor and dock-door scanning at retailer distribution centers
  • Warehouse receiving, put-away, and pick confirmation on inbound goods
Generated per shipment

Printed by the system at pack time, never drawn in advance

The data in a GS1-128 changes with every shipment: the SSCC is serialized, the lot and count depend on what went in the box, the PO number belongs to the order. So the label is generated by the WMS, OMS, or EDI platform when the carton closes and printed on a thermal printer at the pack station. A designer can produce a one-off GS1-128 for a case mark that is static, but the shipping label is operational output, and its values must be the same ones written into the 856.

Retailers whose routing guides call for it

Each retailer page covers the transaction sets, labeling rules, and reported chargebacks behind the requirement.

Mistakes that cost money

Encoding the parentheses

The parentheses are display-only. Encoding them produces a symbol that scans as text and never parses as AIs.

Missing the leading FNC1

Without FNC1 after the start code, the reader treats the symbol as plain Code 128 and no Application Identifier logic runs. The label looks right and fails at the DC.

No separator after a variable-length AI

A (10) lot followed directly by (17) concatenates into one unreadable lot number. Put fixed-length AIs first and terminate variable ones with FNC1.

Label values that disagree with the ASN

The lot printed on the case must match the lot in the 856. Two systems generating the same data independently is how they drift.

X-dimension below spec for the scan distance

Conveyor scanners at a DC read from farther away than a handheld. A 203 dpi label at the wrong scale looks fine on the pack bench and misses on the line.

Human-readable text touching the bars

Text set too tight to the symbol eats into the effective bar height and degrades the read.

How Endless handles GS1-128

EndlessEDI builds the GS1-128 label and the 856 ASN from the same shipment record, so the GTIN, lot, expiry, count, and SSCC on the carton are the values in the document by construction. Agents validate the label set against the retailer’s routing guide before the shipment is released.

Frequently asked questions

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

GS1-128 is Code 128 with two additions: a FNC1 character right after the start code, and a data structure built from GS1 Application Identifiers. Plain Code 128 can carry any text and is fine for internal bin and asset labels. GS1-128 is what trading partners can parse.

Is GS1-128 the same as UCC-128?

Yes. UCC-128 in North America and EAN-128 elsewhere were renamed GS1-128 when the Uniform Code Council and EAN International became GS1. Many routing guides and vendor manuals still say UCC-128; they mean the same symbol.

Can a GS1-128 barcode carry my purchase order number?

Yes, in Application Identifier (400). Most retailer shipping labels print the PO in human-readable text and, where the routing guide asks for it, encode it in a GS1-128 alongside or separate from the SSCC.

Where does the SSCC barcode go on the label?

At the bottom. GS1’s logistics label layout puts free text at the top, human-readable interpretation in the middle, and barcodes in the lowest section, with the (00) SSCC as the bottom-most symbol so it is the first thing a scanner meets.

Related symbologies

  • SSCC-18

    The 18-digit serial number that identifies one specific carton or pallet and ties it to the ASN.

  • ITF-14

    The 14-digit case barcode printed on shipping cartons, built to survive corrugated board.

  • UPC-A

    The 12-digit retail barcode scanned at point of sale across North America.

Definitions in the glossary

Browse the full barcode symbology guide.

Book an Endless Commerce demo

See it on your channels.

Spend your time on the business, not the busywork. Book a demo and watch Endless run your operations across every channel you sell on.

Get a Demo