InforU exposes SMS sending over HTTP. The integration is straightforward - what surprises people is that a Hebrew message costs more than twice an English one of the same length, and why.
Key takeaways
- A Hebrew SMS fits 70 characters per segment, not 160. One Hebrew character forces the whole message into the wider encoding, so a single emoji in an English message more than doubles its cost.
- Count segments before sending, not after the invoice. A template that looks fine in testing can cross a segment boundary the moment a real customer name is longer.
- SMS is fire-and-forget unless you handle delivery reports. Accepted by the gateway is not delivered to the handset, and the difference matters for anything time-critical.
- Opt-out is not a feature you add later. Build the unsubscribe path and the suppression list before the first marketing send, and keep records of consent.
InforU is an Israeli messaging platform, and it exposes SMS sending over HTTP - through both a REST interface and web-service interfaces, with code samples in the common languages. The first connection takes about an hour. What surprises people arrives afterwards, on the invoice.
Take the exact request shape from InforU's official documentation - it includes the send endpoint, a parameter table and ready-made examples. This article is about what the documentation does not explain: what it will cost, and what actually breaks.
The cost trap: Hebrew costs more than twice as much
This is the most important point, and it is not specific to InforU - it is how SMS works everywhere.
An SMS is sent in segments, and segment length depends on the encoding:
| Encoding | When used | Characters per segment | In a multi-segment message |
|---|---|---|---|
| GSM-7 | English and basic characters | 160 | 153 |
| UCS-2 | any message containing Hebrew | 70 | 67 |
Which means a Hebrew message holds less than half the characters of an English one in the same segment. A 100-character Hebrew message is two segments - double the cost - while a 100-character English message is one.
The detail that catches people out
A single non-Latin character forces the entire message into the wider encoding.
The illustrative case: a 150-character English message is one segment. Add one emoji - and it is now UCS-2, meaning 70 characters per segment, meaning three segments instead of one. Triple the cost, because of one character.
The same happens with typographic quotes that editors substitute automatically, or with a long dash.
What to do
- Count segments in code before sending, not after the invoice. A small function that detects a non-GSM character and computes segments accordingly.
- Test the template with real, long values. A template that looks fine with a short first name crosses a segment boundary with a long one. This is exactly the kind of thing that shows up on the invoice rather than in testing.
- If a message crosses a boundary, consider shortening. A short link instead of a long one, and no superfluous signature.
Accepted is not delivered
The second common design mistake: a success response from the API means the provider accepted the message - not that it reached a handset.
Between the two can sit: an invalid number, a switched-off device, a disconnected number, a network block. All of which happen after you already received a 200.
If the message is time-critical - a one-time code, an appointment reminder, an operational alert - you need to handle delivery reports rather than relying on the send response. Otherwise you believe the customer received a reminder, and they did not.
And what to do with that information: a number returning a permanent delivery failure should be flagged on the customer record, so the system knows next time to fall back to email or WhatsApp.
Phone numbers - normalise before sending
The same problem recurring in every Israeli integration: a number on a customer record is stored in every shape - 052-1234567, 0521234567, +972521234567, sometimes two in one field.
Normalise before sending, and for a number that does not resolve confidently, do not send and flag it for review. An unsent message beats one sent to the wrong number, particularly when every message has a cost.
The sender ID
An alphanumeric sender ID - what the recipient sees instead of a number - is an asset. Two things worth knowing:
- It usually requires prior registration with the provider rather than being a field you fill in. Establish this before promising a client that messages will arrive under the brand name.
- A recipient cannot reply to an alphanumeric sender. If your flow expects a reply - confirming an appointment with "yes", for instance - it will not work. You need a different path, and that is a decision for the requirements stage rather than for testing.
Opt-out - build it before the first campaign
Sending marketing messages in Israel is subject to regulation, and its legal aspect is not a subject for a technical article. What is technical:
- A working unsubscribe path - and a suppression list checked before every send, not after.
- A record of consent - when and where the recipient signed up. Without it you have no answer when someone asks.
- Separation of operational from marketing. An order confirmation and a promotion are not the same thing, and unsubscribing from marketing must not block an operational alert.
As to what the law actually requires - that is a question for a lawyer, not for a developer and not for an article. What is certain: building the infrastructure up front costs a fraction of adding it after sending has started.
What must be in place
- Segment counting before sending - this is the budget protection.
- Number normalisation to E.164, skipping anything unresolved.
- Idempotency. The same trigger firing twice does not send two messages. To a customer receiving a duplicate reminder that looks like a fault, because it is one.
- A suppression-list check before every send.
- An error queue a human sees.
- The token as a server-side secret. Every message has a direct cost - a leaked token is a bill that inflates.
Checklist
- Open the official documentation and take the request shape from it.
- Write the segment-counting function before writing the send.
- Test every template with real, long values.
- Decide whether delivery reports are needed - and handle them if so.
- Establish sender ID registration before promising it to a client.
- Build opt-out and the suppression list before the first campaign.
- Confirm the token appears in no client-side code.
Frequently asked questions
Why does a Hebrew SMS cost more than an English one?
Because Hebrew forces the UCS-2 encoding, which fits 70 characters per segment instead of GSM-7's 160 - and 67 rather than 153 in a multi-segment message. A 100-character Hebrew message is therefore two segments while the same length in English is one, so the same text costs double.
Can one emoji really triple the cost of an SMS?
Yes. A single non-Latin character forces the whole message into UCS-2, so a 150-character English message that was one segment becomes three at 70 characters each. The same happens with typographic quotes that editors substitute automatically. Count segments in code before sending rather than discovering it on the invoice.
Does a successful SMS API response mean the message arrived?
No - it means the provider accepted it. An invalid number, a switched-off device, a disconnected line or a network block all occur after you receive a success response. For anything time-critical such as a one-time code or an appointment reminder, handle delivery reports, and flag numbers with permanent failures so the system can fall back to another channel.
Can customers reply to an alphanumeric SMS sender name?
No. If your flow expects a reply - confirming an appointment with "yes", for example - an alphanumeric sender will break it, and you need a different path such as a link. Alphanumeric sender IDs also generally require prior registration with the provider, so establish that before promising a client that messages will arrive under their brand name.
What has to be built before sending the first SMS campaign?
A working unsubscribe path, a suppression list checked before every send rather than after, a record of when and where each recipient consented, and a separation between operational and marketing messages so that opting out of promotions does not block an order confirmation. What the law specifically requires is a question for a lawyer, but the infrastructure is far cheaper to build up front.
Keep reading
Related service
Integrations
Make the systems you already pay for talk to each other.
About the author
Yehonatan Saadia
Freelance automation, web & MVP engineer
I'm Yehonatan Saadia, a senior engineer who builds business automation, custom websites, and MVPs for small and mid-sized companies across the US, Europe, and Israel. These guides come from real client work, not theory.
Work with meHave a project like this?
Tell me what you're trying to automate or build and I'll tell you the fastest reliable way to ship it.
