Skip to content
ForgePlug — Logo
All resources
Barcode Guides

Barcode Formats Explained: CODE128, EAN, UPC, and When to Use Each

Not all barcodes are the same — CODE128, EAN-13, UPC-A, Code 39, and ITF-14 each serve different purposes. Here's how to pick the right format for your product, label, or system.

5 min read · By ForgePlug Team · Published August 20, 2026

A barcode is a machine-readable representation of data — a pattern of lines (1D) or dots (2D) that a scanner decodes into numbers or text in milliseconds. Choosing the right barcode format determines whether your code works at a retail checkout, in a warehouse, or only on your own internal systems. The choice isn't cosmetic — it's functional.

The main 1D barcode formats

  • CODE128 — the workhorse. Encodes all 128 ASCII characters (letters, numbers, symbols). Compact, widely supported, and used for everything from internal SKUs to shipping labels. If you're generating barcodes for your own use and don't need retail compliance, CODE128 is usually the right choice.
  • CODE39 — older and roomier than CODE128. Encodes uppercase letters, digits, and a few symbols. Still common in industrial, government, and healthcare settings. Fine for asset tags, but CODE128 is denser and more versatile.
  • EAN-13 — the retail standard for products sold outside North America. 13-digit codes assigned by GS1. Used at point-of-sale scanners worldwide. You need a legitimate GS1 company prefix to generate valid EAN-13 codes.
  • UPC-A — the North American retail standard. 12-digit codes, also assigned by GS1. Functionally equivalent to EAN-13 for domestic US/Canada retail.
  • ITF-14 — used on cartons and outer packaging for retail distribution. Encodes 14 digits and is designed to be printed on corrugated cardboard.

When you need a retail barcode vs an internal one

  • Retail (EAN/UPC) — required when selling through retailers, distributors, or marketplaces that scan at checkout. These codes are globally unique because they include a GS1-assigned company prefix. You cannot make up your own EAN/UPC — doing so risks collision with another company's product.
  • Internal (CODE128/Code 39) — used for your own inventory, asset tracking, shipping labels, and internal workflows. No registration required. Generate as many as you need with any numbering scheme you choose.
  • Hybrid — many businesses use CODE128 for internal tracking AND an EAN-13 for retail. Both barcodes can reference the same product but serve different systems.

UPC and EAN codes are regulated

Anyone can generate a CODE128 barcode for internal use. But UPC-A and EAN-13 encode GS1-allocated company prefixes — printing your own random UPC could collide with another company's product. If you're selling through retail channels, buy legitimate GS1 codes from GS1 (or use a marketplace's assigned codes). For internal SKUs and asset tags, CODE128 is free and unlimited.

A practical example

A small candle maker ships 50 orders a week. Internal workflow: each product gets a CODE128 label with the SKU (e.g., 'SKU-1042') and a human-readable name underneath. The barcode scanner app reads the SKU and matches it to the order spreadsheet. Retail expansion: the same products need UPC-A barcodes for a local boutique's checkout system. The boutique requires GS1-registered codes, so the maker purchases a GS1 company prefix and generates UPC-A barcodes for each product variant. Two barcodes, two systems, one product.

Generate a barcode now

ForgePlug's Barcode Generator supports CODE128, CODE39, EAN-13, EAN-8, UPC-A, UPC-E, ITF-14, and more — with validation, sizing, and print-ready PNG/SVG export.

Open Barcode Generator

More Barcode Guides