How to use
Pick a format and type a value to generate a barcode. For formats with a check digit — EAN-13, EAN-8, UPC-A and ITF-14 — you can type just the data digits and this tool calculates and appends the check digit, or type the full number including the check digit and it verifies it’s correct. Download the finished barcode as PNG or SVG.
Which format to use
CODE128 freely mixes letters, numbers and symbols, so it’s widely used for inventory or order numbers. EAN-13 is the retail product code widely used outside North America (for example Europe and Asia), while UPC-A is used mainly in North America, and EAN-8 is a shorter version for small packaging. ITF-14 is used for shipping cartons rather than individual items, while CODE39 only handles digits, capital letters and a few symbols but stays compatible with older scanners. To actually sell a product with a real EAN or UPC code, you need a number registered with an authority such as GS1. This tool only draws the standard bar pattern (the symbol) for the number you enter — it does not issue numbers.
What the check digit does
A check digit is a verification digit that catches typos or scanner misreads. EAN-13, EAN-8, UPC-A and ITF-14 all use the same GS1 rule: multiply every digit except the check digit by 3 and 1 alternately, starting from the right, add them up, and the digit that makes the sum a multiple of 10 is the check digit. If you type just the digits, this tool does that calculation for you; if you include a check digit, it tells you whether it matches.
Printing tips
If the bars are too thin or there isn’t enough blank space (the “quiet zone”) around the code, scanners can’t find where it starts and ends, which hurts the read rate. Thinner bars and margins let you print smaller, but they also shorten the scanning distance — fine for a checkout counter up close, but leave more room if the code will be scanned from farther away, like in a warehouse.
Privacy
The barcode is generated entirely inside this browser. Whatever you enter is never uploaded anywhere and never touches a server.