How to Make a QR Code for Telegram
Make a static QR code that opens your Telegram chat using your public @username (or a phone number with country code). It uses Telegram's own t.me link, works for a person, bot, channel, or group, and never expires because the code is static. Free, no account.
Make it (the Telegram tab)
A Telegram QR code is just a link wearing a pattern. When someone scans it, their phone opens a t.me address, and Telegram takes it from there. Two shapes cover almost everything:
- Public @username:
https://t.me/yourusername. This opens your profile, channel, group, or bot. - Phone number:
https://t.me/+15551234567. This opens a chat with the number, country code included.
You don't have to type any of that yourself. In the tool, open the Telegram tab, drop in your @username or phone number, pick your colors, then download the PNG or SVG. If you'd rather drop it on a page, hit Copy code for your website and paste the snippet it hands you. That's the whole job.
Username or phone number?
If you have the choice, use the public @username. Three reasons, and they all matter more than they sound.
- It's stable. A username doesn't change when you switch SIMs or move countries. The code you printed keeps pointing at the same place.
- It hides your number. A username link never shows your phone number to whoever scans. On a public flyer, that's the difference between a follow and a wave of spam texts.
- It works for a channel or group. A phone number only opens a one-to-one chat. A username can open your channel or group too, which is usually the point.
A phone number is a perfectly fine fallback if you prefer it or don't have a username set. Just remember to include the country code (the + and the digits), or the link opens nothing.
One thing Telegram cannot do
Here's the honest limit, so you don't waste an afternoon fighting it. A Telegram link opens the chat. It does not pre-type a message. There's no way to bake "Hi, I saw your flyer" into a normal t.me link the way you can with some other apps.
That's a Telegram rule, not a shortcoming in the tool. Telegram simply doesn't read a message out of the URL for a standard chat, so any generator that claims otherwise is either bending the truth or relying on a bot workaround that most people won't set up.
If a pre-filled message genuinely matters (say you want every scan to arrive with "Table 4, one iced coffee" already typed), that's a job for WhatsApp, which does support it. I wrote the WhatsApp version of this guide for exactly that case. Pick the app by what you need the scan to do.
Where to put it
A Telegram code goes anywhere a person might want to reach you or your channel without typing a username by hand:
- Storefront window or counter, so walk-ins can join your channel for drops and hours.
- Product packaging or a thank-you card, pointing to a support chat or a community group.
- Flyers, posters, and event signage, where "scan to message us" beats a username nobody remembers.
- Slides and decks, so a room full of people can reach you before you've finished the sentence.
- Your own website, using the embed snippet from the Copy button.
Wherever it lands, print it big enough to scan from the distance people actually stand. I put the exact sizes in the QR print size guide. The tool always keeps a quiet margin around the code, so don't crop it flush to the edge.
Why it never expires
The code you make here is static. The t.me link is encoded directly into the black and white pattern. There is no short link, no dashboard, no redirect server sitting in the middle waiting to be switched off. Nothing to lapse, nothing to renew.
That's the difference between a code that works in two years and one that quietly dies the day a subscription runs out. A lot of QR generators hand you a "dynamic" code that routes every scan through their servers, and that code goes dark the moment you stop paying them. Mine can't do that to you, because I'm not in the loop at all. I could shut this whole site down tomorrow and your printed Telegram code would still open your chat. If you want the full breakdown of that trap, I explain it in do QR codes expire.
FAQ
How do I make a Telegram QR code?
Open the Telegram tab in the tool, enter your @username or phone number, and download the code. It's free, no account, and it's made in your browser.
Should I use my username or phone number?
A public @username is the cleaner choice. It's stable, it hides your number, and it works for channels and groups, not just one-to-one chats. A phone number works too, as long as you include the country code.
Can I pre-fill a message in a Telegram QR code?
No. Telegram links cannot pre-type text for a normal chat, so the code opens the chat but leaves the message box empty. If you need a pre-filled message, use a WhatsApp code instead.
Does it work for a channel or group?
Yes. Use the public @username of the channel or group, and the code opens straight to it. This is one reason a username beats a phone number, which only opens a personal chat.
Does a Telegram QR code expire?
Not this one. It encodes the t.me link directly into the pattern, so there's no redirect server in the middle that anyone can switch off. It keeps working as long as your Telegram account and username stay live.
Can I print it?
Yes. Download a high-resolution PNG (up to 4000px) or a true vector SVG and print it at a readable size with the margin left intact. The tool includes the quiet border for you.
Make a Telegram code
QR Codes Made Easy builds a static chat code right in your browser. Free, no account, and it never expires.
Build your QR code