Sep 25, 2015 - Email messages sent via the method 'SendEmailMessage' . ..... Delivering voice messages to numbers linked
SOAP API Specification & Integration Guide Boomerang r2.3.3 Author Document Version Date
Andy Allen 1.1 th 25 September 2015
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.
Contents 1 1 2 3 4 5
Context ...................................................................................................................................... 5 1.1 Boomerang – Intelligent Messaging ............................................................................. 5 Purpose ..................................................................................................................................... 5 Scope ......................................................................................................................................... 6 References ................................................................................................................................. 6 Definitions ................................................................................................................................. 6 Preparing for integration ........................................................................................................... 8 5.1 Connectivity settings .................................................................................................... 8 Proxy servers ................................................................................................................ 8 Email messages sent via the method ‘SendEmailMessage’ ......................................... 8 5.2
Account settings ........................................................................................................... 8
5.3
API Security .................................................................................................................. 8 API Key .......................................................................................................................... 9 Username and Password .............................................................................................. 9 Restrict access by IP address ........................................................................................ 9
5.4
Data security ................................................................................................................ 9
5.5
Messaging configuration settings ................................................................................. 9 SMS Messaging – Number management ................................................................... 10 Voice Messaging ......................................................................................................... 10
5.6 6
Workflow design ........................................................................................................ 11
Structure of the SOAP API ....................................................................................................... 12 6.1 Endpoints & service URL ............................................................................................ 12 6.2
Structure of Each Request .......................................................................................... 12 Example SOAP 1.1 Request ........................................................................................ 12 Example SOAP 1.2 Request ........................................................................................ 13
6.3 7
Error Handling ............................................................................................................ 13
Messaging solutions and communication channels ................................................................ 14 7.1 Overview of communication channels ....................................................................... 14 SMS Messaging ........................................................................................................... 14 Email Messaging ......................................................................................................... 14 Voice Messaging ......................................................................................................... 14 7.2
Messaging solutions ................................................................................................... 15 Intelligent 2-‐way messaging (SMS and Email) ............................................................ 15
SOAP_API_Specification_and_Integration_Guide_BMr233_v1.1.docx
Page 2 of 55
Conversational / Chat messaging (SMS) ..................................................................... 15 Standard 2-‐way SMS messaging (SMS) ...................................................................... 15 1-‐way messaging (SMS) .............................................................................................. 15 Summary of messaging solutions with associated methods ...................................... 16 7.3
Message tickets .......................................................................................................... 16
7.4
Message ticket validity ............................................................................................... 17 Overview .................................................................................................................... 17 Rules associated to message ticket validity ............................................................... 17 Message validity with single and open tickets ........................................................... 17
8
API Functions used to send messages ..................................................................................... 18 8.1 Overview .................................................................................................................... 18 8.2
Elements of an outbound Message Object ................................................................ 18
8.3
Methods used to process SMS messages ................................................................... 19 Example Response ...................................................................................................... 19 Methods in this section .............................................................................................. 19 Destination specific requirements when sending SMS messages .............................. 23
8.4
Methods used to process Email messages ................................................................. 24 Methods in this section .............................................................................................. 24
8.5
Methods used to send voice messages ...................................................................... 25 Configuration options for voice messages ................................................................. 25 Response options for voice messages ........................................................................ 26 Delivering voice messages to numbers linked to automated systems ....................... 26 Methods in this section .............................................................................................. 26
9
Status notifications for each messaging channel .................................................................... 28 9.1 Overview of status notifications for SMS ................................................................... 28 9.2
Overview of status notifications for email messages ................................................. 29
9.3
Overview of status notifications for voice messages ................................................. 29 Retrying delivery of voice messages .......................................................................... 29
9.4 10
Push notifications for delivery status updates ........................................................... 29
Methods used to query message data .................................................................................... 31 10.1 Elements of an outbound Message Object ................................................................ 31 10.2
Methods used to query outbound message data ...................................................... 31 GET Operations .......................................................................................................... 32
10.3
methods used to query Recipient responses ............................................................. 33
SOAP_API_Specification_and_Integration_Guide_BMr233_v1.1.docx
Page 3 of 55
Elements of a response object ................................................................................... 33 Example SOAP Response ............................................................................................ 34 Get New Responses .................................................................................................... 34 Get All Responses (including previously marked as ‘read’) ........................................ 36 10.4
Retrieving responses via ‘Push’ .................................................................................. 38 Push to a URL ............................................................................................................. 38 Methods is this section .............................................................................................. 38 Push to email .............................................................................................................. 40
11
Fixed inbound communications .............................................................................................. 41 11.1 Overview .................................................................................................................... 41 11.2
Summary of inbound communication addresses ....................................................... 41
11.3
Methods used to retrieve mobile originated messages ............................................. 41 Elements of an inbound object .................................................................................. 41 Methods in this section .............................................................................................. 42
11.4
Retrieving mobile originated messages by ‘Push’ ...................................................... 43 Push to a URL ............................................................................................................. 43 Retry process for push service ................................................................................... 44 Push to email address ................................................................................................ 44
12
11.5
Automated response messages ................................................................................. 44
11.6
Provisioning inbound services .................................................................................... 44
Methods used to update message transactions ..................................................................... 45 12.1 Methods used to mark data as read .......................................................................... 45 Methods in this section .............................................................................................. 45 12.2
Methods used to close message transactions ............................................................ 46 Methods in this section .............................................................................................. 46
13
Methods used to query service account settings .................................................................... 47 Methods in this section .............................................................................................. 47
14 15
Support .................................................................................................................................... 48 Appendix 1 – SMS messaging technologies and character encoding ...................................... 49 15.1 GSM 03.38 Encoding .................................................................................................. 49
16 17 18
15.2
Unicode messages (UTF-‐16 encoding) ....................................................................... 50
15.3
Concatenated messaging restrictions ........................................................................ 50
Appendix 2 – Error codes ........................................................................................................ 51 Appendix 3 – List of country codes ......................................................................................... 53 Appendix 4 -‐ Summary of API methods ................................................................................... 55
SOAP_API_Specification_and_Integration_Guide_BMr233_v1.1.docx
Page 4 of 55
1 Context 1.1 Boomerang – Intelligent Messaging Boomerang is a unique patented service that enables any mobile device to be integrated into automated business processes globally, using Intelligent 2-way communications. 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.
1 Purpose This document is intended to assist developers who wish to use the Boomerang HTTPS SOAP API to implement one-way, two-way and/or Intelligent 2-way 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
The document is divided into three core sections: • Preparing for integration – This section defines the pre-requisites for a successful integration • Structure of the SOAP API • An introduction to the available messaging solutions • The various programming methods and commands available when using the API for to send messages across each communication channel (SMS, email and voice) • The various programming methods and commands available when using the API for to retrieve outbound message data and response data • Using Boomerang to manage end user initiated communications
SOAP_API_Specification_and_Integration_Guide_BMr233_v1.1.docx
Page 5 of 55
• The various programming methods and commands available when using the API to update active message transactions and account settings • Support – This section describes the process for raising support queries.
2 Scope This document is intended for technical architects and designers who are implementing the Boomerang services on behalf of an organisation and 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 RESTful methodology should refer to the document ‘RESTful API Specification & Integration Guide BR211’.
3 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.
4 Definitions NAME API/License Key Auto-reply message Boomlocal Customer Delivery status Dynamic header Recipient
Fixed Inbound Number (FIN)
Keyword Exclusive number(s) SMTP System Virtual number (SVN)
SHORT DESCRIPTION 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 guaranteeing that SMS are sent from a number that is local to the Recipient's destination. 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 originating 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 account used to receive inbound communication initiated by a Recipient or responses to 2-way broadcast communication, which has been initiated from the inbound number. Where a Fixed Inbound Number is used as an originating 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 an originating 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 an originating ID for Intelligent 2-way SMS. This number also
SOAP_API_Specification_and_Integration_Guide_BMr233_v1.1.docx
Page 6 of 55
Message validity period Open ticket Partner Password Recipient Threading Username
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 originating Id. A registered Boomerang partner utilising the Boomerang API for message delivery. Unique alphanumeric string consisting of at least 8 characters used to validate an API request that is created on registration of a Boomerang account. MSISDN receiving a mobile terminated (MT) message from Boomerang The process of matching responses to originating outbound messages, regardless of quantity or sequence used within Intelligent 2-way messaging Unique value used to validate an API request that is created on registration of a Boomerang account.
SOAP_API_Specification_and_Integration_Guide_BMr233_v1.1.docx
Page 7 of 55
5 Preparing for integration Before using this guide we recommend that you have addressed the following:
5.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 the method ‘SendEmailMessage’ Email messages are sent using the domain @api.boomerangicomms.com. It is therefore important to ensure that traffic from this domain is permitted access into the local environment.
5.2 Account settings Before an application or service can send and receive messages, a Boomerang service account is required. On creation of the service account, the API key is automatically generated along with a username and password (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.
5.3 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.
SOAP_API_Specification_and_Integration_Guide_BMr233_v1.1.docx
Page 8 of 55
Requests submitted to the API are subject to the following authentication requirements: 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-R65C4- SFA42-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. A service account username and password are passed as mandatory parameters within each API function. Restrict access by IP address All requests can be authenticated according to an IP address. Where an IP address is provided, Boomerang will only process requests from specific IP address. All requests to apply this security feature should be submitted to
[email protected].
5.4 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 configure any or all of the options below: • Null digits: An optional feature used to overwrite the digits in a Recipient's mobile number, ensuring that the number is not accessible anywhere in Boomerang’s systems. It is possible to choose to leave the first three, last three or both the first and last three digits in the number visible, to assist with issue de-bugging. • Null content: An optional feature used to overwrite the content of an outbound message and any associated response(s);; ensuring it is not accessible anywhere in Boomerang’s systems. • Null period: A feature used to set the period after which the Null Digits and Null content features are applied to message transactions. This may be set to overwrite immediately after processing or after a pre-defined number of days.
5.5 Messaging configuration settings Boomerang provides several messaging configuration options relating to the available messaging channels. These are described below: The following configuration options apply to all communication channels unless highlighted:
SOAP_API_Specification_and_Integration_Guide_BMr233_v1.1.docx
Page 9 of 55
• Replace non-GSM encoded characters: An optional feature that is used to convert any Unicode encoded characters passed in the content of an outbound message, to an equivalent GSM encoded character. Where no equivalent GSM encoded character is identified it may not be possible to convert a Unicode character and the message would be sent as a Unicode message. • Message validity*: The period over which a message will remain ‘active’ allowing Recipient responses to be automatically matched to active outbound messages. Upon a message reaching its associated validity limit, it will close and any responses returned after this period are not matched to the originating message. The default validity period is set to 24 hours and any change to the validity subscription must be submitted in writing to Boomerang. *Not applicable to voice messaging as responses are not ‘threaded’
SMS Messaging – Number management • Home country numbers: A mandatory configuration that determines the locality of the range of System Virtual Numbers that will be used as the originating Id for all outbound messages. The default number range will be set to use UK virtual numbers, unless otherwise specified during the on-boarding process. The ‘Home’ country must be set to a country where Boomerang has local numbers available. • Boomlocal feature: An optional feature that allows messages to be sent using a System Virtual Number local to the destination of the Recipient as the originating Id for a message. Where a number range has additional countries associated to it (this configuration would be set by Boomerang), messages sent to destination numbers that match those associated countries are also delivered using a number from that range as the originating Id. Voice Messaging • Welcome content: Customer defined content that is delivered to the Recipient immediately after answering a voice message call. The welcome content is customisable for each individual service and applies to all messages processed through that account. This content is usually defined during the on-boarding process. • Re-direct content: Customer defined content that is played to any Recipient selecting the call re-direct option 9 (as a keystroke from the device). This allows the call to be diverted to a pre-defined contact number. The re-direct content is customisable for each individual service account and applies to all messages processed through that account. This content is usually defined during the on- boarding process. • Re-direct number: A customer defined number used in the process described above (Re-direct content) • Exit content: Customer defined content that is played to a Recipient at the end of a voice call. The exit message content is customisable for each individual service account and applies to all messages processed through that account.
SOAP_API_Specification_and_Integration_Guide_BMr233_v1.1.docx
Page 10 of 55
• Retry schedule: Voice messages that fail to receive an acknowledgement from the Recipient on the first attempt may be retried. The parameters for retry schedule may be determined by a customer with the ability to set both the number of attempted retries and the duration between each.
5.6 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’ describes the core functionality of Boomerang API, which will provide assistance when designing workflow. 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 that can be used during composition of workflow.
SOAP_API_Specification_and_Integration_Guide_BMr233_v1.1.docx
Page 11 of 55
6 Structure of the SOAP API SOAP is a protocol for exchanging XML-based messages using HTTP/HTTPS. It uses XML as its message format and is transmitted via HTTP/S. SOAP messages are in the form of a packet and submitted to a SOAP portal for our gateway to pass on The Boomerang API itself exposes a large number of methods, which return structured responses, making it as convenient as possible for developers to build highly usable client applications on top of the Boomerang service. It is intended for software developers who are familiar with technologies such as HTML, JavaScript, Perl, .NET, PHP, and web services
6.1 Endpoints & service URL The API endpoint adheres to the following structure: https://api.boomerangicomms.com/soap/{SOAP service}.php “Service” denotes the version of the service, either SOAP 1.1 or SOAP 1.2. All communication via the API is SSL encrypted over HTTPS (128 or 256 bit). Any non-secure requests are automatically rejected. To support as many programming languages as possible, the API operates both SOAP 1.1 and SOAP 1.2. The location of the WSDL is different depending on which version of the service you wish to integrate with (SOAP1.1 or SOAP 1.2). Below is the current location of each WSDL: SOAP 1.1 endpoint: https://api.boomerangicomms.com/soap/soap11.php?wsdl SOAP 1.2 endpoint: https://api.boomerangicomms.com/soap/soap12.php?wsdl Submit your SOAP requests via HTTP or HTTPS to the following URL: https://api.boomerangicomms.com/soap/soap12.php .Net developers should ensure that the connection URL doesn't contain ‘?wsdl’ at the end of the URL.
6.2 Structure of Each Request SOAP requests are “envelopes” of specially formatted XML data posted to a URL. To find out more about SOAP please visit: http://www.w3.org/TR/soap/. Depending on which SOAP service version is used the SOAP server endpoint URL will either point to either of the endpoints listed above. Below is an example request to the “GetMessageById” operator in both SOAP 1.1 and SOAP 1.2. Example SOAP 1.1 Request https://api.boomerangicomms.com/soap/so ap11.php https://api.boomerangicomms.com/SoapSe
SOAP_API_Specification_and_Integration_Guide_BMr233_v1.1.docx
Page 12 of 55
rviceContract/GetMessageById MY USERNAME MY PASSWORD XXXXX-XXXXX-XXXXX-XXXXX-XXXXX-XXXXX xxxxxx
Example SOAP 1.2 Request https://api.boomerangicomms/soap12.php https://api.boomerangicomms.com/SoapServiceContract/GetMessageById MY USERNAME MY PASSWORD XXXXX-XXXXX-XXXXX-XXXXX-XXXXX-XXXXX xxxxxx
6.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. In addition the message will be translated into various national languages. The language used for the error response will be provided in the request URL. If the language cannot be determined (because it was either not present in the URL or not supported by the system) the error response will be in English. Developers should rely on the code to detect and manage errors because the message may change over time. For a full list of error codes and their corresponding messages, please go to Appendix 2.
SOAP_API_Specification_and_Integration_Guide_BMr233_v1.1.docx
Page 13 of 55
7 Messaging solutions and communication channels 7.1 Overview of communication channels Boomerang’s messaging platform provides Omni-channel messaging via SMS, email and voice. The table below defines the messaging solutions (described in the section above) supported across each communication channel.
Intelligent 2-way
Conversational
2-way broadvast
1-way broadcast
SMS
Email
Voice
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 and load balance across 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:
Boomerang is embedded in CRM workflow!
Mobile Aggregator!
Mobile Operator!
Figure 1 - Infrastructure for SMS delivery
Email Messaging Boomerang uses Simple Mail Transfer Protocol (SMTP) to transmit email messages over the Internet. Our clustered and fault tolerant VmWare Cloud provides geographical redundancy for all inbound SMTP traffic between two split locations, Manchester and London (UK). 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 global delivery of voice messages to both fixed line and mobile telephone numbers. Through the use of multiple upstream partners we can dynamically route between and load balance across voice carriers to optimise the quality of service delivery. In turn,
SOAP_API_Specification_and_Integration_Guide_BMr233_v1.1.docx
Page 14 of 55
each of our voice carriers has multiple routes in place, allowing them to reach almost all operators globally.
7.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: Intelligent 2-way messaging (SMS and Email) Intelligent 2-way (or ‘threaded’) messaging is at the core of Boomerang’s (patented) functionality and enables multiple concurrent outbound messages to be matched with their associated responses, irrespective of quantity and order. This matching process allows responses to be used to automate subsequent activities. Threading SMS Messages This process uses the ‘SendTextMessage’ function. When called, a Boomerang System Virtual Number (SVN) is automatically selected as the sender Id for a message;; each message is sent using SVN’s owned by Boomerang and a Recipient can respond to each message independently. Threading Email Messages This process uses the function SendEmailMessage and creates a unique email address based on the message Id for the transaction, allowing email responses to be matched back to the originating transaction. Conversational / Chat messaging (SMS) Boomerang allows a service or application to engage in an SMS ‘conversation’ with a Recipient using a preferred number, allowing the same SVN to be used as the sender Id for all messages relating to the same theme or conversation. This will ensure consistency within the Recipient’s device, as messages relating to a specific ‘conversation’ will arrive from the same number and will be displayed chronologically. This allows multiple simultaneous conversations to be managed within a single device, each bound by a unique SVN. Standard 2-way SMS messaging (SMS) Unlike ‘threading’, Standard 2-way messaging does not match a Recipient’s response to the originating message and would therefore be used for campaigns (with a fixed inbound number) where responses are collated, but are not used to automate subsequent activities. The ‘originatingMobileNo’ parameter of the ‘SendTextMessage’ allows a bespoke number to be passed as the sender Id for a message and where a Fixed Inbound Number is used, responses are stored in the Boomerang solution and can be retrieved via the API or pushed to a URL. As responses are not tracked against the outbound messages there no validity period associated to a standard 2-way message. 1-way messaging (SMS) When a message is sent using a Dynamic Header rather than a System Virtual Number as the originating Id, a user configurable alphanumeric code, (e.g. company name) is displayed in the handset inbox. This communication type requires the parameter ‘dynamicHeader’ to
SOAP_API_Specification_and_Integration_Guide_BMr233_v1.1.docx
Page 15 of 55
be passed within the method ‘sendTextMessageWithDynamicHeader’. A Recipient cannot respond to a message sent using a Dynamic Header and as such there is no validity period associated to a 1-way message. The image below details the typical message flow associated with each of the methods for sending and receiving messages:
Figure 2 - Boomerang messaging solutions
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)
STM
STMWPN
SEM
SVM
Conversational messaging (Preferred No.)
Intelligent 2-way messaging
Simple 2-way messaging (Originating No.)
The parameter required within each method is stated in brackets. Key to methods in table above: • STM = SendTextMessage • STMWPN = SendTextMessageWithPreferredNumber • SEM = Send Email Message • SVM = Send Voice Message
7.3 Message tickets Boomerang provides the capability to issue two different types of ticket for Intelligent 2-way messaging, defined below:
SOAP_API_Specification_and_Integration_Guide_BMr233_v1.1.docx
Page 16 of 55
• Single ticket: The default selection for all Intelligent 2-way messages. A single ticket / message is automatically closed on receipt of the single response message. • Open ticket: An optional feature applicable that allows an end user to return multiple response messages to the same outbound message request. This option is selected using a parameter within the SendTextMessage function.
7.4 Message ticket validity Overview All ‘Intelligent 2-way’ messages sent through Boomerang 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. A default validity period of 24 hours is allocated to a service account and additional message validity may be selected on purchasing Boomerang services. The subscription selections are as follows: 48 hours, 96 hours, 1 week, 2 weeks, 1 month or 2 months Rules associated to message ticket validity When processing message requests, please consider the following: • 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. 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 • 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 when reaching its expiry – whichever occurs first. Single tickets can be closed manually, prior to a Recipient’s response, using the CloseTicket function. An open ticket will close on expiry of the validity period or if closed manually using the CloseTicket function.
SOAP_API_Specification_and_Integration_Guide_BMr233_v1.1.docx
Page 17 of 55
8 API Functions used to send messages 8.1 Overview The objective of this specification document is to define all of the functions contained in the SOAP API and assist the user in selecting the methods that are most appropriate to the type of service to be implemented. This section contains all of the specific functions required to send messages via the SOAP API. A description is provided for each method along with a table describing the available the parameters and the required structure for each parameter value.
8.2 Elements of an outbound Message Object The elements of an outbound Message Object relating to all send functions are listed in the table below: Element
Data Format
MessageId CustomIdentifier
Integer String
CampaignName
String
From
String
Destination
String
Text
String
ValidityPeriod
String
IsOpenTicket
Boolean
ConversationId
String
EmailReplyTo
String
Source
String
DateCreated
DateTime
Status
String
Description The transaction id for the message generated by Boomerang. Bespoke message identifier chosen by the customer. Optional Identifier which can be used to group messages into specific campaigns Boomerang virtual number, dynamic header or bespoke number used as the originating Id for a message. The Recipient’s mobile phone number. The parameter 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 containing 160 characters or less are delivered and billed as a single message. Concatenated messages contain more than 160 characters message are also delivered as a single message but will be billed in multiples of 153 characters*. Please refer to Appendix 1 for further information regarding message characteristics and supported character sets. 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. 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. 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. The 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 status associated to a message. Delivery status notifications for SMS messages are described earlier
SOAP_API_Specification_and_Integration_Guide_BMr233_v1.1.docx
Page 18 of 55
8.3 Methods used to process SMS messages The methods described in this section enable customers to perform 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. 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. Example Response This example illustrates the structure of an SOAP response containing Message Objects. using SOAP 1.1 on server api.boomerangicomms.com returned the result of stdClass Object ( [GetMessageByIdResult] => stdClass Object ( [MessageId] => 2339363 [CustomIdentifier] => my ID [CampaignName] => My Campaign [From] => +447860001000 [MobileNo] => +447836123456 [Text] => Network test [ValidityPeriod] => 24 Hours [IsOpenTicket] => [PID] => [EmailReplyTo] =>
[email protected] [Source] => Origin [DateCreated] => 2013-02-14T07:25:43 [Status] => Sent ) ) and it took 0.067574977874756 seconds
Methods in this section POST Operations
• • • •
sendTextMessage sendTextMessageWithDynamicHeader sendTextMessageWithCustomNumber sendTextMessageWithPreferredNumber
sendTextMessage
This is the core function used to ‘thread’ SMS messages. Threading is the process that matches outbound messages with their responses and uses System 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 SMS message. The structure of the method is as follows: sendTextMessage {username, password, licenseKey, campaignName, conversationId, customIdentifier, RecipientsMobileNo, textMessage, autoResponseMessage, validityPeriod, isOpenTicket, emailResponsesTo, source}. Below is a description of each parameter available with this method: Parameter Description username password
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
SOAP_API_Specification_and_Integration_Guide_BMr233_v1.1.docx
Page 19 of 55
licenseKey campaignName conversationId customIdentifier
RecipientsMobileNo
textMessage
autoResponseMessage
validityPeriod
isOpenTicket emailResponsesTo Source
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. Optional Identifier, which can be used to group messages into campaigns. 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 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. 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]. The maximum validity that may be passed is determined by the period set on the customer’s service account. 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. 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.
sendTextMessageWithDynamicHeader
This operation is used for 1-way (dynamic header) messaging. This function will send an SMS message to a Recipient using an alphanumeric dynamic header as the originating Id. A dynamic header must contain a maximum of 11 characters avoiding use of non-GSM encoded characters such as spaces or underscores. A Recipient cannot respond to a message sent using dynamic header. The structure of the method is as follows: sendTextMessageWithDynamicHeader {username, password, licenseKey, campaignName, conversationId, customIdentifier, dynamicHeader, RecipientsMobileNo, textMessage, source} Below is a description of each parameter available with this method:
SOAP_API_Specification_and_Integration_Guide_BMr233_v1.1.docx
Page 20 of 55
Parameter username password
licenseKey campaignName customIdentifier
dynamicHeader
RecipientsMobileNo
textMessage
source
Description 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. Optional Identifier, which can be used to group messages into 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. An alpha numeric originating ID for each message. This can be 11 characters or less in length and is a mandatory field. A dynamic header does not accept spaces. 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.
sendTextMessageWithCustomNumber
This operation is primarily used for standard 2-way broadcast messaging and will send an SMS message to a Recipient, using a bespoke number (e.g. a fixed inbound number or a user’s own mobile number for example). Where a fixed inbound number is used as the message originator, responses are stored in the Boomerang solution and can be retrieved via the API (using the methods getInboundMessages or getAllNewInboundMessages). However, as these responses are not tracked against the original outbound message, there is no validity period associated to messages sent using this function. Any requests that are passed using a number that has not been provided by Boomerang are not stored in the Boomerang solution and cannot be retrieved via the API. The structure of the method is as follows: sendTextMessageWithCustomNumber {username, password, licenseKey, campaignName, customIdentifier, originatingMobileNo, RecipientsMobileNo, textMessage, source} Below is a description of each parameter available with this method: Parameter Description username password
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
SOAP_API_Specification_and_Integration_Guide_BMr233_v1.1.docx
Page 21 of 55
licenseKey
campaignName customIdentifier originatingMobileNo RecipientsMobileNo
textMessage
source
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. Optional Identifier, which can be used to group messages into 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. A bespoke number that is used as the originating ID for a message. Any response will be returned to the number passed. This is a mandatory field. 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.
sendTextMessageWithPreferredNumber
This parameter allows a specific virtual number (selected by the customer) to be used as the originating Id for a message (in preference to a System Virtual Number selected by Boomerang). This method would be used to update a specific ‘conversation’ thread on the recipient’s device by aligning the SVN to that conversation. As smart-phone deivces display the chronology of SMS messages a according to the originating name or number this is especially important where multiple concurrent ‘conversations’ are taking place with the same recipient. Consequently, a recipient can quickly identify messages relating to a 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) to maintain the integrity of message threading.
The structure of the method is as follows: sendTextMessageWithPreferredNumber {username, password, licenseKey, preferredMobileNo, campaignName, conversationId, customIdentifier, RecipientsMobileNo, textMessage, autoResponseMessage, validityPeriod, isOpenTicket, emailResponsesTo, source}. Below is a description of each parameter available with 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
SOAP_API_Specification_and_Integration_Guide_BMr233_v1.1.docx
Page 22 of 55
preferredMobileNumber
campaignName conversationId customIdentifier
RecipientsMobileNo
textMessage
autoResponseMessage
validityPeriod
isOpenTicket emailResponsesTo Source
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. A Boomerang virtual number that is passed by the customer and is used as the originating ID for a message in place of a number automatically selected by Boomerang. Any response will be returned to the number passed. This is a mandatory field. 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. Optional Identifier, which can be used to group messages into specific campaigns. 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 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. 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. 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.
Destination specific requirements when sending SMS messages Please note that delivery requirements may vary according the specific destination in which the Recipient is located. For example, some destinations will only permit messages sent with an alphanumeric dynamic header, whilst others require a numeric only originator (SVN). Additional destinations may only permit messages that arrive from a numeric originator that is local to the destination. As such, not all of the methods described in this section are applicable when attempting to reach certain destinations. For more information regarding destination specific requirements, please contact Boomerang on
[email protected]
SOAP_API_Specification_and_Integration_Guide_BMr233_v1.1.docx
Page 23 of 55
8.4 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 and parameters are case sensitive. 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.
Methods in this section • sendEmailMessage sendEmailMessage
This function can be used to thread email dialogue between an application and email Recipient. Email messages are always sent from an address that is generated automatically by Boomerang, when processing the request. The email address used adheres to the following structure: and ensures that all responses are matched to the relevant outbound email message. Using the ‘emailFrom’ 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. The structure of the method is as follows: sendEmailMessage {username, password, licenseKey, RecipientsEmail, emailFrom, emailSubject, campaignName, conversationId, customIdentifier, textMessage, autoResponseMessage, validityPeriod, isOpenTicket, emailResponsesTo, source}. Below is a description of each parameter available with this method: Parameter Description username password
licenseKey RecipientsEmail emailFrom emailSubject campaignName
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 Recipient’s email address The originating Id displayed in the Recipient’s email inbox. Where a value is not passed, ‘he originating email address is used as the default The subject of the email displayed in the Recipient’s email inbox. Where a value is not passed, ‘Email from Boomerang’ is used as the default subject Optional Identifier, which can be used to group messages into specific
SOAP_API_Specification_and_Integration_Guide_BMr233_v1.1.docx
Page 24 of 55
conversationId customIdentifier textMessage autoResponseMessage
validityPeriod
isOpenTicket emailResponsesTo Source
campaigns. 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 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 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. 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 that 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 network or client level spam filters.
8.5 Methods used to send voice messages The message content passed within a voice request is relayed to the Recipient by an IVR service. 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. Customers wishing to track messages using an identifier generated by their own application, a bespoke reference may be passed within the ‘customIdentifier’ parameter. Recipients can respond to messages using keystrokes on their telephone keypad and as this information is returned back to the Boomerang platform, it can be retrieved across the API using the ‘GetResponse’ methods described later in this document. Configuration options for voice messages As described earlier in this document, customers using voice messaging may pre-configure settings for each service account. The options are defined below: Intro message: Optional field containing content that is played to the Recipient immediately on answering a voice message. When configuring the intro message it is possible to provide two keystroke selections - option 1 to allow the Recipient to listen to the message or option 2 to allow the Recipient to decline the request. Intro message content
Keystroke
Keystroke Action
SOAP_API_Specification_and_Integration_Guide_BMr233_v1.1.docx
Page 25 of 55
Customer defined
options 1 2
Proceeds to main message content Terminates the voice call
Re-direct number: A feature allowing the voice call to be re-directed to a different number Re-direct content: The content of the message played to the Recipient when the call is re- directed to the re-direct number Re-direct message content Keystroke options Customer defined
9
Keystroke Action Re-directs the voice call to the re-direct number provided
Exit message: Optional field containing content that is played to the Recipient after listening to the message or completing any actions requested in the main message. The settings are configured during the on-boarding process for each Boomerang service account requiring voice communications. Response options for voice messages All responses to voice message calls are returned via a keystroke from the Recipient’s mobile device. As defined in the table below, when configuring an outbound voice message that requires a response, any keystroke option between one and nine can be made available to select for the recipient to select from Response content
Keystroke Keystroke Action options Any number Returns the keystroke value as a response between 1 associated to the originating message and 8
Determined by keystroke response to originating message It is not possible to make a telephone call to a system virtual number, as these numbers are only active for data. Although it possible to send an SMS message to a system virtual number, this response will not be matched to the original outbound voice message and the user will therefore be unable to access any such responses. Delivering voice messages to numbers linked to automated systems Messages delivered to a number that is associated to an automated system such as a switchboard or IVR system, are considered answered but will not reach the intended Recipient. As an automated service would be unable to forward any voice calls, it is recommended that customers only use direct dial numbers.
Methods in this section The methods described in this section enable delivery of 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. • SendVoiceMessage
SOAP_API_Specification_and_Integration_Guide_BMr233_v1.1.docx
Page 26 of 55
SendVoiceMessage
This function is used to send 2-way voice messages 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. Responses to voice messages are returned via a keystroke selected via the device keypad. sendVoiceMessage: {username, password, licenseKey, campaignName, customIdentifier, conversationId, RecipientsmobileNo, textMessage, validityPeriod, emailResponsesTo, source}. Below is a description of each parameter available with this method: Mandatory / Parameter Description Optional username
M
password
M
licenseKey
M
campaignName
O
customIdentifier
O
conversationId
O
RecipientsMobileNo
M
textMessage
M
validityPeriod
M
emailResponsesTo
O
Source
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. Optional Identifier that can be used to group messages by specific campaigns. A value generated by the customer’s application that can be associated to a single message or to multiple messages. If this is not required pass null or an empty value. 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. The Recipient’s destination number that 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. 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 mandatory field that 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. The originating application for the message.
SOAP_API_Specification_and_Integration_Guide_BMr233_v1.1.docx
Page 27 of 55
9 Status notifications for each messaging channel The API provides the ability for outbound message data to be retrieved. Along with all key information relating to the transaction, this also provides access to an associated delivery state. The status notifications for each communication channel are defined in this section.
9.1 Overview of status notifications 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 no further status notification has been received This could be due to, for example: o The Recipient’s handset being switched off at the time delivery was initially attempted o The Recipient’s handset not being registered on the network the time delivery was initially attempted. o The Recipient’s network operator 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: Not all network operators in some destinations support delivery notifications (notably USA and Canada);; 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 network operator could not reach the Recipient’s handset. This could be due to: o The Recipient’s handset inbox is full o The mobile number is disconnected o The network operator has blocked the inbound message service. • 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.
SOAP_API_Specification_and_Integration_Guide_BMr233_v1.1.docx
Page 28 of 55
9.2 Overview of status notifications for email messages Boomerang classifies the status of email messages according to the following: • Sent: The message has been processed by Boomerang has not been received at the Recipient’s mail server • Delivered: The message has been delivered to the Recipient’s inbox (based on Recipient’s reply to the originating message) • Queued: The message has been processed and is queued at the Recipient’s mail server • Rejected: The message was rejected by the Recipient’s mail server (e.g. the mailbox does not exist) • Pending: The message currently resides on the Boomerang mail server pending re- submission;; this is due to the Recipient’s mail server being unavailable when the first request was submitted. The retry is implemented as follows: o 1st – 5 mins o 2nd – 1 hour o 3rd – 24 hours o 4th – 48 hours (If unsuccessful status updated to ‘Rejected’)
9.3 Overview of status notifications for voice messages Boomerang classifies the status of voice messages according to the following: • Delivered: The Recipient has confirmed receipt of the message via the keystroke entry ‘1’ after listening to the welcome message or has made a keystroke response against the main message • Accepted: The Recipient has confirmed acceptance to listen to the message (selecting option ‘1’ to the welcome message) but hung the call during the main message • Ignored: The Recipient has either rejected the call via their device or failed to answer the call • Rejected: The Recipient makes the keystroke response ‘2’ to the welcome message • Failed: The message could not be delivered as the Recipient’s device could not be reached by the carrier • Hung: The Recipient ends the call during the welcome message without making a keystroke response • Expired: The message could not delivered within the retry period applied by at the Service Account level Retrying delivery of voice messages The status notifications ‘Ignored’ and ‘Hung’ will trigger a retry (providing that a retry policy has been configured against the customer’s service account).
9.4 Push notifications for delivery status updates It is possible to access a delivery status notification update from the upstream carrier by providing a URL to which Boomerang will push this data. The URL provided must be
SOAP_API_Specification_and_Integration_Guide_BMr233_v1.1.docx
Page 29 of 55
actively available and any potential restrictions preventing Boomerang’s messaging platform from reaching the customer’s platform should be addressed (e.g. firewalls). The notification is structured as an HTTP GET and the following variables are included: • messageId – The unique transaction Id assigned by Boomerang • status – The updated status of the message • statusTime – The time that the status was last updated A structured example is provided below: messageId => 7244 status => D statusTime => 2015-09-25
Please note that the default status of a message is set to ‘Sent’, any push notifications will be triggered when an updated status notification is received into Boomerang platform from the upstream supplier. The required URL is manually configured by Boomerang on receipt of a written request. All written requests should be submitted to
[email protected]
SOAP_API_Specification_and_Integration_Guide_BMr233_v1.1.docx
Page 30 of 55
10 Methods used to query message data An outbound message is a message that 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 an outbound message transaction. Element
Data Format
Integer String
String
String
String
String
String
Boolean
String
String
String
DateTime
String
Element
Data Format
Description The transaction id for the message generated by Boomerang. Bespoke message identifier chosen by the customer. Optional Identifier which can be used to group messages into specific campaigns Boomerang virtual number, dynamic header or bespoke number used as the originating Id for a message. 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 containing 160 characters or less are delivered and billed as a single message. Concatenated messages contain more than 160 characters message are also delivered as a single message but will be billed in multiples of 153 characters. 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. 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. 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. The 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 status associated to a message. Delivery status notifications for SMS messages are described earlier Description
10.2 Methods used to query outbound message data The method listed in this section provides the ability to retrieve data relating outbound SMS message transactions.
SOAP_API_Specification_and_Integration_Guide_BMr233_v1.1.docx
Page 31 of 55
GET Operations When calling the method in this section using the method name as presented below, the response data will be retrieved in SOAP. • getMessageById getMessageById
This operation will retrieve all of the information associated to a single message transaction 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 message Id must be provided when retrieving message data and the Id must relate to a message that was sent no longer than 12 months prior to the date that the request is submitted. The structure of the method is as follows: getMessageById {username, password, licenseKey, messageId} Parameter username password
licenseKey messageId
Description 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 message generated by Boomerang. This is a mandatory field.
An example response is presented below: using SOAP 1.2 on server api.boomerangicomms.com
returned the result of
stdClass Object ( [GetMessageByIdResult] => stdClass Object ( [MessageId] => 2438758
[CustomIdentifier] => GetMessageById [CampaignName] => GetMessageById [From] =>
+447860001002 [MobileNo] => +447836000999 [Text] => GetMessageById [ValidityPeriod]
=> 24 hours [IsOpenTicket] => [PID] => [EmailReplyTo] =>
[email protected] [Source] => GetMessageById [DateCreated] => 2013-03-14T07:25:50 [Status] => Delivered ) )
and it took 0.062051057815552 seconds
Using the message delivery status The response returned includes the delivery status of a message (). 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. Please refer to the section ‘Overview of message delivery states’ for a definition of each delivery status.
SOAP_API_Specification_and_Integration_Guide_BMr233_v1.1.docx
Page 32 of 55
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. getLatestDRs This method is used to manage the bulk retrieval of delivery status notifications relating to outbound message sent via Boomerang. The section ‘Overview of message delivery states’ provides a breakdown of the possible statuses that may be returned. A single request returns multiple delivery status notifications, based on any of the following: • A specified quantity of minutes • A start and end date / time • A start and end record Id
10.3 methods used to query Recipient responses A response is a direct reply to an Intelligent 2-way message originating from the Boomerang service. Boomerang’s ability to process Recipient responses is governed by the following: • The originating Id used for a message – A response cannot be retrieved if the original message was sent with a dynamic header or with a custom number • The ticket ‘type’ – 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 • Whether the original message was sent with the ‘Open Ticket’ feature then the Recipient will be able to send multiple replies • Whether the validity period of the message has expired Boomerang will be unable to match the Recipient’s response with a message ticket It is possible to retrieve data using different elements of a response object via individual methods and within each, an option is provided that allows any retrieved data to all be flagged as ‘read’ so that same data will not be retrieve as part of future requests. The methods described in this section are will allow responses to outbound SMS messages to be retrieved. The methods are separated between getAllNew functions (responses have never been retrieved previously) and getAll functions (new responses along with responses that have already been retrieved). With every request a valid license key, username and a password must be provided. All parameters are case sensitive and are considered mandatory unless otherwise stated. Elements of a response object Data Element Type
Integer
Integer
String
Description The unique Id for the Recipient’s response. The message Id for the original outbound message, which is automatically returned by Boomerang. The custom identifier provided with the original outbound message.
SOAP_API_Specification_and_Integration_Guide_BMr233_v1.1.docx
Page 33 of 55
String
String
String String Boolean
DateTime
DateTime
The Recipient’s full name (where provided)* The Recipient’s telephone number or email address (where email comms used) This is a Boomerang number or short code. The content of the Recipient’s response. Denotes an unread message. The date and time that the Recipient received the message. The date and time that the Recipient’s response was received by Boomerang.
*The ability to add Recipient data is not currently available
Example SOAP Response This example illustrates the structure of an SOAP response containing a collection of Response Objects. using SOAP 1.1 on server api.boomerangicomms.com returned the result of stdClass Object ( [GetAllResponsesWithinTheLast7DaysResult] => stdClass Object ( [Response] => Array ( [0] => stdClass Object ( [ResponseId] => 1208126 [OriginalMessageId] => 2329173 [OriginalMessageIdentifier] => my ID [RecipientsName] => Unknown [RecipientsMobileNumber] => +447836123456 [OriginatingNumberOrShortCode] => +447860001000 [Text] => R1 STM [IsNew] => 1 [DateSentToRecipient] => 2013-02- 11T06:37:13 [DateOfResponse] => 2013-02-11T06:37:53 ) [1] => stdClass Object ( [ResponseId] => 1208127 [OriginalMessageId] => 2329174 [OriginalMessageIdentifier] => my ID [RecipientsName] => Unknown [RecipientsMobileNumber] => +447836123456 [OriginatingNumberOrShortCode] => +447860001000 [Text] => R2 1 wk [IsNew] => 1 [DateSentToRecipient] => 2013-02- 11T06:38:04 [DateOfResponse] => 2013-02-11T06:38:34 ) [2] => stdClass Object ( [ResponseId] => 1210108 [OriginalMessageId] => 2332590 [OriginalMessageIdentifier] => my ID [RecipientsName] => Unknown [RecipientsMobileNumber] => +18179000000 [OriginatingNumberOrShortCode] => +16466000000 [Text] => Hello [IsNew] => 1 [DateSentToRecipient] => 2013-02-11T20:06:26 [DateOfResponse] => 2013- 02-11T20:06:57 ) [3] => stdClass Object ( [ResponseId] => 1210111 [OriginalMessageId] => 2332591 [OriginalMessageIdentifier] => my ID [RecipientsName] => Unknown [RecipientsMobileNumber] => +18179012345 [OriginatingNumberOrShortCode] => +16467777777 [Text] => Got it [IsNew] => 1 [DateSentToRecipient] => 2013-02- 11T20:06:39 [DateOfResponse] => 2013-02-11T20:07:22 ) ) ) ) and it took 0.097535848617554 seconds
Get New Responses This section defines the methods used to retrieve Recipient responses that have not been previously marked as read. Methods in this section
PUT Operations • getAllNewResponses • getAllNewResponsesByMessageId • getAllNewResponsesByMessageIdentifier • getAllNewResponsesByMobileNumber
SOAP_API_Specification_and_Integration_Guide_BMr233_v1.1.docx
Page 34 of 55
getAllNewResponses
This operation will retrieve a list of all unread responses from Recipients associated to an organisation (within the previous 6 months). The method is structured as follows: getAllNewResponses {username, password, licenseKey, markAsRead} Below is a description of all the parameters required for this method: Parameter Description username password
licenseKey
markAsRead
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. Will mark all retrieved responses as read. Once marked as read, responses are not retrievable thereafter.
getAllNewResponsesByMessageId
This operation will retrieve a list of all responses to messages that have not been flagged as ‘read’ (using the ‘markAsRead’ method) using the message Id for the original outbound message, which is generated by Boomerang. When retrieving a response it is possible to mark it as read using the ‘markAsRead’ parameter. The method is structured as follows: getAllNewResponsesByMessageId {username, password, licenseKey, messageId, markAsRead} Below is a description of all the parameters required for this method: Parameter Description username password
licenseKey messageId markAsRead
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 is a mandatory field. Will mark all retrieved responses as read. Once marked as read, responses cannot be retrieved using any of the methods used to retrieve ‘new’ responses.
getAllNewResponsesByMessageIdentifier
This operation will retrieve a list of all responses to outbound messages that have not been flagged as ‘read’ (using the ‘markAsRead’ method) by custom identifier. A customer
SOAP_API_Specification_and_Integration_Guide_BMr233_v1.1.docx
Page 35 of 55
identifier is a custom generated value that is passed to Boomerang as part of the original message request using the ‘customIdentifier’ parameter. It is also possible to mark new responses as read by using the ‘markAsRead’ parameter. The method is structured as follows: getAllNewResponsesByMessageIdentifier {username, password, licenseKey, customIdentifier, markAsRead} Below is a description of all the parameters required for this method: Parameter Description username password
licenseKey
customIdentifier markAsRead
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. 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. Will mark all retrieved responses as read. Once marked as read, responses cannot be retrieved using any of the methods used to retrieve ‘new’ responses.
Get All Responses (including previously marked as ‘read’) This section defines the methods used to retrieve responses that have been previously marked as read using the ‘markAsRead’ parameter which is included in all of the methods used to retrieve new responses. Methods in this section
GET Operations • getResponseById • getResponsesByMessageId • getResponsesByMessageIdentifier • getResponsesByRecipientsMobileNumber getResponseById
This operation will retrieve a single response to a message that was sent by a Recipient (Recipient) using the Id of the response, which is automatically generated by Boomerang. The method is structured as follows: getResponseById {username, password, licenseKey, responseId} Below is a description of all the parameters required for this method: Parameter Description username
The Boomerang account username. This is unique for every account in the system and is a mandatory, case sensitive field.
SOAP_API_Specification_and_Integration_Guide_BMr233_v1.1.docx
Page 36 of 55
password
licenseKey
ResponseId
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 given to the Recipient’s response, which is generated by Boomerang. This is a mandatory field.
getResponsesByMessageId
This operation will retrieve a list of all responses associated to a message, based on the original outbound message Id. This method would be used to retrieve responses to open ticket messages as open ticket messages can accept multiple responses. The original message Id that is automatically returned by Boomerang must be provided when making the request. The method is structured as follows: getResponsesByMessageId {username, password, licenseKey, messageId} Below is a description of all the parameters required for this method: Parameter username password
licenseKey messageId
Description 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 is a mandatory field.
getResponsesByMessageIdentifier
This operation will retrieve a list of all responses associated to a message based on a customIdentifier, which is provided by the customer as a parameter of the original outbound message request. This identifier must be provided when making the request. The main method looks like this: getResponsesByMessageIdentifier (username, password, licenseKey, customIdentifier) Below is a description of all the parameters required for this method: Parameter username password licenseKey
Description 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:
SOAP_API_Specification_and_Integration_Guide_BMr233_v1.1.docx
Page 37 of 55
customIdentifier
XXXXX-XXXXX-XXXXX-XXXXX-XXXXX-XXXXX. This is also a mandatory, case sensitive field. A value generated by the customer’s application, which can be associated to a single message or to multiple messages. This is a mandatory field.
10.4 Retrieving responses via ‘Push’ This section describes how a Recipient’s response to a message can be accessed as a ‘push’ notification;; where data is automatically pushed to a pre-defined destination. All notifications are structured as ‘HTTP GET’. Push to a URL This allows a Recipient’s response to be automatically forwarded to a URL provided by the customer. The customer must ensure that the URL provided is available and that there are no restrictions preventing Boomerang’s messaging platform from reaching the customer’s platform (e.g. firewalls). On receipt of the response push, it is the customer’s responsibility to acknowledge receipt of the push notification by returning a response of ‘ok’ back to Boomerang. This will prevent further retry attempts. 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) • A structured example is provided below: • username => Apiusername • password => Apipassword123 • messageId => 7243 mobileNo => +447800123456 message => R1 dateSent => 2014-09-22 customIdentifier => my Id
The URL is manually configured by Boomerang on receipt of a customer’s request submitted to
[email protected] Methods is this section • addEndpointUrl • addUsernameAndPassword AddEndpointUrl
This operation will allow users to add, update or remove a webpage URL (e.g. https://www.exampleurl.com) as an endpoint to which all Recipient responses are forwarded. A null value must be passed to de-activate this service (by removing the URL). The method is structured as follows:
SOAP_API_Specification_and_Integration_Guide_BMr233_v1.1.docx
Page 38 of 55
addEndpointUrl {username, password, licenseKey, endpointUrl} Below is a description of all the parameters required for this method Parameter username password
licenseKey
endpointUrl
Description 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 end point URL to which all Recipient responses associated to a service account are forwarded.
The format of the inbound response delivered to the webpage will be as follows: https://www.exampleurl.com?messageId=xxxxx&mobileNo=xxxxxxxxx&message=xxx xxxxxxxxx&customIdentifier=xxxxxxx&dateSent=xxxxxxx&username=xxxxxx&passw ord=xxxxxxx addUsernameAndPassword
This operation will allow users to authenticate responses pushed by Boomerang by associating a username and password to the URL. The username and password will be delivered along with the URL as parameters, which can be used by the web page to authenticate the incoming request. The method is structured as follows: addUsernameAndPassword {username, password, licenseKey, pushUrlUsername, pushUrlPassword1} Below is a list of all the parameters required for this method: Parameter username password
licenseKey pushUrlUsername pushUrlPassword
Description 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 username to be included within the URL for validation. The password to be included within the URL for validation.
Note regarding use of the push service for Recipient responses
When inbound messages are forwarded by Boomerang to the destination URL there is no request for a notification from the web page at this point in time which prevents the service from engaging a retry mechanism in the event of a failure.
SOAP_API_Specification_and_Integration_Guide_BMr233_v1.1.docx
Page 39 of 55
Push to email Responses may 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 submitted to
[email protected].
SOAP_API_Specification_and_Integration_Guide_BMr233_v1.1.docx
Page 40 of 55
11 Fixed inbound communications 11.1 Overview Using fixed inbound services allows an end user to initiate communication (Mobile Originated messaging) with an organisation via SMS, or to respond to 2-way broadcast communications that were initiated by an organisation (the response is not tracked against the outbound message for 2-way broadcast messages). Inbound services are configured using either a long or short inbound number, independently or with a keyword that must be assigned to a Boomerang service account (see table below for a description of each). This extends the opportunity to integrate Boomerang into workflow using an inbound message as the trigger.
11.2 Summary of inbound communication addresses A description of each type of inbound number is provided below: Inbound number type
Comms Channel
Exclusive long number (SMS)
SMS
Exclusive short number (SMS)
SMS
Shared short number (SMS)(must be used with a keyword)
SMS
Description A telephone number used to receive SMS messages normally comprising of eight or more digits that 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) that is assigned on a non- exclusive basis and must be used with a keyword that acts as a unique identifier for the organisation using the number.
*Short numbers native to Australia may contain up to 8 digits
11.3 Methods used to retrieve mobile originated messages The methods in this section the methods below describe how to retrieve all mobile originated inbound message data from a specific number or address registered in the Boomerang platform. All methods require a username, password and license key to relating to the service account against which the inbound number/address is associated. Elements of an inbound object Data Element Description Type
Integer String String String
String
String
Boolean
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
SOAP_API_Specification_and_Integration_Guide_BMr233_v1.1.docx
Page 41 of 55
DateTime The date and time that the end user’s message was received
Methods in this section • getInboundMessages • getAllNewInboundMessages getInboundMessages
This method 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. The method is structured as follows: getInboundMessages {username, password, licenseKey, inboundNo, keyword} Below is a list of all the parameters required for this method: Parameter username Password
licenseKey
inboundNumber Keyword (optional)
Description 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 inbound number from which inbound message data is retrieved which is assigned to the Boomerang account. This is a mandatory field. The keyword from which inbound message data is retrieved which is assigned to the Boomerang account. This is an optional field.
NB: This method will not retrieve responses to outbound messages that have been sent using Boomerang’s Intelligent 2-way messaging. Responses to Intelligent 2-way messages are retrieved using the ‘GetResponse’ functions defined earlier in this document.
IMPORTANT: When polling the service for inbound message data please limit these requests to intervals of a least one minute. getAllNewInboundMessages
This method retrieves all inbound messages that have not been previously marked as ‘read’. 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 The method is structured as follows: getAllNewInboundMessages {username, password, licenseKey, inboundNo, keyword, markAsRead} Below is a list of all the parameters required for this method:
SOAP_API_Specification_and_Integration_Guide_BMr233_v1.1.docx
Page 42 of 55
Parameter username Password
licenseKey
inboundNumber Keyword (optional) markAsRead
Description 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 inbound number from which inbound message data is retrieved which is assigned to the Boomerang account. This is a mandatory field. The keyword from which inbound message data is retrieved which is assigned to the Boomerang account. This is an optional field. Will mark all retrieved inbound messages as read. Once marked as read, inbound messages are not retrievable thereafter.
11.4 Retrieving mobile originated messages by ‘Push’ This section describes how data can be received from an inbound address using a ‘push’ notification service, where the data is automatically pushed to a pre-defined URL address. Push to a URL Boomerang’s push service will automatically forward inbound messages to a pre-defined URL. The following data is included in the notification: • • • • • • •
Date / time of the inbound message Content of the response End user’s communication address Inbound number Keyword (if provided) Inbound Id Fixed Inbound Number reference (FIN ref)
A structured example is provided below: username => Apiusername password => Apipassword123 inboundId => 2969484 mobileNo => +447836669666 inboundNo => +447860001962 message => CRMQE IB1 220914 0719 keyword => CRMQE dateSent => 2014-09-22 timeSent => 07:21:02 finRef => This URL along with the optional username and password are manually configured by Boomerang on written request from the customer. All written requests should be submitted to
[email protected]
SOAP_API_Specification_and_Integration_Guide_BMr233_v1.1.docx
Page 43 of 55
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 ‘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 address 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 written requests should be submitted to
[email protected].
11.5 Automated response messages Inbound SMS numbers may be configured with a pre-defined automated response that 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].
11.6 Provisioning inbound services If you require any inbound services to be provisioned to your Boomerang account, please contact your Account Manager or Boomerang sales on +44 (0)20 7224 5555.
SOAP_API_Specification_and_Integration_Guide_BMr233_v1.1.docx
Page 44 of 55
12 Methods used to update message transactions 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 • markResponseAsReadByResponseId • markInboundAsReadByInboundId markResponseAsReadByResponseId
This operation will flag a response as read using the Id for that response. Once any new response has been marked as read it will be necessary to use the ‘Get Response’ rather than ‘GetNewResponse’ methods to retrieve that same response. The methods used to retrieve responses that have already been marked as read are covered in the next section. The method is structured as follows: markResponseAsReadByResponseId {username, password, licenseKey, responseId} 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
SOAP_API_Specification_and_Integration_Guide_BMr233_v1.1.docx
Page 45 of 55
responseId
sensitive field. The Id given to the Recipient’s response, which is generated by Boomerang. This is a mandatory field.
markInboundAsReadByInboundId
This operation will flag an inbound message as read using the Id for that inbound message. Once any new inbound message has been marked as read it will be necessary to use the ‘getInboudMessage’ method to retrieve that same inbound message. The method is structured as follows: markInboundAsReadByInboundId {username, password, licenseKey, InboundId} Below is a description of all the parameters required for this method: Parameter Description username password
licenseKey
inboundId
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 given to the end user’s inbound message, which is generated by Boomerang. This is a mandatory field.
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 section describes how to close active message transactions. Methods in this section • closeTicketByMessageId closeTicketByMessageId
This operation is used to close a message prior to validity expiration using the original message Id returned by Boomerang. The method is structured as follows: CloseTicketByMessageId {username, password, licenseKey, messageId} Parameter username password licenseKey
Description 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:
SOAP_API_Specification_and_Integration_Guide_BMr233_v1.1.docx
Page 46 of 55
messageId
XXXXX-XXXXX-XXXXX-XXXXX-XXXXX-XXXXX. This is also a mandatory, case sensitive field. The id of the original outbound message. This is a mandatory field.
13 Methods used to query service account settings 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-payment, trial and demo accounts only)
Boomerang offers three 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) This method applies to pre-paid accounts that have purchased an allocation of message credits and will retrieve an integer value, notifying you how many credits remain on the account. The method looks like this: NoOfCreditsAvailable {username, username, licenseKey} The required parameters are defined below: Parameter username password
licenseKey
Description 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.
SOAP_API_Specification_and_Integration_Guide_BMr233_v1.1.docx
Page 47 of 55
14 Support Service requests regarding service-impacting issues are raised and monitored through our Technical Support case management system. Such requests must be raised directly by the customer via the method below: SUPPORT METHOD
CONTACT DETAILS
Email
[email protected] Customer originated requests: Any customer representative raising a ticket is required to provide their company details along with a description of the request and 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.
SOAP_API_Specification_and_Integration_Guide_BMr233_v1.1.docx
Page 48 of 55
15 Appendix 1 – SMS messaging technologies and character encoding 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. Please refer to the table below: Dec 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Hex 0 1 2 3 4 5 6 7 8 9 A B C D E F
0 0 @ £ $ ¥ è é ù ì ò Ç LF Ø ø CR Å å
16 10 Δ _ Φ Γ Λ Ω Π Ψ Σ Θ Ξ Æ æ É
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 to link the messages together. 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.
SOAP_API_Specification_and_Integration_Guide_BMr233_v1.1.docx
Page 49 of 55
An example of this is provided below: Number of SMS
Number of characters in the linked message
1 2 3 4 Etc.
160 characters 306 characters (2x153) 459 characters (3x153) 612 characters (4x153) 153 x Number of individual concatenated SMS messages
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
Number of characters in the linked message
1 2 3 4 Etc.
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.
SOAP_API_Specification_and_Integration_Guide_BMr233_v1.1.docx
Page 50 of 55
16 Appendix 2 – Error codes Code
Message content
400
‘Empty Message’
401
‘Invalid User’
400
‘Invalid IP’
400
‘Invalid number format’
400
‘Not enough credits’
400
‘No Dynamic Header’
400
‘No Preferred Number’
500
‘Internal error’ Unsupported HTTP method
501
Message Description The message cannot be sent as there is no message content provided with the request. Please ensure that the 'textMessage' 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 insufficient message credits on the account (Trial and Pre- paid customers only) No value has been passed in the dynamicHeader parameter when using the method sendTextMessageWithDynamicHeader No value has been passed in the preferredMobileNumber parameter when using the method sendTextMessageWithPreferredNumber An internal within Boomerang occurred An unsupported HTTP method is being used
SOAP_API_Specification_and_Integration_Guide_BMr233_v1.1.docx
Page 51 of 55
SOAP_API_Specification_and_Integration_Guide_BMr233_v1.1.docx
Page 52 of 55
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 Guadeloupe Guam
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 GLP GUM
Prefix +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 +590 +1671
Name
ISO Code
Prefix
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 Syria Taiwan
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 SYR TWN
+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 +963 +886
Guatemala Guinea Guyana Haiti Honduras Hong Kong Hungary Iceland India Indonesia Iran Iraq Ireland Israel Italy Jamaica Japan Jordan Kenya Kiribati Kuwait
GTM GIN GUY HTI HND HKG HUN ISL IND IDN IRN IRQ IRL ISR ITA JAM JPN JOR KEN KIR KWT
+502 +224 +592 +509 +504 +852 +36 +354 +91 +62 +98 +964 +353 +972 +39 +1876 +81 +962 +254 +686 +965
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
TJK TZA THA TKL TUN TUR TKM TUV UGA UKR GBR USA URY UZB VUT VAC VEN VNM YEM ZMB ZWE
+992 +255 +66 +690 +216 +90 +993 +688 +256 +380 +44 +1 +598 +998 +678 +39 +58 +84 +967 +260 +263
SOAP_API_Specification_and_Integration_Guide_BMr233_v1.1.docx
Page 54 of 55
18 Appendix 4 - Summary of API methods No. 1 2 3 4 5 6 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
Method noOfCreditsAvailable sendTextMessage sendTextMessageWithDynamicHeader sendTextMessageWithCustomNumber sendTextMessageWithPreferredNumber sendEmailMesage getMessageById getAllNewResponses getAllNewResponsesByMessageId getAllNewResponsesByMessageIdentifier getAllNewResponsesByMobileNumber markResponseAsReadByResponseId getResponseById getResponsesByMessageId getResponsesByMessageIdentifier getResponsesByRecipientsMobileNumber addEndpointUrl addUsernameAndPassword closeTicketByMessageId getInboundMessages getAllNewInboundMessages markInboundAsReadByInboundId
SOAP_API_Specification_and_Integration_Guide_BMr233_v1.1.docx
Page 55 of 55