The SMS Gateway provides a HTTP and HTTPS interface to enable your
applications to send and receive messages over the Internet. Message
parameters are submitted in HTTP form fields, using either POST or GET method.
Click on the Services below to see details of the required Form fields.
Send SMS Message
You can send SMS messages using the HTTP/S interface. Parameters are specified
in the URL or as POST parameters:
POST https://www.intellisoftware.co.uk/api/https/sendmsg.aspx
accesskey=Yva$ER%Uhs+UU[MzwEYe&secretkey=F{kQ^s`wVpm!EU~Bx8yB^A$N$[l{pxJA
&to=44771012345,44771054321&text=The+Message
For secure SSL connection use https:
Parameters:
accesskey |
This is your AccessKey used to authenticate to you IntelliSoftware account
Click here to create an AccessKey / SecretKey pair
|
secretkey |
This is your SecretKey used to authenticate to you IntelliSoftware account
Click here to create an AccessKey / SecretKey pair
|
to |
This is the destination phone number. A maximum of 100 numbers can be
specified, separated by commas.
|
from= |
(Optional) This is the source/sender's phone number |
text |
The content of the text message |
maxconcat |
(Optional) Maximum number of concatenated SMS messages that will be
sent per recipient (Default is 1)
|
type |
(Optional) 1=Text, 6=Voice-SMS (Default is Text) |
Responses:
ID:10011000000000000001 |
Message has been sent to the gateway. The unique message ID follows 'ID:' |
ERR:LOGIN_INVALID |
AccessKey or SecretKey is invalid |
ERR:AUTH_PARAMETER_MISSING |
Parameter(s) required authenitcation are missing |
ERR:AUTH_PARAMETER_INVALID |
Parameter(s) required authenitcation are invalid |
ERR:CONNECTION_NOT_SECURE |
Connection refused as the connection is not secure |
ERR:INSUFFICIENT_CREDIT |
Insufficient credit balance to fulfil request |
ERR:INVALID_NUMBER |
Unable to route to the destination phone number |
ERR:INVALID_REQUEST |
The request was not valid |
ERR:NO_TO |
The 'to' parameter is missig |
ERR:DAILY_ALLOWANCE_EXCEEDED |
The configured daily allowance on the AccessKey has been exceeded |
ERR:MONTHLY_ALLOWANCE_EXCEEDED |
The configured monthly allowance on the AccessKey has been exceeded |
ERR:INTERNAL_ERROR |
Unable to process request at this time |
ERR:GATEWAY_ERROR |
Unable to process request at this time |
Response Formats:
Single line response is returned when sending to a single recipient or when the
whole submission fails:
ID:10011000000000000001
ERR:INSUFFICIENT_CREDIT
Multiline response is returned when sending to multiple recipients:
44771012345,ID:10011000000000000001
44771012346,ID:10011000000000000001
44771054321,ERR:INVALID_NUMBER
A line is returned per recipient. Each line contains the recipient's number
(international format), followed by comma, followed by the response. The ID
applies to the whole submission and is identical for each recipient.
NOTE: The phone numbers listed in the response may not be identical to the
numbers submitted. This is due to processing done to the numbers, e.g.
international dialling codes added, duplicate numbers removed.
Send Unicode Message
You can send Unicode SMS messages using the HTTP/S interface. The Unicode format
is used to send multilingual messages not support by the standard GSM character
set.
See Unicode
Character Codes for more details.
The example below sends a Unicode message:
POST https://www.intellisoftware.co.uk/api/https/sendmsg.aspx
accesskey=Yva$ER%Uhs+UU[MzwEYe&secretkey=F{kQ^s`wVpm!EU~Bx8yB^A$N$[l{pxJA
&to=44771012345,44771054321&type=2&text=Simley+Emoji+%F0%9F%98%83
For secure SSL connection use https:
Parameters:
accesskey |
This is your AccessKey used to authenticate to you IntelliSoftware account
Click here to create an AccessKey / SecretKey pair
|
secretkey |
This is your SecretKey used to authenticate to you IntelliSoftware account
Click here to create an AccessKey / SecretKey pair
|
to |
This is the destination phone number. A maximum of 100 numbers can be
specified, separated by commas.
|
from= |
(Optional) This is the source/sender's phone number |
type |
Message Type (2 = Unicode)
|
text |
Unicode text |
Responses:
ID:10011000000000000001 |
Message has been sent to the gateway. The unique message ID follows 'ID:' |
ERR:LOGIN_INVALID |
AccessKey or SecretKey is invalid |
ERR:AUTH_PARAMETER_MISSING |
Parameter(s) required authenitcation are missing |
ERR:AUTH_PARAMETER_INVALID |
Parameter(s) required authenitcation are invalid |
ERR:CONNECTION_NOT_SECURE |
Connection refused as the connection is not secure |
ERR:INSUFFICIENT_CREDIT |
Insufficient credit balance to fulfil request |
ERR:INVALID_NUMBER |
Unable to route to the destination phone number |
ERR:INVALID_REQUEST |
The request was not valid |
ERR:NO_TO |
The 'to' parameter is missig |
ERR:DAILY_ALLOWANCE_EXCEEDED |
The configured daily allowance on the AccessKey has been exceeded |
ERR:MONTHLY_ALLOWANCE_EXCEEDED |
The configured monthly allowance on the AccessKey has been exceeded |
ERR:PARAMETER_MISSING |
The mandatory 'hex' parameter is missing |
ERR:PARAMETER_INVALID |
The 'hex' parameter are malformed
|
ERR:INTERNAL_ERROR |
Unable to process request at this time |
ERR:GATEWAY_ERROR |
Unable to process request at this time |
Send Binary Message
You can send a Binary SMS messages using the HTTP/S interface. The
message can optionally include a User Data Header.
The example below sends a SmartMessage Logo:
POST https://www.intellisoftware.co.uk/api/https/sendmsg.aspx
accesskey=Yva$ER%Uhs+UU[MzwEYe&secretkey=F{kQ^s`wVpm!EU~Bx8yB^A$N$[l{pxJA
&to=44771012345,44771054321&type=3&udh=06050415820000
&ud=32F40100480E01000000000000000000000000000000000000000000000000000000000001247803000000E0080120CC0640000040080120CC06C00000479E7124F0EFFADCF64448892479B6DAC6CD4448F9241DB6DACECF44488124CDB6CD96CC44488924CDB6CD96CDE446712478E66D9EC6000000000000000000000000000000000000
For secure SSL connection use https:
Parameters:
accesskey |
This is your AccessKey used to authenticate to you IntelliSoftware account
Click here to create an AccessKey / SecretKey pair
|
secretkey |
This is your SecretKey used to authenticate to you IntelliSoftware account
Click here to create an AccessKey / SecretKey pair
|
to |
This is the destination phone number. A maximum of 100 numbers can be
specified, separated by commas.
|
from= |
(Optional) This is the source/sender's phone number |
type |
Message Type (3 = Binary) |
udh |
(Optional) User Data Header |
ud |
User Data (140 octets max) |
from |
(Optional) This is the source/sender's phone number |
Responses:
ID:10011000000000000001 |
Message has been sent to the gateway. The unique message ID follows 'ID:' |
ERR:LOGIN_INVALID |
AccessKey or SecretKey is invalid |
ERR:AUTH_PARAMETER_MISSING |
Parameter(s) required authenitcation are missing |
ERR:AUTH_PARAMETER_INVALID |
Parameter(s) required authenitcation are invalid |
ERR:CONNECTION_NOT_SECURE |
Connection refused as the connection is not secure |
ERR:INSUFFICIENT_CREDIT |
Insufficient credit balance to fulfil request |
ERR:INVALID_NUMBER |
Unable to route to the destination phone number |
ERR:INVALID_REQUEST |
The request was not valid |
ERR:NO_TO |
The 'to' parameter is missig |
ERR:PARAMETER_MISSING |
The mandatory 'ud' parameter is missing |
ERR:PARAMETER_INVALID |
The 'ud' or 'udh' are malformed |
ERR:DAILY_ALLOWANCE_EXCEEDED |
The configured daily allowance on the AccessKey has been exceeded |
ERR:MONTHLY_ALLOWANCE_EXCEEDED |
The configured monthly allowance on the AccessKey has been exceeded |
ERR:INTERNAL_ERROR |
Unable to process request at this time |
ERR:GATEWAY_ERROR |
Unable to process request at this time |
Get Balance
You can obtain your current balance via the HTTPS interface as
follows:
POST https://www.intellisoftware.co.uk/api/https/getbalance.aspx
accesskey=Yva$ER%Uhs+UU[MzwEYe&secretkey=F{kQ^s`wVpm!EU~Bx8yB^A$N$[l{pxJA
Parameters:
accesskey |
This is your AccessKey used to authenticate to you IntelliSoftware account
Click here to create an AccessKey / SecretKey pair
|
secretkey |
This is your SecretKey used to authenticate to you IntelliSoftware account
Click here to create an AccessKey / SecretKey pair
|
Responses:
BALANCE:100 |
The number of remaining credits follows 'BALANCE:' |
ERR:LOGIN_INVALID |
AccessKey or SecretKey is invalid |
ERR:AUTH_PARAMETER_MISSING |
Parameter(s) required authenitcation are missing |
ERR:AUTH_PARAMETER_INVALID |
Parameter(s) required authenitcation are invalid |
ERR:CONNECTION_NOT_SECURE |
Connection refused as the connection is not secure |
ERR:INTERNAL_ERROR |
Unable to process request at this time |
ERR:GATEWAY_ERROR |
Unable to process request at this time |
Retrieve MMS Message
You can retrieve an MMS Message part via the HTTPS interface as follows:
POST https://www.intellisoftware.co.uk/api/https/retrievemms.aspx
accesskey=Yva$ER%Uhs+UU[MzwEYe&secretkey=F{kQ^s`wVpm!EU~Bx8yB^A$N$[l{pxJA
&msgid=500110000000001&msgpart=cid1.gif
Parameters:
accesskey |
This is your AccessKey used to authenticate to you IntelliSoftware account
Click here to create an AccessKey / SecretKey pair
|
secretkey |
This is your SecretKey used to authenticate to you IntelliSoftware account
Click here to create an AccessKey / SecretKey pair
|
msgid |
Unique message id |
msgpart |
Filename or Index (1 based) of required MMS Message part |
Responses:
ERR:LOGIN_INVALID |
AccessKey or SecretKey is invalid |
ERR:AUTH_PARAMETER_MISSING |
Parameter(s) required authenitcation are missing |
ERR:AUTH_PARAMETER_INVALID |
Parameter(s) required authenitcation are invalid |
ERR:CONNECTION_NOT_SECURE |
Connection refused as the connection is not secure |
ERR:MSGID_INVALID |
Message id does not match a received MMS message |
ERR:NO_MSGID |
The msgid parameter is missing |
ERR:PARAMETER_MISSING |
The msgpart parameter is missing |
ERR:PARAMETER_INVALID |
A parameter is invalid |
ERR:INTERNAL_ERROR |
Unable to process request at this time |
ERR:GATEWAY_ERROR |
Unable to process request at this time |
Update Subscription List
Use this interface to update, remove and add entries to Subscription List. For
more information about Subscription Lists please click here.
POST https://www.intellisoftware.co.uk/api/https/updatesubscriptionlist.aspx
accesskey=Yva$ER%Uhs+UU[MzwEYe&secretkey=F{kQ^s`wVpm!EU~Bx8yB^A$N$[l{pxJA
&sublistname=MySubscriptionListName&msisdn=44771012345&action=1
For secure SSL connection use https:
Parameters:
accesskey |
This is your AccessKey used to authenticate to you IntelliSoftware account
Click here to create an AccessKey / SecretKey pair
|
secretkey |
This is your SecretKey used to authenticate to you IntelliSoftware account
Click here to create an AccessKey / SecretKey pair
|
sublistname |
This is the name of the subscription list |
msisdn |
This is the phone number to be updated |
action |
Action to be performed 1 = Subscribe phone number (Opt-in) 2 = Unsubscribe phone number (Opt-out) 3 = Delete phone number from subscription list |
Responses:
OK |
The request action has been completed |
ERR:LOGIN_INVALID |
AccessKey or SecretKey is invalid |
ERR:AUTH_PARAMETER_MISSING |
Parameter(s) required authenitcation are missing |
ERR:AUTH_PARAMETER_INVALID |
Parameter(s) required authenitcation are invalid |
ERR:CONNECTION_NOT_SECURE |
Connection refused as the connection is not secure |
ERR:PARAMETER_MISSING |
sublistname, msisdn or action parameter is missing |
ERR:PPARAMETER_INVALID |
sublistname or action parameter is invalid |
ERR:INVALID_REQUEST |
The request was not valid |
ERR:INTERNAL_ERROR |
Unable to process request at this time |
ERR:GATEWAY_ERROR |
Unable to process request at this time |
Receive SMS Message
Our server can be configured to forward received SMS messages to you
webserver via a HTTP POST.
To configure HTTP forwarding please login into your account and go to
Preferences and then select the Forwarding tab.
POST Fields:
from |
The mobile number of the message sender. |
text |
The content of the text message |
msgid |
IntelliSoftware's allocated message id |
sent |
Date and time message was sent (in W3CDTF DateTime Format) Examples: 2010-02-03T13:50:05-00:00 = 3rd Feburary 2010 13:50:05 GMT 2010-06-10T14:45:12+01:00 = 10th June 2010 14:45:12 BST |
networkcode |
The sender's home network. This parameter is only available for messages
received on shortcodes. See Network Code table
for values. |
HTTP Response:
Our server expects a HTTP 200 (OK) status. Any content returned by your server
will be ignored.
If anything other than a status 200 is returned then our server will consider
this an error. On an error condition our server will retry to delivery the same
message every 5 minute until the error is resolved.
ASP Example:
<%
From = Request("from")
Text = Request("text")
-- Place code here to use From and Text values
-- e.g. store message to a database
%>
Message Status Report
Our server can be configured to forward message status reports (e.g.
Delivery Reports) to you webserver via a HTTP POST.
To configure HTTP forwarding please login into your account and go to
Preferences and then select the Forwarding tab.
POST Fields:
msgid |
Unique message id (as returned when message was sent) |
status |
The message status:
0 - Unknown
1 - OK
2 - Message Queued
3 - Message Sent
4 - Message Delivered
5 - Error With Request
6 - Unable To Deliver
7 - Routing Error
8 - Message Expired
11 - Acknowledged By Recipient (Voice-SMS Only)
12 - Rejected By Recipient (Voice-SMS Only)
|
toaddr |
Phone Number message was sent to |
HTTP Response:
Our server expects a HTTP 200 (OK) status. Any content returned by your server
will be ignored.
If anything other than a status 200 is returned then our server will consider
this an error. On an error condition our server will retry to delivery the same
status report every 5 minute until the error is resolved.
ASP Example:
<%
MsgId = Request("msgid")
Status = Request("status")
ToAddr = Request("toaddr")
-- Place code here to use MsgId, Status and ToAddr values
-- e.g. store status report to a database
%>
Receive MMS Message
Our server can be configured to forward received MMS messages to you
webserver via a HTTP POST.
To configure HTTP forwarding please login into your account and go to
Preferences and then select the Forwarding tab.
POST Fields:
from |
The mobile number of the message sender. |
text |
The MMS message's Subject field |
msgid |
The message id, this is required to retrieve the MMS message contents |
type |
The message type:
1 - SMS Text message
5 - MMS Message |
filelist |
Comma separated list of component filenames |
HTTP Response:
Our server expects a HTTP 200 (OK) status. Any content returned by your server
will be ignored.
If anything other than a status 200 is returned then our server will consider
this an error. On an error condition our server will retry to delivery the same
message every 5 minute until the error is resolved.
ASP Example:
<%
From = Request("from")
Text = Request("text")
MsgId = Request("msgid")
Type = Request("type")
FileList = Request("filelist")
-- Place code here to use values
-- e.g. store message to a database
%>
Subscription List Event
Our server can be configured to send notifications of changes to Subscription
Lists. For more information about Subscription Lists please click here.
To configure Subscription Lists Event notifications, please login into your account and go to
Preferences and then select the Forwarding tab.
POST Fields:
sublistname |
Subscription list name. |
sublisttype |
Subscription List Type: 1 = Premium Rate Subscription List (ARB) 2 = User Subscription List (Setup in SMSWeb) |
msisdn |
Mobile phone number that has been updated within the Subscription List |
action |
Action that was performed: 1 = Subscribed phone number (Opt-in) 2 = Unsubscribed phone number (Opt-out) 3 = Deleted phone number from subscription list |
source |
The source of the change: 1 = Inbound SMS Message (MO) 2 = Inbound MMS Message (MO) 3 = Outgoing SMS Message (MT) 4 = Outgoing MMS Message (MT)
5 = Web Portal (WebSMS) 6 = Change made by IntelliSoftware Support 7 = Change made via API 8 = Platform Level Event (e.g. STOP to 86688) 9 = Message Delivery Status Report 10 = IntelliSoftware Help Desk (via Phone Call) 11 = IntelliSoftware Help Desk (via Email) 12 = IntelliSoftware Help Desk (via Web Form) |
timestamp |
Date and time change was made (in W3CDTF DateTime Format) Examples: 2010-02-03T13:50:05-00:00 = 3rd Feburary 2010 13:50:05 GMT 2010-06-10T14:45:12+01:00 = 10th June 2010 14:45:12 BST |
HTTP Response:
Our server expects a HTTP 200 (OK) status. Any content returned by your server
will be ignored.
If anything other than a status 200 is returned, then our server will consider
this an error. On receipt of an error our server will retry to deliver the same
message every 5 minutes until the error is resolved.
ASP Example:
<%
SubscriptionListName = Request("sublistname")
PhoneNumber = Request("msisdn")
Action = Request("action")
-- Place code here to use SubscriptionListName, PhoneNumber
-- and Action values
-- e.g. store notification to a database
%>
Network Codes
Here is a list of network codes returned by the IntelliSoftware SMS platform:
234010 |
O2 (UK) |
234015 |
Vodafone (UK) |
234020 |
Three (UK) |
234030 |
T-Mobile (UK) |
234033 |
Orange (UK) |
0 |
Network Unknown |
Advanced Features
Send to Distribution Lists (or Group Send)
Our gateway allows you to send SMS messages to preconfigured Distribution Lists
or Groups. To send to a Distribution List or Group simply insert the Group
Name were you would normally place the recipient's phone number.
Distribution Lists or Groups are setup in your online account login
on the Contacts page.
Reply Tracking:
The IntelliSoftware platform provides tracking of SMS replies, allowing you
to determine which particular message a mobile user is replying to. When
you submit a message to the SMS Gateway you can supply a User Context
parameter. When a reply is received, the IntelliSoftware platform will included
the User Context parameter when forwarding the message to your server.
The User Context can be supplied to the IntelliSoftware platform in the
following ways:
.Net Component |
use SendMsgWithUserContext method |
COM Component |
use SendMessageWithUserContext method |
HTTP Interface |
add 'usercontext' POST/GET parameter |
SMTP Interface (Email to SMS) |
add 'UserContext:' parameter |
PHP SDK |
use SendMessageWithUserContext method |
Java SDK |
use SendMessageWithUserContext method |
The IntelliSoftware platform will forward the User Context for received messages
in the following ways:
HTTP Interface |
'usercontext' POST/GET parameter |
SMTP Interface (SMS to Email) |
User Context appears in Subject line |
Resilient Service:
For resilience, we run a backup gateway at www.intellisoftware2.co.uk
that should be used if the primary gateway fails. You should provide
functionality in your code that will switch to the backup gateway should the
primary gateway fail. This functionality is already incorporated in the
IntelliSMS COM and DotNet Components.