/ developer & network toolbox
← all tools

$ barcode

runs locally

Barcode

Generate CODE128, EAN-13/8, UPC, CODE39 and ITF-14 barcodes. Download PNG or SVG.

barcode — invoker.tools

EAN/UPC check digits are computed automatically. Rendered locally.

About the Barcode

This barcode generator renders linear, one dimensional barcodes in the symbologies most used in retail, logistics and asset tracking: CODE128, EAN-13, EAN-8, UPC, CODE39 and ITF-14. Pick a format, type a value, and the code renders live underneath as you type, with the human-readable digits printed beneath the bars the way a real product label would show them.

Retail formats like EAN-13, EAN-8 and UPC are built around a fixed number of digits plus one final check digit that catches scanning and transcription errors. Working out that check digit by hand is fiddly and easy to get wrong, so this tool computes and appends it automatically: enter only the data digits and a valid, scannable code comes out the other end.

Beyond retail, CODE39 is a common choice for internal asset tags and industrial labeling because it supports uppercase letters and digits without needing a fixed length, while CODE128 packs a wider character set at higher density for shipping labels and logistics IDs. ITF-14 is the format printed on outer shipping cartons to encode a GTIN-14, since its thicker bars stay readable even when printed directly onto corrugated cardboard.

Rendering happens entirely in your browser using the JsBarcode library, so product SKUs, internal asset numbers or anything else you type is never sent to a server. The output downloads as a PNG for quick use or an SVG for clean, infinitely scalable print artwork.

How to use it

  1. Pick the symbology you need from the dropdown: CODE128, EAN-13, EAN-8, UPC, CODE39 or ITF-14.
  2. Enter your value; for EAN-13, EAN-8, UPC and ITF-14 you only need the data digits, not the check digit.
  3. Watch the live preview update as you type and confirm no validation error appears beneath it.
  4. If you see an error, check the digit count and allowed characters for that specific symbology.
  5. Download the result as PNG for quick digital use, or SVG for a crisp, scalable print file.
  6. Test the exported barcode with an actual barcode scanner or phone scanning app before mass printing.

Examples

  • Type the first 12 digits of an EAN-13, such as 590123412345, and let the tool append the 13th check digit.
  • Encode an internal asset tag like ASSET-00482 as CODE128, which allows letters, numbers and hyphens.
  • Generate an ITF-14 code for a shipping carton by entering a 13 digit GTIN and letting the check digit complete it.
  • Use CODE39 for a warehouse bin label reading BIN-A14, since CODE39 supports uppercase letters and digits.
  • Enter an 11 digit UPC-A value like 03600029145 to get a US retail barcode with its check digit added.
  • Encode an 8 digit value for small packaging where a full EAN-13 would not fit, using the EAN-8 format.

Barcode symbology comparison

Each symbology exists for a reason tied to digit count, character set or physical printing constraints. Picking the wrong one is the single most common barcode mistake, since a scanner configured to expect EAN-13 will simply reject a CODE39 label.

  • CODE128: variable length, full alphanumeric plus symbols, high density; used for logistics IDs, internal SKUs and shipping labels.
  • EAN-13: fixed 13 digits (12 data plus 1 check digit); the global standard for retail product barcodes outside North America.
  • EAN-8: fixed 8 digits; a compressed EAN variant for packaging too small for a full EAN-13, like small cosmetics or candy.
  • UPC (UPC-A): fixed 12 digits (11 data plus 1 check digit); the retail standard in the United States and Canada, structurally a close cousin of EAN-13.
  • CODE39: variable length, uppercase letters, digits and a limited symbol set; common for industrial asset tags, badges and internal inventory, no check digit required.
  • ITF-14: fixed 14 digits, thick interleaved bars; used on outer shipping cartons to encode a GTIN-14, designed to stay scannable when printed directly on cardboard.

How the check digit is calculated

EAN-13, EAN-8, UPC and ITF-14 all use a modulo 10 checksum: each data digit is multiplied by an alternating weight of 1 and 3 (reading positions from the right), the results are summed, and the check digit is whatever value brings that sum to the next multiple of 10. It exists purely to catch a single mistyped or misread digit; it is not a security feature. This tool computes it for you, so you never need to enter it yourself for EAN-13, EAN-8, UPC or ITF-14.

Getting a vector file for professional print (EPS and beyond)

A common request is an EPS file, since that is the vector format many print shops and packaging design tools expect. This tool exports SVG rather than EPS directly, but SVG is the same category of file: fully vector, infinitely scalable, and readable by every modern design application. To get an EPS specifically, open the downloaded SVG in Adobe Illustrator or the free Inkscape and use File > Save As / Export to convert it, which takes seconds and loses no quality since both formats describe the bars as vector paths rather than pixels.

Common mistakes that cause a scan failure

Barcodes look simple but a surprising number of printed codes fail on real scanners for predictable reasons.

  • Choosing the wrong symbology for the receiving system, such as printing CODE128 where a POS system expects strict EAN-13.
  • Shrinking a raster PNG below the resolution it was exported at, which blurs bar edges and breaks scans; use the SVG export instead when resizing.
  • Removing the quiet zone (the blank margin around the bars) when cropping or placing the code in a layout.
  • Trying to enter a check digit manually for EAN/UPC/ITF-14 formats where the tool already computes one, resulting in a mismatched or invalid code.
  • Using CODE39 with lowercase letters or unsupported symbols; the format only guarantees uppercase letters, digits and a small symbol set.
  • Skipping a real scanner test and only checking the barcode visually before printing at volume.

Frequently asked questions

Which barcode types are supported?

CODE128, EAN-13, EAN-8, UPC, CODE39 and ITF-14. Together these cover most retail product labeling, industrial asset tags and shipping carton codes.

What is a GTIN-14 barcode generator and does this tool cover it?

GTIN-14 is a 14 digit identifier used on shipping cartons and cases rather than individual retail units, and it is encoded using the ITF-14 symbology, which this tool generates directly with the check digit computed automatically.

Is there a 12 digit barcode generator here?

Yes, that is UPC-A: select UPC from the symbology dropdown and enter 11 data digits, and the tool appends the 12th check digit automatically.

Can I generate a barcode as a vector file, like EPS?

The direct export is SVG, which is a vector format. To get an EPS specifically for a print workflow, open the downloaded SVG in Illustrator or Inkscape and export it as EPS, with no quality loss.

Can I turn an Amazon ASIN directly into a barcode?

Not directly. An ASIN is Amazon's internal catalog identifier, not itself a scannable barcode standard; Amazon listings that require a barcode need a separate UPC or EAN, which you can generate here once you have that number.

What is the check digit and is it added for me?

It is a final digit calculated from the others using a modulo 10 formula, used to catch a single misread or mistyped digit during scanning. For EAN-13, EAN-8, UPC and ITF-14 this tool calculates and appends it automatically, so you only enter the data digits.

Which symbology should I choose for a retail product?

Use EAN-13 for most international retail products, or UPC-A specifically for the US and Canadian market. Use EAN-8 only when the packaging is too small for a full EAN-13.

Is this a free barcode generator with no limits?

Yes, there is no signup, no watermark and no cap on how many codes you generate; everything runs locally in your browser at no cost.

Why does the tool show an error for my value?

Each symbology enforces its own rules: EAN and UPC formats expect a specific digit count and numeric-only input, while CODE39 rejects lowercase letters and unsupported symbols. The error message names the exact symbology the value failed against.

Is any of my product data sent to a server?

No. Barcode rendering happens entirely client-side in your browser using the JsBarcode library, so product codes and asset numbers never leave your device.

More generate tools