QR Code Explained

QR Example Barcode with URL

QR is a two-dimensional or matrix code that can encode up to 4,000 characters or 7,000 digits. The code is easily recognized by the characteristic three finder patterns in the corners of the symbol:

QR Code Finder and Alignment Patterns

Those patterns are quite large, so the code needs more space than other 2D symbologies, at least with small amounts of data. Larger codes also feature one or more alignment patterns.

What does QR stand for?

QR stands for Quick Response. Intended for use in manufacturing and part tracking by the auto industry, QR's design prioritized fast and reliable scanning over smaller size.

What is QR used for?

Besides applications in warehousing and logistics the code is also widely used in ads, on billboards, on coupons and the like. Typical data content includes URLs, email addresses or VCards, coupon codes etc, see examples below.

QR specifications

QR is standardized. The relevant standard is ISO/IEC 18004-2006 and can be obtained from ISO.

QR maximum length

Like many other barcode types, QR features several compaction modes. The maximum capacity or length for given data is as follows:

  1. Numeric content: 7,089 digits
  2. Alphanumeric content: 4,296 characters
  3. Binary content (8 bit): 2,953 characters (ISO-8859 page, less when encoding Unicode)
  4. Kanji content: 1,817 characters

The respective barcode generator will select the compaction mode that results in the smallest posible symbol; it is common to switch between modes within a QR symbol for mixed content.

QR Code data content

QR codes only encode textual content and are indifferent to the actual semantic meaning of the data. How the content is interpreted depends entirely on the scanner or scanner app. This is very different from codes like EAN 13 where the data format and content are regulated by a standards body (GS1).

However, over the past ten years, quasi-standards have been established that define how certain types of data have to be encoded. Some examples:

  • URL / Web address: data beginning with "http://" or "https://" is interpreted as an URL. This can also be a shortened (e.g. bitly) URL. More about QR codes with URLs and web address links
  • Phone number: data beginning with "tel:" is interpreted as a phone number; the phone number should be specified with a preceding country code, e.g. "+1" for USA. More about QR codes with phone numbers
  • Email: data beginning with "mailto:" is interpreted as an email address, further fields denote subject and content of the email, see here
  • SMS: data beginning with "smsto:" is interpreted as an SMS number / destination
  • Business cards / contacts: data containing VCard-formatted data is interpreted as contact information and can be used as a machine-readable business card, for more see here
  • Wifi / Wlan access: data containing the SSID of a WiFi access point and optionally a password. More about QR codes with Wifi access data

QR Code Error Correction Levels

QR employs a very robust error correction capability. In the highest setting a symbol can be recovered even if 30% of the area is destroyed or missing. However, better error correction also means a larger barcode.

Here's a QR code with the content "https://softmatic.com" with the error correction set to the lowest level ("L"):

QR ECC Low Example

Cranking the ECC level to the best setting ("H") results in a code that is almost 70% larger:

QR ECC High Example

If we erase the center part like so, the code is still readable (try with the "Camera" app of your smartphone):

QR ECC Damaged Missing

This feature is exploited with so called Vanity QR codes, where parts of the code are replaced with a company logo, emoji or other graphical elements:

QR Example Vanity Emoji Smiley

That kind of manipulation obviously contradicts the whole purpose of the error correction and should be avoided in serious applications.

QR Black and White vs Colored, Styling

Per default, QR codes are created with square, black dots against a white background for highest contrast. Colored codes are acceptable and will scan without issue provided the foreground and background colors have sufficient contrast. Likewise, the individual "dots" of a code can have rounded or pointy shapes.

Here's an colored QR code with rounded dots:

QR Example Colored

An example with too little contrast that will not scan (or only with luck):

QR Example Low Contrast

Note, that "inverted" (or negative) codes are in principle allowed but many scanner apps have problems decoding them. Test thoroughly before going into production.

Scanning QR codes

It is safe to assume that all recent smartphones support scanning QR codes with the built-in "Camera"-app. See this post about scanning QR codes.

Sample QR Barcodes

Sample QR code with letters and numbers mixed, "ABCabc123":

QR Example Alphabet

QR can directly encode accented and diacritic characters like german umlauts. Sample code encodes "ÄÖÜäöü":

QR Example Umlauts Accented

Also supported is Unicode content, for example non-latin scripts like Japanese. Sample code encodes "ÄÖÜ日本語abc":

QR Example Umlauts Accented

All codes have been verified to scan properly on Mac and Windows PCs and various smartphones. Check the settings of your scanner if the scan result is different or if the code doesn't scan at all.

QR codes can also be read with an online reader, here's the scan result from the previous QR:

QR Decoder Result Japanese Non Latin Script Unicode

Common problems when scanning QR with non-ASCII data:

  • The scanner app doesn't support non-ASCII data
  • The QR symbology is deactivated in the scanner
  • The keyboard layout setting of the scanner does not match the locale setting in your computer

Scan QR with a Smartphone

On iOS, the built-in "Camera" app can natively scan QR codes. On Android smartphones variety of barcode reader apps support reading QR, search the respective App Store. Our suggestion is the free Zxing Barcode Reader which reads QR and many other 2D and linear barcodes.

Create QR Codes with Logos, Icons in Photoshop

Our QR Designer for Photoshop CC creates QR matrix codes directly in your PSD file. Choose from a dozen styles, millions of colors and easily embed logos, icons or images in the code.

More info...

Create QR Barcodes in Illustrator, InDesign

Easy to use barcode plug-ins and extensions for Adobe InDesign and Illustrator. For more videos, see the Softmatic Youtube Channel

The Softmatic barcode plug-ins and extensions for InDesign, Illustrator and Photoshop are available on the Adobe Exchange.

NEW Free Online QR Code Generator

Create your QR codes online and in realtime! Our free online QR code generator runs 100% in your browser. No ads and no registration required. Privacy guaranteed: No cookies, no analytics, no tracking.

QR Code Generator for Mac / Windows

Softmatic BarcodePlus V5 creates QR codes and will export the barcode as PDF / SVG (resolution-independent vector) oder raster image (PNG, TIFF). The app will automatically format the data according to the specs to create the smallest possible symbol:

QR Code Generator

Create QR codes in bulk

For mass creation of QR, see Softmatic's bulk barcode generator, BarcodeFactory. Ideal for personalized 2D codes for tickets, event, mailings. Video shows generating bulk QR codes from email addresses: