Free SMS QR Code Generator
Create a QR code that opens the Messages app with a phone number and pre-written text ready to send.
1
Choose a QR type
How to create a SMS QR code
- 1
Enter the destination phone number in the Phone number field.
- 2
Optionally write a short pre-filled Message — something the sender can tap send on without editing.
- 3
Check the live preview updates as you type.
- 4
Open Customize appearance for colors, dot and corner style, size, and an optional logo.
- 5
Click Generate QR Code and download as PNG, SVG, or JPG.
Common uses for SMS QR codes
- Text-to-join waitlists at restaurants or pop-ups
- Event check-in codes at registration desks
- "Text STOP to unsubscribe" compliance footers on marketing mail
- Quick pickup or order-ready notifications for small businesses
Tips for better results
- Keep the pre-filled message short and specific (e.g. "JOIN") so it's a one-tap send.
- Confirm the number supports two-way texting if you expect replies — some business lines are outbound-only.
Features
- Pre-filled message text
- Set the text ahead of time so the sender's job is reduced to a single tap.
- Optional message field
- Leave it blank to just pre-fill the destination number and let the sender write their own text.
- Broad scanner compatibility
- Uses the widely recognized SMSTO: format supported by built-in camera apps on iOS and Android.
- Full visual customization
- Colors, dot and corner style, size, margin, error correction, and an optional logo.
- PNG, SVG, and JPG export
- Download in the format that fits your signage, packaging, or digital placement.
Benefits
- One-tap sending
- Removes the need to manually type a number and message — scan, review, and send.
- Great for opt-ins and waitlists
- A pre-filled keyword makes joining a list or promotion effectively a single tap.
- No app install required
- Uses the phone's own default messaging app — nothing extra to download.
- Fully private generation
- Everything is built client-side in your browser with no server round-trip.
- Free, unlimited use
- Create as many SMS QR codes as you need with no sign-up.
Frequently asked questions
Their phone's camera app opens the default Messages app with the destination number and pre-filled text (if you set one) already in place — they just review and tap send.
No. It opens a draft in the messaging app with everything pre-filled, but the person scanning still has to tap send themselves — nothing is sent without their action.
It uses the SMSTO: format, a long-established convention for pre-filling SMS drafts from a QR code that's recognized by the built-in camera apps and QR readers on both iOS and Android.
Yes — the message field is optional. Leaving it blank opens a draft addressed to the number with no text pre-filled, ready for the person to write their own.
The message field is capped at 300 characters, well within a standard SMS length, so it opens as a single message rather than getting split.
Yes — that's a common use. Pre-fill the message with a short keyword like "JOIN" so scanning and sending is a single tap for the person joining.
It works with the number entered, as long as that number can receive standard SMS. If your platform uses a short code or requires a specific keyword format, enter that number and keyword exactly as your provider expects.
Not necessarily — a local-format number works, but including a country code makes it reliable for people scanning from a different country or region.
Yes — a common pattern is printing an SMS QR code at a registration desk with a pre-filled confirmation keyword, so attendees can check in with one scan and one tap.
The message will still send, but the recipient won't get a two-way conversation — confirm your number supports inbound texting first if you're expecting replies.
Yes — a phone QR code opens the dialer to place a call; an SMS QR code opens the messaging app to send a text. They use different link formats and open entirely different apps.
Yes, emoji and other Unicode characters are supported in the message text, though very heavy emoji use will use up more of the 300-character limit than plain text.