SMS QR Code Generator
Build a QR that opens the SMS app with a pre-filled recipient and message text. Great for business cards and event flyers.
How to use SMS QR Code
- Enter the destination phone number, ideally in full international format with the country code (for example +15550100).
- Type the message you want pre-filled in the recipient’s SMS app — a keyword, a confirmation, or a vote response.
- The preview re-renders on every keystroke, wrapping your number and text into an SMSTO: URI.
- Test it with your own phone camera first to confirm the number and message land correctly.
- Click Download PNG and place the code on a flyer, poster, packaging, or business card.
How an SMS QR code works
A QR code is just a container for a text string. The clever part is convention: scanner apps and phone cameras look at the first few characters of the decoded string and decide what to do. When the string starts with SMSTO:, the phone knows to open its messaging app rather than a browser. This tool builds exactly that string and renders it as a scannable image.
The SMSTO: URI format
The payload follows a simple, two-colon structure:
SMSTO:+15550100:Hi there!
Everything between the first and second colon is the destination number; everything after the second colon is the pre-filled message body. So the general shape is SMSTO:<number>:<message text>. If you leave the message empty the app simply opens a blank message addressed to the number.
Why the user still has to press send
Phone operating systems deliberately stop short of sending the message. The QR code can pre-address and pre-fill, but the final tap is always the user's. That guardrail prevents a malicious code from silently texting a premium-rate number, and it means the person can edit the text before it goes out — handy for feedback or vote responses where they add their own comment.
SMSTO: versus the sms: URI
There are two competing ways to encode a text-message action, and they are not interchangeable. The form this tool emits puts the body after a second colon:
SMSTO:+15550100:Text JOIN to enter
The alternative, defined in RFC 5724, uses a query parameter instead: sms:+15550100?body=Text%20JOIN%20to%20enter. On paper the sms:form is the more "official" URI, but in practice the body parameter is honoured unevenly: some Android builds and older iOS versions open the thread but discard the prefilled text. SMSTO:predates the RFC, comes from the original Japanese feature-phone era, and is the form the widest range of camera and scanner apps still parse correctly — which is why it is the safer default for a printed code you cannot revise later.
Carrier limits and message length
A single SMS segment holds 160 characters in the standard GSM-7 alphabet. The moment you include a character outside that set — a curly quote, an em dash, or any emoji — the message switches to UCS-2 encoding and the per-segment limit drops to 70 characters. Longer text is split into concatenated segments that the recipient's carrier reassembles and, crucially, may bill as multiple messages. Because the prefilled body is just a starting draft the sender can edit, keep it well under one segment: a short keyword such as JOIN or YES is ideal, both for billing and because shorter payloads make a less dense, easier-to-scan code.
Keeping the message compatible
Since the colon separates the number from the body, a stray colon inside your text can split the payload in the wrong place on stricter parsers. Semicolons, hard line breaks, and emoji are the other usual offenders — some apps silently drop them. Stick to one short line of plain letters, digits, and basic punctuation, and dry-run the finished code on both an iPhone and an Android handset before sending it to print.
Where SMS QR codes shine
They are perfect anywhere you want a frictionless text-message action: opt-in keyword campaigns on posters, "text us to book" on shop windows, quick event RSVPs, or a feedback prompt printed on a receipt. Pairing the code with a short instruction ("Scan, then tap send") noticeably improves completion rates.
Pick the right action code
An SMS code is one option in a family of "do something on scan" codes. If a text thread is not quite the right call to action, one of these encodes a different next step for the same poster or receipt.
- • QR code generator — use a tel: or mailto: link if you would rather a scan place a call or draft email.
- • vCard QR code generator — when you want the scanner to save your number rather than text it right away.
- • QR code decoder — confirm the number and body decode correctly before the flyer goes to the printer.
Frequently asked questions
What format does this QR code use?
Does it send the message automatically?
Why does my message arrive blank or cut off?
Should I include the country code?
What is this useful for?
Is SMSTO different from the sms: URI?
Is my phone number or message sent to a server?
Can I use a shortcode instead of a full phone number?
Related tools
More tools you might find useful in the same flow.
QR Code Generator
QR code generator — create QR codes for URLs, text, email, and phone numbers, then download as PNG or SVG. Free, with codes generated in your browser.
WiFi QR Code
WiFi QR code generator — create a code guests scan to join your WiFi network instantly, no typing passwords. Free, and credentials stay on your device.
vCard QR Code
vCard QR code generator — create a QR code that saves your name, phone, and email straight to a contact list when scanned. Free, made in your browser.
Barcode Generator
Barcode generator online — create Code 128, EAN, UPC, and Code 39 barcodes and download them as images. Free, instant, and made right in your browser.
Built by Muhammad Tahir · About