What GS1 Barcode Standards Actually Define, and What to Watch for in Practice - Sorting Out GTIN, AI, GS1-128, and GS1 DataMatrix
A common source of confusion when introducing barcodes is that requests like “we want a JAN code,” “we want GS1-128,” and “we want a QR code” all get discussed at the same level. In reality, you need to separate four things:
- What you are identifying (the identification key, such as GTIN)
- What attribute information you want to carry (lot number, expiry date, etc.)
- Which symbol represents it (the type of barcode)
- How the system uses it after the scan
GS1 is the international standard that ties these four together.
1. The short answer
- GTIN and the type of barcode are different things. GTIN is the product identification code. EAN/UPC, GS1-128, and GS1 DataMatrix are just ways of representing a GTIN.
- GTIN alone is often not enough. If you need lot numbers or expiry dates, you use GS1 Application Identifiers (AIs).
- Different use cases call for different symbols. POS centers on GTIN, logistics uses GTIN-14 or SSCC, and traceability needs GTIN plus lot, expiry, and serial.
- Being readable is not the same as being usable. You need to design the scanner settings, how the upper system interprets the data, and the rules for updating your product master.
- The retail shift to 2D is still in transition. For the time being, you will need both 2D barcodes and the traditional linear barcodes side by side.
2. The layers of GS1
2.1 Identification codes (what you are identifying)
- GTIN-13: Single items or the smallest trade unit. Used as the JAN code in Japan.
- GTIN-14: Aggregated packaging such as cases or cartons.
- SSCC: Logistics identification at the pallet or case level.
2.2 Application Identifiers (AIs)
AIs are 2 to 4 digit numbers that define the meaning and format of the data carried in a barcode.
| AI | Meaning |
|---|---|
| (01) | GTIN |
| (10) | Lot number (variable length) |
| (17) | Expiry date |
| (21) | Serial number |
2.3 Barcode symbols (how it is represented)
- EAN/UPC (JAN symbol): Carries only the GTIN. Aimed at POS.
- ITF: GTIN only. The thicker logistics barcode.
- GS1-128: GTIN plus attribute information. Used for logistics labels (it is not the same as plain Code 128).
- GS1 DataMatrix: Compact and stores a lot of information. Suited to medical devices and small parts.
- GS1 QR Code: A 2D code. Strong for consumer-facing information.
3. Where people get stuck in practice
3.1 Do not casually reuse GTINs
Once a GTIN is used, it cannot be reused. If the size, content quantity, or sales unit of a product changes, you need a new GTIN. Treating GTIN as “an internal code we can reuse once it frees up” will break consistency with your e-commerce site and inventory system.
3.2 Watch the difference between fixed-length and variable-length AIs
- Fixed-length AIs can be directly followed by another AI.
- Variable-length AIs (like lot number) must be followed by FNC1 (a separator).
- In practice, putting fixed-length AIs first and variable-length AIs after them is the most stable.
3.3 FNC1 is a control character, not a literal string
FNC1 is not the text “FNC1” - it is a control character inside the barcode symbol. Treat scanner output and on-screen display as separate things.
3.4 Pay attention to what the scanner returns
Scanners may prepend an identifier indicating the symbol type (for example ]C1 for GS1-128 and ]d2 for GS1 DataMatrix). When you build a verification system, decide up front whether you receive that identifier or strip it.
3.5 Verify print quality in the actual environment
Even if it looks fine on screen, read rates can drop sharply due to:
- Label printer resolution and thermal transfer conditions
- The material of the cardboard or film
- Glossy or curved surfaces
- Unauthorized shrinking or margin trimming during design tweaks
3.6 Do not crowd multiple barcodes together
Placing a POS JAN code right next to a marketing QR code can cause misreads or slow checkout at the register.
4. The order to roll things out
- Decide the business use case (POS, logistics inspection, or traceability).
- Decide the identification key (GTIN, GTIN-14, SSCC).
- Decide the attributes you need (lot, expiry, serial).
- Decide the symbol (pick the one that fits the use case).
- Decide the scanner output spec (how to handle identifiers and pass data to the upper system).
- Decide product master and change rules (numbering, changes, discontinuation).
- Verify printing on actual goods (real labels, real scanners).
- Run end-to-end business testing (confirm the operation works, not just that the code reads).
5. Summary
- Treat numbers, attributes, symbols, and processing as separate concerns.
- Start the design from who scans what, where, and what they do with it.
- Barcodes are not done when they read. The goal is that they work in the business.
References: GS1 General Specifications, GS1 Japan Basic Guide, GS1 Application Identifiers
Related Articles
Recent articles sharing the same tags. Deepen your understanding with closely related topics.
Sorting out Windows text encodings and line endings - Shift_JIS / UTF-8 / UTF-16, mojibake, CRLF / LF, and why it gets confusing
A practical guide that breaks Windows text-file trouble down into independent pieces — bytes, encoding, BOM, and CRLF / LF — and walks th...
Pseudorandom vs True Random: How to Tell Them Apart
A practical look at pseudorandom and true random numbers across four axes - source, reproducibility, predictability, and speed - covering...
Pitfalls in COM, OCX, and ActiveX Development - Visual Studio Bitness, Registration, and Admin-Rights Traps
The traps that bite COM, OCX, and ActiveX work in practice: 32-bit/64-bit mismatches, regsvr32 vs Regasm, HKCU vs HKLM scope, and admin-r...
Where to `catch`, log, and handle exceptions — sorting out call-hierarchy boundaries and responsibilities for real-world code
A practical breakdown of where in the call hierarchy you should catch exceptions, where the primary log belongs, and where to decide betw...
What ClickOnce Actually Is: How It Works, How Updates Flow, and Where It Fits in Practice
A practical look at ClickOnce — how the manifests, auto-updates, per-version cache, and signing fit together, why it shines for internal ...
Related Topics
These topic pages place the article in a broader service and decision context.
Windows Technical Topics
Topic hub for KomuraSoft LLC's Windows development, investigation, and legacy-asset articles.