# SMS for IoT and SMS API

https://www.datasim.com/technical/sms/

Quick answer. SMS carries short messages of up to 140 octets, which is 160 GSM 7-bit or 70 UCS-2 characters, to and from a device through the network's message centre. IoT devices use it to wake up, receive settings and SIM updates. LTE and 5G carry SMS in signalling, NB-IoT support depends on the operator, and a device in power saving mode cannot receive SMS until it wakes.

## Simple

SMS is the text message service built into mobile networks. Phones use it for texts. IoT devices use it for small, occasional messages that need no data session.

### Sent and received

A message the device sends is called mobile originated (MO). A message sent to the device is mobile terminated (MT). Both go through a message centre in the network, which stores each message and passes it on.

### What IoT devices use it for

- **Waking a device up.** A server sends a short message telling the device to connect and check in.
- **Settings.** A message can change a setting, such as how often the device reports.
- **Updating the SIM.** The SIM's operator sends secure messages to the SIM itself, for example to update its list of [preferred networks](/technical/steering/). The device passes these to the SIM without the application seeing them.
- **Alerts.** A device without a data connection can still send a short report.

### Limits

One message holds up to 160 plain characters, or 70 if it uses characters outside the basic set, such as many accents and all emoji. Longer messages are split into parts and joined again by the receiver. Messages can also carry binary data instead of text.

Delivery is not instant and is not guaranteed. A device that is asleep cannot receive a message. Low-power devices using [power saving mode](/technical/psm-edrx/) can be unreachable for hours, and the network only keeps trying to deliver for a limited time.

Support also varies by network and technology. On [NB-IoT](/technical/nb-iot/), SMS works only where the operator supports it.

### Sending from an application

Applications usually send and receive messages through the SIM provider's platform, by an API or a messaging link to the message centre. How that works is set by the provider. A device does not always need a public phone number for this, because messages between a device and its own application can stay inside the provider's system.

The table below shows how each DataSIM SIM profile handles SMS.

## Advanced

### The service

TS 23.040 defines the Short Message Service. A message from the device is an SMS-SUBMIT, sent mobile originated (MO) to the Short Message Service Centre (SMSC) named in the device's settings or on the SIM. A message to the device is an SMS-DELIVER, sent mobile terminated (MT) by the SMSC after it asks the home network's HLR or HSS where the device is. The SMSC stores and forwards. It holds an MT message until delivery succeeds or its validity period or retry policy runs out.

### How SMS is carried

SMS began on the GSM circuit-switched core. LTE and 5G carry it in other ways, and which one a device uses depends on the network and the device's registration.

| Method | Network | How it works | Standard |
|---|---|---|---|
| SMS over SGs | LTE, LTE-M, NB-IoT | The MME relays SMS in NAS signalling to an MSC over the SGs interface. The device registers with a combined attach, which can ask for SMS only | TS 23.272, TS 24.301 |
| SMS in the MME | LTE, LTE-M, NB-IoT | The MME reaches the SMS centre itself over the SGd interface, with no MSC | TS 23.272, TS 29.338 |
| SMS over IP | LTE, 5G | The message is carried over IMS, as SIP | TS 24.341 |
| SMS over NAS | 5G | The AMF relays SMS in NAS signalling to the SMSF | TS 23.501, TS 23.502 |

SMS over SGs depends on an MSC, which belongs to the 2G and 3G core, so check that a network keeps an SMS route after its 2G and 3G switch-off.

For NB-IoT the network delivers SMS in NAS signalling, so no data bearer is needed. Whether an NB-IoT network offers SMS at all is the operator's choice, and the device's attach can be accepted without it. Check SMS support per network and per technology, including for roaming partners. See [NB-IoT](/technical/nb-iot/) and [LTE-M](/technical/lte-m/).

### Sleeping devices

A device in power saving mode (PSM) stays registered but cannot be paged, so an MT SMS cannot reach it until it next contacts the network. With eDRX the device can be paged only during its paging windows, so delivery waits for the next one. See [PSM and eDRX](/technical/psm-edrx/).

When delivery fails because the device is unreachable, TS 23.040 lets the HLR or HSS record that a message is waiting and alert the SMSC when the device becomes reachable. Whether the network uses this, and how long the SMSC keeps retrying, are set by the operator. A message can expire before a device with a long sleep cycle wakes. Design the device to check in on its own schedule. Do not rely on SMS alone for commands that must arrive.

### Message size and encoding

The user data field is 140 octets.

| Coding | Characters in one message | Per part when concatenated |
|---|---|---|
| GSM 7-bit default alphabet (TS 23.038) | 160 | 153 |
| UCS-2 (16-bit) | 70 | 67 |
| 8-bit binary | 140 octets | 134 octets |

Concatenation uses a User Data Header that carries a reference number, the number of parts and the part's position. The header takes 6 octets with an 8-bit reference, which is why each part holds less. Some characters, such as € and square brackets, are in the GSM 7-bit extension table and use two septets each.

Binary messages set the data coding scheme to 8-bit data and are used for machine payloads and SIM updates. A sender can ask for a status report (SMS-STATUS-REPORT), which tells it whether the SMSC delivered the message to the device. It does not confirm that the application on the device acted on it.

### Uses in IoT

- **Wake-up and device triggering.** A server sends an SMS that tells the device to open a data session. TS 23.682 standardises this as device triggering, where an application server asks the network to deliver a trigger, which may travel as SMS.
- **Configuration.** Short commands in text or binary, ideally authenticated by the application so a stranger cannot reconfigure the device.
- **SIM updates over the air.** The operator sends secured packets (TS 31.115) to the SIM by SMS-PP. The device passes them to the SIM using the SMS-PP data download procedure of TS 31.111, without the application seeing them. This is how lists such as the preferred-network list used for [steering](/technical/steering/) are updated. Larger updates can use a data connection instead.
- **Fallback reporting.** A device that cannot open a data session can still send a short MO report.

### Applications, SMPP and numbering

How an application sends and receives SMS is a provider service. It is usually a web API, or SMPP, an industry protocol for connecting applications to an SMSC. Neither is part of the 3GPP standards, so features, delivery reporting and limits vary by provider.

A SIM's MSISDN is its telephone number (an E.164 number, TS 23.003). A public MSISDN is needed for messages to and from phones and other networks. Messages between a device and its own application can be routed inside the provider's platform using the SIM's identity, so a device may not need a public number for that. See [SIM identifiers](/technical/sim-identifiers/) for MSISDN, IMSI and ICCID.

## Myths

- **Myth.** NB-IoT does not support SMS.
  **Fact.** The standards let NB-IoT carry SMS in NAS signalling, with no data bearer. Whether a given NB-IoT network offers it is the operator's choice, so check per network, including roaming partners.
- **Myth.** A message sent to a sleeping device is delivered as soon as it wakes.
  **Fact.** A device in power saving mode cannot be paged. The network may alert the message centre when the device is reachable again, but the message centre retries only for a limited time, and a message can expire before a device with a long sleep cycle wakes.
- **Myth.** A delivery report means the device acted on the message.
  **Fact.** A status report says the message centre delivered the message to the device. It says nothing about whether the application on the device read or acted on it. Use an acknowledgement from the application for that.
- **Myth.** Every IoT SIM needs a public phone number to use SMS.
  **Fact.** A public MSISDN is needed to exchange messages with phones and other networks. Messages between a device and its own application can be routed inside the provider's platform, so a public number may not be needed.

## Sources

1. [Technical realization of the Short Message Service (SMS)](https://www.3gpp.org/DynaReport/23040.htm), 3GPP, TS 23.040
2. [Alphabets and language-specific information (GSM 7-bit alphabet, UCS-2)](https://www.3gpp.org/DynaReport/23038.htm), 3GPP, TS 23.038
3. [Circuit Switched fallback in EPS (SMS over SGs, SMS in the MME)](https://www.3gpp.org/DynaReport/23272.htm), 3GPP, TS 23.272
4. [NAS protocol for EPS (combined attach, SMS only)](https://www.3gpp.org/DynaReport/24301.htm), 3GPP, TS 24.301
5. [Support of SMS over IP networks](https://www.3gpp.org/DynaReport/24341.htm), 3GPP, TS 24.341
6. [System architecture for the 5G System (SMSF)](https://www.3gpp.org/DynaReport/23501.htm), 3GPP, TS 23.501
7. [Procedures for the 5G System (SMS over NAS)](https://www.3gpp.org/DynaReport/23502.htm), 3GPP, TS 23.502
8. [Architecture enhancements to facilitate communications with packet data networks and applications (device triggering)](https://www.3gpp.org/DynaReport/23682.htm), 3GPP, TS 23.682
9. [Secured packet structure for (U)SIM Toolkit applications](https://www.3gpp.org/DynaReport/31115.htm), 3GPP, TS 31.115
10. [USIM Application Toolkit (SMS-PP data download)](https://www.3gpp.org/DynaReport/31111.htm), 3GPP, TS 31.111

Checked 30 October 2026.
