Skip to content
Last updated

SMPP

Achieve granular control and low latency of SMS messaging and with the Sinch Enhanced SMPP service.

Sinch offers a traditional telecoms protocol for submission of bulk SMS. This protocol is called the SMPP Protocol. More information about the general use and availability of the protocol can be found around the web. Read more here to understand the Sinch specific implementation of the SMPP Protocol.

If you would like to use SMPP services, please reach out to our Sales team. You can contact them here.

SMPP Outbound

SMPP account details

Host<host>.smpp.api.sinch.com
Port3601 (TLS 1.2 Port)
System-ID<system-id>
Password<password>

Maximum instances (binds): Default 2 per SMPP account. For more connections, contact your account manager.

IP Access

To access the Sinch SMPP server, the client IP range must be announced and added to the client account.

Supported SMPP PDUs

SMPP PDU types
bind_transmitter / bind_transmitter_resp
bind_receiver/ bind_receiver_resp
bind_transceiver / bind_transceiver_resp
enquire_link / enquire_link _resp
unbind / unbind_resp
submit_sm / submit_sm_resp
data_sm / data_sm_resp
deliver_sm / deliver_sm_resp
generic_nack
query_sm / query_sm_resp
cancel_sm / cancel_sm_resp
replace_sm / replace_sm_resp

Source Address

Source AddressArrive on handset
Sent to SinchType Of Number(TON)Number Plan Indicator(NPI)
004612345678890x00Unknown0x01MSISDN046123456789
012345678890x00Unknown0x01MSISDN123456789
4612345678890x01International0x01MSISDN+46123456789
12345678890x02National0x01MSISDN123456789
Sinch0x05Alphanumeric0x00UnknownSinch

The type of source address is defined by the source address TON and NPI parameters.

  • Alphanumeric sender is limited to a maximum length of 11 characters.
  • MSISDN sender maximum length is 18.
  • To enable a handset to respond to a short code, we recommend to use TON=0x00 and NPI=0x01.

Destination address

Destination Address
Sent to SinchType Of Number (TON)Number Plan Indicator (NPI)
461234567890x01 | International0x01MSISDN

MSISDN Format

In GSM, MSISDN is built up as:

MSISDNCC + NDC + SN
CCCountry Code
NDCNational Destination Code
SNSubscriber Number

For further information on the MSISDN format, see the ITU-T specification E.164.

Throughput and throttling

Throughput is the maximum number of MT messages per second that can be sent from the SMPP account to Sinch. The default value is 10 per bind. To increase the value, contact your account manager.

The recommended default window size (maximum open requests) is 10. The throughput can be restricted by the capacity of the operator receiving the MT messages.

It's recommended to set your enquire_link requests to 60 seconds.

Schedule delivery time

In order to schedule a message to be sent in the future, the optional parameter schedule_delivery_time may be added. Messages can be scheduled a maximum of 168 hours, one week, ahead of time. It can be specified in either absolute time format or relative time format. If this parameter is omitted, messages are sent immediately.

For example, the following time formats:

schedule_delivery_timeWould be interpreted as:
100312163200004+An absolute time - March 12 2010 16:32:00 GMT+1h.
000006233429000RA relative period of 6 days, 23 hours, 34 minutes and 29 seconds from the current SMSC time.

Time Zone

Sinch SMSC uses UTC (Coordinated Universal Time)

MCC MNC in delivery reports

MCC + MNC information in SMPP delivery receipts can be included as an optional parameter. This information is passed (configurable per SMPP account whether to enable this) in a vendor-specific TLV (0x1403).

In the value field, you will receive the MCC MNC of the destination operator.

Example:

Optional parameter: 0x1403 (0x1403):

  • Tag: 0x1403
  • Length: 6
  • Value (hex): 32 33 34 33 30 00 (Text: 23430n)

Result is MCC=234 and MNC=30

SMPP Inbound

How To Connect

Find the host and port number used to connect to our inbound service via SMPP in the table below. Username and password will be found in the CAD (Client Account Details) document provided to you by your account manager.

Host<host>.smpp.api.sinch.com
Port3601 (TLS 1.2 Port)
System-ID<system-id>
Password<password>

How To Receive Messages

Encoding

A Data Coding Scheme must be specified when using SMPP. We recommend the data_coding parameter be set to 0 for basic GSM-7 encoding. For better delivery of characters outside of the GSM-7 character default alphabet, we recommend the data_coding parameter be set to 8 for UCS-2 encoding.

Parameters

Inbound messages will be delivered to your platform as a DELIVER_SM. The table below shows which parameters you will receive for each mobile originated SMS sent to your number.

ParameterDescription
command_idWill always be DELIVER_SM
service_typeWill always be 0
source_addr_tonTON for the source address, will be INTERNATIONAL (1) for all mobile originated messages
source_addr_npiNPI for the source address, will be MSISDN (1) for all mobile originated messages
source_addrSource address - the MSISDN the SMS was sent from
dest_addr_tonTON for the destination address, will be INTERNATIONAL (1) Long numbers and NATIONAL (2) for Short code
dest_addr_npiNPI for the destination address, will always be MSISDN (1)
destination_addrDestination address - the MSISDN the SMS was sent to (your Long Number or Short Code)
esm_classWill always be 0
protocol_idWill always be 0
priority_flagWill always be 0
schedule_delivery_timeWill always be 0
validity_periodWill always be 0
registered_deliveryWill always be 0
replace_if_present_flagWill always be 0
data_codingEncoding used. Default is GSM-7 (0), UCS-2 for messages containing characters outside GSM-7 (8)
sm_default_msg_idWill always be 0
sm_lengthShort Message Length - number of characters in message content
short_messageMessage content

Examples

Inbound SMS sent to a Long Number

ParameterExample
command_idDELIVER_SM
service_type0
source_addr_ton1
source_addr_npi1
source_addr46706160585
dest_addr_ton1
dest_addr_npi1
destination_addr46737494630
esm_class0
protocol_id0
priority_flag0
schedule_delivery_time0
validity_period0
registered_delivery0
replace_if_present_flag0
data_coding0
sm_default_msg_id0
sm_length4
short_messageTest

Inbound SMS sent to a Short Code

ParameterExample
command_idDELIVER_SM
service_type0
source_addr_ton1
source_addr_npi1
source_addr46706160585
dest_addr_ton2
dest_addr_npi1
destination_addr71630
esm_class0
protocol_id0
priority_flag0
schedule_delivery_time0
validity_period0
registered_delivery0
replace_if_present_flag0
data_coding0
sm_default_msg_id0
sm_length4
short_messageTest

SMPP connection error codes

All errors on the SMPP connection received in SUBMIT_SM_RESP are described in the SMPP Protocol Specification v3.4 Issue 1.2 chapter 5.1.3 command_status.

Messages states

A message will always be in one of the following states:

Message stateValueDescription
ENROUTE1Message is in the process of being sent to the destination
Delivered2Message has been delivered to destination
EXPIRED3Message validity period has expired
DELETED4Message has been deleted
UNDELIVERABLE5Message is undeliverable
UNKNOWN7Message is in invalid state

The states are described in the SMPP Protocol Specification v3.4 Issue 1.2 chapter 5.2.28 message_state. The message state value is also attached in a SMPP Optional Parameter “message_state” value 0x0427 described in the SMPP Protocol Specification v3.4 Issue 1.2 chapter 5.3.2.35.

Status reports error codes

The error codes are provided in status reports according to the SMPP Protocol Specification v3.4 Issue 1.2 Appendix B. The following are the error codes Sinch networks will be sending:

ErrorError ClassDescriptionCommentTreated as
0NO ERRORNo error / Unknown errorTemporary
1ROUTING ERRORInternal routing errorReport to SinchPermanent
2ROUTING ERRORInternal routing errorReport to SinchPermanent
3ROUTING ERRORInternal routing errorReport to SinchPermanent
4ROUTING ERRORInternal routing errorReport to SinchTemporary
5ROUTING ERRORInternal routing errorReport to SinchPermanent
6ROUTING ERRORInternal routing errorReport to SinchPermanent
7ROUTING ERRORInternal routing errorReport to SinchPermanent
8ROUTING ERRORInternal routing errorReport to SinchPermanent
9ROUTING ERRORUnsupported number planPermanent
10ROUTING ERRORUnsupported type of numberPermanent
11ROUTING ERRORMessage not deliveredPermanent
12ROUTING ERRORDialing zone not foundPermanent
13ROUTING ERRORNot home zone and IMSI not allowedPermanent
14ROUTING ERRORNot home zone and IMSI fetch failedTemporary
15SCREENING ERRORScreening blockPermanent
16SCREENING ERRORTerminating IMSI blockedPermanent
17ROUTING ERRORDestination network type unknownPermanent
18ESME ERRORESME errorTemporary
19SCREENING ERROROriginating location mismatchPermanentPermanent
40INTERNAL ERRORInternal errorReport to SinchTemporary
50INTERNAL ERRORInternal errorReport to SinchTemporary
51INTERNAL ERRORInternal errorReport to SinchTemporary
52INTERNAL ERRORInternal errorReport to SinchTemporary
53INTERNAL ERRORInternal errorReport to SinchPermanent
54INTERNAL ERRORInternal errorReport to SinchPermanent
55INTERNAL ERRORInternal errorReport to SinchPermanent
56INTERNAL ERRORInternal errorReport to SinchTemporary
60SCREENING ERRORError, originator blockedPermanent
61SCREENING ERRORError, destination blockedPermanent
62SCREENING ERRORError, keyword blockedPermanent
63SCREENING ERRORError, SC address blockedPermanent
64SCREENING ERRORError, blocked due to exceeded quotaPermanent
65SCREENING ERRORError, loop detectedPermanent
66SCREENING ERRORError, data coding scheme blockedPermanent
67SCREENING ERRORError, information element identifier blockedPermanent
70ESME ERRORInternal errorReport to SinchTemporary
71ESME ERRORInternal errorReport to SinchTemporary
72ESME ERRORInternal errorReport to SinchPermanent
73ESME ERRORInternal errorReport to SinchTemporary
74ESME ERRORInternal errorReport to SinchTemporary
75ESME ERRORInternal errorReport to SinchTemporary
76ESME ERRORInternal errorReport to SinchTemporary
77ESME ERRORIMSI lookup blockedPermanent
100SMSC ERRORUnidentified SubscriberPermanent
101SMSC ERRORFacility not supportedTemporary
102SMSC ERRORSystem failureTemporary
103SMSC ERRORUnexpected data valuePermanent
104SMSC ERRORData missingPermanent
105SMSC ERROREquipment protocol errorPermanent
106SMSC ERRORUnknown service centre addressTemporary
107SMSC ERRORService centre congestionTemporary
108SMSC ERRORInvalid short message entity addressPermanent
109SMSC ERRORSubscriber not service centre subscriberTemporary
110SMSC ERRORRejectIndicates temporary problem or lost reachPermanent
111SMSC ERRORLocal CancelIndicates temporary problem or lost reachTemporary
112SMSC ERRORAbortIndicates temporary problem or lost reachTemporary
113SMSC ERRORException (internal)Report to SinchPermanent
114SMSC ERRORUnknown errorTemporary
150HLR ERRORUnknown subscriberMessage is rejected because there is no directory number for the mobile subscriberPermanent
151HLR ERRORCall barredMessage is rejected due to barring of the mobile subscriberPermanent
152HLR ERRORTeleservice not provisionedMessage is rejected because the recipient mobile subscriber has no SMS subscriptionPermanent
153HLR ERRORAbsent subscriberTemporary
154HLR ERRORFacility not supportedThe message is rejected due to no provision of the SMS in the VPLMNPermanent
155HLR ERRORSystem failureMessage rejected due to network or protocol failureTemporary
156HLR ERRORUnexpected data valuePermanent
157HLR ERRORData missingPermanent
158HLR ERRORMemory capacity exceededMessage rejected because the mobile subscriber doesn’t have enough memoryTemporary
159HLR ERRORMobile subscriber not reachableTemporary
160HLR ERRORRejectIndicates temporary problem or lost reachPermanent
161HLR ERRORLocal CancelIndicates temporary problem or lost reachTemporary
162HLR ERRORAbortIndicates temporary problem or lost reachTemporary
163HLR ERRORException (internal)Report to Sinch (Local error)Permanent
164HLR ERRORUnknown errorTemporary
200MSC ERRORUnidentified subscriberTemporary
201MSC ERRORAbsent subscriber, IMSI detachedSubscriber is absent and has been for a period of timeTemporary
202MSC ERRORAbsent subscriber, no page responseThe message is rejected because there was no paging responseTemporary
203MSC ERRORSubscriber busy for MT SMSThe message is rejected because of congestion encountered at the visited MSCTemporary
204MSC ERRORFacility not supportedThe message is rejected due to no provision of the SMS in the destination SIMPermanent
205MSC ERRORIllegal subscriberMessage rejected because of failed authenticationPermanent
206MSC ERRORIllegal equipmentMessage rejected because the mobile subscriber was blocklistedPermanent
207MSC ERRORSystem failureMessage rejected due to network or protocol failureTemporary
208MSC ERRORUnexpected data valuePermanent
209MSC ERRORData missingPermanent
210MSC ERRORMemory capacity exceededMessage rejected because the mobile subscriber doesn’t have enough memoryTemporary
211MSC ERROREquipment protocol errorTemporary
212MSC ERROREquipment not short message equippedTemporary
213MSC ERRORRejectIndicates temporary problem or lost reachPermanent
214MSC ERRORLocal CancelIndicates temporary problem or lost reachTemporary
215MSC ERRORAbortIndicates temporary problem or lost reachTemporary
216MSC ERRORException (internal)Report to SinchPermanent
217MSC ERRORUnknown errorTemporary
250SCREENING ERRORError, personal service barring, MO PersonalDetermined Barring White ListPermanent
251SCREENING ERRORError, personal service barring, MO PersonalDetermined Barring Black ListPermanent
252SCREENING ERRORError, personal service barring, MO OperatorDetermined Barring White ListPermanent
253SCREENING ERRORError, personal service barring, MO OperatorDetermined Barring Black ListPermanent
254SCREENING ERRORError, personal service barring, MT PersonalDetermined Barring White ListPermanent
255SCREENING ERRORError, personal service barring, MT PersonalDetermined Barring Black ListPermanent
256SCREENING ERRORError, personal service barring, MT OperatorDetermined Barring White ListPermanent
257SCREENING ERRORError, personal service barring, MT OperatorDetermined Barring Black ListPermanent
300ESME EXTERNAL ERRORInvalid destination addressPermanent
301ESME EXTERNAL ERRORInvalid destination numbering planPermanent
302ESME EXTERNAL ERRORInvalid destination type of numberPermanent
303ESME EXTERNAL ERRORInvalid destination flagPermanent
304ESME EXTERNAL ERRORInvalid number of destinationsPermanent
310ESME EXTERNAL ERRORInvalid source addressPermanent
311ESME EXTERNAL ERRORInvalid source numbering planPermanent
312ESME EXTERNAL ERRORInvalid source type of numberPermanent
320ESME EXTERNAL ERRORESME Receiver permanent errorPermanent
321ESME EXTERNAL ERRORESME Receiver reject errorPermanent
322ESME EXTERNAL ERRORESME Receiver temporary errorTemporary
330ESME EXTERNAL ERRORInvalid command lengthPermanent
331ESME EXTERNAL ERRORInvalid service typePermanent
332ESME EXTERNAL ERRORInvalid operationPermanent
333ESME EXTERNAL ERROROperation not allowedPermanent
334ESME EXTERNAL ERRORInvalid parameterPermanent
335ESME EXTERNAL ERRORParameter not allowedPermanent
336ESME EXTERNAL ERRORInvalid parameter lengthPermanent
337ESME EXTERNAL ERRORInvalid optional parameterPermanent
338ESME EXTERNAL ERROROptional parameter missingPermanent
339ESME EXTERNAL ERRORInvalid validity parameterPermanent
340ESME EXTERNAL ERRORInvalid scheduled delivery parameterPermanent
341ESME EXTERNAL ERRORInvalid distribution listPermanent
342ESME EXTERNAL ERRORInvalid message classPermanent
343ESME EXTERNAL ERRORInvalid message lengthPermanent
344ESME EXTERNAL ERRORInvalid message referencePermanent
345ESME EXTERNAL ERRORInvalid number of messagesPermanent
346ESME EXTERNAL ERRORInvalid predefined messagePermanent
347ESME EXTERNAL ERRORInvalid priorityPermanent
348ESME EXTERNAL ERRORInvalid replace flagPermanent
349ESME EXTERNAL ERRORRequest failedPermanent
350ESME EXTERNAL ERRORInvalid delivery report requestTemporary
360ESME EXTERNAL ERRORMessage queue fullTemporary
361ESME EXTERNAL ERRORExternal errorReport to SinchTemporary
362ESME EXTERNAL ERRORExternal errorReport to SinchTemporary
370ESME EXTERNAL ERRORCannot find informationTemporary
399ESME EXTERNAL ERRORUnknownTemporary

SMPP Encoding

Default SMSC encoding

Data Coding
0x00Default GSM 7 bit encoding
0x01US-ASCII
0x02Binary
0x03ISO8859-1 (Latin-1), only characters within GSM-7 character table can be parsed to handset
0x04Binary
0x08UCS2/UTF-16BE
>0xF0Same as DCS value. See SMPP v3.4 Issue1.2 specification

GSM 7 bit default alphabet and extension table

3GPP TS 23.038 / GSM 03.38

x0x1x2x3x4x5x6x7x8x9xAxBxCxDxExF
0x@£$¥èéùìòÇLFØøCRÅå
1xΔ_ΦΓΛΩΠΨΣΘΞESCÆæßÉ
2xSP!#¤%&()*+,-./
3x0123456789:;<=>?
4x¡ABCDEFGHIJKLMNO
5xPQRSTUVWXYZÄÖÑܧ
6x¿abcdefghijklmno
7xpqrstuvwxyzäöñüà
1B 0xFF
1B 1x^
1B 2x{}\
1B 3x[~]
1B 4x|
1B 5x
1B 6x
1B 7x

ISO/IEC 8859–1 table, Latin-1

ISO/IEC8859-1

x0x1x2x3x4x5x6x7x8x9xAxBxCxDxExF
0x
1x
2xSP!#$%&()*+,-./
3x0123456789:;<=>?
4x@ABCDEFGHIJKLMNO
5xPQRSTUVWXYZ[\]^_
6x`abcdefghijklmno
7xpqrstuvwxyz{{}~
8x
9x
AxNBSP¡¢£¤¥¦§¨©ª«¬SHY®¯
Bx°±²³´µ·¸¹º»¼½¾¿
CxÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏ
DxÐÑÒÓÔÕÖרÙÚÛÜÝÞß
Exàáâãäåæçèéêëìíîï
Fxðñòóôõö÷øùúûüýþÿ

US-ASCII

x0x1x2x3x4x5x6x7x8x9xAxBxCxDxExF
0xLFFFCR
1xESC
2xSP!#$%&()*+,./
3x0123456789:;<=>?
4x@ABCDEFGHIJKLMNO
5xPQRSTUVWXYZ[\]^_
6x`abcdefghijklmno
7xpqrstuvwxyz{|}~