Barcode help · Revised
EAN vs UPC vs Code 128: which barcode do I need?
Start with the system that receives the scan. A shop checkout needs a recognised product identifier; your stock application may accept a reference you create yourself; a customer’s logistics label may require a specific GS1 format. A barcode that scans successfully can still be the wrong choice for the job.
Separate the number from its picture. A GTIN identifies a trade item. EAN-13, UPC-A and ITF-14 are ways to represent identification data as bars. Code 128 is a general-purpose barcode symbology. Creating an image does not allocate a GTIN, register a product or create a record in a retailer’s database.
Have the required format and data? Use the generator to prepare the image, then test it in the receiving workflow.
Open the barcode generatorChoose by scanning workflow, not by appearance
| Your situation | Start here | Confirm before generating |
|---|---|---|
| A packaged product sold through a retailer | The accepted retail symbol, commonly EAN-13 or UPC-A | The assigned GTIN and the retailer’s format and artwork requirements |
| A very small retail pack | Discuss EAN-8 or eligible UPC-E with GS1 and the retailer | Eligibility; neither is an arbitrary shortened EAN-13 |
| An asset or stock location in your own system | Consider Code 128 if your application accepts it | Allowed characters, identifier length and scanner settings |
| A customer’s existing industrial label | The specified format, possibly Code 39 | Basic or extended encoding, check-character rules and exact data |
| An outer case identified by GTIN | Consider ITF-14 or GS1-128 as required | Packaging-level identification and whether extra fields are needed |
| A carrier parcel label or logistics unit | The carrier’s label or the customer’s logistics specification | Required identifiers, data syntax and label layout |
Ask this first: “What barcode format and sample decoded value does your system expect?” A reply naming only a scanner model is incomplete: the software receiving the scan also has to understand the data.
What each format carries
| Format | Data | Important limitation |
|---|---|---|
| EAN-13 | 13 digits including a check digit | Use the assigned product identifier; digit count alone does not establish allocation |
| UPC-A | 12 digits including a check digit | Common on North American retail packaging; confirm the trading partner’s requirements |
| EAN-8 | 8 digits including a check digit | Carries a GTIN-8 allocated for that purpose |
| UPC-E | A compact representation of an eligible UPC-A identifier | Scanners may expand it to UPC-A; preserve the intended identifier in your system |
| ITF-14 | A GTIN represented as 14 digits | Does not add batch, expiry or serial fields |
| Code 128 | ASCII data, with numeric-pair encoding available | Not arbitrary Unicode; supported input depends on the implementation |
| Basic Code 39 | A–Z, 0–9, space and the characters - . $ / + % | Extended Code 39 is a separate mode requiring compatible decoding |
| GS1-128 | GS1 Application Identifiers and their data fields | Requires GS1 encoding rules, including FNC1; ordinary Code 128 is insufficient |
The current eToolPlus generator offers EAN-13, UPC-A, EAN-8, UPC-E, ITF-14, Code 128 and Code 39. GS1-128 is included here to explain the distinction, not to claim a supported GS1-128 export mode. Its Code 128 encoder rejects characters above ASCII 126 and limits input to 80 characters. Those are tool limits, not universal limits for every Code 128 implementation.
Dimensions are deliberately not reduced to one “standard image size” in this comparison. The encoded content, module width, bar height and quiet zones affect the footprint. Use the barcode size guide once the correct format is known.
EAN and UPC identify products; geography is only a starting clue
UPC-A is widely used in the US and Canada, while EAN-13 is common elsewhere. That convention is useful context, but your own location is not the deciding rule. Check the identifier already assigned to the product and the requirements of the retailer or marketplace. If you resell an existing branded product, obtain its authorised product data rather than inventing a replacement number.
What a leading zero changes—and what it does not
A UPC-A identifier can be represented as EAN-13 by adding a leading zero. That is a different-length representation of the same identifier, not a newly allocated product number. The reverse conversion is only possible for an EAN-13 beginning with zero. Do not remove a nonzero first digit to force another EAN-13 into a UPC-A field.
Keep identifiers as text in spreadsheets and imports. If leading zeros disappear, a correct symbol can end up connected to an incorrect lookup value. Ask whether the receiving system expects 12, 13 or a zero-padded 14-digit representation, and test the full import-and-scan process.
Small packs need an identification decision
EAN-8 carries a separately assigned GTIN-8. UPC-E compresses only eligible UPC-A numbers using defined zero-suppression rules. Neither option means deleting digits from the number on your existing product. Packaging space, allocation and retailer acceptance should be resolved together. See GS1’s EAN-8 guidance and the GS1 General Specifications.
For a new own-brand product, start with the product identification guide. A calculated check digit confirms a mathematical rule; it does not establish ownership, allocation or retailer registration.
Code 128 and Code 39: design the identifier before the label
For a system you control, Code 128 is worth testing when you need letters, digits and punctuation. It often takes less width than Code 39 for comparable content, especially long numeric runs. Basic Code 39 remains appropriate when an established application or customer requires it. See TEC-IT’s explanation of Code 128 encoding.
Example: identifying a shelf is different from identifying a product
A stock-location label might contain RACK-B-04; an asset label might contain EQ-002184. These are illustrative internal references, not allocated GTINs. Before generating a sequence, define which record each reference identifies, make it unique within the intended system and decide what happens when equipment is moved or retired.
- Try a scan into the actual application, not just a text editor.
- Check whether case, spaces and punctuation are preserved or normalised.
- Test the longest real reference: a short sample can hide a label-width problem.
- Confirm any scanner-added prefix, suffix or Enter key does what the application expects.
The bulk and numbering tools help produce sequences, and label sheets help arrange them. Generating a sequence does not check it against identifiers already used in your asset database.
Cases, parcels and GS1-128: three different requirements
A trade-item case
ITF-14 can carry a case’s GTIN and is used on distribution packaging, including corrugated cartons. It does not carry a list of the products inside. The responsible organisation must assign the packaging-level identifier and associate it with the correct product and quantity.
An indicator digit is not a pack-count code. There is no universal rule that 1 means twelve units or 2 means twenty-four. Any illustrative assignment needs its own product record. Recalculating a check digit or using the generator’s carton-number helper does not authorise a new commercial identifier. See GS1’s packaging-level GTIN rules.
A label with batch, expiry or logistics data
A customer may require GS1-128 with Application Identifiers describing the fields. It uses Code 128 bar patterns with additional GS1 rules. Typing parentheses and numbers into an ordinary Code 128 input does not insert the required FNC1 or field separators. Obtain the customer’s data specification and use an encoder explicitly supporting it. GS1 explains the GS1-128 structure.
A carrier parcel or individually tracked logistics unit
Use the carrier’s generated label for its service. For a GS1 logistics workflow, ask whether an SSCC is required to identify the individual logistics unit. A case’s product GTIN and a logistics-unit identifier serve different purposes; adding a generic barcode to a box does not create a compliant shipping label. See the GS1 Logistic Label Guideline.
QR codes: distinguish a web link from retail identification
An ordinary QR code linking to your website is useful for instructions or customer support. It should not be assumed to provide the product identifier expected at checkout. However, it is also inaccurate to say that QR codes can never serve retail point-of-sale workflows.
GS1 specifies 2D retail options, including QR Code with GS1 Digital Link URI syntax. Adoption depends on retailer systems and the agreed transition plan. GS1’s industry ambition is for retail point-of-sale systems to read and process defined GS1 2D formats alongside existing linear codes by the end of 2027; that goal does not mean every checkout is ready today. Consult GS1’s Ambition 2027 explanation and its retail implementation guidance before changing packaging.
For ordinary website links, use the QR code generator. This guide does not claim that its general URL mode validates GS1 Digital Link syntax or provides a compliant retail packaging workflow.
Before ordering labels, check these five things
- Requirement: record the recipient’s accepted format, syntax and label specification.
- Identity: confirm that the number refers to the correct item, package level, asset or location.
- Data: compare the decoded value with the approved record, including zeros, punctuation and any expected formatting.
- Artwork: preserve quiet zones and required dimensions. Test the finished material after printing and applying the label.
- Acceptance: run a trial in the real receiving application. Arrange formal print-quality verification if the trading partner requires it; a camera decode is not a quality certificate.
Common questions
Can I use Code 128 for a shop’s checkout barcode?
Do not substitute ordinary Code 128 for the retail format requested by the shop. It can be useful for your own stock handling while the same product carries its required retail identifier. The retailer decides what its checkout accepts.
Does the check digit prove that a barcode number is genuine?
No. It detects certain number-entry errors. It does not establish who allocated the number or which product owns it. Confirm the identifier through the appropriate authorised records.
Does a UPC or EAN prefix tell me where the product was made?
Do not use the prefix as a country-of-manufacture statement. Product origin should come from the responsible supplier’s product information, not an assumption about the barcode number.
Will the barcode store a price?
A conventional product GTIN normally lets the retailer look up a product record containing its price. It does not automatically upload your price to the shop. Specialised variable-measure workflows have their own rules.
Can the same scanner read every format here?
Check both hardware and configuration. Some symbologies may be disabled, and a device able to decode a format may still feed data the application rejects. Test the format, data and receiving screen together.
Prepared by eToolPlus using the linked technical references and a review of the current generator’s supported formats. This guide explains selection; it does not issue identifiers or certify retail or logistics acceptance.