Get a barcode in a minute: EAN-13, Code 128, and four more formats. Download a PNG for your label or product card, all right in your browser.
Required: any letters and digits
Pick one of six symbologies (Code 128, EAN-13, EAN-8, UPC-A, Code 39 or ITF-14), type the value and the preview redraws as you go. The PNG downloads straight from your browser tab. Switching format swaps in a valid sample value, so the preview never sits broken while you decide. Code 39 turns lowercase letters into capitals on its own.
Code 128 is the general-purpose one. It encodes the full ASCII set, so letters, digits and punctuation all fit, and it packs them densely, which makes it the usual choice for SKUs, shelf labels, asset tags and shipping references. EAN-13 and its eight-digit sibling are the retail codes used across Europe and most of the world; UPC-A is the twelve-digit North American equivalent. Code 39 is older and wider for the same content but still common in defense and automotive supply chains. ITF-14 encodes a fourteen-digit case number and belongs on the outer carton rather than the item inside it.
A barcode is a picture of a number, and the picture is the easy half. Numbers for products sold through retailers come from GS1, which licenses a company prefix through its national member organizations, and a made-up thirteen-digit value may already be allocated to someone else's product. Generate freely for anything you scan inside your own operation, but get a real number before anything goes on a shelf.
Three things break barcodes in practice. Stretching one horizontally to fill a space changes the ratio of bar widths to gaps, which is the thing a scanner measures, so always scale proportionally. Cropping tight to the bars removes the quiet zone, the blank margin a reader uses to locate the start and end of the symbol. And printing too small, or onto a coarse or glossy label, blurs narrow bars into each other. Keep the human-readable digits switched on where a person may need to type the number by hand, then place the PNG on your label with the collage maker or resize it with the image resizer. For a code that holds a link rather than a number, use the QR code generator.
EAN-13 for a product sold at retail outside North America, UPC-A for one sold inside it, EAN-8 when the package is too small for thirteen digits. Code 128 for anything internal: an SKU, a location, a work order, since it takes letters as well as numbers. ITF-14 goes on the outer carton, not on the item.
The value doesn't fit the symbology. EAN-13 wants exactly 13 digits, EAN-8 wants 8, UPC-A wants 12 and ITF-14 wants 14. The hint under the field gives the rule for whichever format is selected, and when a value breaks it the preview says so instead of drawing a code that would not scan.
Not for a code printed on a shelf-ready product. Retail numbers are issued by GS1 through its national member organizations, and one you make up may already belong to somebody else, whereas this tool only draws the symbol for a number you supply. For stock you scan inside your own warehouse any Code 128 value you like is fine.
It's a check digit, calculated from the twelve before it. Scanners recompute it and reject the read on a mismatch, which is what stops a smudged bar from being read as a different product. The field refuses a thirteen-digit value whose check digit does not add up.
A PNG with the number printed under the bars, unless you untick that option. On the label, scale it proportionally, because stretching the width alone changes the ratio between bars and gaps and that ratio is what a scanner measures. Leave the white space at both ends too, scanners use it to find where the code begins.
No. The barcode is drawn in your browser tab, so the value you type never leaves your device, and there is no account to create or limit on how many codes you make.