Of the six criteria in the grid below, four decide the choice: the total cost per message actually delivered, delivery rates you can measure at the carriers, compliance (consent, STOP, sending hours) and how well the platform connects to your tools. The rest, ergonomics and personalization options, only separate two otherwise equal offers. A delivery test on two platforms, described further down, settles the question before you sign anything.
SMS platform: SaaS or API, depending on volume
A SaaS platform runs in a browser: contact import, writing, scheduling, statistics. It suits marketing teams that launch a few SMS marketing campaigns a month with no developer on hand.
An SMS API exposes sending as HTTP calls. You need one as soon as messages start from an event, such as an order confirmation or a login code. These transactional SMS never go through a manual sending screen. Many providers offer both modes on one account. Check that billing and statistics are shared between the two, otherwise you will track two budgets.
For a few thousand SMS a month, SaaS is enough, including for business SMS between a team and its customers. Once a CRM or an online shop has to trigger the sends, require a REST API with public documentation, code samples and a test environment. Documentation reserved for signed customers is the first warning sign.
Price per SMS and total cost
The advertised price per SMS says almost nothing about the final cost. Two things distort it: the number of segments billed and the sends that fail. Side fees come on top (monthly subscription, custom sender name, dedicated number for replies, volume discounts reserved for large senders).
Counting segments is simple arithmetic. An SMS in the GSM alphabet holds 160 characters, and only 70 as soon as a single character falls outside that alphabet, an emoji for instance (UCS-2 encoding). A longer message is split, and a 6-byte header taken from the 140 bytes of each SMS brings a segment down to 153 characters in GSM and 67 in Unicode. Each segment is usually billed as one SMS, which your contract should confirm.
Take the same 140-character text, with and without an emoji, and leave prices aside.
- Without an emoji: 140 characters fit within the 160 of GSM, so 1 segment per recipient.
- With an emoji: 140 characters exceed the 70 of Unicode, so it is cut into 3 segments of at most 67 characters (201 in total) for each recipient.
One emoji triples the number of segments, and the bill with it, whatever the price per segment. Invalid numbers add to the cost: if 5% of a 10,000-contact list is inactive and the contract bills failures, you pay for 500 SMS that go nowhere on every campaign. Ask in writing whether failed sends are billed. To compare rate cards, read the article on low cost or premium SMS and its prices per SMS.
Deliverability and direct carrier routing
An SMS goes through the platform, sometimes through one or more aggregators, then through the recipient’s carrier (in France: Orange, SFR, Bouygues Telecom, Free Mobile). Each intermediary adds a risk of loss. Some low cost offers promise no delivery guarantee at all.
Ask each provider whether the message leaves through a direct connection to the recipient’s carrier or through an intermediary. Ask which delivery rate it measures, over what period and in what form: a carrier delivery receipt, or a plain “sent” status. Only a delivery receipt per message lets you check a rate. If you write abroad, ask for the list of countries covered with the price and routing type for each. To understand what blocks a message on the carrier side, read the article on SMS deliverability at carriers.
SMS API and CRM or e-commerce integration
Two questions are enough to sort providers. Does a native connector exist for your CRM or your shop (HubSpot, Salesforce, Shopify, PrestaShop, WooCommerce)? If not, does the API handle return webhooks, so you receive delivery status and STOP replies in real time?
Test the full flow with a dummy contact before any development.
GDPR: consent and sending hours
Consent rules vary by country, so check the law of the country where your recipients live. In France, for consumers, the CNIL treats SMS prospecting as requiring prior consent that is free, specific and informed (article L.34-5 of the CPCE). Existing customers can receive offers for similar products if they were able to object when their data was collected and can object again with every message. In B2B, consent is not systematic when the message concerns the recipient’s professional activity; the recipient must know where their data came from and what the message is for, and must be able to object easily. For more detail, see our article on the rules for commercial SMS.
What the platform should do for you: timestamp each consent, keep the proof, add an opt-out line to every message and process STOP replies without delay, as our page on the STOP SMS law explains.
Sending windows depend on a carrier charter. In France, the af2m Business Messaging charter, in force since March 1, 2026, limits promotional SMS to 8:00 am to 9:30 pm (10:00 pm before). Transactional messages, such as a parcel tracking notice, are exempt. Some providers apply stricter rules: read their terms and check that scheduling blocks the forbidden slots.
On the data side, require hosting in the EU, a processing agreement under article 28 of the GDPR and sound access security: per-user permissions, two-factor authentication.
Number quality: HLR lookup before sending
An SMS to a terminated number still goes out and sometimes costs the same. An HLR lookup queries the network to learn whether a number is assigned to a reachable subscriber. Run it before the campaign: a number that is valid today can be closed next month.
Ask the platform whether this check exists, what it costs and whether sends to numbers already invalid are billed. Otherwise clean the list beforehand, a process covered in the article on keeping your customer file clean.
Customer support and free trial
Support is judged before you sign: send the help desk a precise technical question (API rate limit, handling of a rejected sender name) and time the answer. Read recent customer reviews on sending reliability too, bearing in mind that many comparison pages are published by platform vendors, so a provider’s reputation has to be checked somewhere other than on its own site. A vague or late answer previews the follow-up you will get later.
Insist on a free trial or a batch of free SMS for the delivery test, since that is what gives you your real delivery rate. Until it is measured, prefer no commitment or a short term in the first year. Get the cancellation terms in writing. The custom sender name (alphanumeric, in your brand) must be declarable with no hidden fees. RCS, a rich message limited to compatible handsets, is sometimes sold as an option: RCS messaging covers its limits.
Criteria grid to compare two SMS platforms
| Criterion | What to check | Warning sign |
|---|---|---|
| Price per SMS | Price per segment, tiers, side fees, billing of failures | Single rate with no fee breakdown |
| Deliverability | Direct carrier connections, delivery receipt per message | “Sent” status only |
| API and integration | Public documentation, webhooks, CRM or shop connector | Documentation on request |
| Compliance | Proof of consent, automatic STOP, blocking of forbidden slots | STOP to add by hand |
| Number quality | HLR check before sending, removal of invalid numbers | No list check |
| Support and contract | Technical answer before signing, trial, commitment length | Long commitment with no trial |
Delivery test to run before signing
- Open a trial account with two platforms and ask for the same volume of test SMS.
- Gather 30 to 50 numbers from colleagues, spread across the main carriers of your target country (in France: Orange, SFR, Bouygues Telecom and Free Mobile).
- Send the same message at the same time, with your sender name.
- For each recipient, note the time of receipt, the sender displayed and whether the STOP line appears.
- Compare with the platform’s delivery receipts: they should match.
- Reply STOP from a phone and check that the number is blocked for the next send.
Drop any platform that reports a delivery your phones do not confirm.
Common mistakes
Choosing on price per SMS alone hides the segments, the billed failures and the side fees. Plenty of senders also sign without a delivery test, import an old list without checking the numbers, or let a sales reminder go out with no STOP line. Then there is the sender identity: a sender your customers do not recognize leaves the message unsigned.
Before your next campaign, run a sample of your list through an HLR check and compare the share of invalid numbers with what your provider bills you.

