Home · Learn · GS1-128: The Logistics Barcode with Structured Data
GS1-128: The Logistics Barcode with Structured Data
GS1-128 is a Code 128 barcode carrying a structured GS1 Application Identifier payload — GTIN, lot, expiry, serial, SSCC, and 100+ other AIs. Used on shipping labels, pallet tags, and DSCSA pharma when 2D is not an option.
GS1-128 (formerly called UCC/EAN-128) is a specific use of the Code 128 barcode symbology that encodes GS1 Application Identifier (AI) strings. The visual bars are identical to plain Code 128, but the first character is FNC1 (Function 1), which signals to scanners that this is a structured GS1 payload. Receiving systems can then parse out GTIN, lot, expiry, serial, and other AI fields automatically.
GS1-128 is the dominant 1D logistics barcode worldwide. You will see it on shipping cartons, pallet labels (with the (00) SSCC AI), DSCSA pharma packaging (where 2D will not fit or is non-mandatory), and the Walmart/Costco/Carrefour inbound-shipping requirements. Its big advantage over plain Code 128 is that scanners parse fields without custom integration — the AI prefixes tell every conformant system what each value means.
How GS1-128 differs from plain Code 128
Both render the same vertical-bar barcode using the Code 128 character set. The difference: GS1-128 starts the data with FNC1, then concatenates AI-prefixed fields like (01)10312345678906(17)260131(10)LOT42. Plain Code 128 has no FNC1 and encodes any string — internal SKUs, package IDs, freeform tracking numbers. A scanner reading a GS1-128 detects FNC1 and parses fields; reading a plain Code 128 it just returns the raw string. Build either at /tools/gs1-128-builder or /generators/code-128.
Application Identifiers commonly used in GS1-128
(01) GTIN-14 — always 14 digits, fixed-length. (00) SSCC-18 — 18-digit shipping container code, fixed-length. (10) Batch/lot — up to 20 chars, variable. (21) Serial — up to 20 chars, variable. (17) Expiry YYMMDD — fixed 6-digit. (11) Production date YYMMDD. (15) Best before YYMMDD. (30) Variable count of items. (37) Number of trade items in logistics unit. (310y) Net weight kg with implied decimal. (3920) Amount payable, single monetary area. Variable-length AIs require FNC1 separator between them; fixed-length AIs do not.
Where GS1-128 is required
Walmart Retail Link: outer case ITF-14 or GS1-128 with (01) GTIN, (15) best before for grocery, sometimes (00) SSCC for pallets. Costco/Sam's Club: GS1-128 SSCC labels on pallets, plus carton-level. DSCSA pharma: GS1-128 with (01)(17)(10)(21) where 2D DataMatrix is not used. Healthcare EDI 856 advance ship notices: GS1-128 SSCC for shipment hierarchy. EU food traceability: GS1-128 with batch + expiry on cases.
How to generate a valid GS1-128
Use the GS1-128 builder at /tools/gs1-128-builder which knows AI rules — variable-length AIs need FNC1 separators, fixed-length AIs do not, check digits on (01) GTIN-14 and (00) SSCC must validate, dates must be valid YYMMDD. The builder renders directly to PNG/SVG/PDF. After building, the payload string can also be used for /learn/gs1-datamatrix (the 2D version) — same AI rules, different symbology.
FAQ
What's the difference between GS1-128 and Code 128?
Code 128 is the underlying symbology — the bars and character set. GS1-128 is a specific use of Code 128 where the data starts with FNC1 and follows the GS1 Application Identifier syntax. Visually identical; the data parsing differs.
Do I need a GS1 prefix to use GS1-128?
If you are encoding a GTIN (AI 01) or SSCC (AI 00), yes — those numbers must come from your GS1 Company Prefix. If you are only encoding internal data with non-product AIs (like (8003) GRAI for reusable assets), you do not technically need GS1 registration, but standard practice is to register if you are using GS1 standards seriously.
Can I use GS1-128 for DSCSA pharma?
GS1-128 is acceptable under DSCSA where 2D codes are not used — for example on shipping cartons and pallets. For per-unit saleable serialization, GS1 DataMatrix is the dominant choice. Both encode the same AI string, just different symbologies.
What's an SSCC and how does it fit in GS1-128?
SSCC (Serial Shipping Container Code) is an 18-digit GS1 number identifying one specific pallet, case, or shipping container. It is encoded in GS1-128 with the (00) AI prefix and used on pallet labels for EDI Advance Ship Notice (ASN/856) reporting. Walmart and Amazon Vendor Central both require SSCC labels on inbound pallets. Build them at /tools/sscc-generator.
How big does the GS1-128 barcode need to be?
Minimum X-dimension 0.495mm (about 19.5 mil) for trade items at point of sale, 1.0mm for distribution. Quiet zones at least 10 times X-dimension on each side. Print at 100% magnification when possible; GS1 publishes sizing tolerance tables at gs1.org/standards/barcodes.
Related generators
Need a real barcode now?
Generate a valid Code 128 barcode in seconds — no signup, no watermark. Free for casual use; paid plans from $9/mo for higher volume.