Inventory barcodes
What Is the Best Barcode for Inventory?
There is no single inventory barcode that is best for every company. The right format depends on whether you are tracking internal SKUs, retail products, locations, serial numbers or richer records, and on what your scanners and inventory software support.
Updated September 14, 2026
For a new internal inventory system, Code 128 is usually the strongest 1D starting point because it supports flexible alphanumeric identifiers and is relatively compact. Use UPC-A or EAN-13 when you are scanning assigned retail GTINs, Code 39 when an existing workflow specifically requires it, and QR Code when camera scanning or a richer payload is genuinely useful. The receiving system should decide the format, not visual preference.
Inventory barcode decision table
| Inventory job | Good starting point | Why |
|---|---|---|
| Internal SKU / stock ID | Code 128 | Flexible alphanumeric data and efficient 1D labels |
| Retail product lookup | UPC-A or EAN-13 | Carries the assigned GTIN used by retail systems |
| Legacy system that mandates Code 39 | Code 39 | Compatibility with the established workflow |
| Phone scanning or richer direct payload | QR Code | 2D capacity and broad camera support |
| GS1 logistics / attribute data | GS1-defined carrier | Requires GS1 data structure, not arbitrary generic Code 128 |
Why Code 128 is a strong default for internal inventory
Code 128 is an ISO-standardized linear symbology designed to encode a broad set of characters efficiently. That makes it practical for SKUs, stock IDs, serials and location codes when you control the internal data model.
A Code 128 barcode does not need to pretend an internal SKU is a UPC or GTIN. Your inventory database can simply map the scanned value to the correct record.
Use UPC/EAN when the inventory item already has a retail GTIN
If the inventory system is receiving packaged products that already carry assigned retail GTINs, scanning the existing UPC-A or EAN-13 may be the simplest approach. GS1 states that EAN-13, UPC-A, EAN-8 and UPC-E are commonly used for items sold at retail point of sale and can also be scanned elsewhere in the supply chain.
Do not invent a new retail number just because your internal system needs a barcode. Internal inventory IDs and standardized trade-item identifiers solve different problems.
When QR Code is useful for inventory
QR Code is useful when the scanner is a phone or 2D imager and the symbol needs to carry a URL, more text or a richer payload. It can also work for internal IDs, but encoding extra data directly into the symbol is not automatically better than keeping a short ID and looking up the record in your system.
Keep the data model simple: encode only what the receiving workflow actually needs, and verify that every device in the workflow can read the chosen 2D format.
Choose the workflow before you print thousands of labels
- Define the identifier first: SKU, GTIN, serial number, location code or asset ID.
- Confirm which symbologies your scanners and software accept.
- Test the longest real value at final label size.
- Print and scan a small sample under real lighting and distance conditions.
- Keep human-readable text on operational labels where it helps recovery when scanning fails.
Common questions
Frequently asked questions
What barcode is best for a small inventory system?
If you control the system and use internal alphanumeric IDs, Code 128 is usually a practical starting point. Verify scanner and software support before standardizing.
Can I use UPC barcodes for inventory?
Yes when the items already have assigned GTIN-12/UPC values and your inventory system uses those product identifiers. UPC should not be invented as an internal SKU format.
Can I use QR codes for inventory?
Yes, especially with phone or 2D-imager workflows. Use QR when its extra capacity or direct-link behavior is actually needed.
Is Code 128 the same as GS1-128?
No. GS1-128 uses the Code 128 symbology with GS1-specific structure and Application Identifiers. Generic Code 128 is not a substitute when GS1-128 is required.
Sources & standards
Technical claims in this guide are checked against primary or official documentation where available.