---
title: "submit_sm"
description: "submit_sm is the SMPP v3.4 operation (command_id 0x00000004) an application uses to submit a single SMS to the SMSC. The SMSC replies with submit_sm_resp containing a message_id used to match later delivery receipts."
canonical: "https://omnichannels.ai/glossary/submit-sm/"
language: "en"
updated: "2026-10-10"
publisher: "BroadNet Technologies"
brand: "OmniChannels.ai"
---

# submit_sm

Canonical: https://omnichannels.ai/glossary/submit-sm/
Language: en
Publisher: OmniChannels.ai by BroadNet Technologies

**Definition:** submit_sm is the SMPP v3.4 operation (command_id 0x00000004) an application uses to submit a single SMS to the SMSC. The SMSC replies with submit_sm_resp containing a message_id used to match later delivery receipts.

Key fields are source_addr (the sender ID) with its TON/NPI, destination_addr, esm_class, registered_delivery (request a receipt), data_coding (for example 0x00 default alphabet or 0x08 UCS-2), sm_length and short_message.

short_message holds up to 254 octets. For longer user data the specification says to set sm_length to zero and put the content in the message_payload TLV instead.

If the sender builds its own concatenation header, it sets the UDHI bit (0x40) in esm_class and prepends the UDH to short_message.

A non-zero command_status in submit_sm_resp means the SMSC rejected the message, for example ESME_RINVDSTADR (invalid destination) or ESME_RTHROTTLED (throughput exceeded). Acceptance only means the SMSC took the message; the delivery receipt reports the final outcome.

## Example

```
submit_sm: source_addr_ton=5 source_addr="AcmeBank" dest_addr_ton=1 destination_addr="971501234567" registered_delivery=1 data_coding=0x00 short_message="Your code is 482913"
```

## Sources

- [SMPP Protocol Specification v3.4 (Issue 1.2) — SMPP.org](https://smpp.org/SMPP_v3_4_Issue1_2.pdf)