Barcode & QR Symbology Documentation
In-depth technical reference for the 10 supported symbologies: 1D linear barcodes and 2D matrix codes. Includes character encoding limits, checksum validation math, quiet zone rules, and direct deep-linking instructions.
QR Code (Quick Response)
Originally created in 1994 by Denso Wave, QR Code is the world's most ubiquitous 2D matrix barcode. It utilizes three distinctive square finder patterns positioned in three corners, enabling omnidirectional 360-degree scanning at high velocity.
Logo Embedding Best Practice: When placing a custom brand logo or icon into the center of a QR code, always enforce Error Correction Level H (30% redundancy). This ensures the scanner can reconstruct the obscured central data modules without any scanning failure.
Data Matrix (ECC 200)
Data Matrix ECC 200 features an "L-shaped" solid alignment finder pattern on two adjacent borders and alternating dark/light timing cells on the opposite edges. It is a compact, high-density option for small labels and direct-part marking.
Data Matrix is used in direct-part marking and regulated traceability workflows. The required data, symbol size and verification process depend on the applicable specification and recipient.
Aztec Code
Invented in 1995 by Welchn Allyn, Aztec Code is defined by a single concentric square "bullseye" finder pattern located in the exact physical center of the code. Data modules spiral outwards from the core.
The Aztec standard permits a zero-module quiet zone. In a real layout, leave separation where practical and test the printed or on-screen symbol with the intended scanners.
PDF417 (Portable Data File)
PDF417 consists of stacked rows of linear codewords. Each codeword is 17 modules wide and composed of 4 bars and 4 spaces. It can encode larger text or binary payloads than typical 1D symbols.
Code 128 & GS1-128
Code 128 is a dense 1D symbology for alphanumeric data. It represents the ASCII character set using three subsets:
- Subset A: Uppercase letters, digits, control characters, ASCII 00-95.
- Subset B: Uppercase and lowercase letters, digits, and ASCII punctuation 32-127.
- Subset C: Pairs of numeric digits 00-99 encoded into single bar patterns (double density).
EAN-13 (International Retail)
EAN-13 represents a 13-digit GTIN for retail point-of-sale use. The number includes a GS1 prefix, company and item references, and a final Modulo 10 check digit; the prefix does not identify where a product was made.
UPC-A (Universal Product Code)
UPC-A is the standard retail barcode used throughout the United States and Canada. It encodes exactly 12 numeric digits (or 11 data digits + 1 Modulo 10 check digit). An EAN-13 barcode with a leading zero ('0') is mathematically identical to a 12-digit UPC-A barcode.
ISBN-13 (Bookland EAN)
An ISBN-13 barcode is an EAN-13 symbol whose number starts with the 978 or 979 "Bookland" prefix, so any retail scanner can read it. Enter the ISBN with or without hyphens; the 13th digit is a Modulo 10 check digit, and the studio rejects a wrong one instead of printing an unsellable barcode. An optional 5-digit EAN-5 price add-on (for example 51999 = US $19.99, 90000 = no suggested price) prints to the right of the main symbol, as many book distributors expect.
ITF-14 (Interleaved 2 of 5)
ITF-14 encodes 14 numeric digits and is printed with heavy black horizontal borders called Bearer Bars. These bearer bars suppress plate-spread and stop misreads caused when a handheld laser scanner skims across the edge of corrugated cardboard packaging.
Code 39 (Code 3 of 9)
Code 39 encodes uppercase letters A–Z, digits 0–9, space and the symbols - . $ / + %. It is self-checking and needs no check digit, which is why it is still common on IT asset tags, ID badges, healthcare specimen labels and defence logistics. An optional Mod-43 check character can be added when a customer specification requires it. Code 39 is wide for the amount of data it holds; when space is tight and your scanners support it, Code 128 packs the same data into a much shorter barcode.
Which Barcode Do I Need for My Product / Business?
Choosing the correct barcode standard is critical for product distribution, regulatory compliance, and checkout speed. A packaging mistake can lead to costly retailer chargebacks or unreadable scans. Use this interactive guide to find the exact symbology for your operational workflow.
Consumer Products Sold Globally (Outside US/Canada)
Commonly used for retail GTIN-13 symbols. The identifier and barcode requirements depend on the retailer, marketplace, product category and market.
Generate EAN-13 in StudioConsumer Products Sold in US & Canada (Walmart, Target)
A 12-digit retail barcode commonly used in the United States and Canada. Confirm the required identifier and label specification with the receiving retailer or marketplace.
Generate UPC-A in StudioOuter Shipping Boxes, Master Cartons & Pallets
Printed on outer master cartons containing multipacks (e.g. 6, 12, or 24 retail units). Heavy black bearer bars prevent uneven flexographic ink spread on coarse brown corrugated cardboard.
Generate ITF-14 in StudioWarehouse Bins, Shelves, Pallets & Company IT Assets
The universal workhorse for warehouse management systems (WMS), inventory tracking, serial numbers, tool labeling, and internal logistics.
Generate Code 128 in StudioPCBs, Silicon Chips, Medical Implants & Pharma (UDI)
Ultra-compact 2D matrix symbol capable of encoding serial numbers and lot dates in spaces as small as 2mm × 2mm. Engineered for Direct Part Marking (laser etching and dot-peening).
Generate Data Matrix in StudioTickets, Passes & Structured Document Records
Aztec Code permits a zero-module quiet zone and PDF417 offers stacked rows for larger records. In either case, follow the receiving system's data format and test the final symbol.
Generate Aztec in StudioPackaging URLs, Restaurant Menus, Wi-Fi & Business Cards
Standard QR codes are supported by many current phone camera apps. Actual behaviour depends on the device, app, encoded content, symbol size and print quality, so test the intended workflow.
Generate Static QR in StudioSymbology Decision Matrix
| Symbology | Type | Character Set | Max Data | Checksum | Ideal Use Case |
|---|---|---|---|---|---|
| QR Code | 2D Matrix | Alphanumeric / UTF-8 / Binary | 4,296 chars | Reed-Solomon (7-30%) | Smartphones, Wi-Fi, URLs, Menus |
| Data Matrix | 2D Matrix | Full ASCII / Binary (ECC 200) | 2,335 chars | Reed-Solomon (25-33%) | Direct Part Marking, Pharma, Tiny Parts |
| Aztec Code | 2D Matrix | Full ASCII / Binary | 3,067 chars | Reed-Solomon (5-95%) | Airline Tickets, Rail Passes (No quiet zone) |
| PDF417 | Stacked 2D | Full ASCII / Binary | 1,850 chars | Reed-Solomon (Levels 0-8) | Structured Records, Documents, Shipping Data |
| Code 128 | 1D Linear | Full ASCII (Subsets A/B/C) | ~80 chars practical | Modulo 103 | Logistics, Inventory SKUs, Warehouse |
| EAN-13 | 1D Retail | Numeric (12-13 digits) | 13 digits | GS1 Modulo 10 | Global Retail Point of Sale |
| UPC-A | 1D Retail | Numeric (11-12 digits) | 12 digits | GS1 Modulo 10 | North American Retail Point of Sale |
| ITF-14 | 1D Logistics | Numeric (14 digits) | 14 digits | GS1 Modulo 10 | Corrugated Master Carton Shipping |
Compliance, Testing Standards & Legal Licensing Reference
Enterprise barcode operations require strict adherence to international symbology standards, print tolerances, and legal company prefix regulations. Below is a comprehensive audit of active ISO/IEC standards, GS1 rules, check digit mathematics, and legal protections.
Official ISO/IEC Symbology Standards Reference
| Symbology | Official International Standard | Standardization Body | Scope & Verification Rules | Public Reference |
|---|---|---|---|---|
| QR Code | ISO/IEC 18004:2024 |
ISO / IEC JTC 1/SC 31 | Matrix dimensions (Ver 1-40), Reed-Solomon ECC (L/M/Q/H), 4-module quiet zone. | ISO 18004 ↗ |
| Data Matrix | ISO/IEC 16022:2024 |
ISO / IEC JTC 1/SC 31 | ECC 200 Reed-Solomon error correction, "L" finder border, DPM laser etching. | ISO 16022 ↗ |
| Code 128 | ISO/IEC 15417:2007 + Amd 1:2026 |
ISO / IEC JTC 1/SC 31 | Subsets A, B, and C auto-switching, Modulo-103 check character, 10X quiet zones. | ISO 15417 ↗ |
| EAN-13 & UPC-A | ISO/IEC 15420:2025 |
ISO / GS1 AISBL | Linear retail symbology, GS1 Modulo-10 parity check digit, omnidirectional scanning. | ISO 15420 ↗ |
| ITF-14 | ISO/IEC 16390:2007 (confirmed 2020) |
ISO / GS1 AISBL | Interleaved 2 of 5, corrugated packaging bearer bars, packaging indicator digit. | ISO 16390 ↗ |
| Aztec Code | ISO/IEC 24778:2024 |
ISO / AIM Global | Concentric bullseye center, 0-module quiet zone, compact and full-range modes. | ISO 24778 ↗ |
| PDF417 | ISO/IEC 15438:2015 |
ISO | Multi-row stacked linear symbology with configurable error-correction levels. | ISO 15438 ↗ |
| Print Verification | ISO/IEC 15416:2025 (linear) / ISO/IEC 15415:2024 (2D) |
ISO / AIM Global | Grading standards (A, B, C, D, F) for linear reflectance, modulation, and 2D contrast. | ISO 15416 ↗ ISO 15415 ↗ |
Commercial Use: Do You Need GS1 Barcode Numbers?
This studio draws barcodes to the official specifications, but the number inside a retail barcode has to be yours. For products sold through shops and marketplaces, that number (a GTIN) is licensed from GS1, the non-profit that runs the global barcode system.
You may need GS1 identifiers when:
- A retailer or supermarket requires a GS1-licensed GTIN for packaged products.
- A marketplace requires a GTIN and validates it against GS1 records; exemptions and category rules vary by platform.
- A regulated product workflow specifies a GS1 identifier or another authorised issuing system. Check the current rule for the product and market.
Closed-loop uses that may not need a retail GTIN:
- Internal warehouse bins, shelves, aisles and pallet racks (Code 128 / Code 39).
- Asset tracking: laptops, furniture, machinery, tools.
- Items tracked only inside your own system: define an internal identifier in a format such as Code 128 and keep it separate from retail GTIN data.
- QR payloads such as links, Wi-Fi details or contact cards generally do not use retail GTINs, though destinations, payment providers and recipient apps can impose their own rules.
When a recipient requires retail GTINs
- Obtain accepted identifiers from the GS1 organisation in your country or another source expressly accepted by the recipient.
- Assign one number per product variant: every size, colour and pack count gets its own GTIN. Record the product details with GS1.
- Generate the required carrier with that number: the recipient may specify EAN-13, UPC-A, or ITF-14 for a logistics unit.
- Print at the right size and test: a narrowest-bar width (X-dimension) of 0.264–0.660 mm (target 0.330 mm, often called 80%–200%), full quiet zones, dark bars on a light background. Scan a printed proof before a full run; some retailers ask for a verification report (ISO/IEC 15416 grade C or better).
- Share the numbers with your retailers or marketplace listings.
Worked examples of the check digit, print sizes and common mistakes: How to get a barcode for your product.
General guidance, not legal advice. Requirements differ by country, retailer and industry. Check with your local GS1 organisation or your retailer before a commercial production run.
Checksum Algorithms & Verification Mathematics
Checksums ensure that dirty scanner glass, poor lighting, or operator keyboard errors cannot introduce corrupt product IDs into ERP or POS databases:
// Step 1: Starting from right-to-left before check digit, alternate multiplying by 3 and 1.
// Step 2: Sum all weighted products.
// Step 3: Check Digit = (10 - (Sum % 10)) % 10.
function calculateMod10(digits) {
let sum = 0;
const len = digits.length;
for (let i = 0; i < len; i++) {
const digit = parseInt(digits[len - 1 - i], 10);
sum += (i % 2 === 0) ? digit * 3 : digit * 1;
}
return (10 - (sum % 10)) % 10;
}
Code 128 Modulo-103: The check character is calculated by taking the Start code value, adding the product of each character's value multiplied by its position index (1, 2, 3...), and taking the modulo 103 remainder.
2D Reed-Solomon Error Correction: Adds redundant codewords that can help a compatible decoder recover some damaged or missing data, up to the symbol's configured correction capacity. It cannot guarantee recovery from every defect.
Prepress Print Quality, Quiet Zones & Avery Tolerances
• Code 128: Minimum 10X module width left & right.
• EAN-13: 3.63mm left, 2.31mm right.
• QR Code: 4 modules on all 4 sides.
• Aztec Code: the standard permits 0 modules; leave practical separation where possible and test the final layout.
Laser scanners emit red light (630–670nm). Bars must absorb red (black, dark blue). Backgrounds must reflect red (white, cream). Never print red bars on white paper or black bars on green!
Desktop inkjet/laser sheet feeders experience 0.5mm–1.5mm mechanical drift. Our Avery generator applies centered safe zones to prevent bar clipping on die-cut adhesive edges.
Software Licences & Third-Party References
1. Rendering libraries: UniversalCodeMaker renders codes in the browser using third-party libraries. Their names, pinned versions and licence notices are recorded in the site's third-party notices.
2. Standards and identifiers: Creating a symbol does not issue an identifier, certify compliance, or grant rights in encoded content. Check the current requirements of the organisation that will receive or scan the code.
3. Product and organisation names: Names such as Avery®, GS1®, Walmart and Amazon identify third-party products or requirements. UniversalCodeMaker is independent and is not affiliated with or endorsed by those organisations.
4. External references: Links to ISO, GS1 and other sources are provided for reference. Their terms, specifications and availability are controlled by their respective owners.
URL Parameter Deep-Linking API
Universal Code Studio includes a zero-dependency URL router that lets you link directly to any pre-configured symbology, payload wizard, or pre-filled barcode value:
# Open Code 128 with prefilled data:
https://yourdomain.com/?symbology=code128&data=SKU-990022
# Open Wi-Fi Wizard with pre-configured network:
https://yourdomain.com/?wizard=wifi&ssid=StudioGuest&auth=WPA
# Open Data Matrix with custom payload:
https://yourdomain.com/?symbology=datamatrix&data=LOT-2026-X99
JavaScript Rendering Integration
To render high-speed vector barcodes directly inside your own web applications using pure JavaScript:
// 1. Include bwip-js browser bundle in your HTML:
<script src="https://cdn.jsdelivr.net/npm/bwip-js@4.11.4/dist/bwip-js-min.js"></script>
// 2. Render barcode directly to an HTML5 canvas element:
bwipjs.toCanvas('myCanvas', {
bcid: 'code128', // Symbology identifier
text: 'INVENTORY-987654', // Payload string
scale: 3, // 3x scaling factor
height: 25, // Bar height in mm
includetext: true, // Show human-readable text
textxalign: 'center' // Text alignment
});