Sender ID and Delivery Rates: Why Your Bulk SMS Is Not Arriving
Alphanumeric sender IDs, registration rules, content filtering and number hygiene — the practical reasons A2P messages get dropped, and what to change to fix them.
Alphanumeric sender IDs, registration rules, content filtering and number hygiene — the practical reasons A2P messages get dropped, and what to change to fix them.

"The API said sent, so why did nobody get it?"
We get this question every week, and the answer is almost never a bug. Bulk SMS is filtered at several points between your submit call and the handset, and each filter has its own rules. Here is what actually blocks messages, in the order it usually happens.
The sender ID is what appears in the "from" line on the handset. There are three kinds:
The trap is that alphanumeric sender IDs are not universally allowed. Some countries permit them freely, some require pre-registration with the regulator or with each operator, and some — the United States and Canada among them — do not support them for standard A2P traffic at all. Send a message with sender ID MYBRAND into a market that requires registration and one of three things happens: it is rejected outright, it is silently replaced with a random number, or it is dropped after acceptance.
What to do: keep the sender ID field empty unless you know the destination allows it. An unregistered brand name is a common cause of "sent but never arrived." If you need branded sender IDs in a specific market, ask us on live chat — registration takes days to weeks depending on the country, and we handle the paperwork.
Operators run content filters on A2P traffic. The usual triggers:
bit.ly and friends) are heavily abused by phishing and are blocked wholesale in several markets. Use your own domain.WIN NOW!!! looks exactly like spam because it is what spam looks like.STOP instruction is non-compliant and gets filtered.Transactional messages are filtered far less aggressively than marketing, which is precisely why sending marketing over an OTP route is a bad idea for everyone, including you: it damages the route's reputation and eventually your delivery on it.
A significant share of "failed" results is simply bad data:
Format everything as international digits without the plus and without leading zeros — 12025550123, 447700900123, 4915112345678. Our sender normalises what it can and rejects what it cannot, but it cannot invent a country code you never stored.
If a list has been sitting in a database for two years, expect 5-15% of it to be dead. That is normal churn, not a routing problem.
If sender ID, content and data are all clean and delivery is still poor in one specific country, the route is the variable. Pooled routes trade delivery certainty for price; that trade is fine for a reactivation campaign and wrong for a password reset.
Switch that destination to a direct route and re-test with a small batch. A 50-message test into one country tells you more than a 50,000-message campaign you cannot debug afterwards.
Two operational details that quietly cost delivery:
Before every large send:
This takes five minutes and has saved customers four-figure amounts more than once.
Every message you send is written to your log with recipient, sender ID, route, segment count, exact amount charged, and current delivery state. Delivery statuses are pulled back from the carrier and updated in place, so sent becomes delivered, undelivered or failed without you touching another dashboard.
Prices shown in the portal already include our service fee and are refreshed every 12 hours. Billing is per message from the same crypto-funded wallet as your voice traffic, DID numbers and OTP activations.
Delivery problems are rarely mysterious. In order of frequency: an unsupported sender ID, filtered content, dirty number data, the wrong route tier, and bad timing. Work down that list and most campaigns fix themselves.
If you are running volume and want route-level pricing or sender ID registration in a specific market, message us on live chat — that conversation is faster than any support ticket.
Create an account to browse the full A-Z deck in your portal — Premium CLI and Standard clearly labelled, searchable by prefix or destination.