GS1-128
GS1-128 is the linear barcode standard that encodes multiple Application Identifiers (GTIN, batch/lot, expiry, serial, quantity, SSCC, country of origin, customer PO) in a single symbol, using Code 128 as the underlying symbology plus the GS1 AI structure and the FNC1 function character that tells a scanner 'this is GS1-encoded.' One scan returns a structured object — which product, which lot, when it expires, how many — instead of an opaque string the receiving system has to parse with bespoke logic. This is the workhorse of regulated inventory across pharma, food, supplements, cosmetics and medical device because it is universally readable, self-describing, carries enough fields per scan to drive goods-in / putaway / dispense / pack / ship without re-keying, and aligns with every major traceability regime (FSMA 204 in food, DSCSA in US pharma, EU FMD 2011/62/EU in EU pharma, UDI in medical device). This page covers what GS1-128 actually is, the FNC1 mechanic that separates GS1-128 from plain Code 128, the AIs you actually use in regulated operations, how license-plate inventory works on top of GS1-128, the GS1-128 vs GS1 DataMatrix decision, the ISO/IEC 15416 print-quality grading regulators and retailers check, the 6-clause regulated overlay, the KPI suite for a healthy GS1-128 programme, the 8-step V5 Ultimate implementation from label-print to consume, and the eight quiet failures that turn a 'GS1-128' programme into a Code-128 programme nobody downstream can use.
01What GS1-128 actually is
GS1-128 is a barcode standard, not a barcode symbology. It uses Code 128 as the underlying symbology (the way bars and spaces encode characters) and adds two things: the GS1 Application Identifier (AI) structure that gives meaning to each field, and a special FNC1 function character placed immediately after the start character to mark the symbol as GS1-encoded.
Each AI is a 2-, 3- or 4-digit prefix that tells the scanner what the next field means: AI 01 is GTIN (product), AI 10 is batch/lot, AI 17 is expiry, AI 21 is serial, AI 37 is unit count, AI 00 is the SSCC pallet ID, AI 422 is country of origin, AI 400 is customer PO. A single GS1-128 symbol can concatenate multiple AIs, with FNC1 used as the field separator after any variable-length AI.
The result is a self-describing label: a single scan returns a structured object {gtin, lot, expiryDate, quantity, sscc, ...} that downstream systems can consume without bespoke parsing. Compare that to plain Code 128, which is just a string the receiving system has to parse with custom logic and which breaks every time a supplier changes their label format.
02GS1-128 vs Code 128 — the FNC1 mechanic
Every GS1-128 barcode is a Code 128 barcode — but the reverse is not true. The distinction matters because mis-printed 'GS1-128' barcodes that are actually plain Code 128 are one of the most common reasons receiving systems reject pallets.
- Code 128 is the underlying symbology (ISO/IEC 15417) — bars and spaces that encode characters.
- GS1-128 adds the AI structure plus FNC1 in the first position after the start character, telling the scanner 'this is GS1-encoded.'
- FNC1 is also used as the field separator after a variable-length AI (e.g. AI 10 lot must be terminated by FNC1 if any other AI follows in the same symbol).
- A GS1-128-aware scanner transmits the AIM identifier ]C1 in front of the data so your software can detect GS1 encoding and split into fields automatically.
- A scanner reading a Code 128 that lacks FNC1 transmits ]C0 — your software then has no structural way to know which characters mean what.
03The AIs you actually use in regulated operations
The GS1 AI directory has hundreds of entries. The operating subset for regulated inventory is small — the table below covers ~95% of real-world GS1-128 labels.
| AI | Meaning | Format | Notes |
|---|---|---|---|
| 00 | SSCC — Serial Shipping Container Code | 18 numeric (fixed) | Pallet/case unique identifier. Usually printed on its own line on the logistic label. |
| 01 | GTIN — product identifier | 14 numeric (fixed) | Allocated from your GS1 company prefix. Same GTIN on every unit of the SKU. |
| 10 | Batch / lot number | Variable up to 20 alphanumeric | Terminated by FNC1 if any AI follows. |
| 11 | Production date | YYMMDD (fixed) | Day of physical production. |
| 13 | Packaging date | YYMMDD (fixed) | When packing happened — often different from production. |
| 15 | Best before date | YYMMDD (fixed) | Food/non-pharma quality date. |
| 17 | Expiration date | YYMMDD (fixed) | Regulatory expiry — used by FEFO logic downstream. |
| 21 | Serial number | Variable up to 20 alphanumeric | Unit-level — DSCSA / FMD serialisation. |
| 240 | Additional product identification | Variable up to 30 alphanumeric | Manufacturer's internal part number when GTIN alone is not enough. |
| 310n | Net weight (kg) | 6 numeric + decimal indicator | n = decimal place position (0–6). |
| 37 | Count of items in a logistic unit | Variable up to 8 numeric | Eaches per case/pallet. |
| 400 | Customer purchase order number | Variable up to 30 alphanumeric | Pairs the shipment to the customer's PO without re-keying. |
| 422 | Country of origin | 3 numeric (ISO 3166-1) | Used for FSMA 204 + customs. |
| 7003 | Expiration date and time | YYMMDDHHMM | Pharma cold-chain when the hour matters. |
04License-plate inventory on top of GS1-128
A license plate is a single inventory identifier — usually a pallet or a tote — that carries every fact downstream systems need. Without license plates, every move requires re-entry of lot/expiry/quantity. With them, one scan tells the WMS exactly what is on the pallet and where it should go.
GS1-128 is the format because it is universally readable, self-describing, and the SSCC (AI 00) makes the license plate globally unique across firms (so the receiver's WMS recognises the same pallet your shipper created). The typical logistic label carries:
- SSCC on its own (AI 00) — large, top of the label, the dominant scan target.
- Content GS1-128 underneath (AI 01 GTIN + AI 10 batch + AI 17 expiry + AI 37 count) — one scan returns the structured content of the pallet.
- Human-readable text alongside every barcode so the operator can verify without a scanner.
- Optional GS1 DataMatrix as a 2D backup when the label has space constraints or when receivers prefer 2D imaging.
05GS1-128 vs GS1 DataMatrix — which to use when
| Dimension | GS1-128 | GS1 DataMatrix |
|---|---|---|
| Symbology type | Linear (1D) — bars and spaces | Matrix (2D) — square pattern of dark/light modules |
| Reading device | Laser or imaging | Imaging only (camera-based) |
| Data capacity (typical) | Up to ~48 characters comfortably; 80 max | Up to 2,335 characters |
| Footprint at the same data | Wide (linear length grows linearly) | Compact (~⅓ the area of GS1-128 at typical pharma payload) |
| Best for | Logistic labels (pallet, case), retail outer packaging, receiving labels at the dock | Small unit packs (pharma carton, medical-device label, surgical-instrument direct-part-marking) |
| Regulatory fit | DSCSA case-level, FSMA 204 logistic labels, retail SSCC pallets, EU FMD case-level | DSCSA unit-level, EU FMD unit-level (2011/62/EU + 2016/161), UDI unit-level, surgical-instrument DPM |
| Print-quality grade scale | ISO/IEC 15416 (A–F) | ISO/IEC 15415 (A–F) |
The decision rule we use: linear GS1-128 for case + pallet (logistic units) because the laser scanners at most receiving docks read it fastest and the label has room. GS1 DataMatrix at unit level (carton, vial, device) because the payload is larger (serial + lot + GTIN + expiry in DSCSA / FMD) and the unit is too small for a linear barcode. The two coexist on the same regulated product.
06Print quality — the ISO/IEC 15416 grade scale
A GS1-128 barcode that is structurally correct but physically poor (low contrast, ink-spread, edge damage, missing quiet zone) will be rejected downstream. ISO/IEC 15416 defines a grade scale from A (best) through F (fail) based on seven measured parameters: decode, symbol contrast, minimum reflectance, minimum edge contrast, modulation, defects, and decodability. Most retailer and pharma receiving standards require grade C (2.5 / 4.0) or better; some retailer programmes (Walmart, Tesco) require grade B.
- Decode — does a reference algorithm successfully decode the symbol? Pass/fail.
- Symbol contrast — difference between the lightest and darkest reflectance values; thermal-transfer ribbon quality is the usual driver.
- Modulation — relative reflectance of weakest bar/space vs strongest; degrades with worn print heads.
- Defects — voids in bars and spots in spaces; common with worn print heads or contaminated media.
- Quiet zone — required clear space on each side of the symbol (10× narrow element width for GS1-128); commonly violated when labels are designed too tight.
07The regulated overlay — where GS1-128 is operationally required
| Regime | Clause | GS1-128 role |
|---|---|---|
| FDA — DSCSA | Title II of Drug Quality and Security Act + 21 USC 360eee | Case-level GS1-128 with GTIN + lot + expiry + serial (unit-level on GS1 DataMatrix). Stable since November 2023; full interoperable EPCIS exchange phase ongoing. |
| EU — Falsified Medicines Directive | 2011/62/EU + Delegated Regulation 2016/161 | GS1 DataMatrix at unit + GS1-128 at homogeneous shipper/case. National repository upload required. |
| FDA — UDI | 21 CFR Part 801 Subpart B + ISO/IEC 15459-2 | Issuing agencies are GS1, HIBCC, ICCBBA. GS1 path uses GTIN (AI 01) + lot (AI 10) + expiry (AI 17) + serial (AI 21) where applicable. |
| FDA — FSMA 204 | 21 CFR Part 1 Subpart S | GS1-128 is not mandated by name, but the Traceability Lot Code (TLC) + lot + quantity + production date are practically captured on GS1-128 logistic labels across the food supply chain. |
| EU GMP — Annex 16 | QP release | GS1-128 case labels support batch traceability across the supply chain that the QP must certify. |
| ISO 22005 — Traceability in the feed and food chain | §5 (identification + lot) | GS1-128 with AI 01 + AI 10 + AI 17 is the de facto compliant identification format. |
08GS1-128 programme KPIs
| KPI | Target | Why it matters |
|---|---|---|
| First-scan success rate at receiving | ≥ 99.5% | Below this, supplier labels are forcing re-key — defeats the point of GS1-128. |
| Print-quality grade trend (ISO 15416) | Median ≥ C, no grade D/F | Leading indicator of print-head failure and customer rejection. |
| AI completeness per outbound label | 100% of required AIs present | Required AIs per customer programme (e.g. retail SSCC + GTIN + lot + count). |
| FNC1 correctness on outbound | 100% | FNC1 mis-placement is the silent failure that breaks downstream parsers. |
| SSCC uniqueness over rolling 10 years | 100% | SSCC must not be reused within at least 10 years per GS1 General Specifications. |
| EDI 856 ASN match rate | ≥ 99.5% of outbound SSCCs reconcile against the ASN | Customer chargebacks for ASN mismatch are the typical cost driver. |
| GS1 company-prefix scope coverage | 100% of issued GTINs and SSCCs within allocated prefix | Issuing GTINs/SSCCs outside your allocated prefix invalidates the label. |
09How V5 Ultimate ships GS1-128
- GS1 company prefix configured at tenant level — V5 refuses to print a GTIN or SSCC outside the allocated prefix.
- Per-label template configured per use case (receiving license plate / pallet logistic label / case label / unit label) with the AIs needed for that label, FNC1 placement validated at template-save time.
- Print agent (tools/print-agent) writes ZPL to ZPL-II / Zebra / Datamax printers with FNC1 emitted correctly; preview rendered in-browser so the operator can verify before print.
- Scan-side parser ingests both ]C1 (GS1-encoded) and ]C0 (plain Code 128) — for ]C0 incoming we attempt a best-effort parse and log a supplier-label-quality finding so we can chase the supplier; for ]C1 we get the structured object directly.
- License-plate inventory uses SSCC (AI 00) as the primary identifier through goods-in → putaway → dispense → pack → ship; one scan at each step returns GTIN + lot + expiry + count.
- Outbound EDI 856 ASN auto-generated with SSCC references that match the printed logistic labels — receiver reconciles the pallet in one scan at their dock.
- Print-quality verifier integration (optional Honeywell / Cognex / Microscan / Axicon verifier) — grade trended per print head per shift, declining grade auto-opens a maintenance task.
- Mobile-safe label preview at ≤390px CSS width — the operator on iPhone sees the same label preview as on a 24-inch screen, no horizontal scroll.
10Eight quiet GS1-128 failures
- FNC1 missing in the first position — barcode scans as plain Code 128 (]C0); downstream parsers reject or mis-parse.
- Variable-length AI not terminated by FNC1 — AI 10 lot followed by AI 17 expiry without separator; AI 10 absorbs the next field's digits and you get garbage.
- Date AI in wrong format — YYYY-MM-DD or MM/DD/YY instead of YYMMDD; symbol structurally invalid.
- Print quality below grade C — scans on the verifier in QA but fails at the retailer's dock; chargeback.
- Custom in-house AI ranges — non-standard AIs break interoperability with every external partner.
- Issuing a GTIN you don't own — the GTIN must be allocated from your GS1 company prefix; using a number outside your prefix invalidates the label and is in some jurisdictions actionable.
- Re-using an SSCC within 10 years — violates GS1 General Specifications; receiver's WMS treats your pallet as a duplicate of a historical pallet.
- Missing or violated quiet zone — label designed too tight; symbol decodes inconsistently across reading angles.
11Where GS1-128 shows up in regulated operations
- Inbound from any major food, pharma or supplement supplier — receiving scans the GS1-128 on the pallet; SSCC reconciles to the EDI 856 ASN.
- WMS license plates — one barcode per pallet through the entire warehouse lifecycle from goods-in to ship.
- Pharma case-level — DSCSA in US, FMD in EU. Unit-level rides on GS1 DataMatrix; case-level on GS1-128.
- Retail and grocery outbound — SSCC on every pallet, matched to EDI 856 ASN. Walmart / Tesco / Carrefour / Ahold-Delhaize compliance programmes are GS1-128-based.
- FSMA 204 traceability — Traceability Lot Code, lot, quantity, production date carried on the GS1-128 logistic label.
- ISO 22005 food traceability and BRCGS Issue 9 — GS1-128 is the practical implementation of the identification + lot capture clauses.
Frequently asked questions
Q.Do I need a GS1 company prefix?+
Yes — to issue GTINs and SSCCs that are valid across the supply chain you need a registered GS1 company prefix. In-house numbering only works inside your own four walls and fails the moment a customer or regulator scans your label.
Q.Can a single GS1-128 barcode hold all my AIs?+
Yes within length limits — Code 128 supports up to about 48 characters comfortably and 80 maximum. Typical content labels carry GTIN + batch + expiry + quantity in one symbol. SSCC usually goes on its own to maximise readability at the dock; for very wide payloads (DSCSA case label with multiple serials) consider GS1 DataMatrix instead.
Q.Is GS1-128 the same as GS1 DataMatrix?+
No. GS1-128 is a linear (1D) barcode. GS1 DataMatrix is a 2D matrix code using the same AI structure. DSCSA and EU FMD at unit level, and most UDI unit-level applications, use DataMatrix because of size constraints. The two use the same AI directory, which is what makes them complementary — your kiosk and WMS treat them as the same data model, just decoded from different symbologies.
Q.How do I tell if a printed barcode is GS1-128 or just Code 128?+
Scan with a GS1-aware scanner: GS1-128 transmits with the AIM identifier ]C1 prefix; plain Code 128 transmits with ]C0. If you see ]C0 the FNC1 is missing or mis-placed and downstream parsing will fail.
Q.How often should we verify print quality?+
At minimum per shift per print head with an ISO/IEC 15426-compliant verifier; trend the grade. Declining grade is the leading indicator of print-head failure and customer chargeback. V5 trends grade and opens a maintenance task when median grade falls below C.
Q.Can I re-use an SSCC?+
GS1 General Specifications require an SSCC not be reused within at least 10 years (some sectors longer). Re-use breaks receiver-side WMS reconciliation because the same SSCC may still be in their historical pallet tables.
Q.Does V5 Ultimate replace our label-design software?+
Not for catalogue / consumer-facing label artwork — that lives in your design tool (Illustrator / NiceLabel / BarTender). For operational GS1-128 production (license plates, pallet logistic labels, case labels, kiosk receipt labels) V5 owns the template, the AI completeness validation, the print agent and the print-quality trending. The two coexist on the same product.
Primary sources
- GS1 General Specifications (the binding document for GS1-128, AI directory, FNC1 mechanics, and concatenation rules)
- GS1 Application Identifier directory (live list of every AI with format, length, FNC1 termination rules)
- ISO/IEC 15417:2007 — Code 128 barcode symbology (the underlying symbology GS1-128 sits on top of)
- ISO/IEC 15416:2016 — Bar code print quality test specification — Linear symbols (the A/B/C/D/F grade scale retailers and auditors check)
- FDA — Drug Supply Chain Security Act (DSCSA) — Title II of the Drug Quality and Security Act (US pharma serialisation)
- EU Falsified Medicines Directive 2011/62/EU + Delegated Regulation 2016/161 (EU pharma serialisation using GS1 DataMatrix at unit + GS1-128 at case)
- FDA — Unique Device Identification (UDI) System final rule — 21 CFR Part 801 Subpart B (medical device, GS1 + HIBCC + ICCBBA accredited issuing agencies)
- GS1 Logistic Label Guideline (canonical reference for SSCC pallet labels and the recommended AI layout)
Further reading
- GTINThe Global Trade Item Number — AI 01 — the product identifier most GS1-128 barcodes start with.
- SSCCSerial Shipping Container Code — AI 00 — the 18-digit pallet/case identifier that makes license-plate inventory work.
- UDIMedical-device variant of the same GS1 standards — typically GS1 DataMatrix at unit + GS1-128 at case.
- FSMA 204Why GS1-128 traceability barcodes are now operational baseline across food.
- DSCSAUS pharma serialisation — unit-level on GS1 DataMatrix, case-level on GS1-128.
- EDI 856 (ASN)The Advance Ship Notice that pairs with SSCC license plates so the receiver can reconcile a pallet in one scan.
Explore this topic
GS1-128 sits inside this topic cluster in our glossary. Every neighbour is one click away.
V5 Ultimate ships with the GS1-128 controls already wired in — audit trail, e-signatures, validation evidence. Free trial, no credit card, onboard in days, not months.
