Skip to content

QR Code

Terry Burton edited this page Oct 9, 2026 · 39 revisions

QR Code

The QR Code symbology is a 2D matrix-style barcode symbology that can encode full 256 character extended-ASCII.

Also known as: Quick Response Code.

Uses:

  • Content for phones: web links, Wi-Fi network details, contact cards, email, phone numbers, text messages, locations and calendar events.
  • SEPA credit transfers (EPC QR Code, also known as GiroCode).
  • Mobile airline boarding passes (IATA Bar Coded Boarding Pass).
  • Unit packets and aggregated packaging of tobacco products under EU traceability Regulation (EU) 2018/574, with error correction level H.

Variants:

Standards: ISO/IEC 18004, JIS X 0510, ITS - QR Code, AIM ISS - QR Code.

Data and Options

  • The data field can contain any extended ASCII data. The default interpretation of data by readers is in accordance with ISO/IEC 8859-1. When supported by the receiver characters from other code pages can be encoded using Extended Channel Interpretation (ECI).
  • When the parse option is specified, any instances of ^NNN in the data field are replaced with their equivalent ASCII value, useful for specifying unprintable characters.
  • When the parsefnc option is specified, non-data function characters can be specified by escape sequences:
    • ^FNC1: FNC1. Recommendation: Use GS1 QR Code for encoding GS1 AI syntax data.
    • ^ECI000000 to ^ECI999999: ECI indicators
  • The eclevel option is used to specify the error correction level:
    • eclevel=L - Low
    • eclevel=M - Medium (default)
    • eclevel=Q - Quality
    • eclevel=H - High
  • The fixedeclevel option will prevent the error correction level from being opportunistically raised when a better fix to the current matrix is possible.
  • The version option is used to specify the size of the symbol, 1 to 40.
  • If unspecified the encoder will select the version of the symbol that is the minimum size to represent the given data at the selected error correction level.
  • Deprecated: The suppresskanjimode option will prevent the use of Kanji Mode internal encodation. Some readers erroneously consider a Kanji Mode section as an indication that the affected part of the message should be interpreted using a Shift-JIS character set rather than as a data compaction strategy. There's nothing that can be done other than to disable the use of Kanji Mode data compaction for symbols intended to be read by such broken readers.
  • Deprecated: The format option is used to specify the symbol type, either:
    • full (default)
    • micro: Use Micro QR Code for Micro QR Code symbols.
    • rmqr: The standard is still in draft.

Common Content

Phones recognise the following formats, which are conventions documented by ZXing rather than part of the QR Code standard:

Content Data
Web link https://example.com/
Wi-Fi network WIFI:T:WPA;S:network;P:password;; with T one of WEP, WPA (which also serves WPA2 personal networks), WPA2-EAP or nopass, and H:true added for a hidden network. In the network name and password, \, ;, ,, " and : are each preceded by \.
Email mailto:someone@example.com
Phone number tel:+12125551212
Text message sms:+18005551212:Message (SMSTO: is also seen)
Location geo:40.71872,-73.98905,100 (latitude, longitude and optionally altitude)
Contact MECARD:N:Owen,Sean;TEL:12125551212;EMAIL:srowen@example.com;;, or a vCard from BEGIN:VCARD to END:VCARD
Calendar event An iCalendar event from BEGIN:VEVENT to END:VEVENT

The European Payments Council's EPC QR Code, also known as GiroCode, initiates a SEPA credit transfer. Its data is a series of lines separated by line feeds: BCD, the version 002, the character set (1 for UTF-8), SCT, the beneficiary's BIC (optional within the EEA), name and IBAN, then optionally the amount (such as EUR12.30), a purpose code, and a structured reference or unstructured remittance text. It uses error correction level M (eclevel=M), within QR Code version 13 (331 bytes).

Examples

Identical symbols, the latter using the parse option:

Data:    QR Code
Options:
Encoder: qrcode
Data:    QR ^067ode
Options: parse
Encoder: qrcode

A fixed-size symbol with increased error correction:

Data:    QR CODE 1234
Options: version=10 eclevel=Q
Encoder: qrcode


Symbologies Reference

Point of Sale

GS1 DataBar

Supply Chain

Two-dimensional Symbols

One-dimensional Symbols

Postal Symbols

Pharmaceutical Symbols

Less-used Symbols

GS1 Composite Symbols

Raw Symbols

Partial Symbols

Clone this wiki locally