1. Home
  2. SMPP Connectivity
Developers

SMPP Connectivity

SMPP (Short Message Peer-to-Peer) is the protocol carriers and aggregators use to move SMS at volume. Instead of one HTTP request per message, your application keeps a persistent TCP session — a bind — open to the gateway and submits messages as PDUs, receiving delivery receipts and inbound messages on the same connection.

Published 2026-09-13 · Updated 2026-09-13 · By Ontech Solutions Limited

Definition.

SMPP (Short Message Peer-to-Peer) is the open, binary protocol used by carriers, aggregators and high-volume applications to exchange SMS over a persistent TCP connection. Instead of one HTTP request per message, your application keeps a bind open to the gateway and submits messages as PDUs, receiving delivery receipts and inbound messages on the same session. Ontech BulkSMS runs a multi-tenant SMPP 3.4 server.

When to use SMPP rather than the HTTP API

HTTP / JSON APISMPP
ConnectionOne request per callPersistent session (bind)
Throughput60 requests/minute; batch via JSONContinuous, up to your credential's TPS limit
Latency per messageHTTP round tripLowest — no connection setup per message
Delivery receiptsPoll status, or callback URLPushed to the bind as deliver_sm
Inbound messagesInbox / callbackPushed to the bind as deliver_sm
Integration effortMinutes, any languageAn SMPP library or an existing SMPP-capable platform
Typical userWeb apps, school and business systemsBanks, mobile money, messaging platforms, other gateways

If you send a few thousand messages a day from an application, the HTTP API is simpler. If you run a core banking system, a messaging platform or an existing SMPP client, or you need receipts pushed in real time, bind over SMPP.

Connecting to the Ontech BulkSMS SMPP server

Hostbulksms.ontech.co.zm
Port2775
VersionSMPP 3.4
System IDYour API Access ID
PasswordYour API Secret Key
Bind typesTransmitter, receiver, transceiver
Access controlYour account's IP whitelist; per-credential throughput (TPS) limit

Generate the credentials under API Keys in your dashboard and whitelist the IP address your SMPP client will connect from. Binds from other addresses are refused.

How a session works

  1. Bind. Your client opens a TCP connection and sends bind_transceiver (or transmitter / receiver) with the system ID and password. The server authenticates against your API credentials and the IP whitelist.
  2. Submit. For each message you send submit_sm with the destination MSISDN, the source address (your approved sender ID) and the text. The server validates the number, sender ID, blacklist and credits, queues the message and returns submit_sm_resp with a message ID.
  3. Receipts. When the network reports, the server pushes a deliver_sm receipt to your receiver or transceiver session with the message ID and final state (DELIVRD, UNDELIV, REJECTD and so on). Transmitter-only binds do not receive receipts.
  4. Inbound. Messages sent by handsets to your keywords or in reply to your messages are pushed as deliver_sm on the same session.
  5. Keep-alive. Send enquire_link periodically; if the session drops, reconnect and re-bind. Most SMPP libraries handle this.

Throughput and pacing

Each SMPP credential has a transactions-per-second limit set on the account. Submissions above it receive a throttled response (ESME_RTHROTTLED) and should be retried after a short pause — nothing is silently dropped; if you need a higher limit for a launch or a sustained stream, ask before the traffic starts. Behind the server, messages are paced per carrier connection so that one account's burst does not delay another's OTPs.

Encoding and long messages

Use the default data coding for GSM-7 text (160 characters per segment) and UCS-2 for messages that need characters outside the GSM alphabet (70 characters per segment). Long messages are concatenated with user data headers in the usual way and are billed per segment.

Testing and going live

Connection details and the HTTP alternative are on the API documentation page. For what the receipt states mean, see delivery reports.

Frequently asked questions

What is SMPP?

SMPP is an open, binary protocol (most commonly version 3.4) for exchanging SMS between an application (ESME) and a message centre (SMSC) over a persistent TCP connection. It supports submitting messages, receiving delivery receipts and receiving inbound messages on one session.

When should I use SMPP instead of the HTTP API?

When you send sustained high volumes, need the lowest per-message latency, or already run SMPP-capable software such as a banking or messaging platform. For most applications a few hundred messages a day, the HTTP or JSON API is simpler.

What bind types does Ontech BulkSMS support?

Transmitter (send only), receiver (receive only) and transceiver (both) binds over SMPP 3.4. Delivery receipts and inbound messages are only pushed to receiver or transceiver sessions.

What are the connection details?

Host bulksms.ontech.co.zm, port 2775, system ID set to your API Access ID and password set to your Secret Key. Binds are gated by your account's IP whitelist and each credential has a throughput (TPS) limit.

Are delivery receipts returned over SMPP?

Yes. When the network reports on a message, the receipt is delivered to your bound session as a deliver_sm PDU with the message ID and final state.

Ready to start sending?

Create a free account with trial credits, or talk to us about enterprise and reseller arrangements.