The main barcode types fall into two groups. Linear (1D) barcodes store data in bars and spaces: EAN-13, UPC-A, EAN-8 and UPC-E for retail checkouts, ITF-14 and GS1-128 for cases, pallets and logistics labels, GS1 DataBar for fresh food, and Code 128 and Code 39 for internal labels. Two-dimensional (2D) barcodes store data in a grid of squares or dots: GS1 DataMatrix, QR Code (including QR with GS1 Digital Link), PDF417, Aztec and MaxiCode.
Which one you need depends on where the barcode gets scanned and what data it has to carry. A product sold in shops needs an EAN-13 or UPC-A carrying a GTIN. A carton going to a distribution center needs ITF-14 or GS1-128. A shelf label in your own warehouse can use Code 128 with your SKU. This guide lists each type with the data it holds and who issues the number, then maps them to channels and to the product data fields each one depends on.
A barcode symbology is not the number it carries
Two things get called a barcode. The symbology is the pattern a scanner reads: EAN-13, ITF-14, QR Code. The number is the identifier encoded in it: usually a GTIN (Global Trade Item Number), a SKU or a shipping code. EAN-13 is a symbology; GTIN-13 is the 13-digit number it carries. UPC-A is a symbology; GTIN-12 is its number.
The distinction matters in your product data. A marketplace or Google Merchant Center asks for the number, not the image. One product keeps one GTIN whether it is printed as an EAN-13 on the box or encoded in a QR Code next to it. Our GTIN vs UPC vs EAN guide explains the naming and the four GTIN lengths.
Linear and 2D barcodes, and what each can hold
A linear barcode is read along one line, so its capacity is small: an EAN-13 holds 13 digits and nothing else. Most linear GS1 barcodes carry only an identifier. GS1-128 and GS1 DataBar are the exceptions: they can add attributes such as a batch number or an expiry date.
A 2D barcode is read as an image, so it holds far more in less space. According to GS1's 2D barcode page, a QR Code holds up to 7,089 digits or 4,296 alphanumeric characters, and a GS1 DataMatrix up to 3,116 digits or 2,335 alphanumeric characters. Both can carry a GTIN plus attributes like an expiry date or a serial number. They need an image scanner or a phone camera; older laser scanners at the checkout cannot read them.
Retail checkout barcodes: EAN-13, UPC-A, EAN-8 and UPC-E
The EAN/UPC family is built for high-volume scanning at the point of sale. GS1 lists four symbols in it, all readable from any direction and all carrying only a GTIN, with no room for attributes such as a batch number:
- EAN-13: 13 digits, carries a GTIN-13. The standard product barcode in Europe and most of the world.
- UPC-A: 12 digits, carries a GTIN-12. The standard in the US and Canada. A GTIN-12 written with a leading zero is the same number as a 13-digit code, so EAN scanners read UPC-A without trouble.
- EAN-8: 8 digits, carries a GTIN-8. Meant for packs too small for an EAN-13, such as a lip balm. GTIN-8 numbers are issued separately by your GS1 office.
- UPC-E: a compressed UPC-A for small packs. It carries a GTIN-12 with some zeros suppressed, so only GTIN-12s with zeros in the right positions can be printed this way. Ask GS1 US before you plan a pack around it.
- ISBN as EAN-13: books carry an EAN-13 too. The 13-digit ISBN starts with 978 or 979 and is printed as an EAN-13, so bookstore registers scan it like any other product barcode.
Size is part of the standard. GS1 Nederland gives the 100% size of an EAN-13 as 37.29 by 25.93 mm, scalable from 80% to 200%, with a light margin on both sides. Shrinking the bars below that or cutting the height to fit a label is a common reason a barcode fails at the checkout.
Case and pallet barcodes: ITF-14 and GS1-128
Cartons and pallets move through warehouses and distribution centers, where scanners read labels from a distance and printing is often directly on brown corrugated board. GS1's general distribution page describes two symbols for this:
- ITF-14: holds 14 digits, so it carries a GTIN-14 and nothing else. It tolerates rough printing on corrugated material. It is not meant for the consumer unit sold at the checkout.
- GS1-128: holds up to 48 alphanumeric characters per symbol and can carry any GS1 key plus attributes. Data is written as element strings with Application Identifiers, such as (00) for the SSCC shipping code of a pallet, (01) for the GTIN, (10) for the batch or lot and (17) for the expiry date.
A case GTIN-14 is not the consumer GTIN with a digit stuck in front. You add an indicator digit for the packaging level and then recalculate the check digit. Take GS1's own example number, GTIN 9506000134352, on a bottle that ships in a case of 12. The case gets GTIN-14 19506000134359: the leading 1 marks the packaging level and the check digit changes from 2 to 9. Our ITF-14 barcode generator does that calculation for you.
GS1 DataBar for fresh food and variable weight
GS1 DataBar is a linear family for items that need more than a GTIN at the checkout. GS1 describes it as often used for fresh foods, where it can hold a batch number, an expiry date or the item weight next to the GTIN. The family has seven symbols: four that can be scanned at the point of sale and three that cannot. You will mostly meet it on loose fruit, meat and cheese counters.
2D barcodes: GS1 DataMatrix, QR Code with GS1 Digital Link and PDF417
GS1 DataMatrix is a square 2D symbol that uses the GS1 element string syntax, the same Application Identifiers as GS1-128. It is widely used in healthcare for medicines and medical devices, where a GTIN, batch, expiry and serial number must fit on a small pack.
QR Code with GS1 Digital Link encodes a web address that contains the GTIN, for example https://brand.example/01/09506000134352/10/L2611, where 01 marks the GTIN (written as 14 digits) and 10 the batch. A shopper's phone opens the product page; a 2D-capable scanner at the checkout reads the GTIN out of the same code. The GS1 Digital Link dictionary entry explains the URL structure. A plain QR Code with a marketing link carries no GTIN and cannot replace a retail barcode.
PDF417 is a stacked 2D symbology that is not one of GS1's options for the retail checkout. You find it on documents such as ID cards, paper boarding passes and shipping paperwork. Two more 2D types turn up outside retail packaging: Aztec, common on mobile boarding passes and tickets, and MaxiCode, the square code with a bull's-eye center that UPS developed for sorting parcels.
Internal barcodes: Code 128 and Code 39 for SKUs and bins
Code 128 and Code 39 are general-purpose linear symbologies that anyone can use without a GS1 license. Code 39 encodes digits, capital letters and a few symbols; Code 128 encodes the full ASCII character set and prints more compactly. Warehouses use them for SKU labels, bin locations, picking slips and asset tags, such as a shelf label reading BIN-A12-03. Older systems still use Codabar, for example on library books.
Do not confuse Code 128 with GS1-128. GS1-128 is Code 128 with a Function 1 (FNC1) character right after the start character, followed by Application Identifiers, and its data follows GS1 rules. A plain Code 128 with your SKU is fine inside your own building but means nothing to a retailer's checkout or a marketplace.
Barcode types compared: data, use and who issues the number
| EAN-13 | 1D | GTIN-13 | Consumer products, Europe and worldwide | Yes | GS1 member organization (your company prefix) |
|---|---|---|---|---|---|
| UPC-A | 1D | GTIN-12 | Consumer products, US and Canada | Yes | GS1 US (your company prefix) |
| EAN-8 | 1D | GTIN-8 | Very small packs | Yes | GS1 member organization, issued per item |
| UPC-E | 1D | GTIN-12, zeros suppressed | Very small packs, US | Yes | GS1 US; only some GTIN-12s can be compressed |
| ITF-14 | 1D | GTIN-14 | Outer cases on corrugated board | No | You, from your GTIN and an indicator digit |
| GS1-128 | 1D | Any GS1 key plus attributes, up to 48 characters | Pallet and case labels with SSCC, batch, expiry | No | You, under your GS1 company prefix |
| GS1 DataBar | 1D | GTIN plus weight, batch or expiry | Fresh food and variable-weight items | Four of seven versions | You, under your GS1 company prefix |
| GS1 DataMatrix | 2D | GTIN plus attributes, up to 3,116 digits | Healthcare, small packs, serialization | Target: end of 2027 | You, under your GS1 company prefix |
| QR Code with GS1 Digital Link | 2D | Web URI with GTIN and attributes, up to 7,089 digits | Consumer information and checkout | Target: end of 2027 | You, under your GS1 company prefix |
| Code 128 | 1D | Any ASCII text | Internal SKU, bin and asset labels | No | You (no license needed) |
| Code 39 | 1D | Digits, capitals, a few symbols | Internal and industrial labels | No | You (no license needed) |
| PDF417 | 2D | Large text payloads | ID cards, boarding passes, shipping documents | No | Depends on the application |
Sunrise 2027: GS1's move to 2D barcodes at the checkout
GS1 calls it Ambition 2027; GS1 US runs its program for the same goal as Sunrise 2027. The GS1 guideline for 2D barcodes at retail point of sale (release 1.1.0, ratified December 2025) sets the goal that checkout scanning worldwide can read and process the GTIN from both linear and 2D barcodes by the end of 2027. It is an industry target, not a law.
- Three 2D options for the checkout: QR Code with GS1 Digital Link, Data Matrix with GS1 Digital Link, and GS1 DataMatrix.
- Keep the linear barcode: until 90% of point-of-sale scanning can handle GS1 2D barcodes, products with a 2D code on pack still need an EAN/UPC as well.
- Placement: the 2D code goes within 50 mm of the center of the linear barcode, so the cashier scans one spot.
For a brand, the practical step is adding a 2D code that carries the same GTIN as the EAN-13, plus batch or expiry where you track them. That only works if those values exist per product and per production run in your data.
Which barcode each channel or situation needs
- Selling in physical shops: EAN-13 (or UPC-A for North America) with a GTIN licensed to your brand. Use EAN-8 or UPC-E only when the pack is too small.
- Marketplaces such as Amazon: the listing needs the number, a GTIN, not a printed barcode. Amazon's product ID help page says product IDs are confirmed against the GS1 database, so codes bought from resellers can fail when they are registered to another company; see the GTIN exemption guide for products without one. For Fulfillment by Amazon, eligible products are tracked by their manufacturer barcode by default; others need an Amazon barcode, an FNSKU label that starts with X.
- Google Shopping: submit the manufacturer's GTIN for every variant. Google's GTIN rules say not to guess or make up a value, ask for a correct check digit and list prefixes 02, 04 and 2 as restricted ranges that are not valid GTINs.
- Shipping cases to a retailer's distribution center: ITF-14 with the case GTIN-14, or GS1-128 when the retailer wants batch or expiry on the label.
- Pallets: a GS1 logistics label with the SSCC in GS1-128.
- Medicines and medical devices: GS1 DataMatrix or GS1-128, usually with batch, expiry and serial number.
- Your own warehouse, bins and samples: Code 128 with your internal SKU or location code.
Choosing a barcode type
The product data fields each barcode depends on
A barcode is only as good as the field behind it. Before anything is printed or listed, these values need to exist and be correct in your catalog:
- GTIN per sellable variant: one per size, color and pack size. Store it as text so spreadsheets do not drop leading zeros or turn it into 8.71235E+12.
- Packaging level and case GTIN-14: each, inner pack, case and pallet as separate records, each with its own GTIN and quantity per level.
- SKU: your internal code, which may differ from the GTIN. Keep both; channels match on GTIN, your warehouse on SKU.
- Batch or lot number: per production run, needed for GS1-128, DataMatrix and 2D retail codes.
- Expiry or best-before date: per batch, for food, cosmetics and pharmaceuticals.
- Serial number: per unit, only where you serialize (medical devices, high-value goods).
- Net weight or measure: for variable-weight items using DataBar.
- Digital Link URL: the product page that the QR Code resolves to, per GTIN.
Run the checks below on a sample of products before you send artwork to the printer or a file to a marketplace. Most of them take minutes in a spreadsheet and save a reprint.
Checks before you print or list a barcode
Five barcode errors that block listings or scans
- Buying cheap codes from a reseller. The numbers may belong to another company's prefix, and marketplaces that check GS1 data can remove the listing.
- Giving a new variant the old GTIN. A new color, size or pack count is a new trade item and needs its own number.
- Printing ITF-14 on the consumer unit. It is a case barcode; the checkout expects EAN/UPC.
- Putting a Code 128 SKU on retail packaging. Your internal code means nothing outside your warehouse.
- Losing digits in a spreadsheet. A UPC stored as a number loses its leading zero, and a CSV opened in Excel can turn a GTIN into scientific notation. Validate the numbers after every import.
Keeping GTINs and barcode fields complete across a catalog
WISEPIM does not issue or sell GTINs and does not look numbers up in the GS1 registry; you get your numbers from GS1 or from the manufacturer. What it does is keep the identifier fields complete and checked. The free EAN/GTIN validator tests check digits, and the barcode generator draws EAN-13, EAN-8, UPC-A, UPC-E, Code 128, GS1-128 and ITF-14 symbols in your browser as SVG, PNG or PDF, one at a time or up to 500 in a ZIP. The UPC lookup checks a code's check digit and searches public web pages for the product that carries it, with a link to Verified by GS1 for the official record.
Inside a catalog, a Quality Guard rule can block products without a valid EAN from being exported, and EAN-based enrichment runs a cited web search per barcode and fills only the fields you allow.

