3 Jul 2026 · Blog
GS1-128 explained with real examples
Application identifiers, the FNC1 character, fixed vs variable length, the SSCC and a complete pallet label — decoded on real strings.
GS1-128 is not a barcode symbology of its own. It is Code 128 used according to GS1 rules: a special start (FNC1) that tells the scanner "what follows is GS1 data", and Application Identifiers that give meaning to every field. Understanding those two ideas explains every GS1-128 you will meet.
Example 1: a case of product
(01)17501234567890(17)270315(10)MX-240917
What the scanner receives is: FNC1, then 011750123456789017270315 10MX-240917 with no parentheses. AI 01 says the next 14 digits are a GTIN. AI 17 says the next 6 digits are an expiration date, 15 March 2027. AI 10 says a lot number follows — and because a lot can be 1 to 20 characters, it must be the last element or be followed by another FNC1. The receiving WMS splits the string using those rules, which is why a misplaced field breaks the whole label even though it "scans".
Example 2: variable weight
(01)17501234567890(3102)012750(15)261130
AI 310n carries net weight in kilograms; the fourth digit (here 2) is the number of decimals, so 012750 means 127.50 kg. AI 15 is a best-before date. Both are fixed length, so no separator is needed and the order could be swapped without changing the meaning.
Example 3: two variable fields
(10)MX-240917<FNC1>(21)000482
When a variable-length AI is not last, an FNC1 separator marks where it ends. In the human-readable line the separator is invisible; in the bars it is a real character. Software that lets you type the bars' content as plain text usually cannot insert it — one more reason to build GS1-128 from structured fields rather than a string.
Example 4: the pallet
(00)075012340000001236
The SSCC has exactly 18 digits: extension digit 0, the GS1 Company Prefix 7501234, a serial reference 000000123 you assign and never reuse, and the check digit 6. On the standard GS1 Logistics Label it sits in the bottom section, is the last barcode on the label, at least 32 mm tall, with human-readable digits below in groups for easy keying.
Anatomy of a GS1 logistics label
- Top section: free-format text — sender, receiver, carrier, route. No barcodes.
- Middle section: human-readable interpretation of the GS1 data in a large font (GTIN, lot, dates, quantity).
- Bottom section: the GS1-128 barcodes, SSCC last. Recommended label sizes are 105 × 148 mm (A6) or 4 × 6 in.
Common errors
- Using plain Code 128 without FNC1: the bars look identical but the scanner does not parse AIs.
- Encoding the parentheses.
- Putting a variable-length AI in the middle without a separator.
- Exceeding 48 characters of data in one symbol; split into two barcodes instead.
- Truncating bar height below 32 mm on pallets to fit more text.
EtikStudio builds GS1-128 from separate fields — you choose the AIs, the software adds FNC1 where the standard requires, validates lengths and formats, and computes check digits. The human-readable line is generated from the same data, so what the operator reads is always what the scanner decodes.