Features Add-ons Pricing Cost calculator Use cases Compare Blog

WhatsApp QR Code for Business: Short Links vs wa.me

17 min read

The short answer

A WhatsApp QR code for business, made in WhatsApp Manager or through the WhatsApp Business Management API, opens a chat pre-filled with up to 140 characters of text that stays editable after printing. A wa.me link carries its text fixed in the URL. Meta says analytics are not available for QR codes and short links (checked October 2026).

Chatbots screen in the Acme Retail demo workspace listing a Price enquiry bot for messages containing price, rate, cost or kitna, a Welcome message bot limited to once per 24 hours per contact, and a Store timings bot switched off, each with a trigger count and edit controls

How do you make a WhatsApp QR code for your business?

A WhatsApp QR code for business is made in WhatsApp Manager, under a phone number's Message links tab, or with one request to the message_qrdls endpoint of what Meta calls the WhatsApp Business Management API. Either way you get a code plus a short link of the form wa.me/message/<code>, carrying a pre-filled message of up to 140 characters that you can change after the code has been printed.

The alternative most shops start with is a home-made wa.me link, turned into a QR image by a free generator. That works too, and the two look identical on a counter standee. They behave differently in three places that matter once the standee exists: whether the message can be changed, what a customer sees after you retire the code, and whether anybody can tell you how many people scanned it. Meta's answer to the third question is the same for both, and it is not the answer a scan graph implies.

Two ways a customer reaches one WhatsApp chat shown as a ladder, a wa.me link whose number and message are fixed in the URL and a Meta short link or QR code whose pre-fill stays editable, followed by a deleted code that reports itself expired and the warning that Meta offers no scan counts, so the first message is the only counter you own
Two links into one chat. Only one of them can be changed after it is printed.

The sections below take each difference in turn, then the questions that follow a scan: what it costs, whether it counts as permission to market, and what should answer it.

What is the difference between a wa.me link and a WhatsApp short link?

A wa.me link is a click-to-chat address you write yourself, with the phone number and any pre-filled text inside the URL. A short link is a code Meta issues for a business phone number on the WhatsApp Business Platform, where the number and the message live on Meta's side and only a random code appears in the link. Meta's own FAQ puts the difference in one answer:

"The new short links enable prefilled messages associated with a link to be edited or deleted at any time. They also reduce the syntax of the URL to a random code, which eliminates the need to embed messages in the URL and masks the phone number." (Meta — QR Codes and Short Links)

Every QR code made in WhatsApp Manager or through the API has one of these short links behind it. The API's example response returns a qr_image_url for the image and a deep_link_url of https://wa.me/message/4O4YGZEG3RIVE1 together, so a code you print and a link you paste into an Instagram bio can be the same object.

Question wa.me link Meta QR code or short link
Who makes it Anyone, by hand WhatsApp Manager or Meta's API
Phone number in the link Visible Masked behind a code
Pre-filled text Fixed inside the URL Up to 140 characters, editable
How many per number No limit published 2,000 codes and links
After you retire it Cannot be retired Scanner told it has expired
Scan analytics from Meta None documented "Analytics are not available"

A third kind exists for numbers that live only in the WhatsApp Business app on a phone. WhatsApp's help centre says "A short link for your business is automatically generated when you create an account on the WhatsApp Business app" (WhatsApp Help Center — How to create short links), and that link has its own QR code and default message in the app's Tools tab. Meta's Business Help Centre article on platform QR codes tells app-only businesses not to follow its steps, so pick the method that matches where your number actually runs.

How do you write a wa.me link with a pre-filled message?

Write https://wa.me/<number>?text=<message>, with the number in full international format and the message URL-encoded. WhatsApp's help centre gives the rule for the number:

"Use https://wa.me/ where the is a full phone number in international format. Omit any zeroes, brackets, or dashes when adding the phone number in international format." (WhatsApp Help Center — How to use click to chat)

and for the message, on the same page:

"The pre-filled message will automatically appear in the text field of a chat." (WhatsApp Help Center — How to use click to chat)

For an Indian mobile number 98765 43210 and the message "Hi, I want to order", the link is:

https://wa.me/919876543210?text=Hi%2C%20I%20want%20to%20order

Spaces become %20 and the comma becomes %2C. Most spreadsheet and code environments have an encoding function; typing the encoded form by hand is how stray characters end up in the customer's message box.

"Appear in the text field" is the important phrase. Nothing is sent by the link. The customer sees your words in their own composer, can edit or delete them, and has to press send before your business receives anything. The same page also describes a link with no number at all, https://wa.me/?text=urlencodedtext, after which "you’ll be shown a list of contacts you can send your message to". That suits a "share this offer with a friend" button and is useless on a counter, because the customer chooses the recipient.

The help centre publishes no character limit for a wa.me pre-fill; we read the whole click-to-chat article on 17 October 2026 and it states none. The 140-character limit Meta does publish belongs to its own QR codes and short links, not to wa.me. Keep a wa.me message short anyway, because a stranger at a till reads it on a phone before deciding whether to send it.

Why does a wa.me link fail with an Indian phone number?

Because Indian numbers are printed the way people dial them, and a wa.me link needs digits only, starting with the country code. The help centre gives one example to use, https://wa.me/1XXXXXXXXXX, and one not to use, https://wa.me/+001-(XXX)XXXXXXX. The wrong one carries a plus sign, an international dialling prefix, brackets and a dash, which is a fair description of the average visiting card.

As printed on the card Problem In the link
+91-98765-43210 Plus sign and dashes 919876543210
098765 43210 Trunk zero, no country code 919876543210
0091 98765 43210 International prefix 919876543210
9876543210 No country code at all 919876543210

The last row is the dangerous one, because it looks complete. In international format the first digits are read as a country code, so wa.me/9876543210 asks for a number beginning with 98, which is Iran's country code, not an Indian mobile number missing its prefix. The link opens, just not to you.

The number also has to be on WhatsApp. The click-to-chat article says the feature works "as long as you know this person’s phone number and they have an active WhatsApp account". A shop that prints its landline on a standee and has never registered that line with WhatsApp has printed a link to nobody.

How do you create a WhatsApp QR code through the API?

Send a POST to /<PHONE_NUMBER_ID>/message_qrdls with the pre-filled message and the image format you want. This is Meta's own example, with the access token shortened:

curl 'https://graph.facebook.com/v26.0/106540352242922/message_qrdls' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer EAAJB...' \
  -d '{
    "prefilled_message": "Cyber Monday",
    "generate_qr_image": "SVG"
  }'

and Meta's example response:

{
  "code": "4O4YGZEG3RIVE1",
  "prefilled_message": "Cyber Monday 1",
  "deep_link_url": "https://wa.me/message/4O4YGZEG3RIVE1",
  "qr_image_url": "https://scontent-iad3-2.xx.fbcdn.net/..."
}

generate_qr_image takes SVG or PNG. The same endpoint lists every code on the number with a GET, reads one with GET /message_qrdls/<code>, updates one with a POST naming the code, and deletes one with DELETE /message_qrdls/<code>. Keep the code value from the response in your own records; it is the only handle for every later change.

Look closely at that example. The request sends "Cyber Monday", the response returns "Cyber Monday 1", and the list example further down the same page shows the same code holding "Cyber Monday". Meta does not explain the trailing 1. If anything downstream matches incoming messages against your pre-fill, store the text the API returned, then read it back with a GET before relying on it.

Without the API, Meta's Business Help Centre walks the same job through WhatsApp Manager: open the account, click Phone numbers, choose the number, open Message links and click Create message link. Its note on an empty message field is worth knowing: "If you don't add the text, your QR code will pop up an open-ended conversation when scanned." (Meta Business Help Centre — Manage your WhatsApp Business platform QR code)

Can you change a printed WhatsApp QR code's message later?

Yes, if Meta issued the code; no, if it is a wa.me link. A Meta code is a pointer, so you change what it points at and the printed image stays valid. The update is a POST with the same code:

curl 'https://graph.facebook.com/v26.0/106540352242922/message_qrdls' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer EAAJB...' \
  -d '{ "code": "4O4YGZEG3RIVE1", "prefilled_message": "Cyber Tuesday" }'

In Meta's example the answer carries the new message with the same code and the same deep_link_url, which is the whole point: the square on the box does not change. A wa.me link has its message inside the URL, so changing the words means a new link, a new image and a reprint.

Codes also stay alive until you say otherwise. The developer page says "QR codes do not expire automatically", and the Business Help Centre puts the two rules side by side: "You can create up to 2,000 unique codes and manage them directly in Meta WhatsApp Manager. Your codes won't expire until you delete them." Deleting has a visible cost. Meta's user-experience table says a customer who opens a deleted code or link "sees an error message saying “This QR code [short link] has expired.”" Nothing forwards them anywhere else.

So the safer way to end a festival offer printed on packaging is to edit the pre-fill to a neutral greeting rather than delete the code. Boxes sit in cupboards for months, and a customer who scans one in March should still reach the shop, not an expiry notice.

Can you see how many people scanned your WhatsApp QR code?

No. Meta states it plainly, in the limitations list and again in the FAQ on the same page:

"Analytics are not available for QR Codes and Short Links as we limit the amount of data we log to protect user privacy." (Meta — QR Codes and Short Links)

Nothing in WhatsApp's click-to-chat article offers scan counts for wa.me links either. That tells you how any scan graph must be produced. A phone that scans a code holding your wa.me link goes straight to WhatsApp and reports the scan to no third party, so a QR generator that shows you scan counts cannot be encoding your WhatsApp link. It has to encode its own web address, which logs the visit and then redirects to wa.me. That has four consequences worth weighing before you print it:

  • The code works only as long as the redirect does. Its life is tied to that service's uptime and to your account with it, not to WhatsApp.
  • Every scan stops at somebody else's server first. Meta lists the absence of an intermediate step as a feature of its own codes: "Users will always go directly to the app without any interstitial page."
  • The WhatsApp camera may refuse it. WhatsApp's help centre notes that "The WhatsApp camera can only scan official WhatsApp QR codes" (WhatsApp Help Center — How to share your WhatsApp Business QR code). The article does not define "official", but a code pointing at another company's redirect is the clearest case of one that is not.
  • A redirect counts visits, not conversations. The number that matters to a shop is how many people pressed send, and no redirect can see that.

You can count what matters without any redirect. Give each placement its own code, which the 2,000 allowance makes easy, and its own wording: "Hi, I saw your counter standee" on one, "Hi, my order arrived" on the delivery box. Then count first messages that contain each phrase. Treat the result as a floor rather than a total, because customers are free to edit the text before sending, and some will.

Does a WhatsApp QR code scan open a free entry point window?

No. Meta's pricing page names one trigger for the free entry point window, and a QR code is not it:

"If a WhatsApp user messages you via an ad that clicks to WhatsApp (CTWA) using a device running our Android or iOS app (since our desktop and web apps are not supported): A customer service window is opened." (Meta — Pricing on the WhatsApp Business Platform)

The free window only follows from a reply inside that ad-started conversation, as our piece on the click-to-WhatsApp free entry point window sets out. A conversation that starts from a scanned code is an ordinary one. The customer's message costs you nothing, since the same page says "Meta does not charge for messages from users to businesses", and it opens the 24-hour customer service window. Inside that window you reply with service messages, and since 1 October 2026 those are charged after a monthly allowance:

"For each business phone number, Meta provides 1,000 free service messages per month, which do not roll over but reset monthly." (Meta — Pricing on the WhatsApp Business Platform)

When the window closes you are back to approved templates, charged by category and by the recipient's country. A busy counter code can therefore move a number past its free service allowance in a month. How the free tier and the per-message rates interact is laid out in what changed for service messages on 1 October 2026, and the WhatsApp pricing calculator turns an expected volume into a monthly figure.

What happens Charged by Meta?
Customer scans and sends the pre-fill No
Your free-form replies within 24 hours Service rate, after 1,000 a month per number
A template after the window closes Yes, by category and market
A chat started from a CTWA ad Free entry point rules apply instead

Is a QR code scan an opt-in for WhatsApp marketing?

Not on its own. A scan followed by a sent message means the customer started a conversation and you may answer it. Sending them a promotional template next week is a separate act, and Meta's opt-in rule asks for more than a phone number:

"Businesses may contact people on WhatsApp if: (a) they have given their mobile phone number; and (b) businesses have received opt-in permission from the recipient confirming that they wish to receive subsequent messages or calls from a particular business." (Meta — Get opt-in for WhatsApp)

The same page lists what an opt-in must state: "Businesses must clearly state that a person is opting in to receive communication from the business" and "Businesses must clearly state the business’s name that a person is opting in to receive messages from."

A QR standee can be designed to carry both statements. Print the business name and what customers will receive beside the code, and make the pre-fill say it in the customer's own sent message, for example "Yes, Acme Retail can send me offers on WhatsApp". The message then sits in the chat history as a dated record of who agreed to what. Whether that also satisfies the law where your customers live is a separate check, because Meta's third requirement is simply "Businesses must comply with applicable law". What to store so an opt-in can be proved later is covered in what WhatsApp actually requires from an opt-in.

What should answer the message after a customer presses send?

Somebody, quickly, because the customer service window is already counting down. A code on a shop counter tends to produce the same few first messages over and over, so the opening reply is a good candidate for a keyword auto-reply, with a person taking over from the second message.

In WabaCRM the scanned conversation lands in the shared inbox like any other inbound chat, and a keyword chatbot set to Contains can answer a phrase from your pre-fill. Matching ignores letter case, and at most one bot answers any single message. Each bot shows how many times it has been triggered, which turns the per-placement wording from the analytics section into a running count.

Chatbots list with a Price enquiry bot for messages containing price, rate, cost or kitna, a welcome bot and a switched-off Store timings bot, each with a count of how many times it has answered and Turn off or Turn on, Clone, Edit and Delete controls
A keyword bot's trigger count is a floor on how many scans ended in a sent message.

That count is a floor, not a scan total. It records the times the bot answered, so customers who rewrote the pre-fill before sending, and any repeat a bot's own limits held back, are not in it. How keyword bots choose an answer, and when Meta lets them reply at all, is set out in the WhatsApp chatbot builder guide.

How should you print a WhatsApp QR code for a counter or packaging?

As a vector file, in its original colours, with one code per language. Meta's notes on printing are short and specific. On format: "We recommend the .svg file format for the best quality in print materials." On appearance:

"We recommend you do not customize the color or look and feel of the code itself in order to preserve readability." (Meta — QR Codes and Short Links)

On language, the responsibility is yours: "You will be responsible for using the appropriate QR code based on expected location and language of users." A shop serving customers in Hindi and English is better served by two codes with two pre-fills than by one bilingual message. Meta does not say how the 140-character limit counts Devanagari or Tamil script, so test a regional pre-fill in WhatsApp Manager before printing it on ten thousand boxes.

Two more behaviours from Meta's user-experience table are worth knowing before the customer finds them. A short link clicked on a computer opens WhatsApp's desktop app with the message ready, or prompts the user to install it. And someone who once blocked your business "gets a prompt asking if they would like to unblock the business to continue messaging them", so a code on a reorder slip can win back a customer who walked away.

For Indian shops the useful placements are the ones a customer holds while they have a question: the till, the invoice, the delivery box, the clinic reception desk. Each deserves its own code and its own first line, so the conversation starts already knowing where the customer is standing.

Every Meta quotation on this page was read from Meta's own documentation on 17 October 2026. Meta changes that documentation without notice; the linked pages are authoritative and this one is not.

Questions people also ask

Can one WhatsApp number have several QR codes with different messages?

Yes. Meta allows up to 2,000 QR codes and short links on a single business phone number, and each one carries its own pre-filled message of up to 140 characters. Every code opens a chat with the same number, so a shop can print one code for the counter, another for delivery boxes and a third for invoices, or one per language, and still answer them all from one inbox. Giving each placement its own wording is also the only way to tell, from the messages that arrive, which piece of print brought the customer in, because Meta offers no scan analytics for these codes.

Do WhatsApp QR codes work when scanned with the phone camera instead of WhatsApp?

Codes made through WhatsApp Manager or Meta's API do. Meta's QR codes page says users can scan them with their WhatsApp, iOS or Android camera, and that users will always go directly to the app without any interstitial page. The reverse is not guaranteed: WhatsApp's help centre notes that the WhatsApp camera can only scan official WhatsApp QR codes, so a code that points at a third-party tracking address may only open from the phone's own camera. Test every printed code with both cameras, on Android and iPhone, before the print run rather than after.

Does a WhatsApp QR code send a message by itself when it is scanned?

No. A scan opens a chat with your business and places the pre-filled text in the customer's message box. Meta's Business Help Centre describes it as a message that will populate for customers to edit and send to you after they have scanned the code. Nothing reaches your number until the customer presses send, and they can change or delete the words first. A scan that ends without a sent message leaves no trace on your side at all, which is one reason Meta's QR codes report no scan counts.

Can a wa.me link point to a number that only uses the WhatsApp Business app?

Yes. WhatsApp's click-to-chat feature works for any phone number with an active WhatsApp account, so a wa.me link in full international format opens a chat with a Business app number as readily as with a platform number. The Business app also creates its own short link automatically when the account is made, found in the Tools tab under Short link, with an editable default message there and its QR code one tap away. Meta's Business Help Centre tells businesses that only use the Business app not to follow its WhatsApp Manager steps, which are for platform numbers.

How do I stop an old WhatsApp QR code from working?

For a code made in WhatsApp Manager or through Meta's API, delete it: from the Message links tab, or with a DELETE request to the message_qrdls endpoint naming the code. Anyone who scans it afterwards sees an error saying the QR code has expired. Consider editing the pre-filled message instead when the code is printed on something that will outlive the offer, because an edited code still opens your chat. A wa.me link cannot be switched off at all. It keeps opening a chat with the number for as long as that number is on WhatsApp.

Keep reading

Your customers are already on WhatsApp

₹999 once for 1,000 contacts — no monthly fee and no expiry. Signing up is free and needs no card, so you can connect your number and read what arrives before you pay. Connecting takes as long as Meta's own review of it.

Sign up with your company email address. No sales call, no onboarding fee, nothing to schedule.

Why this is safe to point your customer list at

Payments are processed by Razorpay on their own checkout — your card details are never entered on, or stored by, WabaCRM. Every inbound WhatsApp webhook is checked against its signature before it is trusted.

Tech Provider is a Meta platform access tier — not a partnership, a reseller agreement or an endorsement.