Turn Any Phone Number Into a Scannable SMS QR Code
Point a phone camera at this QR code and it opens a pre-filled text message - ready to send in one tap. No app needed, no typing, no mistakes. Great for business cards, flyers, packaging, event signs, or anywhere you want people to reach you by text instantly.
How to Use the SMS QR Code Generator
- Enter the phone number in international format (e.g.
+14155552671). Include the country code so the code works worldwide. - Type your pre-filled message (optional). Leave it blank if you just want the number; add a prompt like "Hi, I'd like a quote" to guide the sender.
- Pick a size and colour if you want it to match your brand - darker foreground colours on a white background scan most reliably.
- Click Generate and preview the QR code live.
- Download as PNG or SVG. Use PNG for web and print at smaller sizes; use SVG when you need to scale it up (posters, banners) without pixelation.
What scanning it does: the phone's camera app reads the SMS QR code and opens the native Messages app with the number and message already filled in. The user just taps Send.
QR codes are free to use and never expire - the data (your phone number and message) is encoded directly inside the image, so there is no redirect, no server, and nothing to renew.
Worked Example
Say you run a plumbing business and want customers to text you for a quote. You'd fill in:
| Field | Value |
|---|---|
| Phone number | +14155552671 |
| Message (optional) | Hi, I'd like a quote for a job |
The generator builds an sms: URI that looks like this:
sms:+14155552671?body=Hi%2C%20I%27d%20like%20a%20quote%20for%20a%20job
That URI is what gets encoded into the QR image. When someone scans it, their Messages app opens, pre-addressed and pre-filled. They tap Send - done. You print the QR on your van, business card, or leaflet and new enquiries arrive without anyone mistyping your number.
How to Generate an SMS QR Code in Code
If you need to produce SMS QR codes programmatically - for bulk printing, a CMS integration, or an automated pipeline - here are two minimal, working examples.
Python (using the qrcode library)
# pip install qrcode[pil]
import qrcode
from urllib.parse import quote
phone = '+14155552671'
message = 'Hi, I'd like a quote for a job'
# Build the sms: URI
uri = f'sms:{phone}?body={quote(message)}'
qr = qrcode.make(uri)
qr.save('sms_qr.png')
print('Saved to sms_qr.png')
JavaScript (browser or Node, using qrcode npm package)
// npm install qrcode
const QRCode = require('qrcode');
const phone = '+14155552671';
const message = 'Hi, I\'d like a quote for a job';
const uri = `sms:${phone}?body=${encodeURIComponent(message)}`;
QRCode.toFile('sms_qr.png', uri, { width: 300 }, (err) => {
if (err) throw err;
console.log('sms_qr.png created');
});
Both snippets build the same sms: URI and hand it to a QR library. The library turns it into a matrix of black-and-white squares following the QR Code standard by Denso Wave.
How It Works Under the Hood
The tool formats your inputs into an sms: URI - a standard address scheme defined in RFC 5724. The phone number goes before the ? and the message body is URL-encoded after body= (spaces become %20, commas become %2C, and so on).
That URI string is then encoded into a QR code entirely inside your browser using JavaScript. Nothing is uploaded to any server. Your phone number and message text never leave your device, so they stay completely private.
The resulting image is a standard Model 2 QR code - the type every modern smartphone camera can read natively, no third-party app required.
When to Use an SMS QR Code (and When Not To)
Good fits
- Business cards and flyers - no number to mistype, scan and text in two taps.
- Retail and packaging - customer support opt-in or reorder prompts.
- Event check-in - attendees text a keyword to your shortcode to register.
- Real-estate signs - "Text us for a viewing" without printing a long number.
- Delivery or service confirmations - pre-fill "I've received my order" for one-tap replies.
When another QR type works better
- Need to send people to a website? Use a URL QR code instead.
- Sharing your full contact details? A vCard QR code saves name, number, email and address in one scan.
- Collecting payment? A UPI QR code or WhatsApp QR code may be more appropriate depending on your region.
- The pre-filled message exceeds ~160 characters on older Android devices - some phones split or drop it. Keep body text short and punchy.
One last tip: always test-scan your QR code on at least two phones before you print it at scale. Your SMS QR code is ready the moment you generate it - use the tool above and download yours now.