SBS TELECOM — 20 years of Tier-1 SMS termination and enterprise messaging excellence.Explore Solutions
S
SBS TELECOMEnterprise Telecom
SMPP Docs

SMPP v3.3 & v3.4 Integration Guide

Everything you need to establish and maintain an SMPP connection to the SBS TELECOM platform — connection parameters, bind types, PDU reference, TPS configuration, and production best practices.

Connection

Connection Parameters

Use the following parameters to establish your SMPP session. Credentials (system_id and password) are provisioned when your SMPP account is created.

Supported VersionsSMPP v3.3 and SMPP v3.4
Hostsmpp.sbstelecom.co.uk
Port2775 (standard) · 8775 (SSL/TLS)
Authenticationsystem_id and password provided at account provisioning
Enquire Link IntervalRequired every 60 seconds or less to maintain session
Default TPSConfigurable per account (contact your account manager)
Max Concurrent BindsConfigurable — contact us for multi-bind requirements
Delivery ReceiptsDelivered via deliver_sm on the same or a receiver bind
Example

Session Establishment

bind_transceiver (Python smpplib)
import smpplib.client
import smpplib.gsm
import smpplib.consts

client = smpplib.client.Client(
    'smpp.sbstelecom.co.uk', 2775
)

client.connect()
client.bind_transceiver(
    system_id='YOUR_SYSTEM_ID',
    password='YOUR_PASSWORD',
    system_type='',
    addr_ton=smpplib.consts.SMPP_TON_INTL,
    addr_npi=smpplib.consts.SMPP_NPI_ISDN,
)

# Session is now active
# Send submit_sm PDUs to deliver messages
Bind Types

Choosing the Right Bind Type

bind_transmitter

Transmitter

Send-only bind. Use when your application only needs to submit outbound messages (MT) and does not need to receive delivery receipts or inbound messages via SMPP.

Best for: One-way send applications
bind_receiver

Receiver

Receive-only bind. Use when your application only needs to receive inbound messages (MO) or delivery receipts, and does not submit outbound messages.

Best for: MO message collection, DLR collection
bind_transceiver

Transceiver

Bidirectional bind combining transmitter and receiver functionality. The most common choice for most integrations — send MT messages and receive delivery receipts on the same connection.

Best for: Recommended for most integrations
PDU Reference

Supported PDU Types

PDUDirectionDescription
bind_transmitter / bind_receiver / bind_transceiverClient → ServerEstablish an SMPP session in the specified bind mode.
submit_smClient → ServerSubmit an outbound SMS message for delivery.
submit_sm_respServer → ClientAcknowledgement of submit_sm with message ID and status.
deliver_smServer → ClientDelivery receipt or inbound MO message delivered to your application.
deliver_sm_respClient → ServerAcknowledgement of deliver_sm. Must be sent promptly to prevent congestion.
enquire_linkBothKeepalive PDU to maintain the session when no traffic is flowing. Send at least every 60 seconds.
enquire_link_respBothResponse to enquire_link.
unbindBothGracefully terminate the SMPP session.
Best Practices

Production Best Practices

Following these practices will ensure your SMPP integration operates reliably in production with maximum uptime.

  • Implement enquire_link
    Send enquire_link at least every 60 seconds when no other PDUs are being exchanged to keep the session alive.
  • Respond to deliver_sm promptly
    Always send deliver_sm_resp immediately. Delayed responses cause server-side queuing and session degradation.
  • Implement exponential backoff
    On connection failure, use exponential backoff with jitter before reconnecting — don't hammer the server.
  • Handle session loss gracefully
    Your application should detect session loss, log the event, and initiate a clean reconnect without losing queued messages.
  • Respect TPS limits
    Submit messages at or below your agreed TPS. Exceeding TPS results in throttle responses and queued messages.
  • Use sequence numbers correctly
    Increment sequence numbers per session and match responses to requests. Do not reuse sequence numbers.
TPS & Throughput

Managing Throughput

Your SMPP account is provisioned with a configured TPS (transactions per second) limit. This determines the maximum message submission rate.

Throttle Response (ESME_RTHROTTLED)

If you exceed your TPS, the server returns ESME_RTHROTTLED. Implement backpressure — pause submissions briefly and retry. Do not close the session on throttle.

# submit_sm_resp with throttle
command_status: ESME_RTHROTTLED (0x00000058)

# Recommended: back off 100ms and retry
# Do NOT disconnect on throttle
Increasing TPS

Contact your account manager to increase your TPS allocation. Higher TPS tiers are available for enterprise accounts.

Ready to Connect via SMPP?.

Contact our technical team for SMPP credentials, TPS configuration, and integration support.

UK Registered20 Years ExperienceTier-1 Connectivity190+ Countries24/7 Support