Free for commercial use. No account, no expiry.

ScanCodeGenerator

Free Barcode Generator

By , Ready Utilities

This barcode generator makes a scannable code in Code 128, UPC-A, EAN-13, ITF-14, Code 39, Data Matrix, PDF417 and more. Everything runs in your browser, nothing is uploaded, and the codes are yours to use commercially.

On this page

Build your code

Start from a common job, or set it up yourself.

Encodes the full ASCII set. Best choice for internal SKUs and carton labels.

Any ASCII characters. The check character is calculated for you.

Size, colour and export options

GS1 recommends 0.330mm for EAN-13 and UPC-A on a consumer item.

Never set this to zero. A cropped quiet zone is the most common reason a printed barcode will not scan.

Preview

 

What was checked

    Verify any code by test scanning a printed sample before a production run. Provided as is, and used at your own risk. See the terms.

    Which barcode type do you actually need?

    Picking the wrong symbology is the most common reason a code is rejected downstream. Retail needs a registered GS1 number in a UPC or EAN symbol. Internal tracking can use anything your own scanner reads.

    Character sets, lengths and check digits come from the ISO/IEC symbology specifications. Sizes come from the GS1 General Specifications.
    SymbologyEncodesLengthCheck digitTypical use
    Code 128ASCII 0–127VariableModulo 103, automaticInternal SKU, carton and bin labels
    GS1-128ASCII via AIsMax 48 charactersModulo 103, automaticLogistics labels carrying batch and expiry
    Code 390–9, A–Z, and - . $ / + % plus spaceVariableOptional modulo 43Legacy inventory and asset tags
    UPC-ADigitsExactly 12Modulo 10, requiredRetail checkout in the US and Canada
    EAN-13DigitsExactly 13Modulo 10, requiredRetail checkout worldwide
    EAN-8DigitsExactly 8Modulo 10, requiredItems too small for EAN-13
    ITF-14Digits, even countExactly 14Modulo 10, requiredShipping cartons and cases
    Data MatrixAlphanumeric and binaryVariableReed-Solomon, built inSmall parts, electronics, healthcare
    PDF417Alphanumeric and binaryVariableError correction levelsDriving licences and documents

    This tool cannot issue you a registered UPC

    It draws a valid, scannable UPC-A or EAN-13 image from whatever number you type. It does not and cannot assign you a GS1-registered GTIN. A number you invent will scan, but retailers and marketplaces check that the number is registered to your company, and listings using an unregistered one get rejected.

    What getting a real UPC actually involves

    Sizing and printing

    A barcode that looks right on screen can still fail at the printer. Three things decide whether it scans.

    X-dimension

    This is the width of the narrowest bar, and it sets the size of everything else. The GS1 General Specifications give a minimum of 0.264mm and a recommended 0.330mm for EAN-13 on a consumer item, rising to a 0.495mm minimum on outer packaging. ITF-14 and GS1-128 both sit at 0.495mm minimum. The tool warns when your value falls outside the range for the symbology you picked.

    Quiet zone

    The blank margin either side of the symbol. UPC-A needs at least 9 times the X-dimension on both sides. EAN-13 needs 11 times on the left and 7 on the right. ITF-14 and GS1-128 need 10 times on both. Artwork crowding that margin is a common cause of failed scans.

    Print resolution and scaling

    Export SVG when your label software accepts it, since vector output stays sharp at any size. If you export PNG, use the print or high resolution setting and never resize the image non-proportionally afterwards. Test scan a printed sample before committing to a full run.

    How it works

    Pick a symbology, type your value, and the code redraws as you type. The validation panel tells you what was checked: character set, length, check digit, and whether the size you chose falls inside the GS1 range. Encoding happens in your browser using the bwip-js library, so the value you type is never sent anywhere.

    Sources

    Every specification figure on this page traces to one of the following. Nothing is stated here that could not be checked against them.

    1. GS1 General Specifications size limits, as published by GS1
    2. ISO/IEC 15417, Code 128 symbology specification
    3. ISO/IEC 16388, Code 39 symbology specification
    4. ISO/IEC 16022, Data Matrix symbology specification
    5. bwip-js, MIT-licensed barcode encoder implementing the ISO/IEC symbologies

    Last reviewed 6 September 2026

    This generator is built and maintained by Cedrick Reese at Ready Utilities. Encoding is handled by bwip-js, an MIT-licensed JavaScript port of Barcode Writer in Pure PostScript, which implements the ISO/IEC symbology specifications directly. The character set, length and check-digit rules shown in the validation panel are taken from those specifications, and the X-dimension, height and quiet-zone figures come from the GS1 General Specifications size limits as published by GS1. Those figures are rechecked against the current published specification whenever this page is updated, and the library version is pinned so output does not change without a review.

    Common questions

    Can I use these barcodes commercially?

    Yes. Codes you generate here are yours, with no account, no attribution and no expiry. Note that this is a separate question from whether a retail UPC number is registered with GS1, which it is not unless you registered it yourself.

    Do these barcodes expire?

    No. These are static images with no service behind them. There is nothing to switch off and no subscription to lapse. A code stops working only if the number it carries stops being meaningful in your own system.

    Can I get a UPC for free?

    You can generate a UPC-A image for free here. You cannot get a registered GTIN for free. Registration is handled by GS1 and carries a fee, and retailers verify that the number belongs to your company.

    Why will my printed barcode not scan?

    Usually one of four things: the quiet zone was cropped by surrounding artwork, the X-dimension is below the minimum for that symbology, the print contrast is too low, or the image was resized non-proportionally. Test scan a printed sample before a full run.

    Which barcode type should I use for my products?

    For retail checkout, UPC-A in North America or EAN-13 elsewhere, using a GS1-registered number. For internal stock, asset tags and bin labels, Code 128 is the usual choice because it encodes letters and digits compactly. For shipping cartons, ITF-14.

    Is my data sent anywhere?

    No. The barcode is drawn in your browser. The value you type is never transmitted to this site or to anyone else.