Ochrequiet invoicing

Free tool

Barcodes, made honestly.

Code 128 and Code 39 for anything internal — asset tags, shelf labels, work orders. EAN-13, EAN-8 and UPC-A for a real, GS1-assigned retail number, with the check digit validated or computed for you, never invented.

Nothing you type here ever leaves your browser. Every barcode is drawn locally on your device — there's no server behind this page, and no upload.

Ochre does not issue GS1 company prefixes. A retail barcode only means something if the number underneath it was legitimately assigned to you by GS1. This tool will validate or compute a check digit — it will not, and cannot, register a product number on your behalf. See "Can I make up my own EAN/UPC?" below.

Reviewed 2026-08-11

Quiet zone defaults to the GS1/AIM published minimum for the selected type — the blank margin either side that lets a scanner find the start and end of the bars. Widening it never hurts; narrowing it below the default risks misreads.

Enter a value to see the barcode.

A barcode on screen scans fine; a barcode on paper needs real size. As a rule of thumb, keep the printed width at least 1.5–2 inches (about 40–50mm) for Code 128/39 at typical data lengths, and print EAN/UPC at 100% of the GS1 nominal size (roughly 37×26mm for EAN-13) whenever the target scanner is a fixed retail POS unit — shrinking a retail barcode is the most common reason it fails to scan.

Batch: print a sheet of labels

Paste one value per line, using the barcode type and size settings above. Capped at 60 labels per sheet so the page stays fast to generate and to print.

Which barcode, for what job

Code 128 is the workhorse — it densely encodes any mix of letters, numbers and punctuation, auto-switching between its internal code sets so a long run of digits (like a serial number) stays compact. Good default for asset tags, internal SKUs, ticket stubs, work orders — anything that only needs to mean something inside your own systems.

Code 39 is older and less dense (it needs roughly twice the printed width of Code 128 for the same data), but it's simple enough to be readable by almost any scanner ever made, including some that choke on Code 128. Reach for it when a specific printer, scanner or legacy system asks for it by name — not as a first choice.

EAN-13, EAN-8 and UPC-A are GS1 retail formats. They only carry a fixed number of digits, and that number has to have been assigned to you (or the product) by GS1 through your country's GS1 Member Organisation — Ochre has no part in that assignment and can't create one for you. Use these only when you already have a real number.

Quiet zones — the blank margin on either side of the bars — aren't decorative. A scanner uses that clear space to recognise where the barcode starts and stops; text, a border, or a second barcode placed too close will cause misreads or a flat failure to scan. This tool's default quiet zone matches the published GS1/AIM minimum for each format; the control above lets you widen it for a tight layout, but narrowing it below the default is asking for trouble at the till or the loading dock.

More free tools

A couple of neighbours for anything with a code on it.

Questions

Can I make up my own EAN or UPC number?
No — not for anything you actually want to scan as a real product. EAN-13, EAN-8 and UPC-A numbers are assigned by GS1 (via your country's GS1 Member Organisation) to a specific company and product. This tool will draw a barcode from any digits that pass the check-digit maths, but a barcode you made up is not a registered product identifier — it will not resolve to your product in any retailer's or carrier's system, even though it scans fine. Ochre does not issue GS1 company prefixes. For an internal label that never needs to mean something to anyone outside your business, use Code 128 or Code 39 instead — there's no registry to fake.
Which barcode type should I use?
Code 128 for almost anything internal — asset tags, shelf labels, work orders, ticket stubs — it's dense and encodes any text or numbers. Code 39 if your label printer, scanner or legacy system specifically asks for it (common in some industrial and logistics setups); it needs more physical space per character. EAN-13, EAN-8 or UPC-A only when you have a real, GS1-assigned number for a retail product — these are not general-purpose formats.
Why does a barcode need blank space (a quiet zone) around it?
A scanner finds the start and end of a barcode by looking for a clear, unmarked margin on each side — text, a border, or another barcode placed too close to the edge can make the scanner misread the first or last character, or fail to find the barcode at all. Each symbology has a minimum recommended quiet zone in module widths; this tool applies GS1/AIM's published minimums by default and lets you widen them.
What's the difference between EAN-13, EAN-8 and UPC-A?
All three are GS1 retail barcode formats using the same underlying check-digit maths. EAN-13 (13 digits) is the international standard used almost everywhere. UPC-A (12 digits) is its North American predecessor — it's mathematically an EAN-13 with a leading zero, and most modern scanners read either. EAN-8 (8 digits) is a compact version for packaging too small for a full EAN-13, assigned only for specific small products, not as a general shortcut.

What this page cannot do

A barcode without a product behind it is just an image.

This page draws a scannable barcode from whatever text you give it — it has no idea whether that code means anything. Ochre has no barcode feature. What it has is a SKU field on every product, so if this code is meant to represent something you sell, at least the SKU behind it can live somewhere real instead of only on this page.