Phone validation · Use cases · Block VoIP numbers at signup

Use case

Block the VoIP numbers behind fake accounts at signup with Trueguard.

Trueguard checks the number before your app sends the code. One call returns the VoIP type, the carrier type and 180 days of receive-SMS history, median under 500 ms.

One check before every code.

Get 100 free checks

No credit card required.

Free100 / month
Standard$49.99 / 20,000
Overage$0.0025
Median responseUnder 500 ms

Check if a signup number is VoIP.

Start with + and the country code. Try +14159929960, a ported Twilio number, or +14086343220, a number listed on a receive-SMS site.

Or try

Example: a signup with a ported Twilio number

Example data. A real result for +1 415 992 9960.

Valid

+1 415 992 9960

This number is non-fixed VoIP.

Line typeVoIP
VoIP typeNon-fixed VoIP
Carrier typeVirtual number provider (CPaaS)
SMS capableYes
Original carrierLumen
Current carrierTwilio
PortedYes
  1. 1

    Non-fixed VoIP on a platform

    line.type is voip, line.voipType is nonFixed and line.carrierType is cpaasVirtual. Anyone can rent this kind of number online.

  2. 2

    Ported from Lumen to Twilio

    line.isPorted is true. For US numbers the current carrier sets the line type, so the number reads as Twilio.

  3. 3

    No receive-SMS history

    risk.isDisposable and risk.previouslyDisposable are false, so risk.status stays safe. A VoIP line type never changes the status.

  4. 4

    The rule returns step up

    Non-fixed VoIP with no history gets step up. Send the code and add friction. With receive-SMS history, the rule blocks it.

Block, step up or allow: the rule in one paragraph

Do not block every VoIP number. Block non-fixed VoIP that has receive-SMS history, step up the rest of the non-fixed numbers, and allow fixed VoIP. Trueguard returns line.voipType and risk.previouslyDisposable in one call, and 100 checks a month are free.

Block

A non-fixed VoIP number that was listed on a public receive-SMS site. Two signals agree, so the signup stops here.

Step up

Non-fixed VoIP on its own, a VoIP type Trueguard could not tell, or any line with receive-SMS history. Send the code and add friction.

Allow

Mobile and fixed VoIP lines with no history. Fixed VoIP is tied to an address, so send its code by voice call or email.

Why fake accounts sign up with VoIP numbers

Two studies, with what each one does and does not show.

Google, ACM CCS 2014

"We find that miscreants rampantly abuse free VOIP services to circumvent the intended cost of acquiring phone numbers" Thomas et al. bought 4,695 Google phone-verified accounts and sampled 300,000. The data is from 2014 and covers Google only. Google Research

TMA 2023, "Your Code is 0000"

"VoIP lines can be rented and canceled at any time, either manually or programmatically." Moreno et al. monitored 17,141 numbers in 29 public SMS gateways and over 70M messages. They write that a typical gateway builds its pool from SIM cards or from VoIP lines rented from providers like Bandwidth.com or Twilio. arXiv 2306.14497

Some gateways use SIM cards, so a VoIP-only block misses them. risk.isDisposable flags the number on any line type, because Trueguard monitors public receive-SMS sites itself. Quotes read on 10 November 2026.

Fixed vs non-fixed VoIP: only one is the problem

The split comes from US 911 rules.

voipTypeWhat it isSMS capableRule
fixedVoIP tied to an address.falseAllow. Send the code by voice call or email.
nonFixedNumbers from apps and online services, not tied to an address.trueStep up. Block it when the number has receive-SMS history.
unknownTrueguard could not tell which kind of VoIP this is.nullStep up.

Under 47 CFR 9.11, providers of fixed interconnected VoIP services must provide automated dispatchable location with each 911 call, and non-fixed providers must do so "if technically feasible." The rule is about 911 location. A number tied to an address still differs from a number anyone can claim online.

Twilio's blog says of non-fixed VoIP: "This is the specific type of VoIP number our customers usually filter out." (Twilio blog, 12 July 2022). Indeed's help page says: "Indeed no longer allows non-fixed VoIP numbers for account verification." Indeed help. Both read on 10 November 2026.

What blocking all VoIP costs you

People on Hacker News describe what a blanket block does to them.

Rejected as "not a real number"

"A lot of sites have started requiring a non VOIP phone number. Have you noticed this uptick? I used to use my google voice number for everything but it gets rejected as "not a real number" about 2-3x a week" Hacker News, pempem, 2023-06-15, id 36336523

A business line

"My company's main line is a Google Voice that forwards to my cell; I never give out my cell. But this is preventing me from using some services and products (Vercel, DocuSign, etc.)" Ask HN, electric_muse, 2025-08-26, id 45032348

Expats

"Those of us who are U.S. citizens who live outside of the U.S. suffer a LOT because growing disallowances like these." Ask HN, matttproud, Aug 2025, id 45032348

Read on 10 November 2026. These are single comments, not a measure of how many users a block loses. The knowledgebase covers who you lose with a blanket VoIP block.

The rule: block, step up, allow

Grade the response by signal combination. Block when two signals agree, step up when one is present, allow the rest.

Signal combinationAction
line.type mobile, risk.status safeAllow
line.voipType fixedAllow. line.smsCapable is false, so verify by another channel such as email.
line.voipType nonFixed, no disposable historyStep up
line.voipType unknownStep up
Any line with risk.previouslyDisposable trueStep up
line.voipType nonFixed and risk.isDisposable trueBlock
line.voipType nonFixed and risk.previouslyDisposable trueBlock
Any line with risk.status risky (disposable or premium rate)Block
risk.status invalidReject and ask the user to re-enter

A VoIP line type never changes risk.status, so the rule reads line.voipType itself. Example: +14159929960 was ported from Lumen to Twilio. It is non-fixed VoIP with no receive-SMS history and status safe, so the rule returns step up. When line.smsCapable is false, as it is for fixed VoIP, send the code by voice call or email. Code samples are in the API documentation.

Get 100 free checks

What step up looks like

You still send the code. These add friction around it.

Check the email address too

Run the email through the email verification API and use both endpoints together.

Rate limit by number and prefix

Cap signups per number and per number prefix.

Hold free credits

Keep the free credits or the trial back until the account shows normal use.

Review before payouts or invites

Put a manual review in front of anything that moves money or reaches other users.

A real Google Voice user clears these steps once. A number farm clears them for every account. The email verification API is a separate call from the phone check, so you make both.

Google Voice, TextNow and CPaaS numbers

When the holder of the number block is a communications platform such as Twilio, Telnyx, Bandwidth, Onvoy, Vonage or Sinch, Trueguard returns line.carrierType cpaasVirtual and line.voipType nonFixed. For US numbers the current carrier from porting data sets the type. The example number reads as Twilio, and a number ported to a mobile carrier reads as mobile. Outside the US, line.voipType is set where the national regulator's numbering files mark VoIP ranges. Otherwise it is unknown, and the rule steps it up.

Twilio's Lookup docs define nonFixedVoip as "A virtual phone number obtained online without requiring a physical device. For example, Google Voice or Enflick." Enflick is the company behind TextNow. Source: Twilio Lookup docs, read on 10 November 2026.

What it costs per signup

One check per signup on the Standard plan: $49.99 a month for 20,000 checks, then $0.0025 a check.

Signups a monthPlanMonthly costPer 1,000 signups
100Free, no card$0$0
5,000Standard$49.99$10.00
20,000Standard$49.99$2.50
50,000Standard + 30,000 × $0.0025$124.99$2.50
100,000Standard + 80,000 × $0.0025$249.99$2.50

The $2.50 cells are rounded.

Twilio lists Line Type Intelligence at $0.008 a request (read 10 November 2026), which is $160 for 20,000 lookups. Trueguard publishes this page. Trueguard does not sell SMS. We earn the same whether your rule sends the code or blocks it.

Frequently asked questions

Every field is in the phone validation API documentation.

How do I block VoIP numbers at signup without losing real users?

Use Trueguard's phone validation API and grade the response instead of blocking the whole VoIP category. Block a non-fixed VoIP number that has disposable history, step up a non-fixed number on its own, and allow fixed VoIP. line.voipType, risk.isDisposable and risk.previouslyDisposable come back in one call, and a free API key covers 100 checks a month with no card.

Why are so many services rejecting Google Voice numbers for signups?

Free non-fixed VoIP has a documented abuse history. A 2014 Google study of phone-verified accounts found that "miscreants rampantly abuse free VOIP services to circumvent the intended cost of acquiring phone numbers." That study covers Google only. Indeed's help page says it no longer allows non-fixed VoIP numbers for account verification (read 10 November 2026). A blanket line-type rule also catches business lines and people who have used Google Voice as their main number for years.

How do companies detect VoIP numbers?

They look up the number in numbering data. That data tells which block of numbers belongs to which holder, what the holder is, and, for US numbers, which carrier currently serves a ported number. In some countries the national regulator publishes the ranges used for VoIP. Trueguard returns line.type, line.voipType and line.carrierType from those sources, so a VoIP number comes back as fixed, nonFixed or unknown.

After porting a number to Twilio, is it VoIP or not?

For US numbers the current carrier decides. +14159929960 was ported from Lumen to Twilio, and Trueguard returns line.type voip, line.voipType nonFixed, line.carrierType cpaasVirtual and line.isPorted true. A number ported the other way, to a mobile carrier, reads as mobile. Porting data covers US numbers only.

Will blocking VoIP stop fake accounts that use free SMS sites?

Not on its own. A 2023 study of public receive-SMS gateways (Moreno et al., TMA 2023) watched 17,141 numbers in 29 gateways and found that some gateways rent VoIP lines from providers such as Bandwidth.com or Twilio, while others use SIM cards. A VoIP-only block misses the SIM numbers. Trueguard monitors public receive-SMS sites itself, so risk.isDisposable sets the status to risky on any line type, VoIP or not.

What happens to a number that used to be on a free SMS site?

risk.previouslyDisposable is true when Trueguard saw the number on a public receive-SMS site 31 to 180 days ago. It does not change risk.status. In the rule on this page, a non-fixed VoIP number with that history is blocked and any other line with it is stepped up.

Does the check work outside the US?

Validity and line type work for numbers in any country. line.voipType is set where the national regulator's numbering files mark VoIP ranges. Where they do not, it comes back as unknown, and the rule on this page steps that number up. Current carrier and porting status are available for US numbers.

How much does it cost to check every signup?

A free API key covers 100 checks a month. Standard is $49.99 a month for 20,000 checks, then $0.0025 a check. At 5,000 signups a month that is $49.99, which is $10.00 per 1,000 signups. At 20,000 it is $2.50 per 1,000, and at 100,000 it is $249.99 in total, about $2.50 per 1,000. Trueguard does not sell SMS, so the check has no SMS revenue behind it.

Check the number before you send the code.

100 free checks a month, no card. Trueguard does not sell SMS.

Get your free API key

No credit card required.

trueguard-logo© 2026 Trueguardinfo@trueguard.io