An SMS QR code stores a recipient and an optional draft message. This generator writes them in the widely used smsto: form, smsto:<number>:<message>. Scanning should open a compatible messaging application for review; it should not send the text automatically. The sender remains responsible for confirming the recipient, content, and any carrier charges.
Use the generator above for the payload, then apply the testing, consent, privacy, and fallback practices below. Scanner and messaging-app behavior varies, so avoid promises that one draft format will behave identically on every device.
How does an SMS QR code work?
The QR code identifies an SMS recipient and can supply an optional draft message. The formal standard is RFC 5724, which defines the sms: URI scheme and states that activating it should not transmit a message without prior user confirmation. The ZXing project documents the SMSTO: form as one observed in the wild while noting it has no official specification, which is why phone support is worth testing.
For the number +1 (555) 123-4567 and the message "Appointment request", the generator produces exactly this text:
smsto:+15551234567:Appointment requestIt strips spaces, brackets, and dashes from the number, because RFC 3966 does not allow spaces in a telephone URI, and it keeps a leading +. The message is written as typed, not percent-encoded. The standard form with a body parameter would look like sms:+15551234567?body=Appointment%20request; this generator does not emit it, so if a phone in your audience ignores the draft text, test that phone before printing. The phone decides which messaging application handles the action.
The code does not confirm that the number accepts SMS, that the message is free, or that every app supports the same optional syntax.
How to create an SMS QR code
Use a globally recognizable recipient, a short draft, and a clear label explaining what happens after the scan.
- Select SMS in the generator.
- Enter the recipient with a leading plus and country code.
- Add a concise draft that the sender can review and edit.
- Generate the code and scan the downloaded version.
- Verify the recipient, message, punctuation, and line breaks.
- Print the recipient number or short code and instructions beside it.
- Test the final physical proof on representative devices, using the printing guide for size and paper.
What should the draft message contain?
The draft should make the intended action clear without creating a misleading statement in the sender's name.
| Use | Appropriate draft | Avoid |
|---|---|---|
| Appointment request | “I would like to request an appointment.” | Embedding medical details in a public code |
| Event response | “RSVP: [name], [number attending]” | Claiming agreement to undisclosed terms |
| Support | “Support request for product model:” | Requesting passwords or payment-card data |
| Marketing keyword | A short disclosed keyword | Assuming the scan alone constitutes consent |
SMS marketing and consent
Generating a draft message does not by itself establish legally valid marketing consent. Rules can require specific disclosure, affirmative consent, sender identification, records, frequency information, fees language, and opt-out handling.
Requirements vary by country, message type, sender, recipient relationship, and industry. Obtain qualified guidance for the markets you target. Keep proof of the displayed disclosure and consent flow rather than treating possession of an incoming keyword as universal permission.
Do not precheck agreements or hide recurring-message terms behind the QR symbol. Show material conditions in ordinary text where the person can read them before scanning and sending.
Privacy and security
Anyone can decode the recipient and draft from a public SMS QR code. Do not embed private case details, authentication codes, passwords, financial data, or sensitive health information.
Attackers can replace a public label with a different recipient. Display the number or verified service name beside the code, especially for payments, account support, public services, and donations.
The QR generator does not encrypt the eventual SMS. Mobile networks, devices, backups, and service providers may retain message data according to their own systems and policies.
Why provide visible fallback text?
Show the recipient and keyword or instruction beside the code. This supports accessibility, devices without a compatible handler, damaged symbols, desktop visitors, and users who want to verify the destination.
A useful label is “Scan to draft HELP to +1…” rather than “Scan here.” If standard messaging rates may apply, state that clearly where required and appropriate.
Compatibility and cost testing
Test the final payload with the actual carriers, regions, and device types that matter.
- Confirm a draft opens rather than sending automatically.
- Check the international number and any short-code restrictions.
- Verify special characters and line breaks.
- Keep the body short enough to avoid an unnecessarily dense symbol.
- Confirm the recipient can receive and process the message.
- Review roaming, premium, or international costs that could affect users.
Static code maintenance
A static SMS QR code cannot be edited after printing. If the recipient, keyword, disclosure, or workflow changes, replace the code and all published instructions.
For a long-lived campaign, maintain an inventory of placements and an owner for the receiving number. Do not allow a recycled or reassigned number to remain on active materials.
Common failures
Most failures involve unsupported URI handling, invalid number format, overlong drafts, unavailable recipients, or poor print quality.
- If no app opens, test another scanner and a phone with SMS capability.
- If only the number appears, simplify the body and verify the generated syntax.
- If characters change, regenerate through the tool instead of editing encoded text.
- If delivery fails, check the number, carrier, short code, opt-out state, and service status.
- If scanning fails, restore contrast, quiet zone, square proportions, and adequate size.
When an SMS QR code is the wrong choice
Do not use SMS when the interaction requires confidentiality, rich attachments, identity assurance, guaranteed delivery, or detailed structured information. SMS messages can be delayed, filtered, sent to a reassigned number, exposed in device previews, or unavailable on data-only devices.
Use an authenticated portal for sensitive account activity, an accessible web form for structured intake, email for longer non-sensitive messages, and a published emergency channel for urgent safety needs. If users may incur international or premium charges, offer a clearly free alternative.
Operational checklist for the receiving team
A working QR code is only useful when someone owns the inbox and response process. Document who monitors the number, expected response time, message retention, escalation, language support, opt-out handling, and what happens outside service hours. Test from an external number rather than only the organization's own devices.
What should you check before printing?
An SMS QR code prepares a message; it does not remove the sender's confirmation, carrier rules, privacy considerations, or marketing obligations. Use international number formatting, keep the body concise, disclose the intended action, and display a fallback. Test the complete workflow before distribution.
References
- E. Wilde and V. Vaha-Sipila, “RFC 5724: URI Scheme for SMS,” Internet Engineering Task Force/RFC Editor, 2010.
- H. Schulzrinne, “RFC 3966: The tel URI for Telephone Numbers,” Internet Engineering Task Force/RFC Editor, 2004.