Simple pricing.
No surprises.

One rate for every Malaysian mobile network. You pay per SMS segment actually sent — nothing else.

RM0.20 / SMS

per 160-character segment · all Malaysian networks

  • No setup fee
  • No monthly fee or minimum spend
  • No contract or lock-in period
  • Credit never expires
  • Failed submissions refunded automatically
  • Free trial credit to test before paying
Start free

How a message turns into cost

SMS is billed per segment, not per message. This is an industry-wide standard, not our rule — but plenty of providers don't explain it, so here it is.

Message contentEncodingCharacters per segmentCost per recipient
English onlyGSM-7160RM0.20
English, 300 charactersGSM-7153 × 2 segmentsRM0.40
Any Chinese / Tamil / emojiUnicode70RM0.20
Chinese, 100 charactersUnicode67 × 2 segmentsRM0.40

A single emoji anywhere in your message flips the whole thing to Unicode and cuts your per-segment allowance from 160 to 70. Our dashboard shows the segment count and total cost live as you type, so this never surprises you at checkout.

What a real campaign actually costs

Per-segment pricing only becomes concrete when you put a message next to it. These are worked examples at RM0.20 per segment — the arithmetic is segments × recipients × RM0.20.

What you sendCharsSegmentsTo 1,000 people
OTP: Your code is 481203. Valid 5 minutes.401RM200
Booking reminder with date, time and address1451RM200
Promo with brand, offer, link and STOP1581RM200
The same promo, 12 characters longer1702RM400
The same promo with one emoji added1593RM600
Chinese notice, 60 characters601RM200
Chinese notice, 90 characters902RM400

Rows four and five are the ones that catch people. Twelve extra characters double the bill. One emoji triples it, because it converts the whole message to Unicode and drops the per-segment allowance from 160 characters to 70. Nothing about the offer changed.

Paste your draft into the SMS segment calculator before you commit a budget. It counts what you will actually be billed, including the operator prefix described below.

Why a long message is not simply "two SMS"

A message longer than one segment is not sent as two independent messages. It is split, and each part carries a small header telling the handset how to reassemble them in order. That header occupies space inside the segment, which is why the allowance drops once you cross the boundary:

EncodingFits in one segmentPer segment once splitLost to the header
GSM-7 (plain English)1601537 characters
Unicode (any Chinese, Tamil, emoji)70673 characters

So 161 characters of English is 2 segments (not 1 + a bit), and 306 characters is 2 — but 307 is 3. The awkward consequence: trimming a message from 161 to 160 characters halves its cost, and no other single edit on this page saves you as much.

One more thing specific to Malaysian commercial routes: operators prepend a short prefix to commercial traffic, and those characters come out of your allowance rather than theirs. A message you measured at exactly 160 characters in a text editor can bill as 2 segments. Our calculator and the send screen both count the prefix, so the number you see before confirming is the number you are charged.

What you are charged for, and what you are not

This is the part most pricing pages skip, and it is where invoices stop matching expectations. Operators bill on submission, not on delivery — so the honest answer is that some messages that never reach a handset are still billable, and we would rather say so here than argue about it later.

OutcomeWhat happenedCharged?
DeliveredThe network confirmed it reached the handsetYes
SentSubmitted to the operator, final receipt not back yetYes
UndeliveredAccepted by the operator but never reached the handset — phone off for days, number recycled, content filteredYes — the operator billed us for it
RejectedNever submitted at all — invalid number format, blocked content, duplicate in your listNo — refunded automatically

Your delivery report separates these four rather than collapsing them into one "failed" number, because two of them are billable and two are not. If a provider shows you a single failure count, you cannot reconcile their invoice even in principle. More on the mechanics: why SMS is not delivered in Malaysia.

Two things that can cost more than the SMS

Protected brand names. Malaysian operators penalise messages containing protected international brand names at RM1.50 per segment — seven and a half times the price of the message. A 1,000-recipient promo mentioning one is a RM1,500 penalty on RM200 of traffic. We screen for this and reject the message before charging you, rather than sending it and passing you the penalty weeks later.

Duplicates in your list. The same number three times is three charges and one irritated recipient. We de-duplicate before quoting you, so the price you see is for unique recipients.

API access costs the same

There is no API plan, no developer tier and no per-request fee. A message sent through the REST API costs exactly what the same message costs from the web console — RM0.20 per segment, from the same prepaid balance.

ItemCost
Sending an SMS segmentRM0.20
API accessFree
API keys (multiple, revocable)Free
Per-number delivery reportsFree
Sending from our shared short codeFree
Account setupFree
Monthly platform feeNone
Minimum spend or contractNone
Credit expiryNever expires

The reason this matters for transactional sending: OTP and notification volume follows your business, not a plan. A quiet month should cost less, not the same as your busiest one. Prepaid credit with no monthly fee fits that shape; a subscription sized for your peak does not.

A dedicated short code or a registered brand sender ID are the two things that do carry operator charges, because the operators charge for them — see short code SMS and sender ID registration. Neither is required to start.

SMS pricing questions

How much does an SMS cost in Malaysia?

RM0.20 per segment on HantarSMS, the same rate for every Malaysian network. The cost of a message depends on how many segments it uses: 160 characters of English is one segment, and anything containing a non-English character drops that to 70.

Is there a monthly fee or minimum spend?

No. No setup fee, no monthly fee, no minimum, no contract. You buy prepaid credit and it does not expire. If you send nothing for three months, it costs nothing.

Why did my message cost twice what I expected?

Almost always encoding or length. One emoji, one Chinese character or a curly apostrophe pasted from a word processor converts the message to Unicode and cuts the per-segment allowance from 160 characters to 70. The other cause is crossing the 160-character line: at 161 characters you are billed for two segments.

Do I pay for messages that are not delivered?

It depends which kind of failure. Messages we could not submit at all — invalid numbers, blocked content — are rejected and refunded automatically. Messages the operator accepted but never delivered to the handset are charged, because the operator charged us on submission. Your report separates the two.

Does the API cost extra?

No. Same RM0.20 per segment, same balance, no API plan or per-request fee. API keys are free and you can hold several.

How is Chinese SMS priced?

Same RM0.20 per segment, but a Unicode segment holds 70 characters instead of 160 — so Chinese text costs roughly 2.3× more per character than English. A 60-character Chinese notice is one segment; at 71 characters it becomes two.

Is there volume pricing?

Above roughly 50,000 SMS a month, yes — priced case by case rather than from a published tier table. Message us with your monthly volume and message type.

Can I test before paying?

Yes. We load free trial credit on request so you can send real messages to your own handset and read the delivery report before spending anything.

Volume pricing

Sending consistently above 50,000 SMS a month? Message us — we price that case by case rather than publishing a tier table we'd have to keep revising.

Ask about volume pricing

Test it on your own phone first

We'll load free trial credit so you can send a real SMS before spending anything.