All articles
8 August 2026 VoxioTelecom

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.

Cover illustration for the article: Sender ID and Delivery Rates: Why Your Bulk SMS Is Not Arriving

"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.

1. The sender ID

The sender ID is what appears in the "from" line on the handset. There are three kinds:

  • Alphanumeric — a brand name, up to 11 characters, letters and digits. Cannot be replied to.
  • Numeric long code — a normal phone number. Replies possible.
  • Short code — a country-specific 4-6 digit number, usually leased and registered.

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.

2. The content

Operators run content filters on A2P traffic. The usual triggers:

  • URL shorteners. Public shorteners (bit.ly and friends) are heavily abused by phishing and are blocked wholesale in several markets. Use your own domain.
  • Financial and gambling keywords. Words around loans, crypto gains, casinos and "free money" are flagged in most regulated markets.
  • All-caps and excessive punctuation. WIN NOW!!! looks exactly like spam because it is what spam looks like.
  • Missing opt-out. In several jurisdictions, marketing without a 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.

3. Number quality

A significant share of "failed" results is simply bad data:

  • Numbers stored with local prefixes instead of international format.
  • Landlines in a mobile list.
  • Numbers that were deactivated and recycled.
  • Duplicates that make a campaign look larger than it is.

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.

4. The route itself

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.

5. Timing and throughput

Two operational details that quietly cost delivery:

  • Quiet hours. Several regulators prohibit marketing SMS at night. Messages submitted at 02:00 local time may be held or dropped.
  • Burst submission. Firing 100,000 messages in a minute at a route sized for a fraction of that produces queueing, then timeouts. Spread large campaigns; the extra ten minutes costs nothing.

A repeatable test procedure

Before every large send:

  1. Send to 10-20 numbers you control, spread across the destination countries.
  2. Confirm the sender ID renders as expected on each handset.
  3. Check the message did not split into more segments than intended.
  4. Wait for delivery reports to settle — final states can take a minute or two.
  5. Only then release the full batch.

This takes five minutes and has saved customers four-figure amounts more than once.

How we help you see it

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.

Summary

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.

See the live rate deck

Create an account to browse the full A-Z deck in your portal — Premium CLI and Standard clearly labelled, searchable by prefix or destination.

Create account