What is SMPP?
SMPP (Short Message Peer-to-Peer) is an open, industry-standard protocol used to exchange SMS messages between SMS service centres (SMSCs) and external applications (ESMEs — External Short Message Entities). It's the protocol of choice for high-throughput, enterprise-grade SMS sending.
BulkSMSRates supports SMPP v3.4 with TLS encryption on port 2775 (plain) and port 2776 (TLS). Our gateway supports transmitter, receiver, and transceiver bind modes.
SMPP Architecture
In an SMPP setup, your application (ESME) connects to our SMPP gateway (SMSC) over TCP/IP. The connection is persistent — unlike HTTP, you maintain an open socket and can send messages at high throughput without connection overhead.
Key components:
• ESME (External Short Message Entity): Your application
• SMSC (Short Message Service Centre): BulkSMSRates gateway
• PDU (Protocol Data Unit): The binary message format
• Bind: Authentication handshake to establish a session
• TPS (Transactions Per Second): Throughput rate per bind
Connection Details
Use the following parameters to connect to the BulkSMSRates SMPP gateway:
| Parameter | Value |
|---|---|
| Host | smpp.bulksmsrates.com |
| Port (plain) | 2775 |
| Port (TLS) | 2776 |
| SMPP Version | 3.4 |
| System ID | Your API username |
| Password | Your SMPP password |
| System Type | Leave empty or use "SMPP" |
| Max TPS | 100 (upgradeable) |
| Max Binds | 5 per account |
Bind Types
SMPP supports three bind types:
• bind_transmitter: Send-only mode. Used if you only need to submit messages.
• bind_receiver: Receive-only mode. Used to receive DLR (delivery reports) and MO (mobile-originated) messages.
• bind_transceiver: Send and receive. Recommended — single connection for both outbound and inbound traffic.
For most integrations, use bind_transceiver to handle outbound SMS and incoming DLRs on the same session.
// Example bind_transceiver PDU (hex)
00 00 00 27 // command_length: 39
00 00 00 09 // command_id: bind_transceiver
00 00 00 00 // command_status: 0 (OK)
00 00 00 01 // sequence_number: 1
// Body:
"myusername " // system_id (null-terminated)
"mypassword " // password (null-terminated)
"SMPP " // system_type
34 // interface_version: 0x34 = v3.4
00 // addr_ton
00 // addr_npi
"