// FAQ

Frequently Asked Questions

Copy your public link in the form t.me/username, open it in a private browser window to confirm it works, then encode the full HTTPS address in a QR generator. Scan a printed proof on a phone with Telegram and one without. A static code is free and keeps working while the username exists.

A username link avoids printing your number, and Telegram says the number stays hidden unless your privacy settings allow otherwise. A phone-number link does expose the number. For public material, use a dedicated username owned by the organization and review the app's privacy settings before printing.

No. The code opens an invitation or group page, and the visitor still follows Telegram's current join or request step. Administrators can require approval. Use wording such as Scan to request access, and avoid promising automatic membership or guaranteed approval.

A QR code does not keep an invite private. It makes the link easy to copy with a camera. Use expiry dates, member limits or admin approval where Telegram offers them, create one invite per placement, and revoke a link that leaks. Anyone already inside the chat stays until removed.

The printed symbol does not expire, because it simply stores the link. The link can stop working if the username changes, an invite is revoked or reaches its limit or expiry date, a post is deleted, or a bot is disabled. Test printed codes on a schedule.

Telegram's deep-link documentation supports draft text on some links when the visitor can write in the chat. The text appears for the person to edit and send; it is never sent for them. Keep it short, test special characters, and never prefill sensitive details.

Library documentation reports that a start parameter accepts letters, digits, underscore and hyphen, up to 64 characters. That limit was not confirmed on Telegram's own page here, so check the official bot docs. Never put secrets in the value, and validate it on your server.

For private invites, yes where you can. One invite per placement lets you set separate expiry, limits or approval and revoke only the link that leaks. For a public username link there is nothing to separate, so one code can serve every placement.