Ever looked at an SMS invoice and thought, “We only sent one text, so why did it cost more than one message?”
SMS pricing is simple at the surface and surprisingly detailed underneath. Cost changes by country. A single message can become two or three billable parts. One emoji can switch your message into Unicode and reduce your character limit. Links, personalisation, and compliance text all affect how many segments you pay for.
This guide will help you to:
- Estimate SMS spend using parts, recipients, and destination pricing
- Spot hidden segment triggers before you send a campaign
- Plan templates with a clear “segment budget” for OTP, alerts, and marketing
- Compare providers using the questions that reveal true total cost
- Build a repeatable process your finance and marketing teams can trust
How SMS Pricing Works
Most business SMS fees come down to a short formula:
Total cost = price per SMS part × number of parts × number of recipients
Then you add any country-specific or programme fees that apply.
That is the core idea. The details are what catch teams off guard.
Per destination pricing is the starting point
SMS termination is priced differently depending on where you send the message. That is why SMS providers typically publish a country-by-country pricing table.
On SMS.to, pricing is shown by destination, and you can download prices for all countries. Note that with pay-as-you-go pricing, rates can change over time.
What this means for you:
- A 10,000 recipient campaign can cost very different amounts depending on whether your list is mostly one country or spread across many.
- Budgeting is easiest when you break your audience into country buckets before you estimate.
You are usually billed per SMS part, not per message you see on your phone
A common point of confusion is that users see one message on their phone, but billing is based on message parts.
With SMS.to, prices are calculated by part, and if a message becomes multi-part you are charged per part used.
So when you ask “what are SMS fees?,” a big part of the response is “how many parts did your text turn into?”
Sender type and route can change the final SMS price
Depending on the country and your use case, you may use:
- an alphanumeric sender ID
- a long number that can receive replies
- a regulated sender format that requires registration
These choices can influence:
- delivery outcomes
- throughput
- compliance steps
- additional programme costs
Even if the per-SMS cost looks good on a pricing page, your real cost depends on whether your sender setup matches local rules and your message type.
Some markets add programme fees that sit outside per message pricing
If you send business messaging to the United States using long codes, you will often run into A2P registration and monthly campaign fees. Those are separate from the per-message fee.
The Campaign Registry’s published terms list fee items such as brand registration $4.50 for many entity types and an Authentication+ verification fee $12.50, along with campaign-related fees.
You do not need to memorise every fee. You do need to recognise that in some markets, the total cost includes:
- one-time registration fees
- recurring campaign fees
- per message charges
That affects how founders, finance leads, and procurement teams forecast costs over a quarter.
SMS Character Limits and What They Mean for Your Budget
Character limits are not only a UX detail. They are a billing detail.
The standard SMS character limits you should know
SMS.to summarises the most important numbers:
- 160 characters for a single SMS part in standard encoding
- 70 characters for a single SMS part if Unicode is used
- If you exceed those limits, your message becomes multi-part and you are charged per part
Those are the numbers most business users need.
Under the hood, the reason comes from how SMS payloads are structured. The SMS transport allows 140 bytes of user data, which translates to 160 GSM 7-bit characters or 70 UCS-2 characters. When a message is split and reassembled, a User Data Header is added and reduces the usable space.
GSM 7 bit and Unicode decide your character limit
Two key encodings drive the billing outcome:
GSM 7-bit (GSM-7)
- Works for many Latin characters and common symbols
- Gives you the familiar 160 character single-part limit
Unicode UCS-2
- Needed for many non-Latin scripts, and often triggered by emojis and special characters
- Drops your single-part limit to 70 characters
If your message contains any characters outside the 7-bit alphabet, UCS-2 is automatically used.
Practical implication: A message that is 120 characters long can still become multi-part if it switches to Unicode and crosses 70 characters.
Multipart SMS changes the per part limits
Once you cross the single-part limit, the available characters per part drop because the concatenation header takes space.
3GPP technical documentation gives the standard concatenation limits:
- GSM 7-bit concatenated parts have 153 characters per part
- UCS-2 concatenated parts have 67 characters per part
Here is a simple breakdown you can use for planning:
GSM-7 message part limits
- 1 part: up to 160 characters
- 2 parts: up to 306 characters (153 + 153)
- 3 parts: up to 459 characters (153 × 3)
- 4 parts: up to 612 characters (153 × 4)
Unicode message part limits
- 1 part: up to 70 characters
- 2 parts: up to 134 characters (67 + 67)
- 3 parts: up to 201 characters (67 × 3)
- 4 parts: up to 268 characters (67 × 4)
You can technically concatenate far more than 4 parts. The theoretical maximum is 255 concatenated parts, which is rarely practical for business messaging.
For business use, the more useful point is that every extra part increases SMS fees.
Examples That Show How SMS Pricing Changes
Below are kinds of scenarios that business teams run into.
To keep the maths readable, assume your price is $0.02 per SMS part for a given country.
Your exact SMS price will vary by destination. Use the same method with your real per-country pricing.
Example 1: A shipping update that stays one part
Message
Your parcel is out for delivery today. Track it at https://example.com/track
If it is GSM-7 and under 160 characters, it is 1 part.
Cost
- 10,000 recipients × 1 part × $0.02 = $200
This is what most people expect SMS cost to look like.
Example 2: One emoji triggers Unicode and doubles your bill
Message
Your parcel is out for delivery today ✅ Track it at https://example.com/track
That checkmark may shift encoding into Unicode, and now your single-part limit may be 70 characters. If your text is longer than 70 characters, it becomes multi-part.
Let’s say the message becomes 2 parts.
Cost
- 10,000 recipients × 2 parts × $0.02 = $400
Same audience, same intent, different billing.
Example 3: Personalisation pushes you into a new part
Message template
Hi {first_name}, your appointment is confirmed for Friday at 3pm at Westlands Clinic. Reply 1 to confirm.
If your average first name length adds 5 to 10 characters, you can cross 160 and move into 2 parts for some recipients.
Cost impact
- If 40% of your sends become 2 parts, your blended cost rises meaningfully, even though your dashboard still shows “one message” per recipient.
Example 4: Compliance text eats your budget quietly
Many teams add compliance language like “Reply STOP to opt out” or include unsubscribe text required by their workflow. If that pushes your marketing template over 160 characters, your SMS fees increase immediately because you are now paying per segment.
This is common in lifecycle messaging where teams keep adding details over time and never re-check segmentation.
(More examples at the end of this blog)
What Changes SMS Cost Besides Character Count
Segmenting is the biggest surprise. It is not the only one.
Destination and operator pricing differences
Your per message price varies by country and sometimes by operator route. That is why we provide per-country pricing tables and encourage you to share target countries and volumes when asking about discounts.
If you are planning a campaign, you will get a more accurate estimate by splitting your list into:
- top five destination countries
- “long tail” countries
Then estimate each group separately.
Message type and use case can influence routing outcomes
Operational messages like OTPs and delivery notifications are time-sensitive. Promotions often face more filtering pressure. Your provider may recommend different routes or sender setups based on use case.
From a cost standpoint, failed delivery also has a cost dimension. Some pricing models charge on send, some are tied to delivery outcomes for certain products. The important part is knowing what you are paying for.
Registration and programme costs in certain markets
If you operate in the United States, A2P messaging commonly involves registration and recurring campaign fees that sit alongside per-message charges. That’s like the $4.50 brand registration fee for all entity types (Government, Non-Profit, Private Profit, and Public Profit) listed by the Campaign Registry.
For founders and finance leads, this matters because:
- you may pay setup costs in month one
- recurring fees continue even if volume dips
- the effective cost per message changes over time
How to Plan SMS Campaigns Without Cost Surprises
Let’s look at how you can save your budget:
Write templates with a hard segment budget
Pick a segment budget per message type:
- OTP and security: aim for 1 part
- operations and alerts: aim for 1 part
- marketing: decide if 1 part is realistic, or budget for 2 parts intentionally
Then build templates to match.
Avoid accidental Unicode when you can
If your audience is primarily using Latin scripts and you do not need emojis, keep them out of templates. Unicode has real value for many languages, and you should use it when it improves clarity. The goal is to be intentional, not surprised.
SMS.to provides a Unicode checker tool that detects Unicode and counts parts while you compose.
Treat links as characters and plan for tracking
Links count toward your character limit. If you paste a long URL, you can easily push a message into a new segment.
SMS.to supports shortlinks that let you track click-through and can generate a unique shortlink per user, which helps attribution without forcing you to use long URLs.
If you are a marketing manager, that is a practical way to keep messages short while still measuring outcomes.
Check segmentation before you send
If you are sending via API, it helps to estimate message parts before you launch a full campaign. You can use SMS.to’s estimation API features before sending.
A strong workflow is:
- Draft template
- Run it through a character and encoding checker
- Estimate parts via API for your final message
- Approve budget based on expected parts
- Send
A Budgeting Worksheet Flow
Use this for campaign planning.
Step 1: List your destinations
Example:
- Canada: 40%
- UK: 30%
- Germany: 20%
- Other: 10%
Step 2: Pick one template and calculate parts
Create two versions:
- GSM version without Unicode triggers
- Unicode version if you need multilingual support or emojis
Step 3: Build a simple cost model
For each destination:
- recipients × expected parts × price per part = destination cost
Then add any recurring programme fees relevant to your markets.
With SMS.to, all prices are per SMS part. Send us your volumes by country, and we’ll check what discounts you may qualify for through support@sms.to.
What to Ask When Comparing SMS Providers on Pricing
When people search “sms pricing” or “sms cost,” they often stop at the price table. For procurement and founders, the better approach is to ask a few questions that reveal the real cost structure.
Ask:
How billing works for multipart messages
- Are you billed per part?
- Do you have a message parts estimate tool?
- Do delivery receipts show parts used?
What is included in the posted SMS price
- Is it only the provider fee?
- Are carrier programme fees separate?
- Are there monthly campaign fees in some countries?
How pricing changes with volume
- Do you offer tiered pricing?
- Do you offer discounts for high-volume routes?
Typical information to share when requesting discounted pricing includes target countries and expected monthly volume per country
What happens when rates change
Prices can change and continued use implies acceptance of updated rates. For finance teams, that makes it worth building a quarterly pricing review into your process if SMS is a big spend line.
Where This Fits in Business Messaging Strategy
SMS remains widely useful because it reaches phones across networks at global scale. ITU reports 9.2 billion mobile-cellular subscriptions in 2025, which equals 112 subscriptions per 100 inhabitants.
That reach is part of why SMS is still a core channel for operations and customer communications. The other part is that it is measurable and controllable when you plan for character limits and segment-based pricing.
How SMS.to Supports Cost Clarity
If your team cares about predictable SMS fees and fewer “surprise” invoices, the tools around pricing and segmentation matter as much as the send endpoint.
SMS.to provides:
- per-destination pricing with downloadable country price lists
- clear guidance that pricing is per SMS part
- a Unicode checker tool that shows characters, parts, and Unicode detection in real time
- an API estimation option you can use before sending
- shortlinks with click tracking and optional unique links per user for attribution
If you are building a cost model for campaigns or ongoing operational messaging, those features make it easier to predict spend and keep message templates within your intended segment budget.
Extra Examples You Can Use for Budgeting
Let’s continue using the sample rate of $0.02 per SMS part for one destination. Your real sms price depends on the country, so swap in your own rate.
Example 1: One part OTP in GSM 7 bit
Message
Your SMS.to code is 482913. It expires in 5 minutes.
- Characters: 52
- Encoding: GSM 7 bit
- Billable parts: 1
Cost for 50,000 verifications
- 50,000 × 1 × $0.02 = $1,000
Example 2: Unicode OTP that becomes two parts
Message
رمز التحقق الخاص بك هو 482913. صالح لمدة 5 دقائق. إذا لم تطلبه فتجاهله.
- Characters: 71
- Encoding: Unicode
- Unicode single-part limit is 70 characters, so this becomes multi-part
- Billable parts: 2 (because concatenated Unicode parts carry fewer characters)
Cost for 50,000 verifications
- 50,000 × 2 × $0.02 = $2,000
So your message can look short, but one extra sentence can push it over the Unicode limit and double your SMS fees.
Example 3: A marketing message that crosses 160 characters
Message
Hi Amina, 20% off today only on selected items. Use code SAVE20 at checkout. Shop now https://sms.to/deals Ends 23:59. Help sms.to/help Reply STOP to opt out. Now.
- Characters: 163
- Encoding: GSM 7 bit
- GSM single-part limit is 160 characters
- Billable parts: 2
Cost for 10,000 recipients
- 10,000 × 2 × $0.02 = $400
Your opt-out line and help line are valuable, but they can push you into a second segment. Build templates with a segment budget.
Example 4: Long link versus short link
Version A: long link
Message
Track your order https://example.com/orders/784233?utm_source=sms&utm_medium=campaign&utm_campaign=december_flash_sale
- Characters: 118
- Likely parts: 1 in GSM
This one still fits in one part, but it eats most of your space. If you add a customer name, delivery window, or opt-out line, you can cross 160 fast.
Version B: short link
Message
Track your order https://s.to/7hK2p
- Characters: 35
- Likely parts: 1
Short links are not only about tracking. They are a simple way to keep messages inside one part.
Example 5: Personalisation that makes only some recipients cost more
Template
Hi {first_name}, your delivery is confirmed for Friday 3pm. Reply 1 to confirm or 2 to reschedule.
Assume
- Most names keep the message under 160 characters, so 1 part
- A portion of long names pushes it over 160, so 2 parts for that group
Example distribution for 100,000 recipients
- 85% at 1 part → 85,000 parts
- 15% at 2 parts → 30,000 parts
- Total parts billed → 115,000
Cost
- 115,000 × $0.02 = $2,300
If everything stayed 1 part
- 100,000 × $0.02 = $2,000
Your campaign can look “normal” in a dashboard while your blended sms cost creeps upward because only a subset becomes multi-part.
Example 6: Operations alert with clear replies that still stays one part
Message
Package 784233 is delayed. New ETA 18:30. Reply 1 to confirm delivery today or 2 to reschedule.
- Characters: 95
- Encoding: GSM 7 bit
- Billable parts: 1
Cost for 25,000 alerts
- 25,000 × 1 × $0.02 = $500
Clear, action-focused operations messages can stay within one segment without cutting key information.