Encode the t.me link
Public username links are stable; private invite links work but die if revoked. Choose based on how long the print will live.
Free tools · No account, no watermark
A Telegram QR code turns print into subscribers: scan, and the channel opens with Join on screen. For communities, alert channels, class groups and support lines that run on Telegram, it's the shortest path from a poster to a member.
Encode the t.me link of a public channel or group; for private groups, encode the invite link — and remember invite links can be revoked, which turns the printed code off with them. If you rotate invite links for safety, print a dynamic code and repoint it to the current link.
Pick a look
Error correction
Logo
This is the app's own renderer and its own scannability check, running in your browser — the logo included never leaves your device. Every preset on this shelf is decode-audited before it ships.
Scannability: Excellent
No watermark, no account. Print-grade: whole pixels per module.
Your t.me link — a public channel, group, or bot username.
How to get it right
Public username links are stable; private invite links work but die if revoked. Choose based on how long the print will live.
Next to the code, one line: "Daily market prices, 7am" beats "Join our Telegram". The code delivers the click; the caption delivers the reason.
Scan with the app installed and without: with it, the channel opens natively; without, the browser shows a preview with an open-in-app prompt.
The honest catch
What you make here is a static code: the content is encoded in the grid itself, it never expires, and it needs nothing from us to keep working — print it and forget us. The one thing it can never do is change. A dynamic code encodes a short link you can repoint any time after printing, counts every scan, and can carry your own domain. That's the paid product, and it starts with a free trial.
Questions
Every print of that link stops working — Telegram invalidates it server-side. Public channel links avoid this; for private groups on long-lived print, route through a dynamic code you can repoint to the fresh invite.
Yes — t.me/yourbot works the same way, and ?start= parameters survive the scan, which lets a printed code start the bot with context.
More free generators
Unlimited static codes on every plan. Dynamic codes you can repoint after printing, on your own domain.