SMS QR codes

Free SMS QR Code Generator for Text Marketing

Open SMS with a pre-filled number and message in one scan. Built for opt-ins, customer support, marketing polls, and feedback. It works on every recent iPhone and Android, and it is free forever.

  • Free static QR codes - work forever
  • Generated in your browser - no signup required
  • Made in Canada · PIPEDA & Law 25 compliant

Enter the number and message on the right →

Generate your SMS QR code

Enter a phone number
Enter a phone number to preview

Want colours, frames, or logos? Use the full generator →

Why SMS QRs convert better than other channels

SMS is the highest-engagement outreach channel most Canadian businesses have access to: text messages are opened almost universally and usually within minutes, where marketing email is opened by a fraction of recipients, often hours later if at all. For retail, restaurants, and service businesses with a mobile-first customer base, that gap is the whole argument for building an SMS list in the first place.

The friction has always been the opt-in. Asking someone to type a short code to a five-digit number, or key in a phone number from a poster, loses most of the people who were briefly willing. An SMS QR code removes that entirely: one scan opens the messaging app with your number - and an optional keyword like "JOIN" - already filled in, so the customer just taps send. The moment of intent and the action collapse into a single gesture, which is why a scannable opt-in consistently out-converts a printed shortcode.

What you'll need before generating

Two things, one of them optional:

  • A receiving number - your business mobile for very low volume, or (recommended) a dedicated SMS service number that can handle keywords, auto-replies, and opt-outs.
  • An optional pre-filled message - a short keyword that tells your system what the person wants and gives them a frictionless first message to send.

Useful pre-fill patterns: JOIN for a loyalty opt-in, MENU to request daily specials, RESERVE to start a booking, or a support starter like "Help - I'm at the front counter". Keep it short: a long pre-filled message both looks like spam to the customer and makes the QR pattern denser and harder to scan. One important Canadian point - when a customer scans and sends a keyword like "JOIN" themselves, that outbound message is their express consent under CASL, which is the cleanest way to start a compliant SMS list.

Use cases by industry

Retail loyalty programs

Print "Text JOIN to subscribe - get 10% off" with the QR on receipts and at the till. The customer scans, "JOIN" is pre-filled, they tap send, and your system enrolls them and replies with a welcome and their first reward. Because the customer initiated the message, you have a clean consent record - provided your welcome reply identifies your business and explains how to opt out.

Restaurants

"Text MENU for today's specials" on a table tent, "Text RESERVE" for a quick booking line, or a feedback prompt on the receipt. It pairs naturally with a menu QR code - one scan to see the food, another to join the list for the next visit.

Customer support

In-store and on equipment, "Scan to text our support line" with a pre-fill like "Hi, I need help with…" lets a customer reach you without hunting for a staff member or sitting in a phone queue - particularly effective on shelf edges and self-serve kiosks.

Polls and feedback

At trade shows, "Text YES if you'd buy this"; at conferences, a keyword to vote on the next session; in a restaurant, "Text your rating 1–5". Live, low-effort feedback you can actually act on before the event ends.

Real estate

On open-house signs and listing riders, "Text INFO for full listing details" or "Text TOUR to book a viewing" captures a lead at the curb. Pair it with a vCard QR code so the agent's contact saves at the same time.

Canadian SMS rules: CASL

Canada's Anti-Spam Legislation (CASL), enforced by the CRTC, governs commercial electronic messages including marketing SMS, and the penalties are serious - administrative monetary penalties run up to $1 million for an individual and $10 million for a business. The QR code is a tool for complying, not a loophole around it.

In practice, CASL requires three things, and a scan-to-text opt-in maps onto all of them:

  • Express consent before you market. The customer scanning and sending "JOIN" of their own accord is express consent, and you have a timestamped record of the message that proves it.
  • Identify the sender. Every message you send back must clearly say who you are - your business name, not just a number.
  • A working unsubscribe in every message. Include "Reply STOP to unsubscribe" (or equivalent) in each message, and honour it promptly.

What you must not do is treat the QR as permission to message numbers you collected some other way - a scan-based opt-in only covers the person who chose to scan and send. Used correctly, the QR gives you the consent and the paper trail; sustaining the relationship within the rules is then on your replies.

A compliant opt-in, start to finish

It helps to see the whole loop concretely. Suppose a café wants an SMS list. The flow that keeps it on the right side of CASL looks like this:

  • The printed prompt states the value and the action plainly: "Get a free pastry on your next visit - scan and text JOIN to subscribe to occasional offers from Maple Café." The customer knows what they are agreeing to before they act.
  • The customer scans and sends "JOIN." That outbound message, sent by them, is the express consent - and the timestamp and number are your record that it happened. You did not message them first.
  • The automated welcome reply identifies the sender and gives the exit in the same message: "Maple Café: you're subscribed to occasional offers (about 2 texts/month). Show this text for a free pastry. Reply STOP to unsubscribe."
  • Every later message repeats the unsubscribe and a STOP reply is honoured immediately and permanently.

Nothing here needs a lawyer to reproduce, but each step is doing real compliance work: a clear pre-scan disclosure, a customer-initiated consent you can prove, sender identification, and a frictionless opt-out in every message. The QR code makes the consent step effortless; the structure above is what makes it lawful. Skip the disclosure or the STOP line and the convenience of the QR will not save you from the penalties.

Design and placement tips

Always print the phone number as text beside the code as a fallback for anyone who cannot scan, and put a clear call to action next to it ("Text JOIN to subscribe") so the value is obvious before the customer commits. Keep any pre-filled message short - it both converts better and keeps the pattern easy to scan.

  • Receipts and table tents: 2 cm is enough at hand distance - but keep the quiet-zone margin clear.
  • Posters and window signs: 8–10 cm so it reads from across a room or the sidewalk.
  • Shelf edges and kiosks: 3–4 cm at roughly eye height for the person standing in front of it.

Test on both an iPhone and an Android before printing - the messaging apps differ slightly, and the pre-filled body in particular behaves differently across platforms. Keep dark modules on a light background and never lay the code over a busy photo or a dark panel; that is the most common reason a code fails in the exact retail lighting you cannot control. In Quebec, the code is a symbol with no language obligation, but any wording printed around it falls under the Charter of the French Language - "Textez ADHÉSION" or French given clearly more visual weight than English is the safe approach.

Common problems and fixes

"The SMS opens but the message body is blank"

Some older Android versions do not honour the pre-filled body in an sms: link. Test on at least one Android device, and treat the keyword as a helpful default rather than something the flow depends on - the number still opens correctly, so the customer can type the keyword themselves.

"Customers text in but never get a reply"

A personal mobile has no automation, so keywords just pile up unanswered. Use an SMS service (Twilio, MessageMedia, SimpleTexting, or similar) that can auto-respond to keywords, enrol the sender, and send the welcome message instantly - the reply speed is most of the value of SMS.

"We're getting spam to the number"

Public-facing codes attract junk. That is exactly why the receiving number should be a dedicated service number, never your personal mobile - a service number can filter, rate-limit, and be swapped without reprinting anything if it is abused.

"Does the phone-number format matter?"

For Canadian numbers, no - +1 416 555 0199, (416) 555-0199, and 416-555-0199 all work, because the code just opens the messaging app and the phone parses the number. Including the +1 country code is the most robust choice for cross-border scanning.

Static or dynamic: which does an SMS QR need?

A static SMS QR - what this free generator produces - encodes the number and message directly into the pattern. It works forever with no account and no dependence on our servers; you only reprint if the receiving number or the keyword changes. For a stable loyalty or support line, that is all you need.

A dynamic QR (a paid plan feature) lets you change the number or message later without reprinting - genuinely useful if you A/B test opt-in keywords or switch SMS gateway providers. If your number and keyword are settled, stay static.

Other QR codes worth pairing with SMS

An SMS opt-in works well next to a Google review QR code on the receipt, a Wi-Fi QR code on the table, and a vCard QR code on the owner's card. Each is free, static, and generated the same private, in-browser way.

SMS QR code FAQ

Does the SMS QR code expire?

No. This is a static QR code - the destination number and any pre-filled message are encoded directly into the pattern, with no server in between. It keeps working for as long as that number is active. You would only reprint if you changed the receiving number or the message.

Do I need an account to create one?

No account, no sign-up, and no email. The generator runs entirely in your browser: enter the number and an optional message, the QR code appears in the live preview, and you download it. There is nothing to register and nothing to pay - static QR codes are free forever.

Will the pre-filled message work on all phones?

On modern phones, yes - iOS 8 and newer and Android 6 and newer support a pre-filled SMS body. Some older Android devices open the messaging app to the right number but leave the body blank. Keep the message short and treat it as a helpful default rather than something the customer cannot change.

Is the SMS QR code CASL-compliant?

The QR code itself is just a convenience - compliance depends on how you use it. When a customer scans and sends a keyword like JOIN, that outbound message is their express consent and a written record of it. Your replies must still identify your business and include clear unsubscribe instructions ("Reply STOP to opt out"). Used as an opt-in, the QR supports CASL compliance; it does not replace it.

Can I track how many people scan and text?

Not from the QR code - a static SMS code opens the customer's own messaging app and never touches our servers, so a scan count is impossible. You can measure response instead at your receiving number or SMS platform, by counting inbound keyword messages, which is the metric that actually reflects opt-ins.

What number should I use - my mobile or a service?

For anything public, use a dedicated SMS service number (Twilio, MessageMedia, SimpleTexting, or similar) rather than a personal mobile. A service number gives you auto-replies, keyword handling, opt-out management, and a buffer against spam to a public-facing code. A personal mobile works for very low volume but does not scale and exposes your private number.

Is my phone number sent to qrcodegenerator.ca's servers?

No. The QR code is generated entirely in your browser using JavaScript - the number and message are never transmitted to us or anyone else. You can confirm this by opening your browser's network tab while generating, or by disconnecting from the internet: the code still generates. This is core to how we stay PIPEDA and Quebec Law 25 compliant.