Guide

Types of QR codes, and how to choose one

A QR code is only a container for data. What makes one useful is that a phone knows what to do with the payload once it decodes it — and that is decided entirely by which type you pick. Choose the wrong type and you get a code that scans perfectly and does nothing you wanted.

Last updated

Three questions that decide it

Before looking at the list, answer these. They narrow twelve options to one or two almost every time.

  1. What should happen the instant someone scans it? A phone cannot guess your intent. If you want the dialler to open, the payload has to be a phone number in the phone format — a URL that happens to contain digits will open a browser instead.
  2. Might the destination change later? If yes, you need a dynamic code, and that decision has to be made before you print. It also means the code depends on a redirect service, which a static code never does.
  3. How much data are you cramming in? A Wi-Fi payload with a long password is far denser than a short link, and a vCard with an address is denser still. More data means a higher-version code with smaller modules, which means you have to print it larger to stay scannable — and some types cross that line quickly.

The twelve types

These are the types the generator offers. Five of them have a dedicated guide, linked where they do.

1. Website link

The ordinary case: the payload is a URL and the browser opens it. Almost everything on a poster, a menu or a business card is this. It is also the type most likely to be made dynamic, because a link is the thing you are most likely to want to change.

2. Plain text

The phone simply displays the text. Useful when there is nowhere to send someone — a serial number, an asset tag, a short instruction, a code for a system that reads text. There is no second step and nothing to open, which is sometimes exactly the point.

3. Email address

Opens a new message addressed to the address you chose, with no subject or body unless you add them. Good on a contact page or a conference badge.

4. Phone number

Opens the dialler with the number ready to call. Scanning does not place the call — the person still has to press the button, which matters if you are worried about accidental calls.

5. SMS message

Opens a text message with the number and, optionally, the body pre-filled. Commonly used for opt-in campaigns. It cannot send anything by itself.

6. WhatsApp

Opens a chat with a number, with your message already written, without the scanner having to save the contact first. This one is worth its own guide, because the encoding choice decides whether the code works from a desktop browser at all.

7. App store link

Opens an app's listing in a store. The honest limitation: a static code carries one address, so it cannot send iOS and Android visitors to different stores. Branching needs a redirect, and this site deliberately does not offer one for app links — a "scan to update your app" code that redirects is a textbook phishing pattern. If you need both platforms, put a landing page of your own behind the code.

8. Payment request

Carries payee details and an optional amount so a payment app opens with them filled in: UPI, a PayPal.me link, a crypto address with its chain, or bank transfer details. It is a request to pay and nothing more — no card details are involved and no money is processed, held or settled. There is a fuller guide, including what the code cannot do.

9. Location

Opens a map at a set of coordinates. By default it encodes a Google Maps URL, which opens the native maps app on both iOS and Android and still works in a desktop browser. A bare geo: URI is available instead, but iOS Safari does not handle that scheme, so it is opt-in rather than the default. See the location guide.

10. Wi-Fi network

Joins a network without anyone typing the password — the single most popular use of QR codes in cafés, hotels and offices. Supports WPA, WEP and open networks, and hidden SSIDs. Worth reading the Wi-Fi guide before you stick one on a wall, because a printed Wi-Fi code hands the password to anyone who photographs it.

11. Contact card

Encodes a vCard the phone offers to save straight into the address book: name, phone, email, organisation and title. A photo does not fit — a vCard carrying an image runs to tens of kilobytes, which produces a code too dense to scan reliably. The vCard guide covers what fits.

12. Calendar event

Encodes an ICS event the phone offers to add, with start and end time and optional location and description. Useful for one-off events; less so for anything recurring, because a static code cannot be updated when the details change.

Compare them side by side

Type What the scanner sees Payload weight Guide
Website link The browser opens the URL Light Guide
Plain text The text is displayed Light
Email A new message opens Light
Phone The dialler opens Very light
SMS A text message opens Light
WhatsApp A chat opens, message pre-filled Moderate Guide
App store link The store listing opens Light
Payment A payment app opens with the payee filled in Moderate Guide
Location A map opens at the coordinates Moderate Guide
Wi-Fi The phone joins the network Moderate Guide
Contact card The contact is offered for saving Heavy Guide
Calendar event The event is offered for adding Moderate to heavy

"Payload weight" is a rough sense of how much data the type carries, and therefore how dense the code gets. It is the reason a long vCard needs a bigger print than a short link — and the size calculator will do that arithmetic for the content you actually have.

Types that need more care than they look

Four of these carry a risk that is not obvious from the form, and each is worth a moment before you commit to print.

If you are checking a code you did not make, the scanner decodes it in your browser and shows you the payload before you open anything.

Does the type change the print size?

Yes, and this is the part most people get wrong. The type does not change the rule — a code still needs roughly one unit of size per ten units of scanning distance — but it changes how much data sits inside the pattern, and more data means more, smaller modules at the same printed size.

Two consequences follow. A contact card needs a larger print than a short link to scan from the same distance. And if you raise the error correction level to survive a scuffed surface, you have made the code denser again and need to go up another size. The QR code guide covers the sizing rule, contrast and the quiet zone in full.

Frequently asked questions

How many types of QR code are there?

The QR code format itself has no notion of types — it only carries data. The "types" are conventions for what that data means, and a phone decides what to do by recognising the format of the payload. This generator offers twelve: website link, plain text, email, phone, SMS, WhatsApp, app store link, payment, location, Wi-Fi, contact card and calendar event.

Can one QR code do several things at once?

No. A static code holds one payload, and the phone acts on that payload alone. What you can do is point a code at a page of your own that offers several choices — that works, but the chooser is your web page, not the code. It also means the code now depends on a page you have to maintain.

Which type is best for a business card?

A contact card if you want the details saved to an address book, or a website link if you would rather control what they see next. A vCard is denser, so it needs to be printed larger; on a small card a link is usually the safer choice.

Which type should I use for a menu?

A website link. Menus change, so this is also the classic case for a dynamic code — a static code means reprinting every table card the next time a price moves.

Do all types work on both iPhone and Android?

The common ones do, because modern phone cameras decode them natively. Two are less predictable: a bare geo: URI, which iOS Safari does not handle, and custom app schemes. That is why both are encoded in their cross-platform form by default rather than their "proper" one.

Can I change the type after printing?

No. The type is encoded in the payload. Changing it means making a new code, which is why print runs that might need to change are better served by a dynamic code from the start.

Which type carries the least data?

A phone number, by a wide margin — a short string of digits. That makes it the most forgiving type to print small. A contact card or a calendar event carries the most and needs the most room.

Make one now

Pick the type, fill in the details, and download a PNG or SVG with a live preview. Your first three codes are free.

Open the QR code generator