The bill has two halves
SMS carrier fees are the half of your messaging bill that pricing pages whisper about. A US provider advertises $0.004 or $0.008 per message. Then the invoice arrives 40-60% higher. That gap is what independent pricing audits (apidog, cloudtalk, 2026) find consistently across providers. For the authoritative reference, see A2P 10DLC registration.
This article itemizes that second half for the US, where the layering is heaviest. Most other countries fold everything into one termination rate. That is why non-US pricing is simpler to reason about.
The US fee stack, itemized
| Fee | Amount (2026, via Telnyx's published pass-through schedule) | When it hits |
|---|---|---|
| Provider per-message rate | $0.004-0.008 typical | Every message — the advertised number |
| AT&T carrier surcharge | ~$0.003/SMS | Every message to an AT&T subscriber |
| T-Mobile surcharge (registered) | ~$0.003/SMS | Every message to T-Mobile |
| T-Mobile surcharge (unregistered) | ~$0.012/SMS — 4x the registered rate | Unregistered 10DLC traffic |
| Verizon surcharge | ~$0.0031/SMS | Every message to Verizon |
| 10DLC brand registration | $4.50 one-time | Onboarding |
| 10DLC campaign fee | $10/month per standard campaign | Monthly, per use case |
| Number rental | $0.50-1.00+/month per number | Monthly, per long code or toll-free number |
Do the math on a real message: $0.004 provider + $0.003 carrier = $0.007 before monthly fees — already 75% over sticker. Send unregistered on T-Mobile and one surcharge quadruples. The 40-60% audit figure is not a scandal; it is arithmetic.
Ask any US provider two questions: are carrier surcharges passed through at cost or marked up, and is there an itemized fee schedule? Telnyx publishes one and passes through at cost. Some competitors bundle a margin into 'carrier fees' where you cannot see it.
Why the stack exists and where it is heading
The fee stack is the US carriers' answer to spam: make bulk sending traceable (registration), make anonymity expensive (unregistered penalties), and fund the filtering (surcharges). It worked, partially. Per Mordor Intelligence's 2026 competitive analysis, carrier fee inflation is now a named force shaping the A2P market, pushing traffic toward richer channels and international routes. The trend is up: fee schedules get revised, and rarely downward.
Registration pays for itself fast on US volume. One T-Mobile penalty gap covers the $10 campaign fee in about 1,100 messages. Per-carrier fee differences mean your *audience's carrier mix* changes your real rate. And any 'cheap US SMS' quote that ignores surcharges is a quote for half a product. That is the same red-flag logic as our grey-route pricing test.
Budgeting around it
- Model all-in, not stickerUS rate = provider fee + weighted carrier surcharge (by your audience's carrier mix) + amortized monthly fees. That number, not the pricing page, goes in your unit economics.
- Compare countries on all-in tooMany non-US destinations with 'higher' rates are cheaper all-in than the US stack. The per-country logic is in our international cost guide.
- Cut waste before it is surchargedEvery message to a dead number pays the full stack. Pre-send HLR validation and the anti-pumping caps from our fraud guide trim the base the fees multiply.
- Match the route to the trafficRegistered 10DLC is right for US-heavy branded volume. For global OTP and transactional traffic, international routing with flat per-country rates avoids the US stack entirely — SMSRoute is a no-KYC SMS API with crypto billing (BTC, ETH, USDT, XMR, LTC, and SOL) built on that model, with the billed rate published on each destination page. SMSRoute's published route pages list delivery from $0.004/message (premium direct-carrier corridors up to $0.035) with sub-100ms median submission and ~98.6% delivered success (smsroute.cc route pages, 2026).
Related reading
FAQ
Why is my SMS bill higher than the advertised rate?
What are 10DLC fees?
Do all countries have carrier surcharges like the US?
How can I reduce SMS carrier fees?
Send your first SMS in 5 minutes
No KYC. Pay with BTC, ETH, USDT, XMR, LTC, and SOL. Live routes to 149 countries.
Get an API key →