Generators Comparisons

Code 128 vs EAN-13: choose the right barcode for your label

Compare Code 128 and EAN-13, learn what check digits do, and understand why creating a barcode image does not assign a retail product identifier.

Both formats turn data into scannable bars, but they are not interchangeable labels for the same job. An internal stock code can contain letters. A retail product identifier follows a specific numbering system. Choose the data and receiving system first, then generate the artwork.

Compare the data each format accepts

ToolBarKit’s Code 128 option accepts printable ASCII text, making it suitable for your own codes such as BOX-0042. Its EAN-13 option accepts a 12-digit body to calculate the final check digit, or a complete 13-digit value to validate. Preserve leading zeroes by treating identifiers as text.

FeatureCode 128 in ToolBarKitEAN-13 in ToolBarKit
InputPrintable ASCII text12 or 13 digits
Example taskAn internal bin or stock labelArtwork for an assigned retail identifier
Letters allowedYesNo
Check handlingSymbol checksum generatedFinal digit calculated or validated

A barcode image is not a registered product number

GS1’s EAN/UPC family is widely used at retail checkout. The product identifier must be appropriately assigned for the trading relationship; drawing bars around arbitrary digits does not make those digits your globally unique product identifier. Confirm requirements with the retailer or marketplace and the relevant GS1 organization.

Code 128 also does not automatically mean GS1-128. GS1-128 has additional structured data conventions. ToolBarKit’s plain Code 128 output should not be presented as a GS1-128 shipping label.

Sources: GS1: EAN/UPC barcode family · GS1: steps to barcode a product

What the EAN-13 check digit actually checks

For a 12-digit EAN body, multiply alternating digits from left to right by 1 and 3, add the results, then choose the final digit that makes the total a multiple of 10. GS1 documents this calculation. A check digit helps detect some input errors; it does not verify product authenticity or barcode ownership.

Example body: 400638133393
Weighted sum: 89
Check digit: (10 - (89 mod 10)) mod 10 = 1
Complete example: 4006381333931
  • Use the example only to understand the calculation, not as your product number.
  • Double-check the source identifier before generating artwork.
  • If a supplied 13-digit code fails validation, investigate instead of forcing a different digit.

Sources: GS1: calculate a check digit manually

Test the complete label workflow

Generate your chosen format, download SVG for a scalable layout or PNG at an appropriate size, and keep clear space around the bars. Do not squash the artwork horizontally to fit a tiny label.

Scan a printed sample with the actual scanner and software that will receive it. Confirm the scanned value matches the intended identifier, including leading zeroes. A phone recognizing a number is useful, but it does not replace a retailer’s barcode-quality and acceptance requirements.

Common questions

Can I use any 13-digit number on a product?

A valid check digit alone does not establish an assigned retail identifier. Obtain and use product numbers according to your retailer’s requirements and the applicable GS1 process.

Can I put letters in an EAN-13 barcode?

No. EAN-13 uses numeric identifiers. For your own alphanumeric labels, check whether your receiving system accepts Code 128.

Sources and further reading

This guide combines the linked references with examples and the current behavior of ToolBarKit’s tools. Published by the ToolBarKit team; external guidance and tool behavior can change.