addaScan home
Assessment
Barcode basics // Chapter 3 of 5

What is a GS1-128 barcode, and how does it carry an SSCC?

By Frank GuoTechnical review: Frank GuoPublished Updated 9 min read

// In short

A GS1-128 barcode carries several pieces of data, each introduced by a GS1 Application Identifier: (00) for the SSCC that identifies a pallet or other logistic unit, (01) or (02) for a GTIN, (10) for a batch, (15) or (17) for dates. It is the barcode on GS1 logistic labels and on cases that need a batch or date in barcode form. A line reader decodes it, splits it into fields and checks each against the order or the run.

// Key takeaways

  • GS1-128 carries data as Application Identifiers, so one symbol can hold GTIN, batch and dates, up to 48 data characters.
  • The SSCC, AI (00), is an 18-digit number that identifies one logistic unit and must not be reused within a year of shipment.
  • Variable-length fields such as the batch need an FNC1 separator unless they come last; that is where badly built barcodes fail.
  • GS1 places pallet labels 400 to 800 mm above the base, at least 50 mm from an edge, ideally on two adjacent sides.
  • A line check compares each field with the order, the run or the WMS, not just whether the code reads.

What are Application Identifiers?

An Application Identifier (AI) is a short prefix in brackets that says what the following data means and how long it is. The brackets appear only in the human-readable text under the barcode; in the bars the AIs are encoded directly (GS1 General Specifications, 3.2). GS1 South Africa describes GS1-128 and ITF-14 as the barcodes used to track items through the supply chain (GS1 South Africa, barcode types).

GS1 Application Identifiers most used on cases and pallet labels (GS1 General Specifications, Table 3-1)
AIDataFormatSeparator needed after it?
(00)SSCC: identifies one logistic unit, such as a pallet18 digitsNo (fixed length)
(01)GTIN of a trade item14 digitsNo
(02)GTIN of the trade items contained in a logistic unit14 digits; only with (00) and (37)No
(10)Batch or lot numberUp to 20 charactersYes, unless it is the last field
(11)Production dateYYMMDDNo
(13)Packaging dateYYMMDDNo
(15)Best before dateYYMMDDNo
(17)Expiration date (USE BY or EXPIRY)YYMMDDNo
(21)Serial numberUp to 20 charactersYes, unless last
(37)Count of trade items containedUp to 8 digits; only with (00) and (02)Yes, unless last

GS1 also sets which AIs belong together. The GTIN of contents (02) is used only with an SSCC (00) and a count (37), and the count only with those two; a batch (10) goes with a GTIN (GS1 General Specifications, 4.13.2). A label that breaks these rules can still scan, but the customer’s system may reject it.

How is the data built, and why do some GS1-128 barcodes give the wrong data?

GS1-128 is Code 128 with a Function 1 character (FNC1) in the first position after the start character, a position reserved for GS1 by agreement with AIM (GS1 General Specifications, 5.4). A reader reports it with the symbology identifier ]C1, so the receiving system knows to parse AIs. Fields with a predefined length, such as the GTIN and the dates, simply end. Fields with a variable length, such as the batch or the count, must be followed by an FNC1 separator if another field follows. GS1 advises putting fixed-length fields first and variable-length fields last.

Example, for illustration only. A homogeneous pallet of 48 cases might carry a second GS1-128 with (02)10614141123459(15)271130(37)48(10)L2610A: the case GTIN, best before 30 November 2027, the count and the batch. The count is variable length and not last, so an FNC1 must follow “48”. Without it, the receiving system reads the count as 4810L2610A and the batch disappears. The barcode still decodes, so a reader that only reports “read” passes it; a reader that parses the AIs and compares each field with the expected values catches it.

What is an SSCC, and why is it on the pallet label?

The SSCC, Serial Shipping Container Code, identifies one logistic unit, for example a pallet or a roll cage (GS1, SSCC). It is 18 digits: an extension digit (0 to 9) chosen by the company that builds the SSCC, its GS1 company prefix, a serial reference it allocates, and a check digit. The number stays with the unit for its life and must not be reallocated within one year of the shipment date; regulations or industry rules may extend that (GS1 General Specifications, 3.3.1 and 4.3.1).

The check digit uses the same weights as every GS1 key. GS1’s own example: the 17 digits 37610425002123456, weighted 3, 1, 3 … from the left, sum to 101; the next multiple of ten is 110, so the check digit is 9 and the SSCC is 376104250021234569 (GS1 General Specifications, Table 7-9).

The SSCC is the single mandatory element on every GS1 logistic label and is carried in GS1-128 with AI (00) (GS1 General Specifications, 6.6.3). The receiving distribution centre scans it and looks up, in the despatch advice sent by EDI, what the pallet should contain. That is why a wrong or duplicated SSCC causes more trouble than an unreadable one: it points to the wrong data. See the pallet identification system for how a dispatch line reads it.

What does the GS1 logistic label look like, and where does it go?

GS1 groups the label into three building blocks: a top block for free text and graphics, a middle block of text with data titles, and a bottom block with the barcodes and their human-readable text. Only the bottom block is mandatory, and the GS1-128 carrying the SSCC goes in the lowest part of the label, bars upright to the pallet base (GS1 General Specifications, 6.6.3–6.6.4). The GS1 Logistic Label Guideline describes the same layout in more detail (GS1 Logistic Label Guideline).

[Schematic]Pallet side and label · not to scale · example data

Swipe sideways to see the whole drawing →

GS1 logistic label on a pallet Left: the side of a wrapped pallet on a wooden base. A logistic label is placed between 400 and 800 millimetres above the base of the pallet and at least 50 millimetres from the vertical edge; a second identical label goes on the adjacent side. Right: the label enlarged, with a top block for free text, a middle block of text with data titles, and a bottom block with GS1-128 barcodes, the SSCC barcode in the lowest position. 800 mm400 mm ≥50 mm LABEL ZONE 400–800 mm ABOVE BASE · 2ND LABEL ON ADJACENT SIDE TOP BLOCK: FROM / TO, FREE TEXT SSCC 376104250021234569 CONTENT 10614141123459 COUNT 48 BEST BEFORE 30.11.2027 BATCH L2610A (02)10614141123459(15)271130(37)48(10)L2610A (00)376104250021234569 ← SSCC, LOWEST ON THE LABEL
Height: 400 to 800 mm above the pallet base
Edge: At least 50 mm from a vertical edge
Sides: Two identical labels on adjacent sides recommended
Label: SSCC barcode lowest; other GS1-128 above it
GS1 logistic label rules and the matching line checks
Label elementGS1 ruleWhat a line station checks
SSCC in GS1-128, AI (00)The single mandatory element; in the lowest part of the labelPresent, valid check digit, not used before, matches the dispatch record
Other barcodesGTIN of contents, count, batch, dates as needed, in GS1-128Each field matches the pallet that was built
Human readable textRequired for every element string in a GS1-128Optional OCR, if the customer asks for it
Text with data titlesData content at least 7 mm high; titles in English unless agreed otherwiseNormally not checked by the reader
Label sizeLabeller’s choice; A6 or 4 × 6 in for the SSCC and a little more, A5 or 6 × 8 in for more dataLabel present and in the expected area
Placement400 to 800 mm above the pallet base, at least 50 mm from a vertical edge; two identical labels on adjacent sides recommendedReader height and number of readers

The placement rules apply to all pallets: all GS1 barcodes between 400 and 800 mm above the base, as high as possible on pallets lower than 400 mm, and at least 50 mm from any vertical edge (GS1 General Specifications, 6.7.1.1 and 6.7.2).

How big must a GS1-128 be?

The size limits depend on whether the barcode is on a case or on a logistic label (GS1 General Specifications, 5.12.3.2 and 5.12.3.5).

GS1-128 size and data limits in the GS1 General Specifications, Release 26.0
ParameterCase label (table 2)Pallet / logistic label (table 5)
X-dimensionMinimum and target 0.495 mm, maximum 1.016 mmMinimum and target 0.495 mm, maximum 0.940 mm
Minimum bar height31.75 mm31.75 mm
Quiet Zone10X each side10X each side
Minimum print quality1.5/10/6601.5/10/660
Maximum symbol length165.10 mm165.10 mm; with an SSCC this caps the X-dimension at 0.940 mm
Maximum data48 data characters per symbol48 data characters per symbol

The 165.10 mm length limit is why GS1-128 labels often split data into two barcodes: an SSCC alone in one, the contents, count, dates and batch in another. GS1-128 must not be used for more than 48 data characters in one symbol (GS1 General Specifications, 5.4.4.3).

How is a GS1-128 barcode checked on the line?

A fixed code reader reads the label after the labeller or print-and-apply unit, before the pallet leaves the wrapper or the case leaves the line. A station that protects the customer’s receiving process does five things:

  1. Reads every barcode on the label, and counts them, so a missing second barcode is caught.
  2. Parses the AIs, including FNC1 separators, rather than comparing raw strings.
  3. Compares each field: GTIN and count against the pallet that was built, batch and dates against the run data from the PLC or MES.
  4. Checks the SSCC: valid check digit, not seen before, and recorded against the dispatch order in the WMS.
  5. Stops or diverts a pallet with a wrong or unreadable label, and confirms it was stopped.

Carton and pallet verification covers the station; why barcodes that scan are still rejected at the DC covers what receiving checks beyond the read.

Frequently asked questions

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

GS1-128 is Code 128 used under GS1 rules: it starts with the FNC1 character and carries data as GS1 Application Identifiers. A plain Code 128 barcode has no AIs, so a retailer’s system cannot interpret it as a GTIN, batch or SSCC.

Can the expiry date on the pack and in the GS1-128 barcode disagree?

Yes, if they come from different sources. A station that reads the barcode with AI (17) and the printed date with OCR can compare the two, and both with the expected date for the run.

Can we reuse SSCC numbers?

Not within one year of the shipment date, under the GS1 rule; regulations or your customers may require longer. A line station that keeps a list of issued SSCCs flags a repeat before the pallet ships.

Where should the pallet label go?

GS1 puts all barcodes between 400 and 800 mm above the pallet base and at least 50 mm from a vertical edge, and recommends two identical labels on adjacent sides.

Read next · Chapter 4What is GS1 DataMatrix, and how is it different from Data Matrix?The small 2D code that carries GTIN, batch and dates: structure, GS1 sizes, capacity, print faults and line reading.
// Next step

Have a line in mind?

Describe the product and the fault you need to catch. We test on your samples and reply with a feasibility note and a budget.