Barcode question answer

Code 128, EAN-13 or Code 39: which barcode format should I choose?

For users who are unsure which one-dimensional barcode format fits their business workflow.

Direct answer

Use Code 128 for internal IDs such as orders, assets, warehouse locations and tracking numbers. Use EAN-13 for regulated retail product barcodes. Use Code 39 mainly when legacy equipment or systems require it.

How to choose among common 1D formats

Format
Best for
Notes
Code 128
Orders, assets, warehouse locations, tracking numbers
Flexible, compact and reliable for internal business IDs
EAN-13
Retail product barcodes
Requires valid product numbering rules and check digits
Code 39
Legacy industrial systems and simple equipment IDs
Wider than Code 128 and supports fewer characters

Recommended workflow

1

Check whether it is a retail product barcode

If the barcode will appear on retail packaging, confirm GS1 or local product barcode requirements first.

2

Use Code 128 for internal IDs

Orders, assets, bins, batches and tracking values usually work best with Code 128.

3

Use Code 39 only for compatibility

Choose Code 39 when older scanners or systems require it.

4

Validate characters and length

EAN-13 has strict numeric rules, Code 39 has a limited character set and Code 128 is more flexible.

5

Test with real devices

Before printing a large run, scan the barcode with your actual scanner and system.

Common mistakes

Using random EAN-13 numbers as official retail product barcodes.
Choosing a numeric-only standard for mixed alphanumeric internal IDs.
Checking only image generation without testing business system acceptance.

FAQ

What is the main difference between Code 128 and EAN-13?

Code 128 is for flexible internal IDs, while EAN-13 is a standard retail product barcode with fixed numeric rules.

Can Code 128 be used on product packaging?

It can be used for internal or logistics labels, but official retail product barcodes usually require EAN-13, UPC or another regulated format.

Is Code 39 still useful?

Yes, especially for legacy industrial systems, but Code 128 is usually better for new workflows.