Skip to content
QRCodeDojo All tools

SMS QR Code Generator

Open the messaging app with your number and message already typed.

  • Free, with no account
  • Static — it never expires
  • Encoded on your device

International form, starting with + and the country code.

Short works best — a single keyword is the most reliable pattern of all.

SMSTO is the safer default across devices.

Only non-personal fields go into the link.

Export

SVG has no resolution at all — it is the right choice for anything that will be printed.

Appearance & encoding

Higher levels survive damage and allow a bigger logo, but make the symbol denser.

The specification requires 4. Below that, decoders often fail to find the symbol at all.

Centre logo

PNG, JPG, SVG or WebP up to 512 KB. The file is read in this tab and never uploaded.

The safe maximum depends on the symbol size, not just the error-correction level — the check below works it out for the code you actually have.

Print readiness

Generate a code to see its minimum printed size.

What is actually encoded

The two formats, precisely

There are two ways to write a text message into a QR Code and they are not equally supported:

FormatLooks likeSupport
SMSTO SMSTO:+14155550123:JOIN The ZXing convention. Android camera and every dedicated scanner app. Body is normally honoured.
sms: sms:+14155550123?body=JOIN RFC 5724. Reliable on iOS. A few Android messaging apps open the thread but drop the body.

Neither is universal. If it matters that the pre-filled text arrives, test on a phone from each platform before the run goes to print — that takes two minutes and saves a reprint.

A retail shelf edge label with a small QR Code and the words Text JOIN for restock alerts
A single-keyword message is the most reliable pattern: short payload, small symbol, nothing to mistype.

When an SMS code is the right choice

  • Keyword opt-in. “Text JOIN for restock alerts.” The person keeps control of the conversation, which makes opting in feel safe.
  • Service requests in the field. A sticker on a machine with its asset ID pre-filled: FAULT AC-114. The message arrives already identified.
  • Places with no data signal. Basements, lifts, rural sites. SMS gets through where a web form cannot load.
  • Audiences who do not install apps. Messaging is on every phone ever sold, with no account to create.

Say what will happen

Print the number and the keyword in readable text next to the code, along with who receives it. A scan that silently opens a message to an unknown number gets cancelled by most people, and rightly so.

Limits worth knowing

  • Body support is not guaranteed. Design so the code is still useful if only the recipient survives.
  • No group recipients. One number per code.
  • No emoji in the pre-filled text. They encode as multi-byte UTF-8, inflate the symbol, and render inconsistently across messaging apps.
  • Short codes do not travel. They are valid in one country only.

FAQ

Frequently asked questions

SMSTO or sms: — which format should I pick?
SMSTO: is the QR-specific convention and is the safer default: dedicated scanner apps and Android's camera all understand it, including the pre-filled message. sms: is the RFC 5724 URI form, which iOS handles well and a few Android builds accept while ignoring the body. If your audience is mostly iPhone, try sms:; otherwise stay with SMSTO.
Does scanning send the message?
No. It opens the messaging app with the recipient and text ready, and the person presses send. Nothing can send a text on someone's behalf from a scan, which is as it should be.
Who pays for the message?
The sender, at their normal rate. If you are running a keyword campaign on a short code, say so in the printed text beside the code — people are reasonably wary of texting an unfamiliar number.
Can I use a short code or a five-digit number?
Yes, put it in the number field as-is. Short codes are country-specific, so a code printed for one market will not work in another. If your audience crosses borders, a full international number is the safer choice.
Why does the pre-filled text not appear on some phones?
A handful of Android messaging apps honour the recipient but drop the body. There is no way to force it from the code. If the message text is essential, print it beside the code so the person can type it.
Why should I include the country code?
Without it the number is only valid inside one country. A tourist scanning your sign will get a failed send and no explanation. Write it as +44... or +1... and it works from anywhere.

Keep going