WhatsApp QR Code Generator

Start a WhatsApp chat with a scan.

Enter your number below, and optionally the first message. Scanning opens a chat with you — the person does not need your number saved, and does not need to find you in a search.

Customize

Type
Encodes a website URL. Opens in the phone's browser when scanned. Encodes plain text. Displays as-is when scanned — no link, no app needed. Encodes a contact card. Phones can save it directly as a new contact. Encodes Wi-Fi credentials. Phones can join the network directly by scanning — no typing a password. Encodes an email address. Opens a pre-filled draft in the phone's mail app when scanned. Encodes a phone number. Opens the phone's dialer, pre-filled, when scanned. Encodes a text message, pre-addressed. The message itself may not always pre-fill depending on the recipient's phone — this varies by device. Opens a WhatsApp chat with the number pre-filled, and the message too if you add one. Requires WhatsApp installed (or web.whatsapp.com). Encodes a map coordinate. Opens the phone's default maps app, centered on that point, when scanned. Encodes a calendar event. Phones can add it directly to their calendar app when scanned.
Embeds your logo in the QR code's center. Every code is generated at error correction level H, the highest, which is what makes a logo possible at all — but a logo is still deliberate damage, so keep it at or below 15% of the code's area and test before printing.
Quick color templates

Pick a preset to fill in the dot and background colors below, or skip this and choose your own.

Light backgrounds
Dark backgrounds

Light dots read fine on dark backgrounds on screen, but most scanners are tuned for dark-on-light -- test before printing at volume. Scan reliability tips.

Dot color
Background
Shape
Fits the whole code inside a circle — the pattern shrinks slightly to stay inside it, so it may be a little harder to scan from a distance.

Preview

Generated QR code — press and hold to save or share
Log in to save QR codes to your account. Sign up free to get 2 dynamic QR codes you can edit after printing.

Generated in your browser — nothing is uploaded or saved.

The number format is stricter here, and the failure is silent

This is where nearly every broken WhatsApp code comes from, so it is worth getting right before you print anything.

Unlike the Phone and SMS types, WhatsApp needs the number as digits only, including the country code, with no leading +, no spaces and no dashes. And national trunk prefixes have to go:

  • US (555) 123-4567 becomes 15551234567.
  • UK 020 7946 0958 becomes 442079460958 — the leading 0 is dropped.
  • Germany 030 901820 becomes 4930901820, same reason.

Get it wrong and nothing announces the error. The chat simply does not open, or worse, opens against a number that is not yours. Scan your own code and confirm it reaches the right chat before committing to print.

It degrades gracefully, which is unusual

The code encodes an ordinary web link using WhatsApp's own Click to Chat format. So a phone without WhatsApp installed does not hit a dead end — it opens WhatsApp Web in the browser instead.

That is a real advantage over any scheme that only functions with the app present, and it means you can put this on material aimed at a mixed audience without stranding the minority who do not use it. It is also why the code works from a laptop camera or a desktop scanner, which app-only schemes generally do not.

Where this is the obvious choice

WhatsApp is the default way people message businesses across much of Europe, Latin America, South Asia, Africa and the Middle East. In those markets an SMS code is the odd choice and this is the expected one.

It suits shop windows, market stalls, service vehicles, restaurant tables, property boards, delivery notes and anywhere a conversation with a photo attached is useful — a customer showing you the broken part, the room they want quoted, the sofa in the window.

Pre-fill the first message to do the same job as an SMS keyword: Hi, I'd like to book a table, or Enquiry about the blue sofa. It starts the conversation on the right subject and tells you which sign they scanned.

One practical note: a shop window is read from far further away than a table card, so size the printed code for the distance it will actually be scanned from.

The one type here that can also be dynamic

Because a WhatsApp code is a web link underneath, it is one of only two types on this site that can be made dynamic — the other being a plain link. That means the printed code can stay the same while the number behind it changes, and you can count scans.

Worth considering if you run seasonal staff on different handsets, or if the business number might move. Every other type here encodes its content directly into the pattern and can never be repointed.

Frequently asked questions

Do I need a WhatsApp Business account?

No. This works with any WhatsApp number, personal or Business. A Business account is worth having for a real business regardless — profile, catalogue, automated replies — but the code does not require one.

Why doesn't my code open the right chat?

Number formatting, nearly every time. Digits only, country code included, no plus sign, and drop the national trunk prefix (the leading zero in many countries). Scan it yourself and check before printing.

Does the person need my number saved first?

No — and that is the main advantage over telling people to "message us on WhatsApp". The chat opens without them saving a contact or searching for you, which removes the step most people abandon at.

How is this different from the QR code inside WhatsApp itself?

WhatsApp's own code is designed to be scanned from within the app to add a contact. This one is a standard QR code any camera can read, it can carry a pre-written message, and you can style it and print it at whatever size you need. For printed material, this is the one you want.

Will the pre-filled message definitely appear?

Yes — unlike SMS, WhatsApp's link format has a single documented way to carry a message, and it is honoured consistently across app and web. It is still editable by the sender before they send it.