Short answer: usually yes. Most VoIP numbers can receive SMS, and a text from a registered business number reaches them the same way it reaches a mobile phone. The longer answer matters if part of your list sits on Google Voice, a RingCentral or Ooma desk line, a TextNow account or a softphone your contacts' employer handed out. Some of those numbers are text-enabled and some aren't. Some look like mobiles from the area code but aren't. A few will accept your text and never show it to anyone.
This post covers which VoIP lines take texts, how to check line type before you pay for a segment, and why the number you send from matters more for deliverability than the number you send to.
What "VoIP number" actually means for a text
A phone number is just a routing address. Whether a text arrives depends on which carrier currently owns that number and whether that carrier has turned on messaging for it. Line-type lookups sort numbers into a few buckets:
| Line type | Can it receive SMS? | What usually happens |
|---|---|---|
| Mobile | Yes | Delivers to the handset, delivery receipt is meaningful |
| Non-fixed VoIP (Google Voice, TextNow, app-based numbers) | Usually | Delivers to the app if the account is active and texting is on |
| Fixed VoIP (business phone systems, cable-company home phone) | Sometimes | Depends on whether the provider text-enabled the number; many never did |
| Traditional landline | No (for practical purposes) | The text fails or goes nowhere useful |
| Toll-free | Only if text-enabled | Plenty of toll-free numbers are voice-only |
The two VoIP rows are where people get surprised. A non-fixed VoIP number belongs to an app that someone may have installed, used for a month and abandoned. A fixed VoIP number is often a desk phone at an office, wired up years ago, and nobody asked the provider to turn on SMS. Both can sit on your list looking exactly like a mobile number.
Why a VoIP text can "deliver" and still not get read
Delivery receipts confirm that the receiving carrier accepted the message. For a mobile number, that's close to "it hit the phone." For a VoIP number, the receiving carrier is the VoIP provider, and its acceptance tells you very little about whether a person will see the text.
Common ways this goes quiet:
- The app is abandoned. The number still exists, the provider still accepts texts, nobody opens the app.
- The number was recycled. Free VoIP apps reclaim inactive numbers and hand them to new users. Your text reaches a stranger who never consented. That's a deliverability problem and a consent problem at once.
- The provider forwards texts by email or not at all. Some business phone systems route inbound SMS to a shared inbox, a portal nobody checks, or drop it.
- The provider filters business traffic. Some VoIP providers apply their own filtering on top of the mobile carriers', and unregistered traffic is the first thing to go.
We cover the gap between "delivered" and "seen" in more depth in why business texts aren't delivering. The short version: a high delivered rate on a list heavy with VoIP numbers can overstate your real reach.
How to check line type before you send
You have three options, from cheapest effort to most reliable.
1. Ask at opt-in
If your form collects a phone number for texting, label the field "Mobile number" and say texts will go there. It won't catch everything, but it stops people typing their office desk line by habit.
2. Run a line-type lookup on the list
A validation lookup tells you the line type and current carrier for each number: mobile, landline, VoIP, or disconnected. Do this on import, not once a year, because numbers port between carriers and between line types. A number that was mobile when it opted in may be on a VoIP provider today. Our phone number validation API post walks through what a lookup returns and how to act on it.
On Ready, a single lookup is one request:
curl https://api.tryready.com/v1/validate/+12125550199 \
-H "X-API-Key: YOUR_KEY" If you run a platform and text on behalf of your own customers, this is the call to make when their contact lists come in, before anything is queued. The quickstart covers keys and setup, and the messages docs cover what happens on the send side.
3. Turn on landline validation at send time
Ready can check each recipient as you send and refuse known landlines. It's off by default. When you switch it on for an account, it adds $0.003 per segment on top of the normal rate. Numbers Ready has already seen as landlines are refused for free on every account; switching this on adds a live line-type check for numbers Ready hasn't seen yet.
What gets refused up front regardless of that setting: numbers that have opted out and numbers on your Ban list. Those aren't charged.
The worked math on a mixed list
Assumptions for this example: 2,000 consented contacts, a 140-character message with no emoji (1 segment), Ready Standard at $0.0075/segment plus a $0.0045 carrier fee per segment.
- Base send: 2,000 × 1 segment × $0.0075, plus 2,000 × $0.0045 in carrier fees.
- With landline validation on: add 2,000 × 1 × $0.003.
So the question is whether validation buys back more than it costs in wasted sends. If an assumed 8% of that list (160 numbers) are landlines, each one costs $0.0075 plus the carrier fee to send into nothing, every campaign. Run four campaigns a month and that's 640 dead segments. Whether validation pays for itself depends on how dirty the list is. For a list collected through a checkout form with a "mobile number" label, it often won't. For an old CRM export full of office numbers, it usually will.
Two cheaper alternatives: run lookups once on import and tag or remove landlines yourself, or keep validation on only for accounts whose lists you don't control. And if you add an emoji, the segment count changes. A 140-character text with one emoji is 3 segments, which triples every number above.
Sending from a VoIP app is the bigger problem
Most deliverability trouble around VoIP runs the other direction: a business texting customers from Google Voice, TextNow or a softphone number it set up in an afternoon.
Here's why that fails at scale:
- It isn't registered. US carriers expect business texting from 10-digit numbers to run on a registered A2P 10DLC brand and campaign. Unregistered traffic gets filtered, and a burst of identical texts from an unregistered number is exactly the pattern carriers flag. Our 10DLC explainer covers what registration is.
- The app's terms usually don't allow it. Consumer VoIP apps are built for person-to-person texting. Bulk sends can get the account suspended and the number taken back.
- There's no opt-out handling. If someone replies STOP, a consumer app won't stop you from texting them again. That's a TCPA problem, not just a deliverability one.
- Shared reputation. Free app numbers come from pools that have hosted spam before. The shared vs dedicated number post explains why borrowed reputation hurts.
A registered business number fixes the root cause. On Ready, registration runs in-app: the brand is $10/mo, the campaign is $20/mo, and each number is $2/mo. There's no setup fee. The charge at submit is the first month, $25. Most approvals take 2 to 7 days. While it's in review, an account that has already bought its number sends on Ready's shared registration at the same per-text rate. An account can send up to 500 texts a month before registering, but after that it has to register.
Registration isn't magic. Content still gets filtered, and links, wording and send timing all matter. It does move you from "unknown sender" to "known sender," and that's the first gate every carrier checks.
Compliance doesn't change because the line is VoIP
A VoIP number is a phone number under the TCPA. Consent rules, quiet hours and opt-outs apply the same way. A few points specific to VoIP-heavy lists:
- Recycled numbers carry old consent. If a free app reassigned the number, your consent came from someone else. Re-confirm contacts who've gone silent for a long stretch.
- Quiet hours follow the area code. VoIP numbers often have an area code that has nothing to do with where the person lives. Ready holds sends outside permitted hours based on the recipient's area. Those texts go out later and are charged only when they send. But the area code is the best signal available, not a guarantee. Campaigns, drip campaigns and automations wait up to 24 hours for the window; a one-to-one or API text is held only if the window opens within 6 hours, otherwise it is refused and must be resent; a one-to-one reply to someone who texted you in the last 24 hours goes out at any hour.
- Scrub if the list is old or bought-in. The standalone TCPA and DNC litigator scrub is $0.005 per contact and screens known litigators and DNC complainers before you send. It reduces risk. It doesn't make you lawsuit-proof, and compliance stays the sender's responsibility.
Cold numbers get a call or a letter, not a text. Texts go to people who opted in or replied.
When Ready isn't the answer
If you send a few dozen person-to-person texts a week to people who text you first, a business phone app with built-in texting may be all you need. If you're a developer who wants raw carrier access at the lowest per-segment price, a CPaaS like Twilio or Telnyx will cost less per segment than we do. What Ready adds is everything around the send: registration handled in-app, opt-out propagation, quiet hours, line-type validation, scrubbing and a two-way inbox, through one API or the app.
The practical takeaway
Yes, you can text most VoIP numbers. Here's the checklist:
- Label your opt-in field "mobile number."
- Run line-type lookups on import, and re-check old lists, because numbers port.
- Decide on send-time landline validation using the math above, not by default.
- Treat delivery receipts on VoIP-heavy lists as an upper bound on reach.
- Send from a registered number, never a consumer VoIP app.
If you want to try it, sign up. A card on file is required, and your first 20 one-to-one texts are free. Use them to test your own numbers, VoIP lines included, before you register, because they end once a registration is paid for.