Technical Specifications & Symbology Reference

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)

ISO/IEC 18004 • 2D Matrix
Generate in Studio

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.

Max Numeric Data
7,089 Digits
Max Alphanumeric
4,296 Characters
Max Binary (Bytes)
2,953 Bytes
Error Correction
L (7%), M (15%), Q (25%), H (30%)

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)

ISO/IEC 16022 • 2D Industrial Matrix
Generate in Studio

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.

Aspect Ratio
Square (rectangular sizes also in the standard)
Max Alphanumeric
2,335 Characters
Primary Industries
Aerospace, Automotive, PCB, Pharma
Quiet Zone
1 Module Width

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

ISO/IEC 24778 • 2D Concentric Matrix
Generate in Studio

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.

Quiet Zone
0 modules permitted by the standard
Max Alphanumeric
3,067 Characters
Key Advantage
Compact layouts; test final placement
Primary Industry
Aviation (IATA), Rail & Transit

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)

ISO/IEC 15438 • Stacked 2D Linear
Generate in Studio

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.

Shape
Wide rectangle; width set by the column count (1–30)
Max Data Capacity
1,850 Alphanumeric Chars
Error Correction
Levels 0 to 8 (Reed-Solomon)
Primary Use
Structured records, documents, shipping data

Code 128 & GS1-128

ISO/IEC 15417 • 1D High-Density Alphanumeric
Generate in Studio

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).
Engine Switching
Auto-Switching A/B/C
Check Digit
Modulo 103 (Auto-Calculated)
Primary Use
Supply Chain, Warehouse, Logistics
Quiet Zone
10x Narrow Bar Width

EAN-13 (International Retail)

ISO/IEC 15420 • GS1 GTIN-13 Point of Sale
Generate in Studio

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.

Digit Length
12 or 13 Numeric Digits
Checksum Math
GS1 Modulo 10 (Weight 3/1)
Auto-Correction
Auto-Appends Missing 13th Digit
Licensing Note
Retail GTIN acceptance depends on the recipient and market

UPC-A (Universal Product Code)

GS1 GTIN-12 • North American Point of Sale
Generate in Studio

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)

ISO 2108 • Book Publishing & Retail
Generate in Studio

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)

GS1 GTIN-14 • Master Shipping Container
Generate in Studio

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)

ISO/IEC 16388 • Asset Tags, Inventory & MIL-STD-129
Generate in Studio

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?

Customer Logistics & Operational Decision Tree

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.

Filter Scenarios by Use Case:
International Retail & Supermarkets

Consumer Products Sold Globally (Outside US/Canada)

Recommended Code: EAN-13 (GTIN-13)

Commonly used for retail GTIN-13 symbols. The identifier and barcode requirements depend on the retailer, marketplace, product category and market.

Open retail use: Obtain identifiers accepted by the retailer or marketplace; many use GS1-licensed GTINs.
Closed-loop alternative: For internal inventory that does not need a retail GTIN, define an internal identifier in Code 128 or another format accepted by your own system.
Generate EAN-13 in Studio
North America Retail Standard

Consumer Products Sold in US & Canada (Walmart, Target)

Recommended Code: UPC-A (GTIN-12)

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.

Identifier source: Use a GTIN accepted by the recipient; marketplace and retailer policies can differ and may change.
Check Digit: 12th digit is calculated using GS1 Modulo-10 parity.
Generate UPC-A in Studio
Logistics & Wholesale Distribution

Outer Shipping Boxes, Master Cartons & Pallets

Recommended Code: ITF-14 or GS1-128

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.

Usage note: ITF-14 is intended for logistics units such as cartons, not ordinary retail point-of-sale scanning.
Licensing: Incorporates your item's GTIN plus packaging indicator digit.
Generate ITF-14 in Studio
Internal Identifiers • No Retail GTIN Implied

Warehouse Bins, Shelves, Pallets & Company IT Assets

Recommended Code: Code 128 (High-Density Linear)

The universal workhorse for warehouse management systems (WMS), inventory tracking, serial numbers, tool labeling, and internal logistics.

Identifier note: You can define internal SKU values, but customers and trading partners may impose their own data, label, or registration requirements.
Character Support: Full 128 ASCII alphabet (letters, digits, symbols).
Generate Code 128 in Studio
Industrial High-Density 2D

PCBs, Silicon Chips, Medical Implants & Pharma (UDI)

Recommended Code: Data Matrix (ECC 200)

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).

Regulated use: Data Matrix is used in UDI and pharmaceutical traceability systems; verify the current rule, required data and issuing authority for your product and market.
Scanners: Requires 2D area-imager cameras (cannot use 1D red lasers).
Generate Data Matrix in Studio
Compact Matrix / Stacked

Tickets, Passes & Structured Document Records

Recommended Code: Aztec Code or PDF417

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.

Standards: Aztec Code (ISO/IEC 24778) used by European rail networks (Eurostar, DB). PDF417 (ISO/IEC 15438) used for commercial freight bills of lading.
Generate Aztec in Studio
Static Direct Payload

Packaging URLs, Restaurant Menus, Wi-Fi & Business Cards

Recommended Code: Static QR Code (ISO/IEC 18004)

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.

Static and hosted QR services: UniversalCodeMaker stores the destination or other payload directly in a static QR code and does not control a redirect or expiry for it. The encoded destination, credentials, receiving app and third-party services can still change or stop working.
Generate Static QR in Studio

Symbology Decision Matrix

Feature & Capability Comparison
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

Official Specifications, Modulo Mathematics & Fair Use Law

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

  1. Obtain accepted identifiers from the GS1 organisation in your country or another source expressly accepted by the recipient.
  2. Assign one number per product variant: every size, colour and pack count gets its own GTIN. Record the product details with GS1.
  3. Generate the required carrier with that number: the recipient may specify EAN-13, UPC-A, or ITF-14 for a logistics unit.
  4. 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).
  5. 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:

GS1 Modulo-10 Check Digit Formula (Used by EAN-13, UPC-A, ITF-14, SSCC-18)
// 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

Quiet-Zone Guidance

• 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.

Print Contrast & Wavelength

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!

Avery Label Sheet Tolerances

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

Query String Router Specification

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:

Deep-Link URL Formats
# 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

Client-Side Canvas & SVG Rendering

To render high-speed vector barcodes directly inside your own web applications using pure JavaScript:

Client-Side Canvas Rendering
// 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
});