Free barcode generator (EAN-13, Code 128, Code 39...)

A barcode stays useful well beyond major retail: stock tracking, inventory management, internal labelling, or simply needing a scannable identifier for an existing system. This generator produces the most common commercial formats, with automatic check-digit calculation when the format requires it, and systematic verification of the result by re-scanning it.

The check digit, explained simply

EAN-13, EAN-8, and UPC-A formats include a final digit calculated from all the preceding ones following a standardised formula: the check digit. Its job is to catch an error — in entry, transcription, or scanner reading — before it causes a problem further downstream. This tool calculates that digit automatically if you only supply the data digits, or verifies it if you already supply the full code: an incorrect digit is flagged immediately, never silently corrected behind your back.

What this generator doesn't replace

Generating a technically valid EAN-13 code (one that scans correctly) isn't enough to sell a product through organised retail: an EAN number must be officially assigned by GS1 (or the national body under it) to guarantee no other company in the world uses the same identifier. A code generated here with a freely chosen number will work perfectly for internal use (inventory, tracking, labelling specific to your organisation), but will carry no recognised commercial identification value unless it comes from an official assignment.

Choosing the right format

EAN-13, EAN-8, and UPC-A are the retail formats, strictly numeric and with a check digit. Code 128 and Code 39 accept letters and digits, with no check-digit constraint enforced here, and suit internal use well (product reference, tracking code, inventory identifier). ITF-14 is used to identify grouped packaging units — a carton containing several sale units — rather than an individual item.

Verification before printing

As with QR codes, every barcode generated is immediately re-scanned by an independent software reader before being offered for download: concrete proof that the code will work with a real scanner, not just an image that looks like a valid barcode.

Frequently asked questions

What is the check digit on an EAN-13 code?
It's the code's last digit, mathematically calculated from all the preceding digits following a standardised formula (the GS1 standard). Its job is to let a scanner detect a reading or entry error: if the check digit doesn't match the digits before it, the code is considered invalid.
I only have 12 digits, not 13 — what happens?
The 13th digit (the check digit) is calculated and added automatically. This is the most common case: most systems only pass along the first 12 digits, the check digit being a derived value, not information you need to track separately.
What if I enter all 13 digits, but the check digit is wrong?
The tool flags it explicitly rather than silently generating a code with a corrected digit: better to catch a typing or transcription error now than after printing an invalid label.
Is a barcode generated here enough to sell through major retailers?
No: selling a product through major retail with an EAN code requires a code officially assigned by GS1 (or the equivalent national body), which guarantees no other company in the world uses the same number. A code generated here with a number of your choosing will work technically (it will scan), but will have no recognised unique-identification value for retailers unless it comes from an official assignment.
What's the difference between EAN-13, Code 128, and Code 39?
EAN-13/EAN-8/UPC-A are standardised numeric formats used to identify retail products, with a mandatory check digit. Code 128 and Code 39 accept letters and digits, with no check-digit rule enforced by this generator, and are often used for internal tracking (stock, logistics) rather than retail sale.
What is ITF-14 used for?
This format encodes 14 digits and is typically used to identify cartons or grouped packaging units (several sale units packed together), rather than an individual item.