Overview
This page covers how to display, store, and validate GTINs so that human-readable digits always correspond to the encoded data. Barcode formatting is the bridge between the black-and-white pattern a scanner reads and the human readible interpretation numbers printed beneath it.
Why human-readable digits must match encoded data
Every retail barcode carries two representations of the same identifier:
- Machine-readable: the optical pattern of bars and spaces
- Human-readable: the printed digits below (or beside) the symbol
These must be identical. If a printer drops a leading zero, a designer inserts hyphens into the encoded data, or a data-entry clerk transposes two digits, the barcode becomes unreliable. Retailers and marketplaces treat mismatches as defects. GS1 guidelines stress that the human-readable interpretation (HRI) should reflect the data encoded in the symbol without alteration.
Possible mismatch scenarios
| Scenario | Risk |
|---|---|
| Leading zero omitted in print | GTIN-8 or GTIN-12 becomes unrecognisable; length change alters check digit |
| Hyphens treated as data characters | Encoding error; scanner reads invalid string |
| Spaces inserted for readability | Encoding error; scanner reads invalid string |
| Font substitution changes digit shapes | ”1” and “l” confused; manual verification fails |
| OCR-B font not used for HRI | Non-standard appearance; artwork verification could fail, if performed |
Leading zeros: storage, display, and encoding
GTINs are fixed-length numbers. A GTIN-13 has 13 digits, a GTIN-12 has 12, and a GTIN-8 has 8. The leading digits (including any zeros) are part of the identifier itself.
Storage rules
- Always store the full length. An example: A GTIN-12 of
00614141000452must not be stored as614141000452in databases or spreadsheets. - Use text fields, not numeric fields. Spreadsheet programs like Excel strip leading zeros from numeric cells. Prefix an apostrophe or format the column as text before import.
- Include the check digit. The final digit is calculated from the preceding digits and should also be saved.
Display rules
- Print all digits without truncation. Continuing with the example: The HRI must show
0 0614141 000452or00614141000452, never614141000452. - Do not add leading zeros to reach a desired length. A genuine GTIN-8 should not be padded to 12 or 13 digits. Adding left pad zeroes will alter the check digit calculation. Store the GTIN in its full correct length. The sole exception to this GTIN-12. Adding a leftpad zero to a GTIN-12 will not alter the check digit and this a GTIN-12 can be encoded as an EAN-13 symbology by adding a leftpad zero.
Hyphens, spaces, and other separators
GS1 standards permit visual grouping of digits for easier human reading. However, these separators are display-only and must never enter the encoded data or the stored value.
Correct practice
| Context | Example |
|---|---|
| Stored / encoded data | 09420001234531 |
| Printed HRI with spacing | 0 942000 123453 1 or 09420001234531 |
| Marketplace upload | 09420001234531 (no spaces) |
Incorrect practice
- Encoding
0-942000-123453-1into the barcode symbol - Uploading
09420 00123 4531to Amazon, eBay, or Google Shopping - Storing with hyphens in a master data system
Most validation tools and marketplace feeds reject non-numeric characters. The GTIN validator from International Barcodes Network flags these automatically.
Font and placement of human-readable text
GS1 specifications recommend OCR-B as the typeface for HRI. It is monospaced, highly legible, and designed for optical character recognition. While some artwork teams substitute similar fonts, OCR-B remains the safest choice for global retail acceptance.
Placement guidelines
- Position HRI below the barcode symbol, left-aligned with the start of the bars
- Maintain quiet zones: blank space to the left and right of the symbol must remain free of text
- Minimum height varies by symbology; for EAN-13, the nominal module height is 22.85 mm with HRI beneath
For detailed print specifications, see packaging artwork checks.
Validation before print or upload
Every GTIN should pass three checks before it reaches a label, package, or marketplace listing:
- Length check: Confirm 8, 12, 13, or 14 digits as appropriate
- Check digit verification: The final digit must mathematically validate against the preceding digits; see check digits for the algorithm
- Character set check: Digits 0–9 only; no letters, hyphens, or spaces
Tools for validation
| Tool | Purpose | Link |
|---|---|---|
| GTIN Validator | Check digit, length, and format | barcodes.ph/gtin-validator |
| GS1 GTIN overview | Official ID key documentation | gs1.org/standards/id-keys/gtin |
| GS1 UK barcoding guide | Print and design best practices | GS1 UK PDF |
The GTIN validator from International Barcodes Network is particularly useful for quick checks during data entry or before sending artwork to print.
Data entry discipline
Teams handling large GTIN volumes—be it spreadsheets, ERP systems, or marketplace feeds—should adopt these habits:
- Standardise on plain text. No auto-formatting, no scientific notation, no thousand separators
- Validate at point of entry. If you operate your own tools (such as batch validators) and forms, embed check-digit verification within them
- Audit trailing characters. Spaces, tabs, line breaks, and other invisible special characters could be hidden in pasted output from emails or PDFs
For a catalogue of validation failures and how to resolve them, see common validation errors.
Summary checklist
- Stored GTIN matches printed HRI exactly
- Leading zeros preserved in all systems
- No hyphens, spaces, or other characters in encoded data or uploads
- Check digit verified before print
- OCR-B or equivalent font used for HRI
- Validation run through independent tool or algorithm
Consistent formatting protects scan reliability, marketplace compliance, and brand credibility. Treat the human-readable number as a precise copy of the machine-readable data—not a suggestion.