Technical Guide. REST API for Mobile Outbound SMS

Similar documents
Technical Guide. REST API for Number Information Services

LINK Mobility SMS REST API MT and Delivery Reports Version 1.3; Last updated September 21, 2017

All requests must be authenticated using the login and password you use to access your account.

Forthnet Mobile Platform - groupsms http interface v1.0 1 / 9

SMS Submit Interface description HTTP Version 1.5

Quriiri HTTP MT API. Quriiri HTTP MT API v , doc version This document describes the Quriiri HTTP MT API version 1 (v1).

HTTP API Specification V2.7

API Specification Doc

API Documentation. Release Version 1 Beta

SOAP API. The correct URL has been hidden. Please contact your account manager for the full URL information.

SMS Outbound. HTTP interface - v1.1

API Integration Guide

ezeesms URL API Documentation

Integrating with Cellsynt's SMS gateway via HTTP interface (technical documentation)

Integration Guide Xura Messaging HTTP-Interface

SMS Outbound. SMTP interface - v1.1

Wired 2 Wireless Technology Solutions API Help Document Copyright Introduction. 2. Parameter list

NIC SMS SERVICE INTEGRATION

Sophisticated Simplicity In Mobile Interaction. Technical Guide Number Information Services - Asynchronous SOAP. Version 1.3

Instructions for Using New API. Instructions for Using New API

SMS Relay. API Documentation SPLIO - SPRING Contact and Campaign SMS Relay API - EN v1.2.docx

SONERA OPERATOR SERVICE PLATFORM OPAALI PORTAL SMS. FREQUENTLY ASKED QUESTIONS, version 2.0

cellip CELLIPS SMS INTERFACE DESCRIPTION HTTP GET INNEHÅLLSFÖRTECKNING

text2reach2 SMS API Sep 5, 2013 v1.1 This document describes application interface (API) between SMS service provider (SP) and SMS gateway (SMSGW).

HappyFox API Technical Reference

Gatesms.eu Mobile Solutions for Business

Response: Note: Please define Dynamic Value in ##Field## The following are the parameters used: For Unicode Message:

Bulk HTTP API Specification

HTTP Based Unified API

XML API SMS GATEWAY. Issue 2.0 Dec XML API

Front Gateway Product Description for the connection between the SMS gateway and customer

BulkSMS Marketo Gateway

Issue No. Date Description of Changes Initial issue Added basic authentication

Version Date Description Author First version Nate. send_sms request Added DELIVERED. status in Send Sms.

Sophisticated Simplicity In Mobile Interaction. Technical Guide Number Information Services - Synchronous SOAP. Version 1.3

1. Overview Account Configuration Details... 3

SMS Pro/Billing Pro. Interface specification. Version 3.0.1

Partner Web Services. GetOrderStatus Version 1 Service Manual

Cloud SMS API Guide. Version 5.1

Composer Help. Web Request Common Block

MultiTexter.com Smart Messaging System. HTTP Application Programming Interface

API ONE-TIME PASSWORD

In order to create your proxy classes, we have provided a WSDL file. This can be located at the following URL:

Way2mint SMS Mobile Terminate (MT) API Guide for HTTP / HTTPS

SMS HTTP API DOCUMENTATION December 2012

Technical Note. Isilon OneFS. Isilon Swift Technical Note. Version August 2017

PassBy[ME] API Documentation

Sophisticated Simplicity In Mobile Interaction. Technical Guide Mobile Outbound SMS Service HTTP Interface. Version 3.3

SMS-Bulk Gateway HTTP interface

HTTP API - HELP DOCUMENT

We currently are able to offer three different action types:

LUCITY REST API INTRODUCTION AND CORE CONCEPTS

Message parameter details

New Dashboard - Help Screens

AsyncOS 11.0 API - Getting Started Guide for Security Appliances

django-simple-sms Documentation

Introduction. Copyright 2018, Itesco AB.

HTTP API-HELP DOCUMENT

Messaging Service REST API Specification V2.3.2 Last Modified: 07.October, 2016

E POSTBUSINESS API Login-API Reference. Version 1.1

BulkSMS / Customer, Marketo Integration Guide, version 2.6, 2018/01/19. BulkSMS / Customer. Marketo Quick Start Integration Guide

Pro Solutions Interface specification

TACHO ONLINE API. TUNGVOGNSSPECIALISTEN APS Københavnsvej 265, DK-4000 Roskilde

The production version of your service API must be served over HTTPS.

DIGITAL SERVICES. API Documentation Retrieve Transactions

Revision: 50 Revision Date: :43 Author: Oliver Zabel. GTX Mobile Messaging SMS Gateway Interface Simple HTTP API Manual

PUSH services. Document revision 1.0 Date of Issue: 04 October 2018 Date of revision: 04 October Nick Palmer.

Sendroid Ultimate. User Manual

HTTP Interface API. for SMS Services. Version 2. Claude ICT Poland Sp. z o. o.

HTTP Specification Version 1.83

Heartbeat API. Document revision 1.0 Date of Issue: 04 October 2018 Date of revision: 04 October Nick Palmer.

If the presented credentials are valid server will respond with a success response:

DIGITAL SERVICES. API Documentation Product Pricing

mvaayoo API Ver 1.2.0

Trigger SMS API. API Documentation SPLIO - SPRING Contact and Campaign Trigger SMS API - EN v4.0.docx

Integration REST Text2Speech Version 1.1

msolutions Messenger Customization Options

Content index. Request and Response Request types Errors Error codeṣ Response types DH Api Documentation

Opaali Portal Quick guide

API Spec Sheet For HLR v1.4

SMS+ Client User Manual

SMSCenter. SMSCenter API

SONERA OPERATOR SERVICE PLATFORM

HTTP API. Table of Contents

ERMES. Technical Specification for ex MPAY services integration. version /10/2018

Way2mint SMS Mobile Terminate (MT) API Guide for HTTP HTTPS

WEB API. Nuki Home Solutions GmbH. Münzgrabenstraße 92/ Graz Austria F

API Spec Sheet For Version 2.5

BMAP B2B programmer guide for R3E

SMS API TECHNICAL SPECIFICATION

API HTTP TECHNICAL DOCUMENTATION WEB-BASED SMS SENDING PLATFORM. Version Update: July 12th Mobile Marketing and Messaging Solutions

Zipwhip API Developer Reference Messaging API

C U B I T S. API DOCUMENTATION Version 1.8

HTTP Authentication API

eservices channel-any_name_for_sms Section

API Reference (Contract Management)

Quick Answers. You may create any Sender ID for the transactional route, provided the Sender ID should be of 6 alpha characters only.

CLIENT DASHBOARD. With Cloud Communication Solution (C.C.S).

SmartFocus Cloud Service APIs

Active Market API v2

Transcription:

Technical Guide REST API for Mobile Outbound SMS Munich +49 89 202 451 100 Singapore +65 6478 3020 London +44 207 436 0283 San Francisco +1 415 527 0903 sales@tyntec.com www.tyntec.com

Table of Contents Page 1. Introduction 3 2. Authentication 3 3. Mobile Outbound SMS 4 3.1 Request Send an SMS 4 3.2 Response to Request Send an SMS 8 3.3 HTTP Status Codes 9 3.4 Query the Status of a Sent SMS / Message Notification 10 3.5 Error Codes 14 2

1. Introduction Send an SMS with Hello World! curl -u username:password -X POST -H "Content-Type: application/json" d {"from":"mycompany", "to":"+491622943176", "message":"hello World!"} https://rest.tyntec.com/sms/v1/outbound/requests The REST API (Representational State Transfer Application Programming Interface) enables quick and easy access to tyntec s messaging platform. The communication is established via HTTPS (Hypertext Transfer Protocol Secure) connections. The exchanged object types are either JSON (JavaScript Object Notation) or XML (Extensible Markup Language). tyntec accepts "application/json" or "application/xml" as "Content-Type" (and "charset=utf-8") in the HTTP header. tyntec s application automatically detects the object type of the request and responds accordingly, i.e., tyntec replies to a request containing a JSON object with a response containing a JSON object; tyntec s application reacts similarly to XML objects. The "Accept" parameter can override the default response object type by tyntec s application, e.g., The request can be a JSON object and tyntec s response will be a XML object for "Content-Type: application/json; Accept: application/xml". All of tyntec s SMS services are accessible through the base URL (Unique Resource Location) (${baseurl}): https://rest.tyntec.com/sms/v1/ 2. Authentication tyntec will provide a username (${username}) and password (${password}) to grant access to the services: https://${username}:${password}@rest.tyntec.com/sms/v1/ The Base64-encoded combination "${username}:${password}" is used as an authentication-token for the Basic HTTP authentication and can also be given in the HTTP header: Authorization: Basic ${authentication-token} 3

3. Mobile Outbound SMS The mobile outbound SMS service is governed by two operations that allow you to send an SMS and to query the status of a previously sent SMS (tyntec stores the status details for up to three months after the final delivery state is known). Operation Send a SMS Query the status of a SMS Resource URL ${baseurl}/outbound/requests ${baseurl}/outbound/requests/status Method POST GET Table 1: tyntec resource URLs for mobile outbound SMS. 3.1 Request Send an SMS To send a new outgoing SMS, make a POST request to the requests resource. The following code blocks give a basic example of how to send an SMS: Basic Example for Sending SMS (JSON) curl -u username:password -X POST -H "Content-Type: application/json" -d { "from":"mycompany", "to":"+491622943176", "message":"this is an example." } https://rest.tyntec.com/sms/v1/outbound/requests 4

For time-sensitive one-time passwords, we suggest using the following basic example: curl -u username:password -X POST -H "Content-Type: application/json" -d { "from":"mycompany", "to":"+491622943176", "message":"this is an example." "validityperiod":"00:01" } https://rest.tyntec.com/sms/v1/outbound/requests Response to Basic Example for Sending SMS (JSON) HTTP/1.1 200 OK { "requestid":"12-75cfafba-8799-4f2b-8505-ece6af6abf01", "size":1, "msgidlist":["12-1407778865439+1234567890"] } The following code blocks demonstrate the expected and accepted message format (the parameters are filled with examples). Sending SMS (JSON) { "from":"+4915112345678", "to":"+4917912345678", (*choose one of the following*) "message":"this is an example.", "unicode":, "wappush": { "title":, "url": }, (*optional*) "usercontext":"testmessage1", "senddatetime":"2014-12-24t18:30:00+01:00", "validityperiod":"03:00", "callbackurl":"https://tyntec.com/", "flash":true } 5

Sending SMS (XML) <SMS> <from>+4915112345678</from> <to>+4917912345678</to> (*choose one of the following*) <message>this is an example.</message> <unicode></unicode> <wappush> <title></title> <url></url> </wappush> (*optional*) <usercontext>testmessage1</usercontext> <senddatetime>2014-12-24t18:30:00+01:00</senddatetime> <validityperiod>03:00</validityperiod> <callbackurl>https://tyntec.com/</respondbackurl> <flash>true</flash> </SMS> In this request there are a number of parameters that need to be defined, others are optional: Parameter Optional/ Mandatory Possible Values Description from mandatory any international phone number OR alphanumeric sender ID (1-11 charactes)* This parameter gives the identification of the sending party, which can either be the phone number in international format or an alphanumeric identifier with up to 11 characters.* *Some destination networks impose restrictions on the sender ID format. Please check the coverage list and/or contact your account manager for more information. to mandatory any international phone number This parameter represents the receiving party s phone number in international format. (*choose one of the following*) mandatory only one of the following parameters has to be set This API version supports sending messages either as plain text SMS (with GSM-7 encoding - http://en.wikipedia.org/wiki/gsm_03.38), as Unicode SMS (with USC-2 encoding), or as WAP-push SMS (with UTF-8 encoding). The expected encoding given in the HTTPS POST request for all message types is UTF-8. tyntec automatically translates your UTF-8 string into the respective encoding. The maximum overall length for accepted messages is 3000 UTF-8 characters (counted before the encoding). The maximum length of a single SMS is limited to 160 (message)/70 (unicode)/130 (wappush) 6

characters depending on the final encoding (counted after the encoding). tyntec automatically splits the sent message into concatenated messages if the message exceeds the given limits. These concatenated messages are unified by the handset once again and are displayed as one message (if supported by the handset). NOTE: tyntec will charge for each part of the concatenated message as an individual message! message any UTF-8 encoded string The message will be sent with characters encoded in the GSM standard alphabet GSM-7. Max. length is 160 characters per single message and 153 characters per concatenated message. Characters that are not supported by the GSM-7 alphabet are replaced by "*". unicode any UTF-8 encoded string The message will be sent with characters encoded in the GSM Unicode alphabet USC-2. Max. length is 70 characters per single message and 66 characters per concatenated message. wappush - title any UTF-8 encoded string The message part of the WAP-push message in UTF-8 encoding. wappush - url any preformatted URL This URL will be interpreted directly and displayed by the handset as a web link (if supported by the handset). Max. length of a wappush (incl. title and URL) is 130 characters per single message and 123 characters per concatenated message. usercontext optional any UTF-8 encoded string This parameter allows for personalized identifiers or context. This field will not be modified by tyntec. The message notification will return this identifier in addition to the request ID and message ID. senddatetime optional any future date in the format "yyyy-mm-ddt- HH:mm:ss+HH:mm" (according to ISO 8601) tyntec will submit the message at this given date. Otherwise tyntec will submit your message immediately. Default time zone is UTC. validityperiod optional any time in the format "hh:mm" tyntec will attempt to resend the message for the time specified (validityperiod can be set from 00:01 to 48:00). The default value is 48:00. callbackurl optional any valid URL This parameter allows for overriding of the default call-back URL for this message. If it is not specified, the default call-back URL will be used for push message notifications. If no call-back URL is provided, tyntec will not enable push message notifications. No matter, the status of the message and the message 7

notification will be available via the HTTPS GET Query the status of an SMS. flash optional true/false This parameter specifies that the sent message is sent as a flash-sms, i.e., the message will only be displayed one time and will not be stored on the handset (if supported by the handset). The default value is false. 3.2 Response to Request Send an SMS tyntec will immediately respond to a HTTPS POST request to Send an SMS. The response will contain the request ID, the size of your message and list of respective message IDs. In the case there were delivery issues, the response will contain possible delivery issues following an immediate check for inconsistencies (e.g., case sensitivity, wrong parameter, too many characters, no receiver defined, etc.). The HTTP status code returned will be accordingly. Successful Request Response (JSON) HTTP/1.1 200 OK { "requestid":"12-75cfafba-8799-4f2b-8505-ece6af6abf01", "size":"2", "msgidlist":["12-1407778865439+1234567890","12-1407778865439+1234567891"] } Successful Request Response (XML) HTTP/1.1 200 OK <RestMessageResponse> <requestid>12-75cfafba-8799-4f2b-8505-ece6af6abf01<requestid> <size>2<size> <msgidlist> <msgid>12-1407778865439+1234567890</msgid> <msgid>12-1407778865439+1234567891</msgid> <msgidlist> </RestMessageResponse> Unsuccessful Request Response (JSON) HTTP/1.1 400 Bad Request { } "responsetext":"*see list below*" 8

3.3 HTTP Status Codes HTTP Code 200 OK 400 Bad Request 403 Forbidden 404 Not Found 405 Method Not Allowed 406 Not Acceptable 415 Unsupported Media Type 500 Internal Server Error Message *see code examples Un/Successful Request Response * OR *see code examples Message Notification * *see validation error message list below* Username/password wrong or missing. The requested message notification cannot be retrieved. Invalid request method. The content-type is not supported. Allowed values are "application/xml" and "application/json". The media type is not supported. Allowed media-type are "application/xml" and "application/json". Please retry. If error persists, please contact customer support. Description The HTTPS request was accepted. The posted message passed an initial consistency check and tyntec will reply with the respective requestid, size and messageid. OR The requested message notification can be retrieved and is returned. The HTTPS request failed to pass the validation, i.e., one or more of the required parameters of the request are empty/missing/contradictory/invalid. The given message provides more information as to why the validation failed. The provided credentials are not authorized. The requested URI is either nonexistent or the respective authentication is invalid. The request contains an invalid HTTP method (POST/GET). The request is not JSON nor XML format or the HTTP header reads "Content-Type". The request is not JSON nor XML format or the HTTP header reads "Accept". Unexpected error. Validation error message may be a one or any combination of the ones below: Message Invalid authentication. RequestId is missing. Sender is missing. Receiver is missing. Receiver number is not numeric. Sent Send/Query actions Query action Description Invalid username and/or password, or wrong authentication token. Please specify the request-id for which the message status should be retrieved. The mandatory parameter "from" is not specified. The mandatory parameter "to" is not specified. The mandatory parameter "to" is malformed. It has to be an international phone number. 9

Message is empty. It is not allowed to send an empty message. More than one message content parameter is set. Please use EITHER "message", "unicode" or "wappush" to send a message. Message exceeds maximum character length of 3000. Message text exceeds the limit of 3000 symbols. The respond-back URL is invalid. Please format the URL according to: http(s)://host(: port). One or more mandatory parameters are missing. The request is missing mandatory parameters. Your message is rejected because it has over-length. Your account settings block the sending of over-length message. The requested URI was not found. Query action The requested URI is either nonexistent or the respective authentication is invalid. Unexpected error, please retry. If error persists, please contact customer support. Query action/send action Something unexpected occurred during the processing of the request. The parameter ${invalidparameter} is invalid. The request contains at least one invalid parameter. ${invalidparameter} will state which parameter. 3.4 Query the Status of a Sent SMS / Message Notification The tyntec server will respond to your query with the current message notification. tyntec stores message notifications for three months. tyntec will also POST these message notifications in case there is a call-back URL specified. Query the status of a request/message Notification (JSON) curl https://username:password@rest.tyntec.com/sms/v1/outbound/requests/status/12-75cfafba-8799-4f2b- 8505-ece6af6abf01 10

Message Notification (JSON) { "requestid":"12-75cfafba-8799-4f2b-8505-ece6af6abf01", "overallstate":"delivered", "size":"1", "from":"+4915112345678", "to":"+4917912345678", "usercontext":"testmessage1", "mccmnc":"26207", "ttid":"16", "overallprice":"0.55", "contentlist": [{ "deliverystate":"delivered", "statustext":"this is a test.", "msgid":"12-1407778865439+1234567890", "price":"0.55", "currency":"eur", "priceeffective":"2014-12-24t18:30:00+01:00", "sentdate":"2014-05-13t17:41:06+01:00", "donedate":"2014-05-13t17:41:07+01:00", "errorcode":"001" }] } 11

Message Notification (XML) <messagenotification> <requestid>12-75cfafba-8799-4f2b-8505-ece6af6abf01</requestid> <overallstate>delivered</overallstate> <size>1</size> <from>+4915112345678</from> <to>+4917912345678</to> <usercontext>testmessage1</usercontext> <mccmnc>26207</mccmnc> <ttid>16</ttid> <overallprice>0.55</overallprice> <contentlist> <messagenotificationcontent> <deliverystate>delivered</deliverystate> <statustext>this is a test.</statustext> <msgid>12-1407778865439+1234567890</msgid> <price>0.55<price> <currency>eur<currency> <priceeffective>2014-12-24t18:30:00+01:00</priceeffective> <sentdate>2014-05-13t17:41:06+01:00</sentdate> <donedate>2014-05-13t17:41:07+01:00</donedate> <errorcode>001</errorcode> </messagenotificationcontent> </contentlist> </messagenotification> 12

Parameter requestid overallstate size from to Description The unique identifier provided for each request. Aggregated status from all respective deliverystatus. The amount of respective concatenated SMS parts. This parameter gives the identification of the sending party, which can either be the phone number in international format or an alphanumeric identifier with up to 11 characters.* *Some destination networks impose restrictions on the sender ID format. Please check the coverage list and/or contact your account manager for more information. This parameter represents the receiving party s phone number in international format. usercontext mccmnc ttid overallprice MessageNotificationContent message deliverystate statustext msgid price currency priceeffective sentdate donedate errorcode The custom message context provided by the customer. A representative IMSI prefix of the target network. The respective mapping can be found at http://www.mcc-mnc.com/, for example. The respective tyntec network id of the target network. The mapping can be found in the customer lounge under home>resource center>network lists>mobile outbound sms (https://customerlounge.tyntec.com/resource-centre.html). Aggregated price from all respective message parts. The actual message notifications for respective parts. Separator for each part. The delivery status of this specific part. Possible values are given in a following table. The first 20 characters of the sent message. The unique identifier provided for each message. The price for sending the respective message part. The currency in which the price is given; corresponding to the currency of the invoice. The date when the "price" became active. The time stamp when the message was sent out by tyntec for delivery. The time stamp when the message was successfully delivered. The reason for an unsuccessful delivery attempt. Possible values are given in a following table. 13

Possible values for "deliverystatus": Delivery Status DELIVERED UNDELIVERABLE EXPIRED REJECTED BUFFERED Explanation Message was successfully delivered. Message cannot be delivered. See error codes for more details. Message expired, i.e., the message could not be delivered within the specified time span. See error codes for more details. Message rejected, i.e., the message could not be accepted by our platform. See error codes for more details. Message could not be delivered. tyntec is in the process of resending. Please wait for one of the above final statuses. 3.5 Error Codes Possible values for "errorcode" without GSM-error-code account-feature active, (default): Code 001 002 006 010 011 013 020 Detailed description Message was successfully delivered. Message cannot be delivered. Message expired, i.e., the message could not be delivered within the specified time span. Message rejected, i.e., the message could not be delivered by our platform. Message could not be delivered. tyntec is in the process of resending. Please wait for one of the above final statuses. Same as 010. Same as 010. Possible values for "errorcode" with GSM-error-code account-feature active (on request) can be found in the document "GSM Error Codes". 14

About tyntec tyntec (www.tyntec.com) is a telecom-web convergence company that connects the immediacy and convenience of telecom with the power of the Internet. Partnering with telecom operators around the world, tyntec enables enterprises and Internet brands to power their applications, authentication, and mission-critical communications with universal mobile services such as SMS, voice and phone numbers in the cloud. Founded in 2002, tyntec employs over 150 people in six offices around the globe, serving more than 500 global businesses, Internet brands and telecom operators. Munich +49 89 202 451 100 Singapore +65 6478 3020 London +44 207 436 0283 San Francisco +1 415 527 0903 sales@tyntec.com www.tyntec.com