Phone QR Code Generator

One scan, and your number is dialed.

Enter the number below. Scanning opens the phone's dialler with it already entered, so calling you takes one tap instead of eleven digits typed by someone standing in a car park.

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, with no password to type. 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, which 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.
Colors Templates, code and background, eyes
Quick color templatesReady-made pairs that fill in the code and background colors below. A starting point, not a limit; change either afterwards. 30 ready-made pairs

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 colorThe color of the pattern itself. Dark on light scans most reliably; a gradient is available on the paid plans.
BackgroundThe color behind the pattern, or none at all. Keep it well clear of the code's own color, because scanners read contrast, not hue.
Eye frame colorThe three large squares' outer rings. “Match code” follows the code color, so it keeps up if you change your mind later.
Eye center colorThe solid centers of the three large squares. Coloring these differently is the smallest change that makes a code look designed.
Shape & style Dots, corners, eyes, roundness
Eye center shapeThe solid center inside each of those three squares.
ShapeFits the whole code inside a circle instead of a square. The pattern shrinks to stay inside it, so it can be harder to scan from a distance.
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.
Advanced Frames and captions, minimum size, download size

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.

Made in your browser. Nothing is sent to us unless you save it to your account. Check it yourself

Open your browser's developer tools and switch to the Network tab, then build a code.

You will see this page load its own files: a stylesheet, two typefaces from Google Fonts, and our analytics. Like most sites, this one loads those. What you will not see is a request carrying the link you typed, the contents of your code, or the image itself, because the code is drawn here on your device and there is nowhere for it to be sent.

More about how this works

The toughest code you can print

A phone number is a very small amount of data, and that has a direct physical consequence: the grid is coarse, the modules are large, and the finished code tolerates abuse that would kill a denser one.

That matters because of where these end up. A phone code lives outdoors, on equipment, on vehicles, in weather, on surfaces that scuff, fade, get rained on and get scanned from four feet away by someone in a hurry. A vCard code in that position would be marginal. This one keeps working.

Use the headroom deliberately: print it larger than you think you need for the reading distance, and it will survive a couple of years of sun and grime. See the sizing guide for the distance-to-size relationship, and curved surfaces if it is going on a pipe, bottle or vehicle panel.

International format, always

Write the number as +, country code, then the number, like +1 555 123 4567. Spaces, brackets and dashes are stripped automatically, so type it however is easiest to proofread.

A local-format number is not a smaller problem than it sounds. It works perfectly for people already in that country and fails for everyone else, which means it fails precisely for the visitors, tourists and out-of-area customers a scannable number was supposed to help. On anything that travels, whether packaging, livery, a trade stand or a website, international format is not optional.

Where a dialler beats everything else

Service and repair stickers on machinery, taxi and delivery signage, after-hours and emergency contact cards, estate agent boards, vehicle livery, lift and plant-room notices, parking enforcement signs.

The common thread is urgency plus bad conditions. Someone is standing up, outdoors, possibly in the dark, possibly with a broken boiler in front of them, and the task is "reach a human now". Those are exactly the conditions in which a mistyped digit is most likely and least forgivable.

It is also the right choice when the alternative is a website. Nobody with a flooding kitchen wants to navigate a contact page.

When to reach for SMS instead

Use a phone code when someone is genuinely there to answer and a conversation is the fastest resolution. Use an SMS code when inquiries arrive outside working hours, when you want a written record, or when your audience would simply rather not call, which for a large and growing share of people is the case.

Plenty of printed material carries both, labeled, and lets the person choose. That costs a few square centimeters and removes the guess entirely.

Frequently asked questions

Does scanning place the call automatically?

No. It opens the dialler with the number filled in and the person taps to call. No phone will dial from a scanned code without confirmation. That is a deliberate safety behavior, and a good one.

Can I include an extension?

There is no reliable cross-platform way to do it. Extension syntax varies between phone systems and is handled inconsistently by handsets. Encode the main number and print the extension in text beside the code.

Will it work on a tablet or laptop?

It depends entirely on the device. Something without calling capability may offer to place the call through a linked phone or an internet-calling app, or may do nothing. Design for phones and treat anything else as a bonus.

Can I change the number later?

Not on a printed code; the number is in the pattern. If the number is likely to change, or if you want to know how many people are calling from which sign, point a dynamic code at a page that carries the number instead. You lose the one-tap dial and gain the ability to edit and count.