Technical Information on SMPP

Short Message Peer to Peer (SMPP) API

Short Message Peer-to-Peer (SMPP) is an API used for sending and receiving SMS messages. Applications (or "ESMEs" in SMPP terminology) connecting to SMSCs, SMS gateways or VMN servers can use the SMPP API, with support typically for at least SMPP v3.3. There are a number of versions of the protocol, including SMPP v3.3, SMPP v3.4 or SMPP v5.

SMPP receiver and transmitter binds or a transceiver bind must be made by the application. At all times an SMPP receiver bind must be maintained if the application needs to receive delivery receipts as and when they are generated and inbound SMS (MO SMS) as and when it is send by mobile users. Transmitter binds, for sending SMS to mobiles, can remain permanently connected or may be bound and unbound as required.

MO SMS to application using Virtual Mobile Number (VMN)

Diagram: MO SMS to application using Virtual Mobile Number (VMN)

When the SMS sent by a mobile user is received by the VMN server, it is passed to the application using SMPP. The application will be connected into the VMN server and will have a receiver or transceiver SMPP bind in place. Over this bind an SMPP deliver_sm PDU containing the SMS message from the mobile user will be passed to the application. On receiving the deliver_sm PDU the application will respond back to the VMN server with an SMPP deliver_sm_resp PDU to acknowledge delivery of the message.

The character set of the message from the mobile will either be in UCS2 data coding or in GSM data coding, however the platform to which the application is connecting (SMSC, SMS gateway or VMN server) may change the data coding. The data coding character set is indicated in the data_coding field of the deliver_sm. The meaning of the other fields in the deliver_sm are shown in the following table. The key fields are highlighted in blue.

Field nameDescriptionExample
source_addr_tonType of Number of the mobile user's mobile number.1 - International
source_addr_npiNumbering Plan Indicator of the mobile user's mobile number.1 - ISDN (E163/E164)
source_addrSource address of the short message. This will be the digits of the mobile user's mobile number.447700111222
dest_addr_tonType of Number1 - International
dest_addr_npiNumbering Plan Indicator1 - ISDN (E163/E164)
destination_addrDestination address of the short message. This will be the digits of the Virtual Mobile Number.447102820086
esm_classMessage mode and message type0 - MO SMS
protocol_idProtocol Identifier0 - see GSM03.40
data_codingDefines the encoding scheme of the short message user data.0 - SMSC default alphabet
8 - UCS2
sm_lengthLength in octets of the short_message user data.11
short_messageShort message user data received from the mobile user."hello world"
Message Delivery Request TLVs

Diagram: deliver_sm PDU for a message to a VMN

SMPP Specifications

The SMPP protocol specifications can be found below:

VirtualMobile - Broker

VirtualMobile makes is easy to obtain Virtual Mobile Numbers from mobile networks around the work. Use VMNs to enable your application to receive SMS and improve your customer engagement through their use.


We are a zero-commission and zero-fee broker who will match your request with a suitable supplier of VMNs.


You will normally receive a response from a supplier within 8 working hours.


You will use the service of the supplier from which the VMN is obtained to receive SMS sent to the VMN. Multiple APIs such as SMPP and HTTPS are normally available.