BroadNet
SMPP Topic hub

SMPP explained

Definition

SMPP (Short Message Peer-to-Peer) is the open TCP protocol that carries A2P SMS between an application — the ESME — and a mobile operator's SMSC. The ESME opens a persistent bind, submits messages as binary submit_sm PDUs and receives delivery receipts back over the same socket.

Summarised from How does the SMPP protocol work?

Last updated 9 key terms

How it works

  1. 1

    Bind

    The ESME opens a TCP connection (ideally TLS) and sends bind_transceiver with a system_id and password. It can bind as Transmitter, Receiver or Transceiver; a Transceiver bind over SMPP 3.4 is the modern default.

    Read the full answer
  2. 2

    Submit

    Each message goes out as a submit_sm PDU, and the SMSC acknowledges with a submit_sm_resp carrying a message_id. The window — how many PDUs may be in flight unacknowledged — is what most often caps real throughput.

    Read the full answer
  3. 3

    Receive delivery receipts

    Delivery receipts arrive asynchronously as deliver_sm PDUs on the same socket and are matched back to the original message by message_id.

    Read the full answer
  4. 4

    Keep the session alive

    An enquire_link heartbeat every 30 seconds keeps the bind up, the client reconnects with exponential backoff, and unbind closes the session cleanly. A failed submit returns a numeric command_status to decode.

    Read the full answer

Key terms

Each term has its own answer page with the full explanation.

Frequently asked questions

When should you choose SMPP over REST?

Choose SMPP when you sustain several hundred messages per second or need persistent binds (capacity per bind is agreed with your account team), run latency-critical OTP where every millisecond counts, or integrate into an operator/aggregator ecosystem that already speaks SMPP everywhere. Otherwise a REST SMS API (no fixed per-account rate limit at BroadNet) is simpler to run and delivers over the identical routes.

Read the full answer

Should I use SMPP 5.0 for a new integration?

Almost never. Bind SMPP 3.4 over TLS unless a specific counterparty requires 5.0. The install base, tooling, and operator support all sit on 3.4, and 5.0 offers no deliverability advantage on commercial A2P routes.

Read the full answer

Does SMPP 5.0 deliver messages better than 3.4?

No. Deliverability is a function of the operator route, not the SMPP version. The things 5.0 improved (Unicode headers, billing TLVs) are typically handled at the application layer on top of 3.4.

Read the full answer

How do I send Arabic or emoji over SMPP 3.4?

Set data_coding to UCS-2 (0x08), or carry the body in a message_payload TLV. 3.4 handles Unicode content fine; you do not need 5.0 for it.

Read the full answer

What bind type and port should I use?

A transceiver bind over TLS is the standard for A2P — it sends submit_sm and receives DLRs on one socket. BroadNet offers SMPP 3.4 binds; the host, port and credentials are provided with your test access.

Read the full answer