How Barcodes Work — Formats, Standards & When to Use Each
You've seen them on every product you've ever bought. But if you've ever tried to create a barcode for your own product, warehouse, or store — you've probably hit a wall of confusing formats, standards, and digit requirements. Here's what you actually need to know, explained plainly.
What a Barcode Actually Is (and Isn't)
A barcode isn't a picture. It's a structured encoding of data as alternating black bars and white spaces, where the width of each element carries meaning. A scanner reads those widths as a sequence of bits and decodes them back into the original number or text.
Here's what most people get wrong: the barcode itself doesn't contain the product name, price, or description. It contains only an identifier — usually a number. The actual product information lives in a database that your PoS system, warehouse software, or inventory app looks up using that identifier.
This distinction matters. You can generate a perfectly valid barcode without registering anywhere. But for a scanner to pull up the right product information, your system needs to know what that code means.
The Five Most Common Barcode Formats — and What Sets Them Apart
Not all barcodes are interchangeable. Each format has a specific encoding method, character set, and use case. Choosing the wrong one wastes printing space or, worse, creates barcodes your scanner can't read.
| Format | Data Type | Length | Primary Use | Region |
|---|---|---|---|---|
| Code 128 | All 128 ASCII | Variable | Logistics, shipping, general | Worldwide |
| EAN-13 | Digits only | 13 digits | Retail product labelling | International (incl. India) |
| UPC-A | Digits only | 12 digits | Retail product labelling | North America |
| Code 39 | A-Z, 0-9, symbols | Variable | Manufacturing, asset tags | Worldwide |
| ITF | Digits only | Even digits | Outer cartons, shipping | Worldwide |
Code 128 is generally the best default choice for any internal system because it handles text and numbers with high density. EAN-13 is your format if you're selling products in India or internationally and need scanner compatibility at retail checkouts.
Code 128 — Why It Dominates Logistics
Code 128 was designed to be dense. It can encode the entire ASCII character set — letters, numbers, punctuation — and it does so more compactly than most alternatives. That's why you'll find it on courier waybills, warehouse labels, hospital wristbands, and airline baggage tags.
It works by automatically switching between three internal subsets (A, B, and C) depending on the data being encoded. Subset C is especially clever — it packs pairs of digits into single code points, halving the barcode width when encoding long numeric strings. You don't have to select these subsets manually; a good generator handles it transparently.
Practical takeaway: For any internal system — inventory labels, asset tags, warehouse bins, order IDs — use Code 128. It's flexible, widely supported, and your scanner almost certainly reads it already.
EAN-13 and UPC-A — The Retail Standards
If you sell physical products in a retail store or on a marketplace, you're likely dealing with EAN-13 (in India and internationally) or UPC-A (if selling in the US or Canada). These formats encode a standardised product identifier — and the 13th (or 12th) digit is always a mathematically derived check digit.
Here's the interesting part: UPC-A is technically a subset of EAN-13. An EAN-13 barcode with a leading zero is functionally identical to its UPC-A equivalent. Modern retail scanners read both formats without distinction. So if a marketplace asks for EAN, your UPC with a leading zero usually works fine.
EAN-13 Check Digit Formula: Alternate positions are multiplied by 1 and 3. Sum all results. Check digit = (10 − (sum mod 10)) mod 10. Our tool calculates this automatically when you enter 12 digits.
Rajan sells electronics online and his manufacturer provides 12-digit codes starting with 890 (India's GS1 country prefix). He enters the 12 digits into the EAN-13 generator — it appends the correct check digit automatically — and he downloads the SVG for his product packaging designer.
For officially registered retail barcodes in India, you need a GS1 India membership to get a company prefix. GS1 India is the national body under GS1 global. But for internal cataloguing, testing, or small-scale labelling, a generated EAN-13 code works perfectly in your own system.
Code 39 — Old but Everywhere
Code 39 was one of the first barcode formats ever developed — and it's still in active use. You'll find it on military equipment labels, automotive parts, government asset tags, and healthcare forms. It's not the most compact format, but its simplicity and broad scanner support make it a reliable fallback.
The character set is limited: uppercase A–Z, digits 0–9, and seven special characters (space, -, ., $, /, +, %). No lowercase. If your data contains lowercase letters, a proper generator converts them to uppercase automatically. If it contains characters outside the allowed set — like @, #, or & — Code 39 can't encode them and you'd need Code 128 instead.
Markus manages 400 pieces of office equipment in Berlin. His asset management system uses Code 39 for labels — ASSET-BER-042, ASSET-BER-043, and so on. The uppercase-only constraint is fine for his sequential numbering system, and his Zebra printer has supported Code 39 since 2009.
Now here's the interesting part: Code 39's self-checking property means it doesn't require a check digit (though one can be added optionally). Each character is encoded as 5 bars and 4 spaces — 9 elements total, hence the name. That redundancy makes it tolerant of moderately poor print quality.
ITF — The Outer Carton Standard
ITF (Interleaved 2 of 5) is built for corrugated cardboard. When you're printing on a carton's rough, inconsistently absorbent surface, you need a barcode that tolerates imperfect printing. ITF's wide bars and the interleaved encoding of digit pairs give it exactly that tolerance.
The constraint: ITF only encodes digits, and the digit count must be even. That's why you'll rarely see ITF on individual product labels — it goes on outer cartons, pallets, and distribution containers where GS1-128 (an application of Code 128) or plain ITF is the norm.
James labels 200 outbound cartons per day in Houston. His warehouse management system generates 8-digit ITF codes per shipment batch. He prints at 300 DPI on kraft labels and every carton scans cleanly with his Honeywell industrial scanner even after transit handling.
If you're generating ITF codes and your digit count is odd, add a leading zero. That's the standard practice and doesn't affect the encoded data in any meaningful way for most use cases.
Printing Barcodes That Actually Scan
The most common reason a barcode fails to scan isn't an incorrect format — it's a bad print. Scanners work by measuring the ratio of bar width to space width. If your printer smudges bars, bleeds ink, or prints at too low a resolution, those ratios get distorted and the scanner can't decode reliably.
Here are the rules that actually matter in practice. First, use SVG for any professional print workflow. SVG is a vector format — infinitely scalable without quality loss. Resize it in your design software to whatever dimensions you need and it will print sharply at any DPI. Second, if you're stuck with PNG, use a minimum of 300 DPI — and ideally 600 DPI for small label sizes. Third, ensure the quiet zone (the blank space on each side of the barcode) is preserved. Scanners need that blank space to identify where the barcode starts and ends. Never crop into it.
Quiet zone rule: Each side of a barcode should have a blank space of at least 10 times the width of the narrowest bar. Our generator adds this automatically, but check that your label template doesn't crop it out.
Priya prints Code 128 labels for her packaged snacks on a ₹3,500 thermal transfer printer at 203 DPI. She downloads SVG from the generator, scales it to 25×10 mm in her label software, and every label scans on her PoS scanner without a single failure across 300 products tested.
Barcodes vs QR Codes — Which Should You Use?
This comes up constantly. Linear barcodes (Code 128, EAN-13, etc.) encode data in one dimension — horizontally. QR codes are 2D and encode data in both dimensions, which means they can hold far more information in a smaller space. But more data capacity doesn't always mean QR is better.
Retail PoS systems, supermarket checkout lanes, and most industrial scanners are optimised for linear barcodes. Your standard barcode scanner — the handheld gun-style device — reads linear barcodes at any angle, rapidly, even in poor lighting. Not all of them read QR codes without a separate camera-based scanner.
Use linear barcodes (especially EAN-13 or Code 128) when you're integrating with existing retail or warehouse infrastructure. Use QR codes when you want to encode a URL, contact card, or large text block that a smartphone will scan — product inserts, packaging, business cards, or marketing materials. They solve different problems.
GS1 India and When You Actually Need Official Registration
GS1 is the global body that administers barcode numbering standards. GS1 India manages assignments for Indian companies. If you sell products at major Indian retail chains like DMart, Big Bazaar, or Reliance Smart, or list on Amazon.in or Flipkart with retail packaging, you'll eventually need a GS1-registered company prefix.
Don't let that intimidate you at the start, though. GS1 India membership costs a one-time registration fee plus annual renewals. It's necessary for supply chain integration at scale. But for most small sellers, D2C brands testing SKUs, or businesses doing internal inventory management — a generated barcode works fine until you reach that threshold.
We recommend: generate your barcodes now, start your internal system, and apply for GS1 registration once you have confirmed shelf placements or marketplace requirements. Don't pay for registration while you're still testing your product line.
Barcode Concepts in Multiple Languages
This tool is used by businesses and individuals across India and internationally. Here's the concept of barcodes expressed in major languages for reference:
| Language | Concept |
|---|---|
| 🇮🇳 Hindi | बारकोड — उत्पाद पहचान के लिए बार और रिक्त स्थान का क्रम। |
| 🇮🇳 Tamil | பார்கோட் — தயாரிப்பு அடையாளத்திற்கான கோடு மற்றும் இடைவெளி வரிசை. |
| 🇮🇳 Telugu | బార్కోడ్ — ఉత్పత్తి గుర్తింపు కోసం బార్ మరియు ఖాళీల క్రమం. |
| 🇮🇳 Bengali | বারকোড — পণ্য শনাক্তকরণের জন্য বার এবং ফাঁকের ক্রম। |
| 🇮🇳 Marathi | बारकोड — उत्पादन ओळखण्यासाठी बार आणि रिक्त जागेचा क्रम. |
| 🇮🇳 Gujarati | બારકોડ — ઉત્પાદ ઓળખ માટે બાર અને ખાલી જગ્યાનો ક્રમ. |
| 🇮🇳 Kannada | ಬಾರ್ಕೋಡ್ — ಉತ್ಪನ್ನ ಗುರುತಿಸಲು ಬಾರ್ ಮತ್ತು ಜಾಗದ ಅನುಕ್ರಮ. |
| 🇮🇳 Malayalam | ബാർകോഡ് — ഉൽപ്പന്ന തിരിച്ചറിയലിനായി ബാർ, ഇടങ്ങൾ എന്നിവയുടെ ക്രമം. |
| 🇪🇸 Spanish | Código de barras — secuencia de barras y espacios para identificar productos. |
| 🇫🇷 French | Code-barres — séquence de barres et d'espaces pour identifier les produits. |
| 🇩🇪 German | Barcode — Abfolge von Balken und Lücken zur Produktidentifikation. |
| 🇯🇵 Japanese | バーコード — 商品識別のためのバーとスペースの配列。 |
| 🇸🇦 Arabic | الباركود — تسلسل الأشرطة والمسافات لتعريف المنتجات. |
| 🇧🇷 Portuguese | Código de barras — sequência de barras e espaços para identificar produtos. |
| 🇰🇷 Korean | 바코드 — 제품 식별을 위한 막대와 공백의 배열. |
Ready to Generate Your Barcode?
Create Code 128, EAN-13, UPC-A, Code 39, and ITF barcodes instantly — download as PNG or SVG with no cost and no signup.
Open the Barcode Generator →Recommended Hosting
Hostinger
If you are building a website for your tools, blog, or store, reliable hosting matters for speed and uptime. Hostinger is a popular option used worldwide.
Visit Hostinger →Disclosure: This is a sponsored link.
Contact Us
Related Tools You May Like
🚀 Need Higher Limits?
- ✔ 390+ Tools
- ✔ AI Tools Included
- ✔ JS Tools 25 → 300 Uses/Day
- ✔ AI Tools 10 → 100 Uses/Day
- ✔ Higher Character Limits
- ✔ Exclusive Pro Features