About this tool
Pick a symbology, type the value, and download the result as a sharp SVG or a rasterised PNG. Nine formats are covered: Code 128 for general use, Code 39 for older logistics and ID systems, EAN-13 and EAN-8 for retail products, UPC-A for North American retail, ITF-14 for shipping cartons, MSI for warehouse shelf labels, Codabar for blood banks and libraries, and Pharmacode for pharmaceutical packaging.
The check digit is handled properly, which is the part that decides whether a barcode is right or merely scannable. EAN-13, EAN-8, UPC-A and ITF-14 all end in a GS1 modulo-10 check digit computed over the digits before it. Enter the payload without it and it is calculated and appended; enter the full number and it is verified, and if it disagrees the tool says what the digit should be instead of refusing. A wrong check digit produces a barcode that scans perfectly and identifies the wrong product, so this is worth getting right rather than trusting.
Invalid input is explained rather than rejected. "Code 39 cannot encode @" and "EAN-13 needs 12 digits and you have 11" are answers you can act on; "invalid data", which is what most generators say, is not.
Download SVG if the barcode is going to be printed. It is line art, so it stays sharp at any size — a blurry upscaled PNG is the usual reason a printed barcode will not scan. Everything is generated in your browser, so the product codes and tracking numbers you encode are never sent anywhere.