๐Ÿ“ต No SMS, No Rented Number, No Money โ€” Telegram Still Lets You In

:telephone: INCOMINGโ€ฆ โ–ธ DONโ€™T ANSWER โ–ธ THE NUMBER CALLING YOU IS THE CODE

That is one of six ways Telegram will verify you. SMS is only one of them โ€” and itโ€™s the lane Telegram guards hardest, which is why your code often never got sent at all.

You werenโ€™t failing the check. You were queueing on the one closed road.


:play_button: Do this first โ€” 60 seconds, any phone, any country

1. Type your number.  Then TOUCH NOTHING.
2. Let the "Sending you an SMS in m:ss" countdown run to zero.
3. Tap "Didn't get the code?" at the bottom.
4. READ THE LABEL โ€” it names the lane queued next:
      "Get code on this phone"   โ†’ voice / missed call
      "Send the code as an SMS"  โ†’ SMS retry
      "Get a code via Fragment"  โ†’ Fragment
5. Keep tapping through the cycle.  Do NOT restart the app โ€”
   restarting drops you back to SMS and burns your timers.

That link is not a complaint button. It fires auth.reportMissingCode โ€” it hands Telegram your operatorโ€™s network ID so its routing logs your carrier as swallowing codes, and the wording changes to name the next pipe. Official app only; on a modded client the link is inert.

:warning: Why โ€œjust tap Call meโ€ never worked for you. That button doesnโ€™t exist unless Two-Step Verification is already on. Telegramโ€™s own FAQ: dictated call codes are โ€œonly available for accounts that have two-step verification enabledโ€. Every guide has you pressing a button your account was never shown.


:high_voltage: One question splits the entire answer

Logged in on any device right now?
:white_check_mark: Yes โ€” old phone, tablet, laptop, a forgotten web tab You can retire SMS permanently, today โ†’ :a_button_blood_type:
:cross_mark: No โ€” locked out cold Three routes exist, and only three โ†’ :b_button_blood_type:
๐Ÿ…ฐ Still have a session โ€” kill SMS for good (Passkey ยท the hidden Login Email row ยท QR ยท 2FA ยท session timers)

Do these now, while you still can. Every one of them is prevention, not rescue.

:key: Passkey โ€” face/finger replaces the code, forever
Settings > Privacy and Security > Passkeys > Add Passkey (iOS: > Passkey > Create Passkey). It saves into Google Password Manager / iCloud Keychain / 1Password, so it survives losing the phone. Every future login screen then offers log in using passkey instead of a number. Shipped Dec 2025 โ€” what it is. Official apps only; update first.

:e_mail: Login Email โ€” the row Telegram hides from you
Once set, all future login codes go to your inbox instead of your SIM. The catch: the setup row is gated client-side and on most phones simply isnโ€™t drawn. Two ways to make it appear โ€”
โ”œโ”€ The language gate (iOS). The row renders if you already have one, or your number starts +7, or the appโ€™s language is Russian. So: Settings > Language > ะ ัƒััะบะธะน โ†’ back to Settings > Privacy and Security โ†’ the Login Email row is now there โ†’ add + verify โ†’ Settings > Language > English.
โ””โ”€ The budget flood. On official mobile: start a login, request the SMS code, enter it, back out, request again, repeat. The server eventually pops its own set up Login Email prompt.
:warning: Androidโ€™s row only appears when an email is already set โ€” itโ€™s a change-email row, not an add one. The server can still refuse outside its rollout regions. You need at least one deliverable code during setup. Keep 2FA on too: anyone knowing your number can start a 7-day email-reset. Lane spec: core.telegram.org/api/auth

:green_circle: โ€œSign in with Googleโ€ โ€” on official Android with Play Services, when the server flags it, a Sign in with Google link appears under the code box. One tap makes that address your Login Email. Absent on de-Googled ROMs, Huawei, and any third-party client.

:locked: Two-Step Verification โ€” Settings > Privacy and Security > Two-Step Verification โ†’ password โ†’ set the recovery email. This is the switch that puts the voice-call lane into your resend chain later. Honest: the recovery email only ever receives a password reset code, never a login code โ€” thatโ€™s the single most repeated mix-up on this topic.

:black_large_square: QR login โ€” a whole device, no code at all
Open web.telegram.org/k or Telegram Desktop; both show Log in by QR Code before asking for a number. Scan it from Settings > Devices > Link Desktop Device โ€” from inside that menu, not a camera app. Thatโ€™s where most people give up. How it works

:hourglass_not_done: Stop Telegram reaping your last session โ€” Settings > Devices โ†’ set sessions self-destruct to the longest option, then Privacy and Security > Account self-destruct โ†’ longest (default kills the account after 18 idle months). Every route above dies with your last session.

:globe_with_meridians: my.telegram.org/auth โ€” an official login surface with SMS removed by design: the page states it sends the code via Telegram, not SMS. Same at telegram.org/deactivate, which frees a number from a dead account so it can be re-registered fresh.

:floppy_disk: TgAuth (repo) โ€” mints a portable session key from one successful login; paste it back later and your in-app code appears live on the page. Solves โ€œI registered on a number I no longer have.โ€ :warning: That key is your account โ€” treat it like a root password, and itโ€™s unaudited third-party code. Keeping one official session alive does the same job with none of the risk.

๐Ÿ…ฑ Zero sessions โ€” the voice run, Telegram's 3 unlisted login mailboxes, the support form

1 โ€” Make the line able to ring, then take the call lane.
Turn on Wi-Fi Calling / VoLTE (Settings > Network & internet > SIMs > Calls; iOS Settings > Cellular > Wi-Fi Calling) and turn off DND and Silence Unknown Callers. Then run the 60-second sequence at the top. Two different things can arrive:
โ”œโ”€ Dictated call โ€” a robot reads 5 digits aloud, twice. Needs 2FA already on.
โ””โ”€ Missed / flash call โ€” sentCodeTypeMissedCall: a call rings once and cuts. Do not answer โ€” thereโ€™s no audio, itโ€™s closed by design. The last digits of the calling number are the code. Official Telegram for Android fills them in itself if you allowed the Phone permission โ€” the permission everyone reflexively denies. Otherwise read them off Phone > Recents. iOS canโ€™t do this at all.

2 โ€” The three mailboxes that exist only inside the Android client. None is on any Telegram web page. Match the mailbox to the exact on-screen error:

Error on screen Write to Subject
Code never arrives [email protected] +<number> Android Registration/Login Issue <version> (<build>)
Invalid phone number [email protected] Invalid phone number: +<number>
This phone number is banned [email protected] Banned phone number: +<number>

Body: your number in full international form, device, OS/SDK, app version, locale, then the problem in plain English. :warning: Never add #enableSMS โ€” thatโ€™s a developer queue for third-party app authors, not a user login issue.

3 โ€” telegram.org/support โ€” the only lane that works with zero sessions and zero codes. Four fields; paste the exact error string and name your carrier. Answered by volunteers: no ticket, no SLA, sometimes no reply.

4 โ€” @smstelegram โ€” Telegramโ€™s FAQ explicitly blesses this account and says to DM it your number. Check the handle character by character; the lookalikes are all theft. Nobody official ever asks for your code.

5 โ€” Already inside but acting restricted? @SpamBot states your limit status and appeals it โ€” but only once youโ€™re logged in.

Straight answer: if the number itself is banned, none of this revives it. Only a different number does.


:notebook: Read your error before trying anything else

Same screen, different walls โ€” and each one leaves a different door open.

What you get What it actually means Door still open
PHONE_NUMBER_INVALID Not a real assignable mobile number โ€” the classic VoIP range Get a real mobile-range number; test it first
PHONE_NUMBER_BANNED The number is burned, often by its previous owner Only a different number โ€” or recover@ if itโ€™s inherited
PHONE_NUMBER_FLOOD Too many code requests / too many accounts on it Stop re-requesting. Wait hours. Then switch lane once
FLOOD_WAIT_X Wait exactly X seconds. Literal Waiting. A VPN does nothing โ€” this is scoped to the number
PHONE_CODE_EXPIRED You were slow Request a fresh one
SESSION_PASSWORD_NEEDED Not an error โ€” a green light. The code step passed Just type your 2FA password

:package: Official dictionary: core.telegram.org/api/errors ยท machine-readable errors.json ยท offline grep: Telethon errors.csv ยท per-method error sets at tl.telethon.dev

๐Ÿงช Test a number BEFORE you burn it โ€” free VoIP / line-type lookups

A VoIP-flagged range is the exact class Telegram refuses. Check first, spend second.
โ”œโ”€ IPQualityScore free lookup / HLR variant โ€” VOIP flag, carrier, live-subscriber, prepaid. Browser, no signup, a few per day.
โ”œโ”€ numverify โ€” 100 free/month, key-based: apilayer.net/api/validate?access_key=KEY&number=โ€ฆ โ†’ read line_type + carrier. Loop it over candidates and build a will-clear list.
โ””โ”€ Abstract line-type checker โ€” 190+ countries, tie-breaker.

If any tool says VoIP, treat the number as dead on arrival. Accuracy drops outside major markets โ€” a good SIM occasionally reads Unknown.

Honest gap: there is no maintained public ledger of โ€œwhich numbers clear Telegram today.โ€ The channels selling that are selling the burned ranges. A line-type check is the only real-time signal that exists.

โš–๏ธ Keep a SIM alive forever without paying โ€” and the 4 countries where it can't work

Outside North America, incoming is free to you by market rule โ€” the callerโ€™s side pays. That makes a dormant prepaid SIM a permanent zero-cost receiver.

:globe_showing_europe_africa: Check this first โ€” receiving-party-pays markets: USA ยท Canada ยท Hong Kong ยท Singapore. There, your balance is charged to receive, so a zero-balance SIM structurally canโ€™t deliver a code, and dormancy is only ~30โ€“60 days. Everywhere else is calling-party-pays with 90โ€“365 day windows. Apply the filter before choosing where to source a number โ€” this alone kills weeks of wasted effort.

:india: The self-renewing loop. Indiaโ€™s consolidated consumer regulations (Ch. IV, Reg. 11โ€“12) bar disconnection for 90 days of non-usage โ€” and Reg. 12(3) grants a fresh 90 days after any qualifying activity. Then the hinge: both Airtel and Vodafone Idea told the regulator in writing that an incoming call counts as usage โ€” an incoming SMS does not.

So the pipe you pick changes the outcome twice. Waiting for the SMS delivers a code and lets the line die anyway. Taking the call delivers the same code and re-arms the 90-day clock. Same login, opposite result.

Also: TRAIโ€™s prepaid FAQ Q3 โ€” incoming stays available at zero balance during validity. Screenshot it for the store clerk who insists you must recharge.

โ”œโ”€ :philippines: Philippines โ€” Joint Circular 05-12-2017 ยง3: load expires one year from your latest top-up, rolling. One small load = a 12-month receiving window.
โ”œโ”€ :indonesia: Indonesia โ€” masa tenggang: 30 days of free incoming after expiry, across all major carriers. A countdown, not a parking spot โ€” then the number is permanently burned.
โ”œโ”€ :kenya: Kenya โ€” Safaricom Recreate Old SIM, USSD *100*2#, pulls a lapsed line back before itโ€™s recycled.
โ””โ”€ :globe_with_meridians: Any country โ€” Prepaid SIM wiki, swap the country in the URL: carriers, registration rules, credit validity, expiry, in one table.

This keeps a line you already hold. It does not get you one.

๐Ÿ“ฆ Free real mobile numbers โ€” what's genuinely free, by country

Real carrier ranges only. Every free eSIM youโ€™ve seen advertised is data-only โ€” no number is issued at all, so thereโ€™s nothing for a code to arrive at.

โ”œโ”€ Lyca free eSIM โ€” order without picking a plan; QR by email in minutes, real host-network number (KPN/Vodafone/Bouygues/Telstra depending). NL/DE/FR/BE/AT/DK/PL/PT/IE/AU/TN. :warning: Only registers while youโ€™re physically in that country. UK forces a plan; DE/FR/ES/IT/AT want ID.
โ”œโ”€ :india: Vi free SIM home delivery โ€” โ‚น0, agent brings it, eKYC at the door, live in ~30โ€“60 min. Airtel and Jio run the same doorstep flow.
โ”œโ”€ :south_africa: HelloMobile โ€” free Cell C-network SIM. Pick Voice SIM, not Data SIM โ€” a data SIM has no usable number.
โ”œโ”€ :argentina: Movistar chip prepago โ€” free courier to your door with gift data. Claro/Personal/Tuenti rotate the same promo.
โ””โ”€ :united_arab_emirates: du tourist SIM โ€” free at UAE airport immigration on a passport scan. Register Telegram and set a Login Email or Passkey on day one.

Say it plainly: every one of these needs national ID and physical presence. There is no globally-reachable source of a free real mobile number โ€” if there were, it would already be burned. This lane is โ€œbe in the right country,โ€ not โ€œorder online.โ€

๐Ÿ”Œ Catch the call on a computer โ€” USSD forwarding, scrcpy, KDE Connect, headless SIP

Telegram only accepts mobile numbers, so no softphone, PBX or VoIP line can ever be your registered number. These catch a call forwarded from a real mobile you already control.

:telephone_receiver: Standard GSM forwarding โ€” works on virtually every carrier on earth, free, zero-skill. Dial from the phone holding the SIM, while you still have it:

*21*<destination>#     forward everything
*61*<destination>#     forward when unanswered
*62*<destination>#     forward when unreachable / off
*004*<destination>#    all conditional forwards at once
*#21#                  check status        ##21#  cancel

Some carriers bill the forwarded leg or block international destinations.

โ”œโ”€ scrcpy โ€” mirror the phone holding the SIM to your PC over USB or Wi-Fi. Reads the incoming call and caller ID when the screen is smashed. Needs USB debugging already on.
โ”œโ”€ KDE Connect (Android) โ€” enable the Telephony plugin and the incoming caller ID pops up on your desktop. That caller ID is the flash-call code. Same Wi-Fi only.
โ””โ”€ Headless auto-answer โ€” baresip with answermode=auto, or pjsua --null-audio --auto-answer=200 --auto-rec, then read the digits with whisper.cpp offline. Honestly: the recorded WAV is the prize โ€” just play it.

โ˜ ๏ธ Proven dead โ€” stop spending time and money on these

โ”œโ”€ Free SMS-receive sites, rent-a-number services, VoIP number apps โ€” their whole DID pools are blacklisted before a code is ever sent. Hunting a fresh burner in the same pool is the loop youโ€™re stuck in.
โ”œโ”€ TextNow / 2ndLine / Talkatone / Google Voice โ€” they genuinely ring, but the ranges are pre-blocked for registration, and theyโ€™re US/Canada only.
โ”œโ”€ Any SIP, landline or DID number โ€” Telegram states it supports mobile numbers only. A perfect free SIP number is refused at signup.
โ”œโ”€ Free SIP accounts (Linphone, OnSIP, Zoiper, Callcentric) โ€” they give you an address, not a number. The phone network has no route to it.
โ”œโ”€ โ€œFree incomingโ€ VoIP DIDs (Zadarma, Sonetel, VoIP.ms, FlyNumber) โ€” โ€œfreeโ€ means free to answer; the number itself is a monthly fee. Sonetelโ€™s free plan no longer includes a number at all.
โ”œโ”€ Every free travel eSIM (Airalo, Nomad, Holafly, GigSky, Firstyโ€ฆ) โ€” data-only, no number provisioned. The biggest time sink in this whole topic.
โ”œโ”€ giffgaff โ€” the #1 English answer, and wrong twice: international shipping is paused, and a number is only issued after a purchase.
โ”œโ”€ US carrier free trials (Mint, US Mobile, Visible, T-Mobile Network Pass) โ€” the eSIM only camps on US networks; from anywhere else, nothing arrives.
โ”œโ”€ Any foreign SIM used at home โ€” it only receives while camped in its home country; roaming needs a paid plan.
โ”œโ”€ Android emulators / Waydroid for the flash-call trick โ€” no modem, no incoming call, no call log. adb emu gsm call only injects a number you type, and the number is the code you donโ€™t have.
โ”œโ”€ Answering the flash call โ€” itโ€™s cut before you can pick up and carries no audio. Racing to answer burns the attempt.
โ”œโ”€ Scripting auth.resendCode to demand a call โ€” you can only request the lane the server already queued. No client parameter says โ€œcall me.โ€
โ”œโ”€ Modded clients (Nekogram, Plus, APKPure builds) โ€” they remove lanes: reportMissingCode, Google sign-in and passkeys are all official-app-gated.
โ”œโ”€ The 2FA recovery email as an SMS replacement โ€” it only ever receives a password reset code. Different mechanism from Login Email.
โ”œโ”€ VPN-hopping a FLOOD error โ€” scoped to the number, not your IP, and it makes the login look like a takeover.
โ””โ”€ Fragment +888 numbers โ€” a real Telegram-accepted lane, genuinely worldwide, but auctioned in TON from tens of dollars. No free tier.


The number was never the check. It was just the address the check got mailed to โ€” and you can change the address.