SMS verification, and how the code actually reaches you
SMS verification proves you control a phone number by sending a short code to it. Most of what goes wrong happens in hops you never see, so this is the whole path — from the form to the handset — and every place a code can be lost along it.
- From
- $0.01per code
- Services
- 740
Pay per verification. Cancel an order that received nothing and the charge comes back.
What SMS verification is for
It is a possession check. The site is not establishing who you are; it is establishing that you are holding something only you should be holding. That is why the same mechanism shows up in three different places — proving a number is real at signup, proving it is still yours at password reset, and standing in as a second factor at login.
It is also why the check is only as strong as your grip on the number. A code sent to a line you no longer control protects nobody, which is the reasoning behind every recommendation further down this page.
The path a one-time code takes
- You submit a number. The site normalises it to international format —
+1 208 555 1234— and rejects anything that cannot be parsed. - It may run a carrier lookup. This returns the carrier and the line type. A number that fails here is refused before any message exists, which is why you see "invalid number" rather than a delivery failure.
- It generates the code. Usually six digits, stored as a hash with a short expiry — five to ten minutes is typical — and handed to an SMS provider.
- The provider routes it. Through an aggregator, onto the destination carrier, over whichever interconnect the two have agreed.
- The carrier delivers it to whatever holds the number.
- You type the code back in. The site compares it against the stored hash and checks it has not expired.
Six steps, four organisations, and only the second one produces an error message you can read. Everything after it either arrives or quietly does not.
Why a code does not arrive
In rough order of how often each is the real cause:
- The number was refused at lookup. The line type came back
voipand the message was never sent. This is the single most common reason a virtual number fails, and it looks like a formatting error rather than a rejection. - The carrier filtered it. High-volume application traffic gets scored for spam, and a filtered message is dropped silently rather than bounced.
- The number is already registered. Many services allow one account per number and will not send a second code to one they have seen.
- The route does not exist. Not every sender delivers to every destination country, and a missing route fails without notice.
- It arrived, and expired. A code queued for eleven minutes against a ten-minute window is delivered and useless.
- You are being rate limited. After several requests in quick succession, some services stop sending and keep showing the same confirmation screen.
Retrying immediately helps with exactly one of these. For the rest, changing something — the number, its line type, or the service — is the only thing that does.
Where a second number is reasonable
There are ordinary reasons to verify with a number that is not your personal one:
- Testing your own signup or password-reset flow against a real carrier path rather than a mock.
- Keeping a work account off a personal line, or the reverse.
- Registering with a service that requires a US number when you are not in the US.
- Not handing a permanent number to a site you have no history with, given where marketing lists end up.
And one that is not: creating accounts a service has told you it does not permit. A rented number does not change what its terms say, and an account built on one is the account that disappears.
Choosing a number to verify with
Which number you need comes down to what the site checks and how long you need to hold it. Non-VoIP numbers covers the line-type filter that stops most virtual numbers. Virtual phone numbers sorts out the four different products sold under that one name. SMS verification numbers covers what one costs here and how an order runs.
Services people request verification codes for
- 99Ranch $0.01
- AARP $0.02
- 3Fun $0.08
- 101Plus $0.10
- Apple $0.12
- AMSecure $0.13
- TikTok $0.13
- Twitter $0.13
- WeChat $0.13
- Acorns $0.16
- Discord $0.16
- Uber $0.16
Questions
- Is SMS verification the same as two-factor authentication?
- It is one form of it. Two-factor means two different kinds of proof — something you know and something you have. A code by SMS is the "something you have", which also makes it the weakest common form, since a number can be ported away from you.
- How long is a verification code valid?
- The sending site decides, and five to ten minutes is the usual window. It is short on purpose: a code that stays valid for an hour is a code an attacker has an hour to use.
- Can I verify without owning a phone?
- You need a number that can receive a text; you do not need a handset. That is exactly what a rented carrier-backed number provides, and the message is read on screen.
- Why did the code arrive after I gave up?
- A carrier queue backed up. The message was accepted, held, and delivered late — by which point the site had usually expired it. There is nothing on the receiving end that speeds this up.
- Is SMS verification secure?
- It is better than nothing and worse than an authenticator app. SIM swapping and number recycling both defeat it, which is why banks and exchanges increasingly treat SMS as a fallback rather than a primary factor.
Related
- Non-VoIP numbersWhat the line-type check actually looks at, and why VoIP numbers fail it.
- Receive SMS onlineHow an in-browser inbox works, and why free public numbers usually do not.
- Verification numbersWhat an order costs, how it runs, and when you get your money back.
- Virtual phone numbersFour products share the name. What each is for, and how each survives a lookup.
Ready to receive a code?
Registration takes a minute, and you only pay for numbers that deliver.
Create a free account