My Tool Studio
Generators·4 min read

Barcode Formats Compared: Code 128, EAN-13, and UPC

Every product on a store shelf carries one, and so does nearly every box in every warehouse, yet the stripes are not interchangeable. This is barcode formats compared in practical terms: which symbology suits a retail checkout, which fits an internal asset tag, why EAN and UPC differ by exactly one digit, and what a check digit actually protects you from. If you're staring at the Barcode Generator's format dropdown unsure whether to pick CODE128 or EAN13, the next few sections settle it.

QR

One barcode for the shop, another for the stockroom

Two jobs that only look alike.

Retail barcodes and internal barcodes solve different problems. A checkout barcode must be globally unique, because scanning a chocolate bar in Lisbon has to resolve to the same product as in Osaka, which is why retail numbers are licensed through GS1 and follow rigid digit rules.

An internal barcode answers only to your own systems. The label on a returned laptop or a warehouse bin just needs to match a key in your database, so you get to invent the scheme, mix letters and digits, and skip licensing entirely. Choosing a format starts with knowing which of these two worlds the label will live in.

Barcode formats compared across the eight options

The format dropdown covers the useful spectrum. CODE128 handles full ASCII at high density, making it the modern default for logistics and anything alphanumeric. CODE39 is its older, bulkier ancestor, still required by some military and healthcare systems. EAN13 and its short-form sibling EAN8 rule international retail, UPC rules North American checkouts, and ITF14 marks the corrugated outer cartons that cases ship in.

The last two are specialists: MSI persists in some warehouse shelf labeling systems, and pharmacode exists solely for pharmaceutical packaging control during printing. If none of those niches is yours, the realistic choice is CODE128 for internal work and EAN13 or UPC for retail.

Code 128 barcodes for internal inventory

For barcodes for internal inventory, Code 128 wins on three counts: it encodes letters, digits, and punctuation, it packs them tighter than any other 1D format here, and every scanner gun sold this century reads it without configuration. Your existing SKU scheme survives unchanged.

Try it directly. Input: INV-2026-0042 with CODE128 selected. Output: a crisp symbol with the text INV-2026-0042 printed beneath the bars, and a scanner returns precisely that string, hyphens included, to whatever field has focus. The value is arbitrary, which is the entire point; the barcode is just a fast, typo-proof keyboard.

EAN vs UPC at the checkout scanner

The ean vs upc question is mostly geography. UPC-A carries 12 digits and grew up in North American retail; EAN-13 carries 13 and covers most of the rest of the world. They're siblings, not rivals: prepend a zero to any UPC-A number and you have its valid EAN-13 form, and modern point of sale scanners read both without caring.

Both end in a check digit computed from the preceding digits, which lets a scanner catch misreads instead of charging for the wrong product. This tool computes it for you. Input: the 12 digits 590123412345 with EAN13 selected. Output: a symbol displaying 5901234123457, the final 7 being the calculated check digit. Feed it letters or eleven digits and you get the error alert instead, which is the tool refusing to render an invalid retail code.

Barcode mistakes scanners refuse to forgive

Barcodes fail in predictable ways, and almost all of them are decided before printing:

  • Wrong digit counts for the fixed-length formats; EAN-13 wants exactly 12 input digits, EAN-8 wants 7, and UPC wants 11, with the check digit appended automatically.
  • Printing from a stretched or upscaled raster image, which distorts the bar width ratios that scanners actually measure.
  • Putting a made-up number on a product headed for retail; without a GS1 licensed prefix, the checkout system either rejects it or resolves it to someone else's product.
  • Ink spread on cheap label stock closing the gaps between narrow bars, which is why a test print on the real stock matters.
  • Cropping away the blank space flanking the symbol, since scanners need that margin to find the edges.

Print tips for barcodes that scan the first time

Always print from the SVG download, never from a screenshot, so bar edges stay mathematically sharp at any scale. Keep the human readable digits beneath the bars, because the day a label gets scuffed, a person typing those digits is your fallback. And validate the workflow end to end once: print one label, scan it with the actual hardware, and confirm the value lands correctly in your system before running hundreds.

Barcode Generator or a QR tool for the job

Pick a barcode when dedicated scanner hardware and legacy systems are involved; 1D symbols are what checkout lanes, warehouse guns, and inventory software expect. Pick a QR code when humans with phones do the scanning, since no consumer points a camera at an EAN. The QR Code Generator covers single 2D codes with styling options, and the Bulk QR Generator handles the spreadsheet-length runs. Plenty of warehouses end up with both formats on one label, each serving its own reader.

Try it now

Open Barcode Generator

The tool is one click away. No sign up, no upload, no payment.

Open Barcode Generator