What Are Bandwidth's SMS Character Limits & Concatenation Practices?

Follow

Jason Sommerset

Updated

Table of Contents

What is the character limit for SMS text messages?

Can Bandwidth send and receive Emojis in SMS?

How does Bandwidth charge for concatenated (long) messages?

How does Bandwidth send concatenated (long) messages?

 

What is the character limit for SMS text messages?

The maximum number of characters per single message being sent to carriers depends on the encoding used, and the encoding used depends on the content of the message. The HTTP API limits SMS messages to a maximum length of 2048 characters.

See here for types of encoding. For example:

  • A message containing text characters only will be encoded using GSM-7
  • A message containing emoji will be encoded using UCS-2

This chart shows the maximum number of characters that can sent per SMS to carriers

Message

Type

Characters used in message

Encoding

Max characters/ message(without UDH)

Hello - good morning

Text

GSM Standard

GSM-7

160

 image2.png

Emoji

Unicode

UCS-2

70

 image1.png

Unicode

Unicode

UCS-2

70

See below for how long messages are handled.

 

Can Bandwidth send and receive Emojis in SMS?

Yes, Bandwidth Messaging support emojis. SMS Messages containing emojis will be encoded as Unicode.

Emojis can influence how many messages you get billed for. See below how Bandwidth charges for concatenated (long) messages.

 

How does Bandwidth charge for concatenated (long) messages?

Concatenated (long) messages are broken into segments depending on the encoding used. These segments are then sent to downstream carriers who reassemble the message before delivering to the handset.

Bandwidth charges for every SMS (segment) sent to the carriers. For example:

  • If you send an SMS containing 240 text characters, then Bandwidth will auto-segment it to 2 SMS to pass on to carriers and you will be charged for 2 SMS
  • If you send an SMS containing 150 characters where there are one or more non-GSM characters (like emojis), then Bandwidth will auto-segment it to 3 SMS to pass on to carriers and you will be charged for 3 SMS

 

How does Bandwidth send concatenated (long) messages?

Depending on the message content (plain text, emojis, special characters etc), Bandwidth will use either GSM-7 or UCS-2 encoding to send the messages and each encoding has limitations to the number of characters that can be sent. The limitations are -

  • 160 characters for GSM-7 (e.g. Latin-1/9 and GSM8).
  • 70 characters for UCS-2 (e.g. message with emojis)

When you send a message whose text is longer than the maximum number of characters per SMS, Bandwidth will automatically split the message for you, add a special header (User Data Header), and send multiple SMS to carriers. The User Data Header of 6 Bytes (UDH) instructs the receiving device on how to assemble messages, so that your whole message will be shown as one SMS on the receiving handset. The maximum number of characters per concatenated message is slightly reduced due to the inclusion of concatenation headers.

Customers will be charged for each individual message sent to downstream carriers. For example:

  • If you send an SMS containing 240 characters, then Bandwidth will auto-segment it to 2 messages to pass on to carriers and you will be charged for 2 messages
  • If you send an SMS containing 150 characters where there are one or more non-GSM characters, then Bandwidth will auto-segment it to 3 messages to pass on to carriers and you will be charged for 3 messages

Characters used in message

Total number of characters

Encoding

Message Segments

Calculation

Text Only

160

GSM-7

1

No UDH required, all 160 characters are available

Text Only

240

GSM-7

2

153+87=240

Text and emojis

150

UCS-2

3

67+67+16=150

 

Article is closed for comments.