In-depth guide

Which Barcode Type Do I Need? A Decision Guide by Job

Which barcode type should I use for my products, cartons, shelves, equipment, or customer links?

Short answer

Choose the barcode by the job it does and by who scans it. Products sold at a store register need UPC-A or EAN-13 with a GS1-issued GTIN, shipping cartons use ITF-14 or GS1-128, labels only your own staff scan can use Code 128 with numbers you make up, and QR codes are for sending phones to a web page.

On this page
  1. Start with the job, not the barcode
  2. The decision table
  3. Products sold at a register: UPC-A, EAN-13 and small-pack versions
  4. Shipping cartons and pallets: ITF-14 and GS1-128
  5. Internal labels: bins, shelves, assets and documents
  6. Links for customers: QR codes
  7. Small parts and healthcare: Data Matrix
  8. Pick your barcode in 5 questions
  9. Worked example: a candle maker with three jobs
  10. Next step

You need a barcode, and the list of options reads like alphabet soup: UPC-A, EAN-13, ITF-14, GS1-128, Code 128, Code 39, QR. Most of them would print fine and scan fine. The question is which one the scanner on the other end expects, and which number belongs inside it.

This guide sorts the choice by job. Find the job you're doing, and the barcode type, the source of the number, and the common mistakes follow from it.

Start with the job, not the barcode

"Which barcode" is really two decisions. The first is the symbology, meaning the pattern of bars or squares, such as UPC-A, Code 128 or QR. The second is the data, meaning the number or text the pattern carries.

For retail products and shipments to other companies, the data comes first. Your customer's systems expect a GS1 identification number, such as a GTIN for a product or an SSCC for a shipment, and that number decides which symbologies are allowed. For labels only you scan, you invent the data and pick whichever symbology fits your scanner and label.

Three questions sort almost every case:

  • Who scans it? A store register, a trading partner's warehouse, your own staff, or a customer's phone.
  • What goes inside? A GS1 number you license, an ID you make up, or a web address.
  • What reads it? Many handheld and checkout scanners read only linear (1D) barcodes. GS1 US notes that older laser scanners at checkout can't read QR codes, so a 2D code is only useful where an imager or a phone camera will see it.

The decision table

Use this table to find your starting point. The sections below explain each row.

JobBarcode typeWhere the number comes fromNotes
Product sold at a U.S. store registerUPC-AGTIN-12 licensed from GS1 USThe default for U.S. retail packaging
Product sold at a register, number issued outside North AmericaEAN-13GTIN-13 from a GS1 member organizationSame symbology family as UPC-A
Very small retail packageUPC-E or EAN-8A GTIN-12 that qualifies for UPC-E, or a GTIN-8 assigned by GS1Only when UPC-A or EAN-13 truly won't fit
Case or carton of identical productsITF-14GTIN-14 (or GTIN-12/13) built from your GS1 Company PrefixPrints well on corrugated; never scanned at the register
Pallet or mixed shipmentGS1-128 with AI (00)SSCC built from your GS1 Company PrefixUsually on a shipping label; can add other data
Carton that must show lot or expiration dateGS1-128 with AI (01) plus (10) or (17)Your GTIN plus your own lot and datesDo this when a customer or regulation asks for it
Warehouse bin, shelf location, internal SKUCode 128Your own numberingCode 39 only if an existing system demands it
Equipment and asset tagsCode 128Your own asset numbersLabel material matters as much as symbology
Documents, work orders, ticketsCode 128, or QR if phones scan itIDs from your own systemFollow the spec of any system that reads it
Link for customersQR CodeA web address you controlPhone cameras read it; checkout lasers don't
Tiny parts, direct marking, healthcareData Matrix or GS1 DataMatrixInternal IDs, or a GTIN with lot, expiry, serialThis site's generator doesn't make Data Matrix

Products sold at a register: UPC-A, EAN-13 and small-pack versions

If a cashier will scan it, use the EAN/UPC family. The GS1 General Specifications say these symbols must be used for all items scanned at the point of sale. In the U.S. that usually means UPC-A, the familiar 12-digit barcode.

EAN-13 is the 13-digit member of the same family and is common outside North America. GS1 US describes EAN-13 as found in the same retail spaces as UPC and recognized globally on its barcode types page. If GS1 US issued your number, print it as UPC-A. If your number has 13 digits that don't start with zero, print it as EAN-13.

Where the retail number comes from

The barcode is just a picture of a number. For retail, that number is a GTIN, and it has to come from GS1, which in the U.S. means GS1 US, either as a single GTIN or as a block under a GS1 Company Prefix. Our step-by-step guide on how to get UPC barcodes covers the options. Licensing terms and fees change, so check GS1 US directly before you buy. This is general information, not legal or financial advice.

A free generator, including ours, draws the bars for a number you already have. It doesn't issue or license numbers. A number you invent may already belong to someone else's product, and a store's system would then ring up the wrong item.

Selling only online doesn't always get you out of this. Some marketplaces ask for a GTIN when you create a listing even though nobody scans it there. [VERIFY]

Small packages: UPC-E and EAN-8

UPC-E and EAN-8 exist for packages too small for a full-size barcode. They aren't simply shorter versions of any number:

  • UPC-E compresses certain GTIN-12s that start with 0 and contain runs of zeros in specific positions. Most GTIN-12s can't be compressed this way. GS1 US says it no longer licenses the UPC-E prefix and points small-package sellers to its other options instead. [VERIFY]
  • EAN-8 carries a GTIN-8, which GS1 member organizations assign one at a time on request, only for items whose packaging lacks room for an EAN-13, according to the General Specifications.

If a UPC-A fits anywhere on the package, including a hang tag or outer sleeve, that is usually simpler than chasing a small-format number.

What about 2D barcodes at checkout?

GS1 US is leading an industry move toward 2D barcodes that can scan at the register. During the transition, GS1 US expects shoppers to see a 2D barcode and a standard UPC side by side, and it says the UPC isn't going away. [VERIFY] For now, a retail product still needs its UPC-A or EAN-13.

Shipping cartons and pallets: ITF-14 and GS1-128

Once products leave your building in cases, the scanner is in a distribution center or a receiving dock. GS1 uses two linear barcodes there, and its general distribution page sums up the split: ITF-14 holds only a GTIN, while GS1-128 can carry any GS1 key plus extra data.

ITF-14 for cases of identical items

ITF-14 encodes a 14-digit GTIN for a case or carton that isn't sold at the register. GS1 US calls it ideal for direct printing on corrugated material, and you'll recognize it by the thick bearer bars around it.

The case number is usually a GTIN-14: an indicator digit from 1 to 8, then the contained product's GTIN without its check digit, then a new check digit. For example, a case built on the GTIN-12 061414112345 with indicator 1 becomes 10614141123459. GS1 US lists creating higher packaging levels, such as a case or pallet, among the things a GS1 Company Prefix allows, so plan on a prefix rather than single GTINs if you need case numbers. [VERIFY] Our ITF-14 guide covers indicator digits, bearer bars and printing on boxes.

GS1-128 for shipments and extra data

GS1-128 is a special form of Code 128 that uses GS1 Application Identifiers (AIs), short numeric prefixes such as (01) for a GTIN, (10) for a batch or lot number and (17) for an expiration date. A single symbol holds up to 48 data characters.

For a pallet or any other logistic unit, the General Specifications make GS1-128 the mandatory barcode for the SSCC, the 18-digit shipment serial number marked with AI (00). That GS1-128 usually sits on a shipping label alongside address text. Use GS1-128 on cases when your customer wants lot numbers or dates in the barcode.

If you ship to a retailer or distributor, their vendor requirements decide which of these you need. Ask for those requirements in writing before you print.

Internal labels: bins, shelves, assets and documents

When only your own staff and software will scan a label, you have freedom. Nobody outside your business needs to recognize the number, so you can design IDs that make sense to you and print them in a general-purpose symbology.

Bins, shelves and internal SKUs

Use Code 128. It encodes uppercase and lowercase letters, digits and punctuation, packs numbers two digits per character, and always includes a check character. Code 39 is older and wider for the same data, and it's worth choosing only when an existing system or customer specifically asks for it. Our Code 39 vs. Code 128 comparison walks through the trade-offs.

Make internal IDs visibly different from retail numbers. A code like BIN-A-0412 can't be mistaken for a UPC, while a bare 12-digit number might be. If your software can only accept EAN/UPC-style numbers, GS1 reserves the 04 prefix for numbers a company assigns for its own internal use, as described in the General Specifications.

Equipment and asset tags

Asset tags work the same way: an asset number you assign, printed in Code 128. The harder decisions are physical, such as label material that survives cleaning, heat or outdoor use, and placement where a scanner can reach. Our asset tag guide covers numbering, materials and records.

Larger organizations that share asset data with outside partners can use GS1's Global Individual Asset Identifier, AI (8004), instead of a purely internal number. Most small businesses don't need it.

Documents, work orders and tickets

Code 128 is a good fit for document numbers, job travelers and work orders scanned at a desk or workstation. If people will present a ticket on a phone screen, or scan it with a phone, a QR code is usually the better match.

If a ticketing platform, government form or industry system defines the barcode, follow that spec exactly. Some of those systems call for 2D symbologies such as PDF417 or Aztec, which this site's generator doesn't create.

A QR code is the right choice when you want someone to point a phone at your packaging, sign or manual and land on a web page. DENSO WAVE, which developed the QR Code, lists high capacity, small print size, damage resistance and readability from any direction among its features.

Put a web address you control into the QR code, ideally a short one that you can redirect later. That way, a printed code keeps working even if the page behind it moves.

A QR code isn't a substitute for a UPC at the register today. GS1 US is promoting GS1 Digital Link, a web address format that carries your GTIN so one 2D code can serve both phones and checkout scanners. That's a larger project than printing a QR code, and it starts with GS1 US guidance.

Small parts and healthcare: Data Matrix

Data Matrix is a square or rectangular 2D code that stays readable at very small sizes. GS1 US notes that 2D codes like Data Matrix can be applied directly to items by dot peening, engraving or etching, for example on reusable medical instruments and machinery, on its barcode types page.

GS1 DataMatrix is the GS1 version. It carries a GTIN plus data such as expiration date, batch or lot number and serial number, and GS1 US says healthcare uses it most often, with regulations often shaping which barcodes that industry uses.

Plain Barcode's generator doesn't make Data Matrix or GS1 DataMatrix. If your parts are too small for a linear barcode, or a healthcare customer or regulation calls for GS1 DataMatrix, use labeling or marking software that supports it, and confirm the exact data requirements first.

Pick your barcode in 5 questions

Work through these in order and stop at the first "yes." Most labeling jobs resolve by the third question.

  1. Will a cashier scan it at a store register? Use UPC-A, or EAN-13 if your GTIN is 13 digits, with a GTIN from GS1. Consider UPC-E or EAN-8 only if a full-size symbol can't fit anywhere on the package.
  2. Will it travel on a case or pallet for another company to scan? Use ITF-14 for a case of identical items identified only by GTIN. Use GS1-128 for an SSCC on a pallet or shipment, or when the customer wants lot numbers or dates. Get the customer's label requirements first.
  3. Will only your own staff scan it? Use Code 128 with IDs you design. Switch to Code 39 only if an existing system, scanner setup or customer requires it.
  4. Will a customer scan it with a phone? Use a QR code with a web address you control.
  5. Must it be tiny, marked directly on a part, or meet a healthcare requirement? Use Data Matrix or GS1 DataMatrix, made with software that supports it.

Whatever you pick, print one test label and scan it with the actual device that will read it in daily use. A barcode that scans on your phone app may still fail on a basic 1D handheld scanner, and the reverse is true for QR codes.

Worked example: a candle maker with three jobs

Suppose you make soy candles in three scents and two jar sizes. You sell through your own website and an online marketplace, and one local gift shop sells them at its register. You also keep raw materials and finished stock in a back room and want to scan items in and out.

Here's how the five questions sort it out.

Products at the register. The gift shop scans at checkout, so each candle needs a UPC-A. Three scents times two sizes is six different products, and each one needs its own GTIN, because the GS1 General Specifications give a separate GTIN to every trade item that differs from another in any respect. Since you have six items, a small block of GTINs under a GS1 Company Prefix may make more sense than single GTINs if you plan to add scents. The jar labels have room for a full-size UPC-A, so UPC-E never comes up.

Online listings. The same six GTINs go into your marketplace listings. You don't need a second set of numbers for online sales.

Shipping. The gift shop picks up a box each month, so no carton barcode is needed. If it later asks for cases delivered to a distribution center, you'd add ITF-14 or GS1-128 labels then. Parcel labels for online orders come from your shipping software or carrier, so you don't design those barcodes yourself.

Bins and shelves. Back-room labels never leave your business, so they use Code 128 with IDs you design. You might label shelf locations SH-A1 to SH-C4 and raw materials with codes like RM-WAX-01 and RM-WICK-02. Finished candles already carry a UPC, so you can scan the product itself and the shelf label together when you move stock.

A link for customers. A card in each order with a QR code pointing to your candle-care page gives buyers something useful to scan.

JobBarcodeNumber sourceHow many
Candles sold at the gift shop and onlineUPC-AGTINs licensed from GS1 US6, one per scent and size
Shelf locationsCode 128Your own IDs (SH-A1 and so on)One per shelf
Raw material binsCode 128Your own IDs (RM-WAX-01 and so on)One per material
Care card in each orderQR CodeA web address you control1 design
Cases to a distribution centerNot needed yetWould require a GS1 Company Prefix0 for now

The result is two symbologies for daily use, one set of licensed numbers, and nothing you don't need yet.

Next step

Write down each labeling job you have, run it through the five questions, and note the barcode type next to it. Then open the barcode generator, choose that type, and print one test label to scan with the device that will read it every day before you print a full batch.

Sources

  1. GS1: GS1 General Specifications Standard
  2. GS1: GS1 Barcodes
  3. GS1: One-dimensional (1D) barcodes for retail general distribution, healthcare and logistics
  4. GS1 US: Types of Barcodes
  5. GS1 US: What is an ITF-14 Barcode?
  6. GS1 US: The World of 2D Barcodes
  7. GS1 US: What is a QR Code
  8. DENSO WAVE: What is a QR Code?

Written by Toma Tomov, editor of Plain Barcode.

How guides are researched and corrected: Editorial Policy. Spotted an error? Email [email protected].