Turn any phone number into a scannable QR code in seconds
Paste a phone number, hit generate, and get a QR code anyone can scan to call you instantly - no typing, no typos. Perfect for business cards, flyers, storefronts, restaurant menus, or any printed material where you want people to reach you in one tap.
Everything runs in your browser. Your phone number is never uploaded to any server and stays completely private on your device.
How to create a phone number QR code
- Enter your phone number in the field above. Use full international format for best compatibility - for example,
+14155552671for a US number or+447911123456for a UK one. - Pick a size (256 px works for screens; 512 px or larger is better for print).
- Choose colours if you want the QR to match your brand - change the foreground and background separately.
- Click Generate. A preview appears immediately.
- Download as PNG for photos, presentations, and web use, or SVG for print and vector artwork that scales without going blurry.
What happens when someone scans it? Their phone opens the dialler with your number already filled in. One tap to call - no manual entry needed. QR codes are free to use, never expire, and require no app - any smartphone camera works.
Worked example
Say you run a plumbing business and want customers to call you from a window sticker. You enter:
+14155552671
The tool encodes that as a tel: URI - specifically:
tel:+14155552671
The output is a square QR code image. A customer scans it, their phone shows "Call +1 (415) 555-2671?", and they tap call. Done. No link, no app, no redirect - the number lives directly inside the QR pattern.
How to generate a phone-number QR code in code
If you need to create these programmatically - say, for a batch of business cards or a dynamic web page - here are two clean approaches.
Python (using the qrcode library)
# pip install qrcode[pil]
import qrcode
phone = '+14155552671'
img = qrcode.make(f'tel:{phone}')
img.save('phone_qr.png')
Run this and you get a phone_qr.png file ready to drop into any design. The tel: prefix is the key - it tells the scanner this is a phone number, not a web address.
JavaScript (using the qrcode npm package)
// npm install qrcode
const QRCode = require('qrcode');
QRCode.toFile('phone_qr.png', 'tel:+14155552671', { width: 512 }, (err) => {
if (err) throw err;
console.log('QR code saved!');
});
Swap in any number. The width option sets pixel size - go 400+ for anything printed.
How it works
A QR code is a 2D grid of black and white squares that encodes text. For a phone number, the tool wraps your digits in a tel: URI (defined in RFC 3966), then encodes that string into the QR pattern using Reed-Solomon error correction. That means the code still scans even if part of it is scratched or dirty.
The QR image is built entirely by JavaScript in your browser using the QR Code Model 2 standard. Nothing is sent anywhere - you could disconnect from the internet and it would still work.
The QR code standard (ISO/IEC 18004) supports up to about 3 KB of text, so any phone number - even with country code and extension - fits easily.
When to use a phone number QR code (and when not to)
| Good fit | Not the right tool |
|---|---|
| Business cards, flyers, banners | You need to track scan analytics (use a URL shortener QR with a redirect instead) |
| Shop windows, vehicle wraps | You want to share full contact details (name, email, address) - use a vCard QR code |
| Restaurant / takeaway menus | You need to change the number later without reprinting - again, a redirect URL QR is better |
| Event badges and lanyards | Your audience uses older feature phones that lack a QR scanner (rare today, but worth noting) |
If you need to include a name, job title, email, and phone in one scan, consider a vCard QR code instead - it stores the full contact card. If you want to message someone on WhatsApp rather than call, a WhatsApp QR code opens a chat directly.
Ready to make yours? Use the generator at the top of this page - it takes about ten seconds and the download is free.