Short Message Peer-to-Peer (SMPP) is an industry-standard protocol for exchanging short messages and data between systems. SMPP defines operation and protocol data units (PDUs), where every operation has a request PDU and an associated response PDU. The receiving entity must send the associated response to the SMPP PDU request.

OpenMarket supports version 3.4 of the SMPP protocol. This enables:

  • Sending outbound MT messages
  • Receiving MT delivery receipts
  • Receiving inbound MO messages

Before you integrate, you must first obtain an OpenMarket SMPP account by contacting your OpenMarket account manager. To use SMPP, you establish a connection to a Short Messaging Service Center (SMSC) — e.g. OpenMarket — using a TCP/IP network connection. After establishing the connection, your system sends a request PDU to the SMSC, which responds with a response PDU. The specific PDU structure depends on the type of transaction, such as submit_sm or deliver_sm.

SMPP specification

OpenMarket supports version 3.4 of the SMPP protocol only. For complete information on the protocol, download the SMPP Protocol Specification v3.4.

Transactions supported by OpenMarket


SMPP account configuration settings

This table lists general OpenMarket SMPP settings, such as the version we support, as well as _settings on your customer account that are configurable during the provisioning process, such as the throttle rate.

Configuration Setting


How to use



This is the host to use when establishing SMPP binds to OpenMarket. Always use the fully qualified domain name. Your service should honor the time-to-live specified in the DNS resolution for the fully qualified domain name. OpenMarket supports transmitter, receiver, and transceiver binds.


8143: Secure socket. Transport Layer Security (TLS) versions 1.2 and 1.1 are supported.

8143 is the host port to use when establishing secure SMPP binds to OpenMarket. We support transmitter, receiver, and transceiver binds. You must use TLS with port 8143.

SMPP Version


This is the interface_version value to use in the SMPP BIND PDU operation. Use SMPP version 3.4.

System ID

Your OpenMarket SMPP account ID.

This is the system_id value to use in the SMPP BIND PDU operation. Use your OpenMarket SMPP account ID without the dashes.

Example OpenMarket SMPP account ID: 123-456-789-12345

OpenMarket SMPP account ID transformed to system_id format: 12345678912345


The valid password for your SMPP account.

This is the password value to use in the SMPP BIND PDU operation. A maximum of eight characters is allowed. Use the valid password for your OpenMarket SMPP account.

System Type

Not required for the SMPP BIND PDU operation.

For more information, see the SMPP Protocol Specification v3.4.

Address Range

Not required SMPP BIND PDU operation.

For more information, see the SMPP Protocol Specification v3.4.

Character set used for all MOs and for MTs where the Data Coding Scheme is set to zero (DCS 0)

Choose a default of either:

  • ISO-8859-1 (Latin-1)
  • GSM 7-bit default alphabet with the extension table of 3GPP TS 23.038 / GSM 03.38.

This determines the character set used for all SMPP deliver PDUs.

OpenMarket also assumes that this is the character set of your submit PDUs unless the request specifies a different character set or encoding.

For more information, see Data Coding Scheme.

Number of allowed concurrent sessions

2 (default)

The total number of concurrent SMPP binds allowed for your account. This value is tailored to your account, based on your use cases and agreement with OpenMarket.

Throttle Rate

10 (default)

The maximum number of MT submits you can send per second. This value is tailored to your account, based on your use cases and agreement with OpenMarket.

For more information, see Throttle rate below.

Connection Timeout

30000 milliseconds (30 seconds)

OpenMarket recommends your system sends ENQUIRE_LINK PDUs every 20 seconds if your application is not actively submitting messages.

Throttle rate

The OpenMarket Service Level Agreement (SLA) may restrict the number of messages you can submit based on the maximum allowed message submits per second for your account. This is known as transaction throttling. If the permitted limit is reached, OpenMarket may reject subsequent transactions with SMPP error 0x058 (throttle rate exceeded).

The default throttle rate is stated in your contract. For questions regarding your configured throttle rate, or to request a modification to your contractual limit, contact your OpenMarket account manager.

Connection timeout

After you establish a connection and acknowledge an authenticated bind request, you can send additional requests or responses. A response is issued for each request. The network connection into the SMSC ends when the idle connection time, in milliseconds (ms), is exceeded.

Idle time is when no SMPP commands are sent or received across an open network connection within the connection timeout period. The connection is dropped as a result, and you must re-establish it. To avoid this situation, have your external short messaging entity (EMSE) issue an enquire_link operation across the appropriate virtual connection to keep the connection alive.

You can set the enquire_link operation over both the bind_transmitter and bind_receiver sessions. Your application should send the enquire_link before the connection timeout occurs.

OpenMarket expects to receive an enquire_link operation on each of your SMPP sessions at least once every 30 seconds and will terminate the SMPP session if this operation is not received within that period. To avoid bind termination as a result of connection timeout, OpenMarket recommends that your SMPP sessions trigger an enquire_link operation every 20000 milliseconds.

Concurrent sessions

You can bind the maximum concurrent number of sessions at any given time. The default setting for a SMPP account is to have a maximum of two (2) concurrent sessions. This means you will be able to have either two transceiver-type binds, two pairs of a receiver and transmitter-type binds, or a combination of the two.

To increase the maximum number of concurrent SMPP sessions allowed for your account, contact your account manager.

Retrying failed MTs

OpenMarket can, on your behalf, retry MTs that fail with retryable error conditions. Automatic retry applies to MTs that fail with retryable error conditions after the MT is accepted by OpenMarket and a ticket ID is returned to your system. We can retry MTs for up to 24 hours or until the MT validity period expires, whichever comes first. OpenMarket returns a delivery receipt, if requested, after the maximum number of retries has been exhausted.

If you submit an MT with a carrier ID and the MT is rejected by the carrier with an invalid destination address error, OpenMarket will perform a carrier lookup to determine if a different carrier ID should be used to route the MT. If a different carrier ID for the destination address is found, OpenMarket will submit the MT to the new carrier and your account will be charged for the lookup.

When OpenMarket is retrying an MT, the message state is “Retrying” in the SMS Activity Search results on Customer Center.

By default, automatic retry is enabled on accounts for new customers. If you would like to disable or re-enable automatic retry on an existing account, contact your OpenMarket account manager.