Infobip HTTP API and SMPP Specification
Infobip HTTP API and SMPP Specification
Page 1
Introduction ................................................................................................................ 3
2.2.2
2.2.3
2.2.4
XML ......................................................................................................................................................... 5
Parameters specifications ........................................................................................................................ 6
Return XML ............................................................................................................................................. 8
Examples................................................................................................................................................. 9
2.5
2.6
2.7
2.8
SMPP ......................................................................................................................... 32
3.1 SMPP specification ........................................................................................................................ 32
3.2 Number Context over SMPP specification .................................................................................. 33
3.3 Flash notifications over SMPP specification .............................................................................. 34
Page 2
Page 3
http://api.infobip.com/api/v3/sendsms/xml
http://api2.infobip.com/api/v3/sendsms/xml
Page 4
Request
POST http://api.infobip.com/api/v3/sendsms/xml
Host: api.infobip.com
Content-Type: application/xml
Accept: */*
XML=
<SMS>
<authentication>
<username>account_username</username>
<password>account_password</password>
</authentication>
<message>
<sender>Infobip</sender>
<text>Hello</text>
<flash></flash> 1
<type></type>
<wapurl></wapurl>
<binary></binary>
<datacoding></datacoding>
<esmclass></esmclass>
<srcton></srcton>
<srcnpi></srcnpi>
<destton></destton>
<destnpi></destnpi>
<sendDateTime>4d3h2m1s</sendDateTime>
<ValidityPeriod></ValidityPeriod>
<appid></appid>
<pushurl></pushurl>
<nopush></nopush>
<recipients>
<gsm>38595111111</gsm>
<gsm></gsm>
<gsm></gsm>
<gsm></gsm>
</recipients>
</message>
</SMS>
XML=
<SMS>
<authentication>
<username>account_username</username>
<password>account_password</password>
</authentication>
<message>
<sender>Infobip</sender>
<text>Hello</text>
<flash></flash>1
<type></type>
<wapurl></wapurl>
<binary></binary>
<datacoding></datacoding>
<esmclass></esmclass>
<srcton></srcton>
<srcnpi></srcnpi>
<destton></destton>
<destnpi></destnpi>
<sendDateTime>4d3h2m1s</sendDateTime>
<ValidityPeriod></ValidityPeriod>
<appid></appid>
<pushurl></pushurl>
<nopush></nopush>
<recipients>
<gsm messageId="clientmsgID1">38595111111</gsm>
<gsm messageId="clientmsgID2">38595222222</gsm>
<gsm messageId="clientmsgID3">38595333333</gsm>
<gsm messageId="clientmsgID4">38595444444</gsm>
</recipients>
</message>
</SMS>
<gsm>
messageId
messageId
messageId
messageId
<gsm>
messageId
Page 5
<binary>
<text>
<DataCoding>8</DataCoding>
username
password
sender
text
flash
type
wapurl
binary
datacoding
Esmclass
Srcton
Srcnpi
Destton
Destnpi
Page 6
ValidityPeriod
sendDateTime
appid
pushurl*
nopush*
GSM
GSM messageId=clientmsgID
Pushurl
nopush
pushurl
nopush=0
pushurl
nopush=1
Page 7
Content-Length: 176
Date: Tue, 22 May 2012 12:28:38 GMT
Content-Length: 277
Date: Tue, 22 May 2012 12:28:50 GMT
Page 8
1.a Send
1.b Send
Request
Request
POST http://api.infobip.com/api/v3/sendsms/xml
Host: api.infobip.com
Content-Type: application/xml
Accept: */*
POST
http://api.infobip.com/api/v3/sendsms/xml
Host: api.infobip.com
Content-Type: application/xml
Accept: */*
<SMS>
<authentication>
<username>test</username>
<password>test</password>
</authentication>
<message>
<sender>Infobip</sender>
<text>Hello</text>
<recipients>
<gsm>385951111111</gsm>
</recipients>
</message>
</SMS>
<SMS>
<authentication>
<username>test</username>
<password>test</password>
</authentication>
<message>
<sender>Infobip</sender>
<text>Hello</text>
<recipients>
<gsm>385951111111</gsm>
<gsm>385952222222</gsm>
<gsm>385953333333</gsm>
</recipients>
</message>
</SMS>
Page 9
Reponse
Reponse
Content-Length: 177
Date: Tue, 22 May 2012 12:28:38 GMT
<?xml version="1.0" encoding="UTF-8"?>
<results>
<result>
<status>0</status>
<messageid>092052214113845702</messageid>
<destination>385951111111</destination>
</result>
<result>
Request
Request
POST http://api.infobip.com/api/v3/sendsms/xml
Host: api.infobip.com
Content-Type: application/xml
Accept: */*
POST http://api.infobip.com/api/v3/sendsms/xml
Host: api.infobip.com
Content-Type: application/xml
Accept: */*
<SMS>
<authentication>
<username>test</username>
<password>test</password>
</authentication>
<message>
<sender>Infobip</sender>
<text>LongSMSTestLongSMSTest
LongSMSTestLongSMSTestLongSMSTestLongSMS
TestLongSMSTestLongSMSTestLongSMSTestLon
gSMSTestLongSMSTestLongSMSTestLongSMSTest
LongSMSTestLongSMSTestLongSMSTest</text>
<type>longSMS</type>
<recipients>
<gsm>385951111111</gsm>
</recipients>
</message>
</SMS>
<SMS>
<authentication>
<username>test</username>
<password>test</password>
</authentication>
<message>
<sender>Infobip</sender>
<text>Hello</text>
<sendDateTime>4d3h2m1s</sendDateTime>
<recipients>
<gsm>385951111111</gsm>
</recipients>
</message>
</SMS>
Page 10
Request
Request
POST http://api.infobip.com/api/v3/sendsms/xml
Host: api.infobip.com
Content-Type: application/xml
Accept: */*
POST http://api.infobip.com/api/v3/sendsms/xml
Host: api.infobip.com
Content-Type: application/xml
Accept: */*
<SMS>
<authentication>
<username>test</username>
<password>test</password>
</authentication>
<message>
<sender>Infobip</sender>
<text>Dear mister Juri..</text>
<datacoding>8</datacoding>
<recipients>
<gsm>385951111111</gsm>
</recipients>
</message>
</SMS>
<SMS>
<authentication>
<username>test</username>
<password>test</password>
</authentication>
<message>
<sender>Infobip</sender>
<text>Hello</text>
<datacoding>240</dataCoding>
<recipients>
<gsm>385951111111</gsm>
</recipients>
</message>
</SMS>
Page 11
username
password
sender
text
flash
type
wapurl
binary
datacoding
Esmclass
Srcton
Srcnpi
Destton
Destnpi
ValidityPeriod
Page 12
sendDateTime
appid
drPushUrl*
nopush*
GSM
GSM messageId=clientmsgID
Pushurl
nopush
pushurl
nopush=0
pushurl
nopush=1
Page 13
Reponse
Reponse
Content-Length: 95
Date: Mon, 01 Oct 2012 11:55:02 GMT
{"results": [
{"status":"0","messageid":"
072101113352779063","destination":"385951111111"}
]}
Content-Length: 95
Date: Mon, 01 Oct 2012 11:55:02 GMT
{"results": [
{"status":"0","messageid":" clientmsgID
","destination":"385951111111"}
]}
Page 14
Content-Length: 79
Date: Mon, 01 Oct 2012 11:55:02 GMT
{"results": [
{"status":"-13",
"messageid":"","destination":"000000000000"}
]}
Content-Length: 79
Date: Mon, 01 Oct 2012 11:55:02 GMT
{"results": [
{"status":"- 1",
"messageid":"","destination":"000000000000"}
]
Request
POST http://api.infobip.com/api/v3/sendsms/json
Host: api.infobip.com
Content-Type: application/json
Accept: */*
{
"authentication": {
"username": "test",
"password": "test"
},
"messages": [
{
"sender": "Sender",
"text": "Hello",
"recipients": [
{
"gsm": "385951111111"
}
]
}
]
}
Reponse
Status Code: 200
Content-Type: text/csv;charset= UTF-8
Content-Length: 95
Date: Mon, 01 Oct 2012 11:55:02 GMT
{"results": [
{"status":"0","messageid":"10210011344550330860","destination":"385951111111"}
]}
Page 15
Request
POST http://api.infobip.com/api/v3/sendsms/json
Host: api.infobip.com
Content-Type: application/json
Accept: */*
{
"authentication": {
"username": "test",
"password": "test"
},
"messages": [
{
"sender": "Sender",
"text": "Hello",
"recipients": [
{
"gsm": "385951111111"
},
{
"gsm": "385952222222"
},
{
"gsm": "385953333333"
}
]
}
]
}
Reponse
Page 16
Request
POST http://api.infobip.com/api/v3/sendsms/json
Host: api.infobip.com
Content-Type: application/json
Accept: */*
{
"authentication": {
"username": "test",
"password": "test"
},
"messages": [
{
"sender": "test",
"text": "hello",
"recipients": [
{
"gsm": "385951111111",
"messageId": "clientsmsgID"
}
]
}
]
}
Reponse
Page 17
1. e Send
Scheduled SMS
Request
POST http://api.infobip.com/api/v3/sendsms/json
Host: api.infobip.com
Content-Type: application/json
Accept: */*
{
"authentication": {
"username": "test",
"password": "test"
},
"messages": [
{
"sender": "test",
"text": "hello",
"sendDateTime": "0d0h10m",
"recipients": [
{
"gsm": "385951111111"
}
]
}
]
}
Request
POST http://api.infobip.com/api/v3/sendsms/json
Host: api.infobip.com
Content-Type: application/json
Accept: */*
{
"authentication": {
"username": "test",
"password": "test"
},
"messages": [
{
"sender": "test",
"text": "longtestsmsis very loooooooooooooooooooonglongtestsmsis
very
loooooooooooooooooooonglongtestsmsis very loooooooooooooooooooonglongtestsmsis
very loooooooooooooooooooonglongtestsmsis very loooooooooooooooooooong end",
"type": "longSMS",
"recipients": [
{
"gsm": "385951111111"
}
]
}
]
}
Page 18
1. g Send
Unicode SMS
Request
POST http://api.infobip.com/api/v3/sendsms/json
Host: api.infobip.com
Content-Type: application/json
Accept: */*
{
"authentication": {
"username": "test",
"password": "test"
},
"messages": [
{
"sender": "test",
"text": "",
"datacoding": "8",
"recipients": [
{
"gsm": "385951111111"
}
]
}
]
}
Request
POST http://api.infobip.com/api/v3/sendsms/json
Host: api.infobip.com
Content-Type: application/json
Accept: */*
{
"authentication": {
"username": "test",
"password": "test"
},
"messages": [
{
"sender": "test",
"text": "hello",
"datacoding": "240",
"recipients": [
{
"gsm": "385951111111"
}
]
}
]
}
Page 19
http://api.infobip.com/api/v3/sendsms/plain
http://api2.infobip.com/api/v3/sendsms/plain
http://api.infobip.com/api/v3/sendsms/plain?user=test&password=test&sender=Friend&SMSText=messagetext&GSM=38598111111
http://api.infobip.com/api/v3/sendsms/plain?user=test&password=test&sender=Friend&SMSText=TestinglongSMSTestinglong
SMSTestinglongSMSTestinglongSMSTestinglongSMSTestinglongSMSTestinglongSMSTestinglongSMSTestinglongSMSTestinglongSMS
TestinglongSMSTestinglongSMSTestinglongSMS&GSM=38598111111&type=longSMS
http://api.infobip.com/api/v3/sendsms/plain?user=test&password=test&sender=Friend&SMSText=messagetext&SendDateTime=1d2h5m3
s&GSM=385981111111
esmclass
http://api.infobip.com/api/v3/sendsms/plain?user=test&password=test&sender=Friend&binary=06050400010241424344&GSM=38598111
111&esmclass=64
Binary
SMSText
encoding
DataCoding=8
http://api.infobip.com/api/v3/sendsms/plain?user=test&password=test&sender=Friend&SMSText= &GSM=3859811111&datacoding=8
http://api.infobip.com/api/v3/sendsms/plain?user=test&password=test&sender=Friend&binary=
FEFF01610111010D0107&GSM=38598111111&datacoding=8
Page 20
user
password
sender
SMSText
GSM
IsFlash
Type
Bookmark
DataCoding
Esmclass
Binary
Srcton
Srcnpi
Destton
Destnpi
ValidityPeriod
sendDateTime
encoding
appid
pushurl*
nopush*
Pushurl
nopush
pushurl
nopush=0
pushurl
nopush=1
Page 21
http://api.infobip.com/api/command?username=test&password=test&cmd=X
http://api2.infobip.com/api/command?username=test&password=test&cmd=X
CREDITS
Output
Page 22
NOT_SENT
SENT
NOT_DELIVERED
DELIVERED
NOT_ALLOWED
INVALID_DESTINATION_ADDRESS
INVALID_SOURCE_ADDRESS
ROUTE_NOT_AVAILABLE
NOT_ENOUGH_CREDITS
REJECTED
INVALID_MESSAGE_FORMAT
Page 23
<DeliveryReport>
<message id="msgID" sentdate="xxxxx" donedate="xxxxx" status="xxxxxx" gsmerror="0"/>
.....
</DeliveryReport>
Page 24
http://yourserver.com/collector.php
<?php
// read raw POST data
$postData = file_get_contents("php://input");
// extract XML structure from it using PHPs DOMDocument Document Object Model parser
$dom = new DOMDocument();
$dom->loadXML($postData);
// create new XPath object for quering XML elements (nodes)
$xPath = new domxpath($dom);
// query message element
$reports = $xPath->query("/DeliveryReport/message");
// write out attributes of each message element
foreach ($reports as $node) {
echo <br>id: . $node->getAttribute('id');
echo <br>sent: . $node->getAttribute('sentdate');
echo <br>done: . $node->getAttribute('donedate');
echo <br>status: . $node->getAttribute('status');
echo <br>gsmerrorcode: . $node->getAttribute('gsmerrorcode');
}
?>
http://api.infobip.com/api/v3/dr/pull?user=test&password=test
http://api2.infobip.com/api/v3/dr/pull?user=test&password=test
Page 25
<DeliveryReport>
<message id="1000" sentdate="2010/8/2 14:55:10" donedate="2010/8/2 14:55:16" status="DELIVERED"
gsmerror="0" />
<message id="1002" sentdate="2010/8/2 14:55:10" donedate="2010/8/2 14:55:16" status="DELIVERED"
gsmerror="0" />
<DeliveryReport>
<message id="1023012301" sentdate="2005/7/19 22:0:0" donedate="2005/7/19 22:0:0" status="NOT_SENT"
gsmerror="0" />
</DeliveryReport>
http://api.infobip.com/api/hlr/
http://api2.infobip.com/api/hlr/
http://api.infobip.com/api/hlr/?user=test&pass=test&destinations=3859811111111
Page 26
OK
FAILED
OK
OK
FAILED
messageId
OK
FAILED
messageId
OK
123456;OK;121c0a6b752-1-92
23423423232;OK;121c0a6b752-1-93
23'0498239048230;FAILED;
2343223;OK;121c0a6b752-1-94 sdfsd;FAILED;
23422342342;OK;121c0a6b752-1-95
234234;OK;121c0a6b752-1-96
dlr={"destination":"3859811111111","id":"13a54ca0ece-fc84bed","stat":"UNDELIV","IMSI":"","MSC":"","err":"1153","mccmnc":"21901","ppm":"100","onp":"98","ocp":"3
85","is_ported":"false","rnp":"","rcp":"","is_roaming":"false","pnp":"","pcp":""}
dlr={"destination":"385997046253","id":"13a54cf9484-fc841237","stat":"DELIVRD","IMSI":"219019900073678","MSC":"3859804","err":"0","mccmnc":"21901","ppm":"100"
,"onp":"99","ocp":"385","is_ported":"false","rnp":"98","rcp":"385","is_roaming":"false","pnp":"97","pc
p":"385"}
Page 27
http://api.infobip.com/api/hlr/sync
http://api2.infobip.com/api/hlr/sync
http://api.infobip.com/api/hlr/sync?user=test&pass=test&destination=38599111111&output=json
xml
json
Page 28
DELIVRD
UNDELIV
UNKNOWN
REJECTD
Request:
http://api.infobip.com/api/hlr/sync?user=test&pass=test&destination=38598xxxx&output=json
Output:
{"destination":"385997046253","id":"13a54e79b51-fc841724","stat":"DELIVRD","IMSI":"219019900211811","MSC":"3859804","err":"0","mccmnc":"21901","ppm":"100","o
np":"99","ocp":"385","is_ported":"false","rnp":"98","rcp":"385","is_roaming":"false","pnp":"97","pcp":"38
5"}
Request:
http://api.infobip.com/api/hlr/sync?user=test&pass=test&destination=38598xxxx&output=xml
Output:
<?xml version="1.0" encoding="utf-8"?>
<hlr>
<destination>38598xxxxxxx</destination>
<id>12a1d3981ac-1-1e</id>
<stat>DELIVRD</stat>
<IMSI>219011000020098</IMSI>
<MSC>38598040004</MSC>
<err>0</err>
<hlr>3859812007</hlr>
<orn>T-Mobile HR</orn>
<pon>T-Mobile HR</pon>
<ron>T-Mobile HR</ron>
<roc>HR</roc>
<mccmnc>21901</mccmnc>
<rcn>Croatia</rcn>
<ppm>100</ppm>
<onp>98</onp>
<ocn>Croatia</ocn>
<occ>HR</occ>
<ocp>385</ocp>
<is_ported>false</is_ported>
<rnp>98</rnp>
<rcp>385</rcp>
<num_ok>true</num_ok>
</hlr>
Page 29
PARAMETER
DESCRIPTION
xml
json
Page 30
http://some.server.com/incoming_sms.php?who=%sender%&what=%text%&output=xml
http://some.server.com/incoming_sms.php?who=38598123123&what=ABC
http://some.server.com/incoming_sms.php?who=%sender%&what=%bin%
http://some.server.com/incoming_sms.php?who=38598123123&what=414243
http://api.infobip.com/api/v2/command/inbox?user=test&password=test&limit=1&output=json
http://api2.infobip.com/api/v2/command/inbox?user=test&password=test&limit=1&output=json
NAME
DESCRIPTION
Page 31
NAME
DESCRIPTION
smpp3.infobip.com
smpp1.infobip.com
Page 32
Name
Type
Hex
Decimal
Page 33
SMPP_VENDOR_SPECIFIC_IMSI = 0x1403
addr: 0 0 38591xxxxxxx
addr: 0 0 0000000000
msg: id:40072910491427628 sub:001 dlvrd:001 submit date:1007291049 done date:1007291049 stat:DELIVRD
err:000 IMSI:219101100935850 MSC:38591016 HLR:38591xxxxxxx ORN:VipNet PON:VipNet RON:VipNet ROC:HR
MCCMNC:21910
opt: (oct: (tlv: 1059) 030000) (byte: (tlv: 1063) 2) (str: (tlv: 30) 40072910491427628) (str: (tlv:
5129) 38591xxxxxxx) (str: (tlv: 5138) VipNet) (str: (tlv: 5139) VipNet) (str: (tlv: 5140) VipNet)
(str: (tlv: 5141) Croatia ) (str: (tlv: 5143) HR) (str: (tlv: 5142) 21910) (int: (tlv: 5144) 1) (str:
(tlv: 5145) 91) (str: (tlv: 5152) 385) (int: (tlv: 5153) 1) (str: (tlv: 5154) Croatia ) (str: (tlv:
5155) HR) (str: (tlv: 5156) 385) (int: (tlv: 5157) 1) ) (extraopt: (oct: (tlv: 5123)
323139313031313030393335383530) (oct: (tlv: 5126) 3338353931303136) )
addr: 0 0 385915369423
addr: 0 0 0000000000
msg: id:40072910491419819 sub:001 dlvrd:001 submit date:1007291049 done date:1007291049 stat:UNDELIV
err:001 IMSI: MSC: ORN:VipNet MCCMNC:
opt: (oct: (tlv: 1059) 030001) (byte: (tlv: 1063) 5) (str: (tlv: 30) 40072910491419819) (str: (tlv:
5138) VipNet) (str: (tlv: 5142) ) (int: (tlv: 5144) 1) (int: (tlv: 5153) 0) (str: (tlv: 5154) Croatia
) (str: (tlv: 5155) HR) (str: (tlv: 5156) 385) (int: (tlv: 5157) 1) )
Page 34
Page 35
VALUE (HEX/DEC)
DESCRIPTION
Page 36
PARAMETER NAME
HTTP
SMPP TLV
CampaignId
CampaignId
0x1456
TYPE
SMS on Wikipedia
Page 37