<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://docs.upsidewireless.com/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://docs.upsidewireless.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Bzurkovic</id>
		<title>SMS Wiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://docs.upsidewireless.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Bzurkovic"/>
		<link rel="alternate" type="text/html" href="http://docs.upsidewireless.com/index.php?title=Special:Contributions/Bzurkovic"/>
		<updated>2026-04-09T03:11:19Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.22.0</generator>

	<entry>
		<id>http://docs.upsidewireless.com/index.php?title=CSharp_JSON_Example</id>
		<title>CSharp JSON Example</title>
		<link rel="alternate" type="text/html" href="http://docs.upsidewireless.com/index.php?title=CSharp_JSON_Example"/>
				<updated>2018-02-10T00:01:39Z</updated>
		
		<summary type="html">&lt;p&gt;Bzurkovic: Created page with &amp;quot;Below is sample code for C#. You are welcome to cut+paste this sample into your application, however, keep in mind that depending on your environment, some changes may be requ...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Below is sample code for C#. You are welcome to cut+paste this sample into your application, however, keep in mind that depending on your environment, some changes may be required. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note:  In order to run this sample, you need to reference System.Web.Extensions&lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
using System;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.Text;&lt;br /&gt;
using System.Net;&lt;br /&gt;
using System.IO;&lt;br /&gt;
using System.Web.Script.Serialization;&lt;br /&gt;
using System.Xml;&lt;br /&gt;
using System.Xml.Serialization;&lt;br /&gt;
&lt;br /&gt;
namespace TestUpsideRESTAPIJSON&lt;br /&gt;
{&lt;br /&gt;
    class Program&lt;br /&gt;
    {&lt;br /&gt;
        const string APIEndPoint = &amp;quot;https://secureapi.upsidewireless.com&amp;quot;; // or &amp;quot;http://api.upsidewireless.com&amp;quot;&lt;br /&gt;
        const string APICredential_Token = &amp;quot;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;quot;;&lt;br /&gt;
        const string APICredential_Signature = &amp;quot;xxxxxxxxfyqQx95Gxxxxxxxx&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        private static readonly string SMSMessageUrl = string.Format(&amp;quot;{0}/RESTv1/{1}/Message&amp;quot;, APIEndPoint, APICredential_Token);&lt;br /&gt;
&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            bool acceptJSON = false;&lt;br /&gt;
&lt;br /&gt;
            Console.WriteLine(&amp;quot;SMS Message URL: &amp;quot; + SMSMessageUrl + &amp;quot;\n&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            var request = WebRequest.Create(SMSMessageUrl) as HttpWebRequest;&lt;br /&gt;
            request.Method = &amp;quot;POST&amp;quot;;&lt;br /&gt;
            request.ContentType = &amp;quot;application/json&amp;quot;;&lt;br /&gt;
            request.Accept = acceptJSON ? &amp;quot;application/json&amp;quot; : &amp;quot;application/xml&amp;quot;;&lt;br /&gt;
            request.UserAgent = &amp;quot;UpsideCSharpAgent&amp;quot;;&lt;br /&gt;
            // use default timeout&lt;br /&gt;
            //request.Timeout = 100 * 1000; // in miliseconds&lt;br /&gt;
            //request.ReadWriteTimeout = 300 * 1000; // in miliseconds&lt;br /&gt;
&lt;br /&gt;
            string type = &amp;quot;sms&amp;quot;; // see type list on wiki&lt;br /&gt;
            string message = &amp;quot;test sms message&amp;quot;;&lt;br /&gt;
            string recipient = &amp;quot;16047891236&amp;quot;; // number in E.164 format&lt;br /&gt;
            string encoding = &amp;quot;7&amp;quot;; // 7, 8 or 16&lt;br /&gt;
&lt;br /&gt;
            var jsonObject = &amp;quot;{signature:\&amp;quot;&amp;quot; + APICredential_Signature + &amp;quot;\&amp;quot;&amp;quot;;&lt;br /&gt;
            jsonObject += &amp;quot;,type:\&amp;quot;&amp;quot; + type + &amp;quot;\&amp;quot;&amp;quot;;&lt;br /&gt;
            jsonObject += &amp;quot;,message:\&amp;quot;&amp;quot; + message + &amp;quot;\&amp;quot;&amp;quot;;&lt;br /&gt;
            jsonObject += &amp;quot;,recipient:\&amp;quot;&amp;quot; + recipient + &amp;quot;\&amp;quot;&amp;quot;;&lt;br /&gt;
            jsonObject += &amp;quot;,encoding:\&amp;quot;&amp;quot; + encoding + &amp;quot;\&amp;quot;}&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
            Console.WriteLine(&amp;quot;Post Data: &amp;quot; + jsonObject + &amp;quot;\n&amp;quot;);&lt;br /&gt;
            var data = Encoding.UTF8.GetBytes(jsonObject);&lt;br /&gt;
            request.ContentLength = data.Length;&lt;br /&gt;
&lt;br /&gt;
            try&lt;br /&gt;
            {&lt;br /&gt;
                using (var stream = request.GetRequestStream())&lt;br /&gt;
                {&lt;br /&gt;
                    stream.Write(data, 0, data.Length);&lt;br /&gt;
&lt;br /&gt;
                    HttpWebResponse response;&lt;br /&gt;
                    try&lt;br /&gt;
                    {&lt;br /&gt;
                        response = request.GetResponse() as HttpWebResponse;&lt;br /&gt;
                    }&lt;br /&gt;
                    catch (WebException ex)&lt;br /&gt;
                    {&lt;br /&gt;
                        response = ex.Response as HttpWebResponse;&lt;br /&gt;
                    }&lt;br /&gt;
&lt;br /&gt;
                    var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();&lt;br /&gt;
&lt;br /&gt;
                    Console.WriteLine(&amp;quot;HTTP Response: &amp;quot; + responseString + &amp;quot;\n&amp;quot;);&lt;br /&gt;
                    RestResponse restResponse = null;&lt;br /&gt;
                    if (acceptJSON)&lt;br /&gt;
                    {&lt;br /&gt;
                        JavaScriptSerializer JSS = new JavaScriptSerializer();&lt;br /&gt;
                        restResponse = JSS.Deserialize&amp;lt;RestResponse&amp;gt;(responseString);&lt;br /&gt;
                    }&lt;br /&gt;
                    else&lt;br /&gt;
                    {&lt;br /&gt;
                        var sreader = new StringReader(responseString);&lt;br /&gt;
                        var xmlreader = new XmlTextReader(sreader);&lt;br /&gt;
                        XmlSerializer serializer = new XmlSerializer(typeof(RestResponse));&lt;br /&gt;
                        restResponse = serializer.Deserialize(xmlreader) as RestResponse;&lt;br /&gt;
                    }&lt;br /&gt;
&lt;br /&gt;
                    if (restResponse != null)&lt;br /&gt;
                    {&lt;br /&gt;
                        Console.WriteLine(&amp;quot;Rest Response - HasException: &amp;quot; + restResponse.HasException);&lt;br /&gt;
                        Console.WriteLine(&amp;quot;Rest Response - Token: &amp;quot; + restResponse.Token);&lt;br /&gt;
                        if (restResponse.HasException)&lt;br /&gt;
                        {&lt;br /&gt;
                            Console.WriteLine(&amp;quot;Rest Response - RestException.ErrorCode: &amp;quot; + restResponse.RestException.ErrorCode);&lt;br /&gt;
                            Console.WriteLine(&amp;quot;Rest Response - RestException.Message: &amp;quot; + restResponse.RestException.Message);&lt;br /&gt;
                            if (restResponse.RestException.Status != null)&lt;br /&gt;
                                Console.WriteLine(&amp;quot;Rest Response - RestException.Status: &amp;quot; + restResponse.RestException.Status);&lt;br /&gt;
                        }&lt;br /&gt;
                        else&lt;br /&gt;
                        {&lt;br /&gt;
                            Console.WriteLine(&amp;quot;Rest Response - SMSMessage.Status: &amp;quot; + restResponse.SMSMessage.Status);&lt;br /&gt;
                            Console.WriteLine(&amp;quot;Rest Response - SMSMessage.Recipient: &amp;quot; + restResponse.SMSMessage.Recipient);&lt;br /&gt;
                            Console.WriteLine(&amp;quot;Rest Response - SMSMessage.Body: &amp;quot; + restResponse.SMSMessage.Body);&lt;br /&gt;
                            Console.WriteLine(&amp;quot;Rest Response - SMSMessage.Type: &amp;quot; + restResponse.SMSMessage.Type);&lt;br /&gt;
                            Console.WriteLine(&amp;quot;Rest Response - SMSMessage.TrackingId: &amp;quot; + restResponse.SMSMessage.TrackingId);&lt;br /&gt;
                            if (restResponse.SMSMessage.Status == &amp;quot;REJECTED&amp;quot;)&lt;br /&gt;
                                Console.WriteLine(&amp;quot;Rest Response - SMSMessage.RejectReason: &amp;quot; + restResponse.SMSMessage.RejectReason);&lt;br /&gt;
                        }&lt;br /&gt;
                    }&lt;br /&gt;
                    else&lt;br /&gt;
                    {&lt;br /&gt;
                        Console.WriteLine(&amp;quot;Can't get rest response object&amp;quot;);&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            catch (Exception e)&lt;br /&gt;
            {&lt;br /&gt;
                Console.WriteLine(&amp;quot;Error in calling REST API - &amp;quot; + e.Message);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public class RestResponse&lt;br /&gt;
    {&lt;br /&gt;
        public bool HasException { get; set; }&lt;br /&gt;
        public string Token { get; set; }&lt;br /&gt;
&lt;br /&gt;
        public SMSMessage SMSMessage { get; set; }&lt;br /&gt;
&lt;br /&gt;
        public RestException RestException { get; set; }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public class SMSMessage&lt;br /&gt;
    {&lt;br /&gt;
        public string Status { get; set; }&lt;br /&gt;
&lt;br /&gt;
        public string Recipient { get; set; }&lt;br /&gt;
        public string Body { get; set; }&lt;br /&gt;
        public string Type { get; set; }&lt;br /&gt;
        public string TrackingId { get; set; }&lt;br /&gt;
        public string RejectReason { get; set; }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public class RestException&lt;br /&gt;
    {&lt;br /&gt;
        public int ErrorCode { get; set; }&lt;br /&gt;
        public string Message { get; set; }&lt;br /&gt;
&lt;br /&gt;
        public string Status { get; set; }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Bzurkovic</name></author>	</entry>

	<entry>
		<id>http://docs.upsidewireless.com/index.php?title=Java_JSON_Example</id>
		<title>Java JSON Example</title>
		<link rel="alternate" type="text/html" href="http://docs.upsidewireless.com/index.php?title=Java_JSON_Example"/>
				<updated>2018-02-10T00:00:17Z</updated>
		
		<summary type="html">&lt;p&gt;Bzurkovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Below is sample code for Java programmers. You are welcome to cut+paste this sample into your application, however, keep in mind that depending on your environment, some changes may be required. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note: In order to run this sample, you need include MOXy library, as well as JAXB if no built-in JAXB in your JDK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
import java.io.BufferedReader;&lt;br /&gt;
import java.io.InputStream;&lt;br /&gt;
import java.io.InputStreamReader;&lt;br /&gt;
import java.io.PrintWriter;&lt;br /&gt;
import java.io.StringReader;&lt;br /&gt;
import java.net.HttpURLConnection;&lt;br /&gt;
import java.net.URL;&lt;br /&gt;
import java.net.URLEncoder;&lt;br /&gt;
import java.util.HashMap;&lt;br /&gt;
import java.util.Map;&lt;br /&gt;
&lt;br /&gt;
import javax.xml.bind.JAXBContext;&lt;br /&gt;
import javax.xml.bind.Unmarshaller;&lt;br /&gt;
import javax.xml.bind.annotation.XmlAccessType;&lt;br /&gt;
import javax.xml.bind.annotation.XmlAccessorType;&lt;br /&gt;
import javax.xml.bind.annotation.XmlElement;&lt;br /&gt;
import javax.xml.bind.annotation.XmlRootElement;&lt;br /&gt;
import javax.xml.transform.stream.StreamSource;&lt;br /&gt;
&lt;br /&gt;
import org.eclipse.persistence.jaxb.JAXBContextProperties;&lt;br /&gt;
import org.eclipse.persistence.jaxb.xmlmodel.ObjectFactory;&lt;br /&gt;
&lt;br /&gt;
public class TestUpsideRESTAPIJSON {&lt;br /&gt;
	&lt;br /&gt;
	public static final String APIEndPoint = &amp;quot;https://secureapi.upsidewireless.com&amp;quot;; // or &amp;quot;http://api.upsidewireless.com&amp;quot;&lt;br /&gt;
	public static final String APICredential_Token =&amp;quot;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;quot;;&lt;br /&gt;
	public static final String APICredential_Signature = &amp;quot;xxxxxxxxfyqQx95Gxxxxxxxx&amp;quot;;&lt;br /&gt;
	&lt;br /&gt;
	private static String SMSMsgUrl = String.format(&amp;quot;%s/RESTv1/%s/Message&amp;quot;, APIEndPoint, APICredential_Token);&lt;br /&gt;
&lt;br /&gt;
	public static void main(String[] argv) throws Exception {&lt;br /&gt;
		HttpURLConnection connection = null;&lt;br /&gt;
        boolean acceptJSON = true;&lt;br /&gt;
        &lt;br /&gt;
        System.out.println(&amp;quot;SMS Message URL: &amp;quot; + SMSMsgUrl);&lt;br /&gt;
        &lt;br /&gt;
        try {&lt;br /&gt;
            URL smsMessageUrl = new URL(SMSMsgUrl);&lt;br /&gt;
            connection = (HttpURLConnection)smsMessageUrl.openConnection();&lt;br /&gt;
&lt;br /&gt;
    		connection.setRequestMethod(&amp;quot;POST&amp;quot;);&lt;br /&gt;
    		connection.setRequestProperty(&amp;quot;Content-Type&amp;quot;, &amp;quot;application/json&amp;quot;);&lt;br /&gt;
    		connection.setRequestProperty(&amp;quot;Accept&amp;quot;, acceptJSON ? &amp;quot;application/json&amp;quot; : &amp;quot;application/xml&amp;quot;);&lt;br /&gt;
    		connection.setRequestProperty(&amp;quot;User-Agent&amp;quot;, &amp;quot;UpsideJavaAgent&amp;quot;);&lt;br /&gt;
    		connection.setConnectTimeout(100 * 1000); // 100 seconds&lt;br /&gt;
    		connection.setReadTimeout(300 * 1000); // 300 seconds&lt;br /&gt;
    		connection.setDoOutput(true);&lt;br /&gt;
    		&lt;br /&gt;
            String type = &amp;quot;sms&amp;quot;; // see type list on wiki&lt;br /&gt;
            String message = &amp;quot;test sms message&amp;quot;;&lt;br /&gt;
            String recipient = &amp;quot;16047891236&amp;quot;; // number in E.164 format&lt;br /&gt;
            String encoding = &amp;quot;7&amp;quot;; // 7, 8 or 16&lt;br /&gt;
            &lt;br /&gt;
            String jsonObject = &amp;quot;{signature:\&amp;quot;&amp;quot; + APICredential_Signature + &amp;quot;\&amp;quot;&amp;quot;;&lt;br /&gt;
            jsonObject += &amp;quot;,type:\&amp;quot;&amp;quot; + type + &amp;quot;\&amp;quot;&amp;quot;;&lt;br /&gt;
            jsonObject += &amp;quot;,message:\&amp;quot;&amp;quot; + message + &amp;quot;\&amp;quot;&amp;quot;;&lt;br /&gt;
            jsonObject += &amp;quot;,recipient:\&amp;quot;&amp;quot; + recipient + &amp;quot;\&amp;quot;&amp;quot;;&lt;br /&gt;
            jsonObject += &amp;quot;,encoding:\&amp;quot;&amp;quot; + encoding + &amp;quot;\&amp;quot;}&amp;quot;;&lt;br /&gt;
            &lt;br /&gt;
    		PrintWriter pw = new PrintWriter(connection.getOutputStream());&lt;br /&gt;
    		pw.println(jsonObject);&lt;br /&gt;
    		pw.close();&lt;br /&gt;
&lt;br /&gt;
			InputStream input = null;&lt;br /&gt;
			try {&lt;br /&gt;
				input = connection.getInputStream();&lt;br /&gt;
			} catch (Exception e) {&lt;br /&gt;
				input = connection.getErrorStream();&lt;br /&gt;
			}&lt;br /&gt;
			StringBuffer sbResponse = new StringBuffer(1024);&lt;br /&gt;
			BufferedReader reader = new BufferedReader(new InputStreamReader(input));&lt;br /&gt;
			String inputLine = null;&lt;br /&gt;
			while ((inputLine = reader.readLine()) != null) {&lt;br /&gt;
				sbResponse.append(inputLine);&lt;br /&gt;
			}&lt;br /&gt;
			reader.close();&lt;br /&gt;
			&lt;br /&gt;
			String responseString = sbResponse.toString();&lt;br /&gt;
			System.out.println(&amp;quot;REST Response: &amp;quot; + responseString);&lt;br /&gt;
			&lt;br /&gt;
			RestResponse restResponse = null;&lt;br /&gt;
			if (acceptJSON) {&lt;br /&gt;
		        Map&amp;lt;String, Object&amp;gt; properties = new HashMap&amp;lt;String, Object&amp;gt;(2);&lt;br /&gt;
		        properties.put(JAXBContextProperties.MEDIA_TYPE, &amp;quot;application/json&amp;quot;);&lt;br /&gt;
		        properties.put(JAXBContextProperties.JSON_INCLUDE_ROOT, false);&lt;br /&gt;
		        JAXBContext jaxbContext = JAXBContext.newInstance(new Class[] {RestResponse.class, ObjectFactory.class}, properties);&lt;br /&gt;
		        Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();&lt;br /&gt;
		        StringReader sr = new StringReader(responseString);&lt;br /&gt;
		        StreamSource json = new StreamSource(sr);&lt;br /&gt;
		        restResponse = unmarshaller.unmarshal(json, RestResponse.class).getValue();&lt;br /&gt;
				&lt;br /&gt;
				// or use your favourite method to parse JSON object&lt;br /&gt;
			} else {&lt;br /&gt;
		        JAXBContext jaxbContext = JAXBContext.newInstance(RestResponse.class);&lt;br /&gt;
		        Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();&lt;br /&gt;
		        StringReader sr = new StringReader(responseString);&lt;br /&gt;
		        restResponse = (RestResponse) unmarshaller.unmarshal(sr);&lt;br /&gt;
		        &lt;br /&gt;
				// or use your favourite method to parse XML object&lt;br /&gt;
			}&lt;br /&gt;
    		&lt;br /&gt;
            if (restResponse != null)&lt;br /&gt;
            {&lt;br /&gt;
            	System.out.println(&amp;quot;Rest Response - HasException: &amp;quot; + restResponse.isHasException());&lt;br /&gt;
            	System.out.println(&amp;quot;Rest Response - Token: &amp;quot; + restResponse.getToken());&lt;br /&gt;
                if (restResponse.isHasException())&lt;br /&gt;
                {&lt;br /&gt;
                	System.out.println(&amp;quot;Rest Response - RestException.ErrorCode: &amp;quot; + restResponse.getRestException().getErrorCode());&lt;br /&gt;
                	System.out.println(&amp;quot;Rest Response - RestException.Message: &amp;quot; + restResponse.getRestException().getMessage());&lt;br /&gt;
                    if (restResponse.getRestException().getStatus() != null)&lt;br /&gt;
                    	System.out.println(&amp;quot;Rest Response - RestException.Status: &amp;quot; + restResponse.getRestException().getStatus());&lt;br /&gt;
                }&lt;br /&gt;
                else&lt;br /&gt;
                {&lt;br /&gt;
                	System.out.println(&amp;quot;Rest Response - SMSMessage.Status: &amp;quot; + restResponse.getSMSMessage().getStatus());&lt;br /&gt;
                	System.out.println(&amp;quot;Rest Response - SMSMessage.Recipient: &amp;quot; + restResponse.getSMSMessage().getRecipient());&lt;br /&gt;
                	System.out.println(&amp;quot;Rest Response - SMSMessage.Body: &amp;quot; + restResponse.getSMSMessage().getBody());&lt;br /&gt;
                	System.out.println(&amp;quot;Rest Response - SMSMessage.Type: &amp;quot; + restResponse.getSMSMessage().getType());&lt;br /&gt;
                	System.out.println(&amp;quot;Rest Response - SMSMessage.TrackingId: &amp;quot; + restResponse.getSMSMessage().getTrackingId());&lt;br /&gt;
                    if (&amp;quot;REJECTED&amp;quot;.equals(restResponse.getSMSMessage().getStatus()))&lt;br /&gt;
                    	System.out.println(&amp;quot;Rest Response - SMSMessage.RejectReason: &amp;quot; + restResponse.getSMSMessage().getRejectReason());&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
            	System.out.println(&amp;quot;Can't get rest response object&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
			&lt;br /&gt;
        } catch (Exception e) {&lt;br /&gt;
        	System.out.println(&amp;quot;Error in calling API - &amp;quot; + e.getMessage());&lt;br /&gt;
        	e.printStackTrace();&lt;br /&gt;
        } finally {&lt;br /&gt;
			if (connection != null) {&lt;br /&gt;
				connection.disconnect();&lt;br /&gt;
			}&lt;br /&gt;
        }&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
@XmlRootElement(name=&amp;quot;RestResponse&amp;quot;)&lt;br /&gt;
@XmlAccessorType(XmlAccessType.FIELD)&lt;br /&gt;
class RestResponse&lt;br /&gt;
{&lt;br /&gt;
	@XmlElement(name = &amp;quot;HasException&amp;quot;)&lt;br /&gt;
    private boolean HasException;&lt;br /&gt;
	@XmlElement(name = &amp;quot;Token&amp;quot;)&lt;br /&gt;
    private String Token;&lt;br /&gt;
&lt;br /&gt;
	@XmlElement(name = &amp;quot;SMSMessage&amp;quot;)&lt;br /&gt;
    private SMSMessage SMSMessage;&lt;br /&gt;
	@XmlElement(name = &amp;quot;RestException&amp;quot;)&lt;br /&gt;
    private RestException RestException;&lt;br /&gt;
    &lt;br /&gt;
	public boolean isHasException() {&lt;br /&gt;
		return HasException;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	public void setHasException(boolean hasException) {&lt;br /&gt;
		HasException = hasException;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	public String getToken() {&lt;br /&gt;
		return Token;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	public void setToken(String token) {&lt;br /&gt;
		Token = token;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	public SMSMessage getSMSMessage() {&lt;br /&gt;
		return SMSMessage;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	public void setSMSMessage(SMSMessage sMSMessage) {&lt;br /&gt;
		SMSMessage = sMSMessage;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	public RestException getRestException() {&lt;br /&gt;
		return RestException;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	public void setRestException(RestException restException) {&lt;br /&gt;
		RestException = restException;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@XmlAccessorType(XmlAccessType.FIELD)&lt;br /&gt;
class SMSMessage&lt;br /&gt;
{&lt;br /&gt;
	@XmlElement(name = &amp;quot;Status&amp;quot;)&lt;br /&gt;
    private String Status;&lt;br /&gt;
	@XmlElement(name = &amp;quot;Recipient&amp;quot;)&lt;br /&gt;
    private String Recipient;&lt;br /&gt;
	@XmlElement(name = &amp;quot;Body&amp;quot;)&lt;br /&gt;
    private String Body;&lt;br /&gt;
	@XmlElement(name = &amp;quot;Type&amp;quot;)&lt;br /&gt;
    private String Type;&lt;br /&gt;
	@XmlElement(name = &amp;quot;TrackingId&amp;quot;)&lt;br /&gt;
    private String TrackingId;&lt;br /&gt;
	@XmlElement(name = &amp;quot;RejectReason&amp;quot;)&lt;br /&gt;
    private String RejectReason;&lt;br /&gt;
    &lt;br /&gt;
	public String getStatus() {&lt;br /&gt;
		return Status;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	public void setStatus(String status) {&lt;br /&gt;
		Status = status;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	public String getRecipient() {&lt;br /&gt;
		return Recipient;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	public void setRecipient(String recipient) {&lt;br /&gt;
		Recipient = recipient;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	public String getBody() {&lt;br /&gt;
		return Body;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	public void setBody(String body) {&lt;br /&gt;
		Body = body;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	public String getType() {&lt;br /&gt;
		return Type;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	public void setType(String type) {&lt;br /&gt;
		Type = type;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	public String getTrackingId() {&lt;br /&gt;
		return TrackingId;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	public void setTrackingId(String trackingId) {&lt;br /&gt;
		TrackingId = trackingId;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	public String getRejectReason() {&lt;br /&gt;
		return RejectReason;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	public void setRejectReason(String rejectReason) {&lt;br /&gt;
		RejectReason = rejectReason;&lt;br /&gt;
	}&lt;br /&gt;
    &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@XmlAccessorType(XmlAccessType.FIELD)&lt;br /&gt;
class RestException&lt;br /&gt;
{&lt;br /&gt;
	@XmlElement(name = &amp;quot;ErrorCode&amp;quot;)&lt;br /&gt;
    private int ErrorCode;&lt;br /&gt;
	@XmlElement(name = &amp;quot;Message&amp;quot;)&lt;br /&gt;
    private String Message;&lt;br /&gt;
	@XmlElement(name = &amp;quot;Status&amp;quot;)&lt;br /&gt;
    private String Status;&lt;br /&gt;
    &lt;br /&gt;
	public int getErrorCode() {&lt;br /&gt;
		return ErrorCode;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	public void setErrorCode(int errorCode) {&lt;br /&gt;
		ErrorCode = errorCode;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	public String getMessage() {&lt;br /&gt;
		return Message;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	public void setMessage(String message) {&lt;br /&gt;
		Message = message;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	public String getStatus() {&lt;br /&gt;
		return Status;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	public void setStatus(String status) {&lt;br /&gt;
		Status = status;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Bzurkovic</name></author>	</entry>

	<entry>
		<id>http://docs.upsidewireless.com/index.php?title=Java_JSON_Example</id>
		<title>Java JSON Example</title>
		<link rel="alternate" type="text/html" href="http://docs.upsidewireless.com/index.php?title=Java_JSON_Example"/>
				<updated>2018-02-09T23:57:27Z</updated>
		
		<summary type="html">&lt;p&gt;Bzurkovic: Java JSON Example&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;import java.io.BufferedReader;&lt;br /&gt;
import java.io.InputStream;&lt;br /&gt;
import java.io.InputStreamReader;&lt;br /&gt;
import java.io.PrintWriter;&lt;br /&gt;
import java.io.StringReader;&lt;br /&gt;
import java.net.HttpURLConnection;&lt;br /&gt;
import java.net.URL;&lt;br /&gt;
import java.net.URLEncoder;&lt;br /&gt;
import java.util.HashMap;&lt;br /&gt;
import java.util.Map;&lt;br /&gt;
&lt;br /&gt;
import javax.xml.bind.JAXBContext;&lt;br /&gt;
import javax.xml.bind.Unmarshaller;&lt;br /&gt;
import javax.xml.bind.annotation.XmlAccessType;&lt;br /&gt;
import javax.xml.bind.annotation.XmlAccessorType;&lt;br /&gt;
import javax.xml.bind.annotation.XmlElement;&lt;br /&gt;
import javax.xml.bind.annotation.XmlRootElement;&lt;br /&gt;
import javax.xml.transform.stream.StreamSource;&lt;br /&gt;
&lt;br /&gt;
import org.eclipse.persistence.jaxb.JAXBContextProperties;&lt;br /&gt;
import org.eclipse.persistence.jaxb.xmlmodel.ObjectFactory;&lt;br /&gt;
&lt;br /&gt;
public class TestUpsideRESTAPIJSON {&lt;br /&gt;
	&lt;br /&gt;
	public static final String APIEndPoint = &amp;quot;https://secureapi.upsidewireless.com&amp;quot;; // or &amp;quot;http://api.upsidewireless.com&amp;quot;&lt;br /&gt;
	public static final String APICredential_Token =&amp;quot;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;quot;;&lt;br /&gt;
	public static final String APICredential_Signature = &amp;quot;xxxxxxxxfyqQx95Gxxxxxxxx&amp;quot;;&lt;br /&gt;
	&lt;br /&gt;
	private static String SMSMsgUrl = String.format(&amp;quot;%s/RESTv1/%s/Message&amp;quot;, APIEndPoint, APICredential_Token);&lt;br /&gt;
&lt;br /&gt;
	public static void main(String[] argv) throws Exception {&lt;br /&gt;
		HttpURLConnection connection = null;&lt;br /&gt;
        boolean acceptJSON = true;&lt;br /&gt;
        &lt;br /&gt;
        System.out.println(&amp;quot;SMS Message URL: &amp;quot; + SMSMsgUrl);&lt;br /&gt;
        &lt;br /&gt;
        try {&lt;br /&gt;
            URL smsMessageUrl = new URL(SMSMsgUrl);&lt;br /&gt;
            connection = (HttpURLConnection)smsMessageUrl.openConnection();&lt;br /&gt;
&lt;br /&gt;
    		connection.setRequestMethod(&amp;quot;POST&amp;quot;);&lt;br /&gt;
    		connection.setRequestProperty(&amp;quot;Content-Type&amp;quot;, &amp;quot;application/json&amp;quot;);&lt;br /&gt;
    		connection.setRequestProperty(&amp;quot;Accept&amp;quot;, acceptJSON ? &amp;quot;application/json&amp;quot; : &amp;quot;application/xml&amp;quot;);&lt;br /&gt;
    		connection.setRequestProperty(&amp;quot;User-Agent&amp;quot;, &amp;quot;UpsideJavaAgent&amp;quot;);&lt;br /&gt;
    		connection.setConnectTimeout(100 * 1000); // 100 seconds&lt;br /&gt;
    		connection.setReadTimeout(300 * 1000); // 300 seconds&lt;br /&gt;
    		connection.setDoOutput(true);&lt;br /&gt;
    		&lt;br /&gt;
            String type = &amp;quot;sms&amp;quot;; // see type list on wiki&lt;br /&gt;
            String message = &amp;quot;test sms message&amp;quot;;&lt;br /&gt;
            String recipient = &amp;quot;16047891236&amp;quot;; // number in E.164 format&lt;br /&gt;
            String encoding = &amp;quot;7&amp;quot;; // 7, 8 or 16&lt;br /&gt;
            &lt;br /&gt;
            String jsonObject = &amp;quot;{signature:\&amp;quot;&amp;quot; + APICredential_Signature + &amp;quot;\&amp;quot;&amp;quot;;&lt;br /&gt;
            jsonObject += &amp;quot;,type:\&amp;quot;&amp;quot; + type + &amp;quot;\&amp;quot;&amp;quot;;&lt;br /&gt;
            jsonObject += &amp;quot;,message:\&amp;quot;&amp;quot; + message + &amp;quot;\&amp;quot;&amp;quot;;&lt;br /&gt;
            jsonObject += &amp;quot;,recipient:\&amp;quot;&amp;quot; + recipient + &amp;quot;\&amp;quot;&amp;quot;;&lt;br /&gt;
            jsonObject += &amp;quot;,encoding:\&amp;quot;&amp;quot; + encoding + &amp;quot;\&amp;quot;}&amp;quot;;&lt;br /&gt;
            &lt;br /&gt;
    		PrintWriter pw = new PrintWriter(connection.getOutputStream());&lt;br /&gt;
    		pw.println(jsonObject);&lt;br /&gt;
    		pw.close();&lt;br /&gt;
&lt;br /&gt;
			InputStream input = null;&lt;br /&gt;
			try {&lt;br /&gt;
				input = connection.getInputStream();&lt;br /&gt;
			} catch (Exception e) {&lt;br /&gt;
				input = connection.getErrorStream();&lt;br /&gt;
			}&lt;br /&gt;
			StringBuffer sbResponse = new StringBuffer(1024);&lt;br /&gt;
			BufferedReader reader = new BufferedReader(new InputStreamReader(input));&lt;br /&gt;
			String inputLine = null;&lt;br /&gt;
			while ((inputLine = reader.readLine()) != null) {&lt;br /&gt;
				sbResponse.append(inputLine);&lt;br /&gt;
			}&lt;br /&gt;
			reader.close();&lt;br /&gt;
			&lt;br /&gt;
			String responseString = sbResponse.toString();&lt;br /&gt;
			System.out.println(&amp;quot;REST Response: &amp;quot; + responseString);&lt;br /&gt;
			&lt;br /&gt;
			RestResponse restResponse = null;&lt;br /&gt;
			if (acceptJSON) {&lt;br /&gt;
		        Map&amp;lt;String, Object&amp;gt; properties = new HashMap&amp;lt;String, Object&amp;gt;(2);&lt;br /&gt;
		        properties.put(JAXBContextProperties.MEDIA_TYPE, &amp;quot;application/json&amp;quot;);&lt;br /&gt;
		        properties.put(JAXBContextProperties.JSON_INCLUDE_ROOT, false);&lt;br /&gt;
		        JAXBContext jaxbContext = JAXBContext.newInstance(new Class[] {RestResponse.class, ObjectFactory.class}, properties);&lt;br /&gt;
		        Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();&lt;br /&gt;
		        StringReader sr = new StringReader(responseString);&lt;br /&gt;
		        StreamSource json = new StreamSource(sr);&lt;br /&gt;
		        restResponse = unmarshaller.unmarshal(json, RestResponse.class).getValue();&lt;br /&gt;
				&lt;br /&gt;
				// or use your favourite method to parse JSON object&lt;br /&gt;
			} else {&lt;br /&gt;
		        JAXBContext jaxbContext = JAXBContext.newInstance(RestResponse.class);&lt;br /&gt;
		        Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();&lt;br /&gt;
		        StringReader sr = new StringReader(responseString);&lt;br /&gt;
		        restResponse = (RestResponse) unmarshaller.unmarshal(sr);&lt;br /&gt;
		        &lt;br /&gt;
				// or use your favourite method to parse XML object&lt;br /&gt;
			}&lt;br /&gt;
    		&lt;br /&gt;
            if (restResponse != null)&lt;br /&gt;
            {&lt;br /&gt;
            	System.out.println(&amp;quot;Rest Response - HasException: &amp;quot; + restResponse.isHasException());&lt;br /&gt;
            	System.out.println(&amp;quot;Rest Response - Token: &amp;quot; + restResponse.getToken());&lt;br /&gt;
                if (restResponse.isHasException())&lt;br /&gt;
                {&lt;br /&gt;
                	System.out.println(&amp;quot;Rest Response - RestException.ErrorCode: &amp;quot; + restResponse.getRestException().getErrorCode());&lt;br /&gt;
                	System.out.println(&amp;quot;Rest Response - RestException.Message: &amp;quot; + restResponse.getRestException().getMessage());&lt;br /&gt;
                    if (restResponse.getRestException().getStatus() != null)&lt;br /&gt;
                    	System.out.println(&amp;quot;Rest Response - RestException.Status: &amp;quot; + restResponse.getRestException().getStatus());&lt;br /&gt;
                }&lt;br /&gt;
                else&lt;br /&gt;
                {&lt;br /&gt;
                	System.out.println(&amp;quot;Rest Response - SMSMessage.Status: &amp;quot; + restResponse.getSMSMessage().getStatus());&lt;br /&gt;
                	System.out.println(&amp;quot;Rest Response - SMSMessage.Recipient: &amp;quot; + restResponse.getSMSMessage().getRecipient());&lt;br /&gt;
                	System.out.println(&amp;quot;Rest Response - SMSMessage.Body: &amp;quot; + restResponse.getSMSMessage().getBody());&lt;br /&gt;
                	System.out.println(&amp;quot;Rest Response - SMSMessage.Type: &amp;quot; + restResponse.getSMSMessage().getType());&lt;br /&gt;
                	System.out.println(&amp;quot;Rest Response - SMSMessage.TrackingId: &amp;quot; + restResponse.getSMSMessage().getTrackingId());&lt;br /&gt;
                    if (&amp;quot;REJECTED&amp;quot;.equals(restResponse.getSMSMessage().getStatus()))&lt;br /&gt;
                    	System.out.println(&amp;quot;Rest Response - SMSMessage.RejectReason: &amp;quot; + restResponse.getSMSMessage().getRejectReason());&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
            	System.out.println(&amp;quot;Can't get rest response object&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
			&lt;br /&gt;
        } catch (Exception e) {&lt;br /&gt;
        	System.out.println(&amp;quot;Error in calling API - &amp;quot; + e.getMessage());&lt;br /&gt;
        	e.printStackTrace();&lt;br /&gt;
        } finally {&lt;br /&gt;
			if (connection != null) {&lt;br /&gt;
				connection.disconnect();&lt;br /&gt;
			}&lt;br /&gt;
        }&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
@XmlRootElement(name=&amp;quot;RestResponse&amp;quot;)&lt;br /&gt;
@XmlAccessorType(XmlAccessType.FIELD)&lt;br /&gt;
class RestResponse&lt;br /&gt;
{&lt;br /&gt;
	@XmlElement(name = &amp;quot;HasException&amp;quot;)&lt;br /&gt;
    private boolean HasException;&lt;br /&gt;
	@XmlElement(name = &amp;quot;Token&amp;quot;)&lt;br /&gt;
    private String Token;&lt;br /&gt;
&lt;br /&gt;
	@XmlElement(name = &amp;quot;SMSMessage&amp;quot;)&lt;br /&gt;
    private SMSMessage SMSMessage;&lt;br /&gt;
	@XmlElement(name = &amp;quot;RestException&amp;quot;)&lt;br /&gt;
    private RestException RestException;&lt;br /&gt;
    &lt;br /&gt;
	public boolean isHasException() {&lt;br /&gt;
		return HasException;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	public void setHasException(boolean hasException) {&lt;br /&gt;
		HasException = hasException;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	public String getToken() {&lt;br /&gt;
		return Token;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	public void setToken(String token) {&lt;br /&gt;
		Token = token;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	public SMSMessage getSMSMessage() {&lt;br /&gt;
		return SMSMessage;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	public void setSMSMessage(SMSMessage sMSMessage) {&lt;br /&gt;
		SMSMessage = sMSMessage;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	public RestException getRestException() {&lt;br /&gt;
		return RestException;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	public void setRestException(RestException restException) {&lt;br /&gt;
		RestException = restException;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@XmlAccessorType(XmlAccessType.FIELD)&lt;br /&gt;
class SMSMessage&lt;br /&gt;
{&lt;br /&gt;
	@XmlElement(name = &amp;quot;Status&amp;quot;)&lt;br /&gt;
    private String Status;&lt;br /&gt;
	@XmlElement(name = &amp;quot;Recipient&amp;quot;)&lt;br /&gt;
    private String Recipient;&lt;br /&gt;
	@XmlElement(name = &amp;quot;Body&amp;quot;)&lt;br /&gt;
    private String Body;&lt;br /&gt;
	@XmlElement(name = &amp;quot;Type&amp;quot;)&lt;br /&gt;
    private String Type;&lt;br /&gt;
	@XmlElement(name = &amp;quot;TrackingId&amp;quot;)&lt;br /&gt;
    private String TrackingId;&lt;br /&gt;
	@XmlElement(name = &amp;quot;RejectReason&amp;quot;)&lt;br /&gt;
    private String RejectReason;&lt;br /&gt;
    &lt;br /&gt;
	public String getStatus() {&lt;br /&gt;
		return Status;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	public void setStatus(String status) {&lt;br /&gt;
		Status = status;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	public String getRecipient() {&lt;br /&gt;
		return Recipient;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	public void setRecipient(String recipient) {&lt;br /&gt;
		Recipient = recipient;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	public String getBody() {&lt;br /&gt;
		return Body;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	public void setBody(String body) {&lt;br /&gt;
		Body = body;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	public String getType() {&lt;br /&gt;
		return Type;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	public void setType(String type) {&lt;br /&gt;
		Type = type;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	public String getTrackingId() {&lt;br /&gt;
		return TrackingId;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	public void setTrackingId(String trackingId) {&lt;br /&gt;
		TrackingId = trackingId;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	public String getRejectReason() {&lt;br /&gt;
		return RejectReason;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	public void setRejectReason(String rejectReason) {&lt;br /&gt;
		RejectReason = rejectReason;&lt;br /&gt;
	}&lt;br /&gt;
    &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@XmlAccessorType(XmlAccessType.FIELD)&lt;br /&gt;
class RestException&lt;br /&gt;
{&lt;br /&gt;
	@XmlElement(name = &amp;quot;ErrorCode&amp;quot;)&lt;br /&gt;
    private int ErrorCode;&lt;br /&gt;
	@XmlElement(name = &amp;quot;Message&amp;quot;)&lt;br /&gt;
    private String Message;&lt;br /&gt;
	@XmlElement(name = &amp;quot;Status&amp;quot;)&lt;br /&gt;
    private String Status;&lt;br /&gt;
    &lt;br /&gt;
	public int getErrorCode() {&lt;br /&gt;
		return ErrorCode;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	public void setErrorCode(int errorCode) {&lt;br /&gt;
		ErrorCode = errorCode;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	public String getMessage() {&lt;br /&gt;
		return Message;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	public void setMessage(String message) {&lt;br /&gt;
		Message = message;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	public String getStatus() {&lt;br /&gt;
		return Status;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	public void setStatus(String status) {&lt;br /&gt;
		Status = status;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Bzurkovic</name></author>	</entry>

	<entry>
		<id>http://docs.upsidewireless.com/index.php?title=Send_REST</id>
		<title>Send REST</title>
		<link rel="alternate" type="text/html" href="http://docs.upsidewireless.com/index.php?title=Send_REST"/>
				<updated>2018-02-09T23:56:50Z</updated>
		
		<summary type="html">&lt;p&gt;Bzurkovic: /* Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Upsidewireless REST API '''&lt;br /&gt;
&lt;br /&gt;
There are two endpoints of Upsidewireless REST API, [https://secureapi.upsidewireless.com https://secureapi.upsidewireless.com] and [http://api.upsidewireless.com http://api.upsidewireless.com]. If you care about more security than performance, you should use the secure endpoint. However, in this case you will need to install certificate for secure, authenticated communication. We recommend you select the secure option. &lt;br /&gt;
&lt;br /&gt;
In order to use Upsidewireless REST API, you need have an account that has API permissions and get your API credential (token and signature) on your account page. Token is similar to username and signature is similar to password. They are needed in every single call to REST API.&lt;br /&gt;
&lt;br /&gt;
There are two kinds of response of each API call, JSON or XML. You can either use HTTP header (&amp;quot;Accept&amp;quot;) or a special HTTP parameter (&amp;quot;responsetype&amp;quot;) to specify what kind of response you want. If you want using HTTP header, set either &amp;quot;application/json&amp;quot; or &amp;quot;application/xml&amp;quot; in Accept header. If you want using HTTP parameter, set either &amp;quot;JSON&amp;quot; or &amp;quot;XML&amp;quot; to responsetype parameter. If no response type specified, default response will always be in XML format. Use HTTP header is a highly recommended way to do so.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1. SMS Message API'''&lt;br /&gt;
&lt;br /&gt;
'''API URI: /RESTv1/{token}/Message'''&lt;br /&gt;
&lt;br /&gt;
'''Support method: HTTP POST '''&lt;br /&gt;
&lt;br /&gt;
The following parameters are all '''required''' in your POST to send the message:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|signature||One of the API credential, similar to a password. It can be found in your account page.&lt;br /&gt;
|-&lt;br /&gt;
|type||The message type. Different type requires a different set of additional parameters.&lt;br /&gt;
|-&lt;br /&gt;
|message||The text of the message you want to send. For some types, this message must be pre-encoded&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
According to different type, a different set of additional parameters is required&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_test''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
'''Additional parameter for type: &amp;quot;sms''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
'''Additional parameters for type: &amp;quot;mms''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|mediaUrl||The URL of the media you wish to send out with the message. gif , png and jpeg content is currently supported. The media size limit is 5MB. If you wish to send more than one image in the message, please provide multiple URLs separated by comma in this parameter.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameter for type: &amp;quot;sms_port''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|port||Port number – valid value is &amp;gt; 0 and &amp;lt; 65535, parameter message must be pre-encoded.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_multi''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212. This parameter can include multiple phone numbers, separated by comma. &lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_group''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|groupName||The name of contact group in your account&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_service_group''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|serviceName||The name of your PSMS service&lt;br /&gt;
|-&lt;br /&gt;
|groupName||The contact group name of your PSMS service&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_dedicated''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|carrierCode||The carrier code that recipient phone number belongs to. This parameter is mandatory if dedicated number is a short code.&lt;br /&gt;
|-&lt;br /&gt;
|dedicatedNumber||The dedicated number which will deliver the message. It could be a long code or a short code.&lt;br /&gt;
|-&lt;br /&gt;
|tariff||The amount that recipient number to be charged&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_dedicated_port''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|port||Port number – valid value is &amp;gt; 0 and &amp;lt; 65535, parameter message must be pre-encoded.&lt;br /&gt;
|-&lt;br /&gt;
|carrierCode||The carrier code that recipient phone number belongs to. This parameter is mandatory if dedicated number is a short code.&lt;br /&gt;
|-&lt;br /&gt;
|dedicatedNumber||The dedicated number which will deliver the message. It could be a long code or a short code.&lt;br /&gt;
|-&lt;br /&gt;
|tariff||The amount that recipient number to be charged&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_defer''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|DelayHours||The hours to delay.&lt;br /&gt;
|-&lt;br /&gt;
|DelayMinutes||The minutes to delay&lt;br /&gt;
|-&lt;br /&gt;
|label||The label of this delayed event&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_flash''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|||The parameter message must be pre-encoded.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_wappush''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|url||The pre-encoded URL&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If no exception in API call, the following response (XML format) will be returned:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;RestResponse&amp;gt;&lt;br /&gt;
:&amp;lt;HasException&amp;gt;false&amp;lt;/HasException&amp;gt;&lt;br /&gt;
:&amp;lt;Token&amp;gt;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;lt;/Token&amp;gt;&lt;br /&gt;
:&amp;lt; SMSMessage&amp;gt;&lt;br /&gt;
::&amp;lt;Status&amp;gt;QUEUED or REJECTED&amp;lt;/Status&amp;gt;&lt;br /&gt;
::&amp;lt; Body&amp;gt;sms message&amp;lt;/ Body&amp;gt;&lt;br /&gt;
::&amp;lt; Recipient&amp;gt;16047891236&amp;lt;/ Recipient&amp;gt;&lt;br /&gt;
::&amp;lt;Type&amp;gt;sms&amp;lt;/Type&amp;gt;&lt;br /&gt;
::&amp;lt;TrackingId&amp;gt;MTID256749777469712848&amp;lt;/TrackingId&amp;gt;&lt;br /&gt;
::&amp;lt;RejectReason&amp;gt; &amp;lt;/RejectReason&amp;gt;&lt;br /&gt;
:&amp;lt;/ SMSMessage&amp;gt;&lt;br /&gt;
&amp;lt;/RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In SMSMessage, TrackingId and RejectReason are optional. If Status is &amp;quot;QUEUED&amp;quot;, for non-multiple recipient type, a unique TrackingId is returned for future query. If Status is &amp;quot;REJECTED&amp;quot;, RejectReason includes the reject reason. If type is sms_test, the successful status is &amp;quot;PASSED&amp;quot;, not &amp;quot;QUEUED&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Or in JSON format''' '''&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;HasException&amp;quot;: false,&lt;br /&gt;
  &amp;quot;Token&amp;quot;: &amp;quot;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;quot;,&lt;br /&gt;
  &amp;quot;SMSMessage&amp;quot;: {&lt;br /&gt;
    &amp;quot;Status&amp;quot;: &amp;quot;QUEUED&amp;quot; or &amp;quot;REJECTED&amp;quot;,&lt;br /&gt;
    &amp;quot;Body&amp;quot;: &amp;quot;sms message&amp;quot;,&lt;br /&gt;
    &amp;quot;Recipient&amp;quot;: &amp;quot;16047891236&amp;quot;,&lt;br /&gt;
    &amp;quot;Type&amp;quot;: &amp;quot;sms&amp;quot;,&lt;br /&gt;
    &amp;quot;TrackingId&amp;quot;: &amp;quot;MTID256749777469712848&amp;quot;,&lt;br /&gt;
    &amp;quot;RejectReason&amp;quot;: &amp;quot;Failure message&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2. SMS Contact API'''&lt;br /&gt;
&lt;br /&gt;
'''API URI: /RESTv1/{token}/Contact'''&lt;br /&gt;
&lt;br /&gt;
'''Support method: HTTP POST '''&lt;br /&gt;
&lt;br /&gt;
The following parameters are '''required''' in your POST to add contact:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|signature||One of the API credential, similar to a password. It can be found in your account page.&lt;br /&gt;
|-&lt;br /&gt;
|mobile||The mobile number to be added as an SMS contact, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212. If mobile number already exists, existing record will be updated.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The following parameters are optional:&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|type||The mobile type, such as Android, iPhone.&lt;br /&gt;
|-&lt;br /&gt;
|email||The email of this SMS contact.&lt;br /&gt;
|-&lt;br /&gt;
|firstname||The given name of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|lastname||The surname of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|address||The living or working address of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|city||The living or working city of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|zipcode||The zipcode of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|landline||The landline of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|title||The title of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|role||The role of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|organization||The organization this SMS contact belongs to&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If no exception in API call, the following response (XML format) will be returned:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;RestResponse&amp;gt;&lt;br /&gt;
:&amp;lt;HasException&amp;gt;false&amp;lt;/HasException&amp;gt;&lt;br /&gt;
:&amp;lt;Token&amp;gt;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;lt;/Token&amp;gt;&lt;br /&gt;
:&amp;lt;SMSContact&amp;gt;&lt;br /&gt;
::&amp;lt;success&amp;gt;true or false&amp;lt;/success&amp;gt;&lt;br /&gt;
::&amp;lt;number&amp;gt;16047891236&amp;lt;/number&amp;gt;&lt;br /&gt;
::&amp;lt;message&amp;gt;Success or failure message&amp;lt;/message&amp;gt;&lt;br /&gt;
:&amp;lt;/SMSContact&amp;gt;&lt;br /&gt;
&amp;lt;/RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Or in JSON format''' '''&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;HasException&amp;quot;: false,&lt;br /&gt;
  &amp;quot;Token&amp;quot;: &amp;quot;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;quot;,&lt;br /&gt;
  &amp;quot; SMSContact &amp;quot;: {&lt;br /&gt;
    &amp;quot;success&amp;quot;: true or false,&lt;br /&gt;
    &amp;quot;number&amp;quot;: &amp;quot;16047891236&amp;quot;,&lt;br /&gt;
    &amp;quot;message&amp;quot;: &amp;quot;Success or failure message.&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''3. Number Validation API'''&lt;br /&gt;
&lt;br /&gt;
'''API URI: /RESTv1/{token}/''' '''NumberValidation'''&lt;br /&gt;
&lt;br /&gt;
'''Support method: HTTP POST '''&lt;br /&gt;
&lt;br /&gt;
The following parameters are '''required''' in your POST to do number validation:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|signature||One of the API credential, similar to a password. It can be found in your account page.&lt;br /&gt;
|-&lt;br /&gt;
|type||The validation type. There are three possible types. 1 – &amp;quot;quick&amp;quot; and it will cost 0.1 credits; 2 – &amp;quot;route&amp;quot; and it will cost 0.25 credits; 3 – &amp;quot;hlr&amp;quot; and it will cost 0.5 credits.&lt;br /&gt;
|-&lt;br /&gt;
|number||The phone number to be validated, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If no exception in API call, the following response (XML format) will be returned:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;HasException&amp;gt;false&amp;lt;/HasException&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;Token&amp;gt;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;lt;/Token&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;NumberValidation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;success&amp;gt;true or false&amp;lt;/success&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;number&amp;gt;16047891236&amp;lt;/number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;message&amp;gt;Success or failure message&amp;lt;/message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;country&amp;gt;Canada&amp;lt;/country&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;network&amp;gt;British Columbia&amp;lt;/network&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;HLRLookupResultObject&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:::&amp;lt;status&amp;gt;OK&amp;lt;/status&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:::&amp;lt;number&amp;gt;16047891236&amp;lt;/number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:::&amp;lt;MCC&amp;gt;302&amp;lt;/MCC&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:::&amp;lt;MNC&amp;gt;370&amp;lt;/MNC&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:::&amp;lt;operatorName&amp;gt;Microcell&amp;lt;/operatorName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:::&amp;lt;operatorCountry&amp;gt;Canada&amp;lt;/operatorCountry&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:::&amp;lt;message&amp;gt;&amp;lt;/message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;/HLRLookupResultObject&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;/NumberValidation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In NumberValidation, country, network and  HLRLookupResultObject are optional, depends on the query type. If type is &amp;quot;quick&amp;quot;, only country returned; if type is &amp;quot;route&amp;quot;, country and network returned; if type is &amp;quot;hlr&amp;quot;, only HLRLookupResultObject returned.&lt;br /&gt;
&lt;br /&gt;
Or in JSON format&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;HasException&amp;quot;: false,&lt;br /&gt;
  &amp;quot;Token&amp;quot;: &amp;quot;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;quot;,&lt;br /&gt;
  &amp;quot;NumberValidation&amp;quot;: {&lt;br /&gt;
    &amp;quot;success&amp;quot;: true or false,&lt;br /&gt;
    &amp;quot;number&amp;quot;: &amp;quot;16047891236&amp;quot;,&lt;br /&gt;
    &amp;quot;message&amp;quot;: &amp;quot;Success or failure message.&amp;quot;,&lt;br /&gt;
    &amp;quot;country&amp;quot;: &amp;quot;Canada&amp;quot;,&lt;br /&gt;
    &amp;quot;network&amp;quot;: &amp;quot;British Columbia&amp;quot;&lt;br /&gt;
    &amp;quot;HLRLookupResultObject&amp;quot;: {&lt;br /&gt;
      &amp;quot;status&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
      &amp;quot;number&amp;quot;: &amp;quot;16047891236&amp;quot;,&lt;br /&gt;
      &amp;quot;MCC&amp;quot;: &amp;quot;302&amp;quot;,&lt;br /&gt;
      &amp;quot;MNC&amp;quot;: &amp;quot;370&amp;quot;,&lt;br /&gt;
      &amp;quot;operatorName&amp;quot;: &amp;quot;Microcell&amp;quot;,&lt;br /&gt;
      &amp;quot;operatorCountry&amp;quot;: &amp;quot;Canada&amp;quot;,&lt;br /&gt;
      &amp;quot;message&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The entire HLRLookupResultObject is as following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;HLRLookupResultObject&amp;gt;&lt;br /&gt;
:&amp;lt;status&amp;gt;&amp;lt;/status&amp;gt;&lt;br /&gt;
:&amp;lt;number&amp;gt;&amp;lt;/number&amp;gt;&lt;br /&gt;
:&amp;lt;MCC&amp;gt;&amp;lt;/MCC&amp;gt;&lt;br /&gt;
:&amp;lt;MNC&amp;gt;&amp;lt;/MNC&amp;gt;&lt;br /&gt;
:&amp;lt;operatorName&amp;gt;&amp;lt;/operatorName&amp;gt;&lt;br /&gt;
:&amp;lt;operatorCountry&amp;gt;&amp;lt;/operatorCountry&amp;gt;&lt;br /&gt;
:&amp;lt;IMSI&amp;gt;&amp;lt;/IMSI&amp;gt;&lt;br /&gt;
:&amp;lt;MSC&amp;gt;&amp;lt;/MSC&amp;gt;&lt;br /&gt;
:&amp;lt;mscOperator&amp;gt;&amp;lt;/mscOperator&amp;gt;&lt;br /&gt;
:&amp;lt;mscMCC&amp;gt;&amp;lt;/mscMCC&amp;gt;&lt;br /&gt;
:&amp;lt;mscMNC&amp;gt;&amp;lt;/mscMNC&amp;gt;&lt;br /&gt;
:&amp;lt;mscCountry&amp;gt;&amp;lt;/mscCountry&amp;gt;&lt;br /&gt;
:&amp;lt;mscLocation&amp;gt;&amp;lt;/mscLocation&amp;gt;&lt;br /&gt;
:&amp;lt;message&amp;gt;&amp;lt;/message&amp;gt;&lt;br /&gt;
&amp;lt;/HLRLookupResultObject&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Only status, number and message are mandatory, others are optional.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''REST API Exception'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If there is any exception in REST API call, the HasException flag will be set to true and the following response (XML format) will be returned:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;RestResponse&amp;gt;&lt;br /&gt;
:&amp;lt;HasException&amp;gt;true&amp;lt;/HasException&amp;gt;&lt;br /&gt;
:&amp;lt;Token&amp;gt;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;lt;/Token&amp;gt;&lt;br /&gt;
:&amp;lt;RestException&amp;gt;&lt;br /&gt;
::&amp;lt;ErrorCode&amp;gt;101&amp;lt;/ErrorCode&amp;gt;&lt;br /&gt;
::&amp;lt;Message&amp;gt;Unauthorized&amp;lt;/Message&amp;gt;&lt;br /&gt;
::&amp;lt;Status&amp;gt;401&amp;lt;/Status&amp;gt;&lt;br /&gt;
:&amp;lt;/RestException&amp;gt;&lt;br /&gt;
&amp;lt;/RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Or in JSON format''' '''&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;HasException&amp;quot;: true,&lt;br /&gt;
  &amp;quot;Token&amp;quot;: &amp;quot;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;quot;,&lt;br /&gt;
  &amp;quot;RestException&amp;quot;: {&lt;br /&gt;
    &amp;quot;ErrorCode&amp;quot;: &amp;quot;101&amp;quot;,&lt;br /&gt;
    &amp;quot;Message&amp;quot;: &amp;quot;Unauthorized&amp;quot;,&lt;br /&gt;
    &amp;quot;Status&amp;quot;: &amp;quot;401&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Status is HTTP status code and it is optional.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''ErrorCode and corresponding message:'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|'''ErrorCode'''||'''Message'''||'''Comments'''&lt;br /&gt;
|-&lt;br /&gt;
|100||Unsupported method||Wrong HTTP method&lt;br /&gt;
|-&lt;br /&gt;
|101||Unauthorized||API credential is wrong&lt;br /&gt;
|-&lt;br /&gt;
|102||No permission||API credential passed, but no permission&lt;br /&gt;
|-&lt;br /&gt;
|103||Runtime error||Runtime error during API call&lt;br /&gt;
|-&lt;br /&gt;
|||||&lt;br /&gt;
|-&lt;br /&gt;
|200||Zero balance||No credits to send a message&lt;br /&gt;
|-&lt;br /&gt;
|201||Invalid country||Can’t figure out a country with the recipient number&lt;br /&gt;
|-&lt;br /&gt;
|202||Invalid carrier code||The carrier code is incorrect&lt;br /&gt;
|-&lt;br /&gt;
|203||Number blocked||The recipient number is blocked by our system&lt;br /&gt;
|-&lt;br /&gt;
|204||Too many messages||Message is too long&lt;br /&gt;
|-&lt;br /&gt;
|205||Empty message||Empty message&lt;br /&gt;
|-&lt;br /&gt;
|206||No time for defer||The delay parameter is wrong&lt;br /&gt;
|-&lt;br /&gt;
|207||Unknown type||Unknown message type&lt;br /&gt;
|-&lt;br /&gt;
|208||Unimplemented type||The message type not implemented yet&lt;br /&gt;
|-&lt;br /&gt;
|||||&lt;br /&gt;
|-&lt;br /&gt;
|300||Mobile phone number is invalid||Invalid mobile number&lt;br /&gt;
|-&lt;br /&gt;
|301||Credit is not enough to perform validation. Please purchase more and try again||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
== '''Examples''' ==&lt;br /&gt;
&lt;br /&gt;
[[Java Example]]  |  [[CSharp Example]]  |  [[Java JSON Example]]  | [[CSharp JSON Example]]&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Bzurkovic</name></author>	</entry>

	<entry>
		<id>http://docs.upsidewireless.com/index.php?title=Carrier_codes</id>
		<title>Carrier codes</title>
		<link rel="alternate" type="text/html" href="http://docs.upsidewireless.com/index.php?title=Carrier_codes"/>
				<updated>2016-02-13T01:22:24Z</updated>
		
		<summary type="html">&lt;p&gt;Bzurkovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Carrier codes are needed when sending MT messages to US or Canadian telecom carriers in conjunction with a Short Code. The list below presents currently recognized codes that your application must pass as a parameter when requesting MT using EnterpriseSMS API:&lt;br /&gt;
&lt;br /&gt;
'''Canada'''&lt;br /&gt;
&lt;br /&gt;
* BELL (includes Solo Mobile) = 302651, 302610&lt;br /&gt;
* EASTLINK = 302270&lt;br /&gt;
* FIDO = 302370&lt;br /&gt;
* ROGERS  (includes Chatr)= 302720&lt;br /&gt;
* MTS = 302655&lt;br /&gt;
* MOBILICITY = 302320&lt;br /&gt;
* NB TEL = 302701&lt;br /&gt;
* QUEBECTEL = 302657&lt;br /&gt;
* VIDEOTRON = 302500&lt;br /&gt;
* SASK TEL = 302654&lt;br /&gt;
* TELUS (includes KOODO) = 302653&lt;br /&gt;
* VIRGIN =302001&lt;br /&gt;
* WIND MOBILE =302490&lt;br /&gt;
&lt;br /&gt;
'''USA'''&lt;br /&gt;
* AT&amp;amp;T = 310980&lt;br /&gt;
* Alaska Wireless = 310190&lt;br /&gt;
* ALLTEL = 310500&lt;br /&gt;
* CINCINNATI BELL = 310420&lt;br /&gt;
* CINGULAR = 310180&lt;br /&gt;
* CRICKET = 310016&lt;br /&gt;
* DOBSON = 310560&lt;br /&gt;
* NEXTEL = 316010&lt;br /&gt;
* SPRINT = 316110&lt;br /&gt;
* TMOBILE USA = 310660&lt;br /&gt;
* TESTING = 310014&lt;br /&gt;
* VERIZON = 310012&lt;br /&gt;
&lt;br /&gt;
Note: While all effort is made to keep the list up-to-date, changes in telecom ownership may invalidate this list. Please contact us for latest changes.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[APIs | back]]&lt;/div&gt;</summary>
		<author><name>Bzurkovic</name></author>	</entry>

	<entry>
		<id>http://docs.upsidewireless.com/index.php?title=Send_REST</id>
		<title>Send REST</title>
		<link rel="alternate" type="text/html" href="http://docs.upsidewireless.com/index.php?title=Send_REST"/>
				<updated>2015-02-04T20:37:17Z</updated>
		
		<summary type="html">&lt;p&gt;Bzurkovic: /* Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Upsidewireless REST API '''&lt;br /&gt;
&lt;br /&gt;
There are two endpoints of Upsidewireless REST API, [https://secureapi.upsidewireless.com https://secureapi.upsidewireless.com] and [http://api.upsidewireless.com http://api.upsidewireless.com]. If you care about more security than performance, you should use the secure endpoint. However, in this case you will need to install certificate for secure, authenticated communication. We recommend you select the secure option. &lt;br /&gt;
&lt;br /&gt;
In order to use Upsidewireless REST API, you need have an account that has API permissions and get your API credential (token and signature) on your account page. Token is similar to username and signature is similar to password. They are needed in every single call to REST API.&lt;br /&gt;
&lt;br /&gt;
There are two kinds of response of each API call, JSON or XML. You can either use HTTP header (&amp;quot;Accept&amp;quot;) or a special HTTP parameter (&amp;quot;responsetype&amp;quot;) to specify what kind of response you want. If you want using HTTP header, set either &amp;quot;application/json&amp;quot; or &amp;quot;application/xml&amp;quot; in Accept header. If you want using HTTP parameter, set either &amp;quot;JSON&amp;quot; or &amp;quot;XML&amp;quot; to responsetype parameter. If no response type specified, default response will always be in XML format. Use HTTP header is a highly recommended way to do so.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1. SMS Message API'''&lt;br /&gt;
&lt;br /&gt;
'''API URI: /RESTv1/{token}/Message'''&lt;br /&gt;
&lt;br /&gt;
'''Support method: HTTP POST '''&lt;br /&gt;
&lt;br /&gt;
The following parameters are all '''required''' in your POST to send the message:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|signature||One of the API credential, similar to a password. It can be found in your account page.&lt;br /&gt;
|-&lt;br /&gt;
|type||The message type. Different type requires a different set of additional parameters.&lt;br /&gt;
|-&lt;br /&gt;
|message||The text of the message you want to send. For some types, this message must be pre-encoded&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
According to different type, a different set of additional parameters is required&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_test''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
'''Additional parameter for type: &amp;quot;sms''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
'''Additional parameters for type: &amp;quot;mms''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|mediaUrl||The URL of the media you wish to send out with the message. gif , png and jpeg content is currently supported. The media size limit is 5MB. If you wish to send more than one image in the message, please provide multiple URLs separated by comma in this parameter.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameter for type: &amp;quot;sms_port''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|port||Port number – valid value is &amp;gt; 0 and &amp;lt; 65535, parameter message must be pre-encoded.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_multi''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212. This parameter can include multiple phone numbers, separated by comma. &lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_group''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|groupName||The name of contact group in your account&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_service_group''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|serviceName||The name of your PSMS service&lt;br /&gt;
|-&lt;br /&gt;
|groupName||The contact group name of your PSMS service&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_dedicated''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|carrierCode||The carrier code that recipient phone number belongs to. This parameter is mandatory if dedicated number is a short code.&lt;br /&gt;
|-&lt;br /&gt;
|dedicatedNumber||The dedicated number which will deliver the message. It could be a long code or a short code.&lt;br /&gt;
|-&lt;br /&gt;
|tariff||The amount that recipient number to be charged&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_dedicated_port''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|port||Port number – valid value is &amp;gt; 0 and &amp;lt; 65535, parameter message must be pre-encoded.&lt;br /&gt;
|-&lt;br /&gt;
|carrierCode||The carrier code that recipient phone number belongs to. This parameter is mandatory if dedicated number is a short code.&lt;br /&gt;
|-&lt;br /&gt;
|dedicatedNumber||The dedicated number which will deliver the message. It could be a long code or a short code.&lt;br /&gt;
|-&lt;br /&gt;
|tariff||The amount that recipient number to be charged&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_defer''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|DelayHours||The hours to delay.&lt;br /&gt;
|-&lt;br /&gt;
|DelayMinutes||The minutes to delay&lt;br /&gt;
|-&lt;br /&gt;
|label||The label of this delayed event&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_flash''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|||The parameter message must be pre-encoded.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_wappush''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|url||The pre-encoded URL&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If no exception in API call, the following response (XML format) will be returned:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;RestResponse&amp;gt;&lt;br /&gt;
:&amp;lt;HasException&amp;gt;false&amp;lt;/HasException&amp;gt;&lt;br /&gt;
:&amp;lt;Token&amp;gt;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;lt;/Token&amp;gt;&lt;br /&gt;
:&amp;lt; SMSMessage&amp;gt;&lt;br /&gt;
::&amp;lt;Status&amp;gt;QUEUED or REJECTED&amp;lt;/Status&amp;gt;&lt;br /&gt;
::&amp;lt; Body&amp;gt;sms message&amp;lt;/ Body&amp;gt;&lt;br /&gt;
::&amp;lt; Recipient&amp;gt;16047891236&amp;lt;/ Recipient&amp;gt;&lt;br /&gt;
::&amp;lt;Type&amp;gt;sms&amp;lt;/Type&amp;gt;&lt;br /&gt;
::&amp;lt;TrackingId&amp;gt;MTID256749777469712848&amp;lt;/TrackingId&amp;gt;&lt;br /&gt;
::&amp;lt;RejectReason&amp;gt; &amp;lt;/RejectReason&amp;gt;&lt;br /&gt;
:&amp;lt;/ SMSMessage&amp;gt;&lt;br /&gt;
&amp;lt;/RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In SMSMessage, TrackingId and RejectReason are optional. If Status is &amp;quot;QUEUED&amp;quot;, for non-multiple recipient type, a unique TrackingId is returned for future query. If Status is &amp;quot;REJECTED&amp;quot;, RejectReason includes the reject reason. If type is sms_test, the successful status is &amp;quot;PASSED&amp;quot;, not &amp;quot;QUEUED&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Or in JSON format''' '''&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;HasException&amp;quot;: false,&lt;br /&gt;
  &amp;quot;Token&amp;quot;: &amp;quot;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;quot;,&lt;br /&gt;
  &amp;quot;SMSMessage&amp;quot;: {&lt;br /&gt;
    &amp;quot;Status&amp;quot;: &amp;quot;QUEUED&amp;quot; or &amp;quot;REJECTED&amp;quot;,&lt;br /&gt;
    &amp;quot;Body&amp;quot;: &amp;quot;sms message&amp;quot;,&lt;br /&gt;
    &amp;quot;Recipient&amp;quot;: &amp;quot;16047891236&amp;quot;,&lt;br /&gt;
    &amp;quot;Type&amp;quot;: &amp;quot;sms&amp;quot;,&lt;br /&gt;
    &amp;quot;TrackingId&amp;quot;: &amp;quot;MTID256749777469712848&amp;quot;,&lt;br /&gt;
    &amp;quot;RejectReason&amp;quot;: &amp;quot;Failure message&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2. SMS Contact API'''&lt;br /&gt;
&lt;br /&gt;
'''API URI: /RESTv1/{token}/Contact'''&lt;br /&gt;
&lt;br /&gt;
'''Support method: HTTP POST '''&lt;br /&gt;
&lt;br /&gt;
The following parameters are '''required''' in your POST to add contact:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|signature||One of the API credential, similar to a password. It can be found in your account page.&lt;br /&gt;
|-&lt;br /&gt;
|mobile||The mobile number to be added as an SMS contact, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212. If mobile number already exists, existing record will be updated.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The following parameters are optional:&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|type||The mobile type, such as Android, iPhone.&lt;br /&gt;
|-&lt;br /&gt;
|email||The email of this SMS contact.&lt;br /&gt;
|-&lt;br /&gt;
|firstname||The given name of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|lastname||The surname of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|address||The living or working address of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|city||The living or working city of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|zipcode||The zipcode of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|landline||The landline of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|title||The title of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|role||The role of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|organization||The organization this SMS contact belongs to&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If no exception in API call, the following response (XML format) will be returned:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;RestResponse&amp;gt;&lt;br /&gt;
:&amp;lt;HasException&amp;gt;false&amp;lt;/HasException&amp;gt;&lt;br /&gt;
:&amp;lt;Token&amp;gt;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;lt;/Token&amp;gt;&lt;br /&gt;
:&amp;lt;SMSContact&amp;gt;&lt;br /&gt;
::&amp;lt;success&amp;gt;true or false&amp;lt;/success&amp;gt;&lt;br /&gt;
::&amp;lt;number&amp;gt;16047891236&amp;lt;/number&amp;gt;&lt;br /&gt;
::&amp;lt;message&amp;gt;Success or failure message&amp;lt;/message&amp;gt;&lt;br /&gt;
:&amp;lt;/SMSContact&amp;gt;&lt;br /&gt;
&amp;lt;/RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Or in JSON format''' '''&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;HasException&amp;quot;: false,&lt;br /&gt;
  &amp;quot;Token&amp;quot;: &amp;quot;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;quot;,&lt;br /&gt;
  &amp;quot; SMSContact &amp;quot;: {&lt;br /&gt;
    &amp;quot;success&amp;quot;: true or false,&lt;br /&gt;
    &amp;quot;number&amp;quot;: &amp;quot;16047891236&amp;quot;,&lt;br /&gt;
    &amp;quot;message&amp;quot;: &amp;quot;Success or failure message.&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''3. Number Validation API'''&lt;br /&gt;
&lt;br /&gt;
'''API URI: /RESTv1/{token}/''' '''NumberValidation'''&lt;br /&gt;
&lt;br /&gt;
'''Support method: HTTP POST '''&lt;br /&gt;
&lt;br /&gt;
The following parameters are '''required''' in your POST to do number validation:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|signature||One of the API credential, similar to a password. It can be found in your account page.&lt;br /&gt;
|-&lt;br /&gt;
|type||The validation type. There are three possible types. 1 – &amp;quot;quick&amp;quot; and it will cost 0.1 credits; 2 – &amp;quot;route&amp;quot; and it will cost 0.25 credits; 3 – &amp;quot;hlr&amp;quot; and it will cost 0.5 credits.&lt;br /&gt;
|-&lt;br /&gt;
|number||The phone number to be validated, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If no exception in API call, the following response (XML format) will be returned:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;HasException&amp;gt;false&amp;lt;/HasException&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;Token&amp;gt;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;lt;/Token&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;NumberValidation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;success&amp;gt;true or false&amp;lt;/success&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;number&amp;gt;16047891236&amp;lt;/number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;message&amp;gt;Success or failure message&amp;lt;/message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;country&amp;gt;Canada&amp;lt;/country&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;network&amp;gt;British Columbia&amp;lt;/network&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;HLRLookupResultObject&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:::&amp;lt;status&amp;gt;OK&amp;lt;/status&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:::&amp;lt;number&amp;gt;16047891236&amp;lt;/number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:::&amp;lt;MCC&amp;gt;302&amp;lt;/MCC&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:::&amp;lt;MNC&amp;gt;370&amp;lt;/MNC&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:::&amp;lt;operatorName&amp;gt;Microcell&amp;lt;/operatorName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:::&amp;lt;operatorCountry&amp;gt;Canada&amp;lt;/operatorCountry&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:::&amp;lt;message&amp;gt;&amp;lt;/message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;/HLRLookupResultObject&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;/NumberValidation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In NumberValidation, country, network and  HLRLookupResultObject are optional, depends on the query type. If type is &amp;quot;quick&amp;quot;, only country returned; if type is &amp;quot;route&amp;quot;, country and network returned; if type is &amp;quot;hlr&amp;quot;, only HLRLookupResultObject returned.&lt;br /&gt;
&lt;br /&gt;
Or in JSON format&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;HasException&amp;quot;: false,&lt;br /&gt;
  &amp;quot;Token&amp;quot;: &amp;quot;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;quot;,&lt;br /&gt;
  &amp;quot;NumberValidation&amp;quot;: {&lt;br /&gt;
    &amp;quot;success&amp;quot;: true or false,&lt;br /&gt;
    &amp;quot;number&amp;quot;: &amp;quot;16047891236&amp;quot;,&lt;br /&gt;
    &amp;quot;message&amp;quot;: &amp;quot;Success or failure message.&amp;quot;,&lt;br /&gt;
    &amp;quot;country&amp;quot;: &amp;quot;Canada&amp;quot;,&lt;br /&gt;
    &amp;quot;network&amp;quot;: &amp;quot;British Columbia&amp;quot;&lt;br /&gt;
    &amp;quot;HLRLookupResultObject&amp;quot;: {&lt;br /&gt;
      &amp;quot;status&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
      &amp;quot;number&amp;quot;: &amp;quot;16047891236&amp;quot;,&lt;br /&gt;
      &amp;quot;MCC&amp;quot;: &amp;quot;302&amp;quot;,&lt;br /&gt;
      &amp;quot;MNC&amp;quot;: &amp;quot;370&amp;quot;,&lt;br /&gt;
      &amp;quot;operatorName&amp;quot;: &amp;quot;Microcell&amp;quot;,&lt;br /&gt;
      &amp;quot;operatorCountry&amp;quot;: &amp;quot;Canada&amp;quot;,&lt;br /&gt;
      &amp;quot;message&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The entire HLRLookupResultObject is as following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;HLRLookupResultObject&amp;gt;&lt;br /&gt;
:&amp;lt;status&amp;gt;&amp;lt;/status&amp;gt;&lt;br /&gt;
:&amp;lt;number&amp;gt;&amp;lt;/number&amp;gt;&lt;br /&gt;
:&amp;lt;MCC&amp;gt;&amp;lt;/MCC&amp;gt;&lt;br /&gt;
:&amp;lt;MNC&amp;gt;&amp;lt;/MNC&amp;gt;&lt;br /&gt;
:&amp;lt;operatorName&amp;gt;&amp;lt;/operatorName&amp;gt;&lt;br /&gt;
:&amp;lt;operatorCountry&amp;gt;&amp;lt;/operatorCountry&amp;gt;&lt;br /&gt;
:&amp;lt;IMSI&amp;gt;&amp;lt;/IMSI&amp;gt;&lt;br /&gt;
:&amp;lt;MSC&amp;gt;&amp;lt;/MSC&amp;gt;&lt;br /&gt;
:&amp;lt;mscOperator&amp;gt;&amp;lt;/mscOperator&amp;gt;&lt;br /&gt;
:&amp;lt;mscMCC&amp;gt;&amp;lt;/mscMCC&amp;gt;&lt;br /&gt;
:&amp;lt;mscMNC&amp;gt;&amp;lt;/mscMNC&amp;gt;&lt;br /&gt;
:&amp;lt;mscCountry&amp;gt;&amp;lt;/mscCountry&amp;gt;&lt;br /&gt;
:&amp;lt;mscLocation&amp;gt;&amp;lt;/mscLocation&amp;gt;&lt;br /&gt;
:&amp;lt;message&amp;gt;&amp;lt;/message&amp;gt;&lt;br /&gt;
&amp;lt;/HLRLookupResultObject&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Only status, number and message are mandatory, others are optional.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''REST API Exception'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If there is any exception in REST API call, the HasException flag will be set to true and the following response (XML format) will be returned:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;RestResponse&amp;gt;&lt;br /&gt;
:&amp;lt;HasException&amp;gt;true&amp;lt;/HasException&amp;gt;&lt;br /&gt;
:&amp;lt;Token&amp;gt;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;lt;/Token&amp;gt;&lt;br /&gt;
:&amp;lt;RestException&amp;gt;&lt;br /&gt;
::&amp;lt;ErrorCode&amp;gt;101&amp;lt;/ErrorCode&amp;gt;&lt;br /&gt;
::&amp;lt;Message&amp;gt;Unauthorized&amp;lt;/Message&amp;gt;&lt;br /&gt;
::&amp;lt;Status&amp;gt;401&amp;lt;/Status&amp;gt;&lt;br /&gt;
:&amp;lt;/RestException&amp;gt;&lt;br /&gt;
&amp;lt;/RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Or in JSON format''' '''&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;HasException&amp;quot;: true,&lt;br /&gt;
  &amp;quot;Token&amp;quot;: &amp;quot;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;quot;,&lt;br /&gt;
  &amp;quot;RestException&amp;quot;: {&lt;br /&gt;
    &amp;quot;ErrorCode&amp;quot;: &amp;quot;101&amp;quot;,&lt;br /&gt;
    &amp;quot;Message&amp;quot;: &amp;quot;Unauthorized&amp;quot;,&lt;br /&gt;
    &amp;quot;Status&amp;quot;: &amp;quot;401&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Status is HTTP status code and it is optional.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''ErrorCode and corresponding message:'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|'''ErrorCode'''||'''Message'''||'''Comments'''&lt;br /&gt;
|-&lt;br /&gt;
|100||Unsupported method||Wrong HTTP method&lt;br /&gt;
|-&lt;br /&gt;
|101||Unauthorized||API credential is wrong&lt;br /&gt;
|-&lt;br /&gt;
|102||No permission||API credential passed, but no permission&lt;br /&gt;
|-&lt;br /&gt;
|103||Runtime error||Runtime error during API call&lt;br /&gt;
|-&lt;br /&gt;
|||||&lt;br /&gt;
|-&lt;br /&gt;
|200||Zero balance||No credits to send a message&lt;br /&gt;
|-&lt;br /&gt;
|201||Invalid country||Can’t figure out a country with the recipient number&lt;br /&gt;
|-&lt;br /&gt;
|202||Invalid carrier code||The carrier code is incorrect&lt;br /&gt;
|-&lt;br /&gt;
|203||Number blocked||The recipient number is blocked by our system&lt;br /&gt;
|-&lt;br /&gt;
|204||Too many messages||Message is too long&lt;br /&gt;
|-&lt;br /&gt;
|205||Empty message||Empty message&lt;br /&gt;
|-&lt;br /&gt;
|206||No time for defer||The delay parameter is wrong&lt;br /&gt;
|-&lt;br /&gt;
|207||Unknown type||Unknown message type&lt;br /&gt;
|-&lt;br /&gt;
|208||Unimplemented type||The message type not implemented yet&lt;br /&gt;
|-&lt;br /&gt;
|||||&lt;br /&gt;
|-&lt;br /&gt;
|300||Mobile phone number is invalid||Invalid mobile number&lt;br /&gt;
|-&lt;br /&gt;
|301||Credit is not enough to perform validation. Please purchase more and try again||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
== '''Examples''' ==&lt;br /&gt;
&lt;br /&gt;
[[Java Example]]  |  [[CSharp Example]]&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Bzurkovic</name></author>	</entry>

	<entry>
		<id>http://docs.upsidewireless.com/index.php?title=CSharp_Example</id>
		<title>CSharp Example</title>
		<link rel="alternate" type="text/html" href="http://docs.upsidewireless.com/index.php?title=CSharp_Example"/>
				<updated>2015-02-04T20:35:53Z</updated>
		
		<summary type="html">&lt;p&gt;Bzurkovic: Created page with &amp;quot;Below is sample code for C#. You are welcome to cut+paste this sample into your application, however, keep in mind that depending on your environment, some changes may be requ...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Below is sample code for C#. You are welcome to cut+paste this sample into your application, however, keep in mind that depending on your environment, some changes may be required. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note:  In order to run this sample, you need to reference System.Web.Extensions&lt;br /&gt;
&amp;lt;source lang=&amp;quot;csharp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
using System;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.Text;&lt;br /&gt;
using System.Net;&lt;br /&gt;
using System.IO;&lt;br /&gt;
using System.Web.Script.Serialization;&lt;br /&gt;
using System.Xml;&lt;br /&gt;
using System.Xml.Serialization;&lt;br /&gt;
&lt;br /&gt;
namespace TestUpsideRESTAPI&lt;br /&gt;
{&lt;br /&gt;
    class Program&lt;br /&gt;
    {&lt;br /&gt;
        const string APIEndPoint = &amp;quot;https://secureapi.upsidewireless.com&amp;quot;; // or &amp;quot;http://api.upsidewireless.com&amp;quot;&lt;br /&gt;
        const string APICredential_Token = &amp;quot;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;quot;;&lt;br /&gt;
        const string APICredential_Signature = &amp;quot;xxxxxxxxfyqQx95Gxxxxxxxx&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
        private static readonly string SMSMessageUrl = string.Format(&amp;quot;{0}/RESTv1/{1}/Message&amp;quot;, APIEndPoint, APICredential_Token);&lt;br /&gt;
&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            bool acceptJSON = false;&lt;br /&gt;
&lt;br /&gt;
            Console.WriteLine(&amp;quot;SMS Message URL: &amp;quot; + SMSMessageUrl + &amp;quot;\n&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
            var request = WebRequest.Create(SMSMessageUrl) as HttpWebRequest;&lt;br /&gt;
           request.Method = &amp;quot;POST&amp;quot;;&lt;br /&gt;
            request.ContentType = &amp;quot;application/x-www-form-urlencoded&amp;quot;;&lt;br /&gt;
            request.Accept = acceptJSON ? &amp;quot;application/json&amp;quot; : &amp;quot;application/xml&amp;quot;;&lt;br /&gt;
            request.UserAgent = &amp;quot;UpsideCSharpAgent&amp;quot;;&lt;br /&gt;
            // use default timeout&lt;br /&gt;
            //request.Timeout = 100 * 1000; // in miliseconds&lt;br /&gt;
            //request.ReadWriteTimeout = 300 * 1000; // in miliseconds&lt;br /&gt;
&lt;br /&gt;
            var smsPostData = &amp;quot;signature={0}&amp;quot;;&lt;br /&gt;
            smsPostData += &amp;quot;&amp;amp;type={1}&amp;quot;;&lt;br /&gt;
            smsPostData += &amp;quot;&amp;amp;message={2}&amp;quot;;&lt;br /&gt;
            smsPostData += &amp;quot;&amp;amp;recipient={3}&amp;quot;;&lt;br /&gt;
            smsPostData += &amp;quot;&amp;amp;encoding={4}&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
            string type = &amp;quot;sms&amp;quot;; // see type list on wiki&lt;br /&gt;
            string message = &amp;quot;test sms message&amp;quot;;&lt;br /&gt;
            string recipient = &amp;quot;16047891236&amp;quot;; // number in E.164 format&lt;br /&gt;
            string encoding = &amp;quot;7&amp;quot;; // 7, 8 or 16&lt;br /&gt;
&lt;br /&gt;
            smsPostData = string.Format(smsPostData, APICredential_Signature, type, message, recipient, encoding);&lt;br /&gt;
            Console.WriteLine(&amp;quot;Post Data: &amp;quot; + smsPostData + &amp;quot;\n&amp;quot;);&lt;br /&gt;
            var data = Encoding.UTF8.GetBytes(smsPostData);&lt;br /&gt;
            request.ContentLength = data.Length;&lt;br /&gt;
&lt;br /&gt;
            try&lt;br /&gt;
            {&lt;br /&gt;
                using (var stream = request.GetRequestStream())&lt;br /&gt;
                {&lt;br /&gt;
                    stream.Write(data, 0, data.Length);&lt;br /&gt;
&lt;br /&gt;
                    HttpWebResponse response;&lt;br /&gt;
                    try&lt;br /&gt;
                    {&lt;br /&gt;
                        response = request.GetResponse() as HttpWebResponse;&lt;br /&gt;
                    }&lt;br /&gt;
                    catch (WebException ex)&lt;br /&gt;
                    {&lt;br /&gt;
                        response = ex.Response as HttpWebResponse;&lt;br /&gt;
                    }&lt;br /&gt;
&lt;br /&gt;
                    var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();&lt;br /&gt;
&lt;br /&gt;
                    Console.WriteLine(&amp;quot;HTTP Response: &amp;quot; + responseString + &amp;quot;\n&amp;quot;);&lt;br /&gt;
                    RestResponse restResponse = null;&lt;br /&gt;
                    if (acceptJSON)&lt;br /&gt;
                    {&lt;br /&gt;
                        JavaScriptSerializer JSS = new JavaScriptSerializer();&lt;br /&gt;
                        restResponse = JSS.Deserialize&amp;lt;RestResponse&amp;gt;(responseString);&lt;br /&gt;
                    }&lt;br /&gt;
                    else&lt;br /&gt;
                    {&lt;br /&gt;
                        var sreader = new StringReader(responseString);&lt;br /&gt;
                        var xmlreader = new XmlTextReader(sreader);&lt;br /&gt;
                        XmlSerializer serializer = new XmlSerializer(typeof(RestResponse));&lt;br /&gt;
                        restResponse = serializer.Deserialize(xmlreader) as RestResponse;&lt;br /&gt;
                    }&lt;br /&gt;
&lt;br /&gt;
                    if (restResponse != null)&lt;br /&gt;
                    {&lt;br /&gt;
                        Console.WriteLine(&amp;quot;Rest Response - HasException: &amp;quot; + restResponse.HasException);&lt;br /&gt;
                        Console.WriteLine(&amp;quot;Rest Response - Token: &amp;quot; + restResponse.Token);&lt;br /&gt;
                        if (restResponse.HasException)&lt;br /&gt;
                        {&lt;br /&gt;
                            Console.WriteLine(&amp;quot;Rest Response - RestException.ErrorCode: &amp;quot; + restResponse.RestException.ErrorCode);&lt;br /&gt;
                            Console.WriteLine(&amp;quot;Rest Response - RestException.Message: &amp;quot; + restResponse.RestException.Message);&lt;br /&gt;
                            if (restResponse.RestException.Status != null)&lt;br /&gt;
                                Console.WriteLine(&amp;quot;Rest Response - RestException.Status: &amp;quot; + restResponse.RestException.Status);&lt;br /&gt;
                        }&lt;br /&gt;
                        else&lt;br /&gt;
                        {&lt;br /&gt;
                            Console.WriteLine(&amp;quot;Rest Response - SMSMessage.Status: &amp;quot; + restResponse.SMSMessage.Status);&lt;br /&gt;
                            Console.WriteLine(&amp;quot;Rest Response - SMSMessage.Recipient: &amp;quot; + restResponse.SMSMessage.Recipient);&lt;br /&gt;
                            Console.WriteLine(&amp;quot;Rest Response - SMSMessage.Body: &amp;quot; + restResponse.SMSMessage.Body);&lt;br /&gt;
                            Console.WriteLine(&amp;quot;Rest Response - SMSMessage.Type: &amp;quot; + restResponse.SMSMessage.Type);&lt;br /&gt;
                            Console.WriteLine(&amp;quot;Rest Response - SMSMessage.TrackingId: &amp;quot; + restResponse.SMSMessage.TrackingId);&lt;br /&gt;
                            if (restResponse.SMSMessage.Status == &amp;quot;REJECTED&amp;quot;)&lt;br /&gt;
                                Console.WriteLine(&amp;quot;Rest Response - SMSMessage.RejectReason: &amp;quot; + restResponse.SMSMessage.RejectReason);&lt;br /&gt;
                        }&lt;br /&gt;
                    }&lt;br /&gt;
                    else&lt;br /&gt;
                    {&lt;br /&gt;
                        Console.WriteLine(&amp;quot;Can't get rest response object&amp;quot;);&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            catch (Exception e)&lt;br /&gt;
            {&lt;br /&gt;
                Console.WriteLine(&amp;quot;Error in calling REST API - &amp;quot; + e.Message);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public class RestResponse&lt;br /&gt;
    {&lt;br /&gt;
        public bool HasException { get; set; }&lt;br /&gt;
        public string Token { get; set; }&lt;br /&gt;
&lt;br /&gt;
        public SMSMessage SMSMessage { get; set; }&lt;br /&gt;
&lt;br /&gt;
        public RestException RestException { get; set; }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public class SMSMessage&lt;br /&gt;
    {&lt;br /&gt;
        public string Status { get; set; }&lt;br /&gt;
&lt;br /&gt;
        public string Recipient { get; set; }&lt;br /&gt;
        public string Body { get; set; }&lt;br /&gt;
        public string Type { get; set; }&lt;br /&gt;
        public string TrackingId { get; set; }&lt;br /&gt;
        public string RejectReason { get; set; }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public class RestException&lt;br /&gt;
    {&lt;br /&gt;
        public int ErrorCode { get; set; }&lt;br /&gt;
        public string Message { get; set; }&lt;br /&gt;
&lt;br /&gt;
        public string Status { get; set; }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Bzurkovic</name></author>	</entry>

	<entry>
		<id>http://docs.upsidewireless.com/index.php?title=Send_REST</id>
		<title>Send REST</title>
		<link rel="alternate" type="text/html" href="http://docs.upsidewireless.com/index.php?title=Send_REST"/>
				<updated>2015-02-04T20:35:27Z</updated>
		
		<summary type="html">&lt;p&gt;Bzurkovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Upsidewireless REST API '''&lt;br /&gt;
&lt;br /&gt;
There are two endpoints of Upsidewireless REST API, [https://secureapi.upsidewireless.com https://secureapi.upsidewireless.com] and [http://api.upsidewireless.com http://api.upsidewireless.com]. If you care about more security than performance, you should use the secure endpoint. However, in this case you will need to install certificate for secure, authenticated communication. We recommend you select the secure option. &lt;br /&gt;
&lt;br /&gt;
In order to use Upsidewireless REST API, you need have an account that has API permissions and get your API credential (token and signature) on your account page. Token is similar to username and signature is similar to password. They are needed in every single call to REST API.&lt;br /&gt;
&lt;br /&gt;
There are two kinds of response of each API call, JSON or XML. You can either use HTTP header (&amp;quot;Accept&amp;quot;) or a special HTTP parameter (&amp;quot;responsetype&amp;quot;) to specify what kind of response you want. If you want using HTTP header, set either &amp;quot;application/json&amp;quot; or &amp;quot;application/xml&amp;quot; in Accept header. If you want using HTTP parameter, set either &amp;quot;JSON&amp;quot; or &amp;quot;XML&amp;quot; to responsetype parameter. If no response type specified, default response will always be in XML format. Use HTTP header is a highly recommended way to do so.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1. SMS Message API'''&lt;br /&gt;
&lt;br /&gt;
'''API URI: /RESTv1/{token}/Message'''&lt;br /&gt;
&lt;br /&gt;
'''Support method: HTTP POST '''&lt;br /&gt;
&lt;br /&gt;
The following parameters are all '''required''' in your POST to send the message:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|signature||One of the API credential, similar to a password. It can be found in your account page.&lt;br /&gt;
|-&lt;br /&gt;
|type||The message type. Different type requires a different set of additional parameters.&lt;br /&gt;
|-&lt;br /&gt;
|message||The text of the message you want to send. For some types, this message must be pre-encoded&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
According to different type, a different set of additional parameters is required&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_test''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
'''Additional parameter for type: &amp;quot;sms''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
'''Additional parameters for type: &amp;quot;mms''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|mediaUrl||The URL of the media you wish to send out with the message. gif , png and jpeg content is currently supported. The media size limit is 5MB. If you wish to send more than one image in the message, please provide multiple URLs separated by comma in this parameter.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameter for type: &amp;quot;sms_port''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|port||Port number – valid value is &amp;gt; 0 and &amp;lt; 65535, parameter message must be pre-encoded.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_multi''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212. This parameter can include multiple phone numbers, separated by comma. &lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_group''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|groupName||The name of contact group in your account&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_service_group''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|serviceName||The name of your PSMS service&lt;br /&gt;
|-&lt;br /&gt;
|groupName||The contact group name of your PSMS service&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_dedicated''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|carrierCode||The carrier code that recipient phone number belongs to. This parameter is mandatory if dedicated number is a short code.&lt;br /&gt;
|-&lt;br /&gt;
|dedicatedNumber||The dedicated number which will deliver the message. It could be a long code or a short code.&lt;br /&gt;
|-&lt;br /&gt;
|tariff||The amount that recipient number to be charged&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_dedicated_port''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|port||Port number – valid value is &amp;gt; 0 and &amp;lt; 65535, parameter message must be pre-encoded.&lt;br /&gt;
|-&lt;br /&gt;
|carrierCode||The carrier code that recipient phone number belongs to. This parameter is mandatory if dedicated number is a short code.&lt;br /&gt;
|-&lt;br /&gt;
|dedicatedNumber||The dedicated number which will deliver the message. It could be a long code or a short code.&lt;br /&gt;
|-&lt;br /&gt;
|tariff||The amount that recipient number to be charged&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_defer''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|DelayHours||The hours to delay.&lt;br /&gt;
|-&lt;br /&gt;
|DelayMinutes||The minutes to delay&lt;br /&gt;
|-&lt;br /&gt;
|label||The label of this delayed event&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_flash''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|||The parameter message must be pre-encoded.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_wappush''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|url||The pre-encoded URL&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If no exception in API call, the following response (XML format) will be returned:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;RestResponse&amp;gt;&lt;br /&gt;
:&amp;lt;HasException&amp;gt;false&amp;lt;/HasException&amp;gt;&lt;br /&gt;
:&amp;lt;Token&amp;gt;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;lt;/Token&amp;gt;&lt;br /&gt;
:&amp;lt; SMSMessage&amp;gt;&lt;br /&gt;
::&amp;lt;Status&amp;gt;QUEUED or REJECTED&amp;lt;/Status&amp;gt;&lt;br /&gt;
::&amp;lt; Body&amp;gt;sms message&amp;lt;/ Body&amp;gt;&lt;br /&gt;
::&amp;lt; Recipient&amp;gt;16047891236&amp;lt;/ Recipient&amp;gt;&lt;br /&gt;
::&amp;lt;Type&amp;gt;sms&amp;lt;/Type&amp;gt;&lt;br /&gt;
::&amp;lt;TrackingId&amp;gt;MTID256749777469712848&amp;lt;/TrackingId&amp;gt;&lt;br /&gt;
::&amp;lt;RejectReason&amp;gt; &amp;lt;/RejectReason&amp;gt;&lt;br /&gt;
:&amp;lt;/ SMSMessage&amp;gt;&lt;br /&gt;
&amp;lt;/RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In SMSMessage, TrackingId and RejectReason are optional. If Status is &amp;quot;QUEUED&amp;quot;, for non-multiple recipient type, a unique TrackingId is returned for future query. If Status is &amp;quot;REJECTED&amp;quot;, RejectReason includes the reject reason. If type is sms_test, the successful status is &amp;quot;PASSED&amp;quot;, not &amp;quot;QUEUED&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Or in JSON format''' '''&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;HasException&amp;quot;: false,&lt;br /&gt;
  &amp;quot;Token&amp;quot;: &amp;quot;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;quot;,&lt;br /&gt;
  &amp;quot;SMSMessage&amp;quot;: {&lt;br /&gt;
    &amp;quot;Status&amp;quot;: &amp;quot;QUEUED&amp;quot; or &amp;quot;REJECTED&amp;quot;,&lt;br /&gt;
    &amp;quot;Body&amp;quot;: &amp;quot;sms message&amp;quot;,&lt;br /&gt;
    &amp;quot;Recipient&amp;quot;: &amp;quot;16047891236&amp;quot;,&lt;br /&gt;
    &amp;quot;Type&amp;quot;: &amp;quot;sms&amp;quot;,&lt;br /&gt;
    &amp;quot;TrackingId&amp;quot;: &amp;quot;MTID256749777469712848&amp;quot;,&lt;br /&gt;
    &amp;quot;RejectReason&amp;quot;: &amp;quot;Failure message&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2. SMS Contact API'''&lt;br /&gt;
&lt;br /&gt;
'''API URI: /RESTv1/{token}/Contact'''&lt;br /&gt;
&lt;br /&gt;
'''Support method: HTTP POST '''&lt;br /&gt;
&lt;br /&gt;
The following parameters are '''required''' in your POST to add contact:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|signature||One of the API credential, similar to a password. It can be found in your account page.&lt;br /&gt;
|-&lt;br /&gt;
|mobile||The mobile number to be added as an SMS contact, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212. If mobile number already exists, existing record will be updated.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The following parameters are optional:&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|type||The mobile type, such as Android, iPhone.&lt;br /&gt;
|-&lt;br /&gt;
|email||The email of this SMS contact.&lt;br /&gt;
|-&lt;br /&gt;
|firstname||The given name of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|lastname||The surname of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|address||The living or working address of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|city||The living or working city of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|zipcode||The zipcode of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|landline||The landline of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|title||The title of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|role||The role of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|organization||The organization this SMS contact belongs to&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If no exception in API call, the following response (XML format) will be returned:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;RestResponse&amp;gt;&lt;br /&gt;
:&amp;lt;HasException&amp;gt;false&amp;lt;/HasException&amp;gt;&lt;br /&gt;
:&amp;lt;Token&amp;gt;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;lt;/Token&amp;gt;&lt;br /&gt;
:&amp;lt;SMSContact&amp;gt;&lt;br /&gt;
::&amp;lt;success&amp;gt;true or false&amp;lt;/success&amp;gt;&lt;br /&gt;
::&amp;lt;number&amp;gt;16047891236&amp;lt;/number&amp;gt;&lt;br /&gt;
::&amp;lt;message&amp;gt;Success or failure message&amp;lt;/message&amp;gt;&lt;br /&gt;
:&amp;lt;/SMSContact&amp;gt;&lt;br /&gt;
&amp;lt;/RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Or in JSON format''' '''&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;HasException&amp;quot;: false,&lt;br /&gt;
  &amp;quot;Token&amp;quot;: &amp;quot;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;quot;,&lt;br /&gt;
  &amp;quot; SMSContact &amp;quot;: {&lt;br /&gt;
    &amp;quot;success&amp;quot;: true or false,&lt;br /&gt;
    &amp;quot;number&amp;quot;: &amp;quot;16047891236&amp;quot;,&lt;br /&gt;
    &amp;quot;message&amp;quot;: &amp;quot;Success or failure message.&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''3. Number Validation API'''&lt;br /&gt;
&lt;br /&gt;
'''API URI: /RESTv1/{token}/''' '''NumberValidation'''&lt;br /&gt;
&lt;br /&gt;
'''Support method: HTTP POST '''&lt;br /&gt;
&lt;br /&gt;
The following parameters are '''required''' in your POST to do number validation:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|signature||One of the API credential, similar to a password. It can be found in your account page.&lt;br /&gt;
|-&lt;br /&gt;
|type||The validation type. There are three possible types. 1 – &amp;quot;quick&amp;quot; and it will cost 0.1 credits; 2 – &amp;quot;route&amp;quot; and it will cost 0.25 credits; 3 – &amp;quot;hlr&amp;quot; and it will cost 0.5 credits.&lt;br /&gt;
|-&lt;br /&gt;
|number||The phone number to be validated, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If no exception in API call, the following response (XML format) will be returned:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;HasException&amp;gt;false&amp;lt;/HasException&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;Token&amp;gt;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;lt;/Token&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;NumberValidation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;success&amp;gt;true or false&amp;lt;/success&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;number&amp;gt;16047891236&amp;lt;/number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;message&amp;gt;Success or failure message&amp;lt;/message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;country&amp;gt;Canada&amp;lt;/country&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;network&amp;gt;British Columbia&amp;lt;/network&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;HLRLookupResultObject&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:::&amp;lt;status&amp;gt;OK&amp;lt;/status&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:::&amp;lt;number&amp;gt;16047891236&amp;lt;/number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:::&amp;lt;MCC&amp;gt;302&amp;lt;/MCC&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:::&amp;lt;MNC&amp;gt;370&amp;lt;/MNC&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:::&amp;lt;operatorName&amp;gt;Microcell&amp;lt;/operatorName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:::&amp;lt;operatorCountry&amp;gt;Canada&amp;lt;/operatorCountry&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:::&amp;lt;message&amp;gt;&amp;lt;/message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;/HLRLookupResultObject&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;/NumberValidation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In NumberValidation, country, network and  HLRLookupResultObject are optional, depends on the query type. If type is &amp;quot;quick&amp;quot;, only country returned; if type is &amp;quot;route&amp;quot;, country and network returned; if type is &amp;quot;hlr&amp;quot;, only HLRLookupResultObject returned.&lt;br /&gt;
&lt;br /&gt;
Or in JSON format&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;HasException&amp;quot;: false,&lt;br /&gt;
  &amp;quot;Token&amp;quot;: &amp;quot;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;quot;,&lt;br /&gt;
  &amp;quot;NumberValidation&amp;quot;: {&lt;br /&gt;
    &amp;quot;success&amp;quot;: true or false,&lt;br /&gt;
    &amp;quot;number&amp;quot;: &amp;quot;16047891236&amp;quot;,&lt;br /&gt;
    &amp;quot;message&amp;quot;: &amp;quot;Success or failure message.&amp;quot;,&lt;br /&gt;
    &amp;quot;country&amp;quot;: &amp;quot;Canada&amp;quot;,&lt;br /&gt;
    &amp;quot;network&amp;quot;: &amp;quot;British Columbia&amp;quot;&lt;br /&gt;
    &amp;quot;HLRLookupResultObject&amp;quot;: {&lt;br /&gt;
      &amp;quot;status&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
      &amp;quot;number&amp;quot;: &amp;quot;16047891236&amp;quot;,&lt;br /&gt;
      &amp;quot;MCC&amp;quot;: &amp;quot;302&amp;quot;,&lt;br /&gt;
      &amp;quot;MNC&amp;quot;: &amp;quot;370&amp;quot;,&lt;br /&gt;
      &amp;quot;operatorName&amp;quot;: &amp;quot;Microcell&amp;quot;,&lt;br /&gt;
      &amp;quot;operatorCountry&amp;quot;: &amp;quot;Canada&amp;quot;,&lt;br /&gt;
      &amp;quot;message&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The entire HLRLookupResultObject is as following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;HLRLookupResultObject&amp;gt;&lt;br /&gt;
:&amp;lt;status&amp;gt;&amp;lt;/status&amp;gt;&lt;br /&gt;
:&amp;lt;number&amp;gt;&amp;lt;/number&amp;gt;&lt;br /&gt;
:&amp;lt;MCC&amp;gt;&amp;lt;/MCC&amp;gt;&lt;br /&gt;
:&amp;lt;MNC&amp;gt;&amp;lt;/MNC&amp;gt;&lt;br /&gt;
:&amp;lt;operatorName&amp;gt;&amp;lt;/operatorName&amp;gt;&lt;br /&gt;
:&amp;lt;operatorCountry&amp;gt;&amp;lt;/operatorCountry&amp;gt;&lt;br /&gt;
:&amp;lt;IMSI&amp;gt;&amp;lt;/IMSI&amp;gt;&lt;br /&gt;
:&amp;lt;MSC&amp;gt;&amp;lt;/MSC&amp;gt;&lt;br /&gt;
:&amp;lt;mscOperator&amp;gt;&amp;lt;/mscOperator&amp;gt;&lt;br /&gt;
:&amp;lt;mscMCC&amp;gt;&amp;lt;/mscMCC&amp;gt;&lt;br /&gt;
:&amp;lt;mscMNC&amp;gt;&amp;lt;/mscMNC&amp;gt;&lt;br /&gt;
:&amp;lt;mscCountry&amp;gt;&amp;lt;/mscCountry&amp;gt;&lt;br /&gt;
:&amp;lt;mscLocation&amp;gt;&amp;lt;/mscLocation&amp;gt;&lt;br /&gt;
:&amp;lt;message&amp;gt;&amp;lt;/message&amp;gt;&lt;br /&gt;
&amp;lt;/HLRLookupResultObject&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Only status, number and message are mandatory, others are optional.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''REST API Exception'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If there is any exception in REST API call, the HasException flag will be set to true and the following response (XML format) will be returned:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;RestResponse&amp;gt;&lt;br /&gt;
:&amp;lt;HasException&amp;gt;true&amp;lt;/HasException&amp;gt;&lt;br /&gt;
:&amp;lt;Token&amp;gt;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;lt;/Token&amp;gt;&lt;br /&gt;
:&amp;lt;RestException&amp;gt;&lt;br /&gt;
::&amp;lt;ErrorCode&amp;gt;101&amp;lt;/ErrorCode&amp;gt;&lt;br /&gt;
::&amp;lt;Message&amp;gt;Unauthorized&amp;lt;/Message&amp;gt;&lt;br /&gt;
::&amp;lt;Status&amp;gt;401&amp;lt;/Status&amp;gt;&lt;br /&gt;
:&amp;lt;/RestException&amp;gt;&lt;br /&gt;
&amp;lt;/RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Or in JSON format''' '''&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;HasException&amp;quot;: true,&lt;br /&gt;
  &amp;quot;Token&amp;quot;: &amp;quot;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;quot;,&lt;br /&gt;
  &amp;quot;RestException&amp;quot;: {&lt;br /&gt;
    &amp;quot;ErrorCode&amp;quot;: &amp;quot;101&amp;quot;,&lt;br /&gt;
    &amp;quot;Message&amp;quot;: &amp;quot;Unauthorized&amp;quot;,&lt;br /&gt;
    &amp;quot;Status&amp;quot;: &amp;quot;401&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Status is HTTP status code and it is optional.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''ErrorCode and corresponding message:'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|'''ErrorCode'''||'''Message'''||'''Comments'''&lt;br /&gt;
|-&lt;br /&gt;
|100||Unsupported method||Wrong HTTP method&lt;br /&gt;
|-&lt;br /&gt;
|101||Unauthorized||API credential is wrong&lt;br /&gt;
|-&lt;br /&gt;
|102||No permission||API credential passed, but no permission&lt;br /&gt;
|-&lt;br /&gt;
|103||Runtime error||Runtime error during API call&lt;br /&gt;
|-&lt;br /&gt;
|||||&lt;br /&gt;
|-&lt;br /&gt;
|200||Zero balance||No credits to send a message&lt;br /&gt;
|-&lt;br /&gt;
|201||Invalid country||Can’t figure out a country with the recipient number&lt;br /&gt;
|-&lt;br /&gt;
|202||Invalid carrier code||The carrier code is incorrect&lt;br /&gt;
|-&lt;br /&gt;
|203||Number blocked||The recipient number is blocked by our system&lt;br /&gt;
|-&lt;br /&gt;
|204||Too many messages||Message is too long&lt;br /&gt;
|-&lt;br /&gt;
|205||Empty message||Empty message&lt;br /&gt;
|-&lt;br /&gt;
|206||No time for defer||The delay parameter is wrong&lt;br /&gt;
|-&lt;br /&gt;
|207||Unknown type||Unknown message type&lt;br /&gt;
|-&lt;br /&gt;
|208||Unimplemented type||The message type not implemented yet&lt;br /&gt;
|-&lt;br /&gt;
|||||&lt;br /&gt;
|-&lt;br /&gt;
|300||Mobile phone number is invalid||Invalid mobile number&lt;br /&gt;
|-&lt;br /&gt;
|301||Credit is not enough to perform validation. Please purchase more and try again||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
== '''Examples''' ==&lt;br /&gt;
&lt;br /&gt;
[[C# Example]]   |   [[Java Example]]  |  [[CSharp Example]]&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Bzurkovic</name></author>	</entry>

	<entry>
		<id>http://docs.upsidewireless.com/index.php?title=Send_REST</id>
		<title>Send REST</title>
		<link rel="alternate" type="text/html" href="http://docs.upsidewireless.com/index.php?title=Send_REST"/>
				<updated>2015-02-04T20:33:57Z</updated>
		
		<summary type="html">&lt;p&gt;Bzurkovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Upsidewireless REST API '''&lt;br /&gt;
&lt;br /&gt;
There are two endpoints of Upsidewireless REST API, [https://secureapi.upsidewireless.com https://secureapi.upsidewireless.com] and [http://api.upsidewireless.com http://api.upsidewireless.com]. If you care about more security than performance, you should use the secure endpoint. However, in this case you will need to install certificate for secure, authenticated communication. We recommend you select the secure option. &lt;br /&gt;
&lt;br /&gt;
In order to use Upsidewireless REST API, you need have an account that has API permissions and get your API credential (token and signature) on your account page. Token is similar to username and signature is similar to password. They are needed in every single call to REST API.&lt;br /&gt;
&lt;br /&gt;
There are two kinds of response of each API call, JSON or XML. You can either use HTTP header (&amp;quot;Accept&amp;quot;) or a special HTTP parameter (&amp;quot;responsetype&amp;quot;) to specify what kind of response you want. If you want using HTTP header, set either &amp;quot;application/json&amp;quot; or &amp;quot;application/xml&amp;quot; in Accept header. If you want using HTTP parameter, set either &amp;quot;JSON&amp;quot; or &amp;quot;XML&amp;quot; to responsetype parameter. If no response type specified, default response will always be in XML format. Use HTTP header is a highly recommended way to do so.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1. SMS Message API'''&lt;br /&gt;
&lt;br /&gt;
'''API URI: /RESTv1/{token}/Message'''&lt;br /&gt;
&lt;br /&gt;
'''Support method: HTTP POST '''&lt;br /&gt;
&lt;br /&gt;
The following parameters are all '''required''' in your POST to send the message:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|signature||One of the API credential, similar to a password. It can be found in your account page.&lt;br /&gt;
|-&lt;br /&gt;
|type||The message type. Different type requires a different set of additional parameters.&lt;br /&gt;
|-&lt;br /&gt;
|message||The text of the message you want to send. For some types, this message must be pre-encoded&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
According to different type, a different set of additional parameters is required&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_test''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
'''Additional parameter for type: &amp;quot;sms''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
'''Additional parameters for type: &amp;quot;mms''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|mediaUrl||The URL of the media you wish to send out with the message. gif , png and jpeg content is currently supported. The media size limit is 5MB. If you wish to send more than one image in the message, please provide multiple URLs separated by comma in this parameter.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameter for type: &amp;quot;sms_port''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|port||Port number – valid value is &amp;gt; 0 and &amp;lt; 65535, parameter message must be pre-encoded.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_multi''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212. This parameter can include multiple phone numbers, separated by comma. &lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_group''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|groupName||The name of contact group in your account&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_service_group''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|serviceName||The name of your PSMS service&lt;br /&gt;
|-&lt;br /&gt;
|groupName||The contact group name of your PSMS service&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_dedicated''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|carrierCode||The carrier code that recipient phone number belongs to. This parameter is mandatory if dedicated number is a short code.&lt;br /&gt;
|-&lt;br /&gt;
|dedicatedNumber||The dedicated number which will deliver the message. It could be a long code or a short code.&lt;br /&gt;
|-&lt;br /&gt;
|tariff||The amount that recipient number to be charged&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_dedicated_port''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|port||Port number – valid value is &amp;gt; 0 and &amp;lt; 65535, parameter message must be pre-encoded.&lt;br /&gt;
|-&lt;br /&gt;
|carrierCode||The carrier code that recipient phone number belongs to. This parameter is mandatory if dedicated number is a short code.&lt;br /&gt;
|-&lt;br /&gt;
|dedicatedNumber||The dedicated number which will deliver the message. It could be a long code or a short code.&lt;br /&gt;
|-&lt;br /&gt;
|tariff||The amount that recipient number to be charged&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_defer''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|DelayHours||The hours to delay.&lt;br /&gt;
|-&lt;br /&gt;
|DelayMinutes||The minutes to delay&lt;br /&gt;
|-&lt;br /&gt;
|label||The label of this delayed event&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_flash''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|||The parameter message must be pre-encoded.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_wappush''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|url||The pre-encoded URL&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If no exception in API call, the following response (XML format) will be returned:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;RestResponse&amp;gt;&lt;br /&gt;
:&amp;lt;HasException&amp;gt;false&amp;lt;/HasException&amp;gt;&lt;br /&gt;
:&amp;lt;Token&amp;gt;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;lt;/Token&amp;gt;&lt;br /&gt;
:&amp;lt; SMSMessage&amp;gt;&lt;br /&gt;
::&amp;lt;Status&amp;gt;QUEUED or REJECTED&amp;lt;/Status&amp;gt;&lt;br /&gt;
::&amp;lt; Body&amp;gt;sms message&amp;lt;/ Body&amp;gt;&lt;br /&gt;
::&amp;lt; Recipient&amp;gt;16047891236&amp;lt;/ Recipient&amp;gt;&lt;br /&gt;
::&amp;lt;Type&amp;gt;sms&amp;lt;/Type&amp;gt;&lt;br /&gt;
::&amp;lt;TrackingId&amp;gt;MTID256749777469712848&amp;lt;/TrackingId&amp;gt;&lt;br /&gt;
::&amp;lt;RejectReason&amp;gt; &amp;lt;/RejectReason&amp;gt;&lt;br /&gt;
:&amp;lt;/ SMSMessage&amp;gt;&lt;br /&gt;
&amp;lt;/RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In SMSMessage, TrackingId and RejectReason are optional. If Status is &amp;quot;QUEUED&amp;quot;, for non-multiple recipient type, a unique TrackingId is returned for future query. If Status is &amp;quot;REJECTED&amp;quot;, RejectReason includes the reject reason. If type is sms_test, the successful status is &amp;quot;PASSED&amp;quot;, not &amp;quot;QUEUED&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Or in JSON format''' '''&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;HasException&amp;quot;: false,&lt;br /&gt;
  &amp;quot;Token&amp;quot;: &amp;quot;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;quot;,&lt;br /&gt;
  &amp;quot;SMSMessage&amp;quot;: {&lt;br /&gt;
    &amp;quot;Status&amp;quot;: &amp;quot;QUEUED&amp;quot; or &amp;quot;REJECTED&amp;quot;,&lt;br /&gt;
    &amp;quot;Body&amp;quot;: &amp;quot;sms message&amp;quot;,&lt;br /&gt;
    &amp;quot;Recipient&amp;quot;: &amp;quot;16047891236&amp;quot;,&lt;br /&gt;
    &amp;quot;Type&amp;quot;: &amp;quot;sms&amp;quot;,&lt;br /&gt;
    &amp;quot;TrackingId&amp;quot;: &amp;quot;MTID256749777469712848&amp;quot;,&lt;br /&gt;
    &amp;quot;RejectReason&amp;quot;: &amp;quot;Failure message&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2. SMS Contact API'''&lt;br /&gt;
&lt;br /&gt;
'''API URI: /RESTv1/{token}/Contact'''&lt;br /&gt;
&lt;br /&gt;
'''Support method: HTTP POST '''&lt;br /&gt;
&lt;br /&gt;
The following parameters are '''required''' in your POST to add contact:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|signature||One of the API credential, similar to a password. It can be found in your account page.&lt;br /&gt;
|-&lt;br /&gt;
|mobile||The mobile number to be added as an SMS contact, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212. If mobile number already exists, existing record will be updated.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The following parameters are optional:&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|type||The mobile type, such as Android, iPhone.&lt;br /&gt;
|-&lt;br /&gt;
|email||The email of this SMS contact.&lt;br /&gt;
|-&lt;br /&gt;
|firstname||The given name of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|lastname||The surname of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|address||The living or working address of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|city||The living or working city of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|zipcode||The zipcode of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|landline||The landline of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|title||The title of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|role||The role of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|organization||The organization this SMS contact belongs to&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If no exception in API call, the following response (XML format) will be returned:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;RestResponse&amp;gt;&lt;br /&gt;
:&amp;lt;HasException&amp;gt;false&amp;lt;/HasException&amp;gt;&lt;br /&gt;
:&amp;lt;Token&amp;gt;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;lt;/Token&amp;gt;&lt;br /&gt;
:&amp;lt;SMSContact&amp;gt;&lt;br /&gt;
::&amp;lt;success&amp;gt;true or false&amp;lt;/success&amp;gt;&lt;br /&gt;
::&amp;lt;number&amp;gt;16047891236&amp;lt;/number&amp;gt;&lt;br /&gt;
::&amp;lt;message&amp;gt;Success or failure message&amp;lt;/message&amp;gt;&lt;br /&gt;
:&amp;lt;/SMSContact&amp;gt;&lt;br /&gt;
&amp;lt;/RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Or in JSON format''' '''&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;HasException&amp;quot;: false,&lt;br /&gt;
  &amp;quot;Token&amp;quot;: &amp;quot;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;quot;,&lt;br /&gt;
  &amp;quot; SMSContact &amp;quot;: {&lt;br /&gt;
    &amp;quot;success&amp;quot;: true or false,&lt;br /&gt;
    &amp;quot;number&amp;quot;: &amp;quot;16047891236&amp;quot;,&lt;br /&gt;
    &amp;quot;message&amp;quot;: &amp;quot;Success or failure message.&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''3. Number Validation API'''&lt;br /&gt;
&lt;br /&gt;
'''API URI: /RESTv1/{token}/''' '''NumberValidation'''&lt;br /&gt;
&lt;br /&gt;
'''Support method: HTTP POST '''&lt;br /&gt;
&lt;br /&gt;
The following parameters are '''required''' in your POST to do number validation:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|signature||One of the API credential, similar to a password. It can be found in your account page.&lt;br /&gt;
|-&lt;br /&gt;
|type||The validation type. There are three possible types. 1 – &amp;quot;quick&amp;quot; and it will cost 0.1 credits; 2 – &amp;quot;route&amp;quot; and it will cost 0.25 credits; 3 – &amp;quot;hlr&amp;quot; and it will cost 0.5 credits.&lt;br /&gt;
|-&lt;br /&gt;
|number||The phone number to be validated, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If no exception in API call, the following response (XML format) will be returned:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;HasException&amp;gt;false&amp;lt;/HasException&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;Token&amp;gt;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;lt;/Token&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;NumberValidation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;success&amp;gt;true or false&amp;lt;/success&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;number&amp;gt;16047891236&amp;lt;/number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;message&amp;gt;Success or failure message&amp;lt;/message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;country&amp;gt;Canada&amp;lt;/country&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;network&amp;gt;British Columbia&amp;lt;/network&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;HLRLookupResultObject&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:::&amp;lt;status&amp;gt;OK&amp;lt;/status&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:::&amp;lt;number&amp;gt;16047891236&amp;lt;/number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:::&amp;lt;MCC&amp;gt;302&amp;lt;/MCC&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:::&amp;lt;MNC&amp;gt;370&amp;lt;/MNC&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:::&amp;lt;operatorName&amp;gt;Microcell&amp;lt;/operatorName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:::&amp;lt;operatorCountry&amp;gt;Canada&amp;lt;/operatorCountry&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:::&amp;lt;message&amp;gt;&amp;lt;/message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;/HLRLookupResultObject&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;/NumberValidation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In NumberValidation, country, network and  HLRLookupResultObject are optional, depends on the query type. If type is &amp;quot;quick&amp;quot;, only country returned; if type is &amp;quot;route&amp;quot;, country and network returned; if type is &amp;quot;hlr&amp;quot;, only HLRLookupResultObject returned.&lt;br /&gt;
&lt;br /&gt;
Or in JSON format&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;HasException&amp;quot;: false,&lt;br /&gt;
  &amp;quot;Token&amp;quot;: &amp;quot;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;quot;,&lt;br /&gt;
  &amp;quot;NumberValidation&amp;quot;: {&lt;br /&gt;
    &amp;quot;success&amp;quot;: true or false,&lt;br /&gt;
    &amp;quot;number&amp;quot;: &amp;quot;16047891236&amp;quot;,&lt;br /&gt;
    &amp;quot;message&amp;quot;: &amp;quot;Success or failure message.&amp;quot;,&lt;br /&gt;
    &amp;quot;country&amp;quot;: &amp;quot;Canada&amp;quot;,&lt;br /&gt;
    &amp;quot;network&amp;quot;: &amp;quot;British Columbia&amp;quot;&lt;br /&gt;
    &amp;quot;HLRLookupResultObject&amp;quot;: {&lt;br /&gt;
      &amp;quot;status&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
      &amp;quot;number&amp;quot;: &amp;quot;16047891236&amp;quot;,&lt;br /&gt;
      &amp;quot;MCC&amp;quot;: &amp;quot;302&amp;quot;,&lt;br /&gt;
      &amp;quot;MNC&amp;quot;: &amp;quot;370&amp;quot;,&lt;br /&gt;
      &amp;quot;operatorName&amp;quot;: &amp;quot;Microcell&amp;quot;,&lt;br /&gt;
      &amp;quot;operatorCountry&amp;quot;: &amp;quot;Canada&amp;quot;,&lt;br /&gt;
      &amp;quot;message&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The entire HLRLookupResultObject is as following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;HLRLookupResultObject&amp;gt;&lt;br /&gt;
:&amp;lt;status&amp;gt;&amp;lt;/status&amp;gt;&lt;br /&gt;
:&amp;lt;number&amp;gt;&amp;lt;/number&amp;gt;&lt;br /&gt;
:&amp;lt;MCC&amp;gt;&amp;lt;/MCC&amp;gt;&lt;br /&gt;
:&amp;lt;MNC&amp;gt;&amp;lt;/MNC&amp;gt;&lt;br /&gt;
:&amp;lt;operatorName&amp;gt;&amp;lt;/operatorName&amp;gt;&lt;br /&gt;
:&amp;lt;operatorCountry&amp;gt;&amp;lt;/operatorCountry&amp;gt;&lt;br /&gt;
:&amp;lt;IMSI&amp;gt;&amp;lt;/IMSI&amp;gt;&lt;br /&gt;
:&amp;lt;MSC&amp;gt;&amp;lt;/MSC&amp;gt;&lt;br /&gt;
:&amp;lt;mscOperator&amp;gt;&amp;lt;/mscOperator&amp;gt;&lt;br /&gt;
:&amp;lt;mscMCC&amp;gt;&amp;lt;/mscMCC&amp;gt;&lt;br /&gt;
:&amp;lt;mscMNC&amp;gt;&amp;lt;/mscMNC&amp;gt;&lt;br /&gt;
:&amp;lt;mscCountry&amp;gt;&amp;lt;/mscCountry&amp;gt;&lt;br /&gt;
:&amp;lt;mscLocation&amp;gt;&amp;lt;/mscLocation&amp;gt;&lt;br /&gt;
:&amp;lt;message&amp;gt;&amp;lt;/message&amp;gt;&lt;br /&gt;
&amp;lt;/HLRLookupResultObject&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Only status, number and message are mandatory, others are optional.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''REST API Exception'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If there is any exception in REST API call, the HasException flag will be set to true and the following response (XML format) will be returned:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;RestResponse&amp;gt;&lt;br /&gt;
:&amp;lt;HasException&amp;gt;true&amp;lt;/HasException&amp;gt;&lt;br /&gt;
:&amp;lt;Token&amp;gt;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;lt;/Token&amp;gt;&lt;br /&gt;
:&amp;lt;RestException&amp;gt;&lt;br /&gt;
::&amp;lt;ErrorCode&amp;gt;101&amp;lt;/ErrorCode&amp;gt;&lt;br /&gt;
::&amp;lt;Message&amp;gt;Unauthorized&amp;lt;/Message&amp;gt;&lt;br /&gt;
::&amp;lt;Status&amp;gt;401&amp;lt;/Status&amp;gt;&lt;br /&gt;
:&amp;lt;/RestException&amp;gt;&lt;br /&gt;
&amp;lt;/RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Or in JSON format''' '''&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;HasException&amp;quot;: true,&lt;br /&gt;
  &amp;quot;Token&amp;quot;: &amp;quot;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;quot;,&lt;br /&gt;
  &amp;quot;RestException&amp;quot;: {&lt;br /&gt;
    &amp;quot;ErrorCode&amp;quot;: &amp;quot;101&amp;quot;,&lt;br /&gt;
    &amp;quot;Message&amp;quot;: &amp;quot;Unauthorized&amp;quot;,&lt;br /&gt;
    &amp;quot;Status&amp;quot;: &amp;quot;401&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Status is HTTP status code and it is optional.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''ErrorCode and corresponding message:'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|'''ErrorCode'''||'''Message'''||'''Comments'''&lt;br /&gt;
|-&lt;br /&gt;
|100||Unsupported method||Wrong HTTP method&lt;br /&gt;
|-&lt;br /&gt;
|101||Unauthorized||API credential is wrong&lt;br /&gt;
|-&lt;br /&gt;
|102||No permission||API credential passed, but no permission&lt;br /&gt;
|-&lt;br /&gt;
|103||Runtime error||Runtime error during API call&lt;br /&gt;
|-&lt;br /&gt;
|||||&lt;br /&gt;
|-&lt;br /&gt;
|200||Zero balance||No credits to send a message&lt;br /&gt;
|-&lt;br /&gt;
|201||Invalid country||Can’t figure out a country with the recipient number&lt;br /&gt;
|-&lt;br /&gt;
|202||Invalid carrier code||The carrier code is incorrect&lt;br /&gt;
|-&lt;br /&gt;
|203||Number blocked||The recipient number is blocked by our system&lt;br /&gt;
|-&lt;br /&gt;
|204||Too many messages||Message is too long&lt;br /&gt;
|-&lt;br /&gt;
|205||Empty message||Empty message&lt;br /&gt;
|-&lt;br /&gt;
|206||No time for defer||The delay parameter is wrong&lt;br /&gt;
|-&lt;br /&gt;
|207||Unknown type||Unknown message type&lt;br /&gt;
|-&lt;br /&gt;
|208||Unimplemented type||The message type not implemented yet&lt;br /&gt;
|-&lt;br /&gt;
|||||&lt;br /&gt;
|-&lt;br /&gt;
|300||Mobile phone number is invalid||Invalid mobile number&lt;br /&gt;
|-&lt;br /&gt;
|301||Credit is not enough to perform validation. Please purchase more and try again||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
== '''Examples''' ==&lt;br /&gt;
&lt;br /&gt;
[[C# Example]]   |   [[Java Example]]&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Bzurkovic</name></author>	</entry>

	<entry>
		<id>http://docs.upsidewireless.com/index.php?title=Send_REST</id>
		<title>Send REST</title>
		<link rel="alternate" type="text/html" href="http://docs.upsidewireless.com/index.php?title=Send_REST"/>
				<updated>2015-02-04T20:32:13Z</updated>
		
		<summary type="html">&lt;p&gt;Bzurkovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Upsidewireless REST API '''&lt;br /&gt;
&lt;br /&gt;
There are two endpoints of Upsidewireless REST API, [https://secureapi.upsidewireless.com https://secureapi.upsidewireless.com] and [http://api.upsidewireless.com http://api.upsidewireless.com]. If you care about more security than performance, you should use the secure endpoint. However, in this case you will need to install certificate for secure, authenticated communication. We recommend you select the secure option. &lt;br /&gt;
&lt;br /&gt;
In order to use Upsidewireless REST API, you need have an account that has API permissions and get your API credential (token and signature) on your account page. Token is similar to username and signature is similar to password. They are needed in every single call to REST API.&lt;br /&gt;
&lt;br /&gt;
There are two kinds of response of each API call, JSON or XML. You can either use HTTP header (&amp;quot;Accept&amp;quot;) or a special HTTP parameter (&amp;quot;responsetype&amp;quot;) to specify what kind of response you want. If you want using HTTP header, set either &amp;quot;application/json&amp;quot; or &amp;quot;application/xml&amp;quot; in Accept header. If you want using HTTP parameter, set either &amp;quot;JSON&amp;quot; or &amp;quot;XML&amp;quot; to responsetype parameter. If no response type specified, default response will always be in XML format. Use HTTP header is a highly recommended way to do so.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1. SMS Message API'''&lt;br /&gt;
&lt;br /&gt;
'''API URI: /RESTv1/{token}/Message'''&lt;br /&gt;
&lt;br /&gt;
'''Support method: HTTP POST '''&lt;br /&gt;
&lt;br /&gt;
The following parameters are all '''required''' in your POST to send the message:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|signature||One of the API credential, similar to a password. It can be found in your account page.&lt;br /&gt;
|-&lt;br /&gt;
|type||The message type. Different type requires a different set of additional parameters.&lt;br /&gt;
|-&lt;br /&gt;
|message||The text of the message you want to send. For some types, this message must be pre-encoded&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
According to different type, a different set of additional parameters is required&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_test''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
'''Additional parameter for type: &amp;quot;sms''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
'''Additional parameters for type: &amp;quot;mms''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|mediaUrl||The URL of the media you wish to send out with the message. gif , png and jpeg content is currently supported. The media size limit is 5MB. If you wish to send more than one image in the message, please provide multiple URLs separated by comma in this parameter.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameter for type: &amp;quot;sms_port''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|port||Port number – valid value is &amp;gt; 0 and &amp;lt; 65535, parameter message must be pre-encoded.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_multi''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212. This parameter can include multiple phone numbers, separated by comma. &lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_group''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|groupName||The name of contact group in your account&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_service_group''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|serviceName||The name of your PSMS service&lt;br /&gt;
|-&lt;br /&gt;
|groupName||The contact group name of your PSMS service&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_dedicated''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|carrierCode||The carrier code that recipient phone number belongs to. This parameter is mandatory if dedicated number is a short code.&lt;br /&gt;
|-&lt;br /&gt;
|dedicatedNumber||The dedicated number which will deliver the message. It could be a long code or a short code.&lt;br /&gt;
|-&lt;br /&gt;
|tariff||The amount that recipient number to be charged&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_dedicated_port''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|port||Port number – valid value is &amp;gt; 0 and &amp;lt; 65535, parameter message must be pre-encoded.&lt;br /&gt;
|-&lt;br /&gt;
|carrierCode||The carrier code that recipient phone number belongs to. This parameter is mandatory if dedicated number is a short code.&lt;br /&gt;
|-&lt;br /&gt;
|dedicatedNumber||The dedicated number which will deliver the message. It could be a long code or a short code.&lt;br /&gt;
|-&lt;br /&gt;
|tariff||The amount that recipient number to be charged&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_defer''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|DelayHours||The hours to delay.&lt;br /&gt;
|-&lt;br /&gt;
|DelayMinutes||The minutes to delay&lt;br /&gt;
|-&lt;br /&gt;
|label||The label of this delayed event&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_flash''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|||The parameter message must be pre-encoded.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_wappush''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|url||The pre-encoded URL&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If no exception in API call, the following response (XML format) will be returned:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;HasException&amp;gt;false&amp;lt;/HasException&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;Token&amp;gt;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;lt;/Token&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt; SMSMessage&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;Status&amp;gt;QUEUED or REJECTED&amp;lt;/Status&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt; Body&amp;gt;sms message&amp;lt;/ Body&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt; Recipient&amp;gt;16047891236&amp;lt;/ Recipient&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;Type&amp;gt;sms&amp;lt;/Type&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;TrackingId&amp;gt;MTID256749777469712848&amp;lt;/TrackingId&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;RejectReason&amp;gt; &amp;lt;/RejectReason&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;/ SMSMessage&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In SMSMessage, TrackingId and RejectReason are optional. If Status is &amp;quot;QUEUED&amp;quot;, for non-multiple recipient type, a unique TrackingId is returned for future query. If Status is &amp;quot;REJECTED&amp;quot;, RejectReason includes the reject reason. If type is sms_test, the successful status is &amp;quot;PASSED&amp;quot;, not &amp;quot;QUEUED&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Or in JSON format''' '''&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;HasException&amp;quot;: false,&lt;br /&gt;
  &amp;quot;Token&amp;quot;: &amp;quot;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;quot;,&lt;br /&gt;
  &amp;quot;SMSMessage&amp;quot;: {&lt;br /&gt;
    &amp;quot;Status&amp;quot;: &amp;quot;QUEUED&amp;quot; or &amp;quot;REJECTED&amp;quot;,&lt;br /&gt;
    &amp;quot;Body&amp;quot;: &amp;quot;sms message&amp;quot;,&lt;br /&gt;
    &amp;quot;Recipient&amp;quot;: &amp;quot;16047891236&amp;quot;,&lt;br /&gt;
    &amp;quot;Type&amp;quot;: &amp;quot;sms&amp;quot;,&lt;br /&gt;
    &amp;quot;TrackingId&amp;quot;: &amp;quot;MTID256749777469712848&amp;quot;,&lt;br /&gt;
    &amp;quot;RejectReason&amp;quot;: &amp;quot;Failure message&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
''' &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
'''2. SMS Contact API'''&lt;br /&gt;
&lt;br /&gt;
'''API URI: /RESTv1/{token}/Contact'''&lt;br /&gt;
&lt;br /&gt;
'''Support method: HTTP POST '''&lt;br /&gt;
&lt;br /&gt;
The following parameters are '''required''' in your POST to add contact:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|signature||One of the API credential, similar to a password. It can be found in your account page.&lt;br /&gt;
|-&lt;br /&gt;
|mobile||The mobile number to be added as an SMS contact, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212. If mobile number already exists, existing record will be updated.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The following parameters are optional:&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|type||The mobile type, such as Android, iPhone.&lt;br /&gt;
|-&lt;br /&gt;
|email||The email of this SMS contact.&lt;br /&gt;
|-&lt;br /&gt;
|firstname||The given name of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|lastname||The surname of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|address||The living or working address of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|city||The living or working city of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|zipcode||The zipcode of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|landline||The landline of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|title||The title of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|role||The role of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|organization||The organization this SMS contact belongs to&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If no exception in API call, the following response (XML format) will be returned:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;RestResponse&amp;gt;&lt;br /&gt;
:&amp;lt;HasException&amp;gt;false&amp;lt;/HasException&amp;gt;&lt;br /&gt;
:&amp;lt;Token&amp;gt;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;lt;/Token&amp;gt;&lt;br /&gt;
:&amp;lt;SMSContact&amp;gt;&lt;br /&gt;
::&amp;lt;success&amp;gt;true or false&amp;lt;/success&amp;gt;&lt;br /&gt;
::&amp;lt;number&amp;gt;16047891236&amp;lt;/number&amp;gt;&lt;br /&gt;
::&amp;lt;message&amp;gt;Success or failure message&amp;lt;/message&amp;gt;&lt;br /&gt;
:&amp;lt;/SMSContact&amp;gt;&lt;br /&gt;
&amp;lt;/RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Or in JSON format''' '''&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;HasException&amp;quot;: false,&lt;br /&gt;
  &amp;quot;Token&amp;quot;: &amp;quot;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;quot;,&lt;br /&gt;
  &amp;quot; SMSContact &amp;quot;: {&lt;br /&gt;
    &amp;quot;success&amp;quot;: true or false,&lt;br /&gt;
    &amp;quot;number&amp;quot;: &amp;quot;16047891236&amp;quot;,&lt;br /&gt;
    &amp;quot;message&amp;quot;: &amp;quot;Success or failure message.&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''3. Number Validation API'''&lt;br /&gt;
&lt;br /&gt;
'''API URI: /RESTv1/{token}/''' '''NumberValidation'''&lt;br /&gt;
&lt;br /&gt;
'''Support method: HTTP POST '''&lt;br /&gt;
&lt;br /&gt;
The following parameters are '''required''' in your POST to do number validation:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|signature||One of the API credential, similar to a password. It can be found in your account page.&lt;br /&gt;
|-&lt;br /&gt;
|type||The validation type. There are three possible types. 1 – &amp;quot;quick&amp;quot; and it will cost 0.1 credits; 2 – &amp;quot;route&amp;quot; and it will cost 0.25 credits; 3 – &amp;quot;hlr&amp;quot; and it will cost 0.5 credits.&lt;br /&gt;
|-&lt;br /&gt;
|number||The phone number to be validated, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If no exception in API call, the following response (XML format) will be returned:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;HasException&amp;gt;false&amp;lt;/HasException&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;Token&amp;gt;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;lt;/Token&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;NumberValidation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;success&amp;gt;true or false&amp;lt;/success&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;number&amp;gt;16047891236&amp;lt;/number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;message&amp;gt;Success or failure message&amp;lt;/message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;country&amp;gt;Canada&amp;lt;/country&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;network&amp;gt;British Columbia&amp;lt;/network&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;HLRLookupResultObject&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:::&amp;lt;status&amp;gt;OK&amp;lt;/status&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:::&amp;lt;number&amp;gt;16047891236&amp;lt;/number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:::&amp;lt;MCC&amp;gt;302&amp;lt;/MCC&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:::&amp;lt;MNC&amp;gt;370&amp;lt;/MNC&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:::&amp;lt;operatorName&amp;gt;Microcell&amp;lt;/operatorName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:::&amp;lt;operatorCountry&amp;gt;Canada&amp;lt;/operatorCountry&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:::&amp;lt;message&amp;gt;&amp;lt;/message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;/HLRLookupResultObject&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;/NumberValidation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In NumberValidation, country, network and  HLRLookupResultObject are optional, depends on the query type. If type is &amp;quot;quick&amp;quot;, only country returned; if type is &amp;quot;route&amp;quot;, country and network returned; if type is &amp;quot;hlr&amp;quot;, only HLRLookupResultObject returned.&lt;br /&gt;
&lt;br /&gt;
Or in JSON format&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;HasException&amp;quot;: false,&lt;br /&gt;
  &amp;quot;Token&amp;quot;: &amp;quot;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;quot;,&lt;br /&gt;
  &amp;quot;NumberValidation&amp;quot;: {&lt;br /&gt;
    &amp;quot;success&amp;quot;: true or false,&lt;br /&gt;
    &amp;quot;number&amp;quot;: &amp;quot;16047891236&amp;quot;,&lt;br /&gt;
    &amp;quot;message&amp;quot;: &amp;quot;Success or failure message.&amp;quot;,&lt;br /&gt;
    &amp;quot;country&amp;quot;: &amp;quot;Canada&amp;quot;,&lt;br /&gt;
    &amp;quot;network&amp;quot;: &amp;quot;British Columbia&amp;quot;&lt;br /&gt;
    &amp;quot;HLRLookupResultObject&amp;quot;: {&lt;br /&gt;
      &amp;quot;status&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
      &amp;quot;number&amp;quot;: &amp;quot;16047891236&amp;quot;,&lt;br /&gt;
      &amp;quot;MCC&amp;quot;: &amp;quot;302&amp;quot;,&lt;br /&gt;
      &amp;quot;MNC&amp;quot;: &amp;quot;370&amp;quot;,&lt;br /&gt;
      &amp;quot;operatorName&amp;quot;: &amp;quot;Microcell&amp;quot;,&lt;br /&gt;
      &amp;quot;operatorCountry&amp;quot;: &amp;quot;Canada&amp;quot;,&lt;br /&gt;
      &amp;quot;message&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The entire HLRLookupResultObject is as following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;HLRLookupResultObject&amp;gt;&lt;br /&gt;
:&amp;lt;status&amp;gt;&amp;lt;/status&amp;gt;&lt;br /&gt;
:&amp;lt;number&amp;gt;&amp;lt;/number&amp;gt;&lt;br /&gt;
:&amp;lt;MCC&amp;gt;&amp;lt;/MCC&amp;gt;&lt;br /&gt;
:&amp;lt;MNC&amp;gt;&amp;lt;/MNC&amp;gt;&lt;br /&gt;
:&amp;lt;operatorName&amp;gt;&amp;lt;/operatorName&amp;gt;&lt;br /&gt;
:&amp;lt;operatorCountry&amp;gt;&amp;lt;/operatorCountry&amp;gt;&lt;br /&gt;
:&amp;lt;IMSI&amp;gt;&amp;lt;/IMSI&amp;gt;&lt;br /&gt;
:&amp;lt;MSC&amp;gt;&amp;lt;/MSC&amp;gt;&lt;br /&gt;
:&amp;lt;mscOperator&amp;gt;&amp;lt;/mscOperator&amp;gt;&lt;br /&gt;
:&amp;lt;mscMCC&amp;gt;&amp;lt;/mscMCC&amp;gt;&lt;br /&gt;
:&amp;lt;mscMNC&amp;gt;&amp;lt;/mscMNC&amp;gt;&lt;br /&gt;
:&amp;lt;mscCountry&amp;gt;&amp;lt;/mscCountry&amp;gt;&lt;br /&gt;
:&amp;lt;mscLocation&amp;gt;&amp;lt;/mscLocation&amp;gt;&lt;br /&gt;
:&amp;lt;message&amp;gt;&amp;lt;/message&amp;gt;&lt;br /&gt;
&amp;lt;/HLRLookupResultObject&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Only status, number and message are mandatory, others are optional.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''REST API Exception'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If there is any exception in REST API call, the HasException flag will be set to true and the following response (XML format) will be returned:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;RestResponse&amp;gt;&lt;br /&gt;
:&amp;lt;HasException&amp;gt;true&amp;lt;/HasException&amp;gt;&lt;br /&gt;
:&amp;lt;Token&amp;gt;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;lt;/Token&amp;gt;&lt;br /&gt;
:&amp;lt;RestException&amp;gt;&lt;br /&gt;
::&amp;lt;ErrorCode&amp;gt;101&amp;lt;/ErrorCode&amp;gt;&lt;br /&gt;
::&amp;lt;Message&amp;gt;Unauthorized&amp;lt;/Message&amp;gt;&lt;br /&gt;
::&amp;lt;Status&amp;gt;401&amp;lt;/Status&amp;gt;&lt;br /&gt;
:&amp;lt;/RestException&amp;gt;&lt;br /&gt;
&amp;lt;/RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Or in JSON format''' '''&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;HasException&amp;quot;: true,&lt;br /&gt;
  &amp;quot;Token&amp;quot;: &amp;quot;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;quot;,&lt;br /&gt;
  &amp;quot;RestException&amp;quot;: {&lt;br /&gt;
    &amp;quot;ErrorCode&amp;quot;: &amp;quot;101&amp;quot;,&lt;br /&gt;
    &amp;quot;Message&amp;quot;: &amp;quot;Unauthorized&amp;quot;,&lt;br /&gt;
    &amp;quot;Status&amp;quot;: &amp;quot;401&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Status is HTTP status code and it is optional.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''ErrorCode and corresponding message:'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|'''ErrorCode'''||'''Message'''||'''Comments'''&lt;br /&gt;
|-&lt;br /&gt;
|100||Unsupported method||Wrong HTTP method&lt;br /&gt;
|-&lt;br /&gt;
|101||Unauthorized||API credential is wrong&lt;br /&gt;
|-&lt;br /&gt;
|102||No permission||API credential passed, but no permission&lt;br /&gt;
|-&lt;br /&gt;
|103||Runtime error||Runtime error during API call&lt;br /&gt;
|-&lt;br /&gt;
|||||&lt;br /&gt;
|-&lt;br /&gt;
|200||Zero balance||No credits to send a message&lt;br /&gt;
|-&lt;br /&gt;
|201||Invalid country||Can’t figure out a country with the recipient number&lt;br /&gt;
|-&lt;br /&gt;
|202||Invalid carrier code||The carrier code is incorrect&lt;br /&gt;
|-&lt;br /&gt;
|203||Number blocked||The recipient number is blocked by our system&lt;br /&gt;
|-&lt;br /&gt;
|204||Too many messages||Message is too long&lt;br /&gt;
|-&lt;br /&gt;
|205||Empty message||Empty message&lt;br /&gt;
|-&lt;br /&gt;
|206||No time for defer||The delay parameter is wrong&lt;br /&gt;
|-&lt;br /&gt;
|207||Unknown type||Unknown message type&lt;br /&gt;
|-&lt;br /&gt;
|208||Unimplemented type||The message type not implemented yet&lt;br /&gt;
|-&lt;br /&gt;
|||||&lt;br /&gt;
|-&lt;br /&gt;
|300||Mobile phone number is invalid||Invalid mobile number&lt;br /&gt;
|-&lt;br /&gt;
|301||Credit is not enough to perform validation. Please purchase more and try again||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
== '''Examples''' ==&lt;br /&gt;
&lt;br /&gt;
[[C# Example]]   |   [[Java Example]]&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Bzurkovic</name></author>	</entry>

	<entry>
		<id>http://docs.upsidewireless.com/index.php?title=Send_REST</id>
		<title>Send REST</title>
		<link rel="alternate" type="text/html" href="http://docs.upsidewireless.com/index.php?title=Send_REST"/>
				<updated>2015-02-04T20:30:03Z</updated>
		
		<summary type="html">&lt;p&gt;Bzurkovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Upsidewireless REST API '''&lt;br /&gt;
&lt;br /&gt;
There are two endpoints of Upsidewireless REST API, [https://secureapi.upsidewireless.com https://secureapi.upsidewireless.com] and [http://api.upsidewireless.com http://api.upsidewireless.com]. If you care about more security than performance, you should use the secure endpoint. However, in this case you will need to install certificate for secure, authenticated communication. We recommend you select the secure option. &lt;br /&gt;
&lt;br /&gt;
In order to use Upsidewireless REST API, you need have an account that has API permissions and get your API credential (token and signature) on your account page. Token is similar to username and signature is similar to password. They are needed in every single call to REST API.&lt;br /&gt;
&lt;br /&gt;
There are two kinds of response of each API call, JSON or XML. You can either use HTTP header (&amp;quot;Accept&amp;quot;) or a special HTTP parameter (&amp;quot;responsetype&amp;quot;) to specify what kind of response you want. If you want using HTTP header, set either &amp;quot;application/json&amp;quot; or &amp;quot;application/xml&amp;quot; in Accept header. If you want using HTTP parameter, set either &amp;quot;JSON&amp;quot; or &amp;quot;XML&amp;quot; to responsetype parameter. If no response type specified, default response will always be in XML format. Use HTTP header is a highly recommended way to do so.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1. SMS Message API'''&lt;br /&gt;
&lt;br /&gt;
'''API URI: /RESTv1/{token}/Message'''&lt;br /&gt;
&lt;br /&gt;
'''Support method: HTTP POST '''&lt;br /&gt;
&lt;br /&gt;
The following parameters are all '''required''' in your POST to send the message:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|signature||One of the API credential, similar to a password. It can be found in your account page.&lt;br /&gt;
|-&lt;br /&gt;
|type||The message type. Different type requires a different set of additional parameters.&lt;br /&gt;
|-&lt;br /&gt;
|message||The text of the message you want to send. For some types, this message must be pre-encoded&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
According to different type, a different set of additional parameters is required&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_test''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
'''Additional parameter for type: &amp;quot;sms''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
'''Additional parameters for type: &amp;quot;mms''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|mediaUrl||The URL of the media you wish to send out with the message. gif , png and jpeg content is currently supported. The media size limit is 5MB. If you wish to send more than one image in the message, please provide multiple URLs separated by comma in this parameter.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameter for type: &amp;quot;sms_port''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|port||Port number – valid value is &amp;gt; 0 and &amp;lt; 65535, parameter message must be pre-encoded.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_multi''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212. This parameter can include multiple phone numbers, separated by comma. &lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_group''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|groupName||The name of contact group in your account&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_service_group''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|serviceName||The name of your PSMS service&lt;br /&gt;
|-&lt;br /&gt;
|groupName||The contact group name of your PSMS service&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_dedicated''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|carrierCode||The carrier code that recipient phone number belongs to. This parameter is mandatory if dedicated number is a short code.&lt;br /&gt;
|-&lt;br /&gt;
|dedicatedNumber||The dedicated number which will deliver the message. It could be a long code or a short code.&lt;br /&gt;
|-&lt;br /&gt;
|tariff||The amount that recipient number to be charged&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_dedicated_port''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|port||Port number – valid value is &amp;gt; 0 and &amp;lt; 65535, parameter message must be pre-encoded.&lt;br /&gt;
|-&lt;br /&gt;
|carrierCode||The carrier code that recipient phone number belongs to. This parameter is mandatory if dedicated number is a short code.&lt;br /&gt;
|-&lt;br /&gt;
|dedicatedNumber||The dedicated number which will deliver the message. It could be a long code or a short code.&lt;br /&gt;
|-&lt;br /&gt;
|tariff||The amount that recipient number to be charged&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_defer''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|DelayHours||The hours to delay.&lt;br /&gt;
|-&lt;br /&gt;
|DelayMinutes||The minutes to delay&lt;br /&gt;
|-&lt;br /&gt;
|label||The label of this delayed event&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_flash''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|||The parameter message must be pre-encoded.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_wappush''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|url||The pre-encoded URL&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If no exception in API call, the following response (XML format) will be returned:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;HasException&amp;gt;false&amp;lt;/HasException&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;Token&amp;gt;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;lt;/Token&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt; SMSMessage&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;Status&amp;gt;QUEUED or REJECTED&amp;lt;/Status&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt; Body&amp;gt;sms message&amp;lt;/ Body&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt; Recipient&amp;gt;16047891236&amp;lt;/ Recipient&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;Type&amp;gt;sms&amp;lt;/Type&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;TrackingId&amp;gt;MTID256749777469712848&amp;lt;/TrackingId&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;RejectReason&amp;gt; &amp;lt;/RejectReason&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;/ SMSMessage&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In SMSMessage, TrackingId and RejectReason are optional. If Status is &amp;quot;QUEUED&amp;quot;, for non-multiple recipient type, a unique TrackingId is returned for future query. If Status is &amp;quot;REJECTED&amp;quot;, RejectReason includes the reject reason. If type is sms_test, the successful status is &amp;quot;PASSED&amp;quot;, not &amp;quot;QUEUED&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Or in JSON format''' '''&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;HasException&amp;quot;: false,&lt;br /&gt;
  &amp;quot;Token&amp;quot;: &amp;quot;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;quot;,&lt;br /&gt;
  &amp;quot;SMSMessage&amp;quot;: {&lt;br /&gt;
    &amp;quot;Status&amp;quot;: &amp;quot;QUEUED&amp;quot; or &amp;quot;REJECTED&amp;quot;,&lt;br /&gt;
    &amp;quot;Body&amp;quot;: &amp;quot;sms message&amp;quot;,&lt;br /&gt;
    &amp;quot;Recipient&amp;quot;: &amp;quot;16047891236&amp;quot;,&lt;br /&gt;
    &amp;quot;Type&amp;quot;: &amp;quot;sms&amp;quot;,&lt;br /&gt;
    &amp;quot;TrackingId&amp;quot;: &amp;quot;MTID256749777469712848&amp;quot;,&lt;br /&gt;
    &amp;quot;RejectReason&amp;quot;: &amp;quot;Failure message&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
''' &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
'''2. SMS Contact API'''&lt;br /&gt;
&lt;br /&gt;
'''API URI: /RESTv1/{token}/Contact'''&lt;br /&gt;
&lt;br /&gt;
'''Support method: HTTP POST '''&lt;br /&gt;
&lt;br /&gt;
The following parameters are '''required''' in your POST to add contact:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|signature||One of the API credential, similar to a password. It can be found in your account page.&lt;br /&gt;
|-&lt;br /&gt;
|mobile||The mobile number to be added as an SMS contact, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212. If mobile number already exists, existing record will be updated.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The following parameters are optional:&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|type||The mobile type, such as Android, iPhone.&lt;br /&gt;
|-&lt;br /&gt;
|email||The email of this SMS contact.&lt;br /&gt;
|-&lt;br /&gt;
|firstname||The given name of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|lastname||The surname of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|address||The living or working address of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|city||The living or working city of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|zipcode||The zipcode of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|landline||The landline of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|title||The title of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|role||The role of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|organization||The organization this SMS contact belongs to&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If no exception in API call, the following response (XML format) will be returned:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;HasException&amp;gt;false&amp;lt;/HasException&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;Token&amp;gt;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;lt;/Token&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;SMSContact&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;success&amp;gt;true or false&amp;lt;/success&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;number&amp;gt;16047891236&amp;lt;/number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;message&amp;gt;Success or failure message&amp;lt;/message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;/SMSContact&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Or in JSON format''' '''&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;HasException&amp;quot;: false,&lt;br /&gt;
  &amp;quot;Token&amp;quot;: &amp;quot;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;quot;,&lt;br /&gt;
  &amp;quot; SMSContact &amp;quot;: {&lt;br /&gt;
    &amp;quot;success&amp;quot;: true or false,&lt;br /&gt;
    &amp;quot;number&amp;quot;: &amp;quot;16047891236&amp;quot;,&lt;br /&gt;
    &amp;quot;message&amp;quot;: &amp;quot;Success or failure message.&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
''' &lt;br /&gt;
&lt;br /&gt;
'''3. Number Validation API'''&lt;br /&gt;
&lt;br /&gt;
'''API URI: /RESTv1/{token}/''' '''NumberValidation'''&lt;br /&gt;
&lt;br /&gt;
'''Support method: HTTP POST '''&lt;br /&gt;
&lt;br /&gt;
The following parameters are '''required''' in your POST to do number validation:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|signature||One of the API credential, similar to a password. It can be found in your account page.&lt;br /&gt;
|-&lt;br /&gt;
|type||The validation type. There are three possible types. 1 – &amp;quot;quick&amp;quot; and it will cost 0.1 credits; 2 – &amp;quot;route&amp;quot; and it will cost 0.25 credits; 3 – &amp;quot;hlr&amp;quot; and it will cost 0.5 credits.&lt;br /&gt;
|-&lt;br /&gt;
|number||The phone number to be validated, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If no exception in API call, the following response (XML format) will be returned:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;HasException&amp;gt;false&amp;lt;/HasException&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;Token&amp;gt;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;lt;/Token&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;NumberValidation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;success&amp;gt;true or false&amp;lt;/success&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;number&amp;gt;16047891236&amp;lt;/number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;message&amp;gt;Success or failure message&amp;lt;/message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;country&amp;gt;Canada&amp;lt;/country&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;network&amp;gt;British Columbia&amp;lt;/network&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;HLRLookupResultObject&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:::&amp;lt;status&amp;gt;OK&amp;lt;/status&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:::&amp;lt;number&amp;gt;16047891236&amp;lt;/number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:::&amp;lt;MCC&amp;gt;302&amp;lt;/MCC&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:::&amp;lt;MNC&amp;gt;370&amp;lt;/MNC&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:::&amp;lt;operatorName&amp;gt;Microcell&amp;lt;/operatorName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:::&amp;lt;operatorCountry&amp;gt;Canada&amp;lt;/operatorCountry&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:::&amp;lt;message&amp;gt;&amp;lt;/message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;/HLRLookupResultObject&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;/NumberValidation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In NumberValidation, country, network and  HLRLookupResultObject are optional, depends on the query type. If type is &amp;quot;quick&amp;quot;, only country returned; if type is &amp;quot;route&amp;quot;, country and network returned; if type is &amp;quot;hlr&amp;quot;, only HLRLookupResultObject returned.&lt;br /&gt;
&lt;br /&gt;
Or in JSON format&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;HasException&amp;quot;: false,&lt;br /&gt;
  &amp;quot;Token&amp;quot;: &amp;quot;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;quot;,&lt;br /&gt;
  &amp;quot;NumberValidation&amp;quot;: {&lt;br /&gt;
    &amp;quot;success&amp;quot;: true or false,&lt;br /&gt;
    &amp;quot;number&amp;quot;: &amp;quot;16047891236&amp;quot;,&lt;br /&gt;
    &amp;quot;message&amp;quot;: &amp;quot;Success or failure message.&amp;quot;,&lt;br /&gt;
    &amp;quot;country&amp;quot;: &amp;quot;Canada&amp;quot;,&lt;br /&gt;
    &amp;quot;network&amp;quot;: &amp;quot;British Columbia&amp;quot;&lt;br /&gt;
    &amp;quot;HLRLookupResultObject&amp;quot;: {&lt;br /&gt;
      &amp;quot;status&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
      &amp;quot;number&amp;quot;: &amp;quot;16047891236&amp;quot;,&lt;br /&gt;
      &amp;quot;MCC&amp;quot;: &amp;quot;302&amp;quot;,&lt;br /&gt;
      &amp;quot;MNC&amp;quot;: &amp;quot;370&amp;quot;,&lt;br /&gt;
      &amp;quot;operatorName&amp;quot;: &amp;quot;Microcell&amp;quot;,&lt;br /&gt;
      &amp;quot;operatorCountry&amp;quot;: &amp;quot;Canada&amp;quot;,&lt;br /&gt;
      &amp;quot;message&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The entire HLRLookupResultObject is as following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;HLRLookupResultObject&amp;gt;&lt;br /&gt;
:&amp;lt;status&amp;gt;&amp;lt;/status&amp;gt;&lt;br /&gt;
:&amp;lt;number&amp;gt;&amp;lt;/number&amp;gt;&lt;br /&gt;
:&amp;lt;MCC&amp;gt;&amp;lt;/MCC&amp;gt;&lt;br /&gt;
:&amp;lt;MNC&amp;gt;&amp;lt;/MNC&amp;gt;&lt;br /&gt;
:&amp;lt;operatorName&amp;gt;&amp;lt;/operatorName&amp;gt;&lt;br /&gt;
:&amp;lt;operatorCountry&amp;gt;&amp;lt;/operatorCountry&amp;gt;&lt;br /&gt;
:&amp;lt;IMSI&amp;gt;&amp;lt;/IMSI&amp;gt;&lt;br /&gt;
:&amp;lt;MSC&amp;gt;&amp;lt;/MSC&amp;gt;&lt;br /&gt;
:&amp;lt;mscOperator&amp;gt;&amp;lt;/mscOperator&amp;gt;&lt;br /&gt;
:&amp;lt;mscMCC&amp;gt;&amp;lt;/mscMCC&amp;gt;&lt;br /&gt;
:&amp;lt;mscMNC&amp;gt;&amp;lt;/mscMNC&amp;gt;&lt;br /&gt;
:&amp;lt;mscCountry&amp;gt;&amp;lt;/mscCountry&amp;gt;&lt;br /&gt;
:&amp;lt;mscLocation&amp;gt;&amp;lt;/mscLocation&amp;gt;&lt;br /&gt;
:&amp;lt;message&amp;gt;&amp;lt;/message&amp;gt;&lt;br /&gt;
&amp;lt;/HLRLookupResultObject&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Only status, number and message are mandatory, others are optional.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''REST API Exception'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If there is any exception in REST API call, the HasException flag will be set to true and the following response (XML format) will be returned:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;HasException&amp;gt;true&amp;lt;/HasException&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;Token&amp;gt;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;lt;/Token&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;RestException&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;ErrorCode&amp;gt;101&amp;lt;/ErrorCode&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;Message&amp;gt;Unauthorized&amp;lt;/Message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;Status&amp;gt;401&amp;lt;/Status&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;/RestException&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Or in JSON format''' '''&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;HasException&amp;quot;: true,&lt;br /&gt;
  &amp;quot;Token&amp;quot;: &amp;quot;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;quot;,&lt;br /&gt;
  &amp;quot;RestException&amp;quot;: {&lt;br /&gt;
    &amp;quot;ErrorCode&amp;quot;: &amp;quot;101&amp;quot;,&lt;br /&gt;
    &amp;quot;Message&amp;quot;: &amp;quot;Unauthorized&amp;quot;,&lt;br /&gt;
    &amp;quot;Status&amp;quot;: &amp;quot;401&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Status is HTTP status code and it is optional.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''ErrorCode and corresponding message:'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|'''ErrorCode'''||'''Message'''||'''Comments'''&lt;br /&gt;
|-&lt;br /&gt;
|100||Unsupported method||Wrong HTTP method&lt;br /&gt;
|-&lt;br /&gt;
|101||Unauthorized||API credential is wrong&lt;br /&gt;
|-&lt;br /&gt;
|102||No permission||API credential passed, but no permission&lt;br /&gt;
|-&lt;br /&gt;
|103||Runtime error||Runtime error during API call&lt;br /&gt;
|-&lt;br /&gt;
|||||&lt;br /&gt;
|-&lt;br /&gt;
|200||Zero balance||No credits to send a message&lt;br /&gt;
|-&lt;br /&gt;
|201||Invalid country||Can’t figure out a country with the recipient number&lt;br /&gt;
|-&lt;br /&gt;
|202||Invalid carrier code||The carrier code is incorrect&lt;br /&gt;
|-&lt;br /&gt;
|203||Number blocked||The recipient number is blocked by our system&lt;br /&gt;
|-&lt;br /&gt;
|204||Too many messages||Message is too long&lt;br /&gt;
|-&lt;br /&gt;
|205||Empty message||Empty message&lt;br /&gt;
|-&lt;br /&gt;
|206||No time for defer||The delay parameter is wrong&lt;br /&gt;
|-&lt;br /&gt;
|207||Unknown type||Unknown message type&lt;br /&gt;
|-&lt;br /&gt;
|208||Unimplemented type||The message type not implemented yet&lt;br /&gt;
|-&lt;br /&gt;
|||||&lt;br /&gt;
|-&lt;br /&gt;
|300||Mobile phone number is invalid||Invalid mobile number&lt;br /&gt;
|-&lt;br /&gt;
|301||Credit is not enough to perform validation. Please purchase more and try again||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
== '''Examples''' ==&lt;br /&gt;
&lt;br /&gt;
[[C# Example]]   |   [[Java Example]]&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Bzurkovic</name></author>	</entry>

	<entry>
		<id>http://docs.upsidewireless.com/index.php?title=Send_REST</id>
		<title>Send REST</title>
		<link rel="alternate" type="text/html" href="http://docs.upsidewireless.com/index.php?title=Send_REST"/>
				<updated>2015-02-04T04:06:40Z</updated>
		
		<summary type="html">&lt;p&gt;Bzurkovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Upsidewireless REST API '''&lt;br /&gt;
&lt;br /&gt;
There are two endpoints of Upsidewireless REST API, [https://secureapi.upsidewireless.com https://secureapi.upsidewireless.com] and [http://api.upsidewireless.com http://api.upsidewireless.com]. If you care about more security than performance, you should use the secure endpoint. However, in this case you will need to install certificate for secure, authenticated communication. We recommend you select the secure option. &lt;br /&gt;
&lt;br /&gt;
In order to use Upsidewireless REST API, you need have an account that has API permissions and get your API credential (token and signature) on your account page. Token is similar to username and signature is similar to password. They are needed in every single call to REST API.&lt;br /&gt;
&lt;br /&gt;
There are two kinds of response of each API call, JSON or XML. You can either use HTTP header (&amp;quot;Accept&amp;quot;) or a special HTTP parameter (&amp;quot;responsetype&amp;quot;) to specify what kind of response you want. If you want using HTTP header, set either &amp;quot;application/json&amp;quot; or &amp;quot;application/xml&amp;quot; in Accept header. If you want using HTTP parameter, set either &amp;quot;JSON&amp;quot; or &amp;quot;XML&amp;quot; to responsetype parameter. If no response type specified, default response will always be in XML format. Use HTTP header is a highly recommended way to do so.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1. SMS Message API'''&lt;br /&gt;
&lt;br /&gt;
'''API URI: /RESTv1/{token}/Message'''&lt;br /&gt;
&lt;br /&gt;
'''Support method: HTTP POST '''&lt;br /&gt;
&lt;br /&gt;
The following parameters are all '''required''' in your POST to send the message:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|signature||One of the API credential, similar to a password. It can be found in your account page.&lt;br /&gt;
|-&lt;br /&gt;
|type||The message type. Different type requires a different set of additional parameters.&lt;br /&gt;
|-&lt;br /&gt;
|message||The text of the message you want to send. For some types, this message must be pre-encoded&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
According to different type, a different set of additional parameters is required&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_test''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
'''Additional parameter for type: &amp;quot;sms''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
'''Additional parameters for type: &amp;quot;mms''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|mediaUrl||The URL of the media you wish to send out with the message. gif , png and jpeg content is currently supported. The media size limit is 5MB. If you wish to send more than one image in the message, please provide multiple URLs separated by comma in this parameter.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameter for type: &amp;quot;sms_port''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|port||Port number – valid value is &amp;gt; 0 and &amp;lt; 65535, parameter message must be pre-encoded.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_multi''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212. This parameter can include multiple phone numbers, separated by comma. &lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_group''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|groupName||The name of contact group in your account&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_service_group''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|serviceName||The name of your PSMS service&lt;br /&gt;
|-&lt;br /&gt;
|groupName||The contact group name of your PSMS service&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_dedicated''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|carrierCode||The carrier code that recipient phone number belongs to. This parameter is mandatory if dedicated number is a short code.&lt;br /&gt;
|-&lt;br /&gt;
|dedicatedNumber||The dedicated number which will deliver the message. It could be a long code or a short code.&lt;br /&gt;
|-&lt;br /&gt;
|tariff||The amount that recipient number to be charged&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_dedicated_port''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|port||Port number – valid value is &amp;gt; 0 and &amp;lt; 65535, parameter message must be pre-encoded.&lt;br /&gt;
|-&lt;br /&gt;
|carrierCode||The carrier code that recipient phone number belongs to. This parameter is mandatory if dedicated number is a short code.&lt;br /&gt;
|-&lt;br /&gt;
|dedicatedNumber||The dedicated number which will deliver the message. It could be a long code or a short code.&lt;br /&gt;
|-&lt;br /&gt;
|tariff||The amount that recipient number to be charged&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_defer''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|DelayHours||The hours to delay.&lt;br /&gt;
|-&lt;br /&gt;
|DelayMinutes||The minutes to delay&lt;br /&gt;
|-&lt;br /&gt;
|label||The label of this delayed event&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_flash''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|||The parameter message must be pre-encoded.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_wappush''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|url||The pre-encoded URL&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If no exception in API call, the following response (XML format) will be returned:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;HasException&amp;gt;false&amp;lt;/HasException&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;Token&amp;gt;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;lt;/Token&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt; SMSMessage&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;Status&amp;gt;QUEUED or REJECTED&amp;lt;/Status&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt; Body&amp;gt;sms message&amp;lt;/ Body&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt; Recipient&amp;gt;16047891236&amp;lt;/ Recipient&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;Type&amp;gt;sms&amp;lt;/Type&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;TrackingId&amp;gt;MTID256749777469712848&amp;lt;/TrackingId&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;RejectReason&amp;gt; &amp;lt;/RejectReason&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;/ SMSMessage&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In SMSMessage, TrackingId and RejectReason are optional. If Status is &amp;quot;QUEUED&amp;quot;, for non-multiple recipient type, a unique TrackingId is returned for future query. If Status is &amp;quot;REJECTED&amp;quot;, RejectReason includes the reject reason. If type is sms_test, the successful status is &amp;quot;PASSED&amp;quot;, not &amp;quot;QUEUED&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Or in JSON format''' '''&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;HasException&amp;quot;: false,&lt;br /&gt;
  &amp;quot;Token&amp;quot;: &amp;quot;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;quot;,&lt;br /&gt;
  &amp;quot;SMSMessage&amp;quot;: {&lt;br /&gt;
    &amp;quot;Status&amp;quot;: &amp;quot;QUEUED&amp;quot; or &amp;quot;REJECTED&amp;quot;,&lt;br /&gt;
    &amp;quot;Body&amp;quot;: &amp;quot;sms message&amp;quot;,&lt;br /&gt;
    &amp;quot;Recipient&amp;quot;: &amp;quot;16047891236&amp;quot;,&lt;br /&gt;
    &amp;quot;Type&amp;quot;: &amp;quot;sms&amp;quot;,&lt;br /&gt;
    &amp;quot;TrackingId&amp;quot;: &amp;quot;MTID256749777469712848&amp;quot;,&lt;br /&gt;
    &amp;quot;RejectReason&amp;quot;: &amp;quot;Failure message&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
''' &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
'''2. SMS Contact API'''&lt;br /&gt;
&lt;br /&gt;
'''API URI: /RESTv1/{token}/Contact'''&lt;br /&gt;
&lt;br /&gt;
'''Support method: HTTP POST '''&lt;br /&gt;
&lt;br /&gt;
The following parameters are '''required''' in your POST to add contact:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|signature||One of the API credential, similar to a password. It can be found in your account page.&lt;br /&gt;
|-&lt;br /&gt;
|mobile||The mobile number to be added as an SMS contact, in [&amp;lt;u&amp;gt;E.164-http://en.wikipedia.org/wiki/E.164]&amp;lt;/u&amp;gt; format, for example 16045551212. If mobile number already exists, existing record will be updated.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The following parameters are optional:&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|type||The mobile type, such as Android, iPhone.&lt;br /&gt;
|-&lt;br /&gt;
|email||The email of this SMS contact.&lt;br /&gt;
|-&lt;br /&gt;
|firstname||The given name of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|lastname||The surname of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|address||The living or working address of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|city||The living or working city of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|zipcode||The zipcode of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|landline||The landline of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|title||The title of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|role||The role of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|organization||The organization this SMS contact belongs to&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If no exception in API call, the following response (XML format) will be returned:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;HasException&amp;gt;false&amp;lt;/HasException&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;Token&amp;gt;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;lt;/Token&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;SMSContact&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;success&amp;gt;true or false&amp;lt;/success&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;number&amp;gt;16047891236&amp;lt;/number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;message&amp;gt;Success or failure message&amp;lt;/message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;/SMSContact&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Or in JSON format''' '''&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;HasException&amp;quot;: false,&lt;br /&gt;
  &amp;quot;Token&amp;quot;: &amp;quot;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;quot;,&lt;br /&gt;
  &amp;quot; SMSContact &amp;quot;: {&lt;br /&gt;
    &amp;quot;success&amp;quot;: true or false,&lt;br /&gt;
    &amp;quot;number&amp;quot;: &amp;quot;16047891236&amp;quot;,&lt;br /&gt;
    &amp;quot;message&amp;quot;: &amp;quot;Success or failure message.&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
''' &lt;br /&gt;
&lt;br /&gt;
'''3. Number Validation API'''&lt;br /&gt;
&lt;br /&gt;
'''API URI: /RESTv1/{token}/''' '''NumberValidation'''&lt;br /&gt;
&lt;br /&gt;
'''Support method: HTTP POST '''&lt;br /&gt;
&lt;br /&gt;
The following parameters are '''required''' in your POST to do number validation:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|signature||One of the API credential, similar to a password. It can be found in your account page.&lt;br /&gt;
|-&lt;br /&gt;
|type||The validation type. There are three possible types. 1 – &amp;quot;quick&amp;quot; and it will cost 0.1 credits; 2 – &amp;quot;route&amp;quot; and it will cost 0.25 credits; 3 – &amp;quot;hlr&amp;quot; and it will cost 0.5 credits.&lt;br /&gt;
|-&lt;br /&gt;
|number||The phone number to be validated, in [&amp;lt;u&amp;gt;E.164-http://en.wikipedia.org/wiki/E.164]&amp;lt;/u&amp;gt; format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If no exception in API call, the following response (XML format) will be returned:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;HasException&amp;gt;false&amp;lt;/HasException&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;Token&amp;gt;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;lt;/Token&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;NumberValidation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;success&amp;gt;true or false&amp;lt;/success&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;number&amp;gt;16047891236&amp;lt;/number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;message&amp;gt;Success or failure message&amp;lt;/message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;country&amp;gt;Canada&amp;lt;/country&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;network&amp;gt;British Columbia&amp;lt;/network&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;HLRLookupResultObject&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;status&amp;gt;OK&amp;lt;/status&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;number&amp;gt;16047891236&amp;lt;/number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;MCC&amp;gt;302&amp;lt;/MCC&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;MNC&amp;gt;370&amp;lt;/MNC&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;operatorName&amp;gt;Microcell&amp;lt;/operatorName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;operatorCountry&amp;gt;Canada&amp;lt;/operatorCountry&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;message&amp;gt;&amp;lt;/message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;/HLRLookupResultObject&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;/NumberValidation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In NumberValidation, country, network and  HLRLookupResultObject are optional, depends on the query type. If type is &amp;quot;quick&amp;quot;, only country returned; if type is &amp;quot;route&amp;quot;, country and network returned; if type is &amp;quot;hlr&amp;quot;, only HLRLookupResultObject returned.&lt;br /&gt;
&lt;br /&gt;
Or in JSON format&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;HasException&amp;quot;: false,&lt;br /&gt;
  &amp;quot;Token&amp;quot;: &amp;quot;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;quot;,&lt;br /&gt;
  &amp;quot;NumberValidation&amp;quot;: {&lt;br /&gt;
    &amp;quot;success&amp;quot;: true or false,&lt;br /&gt;
    &amp;quot;number&amp;quot;: &amp;quot;16047891236&amp;quot;,&lt;br /&gt;
    &amp;quot;message&amp;quot;: &amp;quot;Success or failure message.&amp;quot;,&lt;br /&gt;
    &amp;quot;country&amp;quot;: &amp;quot;Canada&amp;quot;,&lt;br /&gt;
    &amp;quot;network&amp;quot;: &amp;quot;British Columbia&amp;quot;&lt;br /&gt;
    &amp;quot;HLRLookupResultObject&amp;quot;: {&lt;br /&gt;
      &amp;quot;status&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
      &amp;quot;number&amp;quot;: &amp;quot;16047891236&amp;quot;,&lt;br /&gt;
      &amp;quot;MCC&amp;quot;: &amp;quot;302&amp;quot;,&lt;br /&gt;
      &amp;quot;MNC&amp;quot;: &amp;quot;370&amp;quot;,&lt;br /&gt;
      &amp;quot;operatorName&amp;quot;: &amp;quot;Microcell&amp;quot;,&lt;br /&gt;
      &amp;quot;operatorCountry&amp;quot;: &amp;quot;Canada&amp;quot;,&lt;br /&gt;
      &amp;quot;message&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The entire HLRLookupResultObject is as following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;HLRLookupResultObject&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;status&amp;gt;&amp;lt;/status&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;number&amp;gt;&amp;lt;/number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;MCC&amp;gt;&amp;lt;/MCC&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;MNC&amp;gt;&amp;lt;/MNC&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;operatorName&amp;gt;&amp;lt;/operatorName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;operatorCountry&amp;gt;&amp;lt;/operatorCountry&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;IMSI&amp;gt;&amp;lt;/IMSI&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;MSC&amp;gt;&amp;lt;/MSC&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;mscOperator&amp;gt;&amp;lt;/mscOperator&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;mscMCC&amp;gt;&amp;lt;/mscMCC&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;mscMNC&amp;gt;&amp;lt;/mscMNC&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;mscCountry&amp;gt;&amp;lt;/mscCountry&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;mscLocation&amp;gt;&amp;lt;/mscLocation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;message&amp;gt;&amp;lt;/message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/HLRLookupResultObject&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Only status, number and message are mandatory, others are optional.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''REST API Exception'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If there is any exception in REST API call, the HasException flag will be set to true and the following response (XML format) will be returned:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;HasException&amp;gt;true&amp;lt;/HasException&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;Token&amp;gt;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;lt;/Token&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;RestException&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;ErrorCode&amp;gt;101&amp;lt;/ErrorCode&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;Message&amp;gt;Unauthorized&amp;lt;/Message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;Status&amp;gt;401&amp;lt;/Status&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;/RestException&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Or in JSON format''' '''&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;HasException&amp;quot;: true,&lt;br /&gt;
  &amp;quot;Token&amp;quot;: &amp;quot;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;quot;,&lt;br /&gt;
  &amp;quot;RestException&amp;quot;: {&lt;br /&gt;
    &amp;quot;ErrorCode&amp;quot;: &amp;quot;101&amp;quot;,&lt;br /&gt;
    &amp;quot;Message&amp;quot;: &amp;quot;Unauthorized&amp;quot;,&lt;br /&gt;
    &amp;quot;Status&amp;quot;: &amp;quot;401&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Status is HTTP status code and it is optional.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''ErrorCode and corresponding message:'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|'''ErrorCode'''||'''Message'''||'''Comments'''&lt;br /&gt;
|-&lt;br /&gt;
|100||Unsupported method||Wrong HTTP method&lt;br /&gt;
|-&lt;br /&gt;
|101||Unauthorized||API credential is wrong&lt;br /&gt;
|-&lt;br /&gt;
|102||No permission||API credential passed, but no permission&lt;br /&gt;
|-&lt;br /&gt;
|103||Runtime error||Runtime error during API call&lt;br /&gt;
|-&lt;br /&gt;
|||||&lt;br /&gt;
|-&lt;br /&gt;
|200||Zero balance||No credits to send a message&lt;br /&gt;
|-&lt;br /&gt;
|201||Invalid country||Can’t figure out a country with the recipient number&lt;br /&gt;
|-&lt;br /&gt;
|202||Invalid carrier code||The carrier code is incorrect&lt;br /&gt;
|-&lt;br /&gt;
|203||Number blocked||The recipient number is blocked by our system&lt;br /&gt;
|-&lt;br /&gt;
|204||Too many messages||Message is too long&lt;br /&gt;
|-&lt;br /&gt;
|205||Empty message||Empty message&lt;br /&gt;
|-&lt;br /&gt;
|206||No time for defer||The delay parameter is wrong&lt;br /&gt;
|-&lt;br /&gt;
|207||Unknown type||Unknown message type&lt;br /&gt;
|-&lt;br /&gt;
|208||Unimplemented type||The message type not implemented yet&lt;br /&gt;
|-&lt;br /&gt;
|||||&lt;br /&gt;
|-&lt;br /&gt;
|300||Mobile phone number is invalid||Invalid mobile number&lt;br /&gt;
|-&lt;br /&gt;
|301||Credit is not enough to perform validation. Please purchase more and try again||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
== '''Examples''' ==&lt;br /&gt;
&lt;br /&gt;
[[C# Example]]   |   [[Java Example]]&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Bzurkovic</name></author>	</entry>

	<entry>
		<id>http://docs.upsidewireless.com/index.php?title=Send_REST</id>
		<title>Send REST</title>
		<link rel="alternate" type="text/html" href="http://docs.upsidewireless.com/index.php?title=Send_REST"/>
				<updated>2015-02-04T04:04:39Z</updated>
		
		<summary type="html">&lt;p&gt;Bzurkovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Upsidewireless REST API '''&lt;br /&gt;
&lt;br /&gt;
There are two endpoints of Upsidewireless REST API, [https://secureapi.upsidewireless.com https://secureapi.upsidewireless.com] and [http://api.upsidewireless.com http://api.upsidewireless.com]. If you care about more security than performance, you should use the secure endpoint. However, in this case you will need to install certificate for secure, authenticated communication. We recommend you select the secure option. &lt;br /&gt;
&lt;br /&gt;
In order to use Upsidewireless REST API, you need have an account that has API permissions and get your API credential (token and signature) on your account page. Token is similar to username and signature is similar to password. They are needed in every single call to REST API.&lt;br /&gt;
&lt;br /&gt;
There are two kinds of response of each API call, JSON or XML. You can either use HTTP header (&amp;quot;Accept&amp;quot;) or a special HTTP parameter (&amp;quot;responsetype&amp;quot;) to specify what kind of response you want. If you want using HTTP header, set either &amp;quot;application/json&amp;quot; or &amp;quot;application/xml&amp;quot; in Accept header. If you want using HTTP parameter, set either &amp;quot;JSON&amp;quot; or &amp;quot;XML&amp;quot; to responsetype parameter. If no response type specified, default response will always be in XML format. Use HTTP header is a highly recommended way to do so.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1. SMS Message API'''&lt;br /&gt;
&lt;br /&gt;
'''API URI: /RESTv1/{token}/Message'''&lt;br /&gt;
&lt;br /&gt;
'''Support method: HTTP POST '''&lt;br /&gt;
&lt;br /&gt;
The following parameters are all '''required''' in your POST to send the message:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|signature||One of the API credential, similar to a password. It can be found in your account page.&lt;br /&gt;
|-&lt;br /&gt;
|type||The message type. Different type requires a different set of additional parameters.&lt;br /&gt;
|-&lt;br /&gt;
|message||The text of the message you want to send. For some types, this message must be pre-encoded&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
According to different type, a different set of additional parameters is required&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_test''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
'''Additional parameter for type: &amp;quot;sms''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
'''Additional parameters for type: &amp;quot;mms''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|mediaUrl||The URL of the media you wish to send out with the message. gif , png and jpeg content is currently supported. The media size limit is 5MB. If you wish to send more than one image in the message, please provide multiple URLs separated by comma in this parameter.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameter for type: &amp;quot;sms_port''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|port||Port number – valid value is &amp;gt; 0 and &amp;lt; 65535, parameter message must be pre-encoded.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_multi''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212. This parameter can include multiple phone numbers, separated by comma. &lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_group''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|groupName||The name of contact group in your account&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_service_group''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|serviceName||The name of your PSMS service&lt;br /&gt;
|-&lt;br /&gt;
|groupName||The contact group name of your PSMS service&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_dedicated''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|carrierCode||The carrier code that recipient phone number belongs to. This parameter is mandatory if dedicated number is a short code.&lt;br /&gt;
|-&lt;br /&gt;
|dedicatedNumber||The dedicated number which will deliver the message. It could be a long code or a short code.&lt;br /&gt;
|-&lt;br /&gt;
|tariff||The amount that recipient number to be charged&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_dedicated_port''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|port||Port number – valid value is &amp;gt; 0 and &amp;lt; 65535, parameter message must be pre-encoded.&lt;br /&gt;
|-&lt;br /&gt;
|carrierCode||The carrier code that recipient phone number belongs to. This parameter is mandatory if dedicated number is a short code.&lt;br /&gt;
|-&lt;br /&gt;
|dedicatedNumber||The dedicated number which will deliver the message. It could be a long code or a short code.&lt;br /&gt;
|-&lt;br /&gt;
|tariff||The amount that recipient number to be charged&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_defer''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|DelayHours||The hours to delay.&lt;br /&gt;
|-&lt;br /&gt;
|DelayMinutes||The minutes to delay&lt;br /&gt;
|-&lt;br /&gt;
|label||The label of this delayed event&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_flash''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|||The parameter message must be pre-encoded.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_wappush''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [http://en.wikipedia.org/wiki/E.164 E.164] format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|url||The pre-encoded URL&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If no exception in API call, the following response (XML format) will be returned:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;HasException&amp;gt;false&amp;lt;/HasException&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;Token&amp;gt;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;lt;/Token&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt; SMSMessage&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;Status&amp;gt;QUEUED or REJECTED&amp;lt;/Status&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt; Body&amp;gt;sms message&amp;lt;/ Body&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt; Recipient&amp;gt;16047891236&amp;lt;/ Recipient&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;Type&amp;gt;sms&amp;lt;/Type&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;TrackingId&amp;gt;MTID256749777469712848&amp;lt;/TrackingId&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;RejectReason&amp;gt; &amp;lt;/RejectReason&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;/ SMSMessage&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In SMSMessage, TrackingId and RejectReason are optional. If Status is &amp;quot;QUEUED&amp;quot;, for non-multiple recipient type, a unique TrackingId is returned for future query. If Status is &amp;quot;REJECTED&amp;quot;, RejectReason includes the reject reason. If type is sms_test, the successful status is &amp;quot;PASSED&amp;quot;, not &amp;quot;QUEUED&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Or in JSON format''' '''&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;HasException&amp;quot;: false,&lt;br /&gt;
  &amp;quot;Token&amp;quot;: &amp;quot;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;quot;,&lt;br /&gt;
  &amp;quot;SMSMessage&amp;quot;: {&lt;br /&gt;
    &amp;quot;Status&amp;quot;: &amp;quot;QUEUED&amp;quot; or &amp;quot;REJECTED&amp;quot;,&lt;br /&gt;
    &amp;quot;Body&amp;quot;: &amp;quot;sms message&amp;quot;,&lt;br /&gt;
    &amp;quot;Recipient&amp;quot;: &amp;quot;16047891236&amp;quot;,&lt;br /&gt;
    &amp;quot;Type&amp;quot;: &amp;quot;sms&amp;quot;,&lt;br /&gt;
    &amp;quot;TrackingId&amp;quot;: &amp;quot;MTID256749777469712848&amp;quot;,&lt;br /&gt;
    &amp;quot;RejectReason&amp;quot;: &amp;quot;Failure message&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
''' &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
'''2. SMS Contact API'''&lt;br /&gt;
&lt;br /&gt;
'''API URI: /RESTv1/{token}/Contact'''&lt;br /&gt;
&lt;br /&gt;
'''Support method: HTTP POST '''&lt;br /&gt;
&lt;br /&gt;
The following parameters are '''required''' in your POST to add contact:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|signature||One of the API credential, similar to a password. It can be found in your account page.&lt;br /&gt;
|-&lt;br /&gt;
|mobile||The mobile number to be added as an SMS contact, in [&amp;lt;u&amp;gt;E.164-http://en.wikipedia.org/wiki/E.164]&amp;lt;/u&amp;gt; format, for example 16045551212. If mobile number already exists, existing record will be updated.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The following parameters are optional:&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|type||The mobile type, such as Android, iPhone.&lt;br /&gt;
|-&lt;br /&gt;
|email||The email of this SMS contact.&lt;br /&gt;
|-&lt;br /&gt;
|firstname||The given name of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|lastname||The surname of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|address||The living or working address of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|city||The living or working city of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|zipcode||The zipcode of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|landline||The landline of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|title||The title of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|role||The role of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|organization||The organization this SMS contact belongs to&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If no exception in API call, the following response (XML format) will be returned:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;HasException&amp;gt;false&amp;lt;/HasException&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;Token&amp;gt;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;lt;/Token&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;SMSContact&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;success&amp;gt;true or false&amp;lt;/success&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;number&amp;gt;16047891236&amp;lt;/number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;message&amp;gt;Success or failure message&amp;lt;/message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;/SMSContact&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Or in JSON format''' '''&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;HasException&amp;quot;: false,&lt;br /&gt;
  &amp;quot;Token&amp;quot;: &amp;quot;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;quot;,&lt;br /&gt;
  &amp;quot; SMSContact &amp;quot;: {&lt;br /&gt;
    &amp;quot;success&amp;quot;: true or false,&lt;br /&gt;
    &amp;quot;number&amp;quot;: &amp;quot;16047891236&amp;quot;,&lt;br /&gt;
    &amp;quot;message&amp;quot;: &amp;quot;Success or failure message.&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
''' &lt;br /&gt;
&lt;br /&gt;
'''3. Number Validation API'''&lt;br /&gt;
&lt;br /&gt;
'''API URI: /RESTv1/{token}/''' '''NumberValidation'''&lt;br /&gt;
&lt;br /&gt;
'''Support method: HTTP POST '''&lt;br /&gt;
&lt;br /&gt;
The following parameters are '''required''' in your POST to do number validation:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|signature||One of the API credential, similar to a password. It can be found in your account page.&lt;br /&gt;
|-&lt;br /&gt;
|type||The validation type. There are three possible types. 1 – &amp;quot;quick&amp;quot; and it will cost 0.1 credits; 2 – &amp;quot;route&amp;quot; and it will cost 0.25 credits; 3 – &amp;quot;hlr&amp;quot; and it will cost 0.5 credits.&lt;br /&gt;
|-&lt;br /&gt;
|number||The phone number to be validated, in [&amp;lt;u&amp;gt;E.164-http://en.wikipedia.org/wiki/E.164]&amp;lt;/u&amp;gt; format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If no exception in API call, the following response (XML format) will be returned:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;HasException&amp;gt;false&amp;lt;/HasException&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;Token&amp;gt;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;lt;/Token&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;NumberValidation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;success&amp;gt;true or false&amp;lt;/success&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;number&amp;gt;16047891236&amp;lt;/number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;message&amp;gt;Success or failure message&amp;lt;/message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;country&amp;gt;Canada&amp;lt;/country&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;network&amp;gt;British Columbia&amp;lt;/network&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;HLRLookupResultObject&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;status&amp;gt;OK&amp;lt;/status&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;number&amp;gt;16047891236&amp;lt;/number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;MCC&amp;gt;302&amp;lt;/MCC&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;MNC&amp;gt;370&amp;lt;/MNC&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;operatorName&amp;gt;Microcell&amp;lt;/operatorName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;operatorCountry&amp;gt;Canada&amp;lt;/operatorCountry&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;message&amp;gt;&amp;lt;/message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;/HLRLookupResultObject&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;/NumberValidation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In NumberValidation, country, network and  HLRLookupResultObject are optional, depends on the query type. If type is &amp;quot;quick&amp;quot;, only country returned; if type is &amp;quot;route&amp;quot;, country and network returned; if type is &amp;quot;hlr&amp;quot;, only HLRLookupResultObject returned.&lt;br /&gt;
&lt;br /&gt;
Or in JSON format&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;HasException&amp;quot;: false,&lt;br /&gt;
  &amp;quot;Token&amp;quot;: &amp;quot;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;quot;,&lt;br /&gt;
  &amp;quot;NumberValidation&amp;quot;: {&lt;br /&gt;
    &amp;quot;success&amp;quot;: true or false,&lt;br /&gt;
    &amp;quot;number&amp;quot;: &amp;quot;16047891236&amp;quot;,&lt;br /&gt;
    &amp;quot;message&amp;quot;: &amp;quot;Success or failure message.&amp;quot;,&lt;br /&gt;
    &amp;quot;country&amp;quot;: &amp;quot;Canada&amp;quot;,&lt;br /&gt;
    &amp;quot;network&amp;quot;: &amp;quot;British Columbia&amp;quot;&lt;br /&gt;
    &amp;quot;HLRLookupResultObject&amp;quot;: {&lt;br /&gt;
      &amp;quot;status&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
      &amp;quot;number&amp;quot;: &amp;quot;16047891236&amp;quot;,&lt;br /&gt;
      &amp;quot;MCC&amp;quot;: &amp;quot;302&amp;quot;,&lt;br /&gt;
      &amp;quot;MNC&amp;quot;: &amp;quot;370&amp;quot;,&lt;br /&gt;
      &amp;quot;operatorName&amp;quot;: &amp;quot;Microcell&amp;quot;,&lt;br /&gt;
      &amp;quot;operatorCountry&amp;quot;: &amp;quot;Canada&amp;quot;,&lt;br /&gt;
      &amp;quot;message&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The entire HLRLookupResultObject is as following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;HLRLookupResultObject&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;status&amp;gt;&amp;lt;/status&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;number&amp;gt;&amp;lt;/number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;MCC&amp;gt;&amp;lt;/MCC&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;MNC&amp;gt;&amp;lt;/MNC&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;operatorName&amp;gt;&amp;lt;/operatorName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;operatorCountry&amp;gt;&amp;lt;/operatorCountry&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;IMSI&amp;gt;&amp;lt;/IMSI&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;MSC&amp;gt;&amp;lt;/MSC&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;mscOperator&amp;gt;&amp;lt;/mscOperator&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;mscMCC&amp;gt;&amp;lt;/mscMCC&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;mscMNC&amp;gt;&amp;lt;/mscMNC&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;mscCountry&amp;gt;&amp;lt;/mscCountry&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;mscLocation&amp;gt;&amp;lt;/mscLocation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;message&amp;gt;&amp;lt;/message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/HLRLookupResultObject&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Only status, number and message are mandatory, others are optional.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''REST API Exception'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If there is any exception in REST API call, the HasException flag will be set to true and the following response (XML format) will be returned:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;HasException&amp;gt;true&amp;lt;/HasException&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;Token&amp;gt;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;lt;/Token&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;RestException&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;ErrorCode&amp;gt;101&amp;lt;/ErrorCode&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;Message&amp;gt;Unauthorized&amp;lt;/Message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;Status&amp;gt;401&amp;lt;/Status&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;/RestException&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Or in JSON format''' '''&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;HasException&amp;quot;: true,&lt;br /&gt;
  &amp;quot;Token&amp;quot;: &amp;quot;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;quot;,&lt;br /&gt;
  &amp;quot;RestException&amp;quot;: {&lt;br /&gt;
    &amp;quot;ErrorCode&amp;quot;: &amp;quot;101&amp;quot;,&lt;br /&gt;
    &amp;quot;Message&amp;quot;: &amp;quot;Unauthorized&amp;quot;,&lt;br /&gt;
    &amp;quot;Status&amp;quot;: &amp;quot;401&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Status is HTTP status code and it is optional.&lt;br /&gt;
ErrorCode and corresponding message:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|'''ErrorCode'''||'''Message'''||'''Comments'''&lt;br /&gt;
|-&lt;br /&gt;
|100||Unsupported method||Wrong HTTP method&lt;br /&gt;
|-&lt;br /&gt;
|101||Unauthorized||API credential is wrong&lt;br /&gt;
|-&lt;br /&gt;
|102||No permission||API credential passed, but no permission&lt;br /&gt;
|-&lt;br /&gt;
|103||Runtime error||Runtime error during API call&lt;br /&gt;
|-&lt;br /&gt;
|||||&lt;br /&gt;
|-&lt;br /&gt;
|200||Zero balance||No credits to send a message&lt;br /&gt;
|-&lt;br /&gt;
|201||Invalid country||Can’t figure out a country with the recipient number&lt;br /&gt;
|-&lt;br /&gt;
|202||Invalid carrier code||The carrier code is incorrect&lt;br /&gt;
|-&lt;br /&gt;
|203||Number blocked||The recipient number is blocked by our system&lt;br /&gt;
|-&lt;br /&gt;
|204||Too many messages||Message is too long&lt;br /&gt;
|-&lt;br /&gt;
|205||Empty message||Empty message&lt;br /&gt;
|-&lt;br /&gt;
|206||No time for defer||The delay parameter is wrong&lt;br /&gt;
|-&lt;br /&gt;
|207||Unknown type||Unknown message type&lt;br /&gt;
|-&lt;br /&gt;
|208||Unimplemented type||The message type not implemented yet&lt;br /&gt;
|-&lt;br /&gt;
|||||&lt;br /&gt;
|-&lt;br /&gt;
|300||Mobile phone number is invalid||Invalid mobile number&lt;br /&gt;
|-&lt;br /&gt;
|301||Credit is not enough to perform validation. Please purchase more and try again||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
== '''Examples''' ==&lt;br /&gt;
&lt;br /&gt;
[[C# Example]]   |   [[Java Example]]&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Bzurkovic</name></author>	</entry>

	<entry>
		<id>http://docs.upsidewireless.com/index.php?title=Send_REST</id>
		<title>Send REST</title>
		<link rel="alternate" type="text/html" href="http://docs.upsidewireless.com/index.php?title=Send_REST"/>
				<updated>2015-02-03T02:03:58Z</updated>
		
		<summary type="html">&lt;p&gt;Bzurkovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Upsidewireless REST API '''&lt;br /&gt;
&lt;br /&gt;
There are two endpoints of Upsidewireless REST API, [https://secureapi.upsidewireless.com-https://secureapi.upsidewireless.com/] and [http://api.upsidewireless.com-http://api.upsidewireless.com/]. If you care about more security than performance, you should use the secure endpoint. However, in this case you will need to install certificate for secure, authenticated communication.&lt;br /&gt;
&lt;br /&gt;
In order to use Upsidewireless REST API, you need have an account that has API permissions and get your API credential (token and signature) on your account page. Token is similar to username and signature is similar to password. They are needed in every single call to REST API.&lt;br /&gt;
&lt;br /&gt;
There are two kinds of response of each API call, JSON or XML. You can either use HTTP header (&amp;quot;Accept&amp;quot;) or a special HTTP parameter (&amp;quot;responsetype&amp;quot;) to specify what kind of response you want. If you want using HTTP header, set either &amp;quot;application/json&amp;quot; or &amp;quot;application/xml&amp;quot; in Accept header. If you want using HTTP parameter, set either &amp;quot;JSON&amp;quot; or &amp;quot;XML&amp;quot; to responsetype parameter. If no response type specified, default response will always be in XML format. Use HTTP header is a highly recommended way to do so.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1. SMS Message API'''&lt;br /&gt;
&lt;br /&gt;
'''API URI: /RESTv1/{token}/Message'''&lt;br /&gt;
&lt;br /&gt;
'''Support method: HTTP POST '''&lt;br /&gt;
&lt;br /&gt;
The following parameters are all '''required''' in your POST to send the message:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|signature||One of the API credential, similar to a password. It can be found in your account page.&lt;br /&gt;
|-&lt;br /&gt;
|type||The message type. Different type requires a different set of additional parameters.&lt;br /&gt;
|-&lt;br /&gt;
|message||The text of the message you want to send. For some types, this message must be pre-encoded&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
According to different type, a different set of additional parameters is required&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_test''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [&amp;lt;u&amp;gt;E.164-http://en.wikipedia.org/wiki/E.164]&amp;lt;/u&amp;gt; format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
'''Additional parameter for type: &amp;quot;sms''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [&amp;lt;u&amp;gt;E.164-http://en.wikipedia.org/wiki/E.164]&amp;lt;/u&amp;gt; format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
'''Additional parameters for type: &amp;quot;mms''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [&amp;lt;u&amp;gt;E.164-http://en.wikipedia.org/wiki/E.164]&amp;lt;/u&amp;gt; format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|mediaUrl||The URL of the media you wish to send out with the message. gif , png and jpeg content is currently supported. The media size limit is 5MB. If you wish to send more than one image in the message, please provide multiple URLs separated by comma in this parameter.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameter for type: &amp;quot;sms_port''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [&amp;lt;u&amp;gt;E.164-http://en.wikipedia.org/wiki/E.164]&amp;lt;/u&amp;gt; format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|port||Port number – valid value is &amp;gt; 0 and &amp;lt; 65535, parameter message must be pre-encoded.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_multi''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [&amp;lt;u&amp;gt;E.164-http://en.wikipedia.org/wiki/E.164]&amp;lt;/u&amp;gt; format, for example 16045551212. This parameter can include multiple phone numbers, separated by comma. &lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_group''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|groupName||The name of contact group in your account&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_service_group''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|serviceName||The name of your PSMS service&lt;br /&gt;
|-&lt;br /&gt;
|groupName||The contact group name of your PSMS service&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_dedicated''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [&amp;lt;u&amp;gt;E.164-http://en.wikipedia.org/wiki/E.164]&amp;lt;/u&amp;gt; format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|carrierCode||The carrier code that recipient phone number belongs to. This parameter is mandatory if dedicated number is a short code.&lt;br /&gt;
|-&lt;br /&gt;
|dedicatedNumber||The dedicated number which will deliver the message. It could be a long code or a short code.&lt;br /&gt;
|-&lt;br /&gt;
|tariff||The amount that recipient number to be charged&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_dedicated_port''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [&amp;lt;u&amp;gt;E.164-http://en.wikipedia.org/wiki/E.164]&amp;lt;/u&amp;gt; format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|port||Port number – valid value is &amp;gt; 0 and &amp;lt; 65535, parameter message must be pre-encoded.&lt;br /&gt;
|-&lt;br /&gt;
|carrierCode||The carrier code that recipient phone number belongs to. This parameter is mandatory if dedicated number is a short code.&lt;br /&gt;
|-&lt;br /&gt;
|dedicatedNumber||The dedicated number which will deliver the message. It could be a long code or a short code.&lt;br /&gt;
|-&lt;br /&gt;
|tariff||The amount that recipient number to be charged&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_defer''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [&amp;lt;u&amp;gt;E.164-http://en.wikipedia.org/wiki/E.164]&amp;lt;/u&amp;gt; format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|DelayHours||The hours to delay.&lt;br /&gt;
|-&lt;br /&gt;
|DelayMinutes||The minutes to delay&lt;br /&gt;
|-&lt;br /&gt;
|label||The label of this delayed event&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_flash''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [&amp;lt;u&amp;gt;E.164-http://en.wikipedia.org/wiki/E.164]&amp;lt;/u&amp;gt; format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|||The parameter message must be pre-encoded.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_wappush''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [&amp;lt;u&amp;gt;E.164-http://en.wikipedia.org/wiki/E.164]&amp;lt;/u&amp;gt; format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|url||The pre-encoded URL&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If no exception in API call, the following response (XML format) will be returned:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;HasException&amp;gt;false&amp;lt;/HasException&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;Token&amp;gt;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;lt;/Token&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt; SMSMessage&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;Status&amp;gt;QUEUED or REJECTED&amp;lt;/Status&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt; Body&amp;gt;sms message&amp;lt;/ Body&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt; Recipient&amp;gt;16047891236&amp;lt;/ Recipient&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;Type&amp;gt;sms&amp;lt;/Type&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;TrackingId&amp;gt;MTID256749777469712848&amp;lt;/TrackingId&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;RejectReason&amp;gt; &amp;lt;/RejectReason&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;/ SMSMessage&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In SMSMessage, TrackingId and RejectReason are optional. If Status is &amp;quot;QUEUED&amp;quot;, for non-multiple recipient type, a unique TrackingId is returned for future query. If Status is &amp;quot;REJECTED&amp;quot;, RejectReason includes the reject reason. If type is sms_test, the successful status is &amp;quot;PASSED&amp;quot;, not &amp;quot;QUEUED&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Or in JSON format''' '''&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;HasException&amp;quot;: false,&lt;br /&gt;
  &amp;quot;Token&amp;quot;: &amp;quot;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;quot;,&lt;br /&gt;
  &amp;quot;SMSMessage&amp;quot;: {&lt;br /&gt;
    &amp;quot;Status&amp;quot;: &amp;quot;QUEUED&amp;quot; or &amp;quot;REJECTED&amp;quot;,&lt;br /&gt;
    &amp;quot;Body&amp;quot;: &amp;quot;sms message&amp;quot;,&lt;br /&gt;
    &amp;quot;Recipient&amp;quot;: &amp;quot;16047891236&amp;quot;,&lt;br /&gt;
    &amp;quot;Type&amp;quot;: &amp;quot;sms&amp;quot;,&lt;br /&gt;
    &amp;quot;TrackingId&amp;quot;: &amp;quot;MTID256749777469712848&amp;quot;,&lt;br /&gt;
    &amp;quot;RejectReason&amp;quot;: &amp;quot;Failure message&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
''' &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
'''2. SMS Contact API'''&lt;br /&gt;
&lt;br /&gt;
'''API URI: /RESTv1/{token}/Contact'''&lt;br /&gt;
&lt;br /&gt;
'''Support method: HTTP POST '''&lt;br /&gt;
&lt;br /&gt;
The following parameters are '''required''' in your POST to add contact:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|signature||One of the API credential, similar to a password. It can be found in your account page.&lt;br /&gt;
|-&lt;br /&gt;
|mobile||The mobile number to be added as an SMS contact, in [&amp;lt;u&amp;gt;E.164-http://en.wikipedia.org/wiki/E.164]&amp;lt;/u&amp;gt; format, for example 16045551212. If mobile number already exists, existing record will be updated.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The following parameters are optional:&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|type||The mobile type, such as Android, iPhone.&lt;br /&gt;
|-&lt;br /&gt;
|email||The email of this SMS contact.&lt;br /&gt;
|-&lt;br /&gt;
|firstname||The given name of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|lastname||The surname of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|address||The living or working address of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|city||The living or working city of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|zipcode||The zipcode of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|landline||The landline of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|title||The title of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|role||The role of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|organization||The organization this SMS contact belongs to&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If no exception in API call, the following response (XML format) will be returned:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;HasException&amp;gt;false&amp;lt;/HasException&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;Token&amp;gt;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;lt;/Token&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;SMSContact&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;success&amp;gt;true or false&amp;lt;/success&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;number&amp;gt;16047891236&amp;lt;/number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;message&amp;gt;Success or failure message&amp;lt;/message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;/SMSContact&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Or in JSON format''' '''&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;HasException&amp;quot;: false,&lt;br /&gt;
  &amp;quot;Token&amp;quot;: &amp;quot;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;quot;,&lt;br /&gt;
  &amp;quot; SMSContact &amp;quot;: {&lt;br /&gt;
    &amp;quot;success&amp;quot;: true or false,&lt;br /&gt;
    &amp;quot;number&amp;quot;: &amp;quot;16047891236&amp;quot;,&lt;br /&gt;
    &amp;quot;message&amp;quot;: &amp;quot;Success or failure message.&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
''' &lt;br /&gt;
&lt;br /&gt;
3. Number Validation API'''&lt;br /&gt;
&lt;br /&gt;
'''API URI: /RESTv1/{token}/''' '''NumberValidation'''&lt;br /&gt;
&lt;br /&gt;
'''Support method: HTTP POST '''&lt;br /&gt;
&lt;br /&gt;
The following parameters are '''required''' in your POST to do number validation:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|signature||One of the API credential, similar to a password. It can be found in your account page.&lt;br /&gt;
|-&lt;br /&gt;
|type||The validation type. There are three possible types. 1 – &amp;quot;quick&amp;quot; and it will cost 0.1 credits; 2 – &amp;quot;route&amp;quot; and it will cost 0.25 credits; 3 – &amp;quot;hlr&amp;quot; and it will cost 0.5 credits.&lt;br /&gt;
|-&lt;br /&gt;
|number||The phone number to be validated, in [&amp;lt;u&amp;gt;E.164-http://en.wikipedia.org/wiki/E.164]&amp;lt;/u&amp;gt; format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If no exception in API call, the following response (XML format) will be returned:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;HasException&amp;gt;false&amp;lt;/HasException&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;Token&amp;gt;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;lt;/Token&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;NumberValidation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;success&amp;gt;true or false&amp;lt;/success&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;number&amp;gt;16047891236&amp;lt;/number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;message&amp;gt;Success or failure message&amp;lt;/message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;country&amp;gt;Canada&amp;lt;/country&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;network&amp;gt;British Columbia&amp;lt;/network&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;HLRLookupResultObject&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;status&amp;gt;OK&amp;lt;/status&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;number&amp;gt;16047891236&amp;lt;/number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;MCC&amp;gt;302&amp;lt;/MCC&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;MNC&amp;gt;370&amp;lt;/MNC&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;operatorName&amp;gt;Microcell&amp;lt;/operatorName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;operatorCountry&amp;gt;Canada&amp;lt;/operatorCountry&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;message&amp;gt;&amp;lt;/message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;/HLRLookupResultObject&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;/NumberValidation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In NumberValidation, country, network and  HLRLookupResultObject are optional, depends on the query type. If type is &amp;quot;quick&amp;quot;, only country returned; if type is &amp;quot;route&amp;quot;, country and network returned; if type is &amp;quot;hlr&amp;quot;, only HLRLookupResultObject returned.&lt;br /&gt;
&lt;br /&gt;
Or in JSON format&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;HasException&amp;quot;: false,&lt;br /&gt;
  &amp;quot;Token&amp;quot;: &amp;quot;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;quot;,&lt;br /&gt;
  &amp;quot;NumberValidation&amp;quot;: {&lt;br /&gt;
    &amp;quot;success&amp;quot;: true or false,&lt;br /&gt;
    &amp;quot;number&amp;quot;: &amp;quot;16047891236&amp;quot;,&lt;br /&gt;
    &amp;quot;message&amp;quot;: &amp;quot;Success or failure message.&amp;quot;,&lt;br /&gt;
    &amp;quot;country&amp;quot;: &amp;quot;Canada&amp;quot;,&lt;br /&gt;
    &amp;quot;network&amp;quot;: &amp;quot;British Columbia&amp;quot;&lt;br /&gt;
    &amp;quot;HLRLookupResultObject&amp;quot;: {&lt;br /&gt;
      &amp;quot;status&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
      &amp;quot;number&amp;quot;: &amp;quot;16047891236&amp;quot;,&lt;br /&gt;
      &amp;quot;MCC&amp;quot;: &amp;quot;302&amp;quot;,&lt;br /&gt;
      &amp;quot;MNC&amp;quot;: &amp;quot;370&amp;quot;,&lt;br /&gt;
      &amp;quot;operatorName&amp;quot;: &amp;quot;Microcell&amp;quot;,&lt;br /&gt;
      &amp;quot;operatorCountry&amp;quot;: &amp;quot;Canada&amp;quot;,&lt;br /&gt;
      &amp;quot;message&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The entire HLRLookupResultObject is as following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;HLRLookupResultObject&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;status&amp;gt;&amp;lt;/status&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;number&amp;gt;&amp;lt;/number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;MCC&amp;gt;&amp;lt;/MCC&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;MNC&amp;gt;&amp;lt;/MNC&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;operatorName&amp;gt;&amp;lt;/operatorName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;operatorCountry&amp;gt;&amp;lt;/operatorCountry&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;IMSI&amp;gt;&amp;lt;/IMSI&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;MSC&amp;gt;&amp;lt;/MSC&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;mscOperator&amp;gt;&amp;lt;/mscOperator&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;mscMCC&amp;gt;&amp;lt;/mscMCC&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;mscMNC&amp;gt;&amp;lt;/mscMNC&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;mscCountry&amp;gt;&amp;lt;/mscCountry&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;mscLocation&amp;gt;&amp;lt;/mscLocation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;message&amp;gt;&amp;lt;/message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/HLRLookupResultObject&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Only status, number and message are mandatory, others are optional.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
'''REST API Exception'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If there is any exception in REST API call, the HasException flag will be set to true and the following response (XML format) will be returned:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;HasException&amp;gt;true&amp;lt;/HasException&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;Token&amp;gt;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;lt;/Token&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;RestException&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;ErrorCode&amp;gt;101&amp;lt;/ErrorCode&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;Message&amp;gt;Unauthorized&amp;lt;/Message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;Status&amp;gt;401&amp;lt;/Status&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;/RestException&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Or in JSON format''' '''&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;HasException&amp;quot;: true,&lt;br /&gt;
  &amp;quot;Token&amp;quot;: &amp;quot;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;quot;,&lt;br /&gt;
  &amp;quot;RestException&amp;quot;: {&lt;br /&gt;
    &amp;quot;ErrorCode&amp;quot;: &amp;quot;101&amp;quot;,&lt;br /&gt;
    &amp;quot;Message&amp;quot;: &amp;quot;Unauthorized&amp;quot;,&lt;br /&gt;
    &amp;quot;Status&amp;quot;: &amp;quot;401&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Status is HTTP status code and it is optional.&lt;br /&gt;
ErrorCode and corresponding message:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|'''ErrorCode'''||'''Message'''||'''Comments'''&lt;br /&gt;
|-&lt;br /&gt;
|100||Unsupported method||Wrong HTTP method&lt;br /&gt;
|-&lt;br /&gt;
|101||Unauthorized||API credential is wrong&lt;br /&gt;
|-&lt;br /&gt;
|102||No permission||API credential passed, but no permission&lt;br /&gt;
|-&lt;br /&gt;
|103||Runtime error||Runtime error during API call&lt;br /&gt;
|-&lt;br /&gt;
|||||&lt;br /&gt;
|-&lt;br /&gt;
|200||Zero balance||No credits to send a message&lt;br /&gt;
|-&lt;br /&gt;
|201||Invalid country||Can’t figure out a country with the recipient number&lt;br /&gt;
|-&lt;br /&gt;
|202||Invalid carrier code||The carrier code is incorrect&lt;br /&gt;
|-&lt;br /&gt;
|203||Number blocked||The recipient number is blocked by our system&lt;br /&gt;
|-&lt;br /&gt;
|204||Too many messages||Message is too long&lt;br /&gt;
|-&lt;br /&gt;
|205||Empty message||Empty message&lt;br /&gt;
|-&lt;br /&gt;
|206||No time for defer||The delay parameter is wrong&lt;br /&gt;
|-&lt;br /&gt;
|207||Unknown type||Unknown message type&lt;br /&gt;
|-&lt;br /&gt;
|208||Unimplemented type||The message type not implemented yet&lt;br /&gt;
|-&lt;br /&gt;
|||||&lt;br /&gt;
|-&lt;br /&gt;
|300||Mobile phone number is invalid||Invalid mobile number&lt;br /&gt;
|-&lt;br /&gt;
|301||Credit is not enough to perform validation. Please purchase more and try again||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[C# Example]]&lt;br /&gt;
&lt;br /&gt;
[[Java Example]]&lt;/div&gt;</summary>
		<author><name>Bzurkovic</name></author>	</entry>

	<entry>
		<id>http://docs.upsidewireless.com/index.php?title=Send_REST</id>
		<title>Send REST</title>
		<link rel="alternate" type="text/html" href="http://docs.upsidewireless.com/index.php?title=Send_REST"/>
				<updated>2015-02-03T02:03:05Z</updated>
		
		<summary type="html">&lt;p&gt;Bzurkovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Upsidewireless REST API '''&lt;br /&gt;
&lt;br /&gt;
There are two endpoints of Upsidewireless REST API, [https://secureapi.upsidewireless.com-https://secureapi.upsidewireless.com/] and [http://api.upsidewireless.com-http://api.upsidewireless.com/]. If you care about more security than performance, you should use the secure endpoint. However, in this case you will need to install certificate for secure, authenticated communication.&lt;br /&gt;
&lt;br /&gt;
In order to use Upsidewireless REST API, you need have an account that has API permissions and get your API credential (token and signature) on your account page. Token is similar to username and signature is similar to password. They are needed in every single call to REST API.&lt;br /&gt;
&lt;br /&gt;
There are two kinds of response of each API call, JSON or XML. You can either use HTTP header (&amp;quot;Accept&amp;quot;) or a special HTTP parameter (&amp;quot;responsetype&amp;quot;) to specify what kind of response you want. If you want using HTTP header, set either &amp;quot;application/json&amp;quot; or &amp;quot;application/xml&amp;quot; in Accept header. If you want using HTTP parameter, set either &amp;quot;JSON&amp;quot; or &amp;quot;XML&amp;quot; to responsetype parameter. If no response type specified, default response will always be in XML format. Use HTTP header is a highly recommended way to do so.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1. SMS Message API'''&lt;br /&gt;
&lt;br /&gt;
'''API URI: /RESTv1/{token}/Message'''&lt;br /&gt;
&lt;br /&gt;
'''Support method: HTTP POST '''&lt;br /&gt;
&lt;br /&gt;
The following parameters are all '''required''' in your POST to send the message:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|signature||One of the API credential, similar to a password. It can be found in your account page.&lt;br /&gt;
|-&lt;br /&gt;
|type||The message type. Different type requires a different set of additional parameters.&lt;br /&gt;
|-&lt;br /&gt;
|message||The text of the message you want to send. For some types, this message must be pre-encoded&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
According to different type, a different set of additional parameters is required&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_test''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [&amp;lt;u&amp;gt;E.164-http://en.wikipedia.org/wiki/E.164]&amp;lt;/u&amp;gt; format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
'''Additional parameter for type: &amp;quot;sms''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [&amp;lt;u&amp;gt;E.164-http://en.wikipedia.org/wiki/E.164]&amp;lt;/u&amp;gt; format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
'''Additional parameters for type: &amp;quot;mms''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [&amp;lt;u&amp;gt;E.164-http://en.wikipedia.org/wiki/E.164]&amp;lt;/u&amp;gt; format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|mediaUrl||The URL of the media you wish to send out with the message. gif , png and jpeg content is currently supported. The media size limit is 5MB. If you wish to send more than one image in the message, please provide multiple URLs separated by comma in this parameter.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameter for type: &amp;quot;sms_port''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [&amp;lt;u&amp;gt;E.164-http://en.wikipedia.org/wiki/E.164]&amp;lt;/u&amp;gt; format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|port||Port number – valid value is &amp;gt; 0 and &amp;lt; 65535, parameter message must be pre-encoded.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_multi''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [&amp;lt;u&amp;gt;E.164-http://en.wikipedia.org/wiki/E.164]&amp;lt;/u&amp;gt; format, for example 16045551212. This parameter can include multiple phone numbers, separated by comma. &lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_group''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|groupName||The name of contact group in your account&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_service_group''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|serviceName||The name of your PSMS service&lt;br /&gt;
|-&lt;br /&gt;
|groupName||The contact group name of your PSMS service&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_dedicated''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [&amp;lt;u&amp;gt;E.164-http://en.wikipedia.org/wiki/E.164]&amp;lt;/u&amp;gt; format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|carrierCode||The carrier code that recipient phone number belongs to. This parameter is mandatory if dedicated number is a short code.&lt;br /&gt;
|-&lt;br /&gt;
|dedicatedNumber||The dedicated number which will deliver the message. It could be a long code or a short code.&lt;br /&gt;
|-&lt;br /&gt;
|tariff||The amount that recipient number to be charged&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_dedicated_port''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [&amp;lt;u&amp;gt;E.164-http://en.wikipedia.org/wiki/E.164]&amp;lt;/u&amp;gt; format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|port||Port number – valid value is &amp;gt; 0 and &amp;lt; 65535, parameter message must be pre-encoded.&lt;br /&gt;
|-&lt;br /&gt;
|carrierCode||The carrier code that recipient phone number belongs to. This parameter is mandatory if dedicated number is a short code.&lt;br /&gt;
|-&lt;br /&gt;
|dedicatedNumber||The dedicated number which will deliver the message. It could be a long code or a short code.&lt;br /&gt;
|-&lt;br /&gt;
|tariff||The amount that recipient number to be charged&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_defer''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [&amp;lt;u&amp;gt;E.164-http://en.wikipedia.org/wiki/E.164]&amp;lt;/u&amp;gt; format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|DelayHours||The hours to delay.&lt;br /&gt;
|-&lt;br /&gt;
|DelayMinutes||The minutes to delay&lt;br /&gt;
|-&lt;br /&gt;
|label||The label of this delayed event&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_flash''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [&amp;lt;u&amp;gt;E.164-http://en.wikipedia.org/wiki/E.164]&amp;lt;/u&amp;gt; format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|||The parameter message must be pre-encoded.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_wappush''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [&amp;lt;u&amp;gt;E.164-http://en.wikipedia.org/wiki/E.164]&amp;lt;/u&amp;gt; format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|url||The pre-encoded URL&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If no exception in API call, the following response (XML format) will be returned:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;HasException&amp;gt;false&amp;lt;/HasException&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;Token&amp;gt;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;lt;/Token&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt; SMSMessage&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;Status&amp;gt;QUEUED or REJECTED&amp;lt;/Status&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt; Body&amp;gt;sms message&amp;lt;/ Body&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt; Recipient&amp;gt;16047891236&amp;lt;/ Recipient&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;Type&amp;gt;sms&amp;lt;/Type&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;TrackingId&amp;gt;MTID256749777469712848&amp;lt;/TrackingId&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;RejectReason&amp;gt; &amp;lt;/RejectReason&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;/ SMSMessage&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In SMSMessage, TrackingId and RejectReason are optional. If Status is &amp;quot;QUEUED&amp;quot;, for non-multiple recipient type, a unique TrackingId is returned for future query. If Status is &amp;quot;REJECTED&amp;quot;, RejectReason includes the reject reason. If type is sms_test, the successful status is &amp;quot;PASSED&amp;quot;, not &amp;quot;QUEUED&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Or in JSON format''' '''&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;HasException&amp;quot;: false,&lt;br /&gt;
  &amp;quot;Token&amp;quot;: &amp;quot;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;quot;,&lt;br /&gt;
  &amp;quot;SMSMessage&amp;quot;: {&lt;br /&gt;
    &amp;quot;Status&amp;quot;: &amp;quot;QUEUED&amp;quot; or &amp;quot;REJECTED&amp;quot;,&lt;br /&gt;
    &amp;quot;Body&amp;quot;: &amp;quot;sms message&amp;quot;,&lt;br /&gt;
    &amp;quot;Recipient&amp;quot;: &amp;quot;16047891236&amp;quot;,&lt;br /&gt;
    &amp;quot;Type&amp;quot;: &amp;quot;sms&amp;quot;,&lt;br /&gt;
    &amp;quot;TrackingId&amp;quot;: &amp;quot;MTID256749777469712848&amp;quot;,&lt;br /&gt;
    &amp;quot;RejectReason&amp;quot;: &amp;quot;Failure message&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
''' &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
'''2. SMS Contact API'''&lt;br /&gt;
&lt;br /&gt;
'''API URI: /RESTv1/{token}/Contact'''&lt;br /&gt;
&lt;br /&gt;
'''Support method: HTTP POST '''&lt;br /&gt;
&lt;br /&gt;
The following parameters are '''required''' in your POST to add contact:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|signature||One of the API credential, similar to a password. It can be found in your account page.&lt;br /&gt;
|-&lt;br /&gt;
|mobile||The mobile number to be added as an SMS contact, in [&amp;lt;u&amp;gt;E.164-http://en.wikipedia.org/wiki/E.164]&amp;lt;/u&amp;gt; format, for example 16045551212. If mobile number already exists, existing record will be updated.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The following parameters are optional:&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|type||The mobile type, such as Android, iPhone.&lt;br /&gt;
|-&lt;br /&gt;
|email||The email of this SMS contact.&lt;br /&gt;
|-&lt;br /&gt;
|firstname||The given name of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|lastname||The surname of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|address||The living or working address of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|city||The living or working city of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|zipcode||The zipcode of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|landline||The landline of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|title||The title of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|role||The role of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|organization||The organization this SMS contact belongs to&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If no exception in API call, the following response (XML format) will be returned:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;HasException&amp;gt;false&amp;lt;/HasException&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;Token&amp;gt;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;lt;/Token&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;SMSContact&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;success&amp;gt;true or false&amp;lt;/success&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;number&amp;gt;16047891236&amp;lt;/number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;message&amp;gt;Success or failure message&amp;lt;/message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;/SMSContact&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Or in JSON format''' '''&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;HasException&amp;quot;: false,&lt;br /&gt;
  &amp;quot;Token&amp;quot;: &amp;quot;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;quot;,&lt;br /&gt;
  &amp;quot; SMSContact &amp;quot;: {&lt;br /&gt;
    &amp;quot;success&amp;quot;: true or false,&lt;br /&gt;
    &amp;quot;number&amp;quot;: &amp;quot;16047891236&amp;quot;,&lt;br /&gt;
    &amp;quot;message&amp;quot;: &amp;quot;Success or failure message.&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
''' &lt;br /&gt;
&lt;br /&gt;
3. Number Validation API'''&lt;br /&gt;
&lt;br /&gt;
'''API URI: /RESTv1/{token}/''' '''NumberValidation'''&lt;br /&gt;
&lt;br /&gt;
'''Support method: HTTP POST '''&lt;br /&gt;
&lt;br /&gt;
The following parameters are '''required''' in your POST to do number validation:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|signature||One of the API credential, similar to a password. It can be found in your account page.&lt;br /&gt;
|-&lt;br /&gt;
|type||The validation type. There are three possible types. 1 – &amp;quot;quick&amp;quot; and it will cost 0.1 credits; 2 – &amp;quot;route&amp;quot; and it will cost 0.25 credits; 3 – &amp;quot;hlr&amp;quot; and it will cost 0.5 credits.&lt;br /&gt;
|-&lt;br /&gt;
|number||The phone number to be validated, in [&amp;lt;u&amp;gt;E.164-http://en.wikipedia.org/wiki/E.164]&amp;lt;/u&amp;gt; format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If no exception in API call, the following response (XML format) will be returned:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;HasException&amp;gt;false&amp;lt;/HasException&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;Token&amp;gt;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;lt;/Token&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;NumberValidation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;success&amp;gt;true or false&amp;lt;/success&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;number&amp;gt;16047891236&amp;lt;/number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;message&amp;gt;Success or failure message&amp;lt;/message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;country&amp;gt;Canada&amp;lt;/country&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;network&amp;gt;British Columbia&amp;lt;/network&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;HLRLookupResultObject&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;status&amp;gt;OK&amp;lt;/status&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;number&amp;gt;16047891236&amp;lt;/number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;MCC&amp;gt;302&amp;lt;/MCC&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;MNC&amp;gt;370&amp;lt;/MNC&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;operatorName&amp;gt;Microcell&amp;lt;/operatorName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;operatorCountry&amp;gt;Canada&amp;lt;/operatorCountry&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;message&amp;gt;&amp;lt;/message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;/HLRLookupResultObject&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;/NumberValidation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In NumberValidation, country, network and  HLRLookupResultObject are optional, depends on the query type. If type is &amp;quot;quick&amp;quot;, only country returned; if type is &amp;quot;route&amp;quot;, country and network returned; if type is &amp;quot;hlr&amp;quot;, only HLRLookupResultObject returned.&lt;br /&gt;
&lt;br /&gt;
Or in JSON format&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;HasException&amp;quot;: false,&lt;br /&gt;
  &amp;quot;Token&amp;quot;: &amp;quot;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;quot;,&lt;br /&gt;
  &amp;quot;NumberValidation&amp;quot;: {&lt;br /&gt;
    &amp;quot;success&amp;quot;: true or false,&lt;br /&gt;
    &amp;quot;number&amp;quot;: &amp;quot;16047891236&amp;quot;,&lt;br /&gt;
    &amp;quot;message&amp;quot;: &amp;quot;Success or failure message.&amp;quot;,&lt;br /&gt;
    &amp;quot;country&amp;quot;: &amp;quot;Canada&amp;quot;,&lt;br /&gt;
    &amp;quot;network&amp;quot;: &amp;quot;British Columbia&amp;quot;&lt;br /&gt;
    &amp;quot;HLRLookupResultObject&amp;quot;: {&lt;br /&gt;
      &amp;quot;status&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
      &amp;quot;number&amp;quot;: &amp;quot;16047891236&amp;quot;,&lt;br /&gt;
      &amp;quot;MCC&amp;quot;: &amp;quot;302&amp;quot;,&lt;br /&gt;
      &amp;quot;MNC&amp;quot;: &amp;quot;370&amp;quot;,&lt;br /&gt;
      &amp;quot;operatorName&amp;quot;: &amp;quot;Microcell&amp;quot;,&lt;br /&gt;
      &amp;quot;operatorCountry&amp;quot;: &amp;quot;Canada&amp;quot;,&lt;br /&gt;
      &amp;quot;message&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The entire HLRLookupResultObject is as following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;HLRLookupResultObject&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;status&amp;gt;&amp;lt;/status&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;number&amp;gt;&amp;lt;/number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;MCC&amp;gt;&amp;lt;/MCC&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;MNC&amp;gt;&amp;lt;/MNC&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;operatorName&amp;gt;&amp;lt;/operatorName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;operatorCountry&amp;gt;&amp;lt;/operatorCountry&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;IMSI&amp;gt;&amp;lt;/IMSI&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;MSC&amp;gt;&amp;lt;/MSC&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;mscOperator&amp;gt;&amp;lt;/mscOperator&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;mscMCC&amp;gt;&amp;lt;/mscMCC&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;mscMNC&amp;gt;&amp;lt;/mscMNC&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;mscCountry&amp;gt;&amp;lt;/mscCountry&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;mscLocation&amp;gt;&amp;lt;/mscLocation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;message&amp;gt;&amp;lt;/message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/HLRLookupResultObject&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Only status, number and message are mandatory, others are optional.&lt;br /&gt;
 &lt;br /&gt;
'''REST API Exception'''&lt;br /&gt;
&lt;br /&gt;
If there is any exception in REST API call, the HasException flag will be set to true and the following response (XML format) will be returned:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;HasException&amp;gt;true&amp;lt;/HasException&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;Token&amp;gt;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;lt;/Token&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;RestException&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;ErrorCode&amp;gt;101&amp;lt;/ErrorCode&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;Message&amp;gt;Unauthorized&amp;lt;/Message&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;Status&amp;gt;401&amp;lt;/Status&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;/RestException&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Or in JSON format''' '''&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;HasException&amp;quot;: true,&lt;br /&gt;
  &amp;quot;Token&amp;quot;: &amp;quot;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;quot;,&lt;br /&gt;
  &amp;quot;RestException&amp;quot;: {&lt;br /&gt;
    &amp;quot;ErrorCode&amp;quot;: &amp;quot;101&amp;quot;,&lt;br /&gt;
    &amp;quot;Message&amp;quot;: &amp;quot;Unauthorized&amp;quot;,&lt;br /&gt;
    &amp;quot;Status&amp;quot;: &amp;quot;401&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The Status is HTTP status code and it is optional.&lt;br /&gt;
ErrorCode and corresponding message:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|'''ErrorCode'''||'''Message'''||'''Comments'''&lt;br /&gt;
|-&lt;br /&gt;
|100||Unsupported method||Wrong HTTP method&lt;br /&gt;
|-&lt;br /&gt;
|101||Unauthorized||API credential is wrong&lt;br /&gt;
|-&lt;br /&gt;
|102||No permission||API credential passed, but no permission&lt;br /&gt;
|-&lt;br /&gt;
|103||Runtime error||Runtime error during API call&lt;br /&gt;
|-&lt;br /&gt;
|||||&lt;br /&gt;
|-&lt;br /&gt;
|200||Zero balance||No credits to send a message&lt;br /&gt;
|-&lt;br /&gt;
|201||Invalid country||Can’t figure out a country with the recipient number&lt;br /&gt;
|-&lt;br /&gt;
|202||Invalid carrier code||The carrier code is incorrect&lt;br /&gt;
|-&lt;br /&gt;
|203||Number blocked||The recipient number is blocked by our system&lt;br /&gt;
|-&lt;br /&gt;
|204||Too many messages||Message is too long&lt;br /&gt;
|-&lt;br /&gt;
|205||Empty message||Empty message&lt;br /&gt;
|-&lt;br /&gt;
|206||No time for defer||The delay parameter is wrong&lt;br /&gt;
|-&lt;br /&gt;
|207||Unknown type||Unknown message type&lt;br /&gt;
|-&lt;br /&gt;
|208||Unimplemented type||The message type not implemented yet&lt;br /&gt;
|-&lt;br /&gt;
|||||&lt;br /&gt;
|-&lt;br /&gt;
|300||Mobile phone number is invalid||Invalid mobile number&lt;br /&gt;
|-&lt;br /&gt;
|301||Credit is not enough to perform validation. Please purchase more and try again||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[C# Example]]&lt;br /&gt;
&lt;br /&gt;
[[Java Example]]&lt;/div&gt;</summary>
		<author><name>Bzurkovic</name></author>	</entry>

	<entry>
		<id>http://docs.upsidewireless.com/index.php?title=Send_REST</id>
		<title>Send REST</title>
		<link rel="alternate" type="text/html" href="http://docs.upsidewireless.com/index.php?title=Send_REST"/>
				<updated>2015-02-03T01:44:04Z</updated>
		
		<summary type="html">&lt;p&gt;Bzurkovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Upsidewireless REST API '''&lt;br /&gt;
&lt;br /&gt;
There are two endpoints of Upsidewireless REST API, [https://secureapi.upsidewireless.com-https://secureapi.upsidewireless.com/] and [http://api.upsidewireless.com-http://api.upsidewireless.com/]. If you care about more security than performance, you should use the secure endpoint. However, in this case you will need to install certificate for secure, authenticated communication.&lt;br /&gt;
&lt;br /&gt;
In order to use Upsidewireless REST API, you need have an account that has API permissions and get your API credential (token and signature) on your account page. Token is similar to username and signature is similar to password. They are needed in every single call to REST API.&lt;br /&gt;
&lt;br /&gt;
There are two kinds of response of each API call, JSON or XML. You can either use HTTP header (&amp;quot;Accept&amp;quot;) or a special HTTP parameter (&amp;quot;responsetype&amp;quot;) to specify what kind of response you want. If you want using HTTP header, set either &amp;quot;application/json&amp;quot; or &amp;quot;application/xml&amp;quot; in Accept header. If you want using HTTP parameter, set either &amp;quot;JSON&amp;quot; or &amp;quot;XML&amp;quot; to responsetype parameter. If no response type specified, default response will always be in XML format. Use HTTP header is a highly recommended way to do so.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1. SMS Message API'''&lt;br /&gt;
'''API URI: /RESTv1/\{token\}/Message'''&lt;br /&gt;
'''Support method: HTTP POST '''&lt;br /&gt;
The following parameters are all '''required''' in your POST to send the message:&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|signature||One of the API credential, similar to a password. It can be found in your account page.&lt;br /&gt;
|-&lt;br /&gt;
|type||The message type. Different type requires a different set of additional parameters.&lt;br /&gt;
|-&lt;br /&gt;
|message||The text of the message you want to send. For some types, this message must be pre-encoded&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
According to different type, a different set of additional parameters is required&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_test''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [&amp;lt;u&amp;gt;E.164-http://en.wikipedia.org/wiki/E.164]&amp;lt;/u&amp;gt; format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
'''Additional parameter for type: &amp;quot;sms''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [&amp;lt;u&amp;gt;E.164-http://en.wikipedia.org/wiki/E.164]&amp;lt;/u&amp;gt; format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
'''Additional parameters for type: &amp;quot;mms''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [&amp;lt;u&amp;gt;E.164-http://en.wikipedia.org/wiki/E.164]&amp;lt;/u&amp;gt; format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|mediaUrl||The URL of the media you wish to send out with the message. gif , png and jpeg content is currently supported. The media size limit is 5MB. If you wish to send more than one image in the message, please provide multiple URLs separated by comma in this parameter.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
'''Additional parameter for type: &amp;quot;sms_port''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [&amp;lt;u&amp;gt;E.164-http://en.wikipedia.org/wiki/E.164]&amp;lt;/u&amp;gt; format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|port||Port number – valid value is &amp;gt; 0 and &amp;lt; 65535, parameter message must be pre-encoded.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_multi''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [&amp;lt;u&amp;gt;E.164-http://en.wikipedia.org/wiki/E.164]&amp;lt;/u&amp;gt; format, for example 16045551212. This parameter can include multiple phone numbers, separated by comma. &lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_group''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|groupName||The name of contact group in your account&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_service_group''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|serviceName||The name of your PSMS service&lt;br /&gt;
|-&lt;br /&gt;
|groupName||The contact group name of your PSMS service&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_dedicated''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [&amp;lt;u&amp;gt;E.164-http://en.wikipedia.org/wiki/E.164]&amp;lt;/u&amp;gt; format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|carrierCode||The carrier code that recipient phone number belongs to. This parameter is mandatory if dedicated number is a short code.&lt;br /&gt;
|-&lt;br /&gt;
|dedicatedNumber||The dedicated number which will deliver the message. It could be a long code or a short code.&lt;br /&gt;
|-&lt;br /&gt;
|tariff||The amount that recipient number to be charged&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_dedicated_port''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [&amp;lt;u&amp;gt;E.164-http://en.wikipedia.org/wiki/E.164]&amp;lt;/u&amp;gt; format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|port||Port number – valid value is &amp;gt; 0 and &amp;lt; 65535, parameter message must be pre-encoded.&lt;br /&gt;
|-&lt;br /&gt;
|carrierCode||The carrier code that recipient phone number belongs to. This parameter is mandatory if dedicated number is a short code.&lt;br /&gt;
|-&lt;br /&gt;
|dedicatedNumber||The dedicated number which will deliver the message. It could be a long code or a short code.&lt;br /&gt;
|-&lt;br /&gt;
|tariff||The amount that recipient number to be charged&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_defer''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [&amp;lt;u&amp;gt;E.164-http://en.wikipedia.org/wiki/E.164]&amp;lt;/u&amp;gt; format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|DelayHours||The hours to delay.&lt;br /&gt;
|-&lt;br /&gt;
|DelayMinutes||The minutes to delay&lt;br /&gt;
|-&lt;br /&gt;
|label||The label of this delayed event&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_flash''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [&amp;lt;u&amp;gt;E.164-http://en.wikipedia.org/wiki/E.164]&amp;lt;/u&amp;gt; format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|||The parameter message must be pre-encoded.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_wappush''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [&amp;lt;u&amp;gt;E.164-http://en.wikipedia.org/wiki/E.164]&amp;lt;/u&amp;gt; format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|url||The pre-encoded URL&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If no exception in API call, the following response (XML format) will be returned:&lt;br /&gt;
&amp;lt;RestResponse&amp;gt;&lt;br /&gt;
	&amp;lt;HasException&amp;gt;false&amp;lt;/HasException&amp;gt;&lt;br /&gt;
	&amp;lt;Token&amp;gt;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;lt;/Token&amp;gt;&lt;br /&gt;
	&amp;lt; SMSMessage&amp;gt;&lt;br /&gt;
		&amp;lt;Status&amp;gt;QUEUED or REJECTED&amp;lt;/Status&amp;gt;&lt;br /&gt;
		&amp;lt; Body&amp;gt;sms message&amp;lt;/ Body&amp;gt;&lt;br /&gt;
		&amp;lt; Recipient&amp;gt;16047891236&amp;lt;/ Recipient&amp;gt;&lt;br /&gt;
		&amp;lt;Type&amp;gt;sms&amp;lt;/Type&amp;gt;&lt;br /&gt;
		&amp;lt;TrackingId&amp;gt;MTID256749777469712848&amp;lt;/TrackingId&amp;gt;&lt;br /&gt;
		&amp;lt;RejectReason&amp;gt; &amp;lt;/RejectReason&amp;gt;&lt;br /&gt;
	&amp;lt;/ SMSMessage&amp;gt;&lt;br /&gt;
&amp;lt;/RestResponse&amp;gt;&lt;br /&gt;
In SMSMessage, TrackingId and RejectReason are optional. If Status is &amp;quot;QUEUED&amp;quot;, for non-multiple recipient type, a unique TrackingId is returned for future query. If Status is &amp;quot;REJECTED&amp;quot;, RejectReason includes the reject reason. If type is sms_test, the successful status is &amp;quot;PASSED&amp;quot;, not &amp;quot;QUEUED&amp;quot;.&lt;br /&gt;
Or in JSON format''' '''&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;HasException&amp;quot;: false,&lt;br /&gt;
  &amp;quot;Token&amp;quot;: &amp;quot;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;quot;,&lt;br /&gt;
  &amp;quot;SMSMessage&amp;quot;: {&lt;br /&gt;
    &amp;quot;Status&amp;quot;: &amp;quot;QUEUED&amp;quot; or &amp;quot;REJECTED&amp;quot;,&lt;br /&gt;
    &amp;quot;Body&amp;quot;: &amp;quot;sms message&amp;quot;,&lt;br /&gt;
    &amp;quot;Recipient&amp;quot;: &amp;quot;16047891236&amp;quot;,&lt;br /&gt;
    &amp;quot;Type&amp;quot;: &amp;quot;sms&amp;quot;,&lt;br /&gt;
    &amp;quot;TrackingId&amp;quot;: &amp;quot;MTID256749777469712848&amp;quot;,&lt;br /&gt;
    &amp;quot;RejectReason&amp;quot;: &amp;quot;Failure message&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
''' &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''&lt;br /&gt;
'''2. SMS Contact API'''&lt;br /&gt;
'''API URI: /RESTv1/\{token\}/Contact'''&lt;br /&gt;
'''Support method: HTTP POST '''&lt;br /&gt;
The following parameters are '''required''' in your POST to add contact:&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|signature||One of the API credential, similar to a password. It can be found in your account page.&lt;br /&gt;
|-&lt;br /&gt;
|mobile||The mobile number to be added as an SMS contact, in [&amp;lt;u&amp;gt;E.164-http://en.wikipedia.org/wiki/E.164]&amp;lt;/u&amp;gt; format, for example 16045551212. If mobile number already exists, existing record will be updated.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
The following parameters are optional:&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|type||The mobile type, such as Android, iPhone.&lt;br /&gt;
|-&lt;br /&gt;
|email||The email of this SMS contact.&lt;br /&gt;
|-&lt;br /&gt;
|firstname||The given name of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|lastname||The surname of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|address||The living or working address of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|city||The living or working city of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|zipcode||The zipcode of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|landline||The landline of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|title||The title of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|role||The role of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|organization||The organization this SMS contact belongs to&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
If no exception in API call, the following response (XML format) will be returned:&lt;br /&gt;
&amp;lt;RestResponse&amp;gt;&lt;br /&gt;
	&amp;lt;HasException&amp;gt;false&amp;lt;/HasException&amp;gt;&lt;br /&gt;
	&amp;lt;Token&amp;gt;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;lt;/Token&amp;gt;&lt;br /&gt;
	&amp;lt;SMSContact&amp;gt;&lt;br /&gt;
		&amp;lt;success&amp;gt;true or false&amp;lt;/success&amp;gt;&lt;br /&gt;
		&amp;lt;number&amp;gt;16047891236&amp;lt;/number&amp;gt;&lt;br /&gt;
		&amp;lt;message&amp;gt;Success or failure message&amp;lt;/message&amp;gt;&lt;br /&gt;
	&amp;lt;/SMSContact&amp;gt;&lt;br /&gt;
&amp;lt;/RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or in JSON format''' '''&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;HasException&amp;quot;: false,&lt;br /&gt;
  &amp;quot;Token&amp;quot;: &amp;quot;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;quot;,&lt;br /&gt;
  &amp;quot; SMSContact &amp;quot;: {&lt;br /&gt;
    &amp;quot;success&amp;quot;: true or false,&lt;br /&gt;
    &amp;quot;number&amp;quot;: &amp;quot;16047891236&amp;quot;,&lt;br /&gt;
    &amp;quot;message&amp;quot;: &amp;quot;Success or failure message.&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
''' &lt;br /&gt;
3. Number Validation API'''&lt;br /&gt;
'''API URI: /RESTv1/\{token\}/''' '''NumberValidation'''&lt;br /&gt;
'''Support method: HTTP POST '''&lt;br /&gt;
The following parameters are '''required''' in your POST to do number validation:&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|signature||One of the API credential, similar to a password. It can be found in your account page.&lt;br /&gt;
|-&lt;br /&gt;
|type||The validation type. There are three possible types. 1 – &amp;quot;quick&amp;quot; and it will cost 0.1 credits; 2 – &amp;quot;route&amp;quot; and it will cost 0.25 credits; 3 – &amp;quot;hlr&amp;quot; and it will cost 0.5 credits.&lt;br /&gt;
|-&lt;br /&gt;
|number||The phone number to be validated, in [&amp;lt;u&amp;gt;E.164-http://en.wikipedia.org/wiki/E.164]&amp;lt;/u&amp;gt; format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
If no exception in API call, the following response (XML format) will be returned:&lt;br /&gt;
&amp;lt;RestResponse&amp;gt;&lt;br /&gt;
	&amp;lt;HasException&amp;gt;false&amp;lt;/HasException&amp;gt;&lt;br /&gt;
	&amp;lt;Token&amp;gt;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;lt;/Token&amp;gt;&lt;br /&gt;
	&amp;lt;NumberValidation&amp;gt;&lt;br /&gt;
		&amp;lt;success&amp;gt;true or false&amp;lt;/success&amp;gt;&lt;br /&gt;
		&amp;lt;number&amp;gt;16047891236&amp;lt;/number&amp;gt;&lt;br /&gt;
		&amp;lt;message&amp;gt;Success or failure message&amp;lt;/message&amp;gt;&lt;br /&gt;
		&amp;lt;country&amp;gt;Canada&amp;lt;/country&amp;gt;&lt;br /&gt;
		&amp;lt;network&amp;gt;British Columbia&amp;lt;/network&amp;gt;&lt;br /&gt;
		&amp;lt;HLRLookupResultObject&amp;gt;&lt;br /&gt;
			&amp;lt;status&amp;gt;OK&amp;lt;/status&amp;gt;&lt;br /&gt;
			&amp;lt;number&amp;gt;16047891236&amp;lt;/number&amp;gt;&lt;br /&gt;
			&amp;lt;MCC&amp;gt;302&amp;lt;/MCC&amp;gt;&lt;br /&gt;
			&amp;lt;MNC&amp;gt;370&amp;lt;/MNC&amp;gt;&lt;br /&gt;
			&amp;lt;operatorName&amp;gt;Microcell&amp;lt;/operatorName&amp;gt;&lt;br /&gt;
			&amp;lt;operatorCountry&amp;gt;Canada&amp;lt;/operatorCountry&amp;gt;&lt;br /&gt;
			&amp;lt;message&amp;gt;&amp;lt;/message&amp;gt;&lt;br /&gt;
		&amp;lt;/HLRLookupResultObject&amp;gt;&lt;br /&gt;
	&amp;lt;/NumberValidation&amp;gt;&lt;br /&gt;
&amp;lt;/RestResponse&amp;gt;&lt;br /&gt;
In NumberValidation, country, network and  HLRLookupResultObject are optional, depends on the query type. If type is &amp;quot;quick&amp;quot;, only country returned; if type is &amp;quot;route&amp;quot;, country and network returned; if type is &amp;quot;hlr&amp;quot;, only HLRLookupResultObject returned.&lt;br /&gt;
Or in JSON format&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;HasException&amp;quot;: false,&lt;br /&gt;
  &amp;quot;Token&amp;quot;: &amp;quot;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;quot;,&lt;br /&gt;
  &amp;quot;NumberValidation&amp;quot;: {&lt;br /&gt;
    &amp;quot;success&amp;quot;: true or false,&lt;br /&gt;
    &amp;quot;number&amp;quot;: &amp;quot;16047891236&amp;quot;,&lt;br /&gt;
    &amp;quot;message&amp;quot;: &amp;quot;Success or failure message.&amp;quot;,&lt;br /&gt;
    &amp;quot;country&amp;quot;: &amp;quot;Canada&amp;quot;,&lt;br /&gt;
    &amp;quot;network&amp;quot;: &amp;quot;British Columbia&amp;quot;&lt;br /&gt;
    &amp;quot;HLRLookupResultObject&amp;quot;: {&lt;br /&gt;
      &amp;quot;status&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
      &amp;quot;number&amp;quot;: &amp;quot;16047891236&amp;quot;,&lt;br /&gt;
      &amp;quot;MCC&amp;quot;: &amp;quot;302&amp;quot;,&lt;br /&gt;
      &amp;quot;MNC&amp;quot;: &amp;quot;370&amp;quot;,&lt;br /&gt;
      &amp;quot;operatorName&amp;quot;: &amp;quot;Microcell&amp;quot;,&lt;br /&gt;
      &amp;quot;operatorCountry&amp;quot;: &amp;quot;Canada&amp;quot;,&lt;br /&gt;
      &amp;quot;message&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
The entire HLRLookupResultObject is as following:&lt;br /&gt;
&amp;lt;HLRLookupResultObject&amp;gt;&lt;br /&gt;
	&amp;lt;status&amp;gt;&amp;lt;/status&amp;gt;&lt;br /&gt;
	&amp;lt;number&amp;gt;&amp;lt;/number&amp;gt;&lt;br /&gt;
	&amp;lt;MCC&amp;gt;&amp;lt;/MCC&amp;gt;&lt;br /&gt;
	&amp;lt;MNC&amp;gt;&amp;lt;/MNC&amp;gt;&lt;br /&gt;
	&amp;lt;operatorName&amp;gt;&amp;lt;/operatorName&amp;gt;&lt;br /&gt;
	&amp;lt;operatorCountry&amp;gt;&amp;lt;/operatorCountry&amp;gt;&lt;br /&gt;
	&amp;lt;IMSI&amp;gt;&amp;lt;/IMSI&amp;gt;&lt;br /&gt;
	&amp;lt;MSC&amp;gt;&amp;lt;/MSC&amp;gt;&lt;br /&gt;
	&amp;lt;mscOperator&amp;gt;&amp;lt;/mscOperator&amp;gt;&lt;br /&gt;
	&amp;lt;mscMCC&amp;gt;&amp;lt;/mscMCC&amp;gt;&lt;br /&gt;
	&amp;lt;mscMNC&amp;gt;&amp;lt;/mscMNC&amp;gt;&lt;br /&gt;
	&amp;lt;mscCountry&amp;gt;&amp;lt;/mscCountry&amp;gt;&lt;br /&gt;
	&amp;lt;mscLocation&amp;gt;&amp;lt;/mscLocation&amp;gt;&lt;br /&gt;
	&amp;lt;message&amp;gt;&amp;lt;/message&amp;gt;&lt;br /&gt;
&amp;lt;/HLRLookupResultObject&amp;gt;&lt;br /&gt;
Only status, number and message are mandatory, others are optional.&lt;br /&gt;
 &lt;br /&gt;
'''REST API Exception'''&lt;br /&gt;
If there is any exception in REST API call, the HasException flag will be set to true and the following response (XML format) will be returned:&lt;br /&gt;
&amp;lt;RestResponse&amp;gt;&lt;br /&gt;
	&amp;lt;HasException&amp;gt;true&amp;lt;/HasException&amp;gt;&lt;br /&gt;
	&amp;lt;Token&amp;gt;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;lt;/Token&amp;gt;&lt;br /&gt;
	&amp;lt;RestException&amp;gt;&lt;br /&gt;
		&amp;lt;ErrorCode&amp;gt;101&amp;lt;/ErrorCode&amp;gt;&lt;br /&gt;
		&amp;lt;Message&amp;gt;Unauthorized&amp;lt;/Message&amp;gt;&lt;br /&gt;
		&amp;lt;Status&amp;gt;401&amp;lt;/Status&amp;gt;&lt;br /&gt;
	&amp;lt;/RestException&amp;gt;&lt;br /&gt;
&amp;lt;/RestResponse&amp;gt;&lt;br /&gt;
Or in JSON format''' '''&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;HasException&amp;quot;: true,&lt;br /&gt;
  &amp;quot;Token&amp;quot;: &amp;quot;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;quot;,&lt;br /&gt;
  &amp;quot;RestException&amp;quot;: {&lt;br /&gt;
    &amp;quot;ErrorCode&amp;quot;: &amp;quot;101&amp;quot;,&lt;br /&gt;
    &amp;quot;Message&amp;quot;: &amp;quot;Unauthorized&amp;quot;,&lt;br /&gt;
    &amp;quot;Status&amp;quot;: &amp;quot;401&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
The Status is HTTP status code and it is optional.&lt;br /&gt;
ErrorCode and corresponding message:&lt;br /&gt;
{|&lt;br /&gt;
|'''ErrorCode'''||'''Message'''||'''Comments'''&lt;br /&gt;
|-&lt;br /&gt;
|100||Unsupported method||Wrong HTTP method&lt;br /&gt;
|-&lt;br /&gt;
|101||Unauthorized||API credential is wrong&lt;br /&gt;
|-&lt;br /&gt;
|102||No permission||API credential passed, but no permission&lt;br /&gt;
|-&lt;br /&gt;
|103||Runtime error||Runtime error during API call&lt;br /&gt;
|-&lt;br /&gt;
|||||&lt;br /&gt;
|-&lt;br /&gt;
|200||Zero balance||No credits to send a message&lt;br /&gt;
|-&lt;br /&gt;
|201||Invalid country||Can\’t figure out a country with the recipient number&lt;br /&gt;
|-&lt;br /&gt;
|202||Invalid carrier code||The carrier code is incorrect&lt;br /&gt;
|-&lt;br /&gt;
|203||Number blocked||The recipient number is blocked by our system&lt;br /&gt;
|-&lt;br /&gt;
|204||Too many messages||Message is too long&lt;br /&gt;
|-&lt;br /&gt;
|205||Empty message||Empty message&lt;br /&gt;
|-&lt;br /&gt;
|206||No time for defer||The delay parameter is wrong&lt;br /&gt;
|-&lt;br /&gt;
|207||Unknown type||Unknown message type&lt;br /&gt;
|-&lt;br /&gt;
|208||Unimplemented type||The message type not implemented yet&lt;br /&gt;
|-&lt;br /&gt;
|||||&lt;br /&gt;
|-&lt;br /&gt;
|300||Mobile phone number is invalid||Invalid mobile number&lt;br /&gt;
|-&lt;br /&gt;
|301||Credit is not enough to perform validation. Please purchase more and try again||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[C# Example]]&lt;br /&gt;
&lt;br /&gt;
[[Java Example]]&lt;/div&gt;</summary>
		<author><name>Bzurkovic</name></author>	</entry>

	<entry>
		<id>http://docs.upsidewireless.com/index.php?title=Send_REST</id>
		<title>Send REST</title>
		<link rel="alternate" type="text/html" href="http://docs.upsidewireless.com/index.php?title=Send_REST"/>
				<updated>2015-02-03T01:40:06Z</updated>
		
		<summary type="html">&lt;p&gt;Bzurkovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Upsidewireless REST API '''&lt;br /&gt;
There are two endpoints of Upsidewireless REST API, [https://secureapi.upsidewireless.com-https://secureapi.upsidewireless.com/] and [http://api.upsidewireless.com-http://api.upsidewireless.com/]. If you care about more security than performance, you should use the secure endpoint. However, in this case you will need to install certificate for secure, authenticated communication.&lt;br /&gt;
In order to use Upsidewireless REST API, you need have an account that has API permissions and get your API credential (token and signature) on your account page. Token is similar to username and signature is similar to password. They are needed in every single call to REST API.&lt;br /&gt;
There are two kinds of response of each API call, JSON or XML. You can either use HTTP header (&amp;quot;Accept&amp;quot;) or a special HTTP parameter (&amp;quot;responsetype&amp;quot;) to specify what kind of response you want. If you want using HTTP header, set either &amp;quot;application/json&amp;quot; or &amp;quot;application/xml&amp;quot; in Accept header. If you want using HTTP parameter, set either &amp;quot;JSON&amp;quot; or &amp;quot;XML&amp;quot; to responsetype parameter. If no response type specified, default response will always be in XML format. Use HTTP header is a highly recommended way to do so.&lt;br /&gt;
'''1. SMS Message API'''&lt;br /&gt;
'''API URI: /RESTv1/\{token\}/Message'''&lt;br /&gt;
'''Support method: HTTP POST '''&lt;br /&gt;
The following parameters are all '''required''' in your POST to send the message:&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|signature||One of the API credential, similar to a password. It can be found in your account page.&lt;br /&gt;
|-&lt;br /&gt;
|type||The message type. Different type requires a different set of additional parameters.&lt;br /&gt;
|-&lt;br /&gt;
|message||The text of the message you want to send. For some types, this message must be pre-encoded&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
According to different type, a different set of additional parameters is required&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_test''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [&amp;lt;u&amp;gt;E.164-http://en.wikipedia.org/wiki/E.164]&amp;lt;/u&amp;gt; format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
'''Additional parametesr for type: &amp;quot;sms''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [&amp;lt;u&amp;gt;E.164-http://en.wikipedia.org/wiki/E.164]&amp;lt;/u&amp;gt; format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
'''Additional parameters for type: &amp;quot;mms''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [&amp;lt;u&amp;gt;E.164-http://en.wikipedia.org/wiki/E.164]&amp;lt;/u&amp;gt; format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|mediaUrl||The URL of the media you wish to send out with the message. gif , png and jpeg content is currently supported. The media size limit is 5MB. If you wish to send more than one image in the message, please provide multiple URLs separated by comma in this parameter.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
'''Additional parameter for type: &amp;quot;sms_port''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [&amp;lt;u&amp;gt;E.164-http://en.wikipedia.org/wiki/E.164]&amp;lt;/u&amp;gt; format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|port||Port number – valid value is &amp;gt; 0 and &amp;lt; 65535, parameter message must be pre-encoded.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_multi''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [&amp;lt;u&amp;gt;E.164-http://en.wikipedia.org/wiki/E.164]&amp;lt;/u&amp;gt; format, for example 16045551212. This parameter can include multiple phone numbers, separated by comma. &lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_group''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|groupName||The name of contact group in your account&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_service_group''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|serviceName||The name of your PSMS service&lt;br /&gt;
|-&lt;br /&gt;
|groupName||The contact group name of your PSMS service&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_dedicated''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [&amp;lt;u&amp;gt;E.164-http://en.wikipedia.org/wiki/E.164]&amp;lt;/u&amp;gt; format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|carrierCode||The carrier code that recipient phone number belongs to. This parameter is mandatory if dedicated number is a short code.&lt;br /&gt;
|-&lt;br /&gt;
|dedicatedNumber||The dedicated number which will deliver the message. It could be a long code or a short code.&lt;br /&gt;
|-&lt;br /&gt;
|tariff||The amount that recipient number to be charged&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_dedicated_port''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [&amp;lt;u&amp;gt;E.164-http://en.wikipedia.org/wiki/E.164]&amp;lt;/u&amp;gt; format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|port||Port number – valid value is &amp;gt; 0 and &amp;lt; 65535, parameter message must be pre-encoded.&lt;br /&gt;
|-&lt;br /&gt;
|carrierCode||The carrier code that recipient phone number belongs to. This parameter is mandatory if dedicated number is a short code.&lt;br /&gt;
|-&lt;br /&gt;
|dedicatedNumber||The dedicated number which will deliver the message. It could be a long code or a short code.&lt;br /&gt;
|-&lt;br /&gt;
|tariff||The amount that recipient number to be charged&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_defer''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [&amp;lt;u&amp;gt;E.164-http://en.wikipedia.org/wiki/E.164]&amp;lt;/u&amp;gt; format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|encoding||Message encoding - 7 for GSM 7bit, 8 for Raw 8bit and 16 for Unicode&lt;br /&gt;
|-&lt;br /&gt;
|DelayHours||The hours to delay.&lt;br /&gt;
|-&lt;br /&gt;
|DelayMinutes||The minutes to delay&lt;br /&gt;
|-&lt;br /&gt;
|label||The label of this delayed event&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_flash''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [&amp;lt;u&amp;gt;E.164-http://en.wikipedia.org/wiki/E.164]&amp;lt;/u&amp;gt; format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|||The parameter message must be pre-encoded.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
'''Additional parameters for type: &amp;quot;sms_wappush''''''&amp;quot;'''&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|recipient||The phone number to receive message, in [&amp;lt;u&amp;gt;E.164-http://en.wikipedia.org/wiki/E.164]&amp;lt;/u&amp;gt; format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|url||The pre-encoded URL&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If no exception in API call, the following response (XML format) will be returned:&lt;br /&gt;
&amp;lt;RestResponse&amp;gt;&lt;br /&gt;
	&amp;lt;HasException&amp;gt;false&amp;lt;/HasException&amp;gt;&lt;br /&gt;
	&amp;lt;Token&amp;gt;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;lt;/Token&amp;gt;&lt;br /&gt;
	&amp;lt; SMSMessage&amp;gt;&lt;br /&gt;
		&amp;lt;Status&amp;gt;QUEUED or REJECTED&amp;lt;/Status&amp;gt;&lt;br /&gt;
		&amp;lt; Body&amp;gt;sms message&amp;lt;/ Body&amp;gt;&lt;br /&gt;
		&amp;lt; Recipient&amp;gt;16047891236&amp;lt;/ Recipient&amp;gt;&lt;br /&gt;
		&amp;lt;Type&amp;gt;sms&amp;lt;/Type&amp;gt;&lt;br /&gt;
		&amp;lt;TrackingId&amp;gt;MTID256749777469712848&amp;lt;/TrackingId&amp;gt;&lt;br /&gt;
		&amp;lt;RejectReason&amp;gt; &amp;lt;/RejectReason&amp;gt;&lt;br /&gt;
	&amp;lt;/ SMSMessage&amp;gt;&lt;br /&gt;
&amp;lt;/RestResponse&amp;gt;&lt;br /&gt;
In SMSMessage, TrackingId and RejectReason are optional. If Status is &amp;quot;QUEUED&amp;quot;, for non-multiple recipient type, a unique TrackingId is returned for future query. If Status is &amp;quot;REJECTED&amp;quot;, RejectReason includes the reject reason. If type is sms_test, the successful status is &amp;quot;PASSED&amp;quot;, not &amp;quot;QUEUED&amp;quot;.&lt;br /&gt;
Or in JSON format''' '''&lt;br /&gt;
\{&lt;br /&gt;
  &amp;quot;HasException&amp;quot;: false,&lt;br /&gt;
  &amp;quot;Token&amp;quot;: &amp;quot;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;quot;,&lt;br /&gt;
  &amp;quot;SMSMessage&amp;quot;: \{&lt;br /&gt;
    &amp;quot;Status&amp;quot;: &amp;quot;QUEUED&amp;quot; or &amp;quot;REJECTED&amp;quot;,&lt;br /&gt;
    &amp;quot;Body&amp;quot;: &amp;quot;sms message&amp;quot;,&lt;br /&gt;
    &amp;quot;Recipient&amp;quot;: &amp;quot;16047891236&amp;quot;,&lt;br /&gt;
    &amp;quot;Type&amp;quot;: &amp;quot;sms&amp;quot;,&lt;br /&gt;
    &amp;quot;TrackingId&amp;quot;: &amp;quot;MTID256749777469712848&amp;quot;,&lt;br /&gt;
    &amp;quot;RejectReason&amp;quot;: &amp;quot;Failure message&amp;quot;&lt;br /&gt;
  \}&lt;br /&gt;
\}&lt;br /&gt;
&lt;br /&gt;
''' &lt;br /&gt;
'''&lt;br /&gt;
'''2. SMS Contact API'''&lt;br /&gt;
'''API URI: /RESTv1/\{token\}/Contact'''&lt;br /&gt;
'''Support method: HTTP POST '''&lt;br /&gt;
The following parameters are '''required''' in your POST to add contact:&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|signature||One of the API credential, similar to a password. It can be found in your account page.&lt;br /&gt;
|-&lt;br /&gt;
|mobile||The mobile number to be added as an SMS contact, in [&amp;lt;u&amp;gt;E.164-http://en.wikipedia.org/wiki/E.164]&amp;lt;/u&amp;gt; format, for example 16045551212. If mobile number already exists, existing record will be updated.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
The following parameters are optional:&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|type||The mobile type, such as Android, iPhone.&lt;br /&gt;
|-&lt;br /&gt;
|email||The email of this SMS contact.&lt;br /&gt;
|-&lt;br /&gt;
|firstname||The given name of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|lastname||The surname of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|address||The living or working address of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|city||The living or working city of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|zipcode||The zipcode of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|landline||The landline of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|title||The title of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|role||The role of this SMS contact&lt;br /&gt;
|-&lt;br /&gt;
|organization||The organization this SMS contact belongs to&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
If no exception in API call, the following response (XML format) will be returned:&lt;br /&gt;
&amp;lt;RestResponse&amp;gt;&lt;br /&gt;
	&amp;lt;HasException&amp;gt;false&amp;lt;/HasException&amp;gt;&lt;br /&gt;
	&amp;lt;Token&amp;gt;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;lt;/Token&amp;gt;&lt;br /&gt;
	&amp;lt;SMSContact&amp;gt;&lt;br /&gt;
		&amp;lt;success&amp;gt;true or false&amp;lt;/success&amp;gt;&lt;br /&gt;
		&amp;lt;number&amp;gt;16047891236&amp;lt;/number&amp;gt;&lt;br /&gt;
		&amp;lt;message&amp;gt;Success or failure message&amp;lt;/message&amp;gt;&lt;br /&gt;
	&amp;lt;/SMSContact&amp;gt;&lt;br /&gt;
&amp;lt;/RestResponse&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or in JSON format''' '''&lt;br /&gt;
\{&lt;br /&gt;
  &amp;quot;HasException&amp;quot;: false,&lt;br /&gt;
  &amp;quot;Token&amp;quot;: &amp;quot;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;quot;,&lt;br /&gt;
  &amp;quot; SMSContact &amp;quot;: \{&lt;br /&gt;
    &amp;quot;success&amp;quot;: true or false,&lt;br /&gt;
    &amp;quot;number&amp;quot;: &amp;quot;16047891236&amp;quot;,&lt;br /&gt;
    &amp;quot;message&amp;quot;: &amp;quot;Success or failure message.&amp;quot;&lt;br /&gt;
  \}&lt;br /&gt;
\}&lt;br /&gt;
''' &lt;br /&gt;
3. Number Validation API'''&lt;br /&gt;
'''API URI: /RESTv1/\{token\}/''' '''NumberValidation'''&lt;br /&gt;
'''Support method: HTTP POST '''&lt;br /&gt;
The following parameters are '''required''' in your POST to do number validation:&lt;br /&gt;
{|&lt;br /&gt;
|'''Parameter'''||'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|signature||One of the API credential, similar to a password. It can be found in your account page.&lt;br /&gt;
|-&lt;br /&gt;
|type||The validation type. There are three possible types. 1 – &amp;quot;quick&amp;quot; and it will cost 0.1 credits; 2 – &amp;quot;route&amp;quot; and it will cost 0.25 credits; 3 – &amp;quot;hlr&amp;quot; and it will cost 0.5 credits.&lt;br /&gt;
|-&lt;br /&gt;
|number||The phone number to be validated, in [&amp;lt;u&amp;gt;E.164-http://en.wikipedia.org/wiki/E.164]&amp;lt;/u&amp;gt; format, for example 16045551212.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
If no exception in API call, the following response (XML format) will be returned:&lt;br /&gt;
&amp;lt;RestResponse&amp;gt;&lt;br /&gt;
	&amp;lt;HasException&amp;gt;false&amp;lt;/HasException&amp;gt;&lt;br /&gt;
	&amp;lt;Token&amp;gt;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;lt;/Token&amp;gt;&lt;br /&gt;
	&amp;lt;NumberValidation&amp;gt;&lt;br /&gt;
		&amp;lt;success&amp;gt;true or false&amp;lt;/success&amp;gt;&lt;br /&gt;
		&amp;lt;number&amp;gt;16047891236&amp;lt;/number&amp;gt;&lt;br /&gt;
		&amp;lt;message&amp;gt;Success or failure message&amp;lt;/message&amp;gt;&lt;br /&gt;
		&amp;lt;country&amp;gt;Canada&amp;lt;/country&amp;gt;&lt;br /&gt;
		&amp;lt;network&amp;gt;British Columbia&amp;lt;/network&amp;gt;&lt;br /&gt;
		&amp;lt;HLRLookupResultObject&amp;gt;&lt;br /&gt;
			&amp;lt;status&amp;gt;OK&amp;lt;/status&amp;gt;&lt;br /&gt;
			&amp;lt;number&amp;gt;16047891236&amp;lt;/number&amp;gt;&lt;br /&gt;
			&amp;lt;MCC&amp;gt;302&amp;lt;/MCC&amp;gt;&lt;br /&gt;
			&amp;lt;MNC&amp;gt;370&amp;lt;/MNC&amp;gt;&lt;br /&gt;
			&amp;lt;operatorName&amp;gt;Microcell&amp;lt;/operatorName&amp;gt;&lt;br /&gt;
			&amp;lt;operatorCountry&amp;gt;Canada&amp;lt;/operatorCountry&amp;gt;&lt;br /&gt;
			&amp;lt;message&amp;gt;&amp;lt;/message&amp;gt;&lt;br /&gt;
		&amp;lt;/HLRLookupResultObject&amp;gt;&lt;br /&gt;
	&amp;lt;/NumberValidation&amp;gt;&lt;br /&gt;
&amp;lt;/RestResponse&amp;gt;&lt;br /&gt;
In NumberValidation, country, network and  HLRLookupResultObject are optional, depends on the query type. If type is &amp;quot;quick&amp;quot;, only country returned; if type is &amp;quot;route&amp;quot;, country and network returned; if type is &amp;quot;hlr&amp;quot;, only HLRLookupResultObject returned.&lt;br /&gt;
Or in JSON format&lt;br /&gt;
\{&lt;br /&gt;
  &amp;quot;HasException&amp;quot;: false,&lt;br /&gt;
  &amp;quot;Token&amp;quot;: &amp;quot;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;quot;,&lt;br /&gt;
  &amp;quot;NumberValidation&amp;quot;: \{&lt;br /&gt;
    &amp;quot;success&amp;quot;: true or false,&lt;br /&gt;
    &amp;quot;number&amp;quot;: &amp;quot;16047891236&amp;quot;,&lt;br /&gt;
    &amp;quot;message&amp;quot;: &amp;quot;Success or failure message.&amp;quot;,&lt;br /&gt;
    &amp;quot;country&amp;quot;: &amp;quot;Canada&amp;quot;,&lt;br /&gt;
    &amp;quot;network&amp;quot;: &amp;quot;British Columbia&amp;quot;&lt;br /&gt;
    &amp;quot;HLRLookupResultObject&amp;quot;: \{&lt;br /&gt;
      &amp;quot;status&amp;quot;: &amp;quot;OK&amp;quot;,&lt;br /&gt;
      &amp;quot;number&amp;quot;: &amp;quot;16047891236&amp;quot;,&lt;br /&gt;
      &amp;quot;MCC&amp;quot;: &amp;quot;302&amp;quot;,&lt;br /&gt;
      &amp;quot;MNC&amp;quot;: &amp;quot;370&amp;quot;,&lt;br /&gt;
      &amp;quot;operatorName&amp;quot;: &amp;quot;Microcell&amp;quot;,&lt;br /&gt;
      &amp;quot;operatorCountry&amp;quot;: &amp;quot;Canada&amp;quot;,&lt;br /&gt;
      &amp;quot;message&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    \}&lt;br /&gt;
  \}&lt;br /&gt;
\}&lt;br /&gt;
&lt;br /&gt;
The entire HLRLookupResultObject is as following:&lt;br /&gt;
&amp;lt;HLRLookupResultObject&amp;gt;&lt;br /&gt;
	&amp;lt;status&amp;gt;&amp;lt;/status&amp;gt;&lt;br /&gt;
	&amp;lt;number&amp;gt;&amp;lt;/number&amp;gt;&lt;br /&gt;
	&amp;lt;MCC&amp;gt;&amp;lt;/MCC&amp;gt;&lt;br /&gt;
	&amp;lt;MNC&amp;gt;&amp;lt;/MNC&amp;gt;&lt;br /&gt;
	&amp;lt;operatorName&amp;gt;&amp;lt;/operatorName&amp;gt;&lt;br /&gt;
	&amp;lt;operatorCountry&amp;gt;&amp;lt;/operatorCountry&amp;gt;&lt;br /&gt;
	&amp;lt;IMSI&amp;gt;&amp;lt;/IMSI&amp;gt;&lt;br /&gt;
	&amp;lt;MSC&amp;gt;&amp;lt;/MSC&amp;gt;&lt;br /&gt;
	&amp;lt;mscOperator&amp;gt;&amp;lt;/mscOperator&amp;gt;&lt;br /&gt;
	&amp;lt;mscMCC&amp;gt;&amp;lt;/mscMCC&amp;gt;&lt;br /&gt;
	&amp;lt;mscMNC&amp;gt;&amp;lt;/mscMNC&amp;gt;&lt;br /&gt;
	&amp;lt;mscCountry&amp;gt;&amp;lt;/mscCountry&amp;gt;&lt;br /&gt;
	&amp;lt;mscLocation&amp;gt;&amp;lt;/mscLocation&amp;gt;&lt;br /&gt;
	&amp;lt;message&amp;gt;&amp;lt;/message&amp;gt;&lt;br /&gt;
&amp;lt;/HLRLookupResultObject&amp;gt;&lt;br /&gt;
Only status, number and message are mandatory, others are optional.&lt;br /&gt;
 &lt;br /&gt;
'''REST API Exception'''&lt;br /&gt;
If there is any exception in REST API call, the HasException flag will be set to true and the following response (XML format) will be returned:&lt;br /&gt;
&amp;lt;RestResponse&amp;gt;&lt;br /&gt;
	&amp;lt;HasException&amp;gt;true&amp;lt;/HasException&amp;gt;&lt;br /&gt;
	&amp;lt;Token&amp;gt;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;lt;/Token&amp;gt;&lt;br /&gt;
	&amp;lt;RestException&amp;gt;&lt;br /&gt;
		&amp;lt;ErrorCode&amp;gt;101&amp;lt;/ErrorCode&amp;gt;&lt;br /&gt;
		&amp;lt;Message&amp;gt;Unauthorized&amp;lt;/Message&amp;gt;&lt;br /&gt;
		&amp;lt;Status&amp;gt;401&amp;lt;/Status&amp;gt;&lt;br /&gt;
	&amp;lt;/RestException&amp;gt;&lt;br /&gt;
&amp;lt;/RestResponse&amp;gt;&lt;br /&gt;
Or in JSON format''' '''&lt;br /&gt;
\{&lt;br /&gt;
  &amp;quot;HasException&amp;quot;: true,&lt;br /&gt;
  &amp;quot;Token&amp;quot;: &amp;quot;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;quot;,&lt;br /&gt;
  &amp;quot;RestException&amp;quot;: \{&lt;br /&gt;
    &amp;quot;ErrorCode&amp;quot;: &amp;quot;101&amp;quot;,&lt;br /&gt;
    &amp;quot;Message&amp;quot;: &amp;quot;Unauthorized&amp;quot;,&lt;br /&gt;
    &amp;quot;Status&amp;quot;: &amp;quot;401&amp;quot;&lt;br /&gt;
  \}&lt;br /&gt;
\}&lt;br /&gt;
The Status is HTTP status code and it is optional.&lt;br /&gt;
ErrorCode and corresponding message:&lt;br /&gt;
{|&lt;br /&gt;
|'''ErrorCode'''||'''Message'''||'''Comments'''&lt;br /&gt;
|-&lt;br /&gt;
|100||Unsupported method||Wrong HTTP method&lt;br /&gt;
|-&lt;br /&gt;
|101||Unauthorized||API credential is wrong&lt;br /&gt;
|-&lt;br /&gt;
|102||No permission||API credential passed, but no permission&lt;br /&gt;
|-&lt;br /&gt;
|103||Runtime error||Runtime error during API call&lt;br /&gt;
|-&lt;br /&gt;
|||||&lt;br /&gt;
|-&lt;br /&gt;
|200||Zero balance||No credits to send a message&lt;br /&gt;
|-&lt;br /&gt;
|201||Invalid country||Can\’t figure out a country with the recipient number&lt;br /&gt;
|-&lt;br /&gt;
|202||Invalid carrier code||The carrier code is incorrect&lt;br /&gt;
|-&lt;br /&gt;
|203||Number blocked||The recipient number is blocked by our system&lt;br /&gt;
|-&lt;br /&gt;
|204||Too many messages||Message is too long&lt;br /&gt;
|-&lt;br /&gt;
|205||Empty message||Empty message&lt;br /&gt;
|-&lt;br /&gt;
|206||No time for defer||The delay parameter is wrong&lt;br /&gt;
|-&lt;br /&gt;
|207||Unknown type||Unknown message type&lt;br /&gt;
|-&lt;br /&gt;
|208||Unimplemented type||The message type not implemented yet&lt;br /&gt;
|-&lt;br /&gt;
|||||&lt;br /&gt;
|-&lt;br /&gt;
|300||Mobile phone number is invalid||Invalid mobile number&lt;br /&gt;
|-&lt;br /&gt;
|301||Credit is not enough to perform validation. Please purchase more and try again||&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[C# Example]]&lt;br /&gt;
&lt;br /&gt;
[[Java Example]]&lt;/div&gt;</summary>
		<author><name>Bzurkovic</name></author>	</entry>

	<entry>
		<id>http://docs.upsidewireless.com/index.php?title=Java_Example</id>
		<title>Java Example</title>
		<link rel="alternate" type="text/html" href="http://docs.upsidewireless.com/index.php?title=Java_Example"/>
				<updated>2015-02-03T01:06:37Z</updated>
		
		<summary type="html">&lt;p&gt;Bzurkovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Below is sample code for Java programmers. You are welcome to cut+paste this sample into your application, however, keep in mind that depending on your environment, some changes may be required. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Note: In order to run this sample, you need include MOXy library, as well as JAXB if no built-in JAXB in your JDK&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.io.BufferedReader;&lt;br /&gt;
import java.io.InputStream;&lt;br /&gt;
import java.io.InputStreamReader;&lt;br /&gt;
import java.io.PrintWriter;&lt;br /&gt;
import java.io.StringReader;&lt;br /&gt;
import java.net.HttpURLConnection;&lt;br /&gt;
import java.net.URL;&lt;br /&gt;
import java.net.URLEncoder;&lt;br /&gt;
import java.util.HashMap;&lt;br /&gt;
import java.util.Map;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
import javax.xml.bind.JAXBContext;&lt;br /&gt;
import javax.xml.bind.Unmarshaller;&lt;br /&gt;
import javax.xml.bind.annotation.XmlAccessType;&lt;br /&gt;
import javax.xml.bind.annotation.XmlAccessorType;&lt;br /&gt;
import javax.xml.bind.annotation.XmlElement;&lt;br /&gt;
import javax.xml.bind.annotation.XmlRootElement;&lt;br /&gt;
import javax.xml.transform.stream.StreamSource;&lt;br /&gt;
import org.eclipse.persistence.jaxb.JAXBContextProperties;&lt;br /&gt;
import org.eclipse.persistence.jaxb.xmlmodel.ObjectFactory;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
public class TestUpsideRESTAPI {&lt;br /&gt;
    &lt;br /&gt;
    public static final String APIEndPoint = &amp;quot;https://secureapi.upsidewireless.com&amp;quot;; // or &amp;quot;http://api.upsidewireless.com&amp;quot;&lt;br /&gt;
    public static final String APICredential_Token =&amp;quot;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;quot;;&lt;br /&gt;
    public static final String APICredential_Signature = &amp;quot;xxxxxxxxfyqQx95Gxxxxxxxx&amp;quot;;&lt;br /&gt;
    &lt;br /&gt;
    private static String SMSMessageUrl = String.format(&amp;quot;%s/RESTv1/%s/Message&amp;quot;, APIEndPoint, APICredential_Token);&lt;br /&gt;
&lt;br /&gt;
    public static void main(String[] argv) throws Exception {&lt;br /&gt;
        HttpURLConnection connection = null;&lt;br /&gt;
        boolean acceptJSON = false;&lt;br /&gt;
        &lt;br /&gt;
        System.out.println(&amp;quot;SMS Message URL: &amp;quot; + SMSMessageUrl + &amp;quot;\n&amp;quot;);&lt;br /&gt;
        &lt;br /&gt;
        try {&lt;br /&gt;
            URL smsMessageUrl = new URL(SMSMessageUrl);&lt;br /&gt;
            connection = (HttpURLConnection)smsMessageUrl.openConnection();&lt;br /&gt;
&lt;br /&gt;
            connection.setRequestMethod(&amp;quot;POST&amp;quot;);&lt;br /&gt;
            connection.setRequestProperty(&amp;quot;Content-Type&amp;quot;, &amp;quot;application/x-www-form-urlencoded&amp;quot;);&lt;br /&gt;
            connection.setRequestProperty(&amp;quot;Accept&amp;quot;, acceptJSON ? &amp;quot;application/json&amp;quot; : &amp;quot;application/xml&amp;quot;);&lt;br /&gt;
            connection.setRequestProperty(&amp;quot;User-Agent&amp;quot;, &amp;quot;UpsideJavaAgent&amp;quot;);&lt;br /&gt;
            connection.setConnectTimeout(100 * 1000); // 100 seconds&lt;br /&gt;
            connection.setReadTimeout(300 * 1000); // 300 seconds&lt;br /&gt;
            connection.setDoOutput(true);&lt;br /&gt;
            &lt;br /&gt;
            String smsPostData = &amp;quot;signature=%s&amp;quot;;&lt;br /&gt;
            smsPostData += &amp;quot;&amp;amp;type=%s&amp;quot;;&lt;br /&gt;
            smsPostData += &amp;quot;&amp;amp;message=%s&amp;quot;;&lt;br /&gt;
            smsPostData += &amp;quot;&amp;amp;recipient=%s&amp;quot;;&lt;br /&gt;
            smsPostData += &amp;quot;&amp;amp;encoding=%s&amp;quot;;&lt;br /&gt;
            &lt;br /&gt;
            String type = &amp;quot;sms&amp;quot;; // see type list on wiki&lt;br /&gt;
            String message = &amp;quot;test sms message&amp;quot;;&lt;br /&gt;
            String recipient = &amp;quot;16047891236&amp;quot;; // number in E.164 format&lt;br /&gt;
            String encoding = &amp;quot;7&amp;quot;; // 7, 8 or 16&lt;br /&gt;
            &lt;br /&gt;
            message = URLEncoder.encode(message, &amp;quot;UTF-8&amp;quot;);&lt;br /&gt;
            smsPostData = String.format(smsPostData, APICredential_Signature, type, message, recipient, encoding);&lt;br /&gt;
            System.out.println(&amp;quot;Post Data: &amp;quot; + smsPostData + &amp;quot;\n&amp;quot;);&lt;br /&gt;
            &lt;br /&gt;
            PrintWriter pw = new PrintWriter(connection.getOutputStream());&lt;br /&gt;
            pw.println(smsPostData);&lt;br /&gt;
            pw.close();&lt;br /&gt;
&lt;br /&gt;
            InputStream input = null;&lt;br /&gt;
            try {&lt;br /&gt;
                input = connection.getInputStream();&lt;br /&gt;
            } catch (Exception e) {&lt;br /&gt;
                input = connection.getErrorStream();&lt;br /&gt;
            }&lt;br /&gt;
            StringBuffer sbResponse = new StringBuffer(1024);&lt;br /&gt;
            BufferedReader reader = new BufferedReader(new InputStreamReader(input));&lt;br /&gt;
            String inputLine = null;&lt;br /&gt;
            while ((inputLine = reader.readLine()) != null) {&lt;br /&gt;
                sbResponse.append(inputLine);&lt;br /&gt;
            }&lt;br /&gt;
            reader.close();&lt;br /&gt;
            &lt;br /&gt;
            String responseString = sbResponse.toString();&lt;br /&gt;
            System.out.println(&amp;quot;HTTP Response: &amp;quot; + responseString + &amp;quot;\n&amp;quot;);&lt;br /&gt;
            &lt;br /&gt;
            RestResponse restResponse = null;&lt;br /&gt;
            if (acceptJSON) {&lt;br /&gt;
                Map&amp;lt;String, Object&amp;gt; properties = new HashMap&amp;lt;String, Object&amp;gt;(2);&lt;br /&gt;
                properties.put(JAXBContextProperties.MEDIA_TYPE, &amp;quot;application/json&amp;quot;);&lt;br /&gt;
                properties.put(JAXBContextProperties.JSON_INCLUDE_ROOT, false);&lt;br /&gt;
                JAXBContext jaxbContext = JAXBContext.newInstance(new Class[] {RestResponse.class, ObjectFactory.class}, properties);&lt;br /&gt;
                Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();&lt;br /&gt;
                StringReader sr = new StringReader(responseString);&lt;br /&gt;
               StreamSource json = new StreamSource(sr);&lt;br /&gt;
                restResponse = unmarshaller.unmarshal(json, RestResponse.class).getValue();&lt;br /&gt;
                &lt;br /&gt;
                // or use your favourite method to parse JSON object&lt;br /&gt;
            } else {&lt;br /&gt;
                JAXBContext jaxbContext = JAXBContext.newInstance(RestResponse.class);&lt;br /&gt;
                Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();&lt;br /&gt;
                StringReader sr = new StringReader(responseString);&lt;br /&gt;
                restResponse = (RestResponse) unmarshaller.unmarshal(sr);&lt;br /&gt;
                &lt;br /&gt;
                // or use your favourite method to parse XML object&lt;br /&gt;
            }&lt;br /&gt;
            &lt;br /&gt;
            if (restResponse != null)&lt;br /&gt;
            {&lt;br /&gt;
                System.out.println(&amp;quot;Rest Response - HasException: &amp;quot; + restResponse.isHasException());&lt;br /&gt;
                System.out.println(&amp;quot;Rest Response - Token: &amp;quot; + restResponse.getToken());&lt;br /&gt;
                if (restResponse.isHasException())&lt;br /&gt;
                {&lt;br /&gt;
                    System.out.println(&amp;quot;Rest Response - RestException.ErrorCode: &amp;quot; + restResponse.getRestException().getErrorCode());&lt;br /&gt;
                    System.out.println(&amp;quot;Rest Response - RestException.Message: &amp;quot; + restResponse.getRestException().getMessage());&lt;br /&gt;
                    if (restResponse.getRestException().getStatus() != null)&lt;br /&gt;
                        System.out.println(&amp;quot;Rest Response - RestException.Status: &amp;quot; + restResponse.getRestException().getStatus());&lt;br /&gt;
                }&lt;br /&gt;
                else&lt;br /&gt;
                {&lt;br /&gt;
                    System.out.println(&amp;quot;Rest Response - SMSMessage.Status: &amp;quot; + restResponse.getSMSMessage().getStatus());&lt;br /&gt;
                    System.out.println(&amp;quot;Rest Response - SMSMessage.Recipient: &amp;quot; + restResponse.getSMSMessage().getRecipient());&lt;br /&gt;
                    System.out.println(&amp;quot;Rest Response - SMSMessage.Body: &amp;quot; + restResponse.getSMSMessage().getBody());&lt;br /&gt;
                    System.out.println(&amp;quot;Rest Response - SMSMessage.Type: &amp;quot; + restResponse.getSMSMessage().getType());&lt;br /&gt;
                    System.out.println(&amp;quot;Rest Response - SMSMessage.TrackingId: &amp;quot; + restResponse.getSMSMessage().getTrackingId());&lt;br /&gt;
                    if (&amp;quot;REJECTED&amp;quot;.equals(restResponse.getSMSMessage().getStatus()))&lt;br /&gt;
                        System.out.println(&amp;quot;Rest Response - SMSMessage.RejectReason: &amp;quot; + restResponse.getSMSMessage().getRejectReason());&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                System.out.println(&amp;quot;Can't get rest response object&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
            &lt;br /&gt;
        } catch (Exception e) {&lt;br /&gt;
            System.out.println(&amp;quot;Error in calling REST API - &amp;quot; + e.getMessage());&lt;br /&gt;
            e.printStackTrace();&lt;br /&gt;
        } finally {&lt;br /&gt;
            if (connection != null) {&lt;br /&gt;
                connection.disconnect();&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@XmlRootElement(name=&amp;quot;RestResponse&amp;quot;)&lt;br /&gt;
@XmlAccessorType(XmlAccessType.FIELD)&lt;br /&gt;
class RestResponse&lt;br /&gt;
{&lt;br /&gt;
    @XmlElement(name = &amp;quot;HasException&amp;quot;)&lt;br /&gt;
    private boolean HasException;&lt;br /&gt;
    @XmlElement(name = &amp;quot;Token&amp;quot;)&lt;br /&gt;
    private String Token;&lt;br /&gt;
&lt;br /&gt;
    @XmlElement(name = &amp;quot;SMSMessage&amp;quot;)&lt;br /&gt;
    private SMSMessage SMSMessage;&lt;br /&gt;
    @XmlElement(name = &amp;quot;RestException&amp;quot;)&lt;br /&gt;
    private RestException RestException;&lt;br /&gt;
    &lt;br /&gt;
    public boolean isHasException() {&lt;br /&gt;
        return HasException;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void setHasException(boolean hasException) {&lt;br /&gt;
        HasException = hasException;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public String getToken() {&lt;br /&gt;
        return Token;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public void setToken(String token) {&lt;br /&gt;
        Token = token;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public SMSMessage getSMSMessage() {&lt;br /&gt;
        return SMSMessage;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public void setSMSMessage(SMSMessage sMSMessage) {&lt;br /&gt;
        SMSMessage = sMSMessage;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public RestException getRestException() {&lt;br /&gt;
        return RestException;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public void setRestException(RestException restException) {&lt;br /&gt;
        RestException = restException;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@XmlAccessorType(XmlAccessType.FIELD)&lt;br /&gt;
class SMSMessage&lt;br /&gt;
{&lt;br /&gt;
    @XmlElement(name = &amp;quot;Status&amp;quot;)&lt;br /&gt;
    private String Status;&lt;br /&gt;
    @XmlElement(name = &amp;quot;Recipient&amp;quot;)&lt;br /&gt;
    private String Recipient;&lt;br /&gt;
    @XmlElement(name = &amp;quot;Body&amp;quot;)&lt;br /&gt;
    private String Body;&lt;br /&gt;
    @XmlElement(name = &amp;quot;Type&amp;quot;)&lt;br /&gt;
    private String Type;&lt;br /&gt;
    @XmlElement(name = &amp;quot;TrackingId&amp;quot;)&lt;br /&gt;
    private String TrackingId;&lt;br /&gt;
    @XmlElement(name = &amp;quot;RejectReason&amp;quot;)&lt;br /&gt;
    private String RejectReason;&lt;br /&gt;
    &lt;br /&gt;
    public String getStatus() {&lt;br /&gt;
        return Status;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void setStatus(String status) {&lt;br /&gt;
        Status = status;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public String getRecipient() {&lt;br /&gt;
        return Recipient;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public void setRecipient(String recipient) {&lt;br /&gt;
        Recipient = recipient;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public String getBody() {&lt;br /&gt;
        return Body;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public void setBody(String body) {&lt;br /&gt;
        Body = body;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public String getType() {&lt;br /&gt;
        return Type;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public void setType(String type) {&lt;br /&gt;
        Type = type;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public String getTrackingId() {&lt;br /&gt;
        return TrackingId;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public void setTrackingId(String trackingId) {&lt;br /&gt;
        TrackingId = trackingId;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public String getRejectReason() {&lt;br /&gt;
        return RejectReason;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public void setRejectReason(String rejectReason) {&lt;br /&gt;
        RejectReason = rejectReason;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@XmlAccessorType(XmlAccessType.FIELD)&lt;br /&gt;
class RestException&lt;br /&gt;
{&lt;br /&gt;
    @XmlElement(name = &amp;quot;ErrorCode&amp;quot;)&lt;br /&gt;
    private int ErrorCode;&lt;br /&gt;
    @XmlElement(name = &amp;quot;Message&amp;quot;)&lt;br /&gt;
    private String Message;&lt;br /&gt;
    @XmlElement(name = &amp;quot;Status&amp;quot;)&lt;br /&gt;
    private String Status;&lt;br /&gt;
    &lt;br /&gt;
    public int getErrorCode() {&lt;br /&gt;
        return ErrorCode;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void setErrorCode(int errorCode) {&lt;br /&gt;
        ErrorCode = errorCode;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public String getMessage() {&lt;br /&gt;
        return Message;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public void setMessage(String message) {&lt;br /&gt;
        Message = message;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public String getStatus() {&lt;br /&gt;
        return Status;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public void setStatus(String status) {&lt;br /&gt;
        Status = status;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Bzurkovic</name></author>	</entry>

	<entry>
		<id>http://docs.upsidewireless.com/index.php?title=Java_Example</id>
		<title>Java Example</title>
		<link rel="alternate" type="text/html" href="http://docs.upsidewireless.com/index.php?title=Java_Example"/>
				<updated>2015-02-03T01:02:38Z</updated>
		
		<summary type="html">&lt;p&gt;Bzurkovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Below is sample code for Java programmers. You are welcome to cut+paste this sample into your application, however, keep in mind that depending on your environment, some changes may be required. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
import java.io.BufferedReader;&lt;br /&gt;
&lt;br /&gt;
import java.io.InputStream;&lt;br /&gt;
&lt;br /&gt;
import java.io.InputStreamReader;&lt;br /&gt;
&lt;br /&gt;
import java.io.PrintWriter;&lt;br /&gt;
&lt;br /&gt;
import java.io.StringReader;&lt;br /&gt;
&lt;br /&gt;
import java.net.HttpURLConnection;&lt;br /&gt;
&lt;br /&gt;
import java.net.URL;&lt;br /&gt;
&lt;br /&gt;
import java.net.URLEncoder;&lt;br /&gt;
&lt;br /&gt;
import java.util.HashMap;&lt;br /&gt;
&lt;br /&gt;
import java.util.Map;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
import javax.xml.bind.JAXBContext;&lt;br /&gt;
&lt;br /&gt;
import javax.xml.bind.Unmarshaller;&lt;br /&gt;
&lt;br /&gt;
import javax.xml.bind.annotation.XmlAccessType;&lt;br /&gt;
&lt;br /&gt;
import javax.xml.bind.annotation.XmlAccessorType;&lt;br /&gt;
&lt;br /&gt;
import javax.xml.bind.annotation.XmlElement;&lt;br /&gt;
&lt;br /&gt;
import javax.xml.bind.annotation.XmlRootElement;&lt;br /&gt;
&lt;br /&gt;
import javax.xml.transform.stream.StreamSource;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
import org.eclipse.persistence.jaxb.JAXBContextProperties;&lt;br /&gt;
&lt;br /&gt;
import org.eclipse.persistence.jaxb.xmlmodel.ObjectFactory;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
public class TestUpsideRESTAPI {&lt;br /&gt;
    &lt;br /&gt;
    public static final String APIEndPoint = &amp;quot;https://secureapi.upsidewireless.com&amp;quot;; // or &amp;quot;http://api.upsidewireless.com&amp;quot;&lt;br /&gt;
    public static final String APICredential_Token =&amp;quot;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;quot;;&lt;br /&gt;
    public static final String APICredential_Signature = &amp;quot;xxxxxxxxfyqQx95Gxxxxxxxx&amp;quot;;&lt;br /&gt;
    &lt;br /&gt;
    private static String SMSMessageUrl = String.format(&amp;quot;%s/RESTv1/%s/Message&amp;quot;, APIEndPoint, APICredential_Token);&lt;br /&gt;
&lt;br /&gt;
    public static void main(String[] argv) throws Exception {&lt;br /&gt;
        HttpURLConnection connection = null;&lt;br /&gt;
        boolean acceptJSON = false;&lt;br /&gt;
        &lt;br /&gt;
        System.out.println(&amp;quot;SMS Message URL: &amp;quot; + SMSMessageUrl + &amp;quot;\n&amp;quot;);&lt;br /&gt;
        &lt;br /&gt;
        try {&lt;br /&gt;
            URL smsMessageUrl = new URL(SMSMessageUrl);&lt;br /&gt;
            connection = (HttpURLConnection)smsMessageUrl.openConnection();&lt;br /&gt;
&lt;br /&gt;
            connection.setRequestMethod(&amp;quot;POST&amp;quot;);&lt;br /&gt;
            connection.setRequestProperty(&amp;quot;Content-Type&amp;quot;, &amp;quot;application/x-www-form-urlencoded&amp;quot;);&lt;br /&gt;
            connection.setRequestProperty(&amp;quot;Accept&amp;quot;, acceptJSON ? &amp;quot;application/json&amp;quot; : &amp;quot;application/xml&amp;quot;);&lt;br /&gt;
            connection.setRequestProperty(&amp;quot;User-Agent&amp;quot;, &amp;quot;UpsideJavaAgent&amp;quot;);&lt;br /&gt;
            connection.setConnectTimeout(100 * 1000); // 100 seconds&lt;br /&gt;
            connection.setReadTimeout(300 * 1000); // 300 seconds&lt;br /&gt;
            connection.setDoOutput(true);&lt;br /&gt;
            &lt;br /&gt;
            String smsPostData = &amp;quot;signature=%s&amp;quot;;&lt;br /&gt;
            smsPostData += &amp;quot;&amp;amp;type=%s&amp;quot;;&lt;br /&gt;
            smsPostData += &amp;quot;&amp;amp;message=%s&amp;quot;;&lt;br /&gt;
            smsPostData += &amp;quot;&amp;amp;recipient=%s&amp;quot;;&lt;br /&gt;
            smsPostData += &amp;quot;&amp;amp;encoding=%s&amp;quot;;&lt;br /&gt;
            &lt;br /&gt;
            String type = &amp;quot;sms&amp;quot;; // see type list on wiki&lt;br /&gt;
            String message = &amp;quot;test sms message&amp;quot;;&lt;br /&gt;
            String recipient = &amp;quot;16047891236&amp;quot;; // number in E.164 format&lt;br /&gt;
            String encoding = &amp;quot;7&amp;quot;; // 7, 8 or 16&lt;br /&gt;
            &lt;br /&gt;
            message = URLEncoder.encode(message, &amp;quot;UTF-8&amp;quot;);&lt;br /&gt;
            smsPostData = String.format(smsPostData, APICredential_Signature, type, message, recipient, encoding);&lt;br /&gt;
            System.out.println(&amp;quot;Post Data: &amp;quot; + smsPostData + &amp;quot;\n&amp;quot;);&lt;br /&gt;
            &lt;br /&gt;
            PrintWriter pw = new PrintWriter(connection.getOutputStream());&lt;br /&gt;
            pw.println(smsPostData);&lt;br /&gt;
            pw.close();&lt;br /&gt;
&lt;br /&gt;
            InputStream input = null;&lt;br /&gt;
            try {&lt;br /&gt;
                input = connection.getInputStream();&lt;br /&gt;
            } catch (Exception e) {&lt;br /&gt;
                input = connection.getErrorStream();&lt;br /&gt;
            }&lt;br /&gt;
            StringBuffer sbResponse = new StringBuffer(1024);&lt;br /&gt;
            BufferedReader reader = new BufferedReader(new InputStreamReader(input));&lt;br /&gt;
            String inputLine = null;&lt;br /&gt;
            while ((inputLine = reader.readLine()) != null) {&lt;br /&gt;
                sbResponse.append(inputLine);&lt;br /&gt;
            }&lt;br /&gt;
            reader.close();&lt;br /&gt;
            &lt;br /&gt;
            String responseString = sbResponse.toString();&lt;br /&gt;
            System.out.println(&amp;quot;HTTP Response: &amp;quot; + responseString + &amp;quot;\n&amp;quot;);&lt;br /&gt;
            &lt;br /&gt;
            RestResponse restResponse = null;&lt;br /&gt;
            if (acceptJSON) {&lt;br /&gt;
                Map&amp;lt;String, Object&amp;gt; properties = new HashMap&amp;lt;String, Object&amp;gt;(2);&lt;br /&gt;
                properties.put(JAXBContextProperties.MEDIA_TYPE, &amp;quot;application/json&amp;quot;);&lt;br /&gt;
                properties.put(JAXBContextProperties.JSON_INCLUDE_ROOT, false);&lt;br /&gt;
                JAXBContext jaxbContext = JAXBContext.newInstance(new Class[] {RestResponse.class, ObjectFactory.class}, properties);&lt;br /&gt;
                Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();&lt;br /&gt;
                StringReader sr = new StringReader(responseString);&lt;br /&gt;
               StreamSource json = new StreamSource(sr);&lt;br /&gt;
                restResponse = unmarshaller.unmarshal(json, RestResponse.class).getValue();&lt;br /&gt;
                &lt;br /&gt;
                // or use your favourite method to parse JSON object&lt;br /&gt;
            } else {&lt;br /&gt;
                JAXBContext jaxbContext = JAXBContext.newInstance(RestResponse.class);&lt;br /&gt;
                Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();&lt;br /&gt;
                StringReader sr = new StringReader(responseString);&lt;br /&gt;
                restResponse = (RestResponse) unmarshaller.unmarshal(sr);&lt;br /&gt;
                &lt;br /&gt;
                // or use your favourite method to parse XML object&lt;br /&gt;
            }&lt;br /&gt;
            &lt;br /&gt;
            if (restResponse != null)&lt;br /&gt;
            {&lt;br /&gt;
                System.out.println(&amp;quot;Rest Response - HasException: &amp;quot; + restResponse.isHasException());&lt;br /&gt;
                System.out.println(&amp;quot;Rest Response - Token: &amp;quot; + restResponse.getToken());&lt;br /&gt;
                if (restResponse.isHasException())&lt;br /&gt;
                {&lt;br /&gt;
                    System.out.println(&amp;quot;Rest Response - RestException.ErrorCode: &amp;quot; + restResponse.getRestException().getErrorCode());&lt;br /&gt;
                    System.out.println(&amp;quot;Rest Response - RestException.Message: &amp;quot; + restResponse.getRestException().getMessage());&lt;br /&gt;
                    if (restResponse.getRestException().getStatus() != null)&lt;br /&gt;
                        System.out.println(&amp;quot;Rest Response - RestException.Status: &amp;quot; + restResponse.getRestException().getStatus());&lt;br /&gt;
                }&lt;br /&gt;
                else&lt;br /&gt;
                {&lt;br /&gt;
                    System.out.println(&amp;quot;Rest Response - SMSMessage.Status: &amp;quot; + restResponse.getSMSMessage().getStatus());&lt;br /&gt;
                    System.out.println(&amp;quot;Rest Response - SMSMessage.Recipient: &amp;quot; + restResponse.getSMSMessage().getRecipient());&lt;br /&gt;
                    System.out.println(&amp;quot;Rest Response - SMSMessage.Body: &amp;quot; + restResponse.getSMSMessage().getBody());&lt;br /&gt;
                    System.out.println(&amp;quot;Rest Response - SMSMessage.Type: &amp;quot; + restResponse.getSMSMessage().getType());&lt;br /&gt;
                    System.out.println(&amp;quot;Rest Response - SMSMessage.TrackingId: &amp;quot; + restResponse.getSMSMessage().getTrackingId());&lt;br /&gt;
                    if (&amp;quot;REJECTED&amp;quot;.equals(restResponse.getSMSMessage().getStatus()))&lt;br /&gt;
                        System.out.println(&amp;quot;Rest Response - SMSMessage.RejectReason: &amp;quot; + restResponse.getSMSMessage().getRejectReason());&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                System.out.println(&amp;quot;Can't get rest response object&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
            &lt;br /&gt;
        } catch (Exception e) {&lt;br /&gt;
            System.out.println(&amp;quot;Error in calling REST API - &amp;quot; + e.getMessage());&lt;br /&gt;
            e.printStackTrace();&lt;br /&gt;
        } finally {&lt;br /&gt;
            if (connection != null) {&lt;br /&gt;
                connection.disconnect();&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@XmlRootElement(name=&amp;quot;RestResponse&amp;quot;)&lt;br /&gt;
@XmlAccessorType(XmlAccessType.FIELD)&lt;br /&gt;
class RestResponse&lt;br /&gt;
{&lt;br /&gt;
    @XmlElement(name = &amp;quot;HasException&amp;quot;)&lt;br /&gt;
    private boolean HasException;&lt;br /&gt;
    @XmlElement(name = &amp;quot;Token&amp;quot;)&lt;br /&gt;
    private String Token;&lt;br /&gt;
&lt;br /&gt;
    @XmlElement(name = &amp;quot;SMSMessage&amp;quot;)&lt;br /&gt;
    private SMSMessage SMSMessage;&lt;br /&gt;
    @XmlElement(name = &amp;quot;RestException&amp;quot;)&lt;br /&gt;
    private RestException RestException;&lt;br /&gt;
    &lt;br /&gt;
    public boolean isHasException() {&lt;br /&gt;
        return HasException;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void setHasException(boolean hasException) {&lt;br /&gt;
        HasException = hasException;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public String getToken() {&lt;br /&gt;
        return Token;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public void setToken(String token) {&lt;br /&gt;
        Token = token;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public SMSMessage getSMSMessage() {&lt;br /&gt;
        return SMSMessage;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public void setSMSMessage(SMSMessage sMSMessage) {&lt;br /&gt;
        SMSMessage = sMSMessage;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public RestException getRestException() {&lt;br /&gt;
        return RestException;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public void setRestException(RestException restException) {&lt;br /&gt;
        RestException = restException;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@XmlAccessorType(XmlAccessType.FIELD)&lt;br /&gt;
class SMSMessage&lt;br /&gt;
{&lt;br /&gt;
    @XmlElement(name = &amp;quot;Status&amp;quot;)&lt;br /&gt;
    private String Status;&lt;br /&gt;
    @XmlElement(name = &amp;quot;Recipient&amp;quot;)&lt;br /&gt;
    private String Recipient;&lt;br /&gt;
    @XmlElement(name = &amp;quot;Body&amp;quot;)&lt;br /&gt;
    private String Body;&lt;br /&gt;
    @XmlElement(name = &amp;quot;Type&amp;quot;)&lt;br /&gt;
    private String Type;&lt;br /&gt;
    @XmlElement(name = &amp;quot;TrackingId&amp;quot;)&lt;br /&gt;
    private String TrackingId;&lt;br /&gt;
    @XmlElement(name = &amp;quot;RejectReason&amp;quot;)&lt;br /&gt;
    private String RejectReason;&lt;br /&gt;
    &lt;br /&gt;
    public String getStatus() {&lt;br /&gt;
        return Status;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void setStatus(String status) {&lt;br /&gt;
        Status = status;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public String getRecipient() {&lt;br /&gt;
        return Recipient;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public void setRecipient(String recipient) {&lt;br /&gt;
        Recipient = recipient;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public String getBody() {&lt;br /&gt;
        return Body;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public void setBody(String body) {&lt;br /&gt;
        Body = body;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public String getType() {&lt;br /&gt;
        return Type;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public void setType(String type) {&lt;br /&gt;
        Type = type;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public String getTrackingId() {&lt;br /&gt;
        return TrackingId;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public void setTrackingId(String trackingId) {&lt;br /&gt;
        TrackingId = trackingId;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public String getRejectReason() {&lt;br /&gt;
        return RejectReason;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public void setRejectReason(String rejectReason) {&lt;br /&gt;
        RejectReason = rejectReason;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@XmlAccessorType(XmlAccessType.FIELD)&lt;br /&gt;
class RestException&lt;br /&gt;
{&lt;br /&gt;
    @XmlElement(name = &amp;quot;ErrorCode&amp;quot;)&lt;br /&gt;
    private int ErrorCode;&lt;br /&gt;
    @XmlElement(name = &amp;quot;Message&amp;quot;)&lt;br /&gt;
    private String Message;&lt;br /&gt;
    @XmlElement(name = &amp;quot;Status&amp;quot;)&lt;br /&gt;
    private String Status;&lt;br /&gt;
    &lt;br /&gt;
    public int getErrorCode() {&lt;br /&gt;
        return ErrorCode;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void setErrorCode(int errorCode) {&lt;br /&gt;
        ErrorCode = errorCode;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public String getMessage() {&lt;br /&gt;
        return Message;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public void setMessage(String message) {&lt;br /&gt;
        Message = message;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public String getStatus() {&lt;br /&gt;
        return Status;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public void setStatus(String status) {&lt;br /&gt;
        Status = status;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Note: In order to run this sample, you need include MOXy library, as well as JAXB if no built-in JAXB in your JDK&lt;/div&gt;</summary>
		<author><name>Bzurkovic</name></author>	</entry>

	<entry>
		<id>http://docs.upsidewireless.com/index.php?title=Java_Example</id>
		<title>Java Example</title>
		<link rel="alternate" type="text/html" href="http://docs.upsidewireless.com/index.php?title=Java_Example"/>
				<updated>2015-02-03T01:01:48Z</updated>
		
		<summary type="html">&lt;p&gt;Bzurkovic: Created page with &amp;quot;import java.io.BufferedReader;  import java.io.InputStream;  import java.io.InputStreamReader;  import java.io.PrintWriter;  import java.io.StringReader;  import java.net.Http...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;import java.io.BufferedReader;&lt;br /&gt;
&lt;br /&gt;
import java.io.InputStream;&lt;br /&gt;
&lt;br /&gt;
import java.io.InputStreamReader;&lt;br /&gt;
&lt;br /&gt;
import java.io.PrintWriter;&lt;br /&gt;
&lt;br /&gt;
import java.io.StringReader;&lt;br /&gt;
&lt;br /&gt;
import java.net.HttpURLConnection;&lt;br /&gt;
&lt;br /&gt;
import java.net.URL;&lt;br /&gt;
&lt;br /&gt;
import java.net.URLEncoder;&lt;br /&gt;
&lt;br /&gt;
import java.util.HashMap;&lt;br /&gt;
&lt;br /&gt;
import java.util.Map;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
import javax.xml.bind.JAXBContext;&lt;br /&gt;
&lt;br /&gt;
import javax.xml.bind.Unmarshaller;&lt;br /&gt;
&lt;br /&gt;
import javax.xml.bind.annotation.XmlAccessType;&lt;br /&gt;
&lt;br /&gt;
import javax.xml.bind.annotation.XmlAccessorType;&lt;br /&gt;
&lt;br /&gt;
import javax.xml.bind.annotation.XmlElement;&lt;br /&gt;
&lt;br /&gt;
import javax.xml.bind.annotation.XmlRootElement;&lt;br /&gt;
&lt;br /&gt;
import javax.xml.transform.stream.StreamSource;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
import org.eclipse.persistence.jaxb.JAXBContextProperties;&lt;br /&gt;
&lt;br /&gt;
import org.eclipse.persistence.jaxb.xmlmodel.ObjectFactory;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
public class TestUpsideRESTAPI {&lt;br /&gt;
    &lt;br /&gt;
    public static final String APIEndPoint = &amp;quot;https://secureapi.upsidewireless.com&amp;quot;; // or &amp;quot;http://api.upsidewireless.com&amp;quot;&lt;br /&gt;
    public static final String APICredential_Token =&amp;quot;xxxxxxxx-8e4b-405b-998c-a580bf593b76&amp;quot;;&lt;br /&gt;
    public static final String APICredential_Signature = &amp;quot;xxxxxxxxfyqQx95Gxxxxxxxx&amp;quot;;&lt;br /&gt;
    &lt;br /&gt;
    private static String SMSMessageUrl = String.format(&amp;quot;%s/RESTv1/%s/Message&amp;quot;, APIEndPoint, APICredential_Token);&lt;br /&gt;
&lt;br /&gt;
    public static void main(String[] argv) throws Exception {&lt;br /&gt;
        HttpURLConnection connection = null;&lt;br /&gt;
        boolean acceptJSON = false;&lt;br /&gt;
        &lt;br /&gt;
        System.out.println(&amp;quot;SMS Message URL: &amp;quot; + SMSMessageUrl + &amp;quot;\n&amp;quot;);&lt;br /&gt;
        &lt;br /&gt;
        try {&lt;br /&gt;
            URL smsMessageUrl = new URL(SMSMessageUrl);&lt;br /&gt;
            connection = (HttpURLConnection)smsMessageUrl.openConnection();&lt;br /&gt;
&lt;br /&gt;
            connection.setRequestMethod(&amp;quot;POST&amp;quot;);&lt;br /&gt;
            connection.setRequestProperty(&amp;quot;Content-Type&amp;quot;, &amp;quot;application/x-www-form-urlencoded&amp;quot;);&lt;br /&gt;
            connection.setRequestProperty(&amp;quot;Accept&amp;quot;, acceptJSON ? &amp;quot;application/json&amp;quot; : &amp;quot;application/xml&amp;quot;);&lt;br /&gt;
            connection.setRequestProperty(&amp;quot;User-Agent&amp;quot;, &amp;quot;UpsideJavaAgent&amp;quot;);&lt;br /&gt;
            connection.setConnectTimeout(100 * 1000); // 100 seconds&lt;br /&gt;
            connection.setReadTimeout(300 * 1000); // 300 seconds&lt;br /&gt;
            connection.setDoOutput(true);&lt;br /&gt;
            &lt;br /&gt;
            String smsPostData = &amp;quot;signature=%s&amp;quot;;&lt;br /&gt;
            smsPostData += &amp;quot;&amp;amp;type=%s&amp;quot;;&lt;br /&gt;
            smsPostData += &amp;quot;&amp;amp;message=%s&amp;quot;;&lt;br /&gt;
            smsPostData += &amp;quot;&amp;amp;recipient=%s&amp;quot;;&lt;br /&gt;
            smsPostData += &amp;quot;&amp;amp;encoding=%s&amp;quot;;&lt;br /&gt;
            &lt;br /&gt;
            String type = &amp;quot;sms&amp;quot;; // see type list on wiki&lt;br /&gt;
            String message = &amp;quot;test sms message&amp;quot;;&lt;br /&gt;
            String recipient = &amp;quot;16047891236&amp;quot;; // number in E.164 format&lt;br /&gt;
            String encoding = &amp;quot;7&amp;quot;; // 7, 8 or 16&lt;br /&gt;
            &lt;br /&gt;
            message = URLEncoder.encode(message, &amp;quot;UTF-8&amp;quot;);&lt;br /&gt;
            smsPostData = String.format(smsPostData, APICredential_Signature, type, message, recipient, encoding);&lt;br /&gt;
            System.out.println(&amp;quot;Post Data: &amp;quot; + smsPostData + &amp;quot;\n&amp;quot;);&lt;br /&gt;
            &lt;br /&gt;
            PrintWriter pw = new PrintWriter(connection.getOutputStream());&lt;br /&gt;
            pw.println(smsPostData);&lt;br /&gt;
            pw.close();&lt;br /&gt;
&lt;br /&gt;
            InputStream input = null;&lt;br /&gt;
            try {&lt;br /&gt;
                input = connection.getInputStream();&lt;br /&gt;
            } catch (Exception e) {&lt;br /&gt;
                input = connection.getErrorStream();&lt;br /&gt;
            }&lt;br /&gt;
            StringBuffer sbResponse = new StringBuffer(1024);&lt;br /&gt;
            BufferedReader reader = new BufferedReader(new InputStreamReader(input));&lt;br /&gt;
            String inputLine = null;&lt;br /&gt;
            while ((inputLine = reader.readLine()) != null) {&lt;br /&gt;
                sbResponse.append(inputLine);&lt;br /&gt;
            }&lt;br /&gt;
            reader.close();&lt;br /&gt;
            &lt;br /&gt;
            String responseString = sbResponse.toString();&lt;br /&gt;
            System.out.println(&amp;quot;HTTP Response: &amp;quot; + responseString + &amp;quot;\n&amp;quot;);&lt;br /&gt;
            &lt;br /&gt;
            RestResponse restResponse = null;&lt;br /&gt;
            if (acceptJSON) {&lt;br /&gt;
                Map&amp;lt;String, Object&amp;gt; properties = new HashMap&amp;lt;String, Object&amp;gt;(2);&lt;br /&gt;
                properties.put(JAXBContextProperties.MEDIA_TYPE, &amp;quot;application/json&amp;quot;);&lt;br /&gt;
                properties.put(JAXBContextProperties.JSON_INCLUDE_ROOT, false);&lt;br /&gt;
                JAXBContext jaxbContext = JAXBContext.newInstance(new Class[] {RestResponse.class, ObjectFactory.class}, properties);&lt;br /&gt;
                Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();&lt;br /&gt;
                StringReader sr = new StringReader(responseString);&lt;br /&gt;
               StreamSource json = new StreamSource(sr);&lt;br /&gt;
                restResponse = unmarshaller.unmarshal(json, RestResponse.class).getValue();&lt;br /&gt;
                &lt;br /&gt;
                // or use your favourite method to parse JSON object&lt;br /&gt;
            } else {&lt;br /&gt;
                JAXBContext jaxbContext = JAXBContext.newInstance(RestResponse.class);&lt;br /&gt;
                Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();&lt;br /&gt;
                StringReader sr = new StringReader(responseString);&lt;br /&gt;
                restResponse = (RestResponse) unmarshaller.unmarshal(sr);&lt;br /&gt;
                &lt;br /&gt;
                // or use your favourite method to parse XML object&lt;br /&gt;
            }&lt;br /&gt;
            &lt;br /&gt;
            if (restResponse != null)&lt;br /&gt;
            {&lt;br /&gt;
                System.out.println(&amp;quot;Rest Response - HasException: &amp;quot; + restResponse.isHasException());&lt;br /&gt;
                System.out.println(&amp;quot;Rest Response - Token: &amp;quot; + restResponse.getToken());&lt;br /&gt;
                if (restResponse.isHasException())&lt;br /&gt;
                {&lt;br /&gt;
                    System.out.println(&amp;quot;Rest Response - RestException.ErrorCode: &amp;quot; + restResponse.getRestException().getErrorCode());&lt;br /&gt;
                    System.out.println(&amp;quot;Rest Response - RestException.Message: &amp;quot; + restResponse.getRestException().getMessage());&lt;br /&gt;
                    if (restResponse.getRestException().getStatus() != null)&lt;br /&gt;
                        System.out.println(&amp;quot;Rest Response - RestException.Status: &amp;quot; + restResponse.getRestException().getStatus());&lt;br /&gt;
                }&lt;br /&gt;
                else&lt;br /&gt;
                {&lt;br /&gt;
                    System.out.println(&amp;quot;Rest Response - SMSMessage.Status: &amp;quot; + restResponse.getSMSMessage().getStatus());&lt;br /&gt;
                    System.out.println(&amp;quot;Rest Response - SMSMessage.Recipient: &amp;quot; + restResponse.getSMSMessage().getRecipient());&lt;br /&gt;
                    System.out.println(&amp;quot;Rest Response - SMSMessage.Body: &amp;quot; + restResponse.getSMSMessage().getBody());&lt;br /&gt;
                    System.out.println(&amp;quot;Rest Response - SMSMessage.Type: &amp;quot; + restResponse.getSMSMessage().getType());&lt;br /&gt;
                    System.out.println(&amp;quot;Rest Response - SMSMessage.TrackingId: &amp;quot; + restResponse.getSMSMessage().getTrackingId());&lt;br /&gt;
                    if (&amp;quot;REJECTED&amp;quot;.equals(restResponse.getSMSMessage().getStatus()))&lt;br /&gt;
                        System.out.println(&amp;quot;Rest Response - SMSMessage.RejectReason: &amp;quot; + restResponse.getSMSMessage().getRejectReason());&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                System.out.println(&amp;quot;Can't get rest response object&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
            &lt;br /&gt;
        } catch (Exception e) {&lt;br /&gt;
            System.out.println(&amp;quot;Error in calling REST API - &amp;quot; + e.getMessage());&lt;br /&gt;
            e.printStackTrace();&lt;br /&gt;
        } finally {&lt;br /&gt;
            if (connection != null) {&lt;br /&gt;
                connection.disconnect();&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@XmlRootElement(name=&amp;quot;RestResponse&amp;quot;)&lt;br /&gt;
@XmlAccessorType(XmlAccessType.FIELD)&lt;br /&gt;
class RestResponse&lt;br /&gt;
{&lt;br /&gt;
    @XmlElement(name = &amp;quot;HasException&amp;quot;)&lt;br /&gt;
    private boolean HasException;&lt;br /&gt;
    @XmlElement(name = &amp;quot;Token&amp;quot;)&lt;br /&gt;
    private String Token;&lt;br /&gt;
&lt;br /&gt;
    @XmlElement(name = &amp;quot;SMSMessage&amp;quot;)&lt;br /&gt;
    private SMSMessage SMSMessage;&lt;br /&gt;
    @XmlElement(name = &amp;quot;RestException&amp;quot;)&lt;br /&gt;
    private RestException RestException;&lt;br /&gt;
    &lt;br /&gt;
    public boolean isHasException() {&lt;br /&gt;
        return HasException;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void setHasException(boolean hasException) {&lt;br /&gt;
        HasException = hasException;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public String getToken() {&lt;br /&gt;
        return Token;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public void setToken(String token) {&lt;br /&gt;
        Token = token;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public SMSMessage getSMSMessage() {&lt;br /&gt;
        return SMSMessage;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public void setSMSMessage(SMSMessage sMSMessage) {&lt;br /&gt;
        SMSMessage = sMSMessage;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public RestException getRestException() {&lt;br /&gt;
        return RestException;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public void setRestException(RestException restException) {&lt;br /&gt;
        RestException = restException;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@XmlAccessorType(XmlAccessType.FIELD)&lt;br /&gt;
class SMSMessage&lt;br /&gt;
{&lt;br /&gt;
    @XmlElement(name = &amp;quot;Status&amp;quot;)&lt;br /&gt;
    private String Status;&lt;br /&gt;
    @XmlElement(name = &amp;quot;Recipient&amp;quot;)&lt;br /&gt;
    private String Recipient;&lt;br /&gt;
    @XmlElement(name = &amp;quot;Body&amp;quot;)&lt;br /&gt;
    private String Body;&lt;br /&gt;
    @XmlElement(name = &amp;quot;Type&amp;quot;)&lt;br /&gt;
    private String Type;&lt;br /&gt;
    @XmlElement(name = &amp;quot;TrackingId&amp;quot;)&lt;br /&gt;
    private String TrackingId;&lt;br /&gt;
    @XmlElement(name = &amp;quot;RejectReason&amp;quot;)&lt;br /&gt;
    private String RejectReason;&lt;br /&gt;
    &lt;br /&gt;
    public String getStatus() {&lt;br /&gt;
        return Status;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void setStatus(String status) {&lt;br /&gt;
        Status = status;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public String getRecipient() {&lt;br /&gt;
        return Recipient;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public void setRecipient(String recipient) {&lt;br /&gt;
        Recipient = recipient;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public String getBody() {&lt;br /&gt;
        return Body;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public void setBody(String body) {&lt;br /&gt;
        Body = body;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public String getType() {&lt;br /&gt;
        return Type;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public void setType(String type) {&lt;br /&gt;
        Type = type;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public String getTrackingId() {&lt;br /&gt;
        return TrackingId;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public void setTrackingId(String trackingId) {&lt;br /&gt;
        TrackingId = trackingId;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public String getRejectReason() {&lt;br /&gt;
        return RejectReason;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public void setRejectReason(String rejectReason) {&lt;br /&gt;
        RejectReason = rejectReason;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@XmlAccessorType(XmlAccessType.FIELD)&lt;br /&gt;
class RestException&lt;br /&gt;
{&lt;br /&gt;
    @XmlElement(name = &amp;quot;ErrorCode&amp;quot;)&lt;br /&gt;
    private int ErrorCode;&lt;br /&gt;
    @XmlElement(name = &amp;quot;Message&amp;quot;)&lt;br /&gt;
    private String Message;&lt;br /&gt;
    @XmlElement(name = &amp;quot;Status&amp;quot;)&lt;br /&gt;
    private String Status;&lt;br /&gt;
    &lt;br /&gt;
    public int getErrorCode() {&lt;br /&gt;
        return ErrorCode;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public void setErrorCode(int errorCode) {&lt;br /&gt;
        ErrorCode = errorCode;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public String getMessage() {&lt;br /&gt;
        return Message;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public void setMessage(String message) {&lt;br /&gt;
        Message = message;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public String getStatus() {&lt;br /&gt;
        return Status;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public void setStatus(String status) {&lt;br /&gt;
        Status = status;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Note: In order to run this sample, you need include MOXy library, as well as JAXB if no built-in JAXB in your JDK&lt;/div&gt;</summary>
		<author><name>Bzurkovic</name></author>	</entry>

	<entry>
		<id>http://docs.upsidewireless.com/index.php?title=Send_REST</id>
		<title>Send REST</title>
		<link rel="alternate" type="text/html" href="http://docs.upsidewireless.com/index.php?title=Send_REST"/>
				<updated>2015-02-03T01:01:05Z</updated>
		
		<summary type="html">&lt;p&gt;Bzurkovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[C# Example]]&lt;br /&gt;
&lt;br /&gt;
[[Java Example]]&lt;/div&gt;</summary>
		<author><name>Bzurkovic</name></author>	</entry>

	<entry>
		<id>http://docs.upsidewireless.com/index.php?title=Send_REST</id>
		<title>Send REST</title>
		<link rel="alternate" type="text/html" href="http://docs.upsidewireless.com/index.php?title=Send_REST"/>
				<updated>2015-02-03T01:00:36Z</updated>
		
		<summary type="html">&lt;p&gt;Bzurkovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[C# Example]]&lt;br /&gt;
&lt;br /&gt;
 [[JavaExample | Java Example]]&lt;/div&gt;</summary>
		<author><name>Bzurkovic</name></author>	</entry>

	<entry>
		<id>http://docs.upsidewireless.com/index.php?title=Send_REST</id>
		<title>Send REST</title>
		<link rel="alternate" type="text/html" href="http://docs.upsidewireless.com/index.php?title=Send_REST"/>
				<updated>2015-02-03T01:00:20Z</updated>
		
		<summary type="html">&lt;p&gt;Bzurkovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[C# Example]]&lt;br /&gt;
&lt;br /&gt;
 [[Java Example | JavaExample]]&lt;/div&gt;</summary>
		<author><name>Bzurkovic</name></author>	</entry>

	<entry>
		<id>http://docs.upsidewireless.com/index.php?title=Send_REST</id>
		<title>Send REST</title>
		<link rel="alternate" type="text/html" href="http://docs.upsidewireless.com/index.php?title=Send_REST"/>
				<updated>2015-02-03T00:55:43Z</updated>
		
		<summary type="html">&lt;p&gt;Bzurkovic: Created page with &amp;quot;    C# Example&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[C# Example]]&lt;/div&gt;</summary>
		<author><name>Bzurkovic</name></author>	</entry>

	<entry>
		<id>http://docs.upsidewireless.com/index.php?title=APIs</id>
		<title>APIs</title>
		<link rel="alternate" type="text/html" href="http://docs.upsidewireless.com/index.php?title=APIs"/>
				<updated>2015-01-26T21:44:08Z</updated>
		
		<summary type="html">&lt;p&gt;Bzurkovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;EnterpriseSMS API offers simple and efficient method for connecting corporate applications to the global SMS networks without having to deal with telecom contracts, routing and complex messaging protocols. Upside runs a highly reliable, redundant, telecommunications platform called SideWinderSMS which connects to all global SMS networks. The EnterpriseSMS API attaches to this proprietary platform and exposes minimal set of functions needed to deliver your messages to any mobile phone on the Planet. Similarly, mobile originated messages (such as replies) can be delivered to your application using the same method. &lt;br /&gt;
&lt;br /&gt;
Your applications can take advantage of this common and well understood protocol to send and receive messages as per your business requirements. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to Start ==&lt;br /&gt;
To use the API you must have an account with Upside Wireless service and the account must be configured to allow API access. To get going&lt;br /&gt;
&lt;br /&gt;
* Click [http://reseller.upsidewireless.com/RegEditNonLogon.do here] to create a new account&lt;br /&gt;
* Proceed to add SMS capability to your application. &lt;br /&gt;
&lt;br /&gt;
We highly recommend that you first visit [http://api.upsidewireless.com/ EnterpriseSMS API home] and manually invoke the API. See an example [[Send Plain Example | here]]. This will help you quickly understand the requirements.&lt;br /&gt;
&lt;br /&gt;
== How to Send SMS Messages using SOAP ==&lt;br /&gt;
* [[MT HTTP | Introduction]]&lt;br /&gt;
* [[Authentication | Authentication]]&lt;br /&gt;
* Examples&lt;br /&gt;
** [[PHP Sending SMS | Send SMS using PHP]]&lt;br /&gt;
** [[Java Sending SMS via SOAP | Send SMS using Java]]&lt;br /&gt;
** [[CSharp Sending SMS | Send SMS using C#]]&lt;br /&gt;
** [[Phyton Sending SMS | Send SMS using Phyton]]&lt;br /&gt;
* [[Tips SOAP | FAQ - Tips for Sending SMS using SOAP]]&lt;br /&gt;
* [[Send_Plain_multiple | Sending Multiple SMS with one request]]&lt;br /&gt;
** [[Error codes for Send_Plain_Multiple]]&lt;br /&gt;
* [[Send HTTPS | Sending using HTTPS]]&lt;br /&gt;
* [[Send REST | Sending using REST]]&lt;br /&gt;
&lt;br /&gt;
== How to Process Incoming SMS Messages ==&lt;br /&gt;
* [[MOIntro | Introduction]]&lt;br /&gt;
* [[VirtualSMS | VirtualSMS]]&lt;br /&gt;
* Examples - Messages are Pushed to Your Server&lt;br /&gt;
** [[PHP Receiving SMS | Receive SMS using PHP]]&lt;br /&gt;
** [[Java Receiving SMS | Receive SMS using Java]]&lt;br /&gt;
** [[CSharp Receiving SMS | Receive SMS using C#]]&lt;br /&gt;
* Examples - Messages are Pulled by Your Application&lt;br /&gt;
**[[MO POP3 |POP3 ]] &lt;br /&gt;
**[[MO_SOAP |SOAP]] &lt;br /&gt;
&lt;br /&gt;
== Message Delivery Receipts ==&lt;br /&gt;
* [[DLRIntro | Introduction]]&lt;br /&gt;
* Examples - Messages are Pushed to Your Server&lt;br /&gt;
** [[DLRPost | Receive DLR Receipts using HTTP-POST]]&lt;br /&gt;
* Examples - Messages are Pulled by Your Application&lt;br /&gt;
**[[DLR_SOAP| Pull DLRs]] &lt;br /&gt;
*[[DLR_STATUS| List of Statuses ]] &lt;br /&gt;
&lt;br /&gt;
== SMPP 3.4 ==&lt;br /&gt;
Our API includes standard SMPP 3.4 protocol server. SMPP connection support TRANSCIEVER connections from compatible SMPP 3.4 clients with throughput of up to 50 SMS/second. This is the fastest connection method and fastest to implement as there is no custom development required. TRANSCIVER mode supports incoming SMS (MO), outgoing SMS (MT) and delivery notifications (DLR). To use SMPP connection please follow the steps below: &lt;br /&gt;
* Click [http://reseller.upsidewireless.com/RegEditNonLogon.do here] to create a new account and purchase a desired messaging plan&lt;br /&gt;
* Contact us and let us know your user name and IP address where your SMPP client is located&lt;br /&gt;
* We will setup your account and you can then start messaging&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Integration ERP Messaging Services ==&lt;br /&gt;
* [[ salesforce | Integration with SalesForce.com]]&lt;br /&gt;
* [[ zimbra | Integration with Zimbra ]]&lt;br /&gt;
&lt;br /&gt;
== Other ==&lt;br /&gt;
* [[ Carrier_codes | Carrier Codes]] (USA and Canada)&lt;br /&gt;
* [[ Tariff | Tariffs]] for Premium SMS&lt;br /&gt;
* Global [http://reseller.upsidewireless.com/networkList.do  Network Coverage List]&lt;br /&gt;
&lt;br /&gt;
* [[User Management]]&lt;br /&gt;
* [[Settings]]&lt;br /&gt;
* [[Country_codes | Country Codes]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to Send SMS Messages using SMTP ==&lt;br /&gt;
''This section discusses initiating SMS sending requests using SMTP interface (email to SMS). We recommend that you first review the SOAP method as it offers richer functionality and better security/authentication.''&lt;br /&gt;
&lt;br /&gt;
'''SMTP Interface''' - DEPRECATED&lt;br /&gt;
* [[MT SMTP | Introduction]]&lt;br /&gt;
** [[MT SMTP Auth]]&lt;br /&gt;
** [[MT Web Text]]&lt;br /&gt;
** [[MT IP Address]]&lt;br /&gt;
* Examples&lt;br /&gt;
** [[PHP Sending SMS via SMTP | PHP]]&lt;br /&gt;
** [[Java Sending SMS via SMTP | Java]]&lt;br /&gt;
** [[CSharp Sending SMS via SMTP | C#]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Main Page | back]]&lt;/div&gt;</summary>
		<author><name>Bzurkovic</name></author>	</entry>

	<entry>
		<id>http://docs.upsidewireless.com/index.php?title=Send_HTTPS</id>
		<title>Send HTTPS</title>
		<link rel="alternate" type="text/html" href="http://docs.upsidewireless.com/index.php?title=Send_HTTPS"/>
				<updated>2015-01-26T21:42:51Z</updated>
		
		<summary type="html">&lt;p&gt;Bzurkovic: /* Send SMS from your application using HTTPS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Send SMS from your application using HTTPS ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For quick implementation you can use HTTPS method to send SMS messages. To send, create a string similar to the one below and execute it from your application. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''https: // secureapi.upsidewireless.com/soap/SMS.asmx/Send_Plain?token=w222222-8e4b-405b-998c-a580bf593b76&amp;amp;signature=444444444/yvg6bwEHqBhlc&amp;amp;recipient=17785550767&amp;amp;message=Hello World&amp;amp;encoding=Seven'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Explanation of parameters&lt;br /&gt;
Token and signature are used for authentication. You need to obtain token and signature only once. Here is [http://api.upsidewireless.com/soap/Authentication.asmx?op=GetParameters  how]&lt;br /&gt;
&lt;br /&gt;
recipient - number to which you are sending the message in International format. For example, a US number would be 12125555555&lt;br /&gt;
&lt;br /&gt;
Message - text of message you want to send (max 160 characters)&lt;br /&gt;
&lt;br /&gt;
encoding: Use Seven for ASCII, Sixteen if you are sending UNICODE text (in this case max text length is 70 characters) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Result string will be similar to this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;SMSSendResult&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;isOk&amp;gt;true&amp;lt;/isOk&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;trackingId&amp;gt;MTID355136276238353223&amp;lt;/trackingId&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;number&amp;gt;17788580767&amp;lt;/number&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;convertedNumber&amp;gt;+17788580767&amp;lt;/convertedNumber&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;deferUntilOccursInThePast&amp;gt;false&amp;lt;/deferUntilOccursInThePast&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;messageIsEmpty&amp;gt;false&amp;lt;/messageIsEmpty&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tooManyMessages&amp;gt;false&amp;lt;/tooManyMessages&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;invalidCountryCode&amp;gt;false&amp;lt;/invalidCountryCode&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;isBlocked&amp;gt;false&amp;lt;/isBlocked&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;balanceIsZero&amp;gt;false&amp;lt;/balanceIsZero&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;invalidCarrierCode&amp;gt;false&amp;lt;/invalidCarrierCode&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/SMSSendResult&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bzurkovic</name></author>	</entry>

	<entry>
		<id>http://docs.upsidewireless.com/index.php?title=DLRPost</id>
		<title>DLRPost</title>
		<link rel="alternate" type="text/html" href="http://docs.upsidewireless.com/index.php?title=DLRPost"/>
				<updated>2015-01-13T21:35:20Z</updated>
		
		<summary type="html">&lt;p&gt;Bzurkovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== How to Get Message Delivery Confirmations Using HTTP-POST ==&lt;br /&gt;
&lt;br /&gt;
You need to implement HTTP-POST handler that will listen to incoming HTTP-PUSH from our service. This will look similar to:&lt;br /&gt;
&lt;br /&gt;
   name = your_username&lt;br /&gt;
   trackingid = MTID119946997360917165&lt;br /&gt;
   status = DELIVRD&lt;br /&gt;
   recipient = 12088580767&lt;br /&gt;
&lt;br /&gt;
For example, assuming that your application is at domain foo.com the call we make is&lt;br /&gt;
&lt;br /&gt;
http://foo.com?name=YOUR_USER_NAME&amp;amp;trackingid=MTID119946997360917165&amp;amp;status=SEE_BELOW&amp;amp;recipient=12088580767&lt;br /&gt;
&lt;br /&gt;
Note: https is also supported.&lt;br /&gt;
&lt;br /&gt;
[[DLR_STATUS| List of Statuses ]] &lt;br /&gt;
&lt;br /&gt;
When you send a message (using Send_Plain, for example)  you will receive MTID (message or tracking id). This is a unique number assigned to each message. You will need to store it. When you get incoming HTTP-PUSH, simply query your database to find matching tracking_id. When you find it, update status of message&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[DLRIntro | back]]&lt;/div&gt;</summary>
		<author><name>Bzurkovic</name></author>	</entry>

	<entry>
		<id>http://docs.upsidewireless.com/index.php?title=Carrier_codes</id>
		<title>Carrier codes</title>
		<link rel="alternate" type="text/html" href="http://docs.upsidewireless.com/index.php?title=Carrier_codes"/>
				<updated>2015-01-13T19:23:49Z</updated>
		
		<summary type="html">&lt;p&gt;Bzurkovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Carrier codes are needed when sending MT messages to US or Canadian telecom carriers in conjunction with a Short Code. The list below presents currently recognized codes that your application must pass as a parameter when requesting MT using EnterpriseSMS API:&lt;br /&gt;
&lt;br /&gt;
'''Canada'''&lt;br /&gt;
&lt;br /&gt;
* BELL (includes Solo Mobile) = 302651&lt;br /&gt;
* EASTLINK = 302270&lt;br /&gt;
* FIDO = 302370&lt;br /&gt;
* ROGERS  (includes Chatr)= 302720&lt;br /&gt;
* MTS = 302655&lt;br /&gt;
* MOBILICITY = 302320&lt;br /&gt;
* NB TEL = 302701&lt;br /&gt;
* QUEBECTEL = 302657&lt;br /&gt;
* VIDEOTRON = 302500&lt;br /&gt;
* SASK TEL = 302654&lt;br /&gt;
* TELUS (includes KOODO) = 302653&lt;br /&gt;
* VIRGIN =302001&lt;br /&gt;
* WIND MOBILE =302490&lt;br /&gt;
&lt;br /&gt;
'''USA'''&lt;br /&gt;
* AT&amp;amp;T = 310980&lt;br /&gt;
* Alaska Wireless = 310190&lt;br /&gt;
* ALLTEL = 310500&lt;br /&gt;
* CINCINNATI BELL = 310420&lt;br /&gt;
* CINGULAR = 310180&lt;br /&gt;
* CRICKET = 310016&lt;br /&gt;
* DOBSON = 310560&lt;br /&gt;
* NEXTEL = 316010&lt;br /&gt;
* SPRINT = 316110&lt;br /&gt;
* TMOBILE USA = 310660&lt;br /&gt;
* TESTING = 310014&lt;br /&gt;
* VERIZON = 310012&lt;br /&gt;
&lt;br /&gt;
Note: While all effort is made to keep the list up-to-date, changes in telecom ownership may invalidate this list. Please contact us for latest changes.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[APIs | back]]&lt;/div&gt;</summary>
		<author><name>Bzurkovic</name></author>	</entry>

	<entry>
		<id>http://docs.upsidewireless.com/index.php?title=APIs</id>
		<title>APIs</title>
		<link rel="alternate" type="text/html" href="http://docs.upsidewireless.com/index.php?title=APIs"/>
				<updated>2014-11-11T22:07:53Z</updated>
		
		<summary type="html">&lt;p&gt;Bzurkovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;EnterpriseSMS API offers simple and efficient method for connecting corporate applications to the global SMS networks without having to deal with telecom contracts, routing and complex messaging protocols. Upside runs a highly reliable, redundant, telecommunications platform called SideWinderSMS which connects to all global SMS networks. The EnterpriseSMS API attaches to this proprietary platform and exposes minimal set of functions needed to deliver your messages to any mobile phone on the Planet. Similarly, mobile originated messages (such as replies) can be delivered to your application using the same method. &lt;br /&gt;
&lt;br /&gt;
Your applications can take advantage of this common and well understood protocol to send and receive messages as per your business requirements. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to Start ==&lt;br /&gt;
To use the API you must have an account with Upside Wireless service and the account must be configured to allow API access. To get going&lt;br /&gt;
&lt;br /&gt;
* Click [http://reseller.upsidewireless.com/RegEditNonLogon.do here] to create a new account&lt;br /&gt;
* Proceed to add SMS capability to your application. &lt;br /&gt;
&lt;br /&gt;
We highly recommend that you first visit [http://api.upsidewireless.com/ EnterpriseSMS API home] and manually invoke the API. See an example [[Send Plain Example | here]]. This will help you quickly understand the requirements.&lt;br /&gt;
&lt;br /&gt;
== How to Send SMS Messages using SOAP ==&lt;br /&gt;
* [[MT HTTP | Introduction]]&lt;br /&gt;
* [[Authentication | Authentication]]&lt;br /&gt;
* Examples&lt;br /&gt;
** [[PHP Sending SMS | Send SMS using PHP]]&lt;br /&gt;
** [[Java Sending SMS via SOAP | Send SMS using Java]]&lt;br /&gt;
** [[CSharp Sending SMS | Send SMS using C#]]&lt;br /&gt;
** [[Phyton Sending SMS | Send SMS using Phyton]]&lt;br /&gt;
* [[Tips SOAP | FAQ - Tips for Sending SMS using SOAP]]&lt;br /&gt;
* [[Send_Plain_multiple | Sending Multiple SMS with one request]]&lt;br /&gt;
** [[Error codes for Send_Plain_Multiple]]&lt;br /&gt;
* [[Send HTTPS | Sending using HTTPS]]&lt;br /&gt;
&lt;br /&gt;
== How to Process Incoming SMS Messages ==&lt;br /&gt;
* [[MOIntro | Introduction]]&lt;br /&gt;
* [[VirtualSMS | VirtualSMS]]&lt;br /&gt;
* Examples - Messages are Pushed to Your Server&lt;br /&gt;
** [[PHP Receiving SMS | Receive SMS using PHP]]&lt;br /&gt;
** [[Java Receiving SMS | Receive SMS using Java]]&lt;br /&gt;
** [[CSharp Receiving SMS | Receive SMS using C#]]&lt;br /&gt;
* Examples - Messages are Pulled by Your Application&lt;br /&gt;
**[[MO POP3 |POP3 ]] &lt;br /&gt;
**[[MO_SOAP |SOAP]] &lt;br /&gt;
&lt;br /&gt;
== Message Delivery Receipts ==&lt;br /&gt;
* [[DLRIntro | Introduction]]&lt;br /&gt;
* Examples - Messages are Pushed to Your Server&lt;br /&gt;
** [[DLRPost | Receive DLR Receipts using HTTP-POST]]&lt;br /&gt;
* Examples - Messages are Pulled by Your Application&lt;br /&gt;
**[[DLR_SOAP| Pull DLRs]] &lt;br /&gt;
*[[DLR_STATUS| List of Statuses ]] &lt;br /&gt;
&lt;br /&gt;
== SMPP 3.4 ==&lt;br /&gt;
Our API includes standard SMPP 3.4 protocol server. SMPP connection support TRANSCIEVER connections from compatible SMPP 3.4 clients with throughput of up to 50 SMS/second. This is the fastest connection method and fastest to implement as there is no custom development required. TRANSCIVER mode supports incoming SMS (MO), outgoing SMS (MT) and delivery notifications (DLR). To use SMPP connection please follow the steps below: &lt;br /&gt;
* Click [http://reseller.upsidewireless.com/RegEditNonLogon.do here] to create a new account and purchase a desired messaging plan&lt;br /&gt;
* Contact us and let us know your user name and IP address where your SMPP client is located&lt;br /&gt;
* We will setup your account and you can then start messaging&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Integration ERP Messaging Services ==&lt;br /&gt;
* [[ salesforce | Integration with SalesForce.com]]&lt;br /&gt;
* [[ zimbra | Integration with Zimbra ]]&lt;br /&gt;
&lt;br /&gt;
== Other ==&lt;br /&gt;
* [[ Carrier_codes | Carrier Codes]] (USA and Canada)&lt;br /&gt;
* [[ Tariff | Tariffs]] for Premium SMS&lt;br /&gt;
* Global [http://reseller.upsidewireless.com/networkList.do  Network Coverage List]&lt;br /&gt;
&lt;br /&gt;
* [[User Management]]&lt;br /&gt;
* [[Settings]]&lt;br /&gt;
* [[Country_codes | Country Codes]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to Send SMS Messages using SMTP ==&lt;br /&gt;
''This section discusses initiating SMS sending requests using SMTP interface (email to SMS). We recommend that you first review the SOAP method as it offers richer functionality and better security/authentication.''&lt;br /&gt;
&lt;br /&gt;
'''SMTP Interface''' - DEPRECATED&lt;br /&gt;
* [[MT SMTP | Introduction]]&lt;br /&gt;
** [[MT SMTP Auth]]&lt;br /&gt;
** [[MT Web Text]]&lt;br /&gt;
** [[MT IP Address]]&lt;br /&gt;
* Examples&lt;br /&gt;
** [[PHP Sending SMS via SMTP | PHP]]&lt;br /&gt;
** [[Java Sending SMS via SMTP | Java]]&lt;br /&gt;
** [[CSharp Sending SMS via SMTP | C#]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Main Page | back]]&lt;/div&gt;</summary>
		<author><name>Bzurkovic</name></author>	</entry>

	<entry>
		<id>http://docs.upsidewireless.com/index.php?title=APIs</id>
		<title>APIs</title>
		<link rel="alternate" type="text/html" href="http://docs.upsidewireless.com/index.php?title=APIs"/>
				<updated>2014-11-11T22:07:01Z</updated>
		
		<summary type="html">&lt;p&gt;Bzurkovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;EnterpriseSMS API offers simple and efficient method for connecting corporate applications to the global SMS networks without having to deal with telecom contracts, routing and complex messaging protocols. Upside runs a highly reliable, redundant, telecommunications platform called SideWinderSMS which connects to all global SMS networks. The EnterpriseSMS API attaches to this proprietary platform and exposes minimal set of functions needed to deliver your messages to any mobile phone on the Planet. Similarly, mobile originated messages (such as replies) can be delivered to your application using the same method. &lt;br /&gt;
&lt;br /&gt;
Your applications can take advantage of this common and well understood protocol to send and receive messages as per your business requirements. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to Start ==&lt;br /&gt;
To use the API you must have an account with Upside Wireless service and the account must be configured to allow API access. To get going&lt;br /&gt;
&lt;br /&gt;
* Click [http://reseller.upsidewireless.com/RegEditNonLogon.do here] to create a new account&lt;br /&gt;
* Proceed to add SMS capability to your application. &lt;br /&gt;
&lt;br /&gt;
We highly recommend that you first visit [http://api.upsidewireless.com/ EnterpriseSMS API home] and manually invoke the API. See an example [[Send Plain Example | here]]. This will help you quickly understand the requirements.&lt;br /&gt;
&lt;br /&gt;
== How to Send SMS Messages using SOAP ==&lt;br /&gt;
* [[MT HTTP | Introduction]]&lt;br /&gt;
* [[Authentication | Authentication]]&lt;br /&gt;
* Examples&lt;br /&gt;
** [[PHP Sending SMS | Send SMS using PHP]]&lt;br /&gt;
** [[Java Sending SMS via SOAP | Send SMS using Java]]&lt;br /&gt;
** [[CSharp Sending SMS | Send SMS using C#]]&lt;br /&gt;
** [[Phyton Sending SMS | Send SMS using Phyton]]&lt;br /&gt;
* [[Tips SOAP | FAQ - Tips for Sending SMS using SOAP]]&lt;br /&gt;
* [[Send_Plain_multiple | Sending Multiple SMS with one request]]&lt;br /&gt;
** [[Error codes for Send_Plain_Multiple]]&lt;br /&gt;
* [[Send HTTPS | Sending using HTTPS]]&lt;br /&gt;
&lt;br /&gt;
== How to Process Incoming SMS Messages ==&lt;br /&gt;
* [[MOIntro | Introduction]]&lt;br /&gt;
* [[VirtualSMS | VirtualSMS]]&lt;br /&gt;
* Examples - Messages are Pushed to Your Server&lt;br /&gt;
** [[PHP Receiving SMS | Receive SMS using PHP]]&lt;br /&gt;
** [[Java Receiving SMS | Receive SMS using Java]]&lt;br /&gt;
** [[CSharp Receiving SMS | Receive SMS using C#]]&lt;br /&gt;
* Examples - Messages are Pulled by Your Application&lt;br /&gt;
**[[MO POP3 |POP3 ]] &lt;br /&gt;
**[[MO_SOAP |SOAP]] &lt;br /&gt;
&lt;br /&gt;
== Message Delivery Receipts ==&lt;br /&gt;
* [[DLRIntro | Introduction]]&lt;br /&gt;
* Examples - Messages are Pushed to Your Server&lt;br /&gt;
** [[DLRPost | Receive DLR Receipts using HTTP-POST]]&lt;br /&gt;
* Examples - Messages are Pulled by Your Application&lt;br /&gt;
**[[DLR_SOAP| Pull DLRs]] &lt;br /&gt;
*[[DLR_STATUS| List of Statuses ]] &lt;br /&gt;
&lt;br /&gt;
== SMPP 3.4 ==&lt;br /&gt;
Our API includes standard SMPP 3.4 protocol server. SMPP connection support TRANSCIEVER connections from compatible SMPP 3.4 clients with throughput of up to 50 SMS/second. This is the fastest connection method and fastest to implement as there is no custom development required. TRANSCIVER more supports incoming SMS (MO) outgoing SMS (MT) and delivery notifications (DLR). To use SMPP connection please follow the steps below: &lt;br /&gt;
* Click [http://reseller.upsidewireless.com/RegEditNonLogon.do here] to create a new account and purchase a desired messaging plan&lt;br /&gt;
* Contact us and let us know your user name and IP address where your SMPP client is located&lt;br /&gt;
* We will setup your account and you can then start messaging&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Integration ERP Messaging Services ==&lt;br /&gt;
* [[ salesforce | Integration with SalesForce.com]]&lt;br /&gt;
* [[ zimbra | Integration with Zimbra ]]&lt;br /&gt;
&lt;br /&gt;
== Other ==&lt;br /&gt;
* [[ Carrier_codes | Carrier Codes]] (USA and Canada)&lt;br /&gt;
* [[ Tariff | Tariffs]] for Premium SMS&lt;br /&gt;
* Global [http://reseller.upsidewireless.com/networkList.do  Network Coverage List]&lt;br /&gt;
&lt;br /&gt;
* [[User Management]]&lt;br /&gt;
* [[Settings]]&lt;br /&gt;
* [[Country_codes | Country Codes]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== How to Send SMS Messages using SMTP ==&lt;br /&gt;
''This section discusses initiating SMS sending requests using SMTP interface (email to SMS). We recommend that you first review the SOAP method as it offers richer functionality and better security/authentication.''&lt;br /&gt;
&lt;br /&gt;
'''SMTP Interface''' - DEPRECATED&lt;br /&gt;
* [[MT SMTP | Introduction]]&lt;br /&gt;
** [[MT SMTP Auth]]&lt;br /&gt;
** [[MT Web Text]]&lt;br /&gt;
** [[MT IP Address]]&lt;br /&gt;
* Examples&lt;br /&gt;
** [[PHP Sending SMS via SMTP | PHP]]&lt;br /&gt;
** [[Java Sending SMS via SMTP | Java]]&lt;br /&gt;
** [[CSharp Sending SMS via SMTP | C#]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[Main Page | back]]&lt;/div&gt;</summary>
		<author><name>Bzurkovic</name></author>	</entry>

	<entry>
		<id>http://docs.upsidewireless.com/index.php?title=DLRPost</id>
		<title>DLRPost</title>
		<link rel="alternate" type="text/html" href="http://docs.upsidewireless.com/index.php?title=DLRPost"/>
				<updated>2014-05-01T21:20:34Z</updated>
		
		<summary type="html">&lt;p&gt;Bzurkovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== How to Get Message Delivery Confirmations Using HTTP-POST ==&lt;br /&gt;
&lt;br /&gt;
You need to implement HTTP-POST handler that will listen to incoming HTTP-PUSH from our service. This will look similar to:&lt;br /&gt;
&lt;br /&gt;
   name = your_username&lt;br /&gt;
   trackingid = MTID119946997360917165&lt;br /&gt;
   status = DELIVRD&lt;br /&gt;
   recipient = 12088580767&lt;br /&gt;
&lt;br /&gt;
For example, assuming that your application is at domain foo.com the call we make is&lt;br /&gt;
&lt;br /&gt;
http://foo.com?name=YOUR_USER_NAME&amp;amp;trackingid=MTID119946997360917165&amp;amp;status=SEE_BELOW&amp;amp;recipient=12088580767&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[DLR_STATUS| List of Statuses ]] &lt;br /&gt;
&lt;br /&gt;
When you send a message (using Send_Plain, for example)  you will receive MTID (message or tracking id). This is a unique number assigned to each message. You will need to store it. When you get incoming HTTP-PUSH, simply query your database to find matching tracking_id. When you find it, update status of message&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[DLRIntro | back]]&lt;/div&gt;</summary>
		<author><name>Bzurkovic</name></author>	</entry>

	<entry>
		<id>http://docs.upsidewireless.com/index.php?title=Carrier_codes</id>
		<title>Carrier codes</title>
		<link rel="alternate" type="text/html" href="http://docs.upsidewireless.com/index.php?title=Carrier_codes"/>
				<updated>2014-01-29T23:35:20Z</updated>
		
		<summary type="html">&lt;p&gt;Bzurkovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Carrier codes are needed when sending MT messages to US or Canadian telecom carriers in conjunction with a Short Code. The list below presents currently recognized codes that your application must pass as a parameter when requesting MT using EnterpriseSMS API:&lt;br /&gt;
&lt;br /&gt;
'''Canada'''&lt;br /&gt;
&lt;br /&gt;
* BELL (includes Solo Mobile) = 302651&lt;br /&gt;
* FIDO = 302370&lt;br /&gt;
* ROGERS  (includes Chatr)= 302720&lt;br /&gt;
* MTS = 302655&lt;br /&gt;
* MOBILICITY = 302320&lt;br /&gt;
* NB TEL = 302701&lt;br /&gt;
* QUEBECTEL = 302657&lt;br /&gt;
* VIDEOTRON = 302500&lt;br /&gt;
* SASK TEL = 302654&lt;br /&gt;
* TELUS (includes KOODO) = 302653&lt;br /&gt;
* VIRGIN =302001&lt;br /&gt;
* WIND MOBILE =302490&lt;br /&gt;
&lt;br /&gt;
'''USA'''&lt;br /&gt;
* AT&amp;amp;T = 310980&lt;br /&gt;
* Alaska Wireless = 310190&lt;br /&gt;
* ALLTEL = 310500&lt;br /&gt;
* CINCINNATI BELL = 310420&lt;br /&gt;
* CINGULAR = 310180&lt;br /&gt;
* CRICKET = 310016&lt;br /&gt;
* DOBSON = 310560&lt;br /&gt;
* NEXTEL = 316010&lt;br /&gt;
* SPRINT = 316110&lt;br /&gt;
* TMOBILE USA = 310660&lt;br /&gt;
* TESTING = 310014&lt;br /&gt;
* VERIZON = 310012&lt;br /&gt;
&lt;br /&gt;
Note: While all effort is made to keep the list up-to-date, changes in telecom ownership may invalidate this list. Please contact us for latest changes.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[APIs | back]]&lt;/div&gt;</summary>
		<author><name>Bzurkovic</name></author>	</entry>

	<entry>
		<id>http://docs.upsidewireless.com/index.php?title=Carrier_codes</id>
		<title>Carrier codes</title>
		<link rel="alternate" type="text/html" href="http://docs.upsidewireless.com/index.php?title=Carrier_codes"/>
				<updated>2014-01-29T23:34:07Z</updated>
		
		<summary type="html">&lt;p&gt;Bzurkovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Carrier codes are needed when sending MT messages to US or Canadian telecom carriers in conjunction with a Short Code. The list below presents currently recognized codes that your application must pass as a parameter when requesting MT using EnterpriseSMS API:&lt;br /&gt;
&lt;br /&gt;
'''Canada'''&lt;br /&gt;
&lt;br /&gt;
* BELL (includes Solo Mobile) = 302651&lt;br /&gt;
* FIDO = 302370&lt;br /&gt;
* ROGERS  (includes Chatr)= 302720&lt;br /&gt;
* MTS = 302655&lt;br /&gt;
* NB TEL = 302701&lt;br /&gt;
* QUEBECTEL = 302657&lt;br /&gt;
* VIDEOTRON = 302500&lt;br /&gt;
* SASK TEL = 302654&lt;br /&gt;
* TELUS (includes KOODO) = 302653&lt;br /&gt;
* VIRGIN =302001&lt;br /&gt;
* WIND MOBILE =302490&lt;br /&gt;
&lt;br /&gt;
'''USA'''&lt;br /&gt;
* AT&amp;amp;T = 310980&lt;br /&gt;
* Alaska Wireless = 310190&lt;br /&gt;
* ALLTEL = 310500&lt;br /&gt;
* CINCINNATI BELL = 310420&lt;br /&gt;
* CINGULAR = 310180&lt;br /&gt;
* CRICKET = 310016&lt;br /&gt;
* DOBSON = 310560&lt;br /&gt;
* NEXTEL = 316010&lt;br /&gt;
* SPRINT = 316110&lt;br /&gt;
* TMOBILE USA = 310660&lt;br /&gt;
* TESTING = 310014&lt;br /&gt;
* VERIZON = 310012&lt;br /&gt;
&lt;br /&gt;
Note: While all effort is made to keep the list up-to-date, changes in telecom ownership may invalidate this list. Please contact us for latest changes.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[APIs | back]]&lt;/div&gt;</summary>
		<author><name>Bzurkovic</name></author>	</entry>

	<entry>
		<id>http://docs.upsidewireless.com/index.php?title=MT_Web_Text</id>
		<title>MT Web Text</title>
		<link rel="alternate" type="text/html" href="http://docs.upsidewireless.com/index.php?title=MT_Web_Text"/>
				<updated>2013-10-31T18:08:33Z</updated>
		
		<summary type="html">&lt;p&gt;Bzurkovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== PIN based SMTP authentication ==&lt;br /&gt;
Sending text messages using PIN based authentication is a two step process, first you must set up your account by entering a unique PIN which will be used to authenticate future sending requests. Then, you send a specially formatted email and specify the PIN in the subject line. If the PIN matches, our service will authenticate the request, convert the text specified in the body of email and send it as SMS to the number specified in the To field. &lt;br /&gt;
&lt;br /&gt;
== 1. Account Setup ==&lt;br /&gt;
* In your online account (www.upsidewireless.com) go to Settings page to define your WebText code. The code should be 6 to 12 characters long and is case insensitive. Because Confirm Code acts like a password, it's highly recommended to change it frequently. Click on the link below to see an example.&lt;br /&gt;
&lt;br /&gt;
http://reseller.upsidewireless.com/content/en/images/help/smssettings.gif&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 2a. Sending Text Messages with WebTextCode in To Subject ==&lt;br /&gt;
* Compose a new email message&lt;br /&gt;
* Set the subject of the message to be the PIN code that is entered on your account&lt;br /&gt;
* The email address for the &amp;quot;To:&amp;quot; field is similar to '18887776666@opensms.upsidewireless.com' (replace the number with the mobile number you wish to send to).&lt;br /&gt;
* Send email&lt;br /&gt;
&lt;br /&gt;
== 2b. Sending Text Messages with WebTextCode in To Field ==&lt;br /&gt;
* Compose a new email message&lt;br /&gt;
* Set the subject to blank&lt;br /&gt;
* The email address for the &amp;quot;To:&amp;quot; field is similar to 'WebTextCode--18887776666@opensms.upsidewireless.com' (replace the number with the mobile number you wish to send to).&lt;br /&gt;
* Send email&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[APIs | back]]&lt;/div&gt;</summary>
		<author><name>Bzurkovic</name></author>	</entry>

	<entry>
		<id>http://docs.upsidewireless.com/index.php?title=MT_Web_Text</id>
		<title>MT Web Text</title>
		<link rel="alternate" type="text/html" href="http://docs.upsidewireless.com/index.php?title=MT_Web_Text"/>
				<updated>2013-10-31T18:07:17Z</updated>
		
		<summary type="html">&lt;p&gt;Bzurkovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== PIN based SMTP authentication ==&lt;br /&gt;
Sending text messages using PIN based authentication is a two step process, first you must set up your account by entering a unique PIN which will be used to authenticate future sending requests. Then, you send a specially formatted email and specify the PIN in the subject line. If the PIN matches, our service will authenticate the request, convert the text specified in the body of email and send it as SMS to the number specified in the To field. &lt;br /&gt;
&lt;br /&gt;
== 1. Account Setup ==&lt;br /&gt;
* In your online account (www.upsidewireless.com) go to Settings page to define your WebText code. The code should be 6 to 12 characters long and is case insensitive. Because Confirm Code acts like a password, it's highly recommended to change it frequently. Click on the link below to see an example.&lt;br /&gt;
&lt;br /&gt;
http://reseller.upsidewireless.com/content/en/images/help/smssettings.gif&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 2a. Sending Text Messages  - WebTextCode in To Subject ==&lt;br /&gt;
* Compose a new email message&lt;br /&gt;
* Set the subject of the message to be the PIN code that is entered on your account&lt;br /&gt;
* The email address for the &amp;quot;To:&amp;quot; field is similar to '18887776666@opensms.upsidewireless.com' (replace the number with the mobile number you wish to send to).&lt;br /&gt;
* Send email&lt;br /&gt;
&lt;br /&gt;
== 2b. Sending Text Messages - WebTextCode in To Field ==&lt;br /&gt;
* Compose a new email message&lt;br /&gt;
* Set the subject to blank&lt;br /&gt;
* The email address for the &amp;quot;To:&amp;quot; field is similar to 'WebTextCode--18887776666@opensms.upsidewireless.com' (replace the number with the mobile number you wish to send to).&lt;br /&gt;
* Send email&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[APIs | back]]&lt;/div&gt;</summary>
		<author><name>Bzurkovic</name></author>	</entry>

	<entry>
		<id>http://docs.upsidewireless.com/index.php?title=MT_Web_Text</id>
		<title>MT Web Text</title>
		<link rel="alternate" type="text/html" href="http://docs.upsidewireless.com/index.php?title=MT_Web_Text"/>
				<updated>2013-10-31T18:06:57Z</updated>
		
		<summary type="html">&lt;p&gt;Bzurkovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== PIN based SMTP authentication ==&lt;br /&gt;
Sending text messages using PIN based authentication is a two step process, first you must set up your account by entering a unique PIN which will be used to authenticate future sending requests. Then, you send a specially formatted email and specify the PIN in the subject line. If the PIN matches, our service will authenticate the request, convert the text specified in the body of email and send it as SMS to the number specified in the To field. &lt;br /&gt;
&lt;br /&gt;
== 1. Account Setup ==&lt;br /&gt;
* In your online account (www.upsidewireless.com) go to Settings page to define your WebText code. The code should be 6 to 12 characters long and is case insensitive. Because Confirm Code acts like a password, it's highly recommended to change it frequently. Click on the link below to see an example.&lt;br /&gt;
&lt;br /&gt;
http://reseller.upsidewireless.com/content/en/images/help/smssettings.gif&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 2a. Sending Text Messages  - WebTextCode in To Subject ==&lt;br /&gt;
* Compose a new email message&lt;br /&gt;
* Set the subject of the message to be the PIN code that is entered on your account&lt;br /&gt;
* The email address for the &amp;quot;To:&amp;quot; field is similar to '18887776666@opensms.upsidewireless.com' (replace the number with the mobile number you wish to send to).&lt;br /&gt;
* Send email&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 2b. Sending Text Messages - WebTextCode in To Field ==&lt;br /&gt;
* Compose a new email message&lt;br /&gt;
* Set the subject to blank&lt;br /&gt;
* The email address for the &amp;quot;To:&amp;quot; field is similar to 'WebTextCode--18887776666@opensms.upsidewireless.com' (replace the number with the mobile number you wish to send to).&lt;br /&gt;
* Send email&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[APIs | back]]&lt;/div&gt;</summary>
		<author><name>Bzurkovic</name></author>	</entry>

	<entry>
		<id>http://docs.upsidewireless.com/index.php?title=MT_Web_Text</id>
		<title>MT Web Text</title>
		<link rel="alternate" type="text/html" href="http://docs.upsidewireless.com/index.php?title=MT_Web_Text"/>
				<updated>2013-10-31T18:06:21Z</updated>
		
		<summary type="html">&lt;p&gt;Bzurkovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== PIN based SMTP authentication ==&lt;br /&gt;
Sending text messages using PIN based authentication is a two step process, first you must set up your account by entering a unique PIN which will be used to authenticate future sending requests. Then, you send a specially formatted email and specify the PIN in the subject line. If the PIN matches, our service will authenticate the request, convert the text specified in the body of email and send it as SMS to the number specified in the To field. &lt;br /&gt;
&lt;br /&gt;
== 1. Account Setup ==&lt;br /&gt;
* In your online account (www.upsidewireless.com) go to Settings page to define your WebText code. The code should be 6 to 12 characters long and is case insensitive. Because Confirm Code acts like a password, it's highly recommended to change it frequently. Click on the link below to see an example.&lt;br /&gt;
&lt;br /&gt;
http://reseller.upsidewireless.com/content/en/images/help/smssettings.gif&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 2a. Sending Text Messages  - WebTextCode in To Subject ==&lt;br /&gt;
* Compose a new email message&lt;br /&gt;
* Set the subject of the message to be the PIN code that is entered on your account&lt;br /&gt;
* The email address for the &amp;quot;To:&amp;quot; field is similar to '18887776666@opensms.upsidewireless.com' (replace the number with the mobile number you wish to send to).&lt;br /&gt;
* Send email&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 2b. Sending Text Messages - WebTextCode in To Field ==&lt;br /&gt;
* Compose a new email message&lt;br /&gt;
* Set the subject to blank&lt;br /&gt;
* The email address for the &amp;quot;To:&amp;quot; field is similar to 'wetTextCode--18887776666@opensms.upsidewireless.com' (replace the number with the mobile number you wish to send to).&lt;br /&gt;
* Send email&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[APIs | back]]&lt;/div&gt;</summary>
		<author><name>Bzurkovic</name></author>	</entry>

	<entry>
		<id>http://docs.upsidewireless.com/index.php?title=MT_Web_Text</id>
		<title>MT Web Text</title>
		<link rel="alternate" type="text/html" href="http://docs.upsidewireless.com/index.php?title=MT_Web_Text"/>
				<updated>2013-10-31T18:03:11Z</updated>
		
		<summary type="html">&lt;p&gt;Bzurkovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== PIN based SMTP authentication ==&lt;br /&gt;
Sending text messages using PIN based authentication is a two step process, first you must set up your account by entering a unique PIN which will be used to authenticate future sending requests. Then, you send a specially formatted email and specify the PIN in the subject line. If the PIN matches, our service will authenticate the request, convert the text specified in the body of email and send it as SMS to the number specified in the To field. &lt;br /&gt;
&lt;br /&gt;
== 1. Account Setup ==&lt;br /&gt;
* In your online account (www.upsidewireless.com) go to Settings page to define your WebText code. The code should be 6 to 12 characters long and is case insensitive. Because Confirm Code acts like a password, it's highly recommended to change it frequently. Click on the link below to see an example.&lt;br /&gt;
&lt;br /&gt;
http://reseller.upsidewireless.com/content/en/images/help/smssettings.gif&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 2. Sending Text Messages ==&lt;br /&gt;
* Compose a new email message&lt;br /&gt;
* Set the subject of the message to be the PIN code that is entered on your account&lt;br /&gt;
* The email address for the &amp;quot;To:&amp;quot; field is similar to '18887776666@opensms.upsidewireless.com' (replace the number with the mobile number you wish to send to).&lt;br /&gt;
* Send email&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[APIs | back]]&lt;/div&gt;</summary>
		<author><name>Bzurkovic</name></author>	</entry>

	<entry>
		<id>http://docs.upsidewireless.com/index.php?title=PHP_Sending_SMS</id>
		<title>PHP Sending SMS</title>
		<link rel="alternate" type="text/html" href="http://docs.upsidewireless.com/index.php?title=PHP_Sending_SMS"/>
				<updated>2013-10-29T19:47:31Z</updated>
		
		<summary type="html">&lt;p&gt;Bzurkovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
// NOTE - THE CODE BELOW IS PROVIDED FOR ILLUSTRATION ONLY &lt;br /&gt;
&lt;br /&gt;
//SOME CHANGES MAY BE NEEDED TO GET IT TO WORK IN YOUR PROGRAM&lt;br /&gt;
&lt;br /&gt;
// plug in the values returned from&lt;br /&gt;
&lt;br /&gt;
// http://api.upsidewireless.com/soap/Authentication.asmx/GetParameters&lt;br /&gt;
&lt;br /&gt;
// please note that in order to use this and other examples and EnterpriseSMS &lt;br /&gt;
&lt;br /&gt;
//API your account must have permissions set to do so. &lt;br /&gt;
&lt;br /&gt;
$token = '----------------------------------------';&lt;br /&gt;
&lt;br /&gt;
$signature = '--------------------------------------';&lt;br /&gt;
&lt;br /&gt;
$api_call_data = array(&lt;br /&gt;
        'token' =&amp;gt; $token,&lt;br /&gt;
        'signature' =&amp;gt; $signature,&lt;br /&gt;
        'recipient' =&amp;gt; '+16043434343', &lt;br /&gt;
        'message' =&amp;gt; 'Hello World',&lt;br /&gt;
        'encoding' =&amp;gt; 'Seven' // Use 'Sixteen' if you are sending in Unicode&lt;br /&gt;
    );&lt;br /&gt;
    &lt;br /&gt;
$post_data = build_post_data($api_call_data );&lt;br /&gt;
&lt;br /&gt;
// Please refer to&lt;br /&gt;
&lt;br /&gt;
// http://api.upsidewireless.com/&lt;br /&gt;
&lt;br /&gt;
// for other sending methods&lt;br /&gt;
&lt;br /&gt;
$url = 'http://api.upsidewireless.com/soap/SMS.asmx/Send_Plain';&lt;br /&gt;
&lt;br /&gt;
$xml = do_post_request($url, $post_data);&lt;br /&gt;
&lt;br /&gt;
// be sure you look at the XML from above to see if there are any errors&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// Everything below is just function definitions&lt;br /&gt;
&lt;br /&gt;
function do_post_request($url, $data, $optional_headers = null) &lt;br /&gt;
{ &lt;br /&gt;
    $params = array('http' =&amp;gt; array('method' =&amp;gt; 'POST', 'content' =&amp;gt; $data));&lt;br /&gt;
    &lt;br /&gt;
    if ($optional_headers !== null) { &lt;br /&gt;
        $params['http']['header'] = $optional_headers; &lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    $ctx = stream_context_create($params); &lt;br /&gt;
    &lt;br /&gt;
    $fp = @fopen($url, 'rb', false, $ctx); &lt;br /&gt;
    if (!$fp) { &lt;br /&gt;
        throw new Exception(&amp;quot;Problem with $url, $php_errormsg&amp;quot;); &lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    $response = @stream_get_contents($fp); &lt;br /&gt;
    &lt;br /&gt;
    if ($response === false) { &lt;br /&gt;
        throw new Exception(&amp;quot;Problem reading data from $url, $php_errormsg&amp;quot;); &lt;br /&gt;
    }&lt;br /&gt;
    return $response; &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function build_post_data($data, $prefix=null, $sep=&amp;quot;&amp;quot;, $key=&amp;quot;&amp;quot;) {&lt;br /&gt;
    &lt;br /&gt;
    $ret = array();&lt;br /&gt;
    &lt;br /&gt;
    foreach((array)$data as $k =&amp;gt; $v) {&lt;br /&gt;
&lt;br /&gt;
        $k = urlencode($k);&lt;br /&gt;
        &lt;br /&gt;
        if(is_int($k) &amp;amp;&amp;amp; $prefix != null) {&lt;br /&gt;
            $k = $prefix.$k;&lt;br /&gt;
        }&lt;br /&gt;
    &lt;br /&gt;
        if(!empty($key)) {&lt;br /&gt;
            $k = $key.&amp;quot;[&amp;quot;.$k.&amp;quot;]&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        if(is_array($v) || is_object($v)) {&lt;br /&gt;
            array_push($ret, build_post_data($v,&amp;quot;&amp;quot;,$sep,$k));&lt;br /&gt;
        } else {&lt;br /&gt;
            array_push($ret,$k.&amp;quot;=&amp;quot;.urlencode($v));&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if(empty($sep)) {&lt;br /&gt;
        $sep = ini_get(&amp;quot;arg_separator.output&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    return implode($sep, $ret);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[APIs | back]]&lt;/div&gt;</summary>
		<author><name>Bzurkovic</name></author>	</entry>

	<entry>
		<id>http://docs.upsidewireless.com/index.php?title=PHP_Sending_SMS</id>
		<title>PHP Sending SMS</title>
		<link rel="alternate" type="text/html" href="http://docs.upsidewireless.com/index.php?title=PHP_Sending_SMS"/>
				<updated>2013-10-29T19:47:00Z</updated>
		
		<summary type="html">&lt;p&gt;Bzurkovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
// NOTE - THE CODE BELOW IS PROVIDED FOR ILLUSTRATION ONLY &lt;br /&gt;
&lt;br /&gt;
//SOME CHANGES MAY BE NEEDED TO GET IT TO WORK IN YOUR PROGRAM&lt;br /&gt;
&lt;br /&gt;
// plug in the values returned from&lt;br /&gt;
&lt;br /&gt;
// http://api.upsidewireless.com/soap/Authentication.asmx/GetParameters&lt;br /&gt;
&lt;br /&gt;
// please note that in order to use this and other examples and EnterpriseSMS &lt;br /&gt;
&lt;br /&gt;
//API your account must have permissions set to do so. &lt;br /&gt;
&lt;br /&gt;
$token = '----------------------------------------';&lt;br /&gt;
&lt;br /&gt;
$signature = '--------------------------------------';&lt;br /&gt;
&lt;br /&gt;
$api_call_data = array(&lt;br /&gt;
        'token' =&amp;gt; $token,&lt;br /&gt;
        'signature' =&amp;gt; $signature,&lt;br /&gt;
        'recipient' =&amp;gt; '+16043434343', &lt;br /&gt;
        'message' =&amp;gt; 'Hello World',&lt;br /&gt;
        'encoding' =&amp;gt; 'Seven' // Use 'Sixteen' if you are sending in Unicode&lt;br /&gt;
    );&lt;br /&gt;
    &lt;br /&gt;
$post_data = build_post_data($api_call_data );&lt;br /&gt;
&lt;br /&gt;
// Please refer to&lt;br /&gt;
&lt;br /&gt;
// http://api.upsidewireless.com/&lt;br /&gt;
&lt;br /&gt;
// for other sending methods&lt;br /&gt;
&lt;br /&gt;
$url = ' http://api.upsidewireless.com/soap/SMS.asmx/Send_Plain ';&lt;br /&gt;
&lt;br /&gt;
$xml = do_post_request($url, $post_data);&lt;br /&gt;
&lt;br /&gt;
// be sure you look at the XML from above to see if there are any errors&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// Everything below is just function definitions&lt;br /&gt;
&lt;br /&gt;
function do_post_request($url, $data, $optional_headers = null) &lt;br /&gt;
{ &lt;br /&gt;
    $params = array('http' =&amp;gt; array('method' =&amp;gt; 'POST', 'content' =&amp;gt; $data));&lt;br /&gt;
    &lt;br /&gt;
    if ($optional_headers !== null) { &lt;br /&gt;
        $params['http']['header'] = $optional_headers; &lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    $ctx = stream_context_create($params); &lt;br /&gt;
    &lt;br /&gt;
    $fp = @fopen($url, 'rb', false, $ctx); &lt;br /&gt;
    if (!$fp) { &lt;br /&gt;
        throw new Exception(&amp;quot;Problem with $url, $php_errormsg&amp;quot;); &lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    $response = @stream_get_contents($fp); &lt;br /&gt;
    &lt;br /&gt;
    if ($response === false) { &lt;br /&gt;
        throw new Exception(&amp;quot;Problem reading data from $url, $php_errormsg&amp;quot;); &lt;br /&gt;
    }&lt;br /&gt;
    return $response; &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function build_post_data($data, $prefix=null, $sep=&amp;quot;&amp;quot;, $key=&amp;quot;&amp;quot;) {&lt;br /&gt;
    &lt;br /&gt;
    $ret = array();&lt;br /&gt;
    &lt;br /&gt;
    foreach((array)$data as $k =&amp;gt; $v) {&lt;br /&gt;
&lt;br /&gt;
        $k = urlencode($k);&lt;br /&gt;
        &lt;br /&gt;
        if(is_int($k) &amp;amp;&amp;amp; $prefix != null) {&lt;br /&gt;
            $k = $prefix.$k;&lt;br /&gt;
        }&lt;br /&gt;
    &lt;br /&gt;
        if(!empty($key)) {&lt;br /&gt;
            $k = $key.&amp;quot;[&amp;quot;.$k.&amp;quot;]&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        if(is_array($v) || is_object($v)) {&lt;br /&gt;
            array_push($ret, build_post_data($v,&amp;quot;&amp;quot;,$sep,$k));&lt;br /&gt;
        } else {&lt;br /&gt;
            array_push($ret,$k.&amp;quot;=&amp;quot;.urlencode($v));&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if(empty($sep)) {&lt;br /&gt;
        $sep = ini_get(&amp;quot;arg_separator.output&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    return implode($sep, $ret);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[APIs | back]]&lt;/div&gt;</summary>
		<author><name>Bzurkovic</name></author>	</entry>

	<entry>
		<id>http://docs.upsidewireless.com/index.php?title=PHP_Sending_SMS</id>
		<title>PHP Sending SMS</title>
		<link rel="alternate" type="text/html" href="http://docs.upsidewireless.com/index.php?title=PHP_Sending_SMS"/>
				<updated>2013-10-29T19:46:11Z</updated>
		
		<summary type="html">&lt;p&gt;Bzurkovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
// NOTE - THE CODE BELOW IS PROVIDED FOR ILLUSTRATION ONLY &lt;br /&gt;
&lt;br /&gt;
//SOME CHANGES MAY BE NEEDED TO GET IT TO WORK IN YOUR PROGRAM&lt;br /&gt;
&lt;br /&gt;
// plug in the values returned from&lt;br /&gt;
&lt;br /&gt;
// http://api.upsidewireless.com/soap/Authentication.asmx/GetParameters&lt;br /&gt;
&lt;br /&gt;
// please note that in order to use this and other examples and EnterpriseSMS &lt;br /&gt;
&lt;br /&gt;
//API your account must have permissions set to do so. &lt;br /&gt;
&lt;br /&gt;
$token = '----------------------------------------';&lt;br /&gt;
&lt;br /&gt;
$signature = '--------------------------------------';&lt;br /&gt;
&lt;br /&gt;
$api_call_data = array(&lt;br /&gt;
        'token' =&amp;gt; $token,&lt;br /&gt;
        'signature' =&amp;gt; $signature,&lt;br /&gt;
        'recipient' =&amp;gt; '+16043434343', &lt;br /&gt;
        'message' =&amp;gt; 'Hello World',&lt;br /&gt;
        'encoding' =&amp;gt; 'Seven' // Use 'Sixteen' if you are sending in Unicode&lt;br /&gt;
    );&lt;br /&gt;
    &lt;br /&gt;
$post_data = build_post_data($api_call_data );&lt;br /&gt;
&lt;br /&gt;
// Please refer to&lt;br /&gt;
&lt;br /&gt;
// http://api.upsidewireless.com/&lt;br /&gt;
&lt;br /&gt;
// for other sending methods&lt;br /&gt;
&lt;br /&gt;
$url = 'http://api.upsidewireless.com/soap/SMS.asmx/Send_Plain';&lt;br /&gt;
&lt;br /&gt;
$xml = do_post_request($url, $post_data);&lt;br /&gt;
&lt;br /&gt;
// be sure you look at the XML from above to see if there are any errors&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// Everything below is just function definitions&lt;br /&gt;
&lt;br /&gt;
function do_post_request($url, $data, $optional_headers = null) &lt;br /&gt;
{ &lt;br /&gt;
    $params = array('http' =&amp;gt; array('method' =&amp;gt; 'POST', 'content' =&amp;gt; $data));&lt;br /&gt;
    &lt;br /&gt;
    if ($optional_headers !== null) { &lt;br /&gt;
        $params['http']['header'] = $optional_headers; &lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    $ctx = stream_context_create($params); &lt;br /&gt;
    &lt;br /&gt;
    $fp = @fopen($url, 'rb', false, $ctx); &lt;br /&gt;
    if (!$fp) { &lt;br /&gt;
        throw new Exception(&amp;quot;Problem with $url, $php_errormsg&amp;quot;); &lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    $response = @stream_get_contents($fp); &lt;br /&gt;
    &lt;br /&gt;
    if ($response === false) { &lt;br /&gt;
        throw new Exception(&amp;quot;Problem reading data from $url, $php_errormsg&amp;quot;); &lt;br /&gt;
    }&lt;br /&gt;
    return $response; &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function build_post_data($data, $prefix=null, $sep=&amp;quot;&amp;quot;, $key=&amp;quot;&amp;quot;) {&lt;br /&gt;
    &lt;br /&gt;
    $ret = array();&lt;br /&gt;
    &lt;br /&gt;
    foreach((array)$data as $k =&amp;gt; $v) {&lt;br /&gt;
&lt;br /&gt;
        $k = urlencode($k);&lt;br /&gt;
        &lt;br /&gt;
        if(is_int($k) &amp;amp;&amp;amp; $prefix != null) {&lt;br /&gt;
            $k = $prefix.$k;&lt;br /&gt;
        }&lt;br /&gt;
    &lt;br /&gt;
        if(!empty($key)) {&lt;br /&gt;
            $k = $key.&amp;quot;[&amp;quot;.$k.&amp;quot;]&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        if(is_array($v) || is_object($v)) {&lt;br /&gt;
            array_push($ret, build_post_data($v,&amp;quot;&amp;quot;,$sep,$k));&lt;br /&gt;
        } else {&lt;br /&gt;
            array_push($ret,$k.&amp;quot;=&amp;quot;.urlencode($v));&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if(empty($sep)) {&lt;br /&gt;
        $sep = ini_get(&amp;quot;arg_separator.output&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    return implode($sep, $ret);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[APIs | back]]&lt;/div&gt;</summary>
		<author><name>Bzurkovic</name></author>	</entry>

	<entry>
		<id>http://docs.upsidewireless.com/index.php?title=Tips_SOAP</id>
		<title>Tips SOAP</title>
		<link rel="alternate" type="text/html" href="http://docs.upsidewireless.com/index.php?title=Tips_SOAP"/>
				<updated>2013-10-29T03:40:22Z</updated>
		
		<summary type="html">&lt;p&gt;Bzurkovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page represents a collection of common issues encountered by our users. If the problem you experienced is not listed below please login to your upsidewireless.com account and click on the Contact Us link to describe the problem. We will be quick to assist.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
1. I coded my application as per examples but I cannot send text messages. Why?&lt;br /&gt;
&lt;br /&gt;
Assuming that your code IS correct, the most common reasons are:&lt;br /&gt;
* Account is not configured to allow you to access EnterpriseSMS API. Login to your upsidewireless.com account and click on the Contact Us link to request access.&lt;br /&gt;
* Your upsidewireless.com account has 0 credit balance&lt;br /&gt;
* You are entering phone number in invalid format (remember country_code areacode localnumber - as in 12124445555 or 4477322222222)&lt;br /&gt;
* Encoding is wrong. Make sure that you use either Seven or Sixteen (not 7, sixteen or anything else). In very, VERY, rare situations you would use Eight (binary SMS)&lt;br /&gt;
&lt;br /&gt;
As a general rule, when you make a successful API call the interface will return something similar to: &lt;br /&gt;
&lt;br /&gt;
[[Image:SendPlainResponse.jpg]]&lt;br /&gt;
&lt;br /&gt;
In your validation routine you can easily parse the received XML block and determine where the problem may be. &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
2. I made a successful API call but the message was not delivered. Why?&lt;br /&gt;
* Please ensure that the number is typed correctly and in proper format. For example, if you specify number as 6094928888 the message will go to Malaysia. For the message to go to USA you must add country code in front (as in 16094928888)&lt;br /&gt;
* It is possible that the delivery of messages failed. Please login to your upsidewireless.com account and click on the Contact Us link to let our network ops team of the issue&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
3. I used to be able to send messages but now I get an error when I try to make API call. Why?&lt;br /&gt;
* Your account password has most likely changed. You must update your Token and Signature to reflect this change.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
4. Occassionally I get exception when calling one of your functions. What should I do? &lt;br /&gt;
* Standard practice is to re-try the attempt after a certain period of time. We recommend that in your code is set to re-try after 10-20s at least once, before aborting the attempt. A further improvement to the exception handling of this type is to create a spool into which your application will store any failed messages. A separate thread can then periodically attempt to re-send messages from this spool.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
5. How to create New Lines in my SMS messages?&lt;br /&gt;
* Depending on the programming language you can use \n or %0A  character sequences in the text of your messages to force text after the character to appear in a new line. For example: &lt;br /&gt;
&lt;br /&gt;
string message = &amp;quot;test message from VS\nAnother line\nThe third line&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
6. My messages are cut off at 70 characters. Why?&lt;br /&gt;
* Characters in SMS messages can be GSM7BIT (ASCII) or UNICODE encoded. UNICODE is used to transmit text that contains non-latin characters, for example Chinese, Japanese, Hebrew, Arabic. As per SMS standard, SMS message that us UNICODE can carry maximum of 70 characters where as GSM7BIT encoded messages can be up to 160 characters long. Use encoding setting Seven to send SMS using GST7BIT encoding or Sixteen to encode your text using UNICODE. If you use Sixteen, your messages can be maximum 70 characters long.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
7. Can I use IP address of our server in my API call?&lt;br /&gt;
* '''NEVER''' use IP address when making calls to our service. IP address can change at any time and if this happens your application will no longer be able to make requests. &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
8. Forwarding to my HTTPS does not work. Why?&lt;br /&gt;
* In most cases use of HTTPS protocol requires that we register your certificate with our system. We strongly recommend that you, at least initially, start with non-secure service (HTTP) and once you have completed integration for receiving SMS messages work with our team to install your certificate. &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
9. I make a successful call of Send_Plain but then, on the phone I get message: &amp;quot;Free Msg: Unable to send message to 12125555555. Please try again without a symbol in the text&amp;quot;. Why?&lt;br /&gt;
* This means that you are trying to send UNICODE encoded messages to a carrier that does not support UNICODE (most US carriers do not support UNICODE). Please use value Seven in the Encoding field when calling Send_Plain or Send_Plain_Dedicated functions. &lt;br /&gt;
----&lt;br /&gt;
10. After I create a Service Reference to http://api.upsidewireless.com/soap/SMS.asmx in Visual Studio, I do not have the &amp;quot;SMS&amp;quot; object available to be able to create an object. I only have SMSSoapClient. When I instantiate SMSSoapClient sms = new SMSSoapClient(); I get an error. Do I have to configure the endpoint? &lt;br /&gt;
* Use  SMSSoapClient sms = new SMSSoapClient(&amp;quot;SMSSoap&amp;quot;); &lt;br /&gt;
----&lt;br /&gt;
[[APIs | back]]&lt;/div&gt;</summary>
		<author><name>Bzurkovic</name></author>	</entry>

	<entry>
		<id>http://docs.upsidewireless.com/index.php?title=MOIntro</id>
		<title>MOIntro</title>
		<link rel="alternate" type="text/html" href="http://docs.upsidewireless.com/index.php?title=MOIntro"/>
				<updated>2013-10-05T16:48:34Z</updated>
		
		<summary type="html">&lt;p&gt;Bzurkovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;With our service you can collect incoming SMS messages from your customers and have these messages forwarded directly to your application using a common '''HTTP-POST''' protocol. Here a several examples: &lt;br /&gt;
&lt;br /&gt;
* Voting&lt;br /&gt;
* VoIP Call origination&lt;br /&gt;
* Customer support&lt;br /&gt;
* Sales reporting&lt;br /&gt;
* Instant Messaging&lt;br /&gt;
* Telemetry and many more&lt;br /&gt;
&lt;br /&gt;
To receive text messages, senders need a number to which they can send them. There are two options for you to receive incoming messages. You can use a &lt;br /&gt;
* Shared short or long code or&lt;br /&gt;
* Dedicated [[VirtualSMS]] or dedicated short code&lt;br /&gt;
&lt;br /&gt;
Please contact us to discuss which option would work the best in your situation. &lt;br /&gt;
&lt;br /&gt;
Incoming SMS messages are first directed into your account (Inbox). From there, these messages can be collected by your application in two ways: Push and Pull&lt;br /&gt;
&lt;br /&gt;
'''1. Push'''&lt;br /&gt;
&lt;br /&gt;
Messages received in your account are forwarded to you using email or HTTP-POST. This is the preferred method as you get messages immediately after they have been received. For this process to work you need to expose an HTTP-POST listener on your web server and let us know its URL. The downside of this method is in case your URL changes (for example you have dynamic IP address) forwarding to your application will stop as we will unable to locate the URL that was provided - for as long as you do not update the URL with new IP address. Also, this method is sensitive to firewall settings (you will need to expose the web server which may be behind the the firewall - make sure the port is open). &lt;br /&gt;
See below links for details on using HTTP-POST:&lt;br /&gt;
&lt;br /&gt;
* [[MO HTTP]]&lt;br /&gt;
* [[MO HTTPS]]&lt;br /&gt;
&lt;br /&gt;
PLEASE NOTE - YOUR APPLICATION MUST IMPLEMENT HTTP-POST processing NOT HTTP-GET&lt;br /&gt;
&lt;br /&gt;
''Step-By-Step Process to Get You Going''&lt;br /&gt;
* We assume that you already created an account and have sending using API working&lt;br /&gt;
* Create HTTP-POST listener in your server. Make sure it is on a publicly accessible web server (i.e. external services can access your application)&lt;br /&gt;
* Login to your account and click on the Contact Us link. Paste the URL into the body of your message and request that we configure your account&lt;br /&gt;
* Once you receive confirmation of this completion, you will be able to receive messages in your application&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''2. Pull'''&lt;br /&gt;
&lt;br /&gt;
Your application can also collect messages from your online account in periodic intervals. This is preferred if you do not have an application that can be exposed to the Internet or if your IP address changes often so that it is not practical to keep updating your IP/URL settings. The downside is that you need to poll for new messages every so often (no more than 2 minute intervals are allowed), which means that delivery to your application may be slightly delayed. &lt;br /&gt;
&lt;br /&gt;
There are two methods for getting your messages. &lt;br /&gt;
&lt;br /&gt;
Using SOAP method GetNewInboxMessages or using standard POP3 protocol. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*[[MO POP3 |POP3 ]] &lt;br /&gt;
*[[MO_SOAP |SOAP]] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[APIs | back]]&lt;/div&gt;</summary>
		<author><name>Bzurkovic</name></author>	</entry>

	<entry>
		<id>http://docs.upsidewireless.com/index.php?title=Tips_SOAP</id>
		<title>Tips SOAP</title>
		<link rel="alternate" type="text/html" href="http://docs.upsidewireless.com/index.php?title=Tips_SOAP"/>
				<updated>2013-09-06T21:33:35Z</updated>
		
		<summary type="html">&lt;p&gt;Bzurkovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page represents a collection of common issues encountered by our users. If the problem you experienced is not listed below please login to your upsidewireless.com account and click on the Contact Us link to describe the problem. We will be quick to assist.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
1. I coded my application as per examples but I cannot send text messages. Why?&lt;br /&gt;
&lt;br /&gt;
Assuming that your code IS correct, the most common reasons are:&lt;br /&gt;
* Account is not configured to allow you to access EnterpriseSMS API. Login to your upsidewireless.com account and click on the Contact Us link to request access.&lt;br /&gt;
* Your upsidewireless.com account has 0 credit balance&lt;br /&gt;
* You are entering phone number in invalid format (remember country_code areacode localnumber - as in 12124445555 or 4477322222222)&lt;br /&gt;
* Encoding is wrong. Make sure that you use either Seven or Sixteen (not 7, sixteen or anything else). In very, VERY, rare situations you would use Eight (binary SMS)&lt;br /&gt;
&lt;br /&gt;
As a general rule, when you make a successful API call the interface will return something similar to: &lt;br /&gt;
&lt;br /&gt;
[[Image:SendPlainResponse.jpg]]&lt;br /&gt;
&lt;br /&gt;
In your validation routine you can easily parse the received XML block and determine where the problem may be. &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
2. I made a successful API call but the message was not delivered. Why?&lt;br /&gt;
* Please ensure that the number is typed correctly and in proper format. For example, if you specify number as 6094928888 the message will go to Malaysia. For the message to go to USA you must add country code in front (as in 16094928888)&lt;br /&gt;
* It is possible that the delivery of messages failed. Please login to your upsidewireless.com account and click on the Contact Us link to let our network ops team of the issue&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
3. I used to be able to send messages but now I get an error when I try to make API call. Why?&lt;br /&gt;
* Your account password has most likely changed. You must update your Token and Signature to reflect this change.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
4. Occassionally I get exception when calling one of your functions. What should I do? &lt;br /&gt;
* Standard practice is to re-try the attempt after a certain period of time. We recommend that in your code is set to re-try after 10-20s at least once, before aborting the attempt. A further improvement to the exception handling of this type is to create a spool into which your application will store any failed messages. A separate thread can then periodically attempt to re-send messages from this spool.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
5. How to create New Lines in my SMS messages?&lt;br /&gt;
* Depending on the programming language you can use \n or %0A  character sequences in the text of your messages to force text after the character to appear in a new line. For example: &lt;br /&gt;
&lt;br /&gt;
string message = &amp;quot;test message from VS\nAnother line\nThe third line&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
6. My messages are cut off at 70 characters. Why?&lt;br /&gt;
* Characters in SMS messages can be GSM7BIT (ASCII) or UNICODE encoded. UNICODE is used to transmit text that contains non-latin characters, for example Chinese, Japanese, Hebrew, Arabic. As per SMS standard, SMS message that us UNICODE can carry maximum of 70 characters where as GSM7BIT encoded messages can be up to 160 characters long. Use encoding setting Seven to send SMS using GST7BIT encoding or Sixteen to encode your text using UNICODE. If you use Sixteen, your messages can be maximum 70 characters long.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
7. Can I use IP address of our server in my API call?&lt;br /&gt;
* '''NEVER''' use IP address when making calls to our service. IP address can change at any time and if this happens your application will no longer be able to make requests. &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
8. I make a successful call of Send_Plain but then, on the phone I get message: &amp;quot;Free Msg: Unable to send message to 12125555555. Please try again without a symbol in the text&amp;quot;. Why?&lt;br /&gt;
* This means that you are trying to send UNICODE encoded messages to a carrier that does not support UNICODE (most US carriers do not support UNICODE). Please use value Seven in the Encoding field when calling Send_Plain or Send_Plain_Dedicated functions. &lt;br /&gt;
----&lt;br /&gt;
9. After I create a Service Reference to http://api.upsidewireless.com/soap/SMS.asmx in Visual Studio, I do not have the &amp;quot;SMS&amp;quot; object available to be able to create an object. I only have SMSSoapClient. When I instantiate SMSSoapClient sms = new SMSSoapClient(); I get an error. Do I have to configure the endpoint? &lt;br /&gt;
* Use  SMSSoapClient sms = new SMSSoapClient(&amp;quot;SMSSoap&amp;quot;); &lt;br /&gt;
----&lt;br /&gt;
[[APIs | back]]&lt;/div&gt;</summary>
		<author><name>Bzurkovic</name></author>	</entry>

	<entry>
		<id>http://docs.upsidewireless.com/index.php?title=Error_codes_for_Send_Plain_ServiceGroup</id>
		<title>Error codes for Send Plain ServiceGroup</title>
		<link rel="alternate" type="text/html" href="http://docs.upsidewireless.com/index.php?title=Error_codes_for_Send_Plain_ServiceGroup"/>
				<updated>2013-07-12T18:45:09Z</updated>
		
		<summary type="html">&lt;p&gt;Bzurkovic: New page: Send_Plain_ServiceGroup is API function that allows you to send a message to a group of recipients - a group is defined in your account and can contain any number of recipients. Use this f...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Send_Plain_ServiceGroup is API function that allows you to send a message to a group of recipients - a group is defined in your account and can contain any number of recipients. Use this function only if you have a dedicated VirtualSMS or use a short code for campaign management. This page describes error statuses which Send_Plain_ServiceGroup can generate. &lt;br /&gt;
&lt;br /&gt;
You can send messages to the entire group (all) for the specified service or only to a sub-set of the subscribers. In the first case, leave value for Group empty. If you specify a group name, the group must belong to the same service. In this case, the message will be sent to the members of the stated group. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Send successful - the message was sent to the group of recipients'''&lt;br /&gt;
----&lt;br /&gt;
  &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt; &lt;br /&gt;
- &amp;lt;SMSSendServiceGroupResult xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; xmlns:xsd=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot; xmlns=&amp;quot;http://upsidewireless.com/webservice/sms&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;isOk&amp;gt;true&amp;lt;/isOk&amp;gt; &lt;br /&gt;
  &amp;lt;/SMSSendServiceGroupResult&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Failed sending'''''&lt;br /&gt;
&lt;br /&gt;
'''Incorrect Service name'''&lt;br /&gt;
----&lt;br /&gt;
  &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt; &lt;br /&gt;
- &amp;lt;SMSSendServiceGroupResult xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; xmlns:xsd=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot; xmlns=&amp;quot;http://upsidewireless.com/webservice/sms&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;isOk&amp;gt;false&amp;lt;/isOk&amp;gt; &lt;br /&gt;
  &amp;lt;errorMessages&amp;gt;No such service&amp;lt;/errorMessages&amp;gt; &lt;br /&gt;
  &amp;lt;/SMSSendServiceGroupResult&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Incorrect group name'''&lt;br /&gt;
----&lt;br /&gt;
  &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt; &lt;br /&gt;
- &amp;lt;SMSSendServiceGroupResult xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; xmlns:xsd=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot; xmlns=&amp;quot;http://upsidewireless.com/webservice/sms&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;isOk&amp;gt;false&amp;lt;/isOk&amp;gt; &lt;br /&gt;
  &amp;lt;errorMessages&amp;gt;No such group&amp;lt;/errorMessages&amp;gt; &lt;br /&gt;
  &amp;lt;/SMSSendServiceGroupResult&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Not enough credits'''&lt;br /&gt;
----&lt;br /&gt;
  &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt; &lt;br /&gt;
- &amp;lt;SMSSendServiceGroupResult xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; xmlns:xsd=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot; xmlns=&amp;quot;http://upsidewireless.com/webservice/sms&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;isOk&amp;gt;false&amp;lt;/isOk&amp;gt; &lt;br /&gt;
  &amp;lt;errorMessages&amp;gt;Not enough credits to send SMS to all members of the group. Please top-up your account and re-try&amp;lt;/errorMessages&amp;gt; &lt;br /&gt;
 &amp;lt;/SMSSendServiceGroupResult&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bzurkovic</name></author>	</entry>

	<entry>
		<id>http://docs.upsidewireless.com/index.php?title=Error_codes_for_Send_Plain_Group</id>
		<title>Error codes for Send Plain Group</title>
		<link rel="alternate" type="text/html" href="http://docs.upsidewireless.com/index.php?title=Error_codes_for_Send_Plain_Group"/>
				<updated>2013-07-12T18:39:08Z</updated>
		
		<summary type="html">&lt;p&gt;Bzurkovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Send_Plain_Group is API function that allows you to send a message to a group of recipients - a group is defined in your account and can contain any number of recipients. This page describes error statuses which Send_Plain_Group can generate&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Send successful - the message was sent to the group of recipients'''&lt;br /&gt;
----&lt;br /&gt;
  &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt; &lt;br /&gt;
- &amp;lt;SMSSendGroupResult xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; xmlns:xsd=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot; xmlns=&amp;quot;http://upsidewireless.com/webservice/sms&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;isOk&amp;gt;true&amp;lt;/isOk&amp;gt; &lt;br /&gt;
  &amp;lt;/SMSSendGroupResult&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Failed sending'''''&lt;br /&gt;
&lt;br /&gt;
'''Incorrect group name'''&lt;br /&gt;
----&lt;br /&gt;
  &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt; &lt;br /&gt;
- &amp;lt;SMSSendGroupResult xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; xmlns:xsd=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot; xmlns=&amp;quot;http://upsidewireless.com/webservice/sms&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;isOk&amp;gt;false&amp;lt;/isOk&amp;gt; &lt;br /&gt;
  &amp;lt;errorMessages&amp;gt;No such group&amp;lt;/errorMessages&amp;gt; &lt;br /&gt;
  &amp;lt;/SMSSendGroupResult&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Not enough credits'''&lt;br /&gt;
----&lt;br /&gt;
  &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt; &lt;br /&gt;
- &amp;lt;SMSSendGroupResult xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; xmlns:xsd=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot; xmlns=&amp;quot;http://upsidewireless.com/webservice/sms&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;isOk&amp;gt;false&amp;lt;/isOk&amp;gt; &lt;br /&gt;
  &amp;lt;errorMessages&amp;gt;Not enough credits to send SMS to all members of the group. Please top-up your account and re-try&amp;lt;/errorMessages&amp;gt; &lt;br /&gt;
 &amp;lt;/SMSSendGroupResult&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bzurkovic</name></author>	</entry>

	<entry>
		<id>http://docs.upsidewireless.com/index.php?title=Error_codes_for_Send_Plain_Group</id>
		<title>Error codes for Send Plain Group</title>
		<link rel="alternate" type="text/html" href="http://docs.upsidewireless.com/index.php?title=Error_codes_for_Send_Plain_Group"/>
				<updated>2013-07-12T18:38:06Z</updated>
		
		<summary type="html">&lt;p&gt;Bzurkovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Send_Plain_Group is API function that allows you to send a message to a group of recipients - a group is defined in your account and can contain any number of recipients. This page describes error statuses which Send_Plain_Group can generate&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Send successful - the message was sent to the group of recipients'''&lt;br /&gt;
----&lt;br /&gt;
  &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt; &lt;br /&gt;
- &amp;lt;SMSSendGroupResult xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; xmlns:xsd=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot; xmlns=&amp;quot;http://upsidewireless.com/webservice/sms&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;isOk&amp;gt;true&amp;lt;/isOk&amp;gt; &lt;br /&gt;
  &amp;lt;/SMSSendGroupResult&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Failed sending'''''&lt;br /&gt;
&lt;br /&gt;
'''Incorrect group name'''&lt;br /&gt;
----&lt;br /&gt;
  &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt; &lt;br /&gt;
- &amp;lt;SMSSendGroupResult xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; xmlns:xsd=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot; xmlns=&amp;quot;http://upsidewireless.com/webservice/sms&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;isOk&amp;gt;false&amp;lt;/isOk&amp;gt; &lt;br /&gt;
  &amp;lt;errorMessages&amp;gt;No such group&amp;lt;/errorMessages&amp;gt; &lt;br /&gt;
  &amp;lt;/SMSSendGroupResult&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Not enough credits'''&lt;br /&gt;
----&lt;br /&gt;
  &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt; &lt;br /&gt;
- &amp;lt;SMSSendGroupResult xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; xmlns:xsd=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot; xmlns=&amp;quot;http://upsidewireless.com/webservice/sms&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;isOk&amp;gt;false&amp;lt;/isOk&amp;gt; &lt;br /&gt;
  &amp;lt;errorMessages&amp;gt;Excess maximum recipients (25)&amp;lt;/errorMessages&amp;gt; &lt;br /&gt;
 &amp;lt;/SMSSendGroupResult&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bzurkovic</name></author>	</entry>

	<entry>
		<id>http://docs.upsidewireless.com/index.php?title=Error_codes_for_Send_Plain_Group</id>
		<title>Error codes for Send Plain Group</title>
		<link rel="alternate" type="text/html" href="http://docs.upsidewireless.com/index.php?title=Error_codes_for_Send_Plain_Group"/>
				<updated>2013-07-12T17:32:29Z</updated>
		
		<summary type="html">&lt;p&gt;Bzurkovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Send_Plain_Group is API function that allows you to send a message to a group of recipients - a group is defined in your account and can contain any number of recipients. This page describes error statuses which Send_Plain_Group can generate&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Send successful - all messages were sent'''&lt;br /&gt;
----&lt;br /&gt;
  &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt; &lt;br /&gt;
- &amp;lt;SMSSendMultipleResult xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; xmlns:xsd=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot; xmlns=&amp;quot;http://upsidewireless.com/webservice/sms&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;isOk&amp;gt;true&amp;lt;/isOk&amp;gt; &lt;br /&gt;
  &amp;lt;successCount&amp;gt;3&amp;lt;/successCount&amp;gt; &lt;br /&gt;
  &amp;lt;failedCount&amp;gt;0&amp;lt;/failedCount&amp;gt; &lt;br /&gt;
  &amp;lt;/SMSSendMultipleResult&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Failed sending or partial fail'''''&lt;br /&gt;
&lt;br /&gt;
'''No recipients - no message will be sent'''&lt;br /&gt;
----&lt;br /&gt;
  &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt; &lt;br /&gt;
- &amp;lt;SMSSendMultipleResult xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; xmlns:xsd=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot; xmlns=&amp;quot;http://upsidewireless.com/webservice/sms&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;isOk&amp;gt;false&amp;lt;/isOk&amp;gt; &lt;br /&gt;
  &amp;lt;successCount&amp;gt;0&amp;lt;/successCount&amp;gt; &lt;br /&gt;
  &amp;lt;failedCount&amp;gt;0&amp;lt;/failedCount&amp;gt; &lt;br /&gt;
  &amp;lt;errorMessages&amp;gt;No recipients&amp;lt;/errorMessages&amp;gt; &lt;br /&gt;
  &amp;lt;/SMSSendMultipleResult&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Excess maximum recipients - no message will be sent'''&lt;br /&gt;
----&lt;br /&gt;
  &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt; &lt;br /&gt;
- &amp;lt;SMSSendMultipleResult xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; xmlns:xsd=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot; xmlns=&amp;quot;http://upsidewireless.com/webservice/sms&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;isOk&amp;gt;false&amp;lt;/isOk&amp;gt; &lt;br /&gt;
  &amp;lt;successCount&amp;gt;0&amp;lt;/successCount&amp;gt; &lt;br /&gt;
  &amp;lt;failedCount&amp;gt;26&amp;lt;/failedCount&amp;gt; &lt;br /&gt;
  &amp;lt;errorMessages&amp;gt;Excess maximum recipients (25)&amp;lt;/errorMessages&amp;gt; &lt;br /&gt;
  &amp;lt;errorNumbers&amp;gt;17788580767,16046668888,17788456789, 456789, 123456, 65743211, ...&amp;lt;/errorNumbers&amp;gt; &lt;br /&gt;
  &amp;lt;/SMSSendMultipleResult&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Partial Success - some messages will not be sent (in the below example 2)'''&lt;br /&gt;
----&lt;br /&gt;
  &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt; &lt;br /&gt;
- &amp;lt;SMSSendMultipleResult xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; xmlns:xsd=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot; xmlns=&amp;quot;http://upsidewireless.com/webservice/sms&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;isOk&amp;gt;false&amp;lt;/isOk&amp;gt; &lt;br /&gt;
  &amp;lt;successCount&amp;gt;3&amp;lt;/successCount&amp;gt; &lt;br /&gt;
  &amp;lt;failedCount&amp;gt;2&amp;lt;/failedCount&amp;gt; &lt;br /&gt;
  &amp;lt;errorMessages&amp;gt;recipient length invalid,recipient length invalid&amp;lt;/errorMessages&amp;gt; &lt;br /&gt;
  &amp;lt;errorNumbers&amp;gt;456789,123456&amp;lt;/errorNumbers&amp;gt; &lt;br /&gt;
  &amp;lt;/SMSSendMultipleResult&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bzurkovic</name></author>	</entry>

	<entry>
		<id>http://docs.upsidewireless.com/index.php?title=Error_codes_for_Send_Plain_Group</id>
		<title>Error codes for Send Plain Group</title>
		<link rel="alternate" type="text/html" href="http://docs.upsidewireless.com/index.php?title=Error_codes_for_Send_Plain_Group"/>
				<updated>2013-07-12T17:31:42Z</updated>
		
		<summary type="html">&lt;p&gt;Bzurkovic: New page: Send_Plain_Group is API function that allows you to send 25 messages to a group of recipients - a group is defined in your account. This page describes error statuses which Send_Plain_Grou...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Send_Plain_Group is API function that allows you to send 25 messages to a group of recipients - a group is defined in your account. This page describes error statuses which Send_Plain_Group can generate&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Send successful - all messages were sent'''&lt;br /&gt;
----&lt;br /&gt;
  &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt; &lt;br /&gt;
- &amp;lt;SMSSendMultipleResult xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; xmlns:xsd=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot; xmlns=&amp;quot;http://upsidewireless.com/webservice/sms&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;isOk&amp;gt;true&amp;lt;/isOk&amp;gt; &lt;br /&gt;
  &amp;lt;successCount&amp;gt;3&amp;lt;/successCount&amp;gt; &lt;br /&gt;
  &amp;lt;failedCount&amp;gt;0&amp;lt;/failedCount&amp;gt; &lt;br /&gt;
  &amp;lt;/SMSSendMultipleResult&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Failed sending or partial fail'''''&lt;br /&gt;
&lt;br /&gt;
'''No recipients - no message will be sent'''&lt;br /&gt;
----&lt;br /&gt;
  &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt; &lt;br /&gt;
- &amp;lt;SMSSendMultipleResult xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; xmlns:xsd=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot; xmlns=&amp;quot;http://upsidewireless.com/webservice/sms&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;isOk&amp;gt;false&amp;lt;/isOk&amp;gt; &lt;br /&gt;
  &amp;lt;successCount&amp;gt;0&amp;lt;/successCount&amp;gt; &lt;br /&gt;
  &amp;lt;failedCount&amp;gt;0&amp;lt;/failedCount&amp;gt; &lt;br /&gt;
  &amp;lt;errorMessages&amp;gt;No recipients&amp;lt;/errorMessages&amp;gt; &lt;br /&gt;
  &amp;lt;/SMSSendMultipleResult&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Excess maximum recipients - no message will be sent'''&lt;br /&gt;
----&lt;br /&gt;
  &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt; &lt;br /&gt;
- &amp;lt;SMSSendMultipleResult xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; xmlns:xsd=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot; xmlns=&amp;quot;http://upsidewireless.com/webservice/sms&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;isOk&amp;gt;false&amp;lt;/isOk&amp;gt; &lt;br /&gt;
  &amp;lt;successCount&amp;gt;0&amp;lt;/successCount&amp;gt; &lt;br /&gt;
  &amp;lt;failedCount&amp;gt;26&amp;lt;/failedCount&amp;gt; &lt;br /&gt;
  &amp;lt;errorMessages&amp;gt;Excess maximum recipients (25)&amp;lt;/errorMessages&amp;gt; &lt;br /&gt;
  &amp;lt;errorNumbers&amp;gt;17788580767,16046668888,17788456789, 456789, 123456, 65743211, ...&amp;lt;/errorNumbers&amp;gt; &lt;br /&gt;
  &amp;lt;/SMSSendMultipleResult&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Partial Success - some messages will not be sent (in the below example 2)'''&lt;br /&gt;
----&lt;br /&gt;
  &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt; &lt;br /&gt;
- &amp;lt;SMSSendMultipleResult xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; xmlns:xsd=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot; xmlns=&amp;quot;http://upsidewireless.com/webservice/sms&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;isOk&amp;gt;false&amp;lt;/isOk&amp;gt; &lt;br /&gt;
  &amp;lt;successCount&amp;gt;3&amp;lt;/successCount&amp;gt; &lt;br /&gt;
  &amp;lt;failedCount&amp;gt;2&amp;lt;/failedCount&amp;gt; &lt;br /&gt;
  &amp;lt;errorMessages&amp;gt;recipient length invalid,recipient length invalid&amp;lt;/errorMessages&amp;gt; &lt;br /&gt;
  &amp;lt;errorNumbers&amp;gt;456789,123456&amp;lt;/errorNumbers&amp;gt; &lt;br /&gt;
  &amp;lt;/SMSSendMultipleResult&amp;gt;&lt;/div&gt;</summary>
		<author><name>Bzurkovic</name></author>	</entry>

	<entry>
		<id>http://docs.upsidewireless.com/index.php?title=Salesforce</id>
		<title>Salesforce</title>
		<link rel="alternate" type="text/html" href="http://docs.upsidewireless.com/index.php?title=Salesforce"/>
				<updated>2013-03-08T16:11:26Z</updated>
		
		<summary type="html">&lt;p&gt;Bzurkovic: typo corrected&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;With our service you can connect your SalesForce.com account to send text messages to one or more contacts. [http://api.upsidewireless.com/samples/salesforce/salesforce.zip The sample code] is provided for your convenience. Feel free to use it and improve for your purposes. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Instructions'''&lt;br /&gt;
&lt;br /&gt;
1. This source code pack contains:&lt;br /&gt;
&lt;br /&gt;
a) upsideWirelessSMSAPI.cls&lt;br /&gt;
   - Stubs generated by Salesforce wsdl2apex for the SOAP service&lt;br /&gt;
&lt;br /&gt;
b) SMSAPI.cls&lt;br /&gt;
   - Connector class using upsideWirelessSMSAPI to send SMS messages to one or more Salesforce contact&lt;br /&gt;
&lt;br /&gt;
2. Should the API definition change and you have to regenerate the Apex stub classes, keep in mind that Salesforce wsdl2apex only supports wsdl with 1 porttype and 1 binding. Since SOAP service is used in this implementation, the wsdl needs to be trimmed down to remove porttype and binding other than 'SMSSoap'.&lt;br /&gt;
&lt;br /&gt;
3. Classes and methods in upsideWirelessSMSAPI corresponding to those parts of the API that are not used in this implementation are commented out.&lt;br /&gt;
&lt;br /&gt;
4. There are 2 versions of send SMS method in SMSAPI:&lt;br /&gt;
&lt;br /&gt;
a) public Boolean sendSMS(Contact recipient, String message)&lt;br /&gt;
   - a simpler version that sends SMS to a single contact and returns a boolean to indicate success or failure&lt;br /&gt;
&lt;br /&gt;
b) public Set&amp;lt;Id&amp;gt; sendSMSMultiple(List&amp;lt;Contact&amp;gt; recipients, String message)&lt;br /&gt;
   - sends SMS to multiple contacts and returns a set of contactIds to whom the send was successful&lt;br /&gt;
&lt;br /&gt;
5. Limitations on number of recipients&lt;br /&gt;
&lt;br /&gt;
a) The web services API supports up to 25 recipients. Your Salesforce app should limit the list of contacts &lt;br /&gt;
   passed into sendSMSMultiple() to 25 or fewer contacts. Or split long list of contacts into sublists &lt;br /&gt;
   of no more than 25 and call sendSMSMultiple() multiple times.&lt;br /&gt;
&lt;br /&gt;
b) Salesforce has a governor limit of 10 web services call in an apex request. So you can make at most 10 calls &lt;br /&gt;
   to sendSMSMultiple() in apex for a maximum of 250 recipients.&lt;br /&gt;
&lt;br /&gt;
6. International phone number&lt;br /&gt;
&lt;br /&gt;
a) To send to international mobile phone numbers outside the US, the reformatPhone() method needs to be modified to prepend the appropriate country codes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[APIs | back]]&lt;/div&gt;</summary>
		<author><name>Bzurkovic</name></author>	</entry>

	<entry>
		<id>http://docs.upsidewireless.com/index.php?title=PHP_Sending_SMS</id>
		<title>PHP Sending SMS</title>
		<link rel="alternate" type="text/html" href="http://docs.upsidewireless.com/index.php?title=PHP_Sending_SMS"/>
				<updated>2012-12-11T22:58:01Z</updated>
		
		<summary type="html">&lt;p&gt;Bzurkovic: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
// NOTE - THE CODE BELOW IS PROVIDED FOR ILLUSTRATION ONLY &lt;br /&gt;
&lt;br /&gt;
//SOME CHANGES MAY BE NEEDED TO GET IT TO WORK IN YOUR PROGRAM&lt;br /&gt;
&lt;br /&gt;
// plug in the values returned from&lt;br /&gt;
&lt;br /&gt;
// http://api.upsidewireless.com/soap/Authentication.asmx?op=GetParameters&lt;br /&gt;
&lt;br /&gt;
// please note that in order to use this and other examples and EnterpriseSMS &lt;br /&gt;
&lt;br /&gt;
//API your account must have permissions set to do so. &lt;br /&gt;
&lt;br /&gt;
$token = '----------------------------------------';&lt;br /&gt;
&lt;br /&gt;
$signature = '--------------------------------------';&lt;br /&gt;
&lt;br /&gt;
$api_call_data = array(&lt;br /&gt;
        'token' =&amp;gt; $token,&lt;br /&gt;
        'signature' =&amp;gt; $signature,&lt;br /&gt;
        'recipient' =&amp;gt; '+16043434343', &lt;br /&gt;
        'message' =&amp;gt; 'Hello World',&lt;br /&gt;
        'encoding' =&amp;gt; 'Seven' // Use 'Sixteen' if you are sending in Unicode&lt;br /&gt;
    );&lt;br /&gt;
    &lt;br /&gt;
$post_data = build_post_data($api_call_data );&lt;br /&gt;
&lt;br /&gt;
// Please refer to&lt;br /&gt;
&lt;br /&gt;
// http://api.upsidewireless.com/&lt;br /&gt;
&lt;br /&gt;
// for other sending methods&lt;br /&gt;
&lt;br /&gt;
$url = 'http://api.upsidewireless.com/soap/SMS.asmx?op=Send_Plain';&lt;br /&gt;
&lt;br /&gt;
$xml = do_post_request($url, $post_data);&lt;br /&gt;
&lt;br /&gt;
// be sure you look at the XML from above to see if there are any errors&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// Everything below is just function definitions&lt;br /&gt;
&lt;br /&gt;
function do_post_request($url, $data, $optional_headers = null) &lt;br /&gt;
{ &lt;br /&gt;
    $params = array('http' =&amp;gt; array('method' =&amp;gt; 'POST', 'content' =&amp;gt; $data));&lt;br /&gt;
    &lt;br /&gt;
    if ($optional_headers !== null) { &lt;br /&gt;
        $params['http']['header'] = $optional_headers; &lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    $ctx = stream_context_create($params); &lt;br /&gt;
    &lt;br /&gt;
    $fp = @fopen($url, 'rb', false, $ctx); &lt;br /&gt;
    if (!$fp) { &lt;br /&gt;
        throw new Exception(&amp;quot;Problem with $url, $php_errormsg&amp;quot;); &lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    $response = @stream_get_contents($fp); &lt;br /&gt;
    &lt;br /&gt;
    if ($response === false) { &lt;br /&gt;
        throw new Exception(&amp;quot;Problem reading data from $url, $php_errormsg&amp;quot;); &lt;br /&gt;
    }&lt;br /&gt;
    return $response; &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function build_post_data($data, $prefix=null, $sep=&amp;quot;&amp;quot;, $key=&amp;quot;&amp;quot;) {&lt;br /&gt;
    &lt;br /&gt;
    $ret = array();&lt;br /&gt;
    &lt;br /&gt;
    foreach((array)$data as $k =&amp;gt; $v) {&lt;br /&gt;
&lt;br /&gt;
        $k = urlencode($k);&lt;br /&gt;
        &lt;br /&gt;
        if(is_int($k) &amp;amp;&amp;amp; $prefix != null) {&lt;br /&gt;
            $k = $prefix.$k;&lt;br /&gt;
        }&lt;br /&gt;
    &lt;br /&gt;
        if(!empty($key)) {&lt;br /&gt;
            $k = $key.&amp;quot;[&amp;quot;.$k.&amp;quot;]&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        if(is_array($v) || is_object($v)) {&lt;br /&gt;
            array_push($ret, build_post_data($v,&amp;quot;&amp;quot;,$sep,$k));&lt;br /&gt;
        } else {&lt;br /&gt;
            array_push($ret,$k.&amp;quot;=&amp;quot;.urlencode($v));&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if(empty($sep)) {&lt;br /&gt;
        $sep = ini_get(&amp;quot;arg_separator.output&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    return implode($sep, $ret);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
[[APIs | back]]&lt;/div&gt;</summary>
		<author><name>Bzurkovic</name></author>	</entry>

	</feed>