Most of what goes wrong with a GS1-128 label in a packing operation is not exotic. It is one of four things: the wrong Application Identifier, the wrong data order, a symbol that is physically too small or too close to an edge, or a print quality grade that nobody has ever measured. This page covers all four, with the numbers.
Last fact checked September 8, 2026 against the GS1 US and PTI primary documents named at the bottom.
If what you need is the equipment that prints and applies these labels on your own line, book an equipment audit and we will specify it against your cases and your line speed.
What is a GS1-128 label, and what is it used for?
A GS1-128 label carries a GS1-128 barcode: a subset of Code 128 that starts with an FNC1 character and encodes GS1 element strings, each an Application Identifier followed by data such as a GTIN, a lot, a date or an SSCC. It is used on cases and pallets so every trading partner's system reads the same data the same way.
GS1-128 is not Code 128
This distinction matters because software will happily produce the wrong one.
Code 128 is a barcode symbology. It encodes characters.
GS1-128 is a subset of Code 128 that carries a Function Code 1 (FNC1) character in the first position after the start character. That FNC1 is what tells a scanner the data is structured as GS1 element strings rather than as unstructured text.
If your barcode is missing the FNC1, it is a Code 128 barcode that happens to contain digits. It will scan, and it will not be interpreted correctly by a trading partner's system. This is one of the more common reasons a label "works on our scanner" and gets rejected at receiving.
Two more rules that catch people:
- The parentheses in human readable text are not in the barcode.
(01)printed under the symbol is a reading convenience. The encoded data has no parentheses. - A GS1-128 symbol has a 48 data character maximum. Load too many Application Identifiers into one symbol and you will run out.
Which Application Identifiers go on a GS1-128 label?
The Application Identifiers a packer actually uses are AI (01) for the GTIN, AI (10) for the batch or lot, AI (13), (15), (16) or (17) for a date, AI (00) for the SSCC on a pallet, and, on the PTI pallet label, AI (02) and AI (37) for the contained product and its case count.
An Application Identifier is the two or more digits at the front of an element string that say what the following data means.
| AI | Meaning | Format | Data title |
|---|---|---|---|
| 00 | Serial Shipping Container Code (SSCC) | 18 digits | SSCC |
| 01 | Global Trade Item Number | 14 digits, fixed | GTIN |
| 02 | GTIN of contained trade items | 14 digits, fixed | CONTENT |
| 10 | Batch or lot number | variable, up to 20 characters | BATCH/LOT |
| 11 | Production date, YYMMDD | 6 digits, fixed | PROD DATE |
| 13 | Packaging date, YYMMDD | 6 digits, fixed | PACK DATE |
| 15 | Best before date, YYMMDD | 6 digits, fixed | BEST BEFORE |
| 16 | Sell by date, YYMMDD | 6 digits, fixed | SELL BY |
| 17 | Expiration or use by date, YYMMDD | 6 digits, fixed | USE BY OR EXPIRY |
| 21 | Serial number | variable, up to 20 characters | SERIAL |
| 37 | Count of contained trade items | variable | COUNT |
| 416 | GLN of the production or service location | 13 digits, fixed | (used as TLC source reference) |
| 3202 | Net weight in hundredths of a pound | 6 digits | NET WEIGHT (lb) |
In produce, AI (13) is treated as the pack or harvest date and AI (15) as the best if used by date. The rest of the produce case label (the human readable lines, the voice pick code and the lot code character rules) is covered in our guide to the produce traceability rules.
What order do the element strings go in?
Fixed length element strings go first and variable length ones last. A variable length AI such as the lot, AI (10), needs an FNC1 separator unless it is the final element, so a case barcode carrying a GTIN, a date and a lot is built GTIN, date, lot, which keeps the symbol as short as possible.
Element strings are not interchangeable in order, and getting this wrong makes the symbol physically longer than it needs to be.
Rule: fixed length element strings first, variable length element strings last.
A variable length AI has to be followed by an FNC1 separator so the scanner knows where it ends. If a variable length AI is the last thing in the data string, no separator is needed, which saves a character. Put a variable length AI in the middle and every one after it needs a separator, and the barcode grows.
So a case barcode carrying a GTIN, a date and a lot code should be built in that order:
(01) GTIN (13) date (10) lot
Not GTIN, lot, date.
For FSMA 204 specifically, GS1 US states industry has aligned on including GTIN, date and lot in the barcode, and adding the traceability lot code source reference GLN as AI (416) if the symbol has room for it. Anything beyond that generally belongs in the Advance Ship Notice rather than in the barcode, because the 48 character limit arrives quickly.
How big does a GS1-128 barcode have to be, and where does it go?
A GS1-128 barcode can be at most 6.5 in (165 mm) wide including its quiet zones, which are 10 times the narrow bar width on each side. For fixed position scanning it needs a 0.0195 in narrow bar and a 1.25 in height. Its bottom sits 1.25 in from the case base, at least 0.75 in from any vertical edge.
| Constraint | Figure |
|---|---|
| Maximum GS1-128 width including quiet zones | 6.5 in (165 mm) |
| Maximum barcode height including quiet zones | 1.25 in (31.75 mm) |
| Quiet zone each side | 10 times the narrow bar width |
| Narrow bar width, unattended fixed position scanning | 0.0195 in (0.495 mm) |
| Barcode height, unattended fixed position scanning | 1.25 in (31.75 mm) |
| Narrow bar width, attended handheld scanning | 0.0104 in (0.264 mm) |
| Barcode height, attended handheld scanning | 0.500 in (12.70 mm) |
| Distance from nearest package edge | not closer than 0.30 in (8 mm), not farther than 4 in (100 mm) |
| Case placement, bottom of symbol | 1.25 in (32 mm) from the natural base |
| Case placement, distance from any vertical edge | at least 0.75 in (19 mm) |
Two notes on reading that table against the other pages on this site, because the source documents genuinely differ and it is better to say so than to quietly pick one:
- 1.25 in is GS1 US's stated maximum barcode height and PTI's stated minimum for unattended fixed position scanning. They are describing the same target from opposite directions. In practice, build to 1.25 in.
- Metric equivalents are quoted as each source prints them. GS1 US renders 0.0195 in as 0.495 mm and PTI renders it as 0.500 mm; GS1 US gives the maximum width as 165 mm and PTI as 165.1 mm. Same figures, different rounding.
Do not compress the barcode to fit a smaller label. If all 48 data characters are used, the symbol needs the space it needs. Squeezing it is how a label ends up at grade D.
The human readable interpretation goes below the barcode wherever it physically can. If the case or tray is too short for that, move the human readable text to the left of the symbol, outside the quiet zones. If the unit is under 1.25 in (32 mm) tall, the symbol can go on top of the pack, bars perpendicular to the shortest side, at least 0.75 in (19 mm) from any edge.
What is an SSCC?
An SSCC, or Serial Shipping Container Code, is an 18 digit number that identifies one specific logistics unit, such as a pallet: an extension digit, your GS1 Company Prefix, a serial reference and a check digit. It is encoded with AI (00), normally in a GS1-128 barcode, and must not be reallocated within a year of shipment.
The Serial Shipping Container Code is the license plate for a logistics unit. Where a GTIN says what something is, an SSCC says which one it is: this specific pallet, and no other pallet ever.
Structure: 18 digits.
| Part | Length |
|---|---|
| Extension digit | 1 digit, 0 to 9, assigned by the company |
| GS1 Company Prefix | 4 to 12 digits, from your GS1 prefix certificate |
| Serial reference | fills the remainder |
| Check digit | 1 digit, calculated |
It is encoded with AI (00), normally in a GS1-128 barcode, and can also be carried in a GS1 DataMatrix or GS1 QR Code.
The reuse rule. An SSCC must not be reallocated within one year of the shipment date from the assignor to a trading partner. Regulatory or industry requirements can extend that period. This is the rule most commonly broken by a homegrown pallet numbering scheme that rolls over at 9999.
What goes on a PTI hybrid pallet label?
A PTI hybrid pallet label carries the pallet's SSCC in its own GS1-128 barcode at the bottom, one GS1-128 barcode per unique case composition carrying AI (02), AI (10) and AI (37), and the company name across the top. It goes on two adjacent sides of every unit load, with the symbol between 16 and 32 in from the base.
Produce has its own pallet label convention, and it does something clever: it lets a receiver identify everything on a pallet by scanning the pallet, without breaking the load down and scanning every case.
What it carries, at minimum:
- The SSCC for the pallet, displayed horizontally at the bottom of the first label, with the word "SSCC" printed horizontally next to it
- One horizontal GS1-128 barcode per unique composition of cases on the pallet, each carrying three things: the GTIN of the contained cases using AI (02), the batch or lot number using AI (10), and the count of cases sharing that GTIN and lot using AI (37)
- The company name, horizontally across the top
- If the pallet needs more than one label because there are too many GTIN and lot combinations, a "1 of 3" style count, with the SSCC printed only on the first label
Label sizes: 4 in x 6 in thermal and 8.5 in x 11 in laser are both validated by PTI pilot studies and are the two commonly used stocks. Which you use depends on your printer and on how many barcodes you have to fit.
Barcode sizes on the pallet label:
- The SSCC barcode: 1.25 in (32 mm) minimum bar height, narrow bar width 0.0195 in (0.500 mm) to 0.040 in (1.016 mm)
- The GTIN, lot and quantity barcodes: intended for attended handheld scanning only, narrow bar width 0.00984 in (0.250 mm) to 0.0195 in (0.500 mm), minimum height 0.50 in (12.70 mm)
Placement, and this is the part people get wrong:
- Labels go on two adjacent sides of every unit load, so the pallet can be read whichever way it is turned in a truck or on a rack
- If more than one label is needed, stack them vertically, one above the other, never side by side
- The bottom edge of the barcode symbol should be no higher than 32 in (813 mm) and no lower than 16 in (406.5 mm) from the base of the unit load
- The symbol should sit right of center and at least 2 in (51 mm) from either edge
- On a load under 16 in tall, put it as high as possible while still protecting it
- On an over wrapped pallet, put the label on top of the plastic, not underneath it, for a better scan rate
And the SSCC is only half of the system. Its value comes from being used alongside the Advance Ship Notice, the electronic document sent from shipper to receiver. The SSCC on the pallet is the key that links the physical load to the ASN record. Without the ASN it is still useful, but you are getting a fraction of what it can do.
What is barcode verification, and why is a scanner not a verifier?
Barcode verification grades a printed symbol against ISO/IEC 15416, using a verifier that itself conforms to ISO/IEC 15426-1. A scanner only tells you whether one scanner read the code once. Under the GS1 General Specifications the minimum overall grade for a GS1-128 barcode is 1.5, which is a C.
A scanner answers one question: could this scanner read this symbol, this time, at this angle. A verifier grades the symbol against measured parameters and tells you whether it will read reliably everywhere.
The standard is ISO/IEC 15416 for linear symbols, and the verifier itself has to conform to ISO/IEC 15426-1. Under the GS1 General Specifications the minimum acceptable overall grade for a GS1-128 barcode is 1.5.
| ISO/IEC grade | ANSI letter | Conforms to GS1 standards |
|---|---|---|
| 3.5 and above | A | Yes |
| 2.5 to below 3.5 | B | Yes |
| 1.5 to below 2.5 | C | Yes |
| 0.5 to below 1.5 | D | No |
| Below 0.5 | F | No |
Nine measured parameters feed into that overall grade, covering edge determination, reflectance, contrast, modulation, defects, decodability and quiet zones. Which is the practical point: a symbol can fail for reasons that are invisible to the eye and invisible to a handheld scanner, including ribbon wear, printhead element failure, substrate reflectance, and ink spread on absorbent stock.
Things that quietly drop your grade in a packing shed:
- Direct printing onto corrugate rather than onto a white label. GS1 US is blunt about this: white labels are proven to work best, and direct corrugate printing "has been known to cause readability issues and high maintenance costs"
- A worn or dirty printhead
- A ribbon and label stock combination that was never matched
- Compressing the symbol to fit a label that was designed before anyone needed a GS1-128 on it
- Dust and moisture on the printed face
The 2D option: GS1 DataMatrix
A GS1 DataMatrix uses the same element string syntax as a GS1-128, so the same AIs and the same data structure, in a smaller footprint. It can encode up to 2,335 characters, which is enough to carry the traceability lot code source reference GLN on every single case rather than only where a GS1-128 has room.
Worth weighing honestly:
In favor: more data in a smaller area, built in error correction, and the same syntax means the same software logic can read it.
Against: it needs camera or image based scanning hardware, printers optimized for 1D printing may need changes to produce it well, and your trading partners' software has to be configured to read the additional elements. A 2D symbol nobody downstream can scan is worse than a 1D symbol everyone can.
This is a supply chain conversation before it is an equipment purchase. Talk to the receivers who scan your product.
What equipment prints and applies GS1-128 labels?
Printing a compliant GS1-128 label is a print engine question; getting it onto a case or pallet at the right height is a machine question. On a packing line that means a thermal transfer print engine inside a print and apply head, an applicator matched to the surface, and a pallet labeling system or robotic arm for the load.
Pallet labeling systems. A dedicated pallet labeling head applies the label to a load as it passes a fixed station or as it is presented on a turntable. The range is on our pallet label applicators hub, and Altech's dedicated pallet labeling system is the ALcode P system.
Robotic pallet labeling. Where more than one face of a stationary load needs a label, a four axis articulated arm working within a 1100 mm radius (about 43 inches) and driven from a 7 inch touchscreen reaches faces a fixed applicator cannot. That is the ALrobot robotic pallet labeling arm. Worth knowing: it has no page on altech.it, altech-us.com or altech-uk.com, so if you were told robotic pallet labeling was not an option on this platform, it is.
Print engines. Thermal transfer print engines in 200, 300 and 600 dpi, mounted inside print and apply systems. Resolution is a real trade off rather than a "higher is better": higher resolution takes longer per label, so the resolution is chosen for the barcode and the line rate together rather than set to the maximum.
In line camera and sensor options. Altech's control and inspection options can be specified as part of a machine: a smart camera that reads the code after printing, a label presence check, laser scanners, mark readers and full camera vision. On a line producing thousands of cases an hour, an in line camera is the difference between catching a printhead failure in the first minute and catching it at your customer's dock. These are equipment options on the systems we build, quoted with the machine.
For produce packers, the case and pallet equipment together is covered on our PTI label applicators page.
Frequently asked questions
What is the difference between a GTIN and an SSCC? A GTIN identifies a product: every case of the same item with the same pack has the same GTIN. An SSCC identifies one specific logistics unit: this pallet, once, never reused within a year of shipment.
What is the difference between a GTIN and a GS1-128 barcode? A GTIN is a number: the 14 digit identifier for a product. A GS1-128 is a barcode symbology that can carry that GTIN, under AI (01), together with other element strings such as a lot and a date. The GTIN is the data; the GS1-128 is one way of printing it so a scanner can read it.
Can I put the SSCC and the case data in the same barcode? On the PTI hybrid pallet label they are separate barcodes on the same label: the SSCC in its own symbol at the bottom, and one barcode per unique GTIN and lot combination above it carrying AI (02), AI (10) and AI (37).
Do I need a GS1 company prefix? Yes, for both GTINs and SSCCs. They are issued by your GS1 member organization, which in the United States is GS1 US. We do not issue them and neither does any equipment vendor.
Our labels scan fine here but our customer says they fail. Why? Almost always print quality grade. Your handheld is a forgiving reader in good light at a comfortable angle. Their fixed position scanner is not. A graded measurement against ISO/IEC 15416 usually settles it quickly. We are not a barcode grading house, so for that number you will want a lab or a conforming verifier. What we can help with is the printing and applying side: the printhead, the ribbon and stock pairing, and where the label is landing.
What grade should we be aiming for? 1.5 is the floor for conformance. Aim higher. A symbol running at a comfortable B leaves you room for ribbon wear, dust and printhead aging before it drops out of conformance. A symbol printed at exactly 1.5 on day one has no margin left for any of that.
Should we move to 2D barcodes? Only after checking that the people who scan your product can read them. The capability advantages are real and so is the risk of shipping a symbol your customer's receiving system ignores.
Talk to us about the equipment side
If you are adding a pallet label, being asked for GS1-128 case labels for the first time, or working out what has to change on the line to print and apply them properly, that is the part we can help with.
We specify, supply, install and service the printers, print and apply heads and pallet labeling systems that put a compliant symbol on the pack, and the Altech camera and sensor options that go on them. Tell us what your buyer is asking for and what your line runs today. Request an equipment audit, or call 253-709-5566.
Sources
- GS1 US, North American Industry Guidance for Standard Case Code Labeling, Release 3.0, November 2025
- GS1, GS1 General Specifications (SSCC rules, section 4.4.1.1; print quality, section 5.4.5)
- GS1 US, Serialized Shipping Container Codes
- Produce Traceability Initiative, Best Practices for Formatting Hybrid Pallet Labels, Revision 2.5
- Produce Traceability Initiative, Best Practices for Formatting Case Labels
- Produce Traceability Initiative, FSMA 204 Implementation Guidance, February 12, 2024
