Boomerang REST API Specification.

Transcription

Boomerang REST API Specification.
REST API v1.0 Specification &
Integration Guide
Author
Document Version
Date
Andy Allen
1.0
th
10 February 2014
Legal Notices
The contents of this document are strictly confidential and should not be disclosed to any
third party without the prior written consent of Boomerang. Distribution in any form with
regard to this document will be controlled by Boomerang.
REST_API_v1.0_specification_and_integration_guide_v1.0.docx
17-Feb-14
Page 1 of 46
Contents
1
Context ....................................................................................................................................... 5
1.1
Boomerang – Intelligent SMS ....................................................................................... 5
2
Purpose ...................................................................................................................................... 5
3
Scope .......................................................................................................................................... 6
4
References ................................................................................................................................. 6
5
Definitions .................................................................................................................................. 7
6
Preparing for integration ........................................................................................................... 8
6.1
Connectivity settings..................................................................................................... 8
Proxy servers ................................................................................................................. 8
Email messages sent via method ‘SendEmailMessage’ ................................................ 8
6.2
API Security ................................................................................................................... 8
6.3
Data security ................................................................................................................. 9
6.4
Account settings ........................................................................................................... 9
API Key .......................................................................................................................... 9
Username and Password .............................................................................................. 9
6.5
7
Workflow design ......................................................................................................... 10
Structure of the REST API......................................................................................................... 11
7.1
Overview and REST principles ..................................................................................... 11
7.2
Endpoint ...................................................................................................................... 11
Username and Password authentication.................................................................... 11
Structure of Requests ................................................................................................. 12
7.3
8
Error handling ............................................................................................................. 12
Messaging solutions and communication channels ................................................................ 13
8.1
Overview ..................................................................................................................... 13
8.2
Messaging solutions.................................................................................................... 13
Threaded messaging ................................................................................................... 13
Conversational messaging .......................................................................................... 13
Simple 2-way messaging ............................................................................................. 13
One-way messaging .................................................................................................... 14
Summary of messaging solutions with associated methods ...................................... 15
8.3
Message tickets........................................................................................................... 15
REST_API_v1.0_specification_and_integration_guide_v1.0.docx
17-Feb-14
Page 2 of 46
8.4
Message ticket validity................................................................................................ 15
Overview ..................................................................................................................... 15
Rules associated to message ticket validity ................................................................ 15
Message validity with single and open tickets ........................................................... 16
8.5
Communication channels ........................................................................................... 16
SMS Messaging ........................................................................................................... 17
Voice Messaging ......................................................................................................... 17
8.6
Methods used to process SMS messages ................................................................... 18
Example request ......................................................................................................... 18
Example Response ...................................................................................................... 18
Methods in this section .............................................................................................. 18
SendThreadedMessage............................................................................................... 19
8.7
Methods used to process email messages ................................................................. 22
Methods in this section .............................................................................................. 22
8.8
Methods used to process voice messages.................................................................. 24
Methods in this section .............................................................................................. 24
9
10
Message states for each communication channel .................................................................. 26
9.1
Overview of message delivery states for SMS ............................................................ 26
9.2
Overview of message delivery states for email messages.......................................... 27
9.3
Overview of message delivery states for voice messages .......................................... 27
Methods used to query message data .................................................................................... 28
10.1
Elements of an outbound message object ................................................................. 28
10.2
Methods used to query outbound message data....................................................... 29
Method(s) in this section ............................................................................................ 29
10.3
Methods used to query recipient responses .............................................................. 30
Elements of a response object.................................................................................... 30
Method(s) in this section ............................................................................................ 31
10.4
Retrieving recipient responses via ‘Push’ ................................................................... 32
Push to a URL .............................................................................................................. 32
Push to email .............................................................................................................. 32
11
Specification for fixed inbound services .................................................................................. 33
11.1
Overview ..................................................................................................................... 33
11.2
Summary of inbound identifiers ................................................................................. 33
REST_API_v1.0_specification_and_integration_guide_v1.0.docx
17-Feb-14
Page 3 of 46
11.3
Retrieving message data from inbound identifiers: Push service .............................. 33
Push to a URL .............................................................................................................. 33
Retry process for push service .................................................................................... 34
Push to email .............................................................................................................. 34
11.4
Retrieving data from inbound identifiers: Pull service ............................................... 34
Elements of an inbound object ................................................................................... 34
Methods in this section .............................................................................................. 35
12
11.5
Automated response messages .................................................................................. 35
11.6
Provisioning inbound services .................................................................................... 36
Methods used to update the status of message data ............................................................. 37
12.1
Methods used to mark data as read ........................................................................... 37
Methods in this section .............................................................................................. 37
12.2
Methods used to close message transactions ............................................................ 38
Methods in this section .............................................................................................. 38
13
Methods used to query account status ................................................................................... 39
Methods in this section .............................................................................................. 39
14
Support .................................................................................................................................... 40
15
Appendix 1 – Message characteristics ..................................................................................... 41
15.1
GSM 03.38 Encoding ................................................................................................... 41
15.2
Unicode messages (UTF-16 encoding) ........................................................................ 42
15.3
Concatenated messaging restrictions ......................................................................... 42
16
Appendix 2 – Error codes ......................................................................................................... 43
17
Appendix 3 – List of country codes .......................................................................................... 44
18
Appendix 4 - Summary of API methods ................................................................................... 46
REST_API_v1.0_specification_and_integration_guide_v1.0.docx
17-Feb-14
Page 4 of 46
1 Context
1.1 Boomerang – Intelligent SMS
Boomerang’s patented technology enables any mobile device to be integrated into business
processes. Embedding intelligent communications into workflow empowers organisations to
complete stakeholder transactions automatically, increasing choice and reducing costs.
Boomerang's technology matches outbound messages with their associated inbound
responses, irrespective of the quantity and sequence of the messages and without the need
for complex and error prone identifiers in the body of the message.
Boomerang’s multiplexing logic uses:


A combination of senders ID, recipients ID and message validity period to utilise and
optimise a pool of Boomerang Communication Identifier Values (BCIV): which
coordinates the routing and the subsequent matching of inbound responses to the
outbound message
Performance and cost factors to determine the routing of the outbound message.
Boomerang has a number of service features which enhance and add-value to the default
Boomerang solution in the areas of security, personalisation and localisation.
2 Purpose
This document is intended to assist developers who wish to use the Boomerang HTTPS
REST API to implement one-way, 2-way and/or 2-way threaded communication via SMS,
Email or voice and is particularly aimed at developers who are familiar with the following
technologies:








.NET
HTML
Java
Perl
PHP
ASP
Ruby
Python
REST_API_v1.0_specification_and_integration_guide_v1.0.docx
17-Feb-14
Page 5 of 46
The document is divided into three core sections:



Preparing for integration – This section defines the pre-requisites for a successful
integration.
The API specification – This section describes the various programming methods
and commands available when using the API for each communication channel. This
section is divided into:
o An overview of the message delivery process
o Structure of the REST API
o Messaging solutions and communication channels
o Methods used to process SMS messages
o Methods used to process Email messages
o Methods used to process voice messages
o Methods used to retrieve outbound message data
o Methods used to retrieve response data
o Methods used to retrieve end user initiated inbound message data
o Methods used to update the status of message data
Support – This section describes the process for raising support queries.
3 Scope
This document is intended for technical architects and designers who wish to implement the
Boomerang services on behalf of an organisation using REST. It can be used in conjunction
with any of Boomerang’s available sample projects. Sample projects are available on
request.
Developers preferring to implement services using SOAP should refer to Boomerang’s API
Specification & Integration Guide for SOAP.
4 References
This document is designed to be read in conjunction with the Boomerang Service
Description document. All hyperlinks in this document are in light blue text and underlined.
REST_API_v1.0_specification_and_integration_guide_v1.0.docx
17-Feb-14
Page 6 of 46
5 Definitions
NAME
SHORT DESCRIPTION
API/License Key
Unique service key consisting of 35 characters which is
used to authenticate API requests.
An automated reply by SMS that is triggered by a
message sent into a long (virtual) number which is
automatically returned to the sender of that message.
Boomerang feature which guarantees that SMS are sent
from a number that is local to the recipient.
A registered Boomerang customer utilising the Boomerang
API for message delivery.
The status of an SMS that is generated after Boomerang
has accepted a message for delivery.
The sender Id for an SMS message that is displayed in the
recipient’s handset inbox.
MSISDN that initiates communications to a Fixed Inbound
Number via a mobile originated (MO) message
A long or short number directly associated to a customer’s
service account which is used to receive inbound
communication initiated by an end user or responses to
non-threaded communication which has been initiated
from the inbound number. Where a Fixed Inbound
Number is used as the sender Id for an outbound
message, any responses to such messages are not
tracked back to the original outbound message.
A unique identifier directly associated an inbound number
used to receive inbound communication from a recipient
as defined above.
A number or range of numbers that are used as the
sender Id exclusively by a single customer.
Simple Mail Transfer Protocol. Method by which email
messages are transmitted over the internet
A number automatically selected by Boomerang which is
used as the sender Id for threaded SMS. This number
also fields replies which are tracked back to the original
outbound message.
The period over which a message will remain “live” before
expiring which is determined by the validity period
associated to it.
A Boomerang feature that enables a recipient to return
multiple responses to the same sender Id.
A registered Boomerang partner utilising the Boomerang
API for message delivery.
Unique alpha numeric string consisting of at least 8
characters used to validate an API request that is created
on registration of a Boomerang account.
Auto-reply message
Boomlocal
Customer
Delivery status
Dynamic header
Recipient
Fixed Inbound Number (FIN)
Keyword
Exclusive number(s)
SMTP
System Virtual number (SVN)
Message validity period
Open ticket
Partner
Password
Recipient
Username
MSISDN receiving a mobile terminated (MT) message
from Boomerang
Unique value used to validate an API request that is
created on registration of a Boomerang account.
REST_API_v1.0_specification_and_integration_guide_v1.0.docx
17-Feb-14
Page 7 of 46
6 Preparing for integration
Before using this guide we recommend that you have addressed the following:
6.1 Connectivity settings
Boomerang requires any local firewall policies to allow IP transit over HTTPS (443) or
directly to our API.
Where port 443 is blocked for all outbound traffic, please make an exception for the IP
address 46.20.235.141. Please also ensure that any local firewall ACL’s are updated to
allow outbound HTTPS traffic to the network block and port below:
CIDR: 46.20.235.141
Network: 46.20.235.141
Netmask: 255.255.255.255
Port: 443 HTTPS
Proxy servers
Where the service is implemented via a proxy server please ensure that this is also
configured with the appropriate connectivity settings.
Email messages sent via method ‘SendEmailMessage’
Email messages are sent using the domain @boomerangicomms.com. It is therefore
important to ensure that traffic from this domain is allowed through any spam filters.
6.2 API Security
Boomerang is secured using the industry standard 128 or 256 Bit SSL technologies. The
API is encrypted over HTTPS and will also accept requests originating over HTTP. To
implement an efficient and problem free SSL transit to the Boomerang platform, please
ensure that your local Certification Authority (CA) trusted SSL root store contains the Go
Daddy Class 2 CA.
In the event that your trusted SSL store does not contain Go Daddy Class 2 CA please
contact our technical support team. Details of how to raise support tickets are provided in
the Support section of this document.
REST_API_v1.0_specification_and_integration_guide_v1.0.docx
17-Feb-14
Page 8 of 46
6.3 Data security
Any organisations needing to guarantee the integrity of transactional message data can
request that sensitive elements of the data are made obsolete. Boomerang provides the
ability to purge any or all of the following:



Message content for all outbound messages
The destination address (mobile number, email address etc) for outbound messages
Message content contained in mobile originated messages
The point at which the data is purged can be specified as follows:



Immediately after a message has been processed / received
After the data has been retrieved over the API
After a pre-defined number of days
6.4 Account settings
Before an application or service can send and receive messages, a Boomerang service
account is required.
On creation of the service account, an API key is automatically generated along with a
username and password – these credentials are required for a request to the API to be
successfully authenticated. An email containing this information is sent to the designated
contact name that is provided as part of the account registration process.
API Key
This is a unique service key that is issued to a new account and must be passed in all
requests made to the API. The key is 35 characters e.g. “YWDZ8-H5942-KAX2G-R65C4SFA42-6HGNV” and is case sensitive. Access to the API can be controlled by changing
some of the attributes associated to each key e.g. selecting an expiry date so the key is only
valid for a specific number of days. If the system finds the key invalid, access to the API will
be denied and an exception will be returned.
Username and Password
In addition to the API key, a username and password are required so that Boomerang can
identify the specific account within an organisation attempting to access the API. Where
Boomerang fails to validate the account credentials, the request will be denied. Please also
note that if the system is successful in locating the account and that account is locked or
deleted, the request will also be denied.
The Username and Password are authenticated via an HTTP header (using simple
authentication). The Username and Password are not submitted alongside the other FORM
POST variables.
REST_API_v1.0_specification_and_integration_guide_v1.0.docx
17-Feb-14
Page 9 of 46
To request an account, contact the Boomerang Operations team by either:
Email
Telephone
[email protected]
+44 (0)20 7224 5555
Customer
Active Customer Account &
API key for Boomerang
Boomerang APIs
Customer Firewall Port 443
Permitted to 46.20.235.141
Boomerang SSL Cert
Root CA Certificate Trust
Enabled Go Daddy
Figure 1: Overview of requirement for integration with Boomerang service
6.5 Workflow design
The functionality contained in Boomerang’s API has been developed to facilitate a wide
range of workflow ‘use cases’. The ‘Boomerang Service Description’ provides examples of
some of these use cases. If you have not already received this document it is available on
request by contacting [email protected].
This API specification provides a description of the methods available which can be used
during composition of workflow.
REST_API_v1.0_specification_and_integration_guide_v1.0.docx
17-Feb-14
Page 10 of 46
7 Structure of the REST API
7.1 Overview and REST principles
The Representational State Transfer (REST) architecture describes how clients can make
requests to a server on a set of defined ‘resources’ and get an appropriate response back.
REST uses basic HTTP method verbs to specific resource URLs (uniform resource
identifier):
The use of these verbs describes operations on a resource in the following manner:

GET
o Retrieves a representation of the requested resource (current state)

POST
o Create a new instance of a resource

PUT
o Update an existing instance of a resource

DELETE
o Remove an existing instance of a resource
7.2 Endpoint
All communication via the REST API adheres to the following structure:
https://api.boomerangicomms.com/rest/MethodName
For example, the method ‘SendTextMessage’ would look like this:
https://api.boomerangicomms.com/rest/SendTextMessage
Username and Password authentication
The Username and Password are authenticated via an HTTP header (using simple
authentication). The Username and Password are not submitted alongside the other FORM
POST variables. An example is provided below:
POST /rest/SendThreadedMessage HTTP/1.1
Authorization: Basic YW5keTpwXYNzd29yZA==
Host: api.boomerangicomms.com
Accept: */*
Content-Length: 302
Content-Type: application/x-www-form-urlencoded
REST_API_v1.0_specification_and_integration_guide_v1.0.docx
17-Feb-14
Page 11 of 46
Structure of Requests
The Boomerang API uses the standard HTTP POST method to interact with a set of defined
resources. Submitted requests are sent via HTTP Form POST variables and responses from
the API are UTF-8 encoded XML representations
Below is an example request to the “SendThreadedMessage” function:
licenseKey => 11111-22222-33333-44444-55555-66666
recipientsMobileNo => 447508xxxxxx
campaignName => My Campaign
conversationId => My Conversation
customIdentifier => my ID
textMessage => My text message
autoResponseMessage =>
validityPeriod => 24 hour
isOpenTicket => No
emailResponsesTo =>
source =>
7.3 Error handling
To help a customer identify and resolve runtime errors, when an exception occurs, the API
will return a mnemonic code and a human-readable message. The code and the message
will be different depending on the type of error. The example below shows an ‘Invalid User’
error being returned:
<Error>
<ErrorCode>400</ErrorCode>
<ErrorText>Invalid user</ErrorText>
</Error>
For a full list of error codes and their corresponding messages, please click Here.
REST_API_v1.0_specification_and_integration_guide_v1.0.docx
17-Feb-14
Page 12 of 46
8 Messaging solutions and communication channels
8.1 Overview
The objective of this specification document is to define all of the functions contained in the
REST API and assist the user in selecting the methods which are most appropriate to the
type of service to be implemented. The core outbound messaging solutions and
communication channels (SMS, Email and Voice messaging) are summarised in this section
and covered in greater detail later in the document.
8.2 Messaging solutions
There are a number of ways by which an organisation can interact with its stakeholders,
which is determined by the API method selected for the send. Each messaging solution is
described below:
Threaded messaging
Threaded communication is at the core of Boomerang’s (patented) functionality and uses the
‘SendThreadedMessage’ function. When called, this function automatically selects a
Boomerang System Virtual Number (SVN) as the sender Id for a message; which enables
multiple concurrent outbound messages to be matched with their associated responses,
irrespective of quantity and order. A unique message Id is automatically generated by
Boomerang and is included the initial response ‘handshake’ on receipt of a message
request. Boomerang also allows a bespoke identifier to be used to allow a customer to track
messages when connecting via the API. Each message will be sent using SVN’s owned by
Boomerang and a recipient can respond to each message independently.
Conversational messaging
Boomerang allows a service or application to engage in a ‘conversation’ with a recipient
using the ‘preferredMobileNo’ parameter within the ‘SendThreadedMessage’ function. The
parameter allows the same VN to be passed as the sender Id for all messages within a
particular ‘conversation’. This will ensure that a conversation ‘string’ is maintained in the
recipient’s mobile device (i.e. all messages arrive from the same Boomerang number and
are chronologically displayed as part of the conversation within that number). Where
multiple simultaneous conversations are required to the same recipient, different VNs can be
used to manage each conversation. Where Boomerang identifies a ‘preferred’ number that
is already is ‘active’ (in use with a recipient), the next available sequential number will be
selected.
Simple 2-way messaging
Simple 2-way messaging uses the ‘originatingMobileNo’ parameter of the
‘SendTextMessage’ function; which allows a bespoke number to be passed as the sender Id
for a message. Where a bespoke number external to the Boomerang solution is used,
responses are not stored in the Boomerang platform. Where either a Fixed Inbound Number
or a System Virtual Number (both of which reside in the Boomerang solution) are used as
the message originator, responses are therefore stored in the
REST_API_v1.0_specification_and_integration_guide_v1.0.docx
17-Feb-14
Page 13 of 46
Boomerang solution and can be retrieved via the API or pushed to a URL. However,
responses to messages sent using the ‘originatingMobileNo’ are NOT tracked against the
original outbound message (i.e. these are not threaded messages) and do not have a
validity period associated to them. It is also possible to ‘push’ these responses to a specific
URL or email address.
One-way messaging
When a message is sent using a Dynamic Header as the sender Id, rather than showing a
System Virtual Number, a user configurable alphanumeric code, (e.g. company name) is
displayed in the handset inbox. This communication type requires the parameter
‘dynamicHeader’ to be passed within the method ‘SendTextMessage’. A recipient cannot
respond to a message sent using a Dynamic Header.
Figure 7 details the typical message flow associated with each of the methods for sending
and receiving messages:
Figure 7: Methods of interaction with recipients
*Note regarding these communication types:
When delivering messages into some destinations (most notably the US & Canada),
Boomerang is required to use a local VN as the originator for this message. As such, not all
communication types are available in these destinations.
REST_API_v1.0_specification_and_integration_guide_v1.0.docx
17-Feb-14
Page 14 of 46
Summary of messaging solutions with associated methods
The table below defines the API methods used to achieve each messaging solution offered
by Boomerang:
Messaging solution
One-way messaging (Dynamic header)
SThM
STM
Simple 2-way messaging (Originating No.)
Conversational messaging (Preferred No.)
Threaded messaging
Key to methods in table above:
 SThM = SendThreadedMessage
 STM = SendTextMessage
The parameter required within each method is stated in brackets.
8.3 Message tickets
Boomerang provides the capability to issue two different types of 2-way messaging tickets
when sending threaded messages; they are defined as follows:


Single ticket
o A single ticket / message is automatically closed on receipt of the single
requested response message.
Open ticket
o An open ticket / message is issued to an end user and allows an end user to
return multiple response messages to the same outbound message request.
8.4 Message ticket validity
Overview
All ‘threaded’ messages sent through Boomerang will have a validity period associated to
them. Message validity governs the lifespan of a message ticket, i.e. the message validity is
calculated from the point that Boomerang sends the message and will automatically expire
upon reaching the designated validity period associated to it. Message validity is selected
on purchasing Boomerang services and the subscription selections are as follows:
1 hour, 2 hours, 6 hours, 12 hours, 24 hours, 48 hours, 96 hours, 1 week or 2 weeks.
Rules associated to message ticket validity
When processing message requests please consider the following:

The parameter can be entered using upper or lowercase or a combination of the two.

It is possible to pass a request with any validity value up to the maximum period
associated to the account, providing that the value passed is a whole number.
REST_API_v1.0_specification_and_integration_guide_v1.0.docx
17-Feb-14
Page 15 of 46
For example, an account with a validity period of 24 hours can pass a request with a
validity period ranging between 1 hour and 24 hours.

Where the validity value passed exceeds the maximum associated to the account, the
maximum validity value will be passed with that request.

Boomerang can accept requests in different denominations of time. For example, a
message set to expire in two days could be passed as ‘2 Days’ or ’48 Hours’.

All requests must be passed with a validity period that is greater than one hour.
Message validity with single and open tickets
A single ticket will close on receipt of a response from the recipient or on the expiry of the
validity period – whichever occurs first. Single tickets can be manually closed by the
workflow process before a recipient responds by using the appropriate API function.
An open ticket will close on expiry of the validity period or through a manual close initiated by
the workflow process by using the appropriate API function.
8.5 Communication channels
The API offers omni-channel messaging using SMS, email and voice. The table below
defines the messaging solutions (described in the section above) supported across each
communication channel.
Threaded
Conversational
Simple 2-way
One-way
SMS
Email
Voice
This section describes the process of delivering messages across each communication
channel and focuses on the specific attributes for each.
REST_API_v1.0_specification_and_integration_guide_v1.0.docx
17-Feb-14
Page 16 of 46
SMS Messaging
Boomerang has partnered with multiple tier 1, SMS carriers guaranteeing that our message
service is reliable and efficient. Through the use of multiple upstream partners we can
dynamically route between carriers to optimise the quality of service delivery. Each of these
carriers has multiple routes in place, allowing them to reach almost all network operators
across the globe. There are a number of stages (handshakes) included in the process of
delivering a message. These are illustrated below:
Email Messaging
Boomerang uses Simple Mail Transfer Protocol (SMTP) to transmit email messages over the
internet. The clustered and fault tolerant Boomerang VmWARE cloud provides geographical
redundancy for all inbound SMTP traffic between two split locations, Manchester UK and
London.
Inbound SMTP traffic is routed into the Boomerang platform via a set of clustered DNS
services which in turn route SMTP traffic toward the code Boomerang service layer.
The Boomerang service in turn performs SMTP routing (both inbound & outbound) at its core
cloud layer, thus ensuring full fault tolerance.
In the unlikely event of a network / routing issue upstream, traffic is dynamically re-routed to
our alternative location thus ensuring 100% service availability for both DNS & SMTP
services.
Voice Messaging
Boomerang has partnered with multiple voice carriers to implement a redundant service
supporting delivery of voice messages to both fixed line and mobile telephone numbers.
REST_API_v1.0_specification_and_integration_guide_v1.0.docx
17-Feb-14
Page 17 of 46
8.6 Methods used to process SMS messages
The methods described in this section enable single or batched SMS message requests. A
valid licence key, username and a password must be provided with all requests and all
parameters are case sensitive.
Example request
The example below shows the structure of a request to the ‘SendThreadedMessage’
method:
licenseKey => 11111-22222-33333-44444-55555-66666
recipientsMobileNo => 447508xxxxxx
campaignName => My Campaign
conversationId => My Conversation
customIdentifier => my ID
textMessage => My text message
autoResponseMessage =>
validityPeriod => 5 hour
isOpenTicket => No
emailResponsesTo =>
source =>
Example Response
The response returned after sending a message consists of a single transaction record or a
number of transaction records matching each destination number or address included in the
request. An example is provided below:
<transactions>
<transaction>
<mobileNo>44750813xxxx</mobileNo>
<transactionId>2684</transactionId>
</transaction>
<transaction>
<mobileNo>44750813xxxx</mobileNo>
<transactionId>2685</transactionId>
</transaction>
</transactions>
Methods in this section
POST Operations


SendThreadedMessage
SendTextMessage
REST_API_v1.0_specification_and_integration_guide_v1.0.docx
17-Feb-14
Page 18 of 46
SendThreadedMessage
Threading messages
This is the core function used to ‘thread’ SMS messages. Threading is the process that
matches outbound messages with their responses and uses Virtual Numbers to manage this
process.
If a recipient responds to a single ticket message or the validity period for the message has
elapsed, the same System Virtual Number (SVN) will be re-used for any further messages to
that recipient. If not, a different SVN (usually the next sequential number) will be used. This
ensures that all responses are matched to the specific outbound email message.
For Open Ticket messages, the validity period for a message must have elapsed before a
System Virtual Number number is re-used when sending to the same recipient.
Using a ‘preferred’ system virtual number
This function also offers the ability to specify a preferred virtual number, which is used in
preference to the System Virtual Number that is selected by Boomerang. The purpose of
this method is to ensure that, where required, communication with a recipient originates from
the same SVN (this is especially important where multiple concurrent ‘conversations’ are
taking place with the same recipient). As mobile devices will always display a chronological
record of communications according to the sender Id associated to a message, this
parameter ensures the service or application can maintain continuity by setting the required
SVN. Consequently, a recipient can quickly identify messages relating to a specific
‘conversation’ based on the number from which they were sent.
NB: Where Boomerang identifies that a recipient already has an ‘active’ message
originating from a number that is passed as part of a request, then the next sequential
system virtual number will be used (where available).
On processing a message request Boomerang automatically returns a system generated
message Id (integer). The message Id can then be used at a later date to query the system
for data relating to a message. Where a customer wishes to track messages using an
identifier generated by their own application, a bespoke reference may be passed within the
‘customIdenitifier’ parameter.
Below is a description of each parameter available with this method:
Parameter
Mandatory Description
/ Optional
username
M
password
M
licenseKey
M
Boomerang account username. This is unique for every
account in the system and is a mandatory, case sensitive
field.
Boomerang account password. A password must contain: a
minimum of 8 characters, at least one upper and lower case
character and one digit. This is a case sensitive field.
A unique API key is automatically generated on creation of
every Boomerang account. Consisting of 35 characters, the
API key adheres to the following format: XXXXX-XXXXX-
REST_API_v1.0_specification_and_integration_guide_v1.0.docx
17-Feb-14
Page 19 of 46
preferredMobileNo
O
recipientsMobileNo
M
campaignName
O
customIdentifier
O
text
M
conversationId
O
autoResponseMessage
O
validityPeriod
M
isOpenTicket
O
emailResponsesTo
O
Source
O
XXXXX-XXXXX-XXXXX-XXXXX. This is also a mandatory,
case sensitive field.
A System Virtual Number that is passed by in the request
and used as the sender Id for a message; replacing a SVN
which is automatically selected by Boomerang. Any
response will be returned to the number passed. Please
note that this selection will be overridden where Boomerang
identifies that a recipient already has an active message
originating from the virtual number passed as part of the
request.
The recipient’s mobile phone number which must contain a
minimum of 10 digits and a maximum of 20 digits (excluding
a + where this is used as a pre-fix to the number itself). A
single number or an array of up to 50 numbers can be
passed.
Optional Identifier which can be used to group messages by
specific campaigns.
A value generated by the customer’s application which can
be associated to a single message or to multiple messages.
If this is not required pass null or an empty value.
The content of the message to be sent to the recipient.
Messages over 160 characters in length are received as a
single message although messages will be billed on number
of blocks with 160 characters*. Please refer to Appendix 1
for further information regarding message characteristics
and supported character sets.
A parameter that is used to track a conversation between
your application and the recipient. If this is not required
pass null or an empty value.
Where provided, an auto-response message will
immediately sent to a recipient responding to an original
outbound message. Where not required, pass null or an
empty string.
A mandatory field which determines the message expiry
period. On reaching its expiry the message will be
automatically closed by Boomerang regardless of whether a
response is received from the recipient. The format required
is [NUMBER] [HOURS/DAYS/WEEKS]
A message ticket that is not closed by a recipient’s response
and therefore allows multiple responses to a message. An
open ticket is closed by either the validity expiration or by
using the CloseByMessageId function. This is a mandatory
Boolean function. Set: ‘Yes’, ‘True’ or ‘1’ if required. Leave
blank or set ‘No’ or ‘0’ to submit the message as a single
ticket.
The email address to which a recipient’s response will be
forwarded.
A parameter allowing the customer to enter the originating
application for the message.
Please note that this method should not be used for one-way messaging. Any
messages sent using this function will be charged at Boomerang’s threaded SMS rate.
REST_API_v1.0_specification_and_integration_guide_v1.0.docx
17-Feb-14
Page 20 of 46
SendTextMessage
This operation can be used to carry out one-way (‘dynamicHeader’ parameter) or simple 2way (‘originatingMobileNo’ parameter) communications.
One-Way messaging
The ‘dynamicHeader’ parameter allows a user configurable alphanumeric code, (e.g.
company name) to be used as the sender Id for a message. This value must be a
maximum of 11 characters and should not contain non-standard characters such as spaces
or underscores. A recipient of a Dynamic Header message cannot respond to it (the
recipient’s device will prevent this and display an error message).
Simple 2-way messaging
The ‘originatingMobileNo’ parameter allows a bespoke number to be used as the sender Id
for a message. The originating number may be external to the Boomerang platform (a user’s
own mobile number for example), in which case it will not be possible to retrieve the
response data from Boomerang. Where the number passed is hosted on the Boomerang
platform (e.g. a fixed inbound number) responses will be stored with Boomerang (and can be
retrieved using the ‘GetInboundMessage’ function); but will NOT be tracked against the
original outbound message. As such, there is no validity period associated to messages
sent using this function and the messages are not threaded.
On processing a message request Boomerang automatically returns a system generated
message Id (integer). The message Id can then be used at a later date to query the system
for data relating to a message. Where a customer wishes to track messages using an
identifier generated by their own application, a bespoke reference may be passed within the
‘customIdentifier’ parameter.
Below is a description of each parameter available with this method:
Parameter
Mandatory Description
/ Optional
username
M
password
M
licenseKey
M
dynamicHeader
O
originatingMobileNo
O
campaignName
O
Boomerang account username. This is unique for every account
in the system and is a mandatory, case sensitive field.
Boomerang account password. A password must contain: a
minimum of 8 characters, at least one upper and lower case
character and one digit. This is a case sensitive field.
A unique API key is automatically generated on creation of every
Boomerang account. Consisting of 35 characters, the API key
adheres to the following format: XXXXX-XXXXX-XXXXXXXXXX-XXXXX-XXXXX. This is a case sensitive field.
A user configurable alpha numeric sender Id which must consist
of a maximum of 11 characters. A dynamic header does not
accept spaces. Messages sent with this parameter do not have
a validity period associated to them.
A bespoke number that is used as the sender Id for a message.
Any response will be returned to the number passed but will not
be threaded. Messages sent with this parameter do not have a
validity period associated to them.
Optional Identifier which can be used to group messages by
specific campaigns.
REST_API_v1.0_specification_and_integration_guide_v1.0.docx
17-Feb-14
Page 21 of 46
customIdentifier
O
recipientsMobileNo
M
text
M
source
O
A value generated by the customer’s application which can be
associated to a single message or to multiple messages. If this
is not required pass null or an empty value.
The recipient’s mobile phone number. This must contain a
minimum of 10 digits and a maximum of 20 digits (excluding a +
where this is used as a pre-fix to the number itself)
The content of the message to be sent to the recipient.
Messages over 160 characters in length are received as a single
message although messages will be billed on number of blocks
with 160 characters. Please refer to Appendix 1 for further
information regarding message characteristics and supported
character sets.
A parameter allowing the customer to enter the originating
application for the message.
Please note that this method is not available for:

Customers delivering messages within North America (unless these messages are
using a fixed inbound number which has been provided by Boomerang and is local to
the USA).
8.7 Methods used to process email messages
The methods described in this section enable single or batched email message requests. A
valid licence key, username and a password must be provided with all requests. All
parameters are case sensitive.
Methods in this section

SendEmailMessage
SendEmailMessage
This function can be used to thread email message conversations between an application
and email recipient. Email messages are always sent from an address which is generated
automatically by Boomerang when processing the request. The email address used
adheres to the following structure: <[email protected]> and ensures that
all responses are matched to the relevant outbound email message.
Using the ‘From’ parameter, it is also possible set a ‘sender Id’ value that is displayed in the
inbox of the recipient’s email client. This allows the recipient to ‘sort’ messages in their inbox
based on the sender Id passed in the request.
On processing a message request Boomerang automatically returns a system generated
message Id (integer). The message Id can then be used at a later date to query the system
for data relating to a message. Where a customer wishes to track messages using an
identifier generated by their own application, a bespoke reference may be passed within the
‘customIdentifier’ parameter.
REST_API_v1.0_specification_and_integration_guide_v1.0.docx
17-Feb-14
Page 22 of 46
Below is a description of each parameter available with this method:
Parameter
Mandatory Description
/ Optional
username
M
password
M
licenseKey
M
recipientsEmail
emailFrom
M
O
emailSubject
campaignName
O
customIdentifier
O
text
M
conversationId
O
autoResponseMessage
O
validityPeriod
M
isOpenTicket
O
emailResponsesTo
O
source
O
O
Boomerang account username. This is unique for every
account in the system and is a mandatory, case sensitive field.
Boomerang account password. A password must contain: a
minimum of 8 characters, at least one upper and lower case
character and one digit. This is a case sensitive field.
A unique API key is automatically generated on creation of
every Boomerang account. Consisting of 35 characters, the
API key adheres to the following format: XXXXX-XXXXXXXXXX-XXXXX-XXXXX-XXXXX. This is also a mandatory,
case sensitive field.
The recipient’s email address.
The ‘From’ value displayed in the recipient’s email inbox. Where a
value is not passed, ‘Boomerang’ will be used as the default.
The subject of the email, displayed in the recipient’s email inbox.
Optional Identifier which can be used to group messages by
specific campaigns.
A value generated by the customer’s application which can be
associated to a single message or to multiple messages. If this
is not required pass null or an empty value.
The content of the message to be sent to the recipient. A limit of
2MB applies to the content of the outbound message.
A parameter that is used to track a conversation between your
application and the recipient. If not required pass null or an
empty value.
Where provided, an auto-response message will immediately
sent to a recipient responding to an original outbound
message. Where not required, pass null or an empty string.
A mandatory field which determines the message expiry
period. On reaching its expiry the message will be
automatically closed by Boomerang regardless of whether a
response is received from the recipient. The format required is
[NUMBER] [HOURS/DAYS/WEEKS]
A message ticket that is not closed by a recipient’s response
therefore allowing a recipient to issue multiple responses to a
message. An open ticket is closed by either the validity
expiration or by using the ‘CloseByMessageId’ function. This is
a mandatory Boolean function. Set: ‘Yes’, ‘True’ or ‘1’ if
required. Leave blank or set ‘No’ or ‘0’ to submit the message
as a single ticket.
The email address to which a recipient’s response will be
forwarded.
A parameter allowing the customer to enter the originating
application for the message.
It is important to ensure that there are no restrictions in place which may prevent an email
being successfully delivered to a recipient or the recipient’s ability to respond to it. Before
attempting to send emails from Boomerang, please ensure the domain
@boomerangicomms.com is pre-approved (white listed) against any spam filters that are in
place local to the recipient.
REST_API_v1.0_specification_and_integration_guide_v1.0.docx
17-Feb-14
Page 23 of 46
8.8 Methods used to process voice messages
The methods described in this section enable single or batched voice message requests. A
valid licence key, username and a password must be provided with all requests. All
parameters are case sensitive.
Methods in this section

SendVoiceMessage
SendVoiceMessage
This function can be used to thread voice messages sent from an application to a mobile or
fixed line number. Voice messages are sent from a System Virtual Number (SVN)
automatically selected by Boomerang when processing the request. Where a voice
message is confirmed as ‘delivered’ / ‘acknowledged’ by a recipient or the validity period for
the message has elapsed, the same System Virtual Number will be re-used. If not, a
different System Virtual Number is used for any subsequent messages sent to the same
recipient. This ensures that all responses are matched to the specific outbound voice
message.
On processing a message request Boomerang automatically returns a system generated
message Id (integer). The message Id can then be used at a later date to query the system
for data relating to a message. Where a customer wishes to track messages using an
identifier generated by their own application, a bespoke reference may be passed within the
‘customIdentifier’ parameter.
Below is a description of each parameter available with this method:
Parameter
Mandatory /
Description
Optional
username
M
password
M
licenseKey
M
recipientsMobileNo
M
campaignName
O
customIdentifier
O
Boomerang account username. This is unique for every
account in the system and is a mandatory, case sensitive
field.
Boomerang account password. A password must
contain: a minimum of 8 characters, at least one upper
and lower case character and one digit. This is a case
sensitive field.
A unique API key is automatically generated on creation
of every Boomerang account. Consisting of 35
characters, the API key adheres to the following format:
XXXXX-XXXXX-XXXXX-XXXXX-XXXXX-XXXXX. This is
also a mandatory, case sensitive field.
The recipient’s destination number which must contain a
minimum of 10 digits and a maximum of 20 digits
(excluding a + where this is used as a pre-fix to the
number itself). A single number or an array of up to 50
numbers can be passed.
Optional Identifier which can be used to group messages
by specific campaigns.
A value generated by the customer’s application which
can be associated to a single message or to multiple
messages. If this is not required pass null or an empty
value.
REST_API_v1.0_specification_and_integration_guide_v1.0.docx
17-Feb-14
Page 24 of 46
text
M
conversationId
O
validityPeriod
M
emailResponsesTo
O
Source
O
The content of the message to be sent to the recipient.
Messages over 160 characters in length are received as
a single message although messages will be billed in
segments of 153 characters. Please refer to Appendix 1
for further information regarding message characteristics
and supported character sets.
A parameter that is used to track a conversation between
your application and the recipient. If this is not required
pass null or an empty value.
A mandatory field which determines the message expiry
period. On reaching its expiry the message will be
automatically closed by Boomerang regardless of
whether a response is received from the recipient. The
format required is [NUMBER] [HOURS/DAYS/WEEKS]
The email address to which a recipient’s response will be
forwarded.
A parameter allowing the customer to enter the
originating application for the message.
Recipients of voice messages will receive an option to confirm receipt of a message or
specifically acknowledge having listened to a message. Where no notification is returned,
an automated delivery retry scheme is invoked. This calls the destination number on two
further occasions, at intervals of ten minutes.
REST_API_v1.0_specification_and_integration_guide_v1.0.docx
17-Feb-14
Page 25 of 46
9 Message states for each communication channel
The API provides the ability for outbound message data to be retrieved. This provides
access to all message details including an associated delivery state. The potential status
options for each communication channel are defined in this section.
9.1 Overview of message delivery states for SMS
All outbound messages processed by Boomerang will have an associated delivery state or
status. This is dependent on the information received by Boomerang from the message
carriers and network operators. The status of a message is returned as part of the response
data when calling the ‘GetMessageById function’ (defined in the next section). A summary
of the different message delivery states is provided below:

Delivered: A delivery confirmation has been returned by the recipient’s network
operator denoting that the message is delivered to the device. Boomerang will also
update the status of a message to ‘delivered’, when the recipient responds to a
message.

Sent: The message has been successfully processed by Boomerang but has not yet
been delivered. This could be due to, for example:
o The recipient’s handset is switched off at the time delivery was initially attempted
o The recipient’s handset is not registered on the network the time delivery was
initially attempted.
o The recipient’s network operator was experiencing congestion or coverage issues
at the time delivery was initially attempted.
Where messages are not delivered at the first attempt the network operator will
continue to re-attempt delivery for a period of up to 48 hours. The interval between
which delivery is re-tried, varies according to the reason for non-delivery. For
example, where a recipient is overseas and cannot be reached the retry policy will
differ from that where a recipient that is out of network coverage in the UK.
Please note: Where the recipient’s network operator does not support delivery
notifications, a status of ‘Sent’ may still be associated to a message, even though the
message has been successfully delivered. In this scenario Boomerang is unable to
update the status from ‘Sent’ to ‘Delivered’ as no notification from the network
operator is received.

Failed: The message could not be delivered as the recipient’s handset could not be
reached by the network operator. This could be due to:
o The recipient’s handset inbox is full
o The network operator has blocked the inbound message service.
REST_API_v1.0_specification_and_integration_guide_v1.0.docx
17-Feb-14
Page 26 of 46

Expired: The message could not delivered within the message expiration period
applied by the message carriers / network operators (usually a minimum of 48 hours;
although this varies by destination).

Undeliverable: The message was not processed by Boomerang as the details
provided in the request were invalid or incorrectly formatted.
9.2 Overview of message delivery states for email messages
Boomerang classifies the status of email messages according to the following delivery
‘states’:


Sent: The message has been processed by Boomerang but no further status update
has been received
Delivered: The message has been delivered to the recipient’s inbox (based on
recipient’s reply to the originating message)
9.3 Overview of message delivery states for voice messages

Delivered: The recipient has confirmed receipt of the message via a keystroke entry
prior to listening to the message. On receipt of this keystroke notification,
Boomerang updates the message status to ‘Delivered’.

Acknowledged: The recipient has acknowledged having listened to the message via
a keystroke entry after the message has been played. On receipt of this keystroke
notification, Boomerang updates the message status to ‘Acknowledged’.

Sent: The message has been successfully processed by Boomerang but neither a
delivered or acknowledged notification has been received by Boomerang. Where
messages are not delivered at the first attempt the carrier will continue re-attempt
delivery on two further occasions at intervals of ten minutes.

Failed: The message could not be delivered as the recipient’s device could not be
reached by the carrier.

Expired: The message could not delivered within the message expiration period
applied by the message carriers / network operators (usually a minimum of 48 hours;
although this varies by destination).
REST_API_v1.0_specification_and_integration_guide_v1.0.docx
17-Feb-14
Page 27 of 46
10
Methods used to query message data
An outbound message is a message which is sent from a service or application to initiate the
engagement process with an intended recipient. The methods in this section describe how
the data elements relating to an outbound message can be retrieved.
10.1 Elements of an outbound message object
The data in the table below is returned when querying outbound message data.
Element
Data
Type
Description
<MessageId>
Integer
<CustomIdentifier>
<CampaignName>
String
String
<From>
<Destination>
String
String
The Id of the message generated by Boomerang which is
automatically returned to the requesting application.
Bespoke message identifier provided by the customer.
Optional Identifier which can be used to group messages into
specific campaigns.
Originating / sender Id associated to a message.
<Text>
<ConversationId>
String
String
<ValidityPeriod>
String
<IsOpenTicket>
Boolean
<AutoResponseMessage>
String
<EmailResponsesTo>
String
<Source>
String
<DateCreated>
<Status>
DateTime
String
<Responses>
Collection
The recipient’s destination address (e.g. telephone number
or email address).
The content of the message sent to the recipient.
A parameter that is used to track a conversation between a
service / application and a message recipient.
The lifespan of a message. On reaching the validity period limit
a message will be automatically closed by Boomerang
regardless of whether a response is received from the recipient.
Denotes whether the message was sent with Open Ticket. An
Open Ticket message ticket is not closed by a response. As
such, multiple responses can be returned. An Open Ticket
message is closed when reaching its validity expiration or can
be closed by calling the ‘CloseByMessageId’ function.
Automated response message to be returned to any recipients
that respond to the message.
Email address to which a recipient’s response will be
forwarded.
A parameter allowing the originating application for the
message to be specified.
The date that the object was created.
The delivery state for a message. The following states are
Delivery states are listed Here
A collection of Response objects. Displayed if a response or
responses have been received
Further information regarding the composition of SMS messages along with a
table containing supported character sets is included in Here.
REST_API_v1.0_specification_and_integration_guide_v1.0.docx
17-Feb-14
Page 28 of 46
10.2 Methods used to query outbound message data
The method listed in this section provides the ability to retrieve data relating outbound
messages and will return an XML response.
Method(s) in this section
 GetMessage
GetMessage
This operation will retrieve all of the information associated to a single outbound message,
based on the unique message Id. This message Id is generated and returned back to the
originating application after Boomerang has successfully validated the request. This unique
Id must be provided when retrieving message data and the Id must relate to a message
which was sent no longer than 12 months prior to the date that the request is submitted.
Parameter
Mandatory
/ Optional
Description
username
M
password
M
licenseKey
M
messageId
M
Boomerang account username. This is unique for every account in
the system and is a mandatory, case sensitive field.
Boomerang account password. A password must contain: a
minimum of 8 characters, at least one upper and lower case
character and one digit. This is a case sensitive field.
A unique API key is automatically generated on creation of every
Boomerang account. Consisting of 35 characters, the API key
adheres to the following format: XXXXX-XXXXX-XXXXX-XXXXXXXXXX-XXXXX. This is also a mandatory, case sensitive field.
The id of the message automatically generated by Boomerang and
passed back in the response.
An example response is provided below:
<Message>
<MessageId>2285</MessageId>
<CustomIdentifier>my ID</CustomIdentifier>
<CampaignName>My Campaign</CampaignName>
<From>+44778148xxxx</From>
<MobileNo>+44783666xxxx</MobileNo>
<Text>Test Message</Text>
<ValidityPeriod>1 Hour</ValidityPeriod>
<IsOpenTicket>No</IsOpenTicket>
<EmailReplyTo/>
<Source/>
<DateCreated>2014-01-08T11:51:18</DateCreated>
<Status>Sent</Status>
</Message>
Using the message delivery status
The response returned includes the delivery status of a message (<Status>). On processing
messages Boomerang automatically assigns a status of ‘Sent’ to a message and this status
will remain until Boomerang receives a status update notification from the message carrier.
Based on the notification received Boomerang will update the status to one of the following:
REST_API_v1.0_specification_and_integration_guide_v1.0.docx
17-Feb-14
Page 29 of 46

Acknowledged (Voice only) / Delivered / Failed / Expired / Undeliverable
Please refer to the section ‘Overview of message delivery states’ for a definition of each
delivery status.
As the status of a message is only ever updated once, to understand the final delivery status
of a message we recommend that this method is used until:


A change of status is identified
48 hours have elapsed since the message Id was returned by Boomerang. This is
the standard duration of the network operator retry policy.
10.3 Methods used to query recipient responses
A mobile originated response is a direct reply to a message originating from the Boomerang
service. Boomerang’s ability to process recipient responses is governed by the following:




A response cannot be retrieved if the original message was sent with a dynamic
header or with a custom number
Messages sent with single ticket will close on receipt of the first reply from a
recipient. Any subsequent replies cannot be matched to the original message ticket
If the original message was sent with the ‘Open Ticket’ feature then the recipient will
be able to send multiple replies
If the validity period of the message has expired Boomerang will be unable to match
the recipient’s response with a message ticket.
One core method is used to retrieve response data and this method contains a number of
parameters that allow the user to update status of the response data (by marking it as ‘read’)
and retrieve data according to its status (‘read’ or ‘unread’).
Elements of a response object
Element
Data
Type
<OriginalMessageId>
Integer
<OriginalMessageIdentifier>
String
<ResponseId>
<RecipientsName>
<Recipient>
<OriginatingFrom>
<ResponseText>
<IsNew>
Integer
String
String
String
String
Boolean
<DateSentToRecipient>
DateTime
<DateOfResponse>
DateTime
Description
The message Id for the original outbound message
which is automatically returned by Boomerang.
The custom identifier provided with the original
outbound message.
The unique Id for the recipient’s response.
The recipient’s full name (where provided)*
The destination address for the outbound message
The sender Id associated to the outbound message
The content of the recipient’s response.
Denotes a response that has not been marked as
‘read’.
The date and time that the recipient received the
message.
The date and time that the recipient’s response was
received by Boomerang.
*Adding recipient data is not currently available.
REST_API_v1.0_specification_and_integration_guide_v1.0.docx
17-Feb-14
Page 30 of 46
This example illustrates the structure of an XML response containing a collection of
Response Objects.
<Responses>
<Response>
<OriginalMessageId>2896</OriginalMessageId>
<OriginalMessageIdentifier/>
<ResponseId>517</ResponseId>
<RecipientsName/>
<Recipient>447800******</Recipient>
<OriginatingFrom>447781******</OriginatingFrom>
<ResponseText>My reply to your message</Text>
<IsNew>Y</IsNew>
<DateSentToRecipient>2014-02-13T16:58:00</DateSentToRecipient>
<DateOfResponse>2014-02-13T16:58:54</DateOfResponse>
</Response>
</Responses>
Method(s) in this section
 GetResponses
GetResponses
This operation will retrieve all responses that have previously been marked as ‘read’
covering three months prior to the point at which the request is submitted and all ‘New’
(unread) responses covering two days prior to the point at which the request is submitted.
The function also allows response data to be retrieved according to:



messageId (the originating outbound message Id)
clientId (the custom identifier associated to the outbound message)
responseId (the Id associated to the recipient’s response)
Below is a description of all the parameters required for this method:
Parameter
Mandatory
/ Optional
Description
username
M
password
M
licenseKey
M
new
O
markAsRead
O
messageId
O
Boomerang account username. This is unique for every account in
the system and is a mandatory, case sensitive field.
Boomerang account password. A password must contain: a
minimum of 8 characters, at least one upper and lower case
character and one digit. This is a case sensitive field.
A unique API key is automatically generated on creation of every
Boomerang account. Consisting of 35 characters, the API key
adheres to the following format: XXXXX-XXXXX-XXXXX-XXXXXXXXXX-XXXXX. This is also a mandatory, case sensitive field.
Will only return responses that have not previously been marked as
‘read’. To set this parameter pass ‘Yes’, ‘1’ or ‘True’.
Will mark all retrieved responses as ‘read’. To set this parameter
pass ‘Yes’, ‘1’ or ‘True’.
The messageId associated to the originating outbound message
REST_API_v1.0_specification_and_integration_guide_v1.0.docx
17-Feb-14
Page 31 of 46
clientId
O
responseId
O
against which the response was matched.
The customIdentifier associated to the originating outbound
message against which the response was matched.
The Id for the response which is matched to the originating outbound
message.
10.4 Retrieving recipient responses via ‘Push’
This section describes how a recpient’s response can be accessed from a System Virtual
Number as a ‘push’ notification; where data is automatically pushed to a pre-defined
address.
Push to a URL
Boomerang’s push service will automatically forwarda recpient’s response to a destination
URL. The following data is included in the notification:





Date / time of the response
Content of the response
End user’s mobile number
Outbound message Id
Custom identifier (provided in original request)
The URL is manually configured by Boomerang on receipt of a written request. All written
requests should be submitted to [email protected]
Push to email
Responses can also be forwarded to an email address. This option cannot be set via the
API and as such all requests are directly managed by Boomerang upon receipt of a written
request. All requests should be submitted to [email protected].
REST_API_v1.0_specification_and_integration_guide_v1.0.docx
17-Feb-14
Page 32 of 46
11
Specification for fixed inbound services
11.1 Overview
Boomerang’s fixed inbound services allow an end user to initiate communication with an
organisation via SMS or to respond to non-threaded SMS communications which were
previously initiated by an organisation. Inbound services are configured using either a long
or short inbound number, independently or with a keyword (see table below for a description
of each), which must be assigned to your Boomerang account. This extends the opportunity
to integrate Boomerang into workflow using an inbound SMS message as the trigger.
11.2 Summary of inbound identifiers
A description of each type of inbound number is provided below:
Inbound number type
Description
Exclusive long number
A telephone number used to receive SMS messages normally
comprising of eight digits or more which is assigned to a customer on an
exclusive basis e.g. +447860111222
A telephone number used to receive SMS messages normally
comprising of no more than six digits* which is assigned to a customer
on an exclusive basis e.g.60555. Short numbers operate within national
boundaries.
A short number (as defined above) which is assigned on a nonexclusive basis and must be used with a keyword which acts as a
unique identifier for the organisation using the number.
Exclusive short number
Shared short number
(must be used with a
keyword)
*Short numbers native to Australia may contain up to 8 digits
11.3 Retrieving message data from inbound identifiers: Push
service
This section describes how data can be received from an inbound number using a ‘push’
notification service, where the data is automatically pushed to a pre-defined address.
Push to a URL
Boomerang’s push service will automatically forward inbound messages to a destination
URL. The following data is included in the notification:







Date / time of the inbound message
Content of the response
End user’s mobile number
Inbound number
Keyword (if provided)
Inbound Id
Fixed Inbound Number reference (FIN ref)
This URL along with the (optional) username and password are manually configured by
Boomerang on written request from the customer. All requests should be submitted to
[email protected]
REST_API_v1.0_specification_and_integration_guide_v1.0.docx
17-Feb-14
Page 33 of 46
Retry process for push service
Where Boomerang identifies that an inbound message has not been successfully forwarded
to the URL provided a retry process is invoked.
IMPORTANT: On receipt of data at the specified URL, the application receiving the
push notification must be configured to acknowledge receipt of the data by returning
the value ‘OK’.
In the event that an ‘OK’ value is not returned Boomerang will continue to attempt delivery to
the URL as follows:


3 retries immediately after a failure
5 minute intervals thereafter up to 24 hours
Push to email
Inbound messages can also be forwarded to an email address. This option cannot be set
via the API and as such all requests are directly managed by Boomerang upon receipt of a
written request. All requests should be submitted to [email protected].
11.4 Retrieving data from inbound identifiers: Pull service
This section describes the methods by which message data sent to an inbound identifier can
be retrieved from the Boomerang solution by polling or ‘pulling’ the data. Although
Boomerang would recommend that inbound data is accessed via the one of the ‘Push’
services described above, the methods below describe how to retrieve all inbound message
data from Boomerang.
Elements of an inbound object
Element
Data
Type
Description
<InboundId>
<MobileNumber>
<InboundNumber>
<Text>
<Keyword>
Integer
String
String
String
String
<finRef>
<IsNew>
String
Boolean
<DateofInbound>
DateTime
The unique Id associated to the end user’s message
The end user’s (sender’s) mobile number
The number to which the end user’s message was sent
The content of the end user’s message
The keyword which is used as a unique for the inbound
number (where provided in the end user’s message as
this is optional)
Unique reference associated to the inbound number
Denotes whether the end user’s message has been
previously retrieved and marked as read
The date and time that the end user’s inbound message
was received
REST_API_v1.0_specification_and_integration_guide_v1.0.docx
17-Feb-14
Page 34 of 46
Methods in this section
 GetInbound
GetInbound
This operation retrieves all inbound data for a number (or keyword where specified). It is
mandatory to pass a number in the request whereas keywords are optional. Where the
number alone is passed all inbound data for that number will be retrieved. Where a number
is passed along with a keyword then only the data for that specific keyword will be retrieved.
This function will retrieve all inbound messages that have previously been marked as ‘read’
covering three months prior to the point at which the request is submitted and all ‘New’
(unread) responses covering two days prior to the point at which the request is submitted.
Parameter
Mandatory Description
/ Optional
username
M
password
M
licenseKey
M
inboundNumber
M
Keyword
O
New
O
markAsRead
O
Boomerang account username. This is unique for every account in
the system and is a mandatory, case sensitive field.
Boomerang account password. A password must contain: a
minimum of 8 characters, at least one upper and lower case
character and one digit. This is a case sensitive field.
A unique API key is automatically generated on creation of every
Boomerang account. Consisting of 35 characters, the API key
adheres to the following format: XXXXX-XXXXX-XXXXX-XXXXXXXXXX-XXXXX. This is a case sensitive field.
The inbound number from which inbound message data is
retrieved which is assigned to the Boomerang account.
The keyword from which inbound message data is retrieved which
is assigned to the Boomerang account.
Will only return responses that have not previously been marked as
‘read’. To set this parameter pass ‘Yes’, ‘1’ or ‘True’.
Will mark all retrieved responses as ‘read’. To set this parameter
pass ‘Yes’, ‘1’ or ‘True’.
Please note that this method will not retrieve responses to outbound messages that have
been sent using threading. Responses to threaded messages are retrieved using the
‘GetResponse’ functions defined earlier in this document.
When polling the service for inbound message data, please limit these requests
to intervals of a least one minute.
11.5 Automated response messages
Each type of inbound identifier can be configured with a pre-defined automated response
which is returned to the end user initiating the MO message. The sender Id for this
automated response message is also customisable. Automated response messages are
configured by Boomerang when assigning the number to your account. Change requests
must be submitted by email to Boomerang at [email protected].
REST_API_v1.0_specification_and_integration_guide_v1.0.docx
17-Feb-14
Page 35 of 46
11.6 Provisioning inbound services
To request any of the inbound services described in this section, please contact your
Account Manager or Boomerang sales on +44 (0)20 7224 5555.
REST_API_v1.0_specification_and_integration_guide_v1.0.docx
17-Feb-14
Page 36 of 46
12
Methods used to update the status of message data
The operations in this section enable the status of outbound, inbound and response
messages to be updated.
12.1 Methods used to mark data as read
These operations allow individual recipient responses and end user initiated inbound
messages to be flagged as ‘read’. These functions allow data to be flagged as ‘read’
retrospectively, where the ‘markAsRead’ parameter was not passed when first calling the
GetResponses or GetInbound functions.
Methods in this section
 MarkResponseAsRead
 MarkInboundAsRead
MarkResponseAsRead
Marking a response or responses as ‘read’ allows a user to specify that only new (unread)
data is retrieved when making subsequent requests to the ‘GetResponse’ function.
Below is a description of all the parameters required for this method:
Parameter
Mandatory Description
/ Optional
username
M
password
M
licenseKey
M
responseId
M
Boomerang account username. This is unique for every account in
the system and is a mandatory, case sensitive field.
Boomerang account password. A password must contain: a
minimum of 8 characters, at least one upper and lower case
character and one digit. This is a case sensitive field.
A unique API key is automatically generated on creation of every
Boomerang account. Consisting of 35 characters, the API key
adheres to the following format: XXXXX-XXXXX-XXXXX-XXXXXXXXXX-XXXXX. This is also a mandatory, case sensitive field.
The Id for the response which is matched to the originating outbound
message. This is retrievable using the ‘GetResponses’ function.
MarkInboundAsRead
Marking an inbound message or multiple inbound messages as ‘read’ allows a user to
specify that only new (unread) data is retrieved when making subsequent requests to the
‘GetInbound’ function.
REST_API_v1.0_specification_and_integration_guide_v1.0.docx
17-Feb-14
Page 37 of 46
Below is a description of all the parameters required for this method:
Parameter
Mandatory Description
/ Optional
username
M
password
M
licenseKey
M
inboundId
M
Boomerang account username. This is unique for every account in
the system and is a mandatory, case sensitive field.
Boomerang account password. A password must contain: a
minimum of 8 characters, at least one upper and lower case
character and one digit. This is a case sensitive field.
A unique API key is automatically generated on creation of every
Boomerang account. Consisting of 35 characters, the API key
adheres to the following format: XXXXX-XXXXX-XXXXX-XXXXXXXXXX-XXXXX. This is also a mandatory, case sensitive field.
The inbound Id which is associated to the inbound message. This
is retrievable via the ‘GetInbound’ function.
12.2 Methods used to close message transactions
Where a recipient response is longer required but the message remains active as the validity
expiration period has not been reached, the message can be manually closed. This could
be used where a specific System Virtual Number is required (using the preferredMobileNo
parameter). This section describes how to close active message transactions.
Methods in this section
 CloseTicket
CloseTicket
This operation is used to close a message prior to validity expiration using the message Id
associated to the outbound message, which is automatically generated by Boomerang.
Below is a description of all the parameters required for this method:
Parameter
Description
username
password
licenseKey
messageId
The Boomerang account username. This is unique for every account in the
system and is a mandatory, case sensitive field.
The Boomerang account password. A password must be at least 8 characters
in length and consist of at least one upper and lower case character and at
least one digit. This is a mandatory, case sensitive field.
A unique API key is automatically generated on creation of every Boomerang
account. Consisting of 35 characters, the API key adheres to the following
format: XXXXX-XXXXX-XXXXX-XXXXX-XXXXX-XXXXX. This is also a
mandatory, case sensitive field.
The id of the original outbound message. This can be retrievable via the
‘GetMessage’ function.
REST_API_v1.0_specification_and_integration_guide_v1.0.docx
17-Feb-14
Page 38 of 46
13
Methods used to query account status
For customers using a trial, demo or pre-paid service, this operation allows the available
message credit balance to be queried.
Methods in this section
 NoOfCreditsAvailable
NoOfCreditsAvailable (Pre-paid, trial or demo accounts only)
Boomerang offers two types of customer account:



Trial accounts (provisioned automatically and free messages allocated)
Demo accounts (provisioned by Boomerang and free messages credits allocated)
Pre payment (messages purchased in advance)
Below is a description of all the parameters required for this method:
Parameter
Description
username
password
licenseKey
The Boomerang account username. This is unique for every account in the
system and is a mandatory, case sensitive field.
The Boomerang account password. A password must be at least 8 characters
in length and consist of at least one upper and lower case character and at
least one digit. This is a mandatory, case sensitive field.
A unique API key is automatically generated on creation of every Boomerang
account. Consisting of 35 characters, the API key adheres to the following
format: XXXXX-XXXXX-XXXXX-XXXXX-XXXXX-XXXXX. This is also a
mandatory, case sensitive field.
REST_API_v1.0_specification_and_integration_guide_v1.0.docx
17-Feb-14
Page 39 of 46
14
Support
Service requests regarding service affecting issues are raised and monitored through our
Technical Support case management system. Such requests can be raised directly by the
customer or by the Technical Support Team on:
SUPPORT METHOD
CONTACT DETAILS
Ticket
Email
Telephone
http://ticket.boomcomms.com
[email protected]
+44 (0)20 7224 3333

Customer originated requests: Any customer representative raising a ticket is
required to provide their name, e-mail address and a description of the request along
with the priority level pertaining to nature of the ticket being raised. Confirmation of the
service request, including a unique reference is sent to the e-mail address provided, with
status updates issued as action is undertaken.

Boomerang Support team request: Where service requests are raised verbally to the
Technical Support team, a ticket is raised by the team using the method described above
and confirmed to the nominated e-mail address also containing a unique ticket reference
which is quoted in all future correspondence that relates to the issue
REST_API_v1.0_specification_and_integration_guide_v1.0.docx
17-Feb-14
Page 40 of 46
15
Appendix 1 – Message characteristics
15.1 GSM 03.38 Encoding
Languages using a Latin based alphabet (English, Spanish French etc) normally use GSM
03.38 encoded messaging as the standard configuration. GSM encoding allows up to 160
(7-bit) characters per single message and includes the most common accented forms,
certain special characters, and the Greek alphabet. A complete table of characters is
provided below:
Dec
Hex
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
0
0
@
£
$
¥
è
é
ù
ì
ò
Ç
LF
Ø
ø
CR
Å
å
16
10
Δ
_
Φ
Γ
Λ
Ω
Π
Ψ
Σ
Θ
Ξ
<ESC>
Æ
æ
É
32
20
SP
!
"
#
¤
%
&
'
(
)
*
+
,
.
/
48
30
0
1
2
3
4
5
6
7
8
9
:
;
<
=
>
?
64
40
¡
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
80
50
P
Q
R
S
T
U
V
W
X
Y
Z
Ä
Ö
Ñ
Ü
§
96
60
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
112
70
p
q
r
s
t
u
v
w
x
y
z
ä
ö
ñ
ü
à
NOTE: An escape character always precedes the characters {} \ ~ [ ] | €, which therefore
take two characters to send.
Multi-part or concatenated messages, containing more than 160 characters, are delivered as
a single SMS message. Each concatenated text message is limited to 153 characters rather
than 160 due to the need for user-data header (UDH) information. Mobile phones use UDH
information to enable them to link long messages together so that they appear as single
SMS messages in a recipient’s handset inbox.
An example of this is provided below:
Number of SMS
Number of characters in the linked message
1
2
160 characters
306 characters (2x153)
3
4
459 characters (3x153)
612 characters (4x153)
Etc
153 x Number of individual concatenated SMS messages
REST_API_v1.0_specification_and_integration_guide_v1.0.docx
17-Feb-14
Page 41 of 46
15.2 Unicode messages (UTF-16 encoding)
Unicode messages use 16-bit character encoding rather than the standard GSM 03.38 encoded
characters listed above. This allows non-Latin based alphabets (Chinese, Arabic, Russian,
Mongolian etc) to be carried within the SMS. As the characters are 16-bit encoded (i.e require
more bits per character) a single SMS message is restricted to a maximum of 70 characters.
Multi-part or concatenated messages containing 16-bit encoded characters are delivered as a
single message but will be billed in 67 character segments. See below:
Number of SMS
1
2
3
4
Etc
Number of characters in the linked message
70 characters
134 characters (2x67)
201 characters (3x67)
268 characters (4x67)
67 x Number of individual concatenated SMS messages
15.3 Concatenated messaging restrictions
The quantity of characters allowed in a concatenated message and the successful delivery of it,
is dependent on the recipient’s network operator and the encoding of the characters within the
message. Concatenated messaging is well supported by the UK network operators where it is
possible to send messages containing in excess of 2000 GSM encoded characters. In the USA
however, successful delivery is usually restricted to a maximum of 3 three concatenated
messages (459 GSM encoded characters).
For specific destinations where concatenated messaging is required, please contact Boomerang
for more advice on availability and any restrictions.
REST_API_v1.0_specification_and_integration_guide_v1.0.docx
17-Feb-14
Page 42 of 46
16
Appendix 2 – Error codes
Code
Message content
Message Description
400
‘Empty Message’
400
‘Invalid User’
400
‘Invalid IP’
400
‘Invalid number format’
400
400
‘No Mobile Numbers’
‘Too Many Mobile
Numbers’
No Email Addresses
Too Many Email
Addresses
‘No Telephone
Numbers’
‘Too Many Telephone
Numbers’
‘Not enough credits’
The message cannot be sent as there is no message content
provided with the request. Please ensure that the 'text'
parameter has been completed.
The credentials provided are not valid or the account is not
active
The IP address from which the requests originated is not
accepted by Boomerang
The mobile number provided is not formatted correctly and
contains too few or too many digits (less than 10 or more than
20)
There are no telephone numbers contained in the request
More than 50 telephone numbers were included in the request
400
400
400
400
400
500
501
‘Internal error’
Unsupported HTTP
method
There are no email addreses contained in the request
More than 50 email addresses were included in the request
There are no telephone numbers contained in the request
More than 50 telephone numbers were included in the request
There are insufficient message credits on the account (Trial
and Pre-paid customers only)
An internal within Boomerang occurred
An unsupported HTTP method is being used
REST_API_v1.0_specification_and_integration_guide_v1.0.docx
17-Feb-14
Page 43 of 46
17
Appendix 3 – List of country codes
Name
Afghanistan
Albania
Algeria
Andorra
Angola
Anguilla
Antarctica
Argentina
Armenia
Aruba
Australia
Austria
Azerbaijan
Bahamas
Bahrain
Bangladesh
Barbados
Belarus
Belgium
Belize
Bermuda
Bhutan
Bolivia
Botswana
Brazil
Bulgaria
Burkina Faso
Burundi
Cambodia
Cameroon
Canada
Cayman Islands
Central African Republic
Chad
Chile
Christmas Island
Colombia
Comoros
Cook Islands
Costa Rica
Croatia
Cuba
Cyprus
Czech Republic
Denmark
Djibouti
Dominica
Dominican Republic
Ecuador
Egypt
El Salvador
Equatorial Guinea
Eritrea
Estonia
Ethiopia
Faroe Islands
Finland
France
French Polynesia
Gambia
Georgia
Germany
Ghana
Gibraltar
Greece
Greenland
Grenada
ISO
Code
AFG
ALB
DZA
AND
AGO
AIA
ATA
ARG
ARM
ABW
AUS
AUT
AZE
BHS
BHR
BGD
BRB
BLR
BEL
BLZ
BMU
BTN
BOL
BWA
BRA
BGR
BFA
BDI
KHM
CMR
CAN
CYM
CAF
TCD
CHL
CXR
COL
COM
COK
CRI
HRV
CUB
CYP
CZE
DNK
DJI
DMA
DOM
ECU
EGY
SLV
GNQ
ERI
EST
ETH
FRO
FIN
FRA
PYF
GMB
GEO
DEU
GHA
GIB
GRC
GRL
GRD
Prefix
Name
+93
+355
+213
+376
+244
+1264
+672
+54
+374
+297
+61
+43
+994
+1242
+973
+880
+1246
+375
+32
+501
+1441
+975
+591
+267
+55
+359
+226
+257
+855
+237
+1
+1345
+236
+235
+56
+618
+57
+269
+682
+506
+385
+53
+357
+420
+45
+253
+1767
+1809
+593
+20
+503
+240
+291
+372
+251
+298
+358
+33
+689
+220
+995
+49
+233
+350
+30
+299
+1473
Laos
Latvia
Lebanon
Lesotho
Liberia
Libya
Liechtenstein
Lithuania
Luxembourg
Madagascar
Malawi
Malaysia
Maldives
Malta
Marshall Islands
Martinique
Mauritania
Mauritius
Mexico
Moldova
Monaco
Mongolia
Montserrat
Morocco
Mozambique
Myanmar
Namibia
Nauru
Nepal
Netherlands
Netherlands Antilles
New Caledonia
New Zealand
Nicaragua
Niger
Nigeria
Niue Island
Norway
Pakistan
Palau
Panama
Papua New Guinea
Paraguay
Peru
Philippines
Poland
Portugal
Puerto Rico
Qatar
Romania
Russia
San Marino
Saudi Arabia
Senegal
Sierra Leone
Singapore
Slovakia
Slovenia
Solomon Islands
South Africa
Spain
Sri Lanka
Sudan
Suriname
Swaziland
Sweden
Switzerland
REST_API_v1.0_specification_and_integration_guide_v1.0.docx
17-Feb-14
ISO Code
Prefix
LAO
LVA
LBN
LSO
LBR
LBY
LIE
LTU
LUX
MDG
MWI
MYS
MDV
MLT
MHL
MTQ
MRT
MUS
MEX
MDA
MCO
MNG
MSR
MAR
MOZ
MMR
NAM
NRU
NPL
NLD
ANT
NCL
NZL
NIC
NER
NGA
NIU
NOR
PAK
PLW
PAN
PNG
PRY
PER
PHL
POL
PRT
PRI
QAT
ROU
RUS
SMR
SAU
SEN
SLE
SGP
SVK
SVN
SLB
ZAF
ESP
LKA
SDN
SUR
SWZ
SWE
CHE
+856
+371
+961
+266
+231
+218
+423
+370
+352
+261
+265
+60
+960
+356
+692
+596
+222
+230
+52
+373
+377
+976
+1664
+212
+258
+95
+264
+674
+977
+31
+599
+687
+64
+505
+227
+234
+683
+47
+92
+680
+507
+675
+595
+51
+63
+48
+351
+1787
+974
+40
+7
+378
+966
+221
+232
+65
+421
+386
+677
+27
+34
+94
+249
+597
+268
+46
+41
Page 44 of 46
Guadeloupe
Guam
Guatemala
Guinea
Guyana
Haiti
Honduras
Hong Kong
Hungary
Iceland
India
Indonesia
Iran
Iraq
Ireland
Israel
Italy
Jamaica
Japan
Jordan
Kenya
Kiribati
Kuwait
GLP
GUM
GTM
GIN
GUY
HTI
HND
HKG
HUN
ISL
IND
IDN
IRN
IRQ
IRL
ISR
ITA
JAM
JPN
JOR
KEN
KIR
KWT
+590
+1671
+502
+224
+592
+509
+504
+852
+36
+354
+91
+62
+98
+964
+353
+972
+39
+1876
+81
+962
+254
+686
+965
Syria
Taiwan
Tajikistan
Tanzania
Thailand
Tokelau
Tunisia
Turkey
Turkmenistan
Tuvalu
Uganda
Ukraine
United Kingdom
United States of America
Uruguay
Uzbekistan
Vanuatu
Vatican City
Venezuela
Vietnam
Yemen
Zambia
Zimbabwe
REST_API_v1.0_specification_and_integration_guide_v1.0.docx
17-Feb-14
SYR
TWN
TJK
TZA
THA
TKL
TUN
TUR
TKM
TUV
UGA
UKR
GBR
USA
URY
UZB
VUT
VAC
VEN
VNM
YEM
ZMB
ZWE
+963
+886
+992
+255
+66
+690
+216
+90
+993
+688
+256
+380
+44
+1
+598
+998
+678
+39
+58
+84
+967
+260
+263
Page 45 of 46
18
No.
1
2
3
4
5
6
7
8
9
10
11
Appendix 4 - Summary of API methods
Method
NoOfCreditsAvailable
SendThreadedMessage
SendTextMessage
SendEmailMesage
SendVoiceMesage
GetMessage
GetResponses
GetInbound
MarkResponseAsRead
MarkInboundAsRead
CloseTicket
REST_API_v1.0_specification_and_integration_guide_v1.0.docx
17-Feb-14
Page 46 of 46