A customer says, "I never got the code." Your logs say the message went out. Both can be true. Toll-free numbers (800, 888, 877 and the rest) and short codes (5 or 6 digits, like 55123) pass through more filters between your platform and a lock screen than an ordinary text between two people. A message can fail at any of them, and the sender often never learns which one stopped it.
This post covers each of those layers. Some are settings on the recipient's phone, some sit on their carrier account, and some are problems only the sender can fix. Each section says who has to act. If you support customers who complain about missing texts, the recipient checklist below is written so you can paste it into a help article.
The five places a business text gets stopped
A text from a toll-free number or short code can be stopped in five places, roughly in this order:
- The sender's registration status. Unverified toll-free traffic and short code programs not provisioned on a given carrier get blocked at the network.
- Carrier content filtering. Carriers scan message content for spam patterns, such as public link shorteners, phishing-style wording and mismatched brand names.
- Network-level opt-out. If the recipient once replied STOP, the carrier or the sender's provider keeps suppressing that number.
- The recipient's carrier account. Some plans block short codes or "premium" messaging outright. This is common on prepaid plans, some smaller carriers that run on the big networks, and accounts with parental content controls.
- The phone itself. iPhone and Android both filter unknown senders into folders the user rarely opens.
The first three are the sender's problem. The last two belong to the recipient. Most support threads go wrong because people check them in the wrong order: the customer restarts their phone five times when the sender's toll-free verification lapsed last week.
What recipients can check on their phone
These are the steps to give a customer who says texts are not arriving. Menu names shift a little between OS versions, so the paths below are approximate.
iPhone
- Check the filtered folders. Open Messages and tap Filters (or the back arrow at the top left on newer iOS). Look under Unknown Senders, Spam and, on recent versions, Transactions and Promotions. Short code and toll-free texts often land in one of these with no notification at all.
- Turn off unknown-sender filtering, or reply once. Go to Settings > Messages (Settings > Apps > Messages on newer iOS) > Unknown & Spam and switch off Filter Unknown Senders. Replying to the message or saving the number as a contact also moves future texts into the main list.
- Check blocked contacts. In the same Messages settings, open Blocked Contacts. People block a short code by accident more often than you'd expect, usually by swiping on a message they thought was spam.
Android (Google Messages)
- Open Spam & blocked. Tap the profile picture or menu, then open Spam & blocked. If the business's texts are there, open the conversation and choose Not spam or Unblock.
- Check spam protection. Under Messages settings > Spam protection, the toggle can be left on. Marking the sender as not spam is usually enough to fix it for that sender.
- Other messaging apps. Samsung Messages and carrier-branded apps have their own block lists, usually under Settings > Block numbers and spam.
If the customer replied STOP at some point
This is the most common cause, and nothing on the phone fixes it. The customer has to text START to the short code or toll-free number. Many toll-free senders also accept UNSTOP. Until they do, the sender's provider is required to suppress the number, and every send to it will fail or be dropped.
What recipients can check with their carrier
If the folders are empty and the customer never opted out, the block is probably on the account.
- Short code blocking. Some carriers let account owners block short code or premium messages, and some prepaid plans block them by default. The customer has to call their carrier or check the account's content-blocking settings and ask for standard short code messages to be allowed.
- Smaller-network plans. Plans that run on a big carrier's network don't always carry every short code. A program can be provisioned on the major networks and still miss some of these plans.
- Family or parental controls. A line managed by someone else on the plan may have messaging restrictions the user can't see.
- Business or corporate lines. Company-managed phones sometimes block short codes as policy.
Tell customers plainly that support staff at their carrier can see and change these settings, and yours can't. It saves a lot of back and forth.
What senders have to fix
If several customers report missing texts, or if one carrier is failing and the others are fine, the problem is almost certainly on the sending side. Work through this table:
| Symptom | Likely cause | Fix |
|---|---|---|
| All toll-free sends failing or silently dropped | Toll-free number not verified, or verification rejected | Complete or resubmit toll-free verification with your provider; unverified toll-free traffic is blocked |
| Short code works on most carriers, fails on one | Program not provisioned (or not yet live) on that carrier | Ask your short code provider for per-carrier status |
| Delivery dropped after a content change | Carrier content filtering | Remove public link shorteners, use your own domain, and match the brand name to the registration |
| One customer never receives anything | Opt-out on record, landline, or a number that isn't a mobile | Check your opt-out list; validate the number type |
| Texts arrive but customers say they never saw them | Phone-level filtering | Send the recipient checklist above; ask the customer to reply once |
For the content-filtering row, our post on content-level blocking that registration doesn't fix goes through the specific patterns. It is written for 10DLC, but toll-free and short code traffic goes through similar filters.
Short codes: per-carrier provisioning
A short code is not one global switch. It gets provisioned carrier by carrier, and a program can be live on most networks while still pending on one. If your failures cluster on a single carrier, ask your provider for that carrier's status before you change anything else. Our guide on how to get a short code covers the approval and provisioning steps if you're still setting one up.
Toll-free: verification is not optional
Carriers now block toll-free numbers that haven't completed verification. A rejected verification behaves the same as no verification. If texts stopped arriving around the time you changed your opt-in flow, website or use case, check whether the verification needs to be resubmitted.
Check the opt-out and the number type before you blame the phone
Two sender-side checks resolve a large share of "never got it" tickets. Both take seconds.
Opt-out status. If you send through Ready, you can look up a single number:
GET https://api.tryready.com/v1/opt-outs/+12125550199
X-API-Key: <your key> Opted-out and numbers on your Ban list are refused before sending and are not charged, so a missing text with no charge is a strong hint to check this list. Full reference: docs.tryready.com/api/opt-outs.
Number type. A landline or an invalid number will never receive an SMS, however many times the customer checks their spam folder. GET /v1/validate/:phone tells you what kind of number you're dealing with before you open a ticket with anyone. Each number checked costs $0.003. Ready already refuses, free on every account, numbers its own sends have seen as landlines. With landline validation switched on, numbers a lookup marks as landlines are refused too; that costs $0.003 extra per segment and is off by default.
When to stop fighting the sender type
Sometimes the honest answer is that toll-free or a short code is the wrong tool for the audience. If a large share of your customers use prepaid plans, or your messages are one-to-one conversations rather than one-way alerts, a registered local 10DLC number often lands better. People recognize a local area code, and conversational traffic is what 10DLC campaigns are registered for. Our breakdown of 10DLC vs toll-free vs long code vs RCS covers when each sender type fits.
We make Ready, and it sends on registered 10DLC numbers and on blue lines (iMessage), so this is the route we know best.
Worked example: resending to the customers who missed it
Assume you sent a 1-segment appointment reminder to 2,000 customers from a toll-free number. 300 report they never got it, and you decide to resend from a registered local number on Ready Standard:
- Rate: 300 × 1 segment × $0.0075 = $2.25
- Plus the carrier fee: 300 × $0.0045
- These totals exclude the optional compliance surcharge. Scrubbing and landline validation are $0.003 extra per segment each, and only if you switch them on.
If the reminder has an emoji, it drops to a 70-character segment limit. A 140-character version would be 3 segments, which triples the rate line to $18.00.
Registration matters here too. Brand and campaign registration is $25/mo, plus $2 per number. Most approvals take 2 to 7 days, and unregistered traffic gets filtered just like unverified toll-free traffic.
The blue line option for iPhone-heavy audiences
A blue line sends as iMessage, so it skips SMS carrier filtering on iPhones and shows the business name and photo. It needs no 10DLC registration. It costs $99 a month per line plus 6 cents a segment, and it comes with limits:
- Each line can start up to 50 new conversations a day.
- You can send up to 2 texts to someone until they reply.
- Photos are only allowed after the recipient replies.
- Campaigns send from regular numbers, not the blue line.
That makes it a good fit for conversations and a poor fit for mass alerts. Android recipients get the text from your regular number, at the regular price if you already had a number; if the blue line came with its green number, your account's texts bill at 6 cents a segment once you register. Docs: docs.tryready.com/guides/imessage.
The practical takeaway
When a toll-free or short code text goes missing, work from the network inward:
- Is the sender verified or provisioned on that carrier?
- Is the content tripping a filter?
- Did the customer opt out?
- Is their carrier account blocking short codes?
- Is their phone filing the text where they don't look?
The first three are on you as the sender, and the last two belong to the recipient. Give customers the checklist for their phone and carrier, and fix your own side first.
If your audience keeps hitting carrier-account blocks, test a registered local number before rebuilding your whole program. You can sign up with a card on file. The first 20 one-to-one texts are free and end once you pay for registration, so use them before you register.