SMS QR Code Generator
Create a QR code that opens the user's texting app with your number — and optionally a prefilled message — ready to send. Perfect for SMS opt-ins, support hotlines, and 'text us' campaigns.
Your files never leave your device. No upload. No sign-up.
An SMS QR code encodes an SMSTO: URI in the format SMSTO:<number>:<message>. When someone scans it, their phone opens the default messaging app with the number and message body prefilled, and they tap Send to actually deliver it. Great for opt-in campaigns (‘text JOIN to 12345’), support hotlines, quick surveys, and any print material where you want a one-tap SMS action.
How the SMS QR code actually works
The SMSTO: scheme was popularised by Nokia and is the format ZXing and most modern QR readers standardise on. iOS Camera and Android Camera both recognise SMSTO: and open Messages / Google Messages with the number and body prefilled. Shortcode support (five- or six-digit US shortcodes for opt-in campaigns) is carrier-dependent — most major US and EU carriers accept them from SMSTO: URIs. Message body characters are passed through raw and can include Unicode, emoji, line breaks, and carrier-specific keywords like ‘JOIN’ or ‘STOP’.
Common mistakes and limitations of SMS QR codes
The user still taps Send — no phone will silently dispatch SMS from a scan. RCS-only (Rich Communication Services) messages don't fire from SMSTO: URIs; the phone always falls back to standard SMS. iMessage on iPhone honours the number but may route through iMessage instead of SMS if the recipient is another iPhone — usually fine, but worth testing for shortcode campaigns which are SMS-only. Some very old handsets ignore SMSTO: and only understand the older sms: variant; if you're printing for a very broad audience, include the phone number as plain text as a backup.
SMS QR code FAQ
- Does the SMS send automatically?
- No. The phone opens Messages with the number and body prefilled; the user taps Send to actually deliver the SMS.
- Why include the country code?
- International country codes (e.g. +1 for the US, +44 for the UK) make the QR work when scanned from any country. Without one, only local numbers route correctly.
- Does this work for shortcodes?
- Yes — most major US and EU carriers accept 5- and 6-digit shortcodes from SMSTO: URIs. Test on at least one iPhone and one Android before printing at scale.
- Can I use emoji in the message?
- Yes. QR codes support full Unicode, and modern SMS supports emoji via UCS-2 / GSM 7-bit fallback.
- How long can the message be?
- The QR itself holds up to a few thousand characters, but the SMS message you actually send is limited by carrier concatenation rules (usually 160 characters per SMS segment for GSM 7-bit).
- Will this send through iMessage on iPhone?
- It depends on the recipient — iMessage routes automatically for other iPhones, otherwise it falls back to SMS. For shortcode campaigns (SMS-only), the phone uses standard SMS.
- Is the message stored on your servers?
- No. The QR is generated locally in your browser and the payload is encoded directly into the image — nothing is logged.
- Can I include line breaks?
- Yes — line breaks in the message textarea are preserved in the SMSTO: payload and shown as-is when the messaging app opens.
SMS QR field reference
| Field | URI segment | Notes |
|---|---|---|
| Recipient number | SMSTO:<number> | Include country code (e.g. +1) |
| Message body | :<message> | Unicode + emoji supported |
| Shortcode | SMSTO:12345 | Carrier-dependent |
Full example: SMSTO:+15551234567:JOIN
Last updated:
References: Nokia SMSTO URI documentation, IETF draft-wilde-sms-uri, ZXing SMS format documentation.