Documentación de la API de SMS

La puerta de enlace de nuestra API le permite conectarse a nuestras interfaces a través de HTTP/S y permite a sus aplicaciones integrar SMS a través de Internet. Nuestra API utiliza un punto final RESTful y nuestras cargas útiles de solicitud y respuesta están formateadas como JSON, pero también proporcionamos GET como alternativa.

SMPP

Es compatible con SMPP versión 3.4. Si necesita un enlace SMPP, póngase en contacto con sales@reach-data.com y estaremos encantados de configurárselo.

Autenticación

Todas las solicitudes requieren que se introduzcan su nombre de usuario y contraseña en el encabezado. Estos se pueden encontrar una vez que haya iniciado sesión en Asistencia > Desarrollador > Detalles de la API

Encabezado Descripción
username Su nombre de usuario de la API de Reach Interactive
password Su contraseña de la API de Reach Interactive
Código de estado HTTP
Código Descripción
200 Solicitud correcta
400 Los detalles no son correctos o faltan parámetros obligatorios
401 Datos de la cuenta no válidos
402 Sin créditos
403 La cuenta no tiene permiso para realizar esta acción.
500 Error de servicio.
503 El servicio no está disponible.
Códigos DLR

Los códigos DLR son los mismos para nuestras API y nuestros enlaces SMPP.

Código Descripción
000 Entregado
600 No hay créditos para enviar
601 Sin ruta
602 Número en la lista negra detectado
603 Número de destino erróneo
604 Número de origen erróneo
605 Cola de mensajes de SMSC de destino
606 Fallo al enviar SMSC de destino
607 Error general
608 Mensaje no deseado detectado
609 Período de validez vencido
610 Dirección de origen no autorizada
611 Código DLR desconocido
612 Enviar tiempo de espera
Mensajería

El URI para esta sección es

                            
                                 https://api.reach-interactive.com/sms/[Acción]
                            
                            
Acción de saldo

El URI para esta sección es

                            
                                GET/sms/balance
                            
                            

Parámetros obligatorios

No hay parámetros adicionales para el saldo

                                            
                                        using System;
                                        using System.IO;
                                        using System.Net;
                                        using System.Web.Script.Serialization;
                                        namespace Sms
                                        {
                                        class Program
                                        {
                                        static void Main(string[] args)
                                        {
                                        var serializer = new JavaScriptSerializer();
                                        try
                                        {
                                        var url = "http://api.reach-interactive.com/sms/balance";
                                        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                                        request.ContentType = "application/json";
                                        request.Method = "GET";
                                        request.Headers.Add("Username", "Su nombre de usuario de Reach");
                                        request.Headers.Add("Password", "Su contraseña de Reach");
                                        using (var response = (HttpWebResponse)request.GetResponse())
                                        {
                                        using (var reader = new StreamReader(response.GetResponseStream()))
                                        {
                                            var jsonResponse = reader.ReadToEnd();
                                            dynamic data = serializer.Deserialize<dynamic>(jsonResponse);
                                            Console.WriteLine("Correcto: {0}, Saldo: {1}, Descripción: {2}", 
                                                                data["Correcto"], 
                                                                data["Saldo"], 
                                                                data["Descripción"]);
                                        }
                                        }
                                        }
                                        catch (WebException err)
                                        {
                                        using (var response = err.Response.GetResponseStream())
                                        using (var reader = new StreamReader(response))
                                        {
                                        var jsonResponse = reader.ReadToEnd();
                                        try
                                        {
                                            dynamic data = serializer.Deserialize<dynamic>(jsonResponse);
                                            Console.WriteLine("Correcto: {0}, Descripción: {1}, Código de estado HTTP: {2}", 
                                                                data["Correcto"], 
                                                                data["Descripción"],
                                                                (int)((HttpWebResponse)err.Response).StatusCode);
                                        }
                                        catch (Exception)
                                        {
                                            Console.WriteLine(jsonResponse);
                                        }
                                        }
                                        }
                                        catch (Exception err)
                                        {
                                        Console.WriteLine(err.Message);
                                        }
                                        Console.ReadKey();
                                        }
                                        }
                                        }
                    
                
                                    
curl http://api.reach-interactive.com/sms/balance -H username: SuNombreDeUsuarioDeReach' -H password: SuContraseñaDeReach'; 
                    
                
                                    
<?php
    $url = "http://api.reach-interactive.com/sms/balance"; 
    // The data to send to the API
    $header = array();
    $header[] = 'Accept: application/json';
    $header[] = 'username: su nombre de usuario de Reach';
    $header[] = 'password: su contraseña de Reach';
    //cURL starts
    $crl = curl_init();
    curl_setopt($crl, CURLOPT_URL, $url);
    curl_setopt($crl, CURLOPT_HTTPHEADER, $header);
    curl_setopt($crl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($crl, CURLOPT_HTTPGET, true);                                                                                                            
                                                                                                                     
    $json_response = curl_exec($crl);
    $status = curl_getinfo($crl, CURLINFO_HTTP_CODE);
    if ( $status != 200 ) {
        die("Error: la llamada a la URL $url falló con el estado $status, response $json_response curl_error" . curl_error($crl) . " curl_errno " . curl_errno($crl));
    }
    else{
        $response = json_decode($json_response, true);
        print_r($response);
    }
    curl_close($crl); 
?>
                    
                
Enviar mensaje

Crea un nuevo objeto de mensaje. Devolvemos una matriz de cada id. generado. Por cada solicitud se puede introducir un máximo de 50 destinatarios.

                            
                                POST/sms/message
                            
                            

Parámetros obligatorios

Parámetro Descripción
to El número al que desea enviar el mensaje. Puede componerse de múltiples números separados por una «,» o «;».
from Por parte de quién aparecerá enviado el mensaje.
message El mensaje a enviar al teléfono, los primeros 160 caracteres serán un solo mensaje; todo lo que sobre se dividirá en mensajes de un tamaño de 153 caracteres.
Para Unicode, este es el texto codificado en hexadecimal
Para mensajería binaria, estos son los datos del usuario (140 octetos máximo)

Parámetros opcionales

Parámetro Descripción Por defecto
valid Cuántas horas necesita que intentemos enviar el SMS antes de que expire, el mínimo es de 15 minutos (0.25). 72
reference La referencia con la que desea que se guarde el mensaje en nuestro sistema.
callbackUrl La URL a la que desea que enviemos el informe de entrega. Para más información, consulte la sección de Informe de entrega a continuación
scheduled La fecha y hora en que desea que se envíe el mensaje (aaaa/MM/dd hh:mm)
coding El tipo de mensaje que desea enviar, 1 = Texto, 2 = Unicode, 3 = Binario 1
udh Encabezado de datos del usuario

Ejemplo de carga útil JSON

                               
{ 
    "to" : "447xxxxxxxxx", 
    "from" : "Reach", 
    "message" : "Prueba de envío Json" 
}
            
        
                                            
using System;
using System.Collections.Generic;
using System.IO;
using System.Net;
using System.Web.Script.Serialization;
namespace Sms
{
    class Program
    {
        static void Main(string[] args)
        {
            var serializer = new JavaScriptSerializer();
            try
            {
                var url = "http://api.reach-interactive.com/sms/message";
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                request.ContentType = "application/json";
                request.Method = "POST";
                request.Headers.Add("Username", "Su nombre de usuario de Reach");
                request.Headers.Add("Password", "Su contraseña de Reach");
                using (var streamWriter = new StreamWriter(request.GetRequestStream()))
                {
                    string json = "{ \"to\" : \"447xxxxxxxxx\", \"from\" : \"Reach\", \"message\" : \"Prueba de mensaje API\"}";
                    streamWriter.Write(json);
                    streamWriter.Flush();
                    streamWriter.Close();
                }
                using (var response = (HttpWebResponse)request.GetResponse())
                {
                    using (var reader = new StreamReader(response.GetResponseStream()))
                    {
                        var jsonResponse = reader.ReadToEnd();
                        dynamic data = serializer.Deserialize<dynamic>(jsonResponse);
                        foreach (Dictionary<string, dynamic> item in data)
                        {
                            Console.WriteLine("Correcto: {0}, Id.: {1}, Descripción: {2}", 
                                                item["Correcto"], 
                                                item["Id."], 
                                                item["Descripción"]);
                        }
                    }
                }
            }
            catch (WebException err)
            {
                using (var response = err.Response.GetResponseStream())
                using (var reader = new StreamReader(response))
                {
                    var jsonResponse = reader.ReadToEnd();
                    try
                    {
                        dynamic data = serializer.Deserialize<dynamic>(jsonResponse);
                        Console.WriteLine("Correcto: {0}, Descripción: {1}, Código de estado HTTP: {2}",
                            data["Correcto"],
                            data["Descripción"],
                            (int) ((HttpWebResponse) err.Response).StatusCode);
                    }
                    catch (Exception)
                    {
                        Console.WriteLine(jsonResponse);
                    }
                }
            }
            catch (Exception err)
            {
                Console.WriteLine(err.Message);
            }
            Console.ReadKey();
        }
    }
}
                    
                
                                            
                                                curl -X "POST" http://api.reach-interactive.com/sms/message -H username: SuNombreDeUsuarioDeReach -H password: SuContraseñaDeReach -H 
                                                "Content-Type: application/json -d "{\"to\":\"NúmeroDeTeléfonoDelDestinatario\",\"from\":\"NombreRemitente\",\"message\":\"SuMensaje\"}"
                    
                
                                    
<?php
    $url = "http://api.reach-interactive.com/sms/message"; 
    // The data to send to the API
    $header = array();
    $header[] = 'Accept: application/json';
    $header[] = 'Content-Type: application/json';
    $header[] = 'username: Su nombre de usuario de Reach';
    $header[] = 'password: Su contraseña de Reach';
    $data = array("to" => "447xxxxxxxxx", "from" => "Reach", "message" => "Prueba de envío API PHP");                                                                    
    $data_string = json_encode($data); 
    //cURL starts
    $crl = curl_init();
    curl_setopt($crl, CURLOPT_URL, $url);
    curl_setopt($crl, CURLOPT_HTTPHEADER, $header);
    curl_setopt($crl, CURLOPT_RETURNTRANSFER, true);  
    curl_setopt($crl, CURLOPT_POSTFIELDS, $data_string); 
    curl_setopt($crl, CURLOPT_CUSTOMREQUEST, "POST");                                                                                                            
                                                                                                                     
    $json_response = curl_exec($crl);
    $status = curl_getinfo($crl, CURLINFO_HTTP_CODE);
    if ( $status != 200 ) {
        die("Error: la llamada a la URL $url falló con el estado $status, response $json_response curl_error" . curl_error($crl) . " curl_errno " . curl_errno($crl));
    }
    else{
        $response = json_decode($json_response, true);
        print_r($response);
    }
    curl_close($crl); 
?>
                    
                
Detalles del mensaje

Esto se puede utilizar para recuperar los detalles de un mensaje enviado a través de nuestros enlaces API o SMPP.

                            
                            GET/sms/message/{Id}
                     
                 
                                            
using System;
using System.IO;
using System.Net;
using System.Web.Script.Serialization;
namespace Sms
{
    class Program
    {
        static void Main(string[] args)
        {
            var serializer = new JavaScriptSerializer();
            try
            {
                var url = "http://api.reach-interactive.com/sms/message/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa";
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                request.ContentType = "application/json";
                request.Method = "GET";
                request.Headers.Add("Username", "Su nombre de usuario de Reach");
                request.Headers.Add("Password", "Su contraseña de Reach");
                using (var response = (HttpWebResponse)request.GetResponse())
                {
                    using (var reader = new StreamReader(response.GetResponseStream()))
                    {
                        var jsonResponse = reader.ReadToEnd();
                        dynamic data = serializer.Deserialize<dynamic>(jsonResponse);
                        Console.WriteLine("Correcto: {0}, To: {1}, From: {2}, Text: {3}, Sent: {4}, Status: {5}, Delivered: {6}, Code: {7}, Description: {8}",
                                            data[0]["Success"],
                                            data[0]["To"],
                                            data[0]["Originator"],
                                            data[0]["Text"],
                                            data[0]["Sent Date"],
                                            data[0]["Message Status"],
                                            data[0]["Delivered Date"],
                                            data[0]["DlrCode"],
                                            data[0]["Description"]);
                    }
                }
            }
            catch (WebException err)
            {
                using (var response = err.Response.GetResponseStream())
                using (var reader = new StreamReader(response))
                {
                    var jsonResponse = reader.ReadToEnd();
                    try
                    {
                        dynamic data = serializer.Deserialize<dynamic>(jsonResponse);
                        Console.WriteLine("Correcto: {0}, Description: {1}, Código de estado HTTP: {2}", 
                                            data["Correcto"], 
                                            data["Description"],
                                            (int)((HttpWebResponse)err.Response).StatusCode);
                    }
                    catch (Exception)
                    {
                        Console.WriteLine(jsonResponse);
                    }
                }
            }
            catch (Exception err)
            {
                Console.WriteLine(err.Message);
            }
            Console.ReadKey();
        }
    }
}
                    
                
                                    
curl http://http-1-uat.reach-interactive.com/sms/message/{id} -H username: SuNombreDeUsuarioDeReach -H password: SuContraseñaDeReach
                    
                
                                    
<?php
    $url = "http://api.reach-interactive.com/sms/message/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"; 
    // The data to send to the API
    $header = array();
    $header[] = 'Aceptar: application/json';
    $header[] = 'username: Su nombre de usuario de Reach';
    $header[] = 'password: Su contraseña de Reach';
    //cURL starts
    $crl = curl_init();
    curl_setopt($crl, CURLOPT_URL, $url);
    curl_setopt($crl, CURLOPT_HTTPHEADER, $header);
    curl_setopt($crl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($crl, CURLOPT_HTTPGET, true);                                                                                                            
                                                                                                                     
    $json_response = curl_exec($crl);
    $status = curl_getinfo($crl, CURLINFO_HTTP_CODE);
    if ( $status != 200 ) {
        die("Error: la llamada a la URL $url falló con el estado $status, response $json_response curl_error" . curl_error($crl) . " curl_errno " . curl_errno($crl));
    }
    else{
        $response = json_decode($json_response, true);
        print_r($response);
    }
    curl_close($crl); 
?>
                    
                

Respuesta devuelta

                            
[{
    "Method":"H",
    "To":"447xxxxxxxxx",
    "Originator":"Reach",
    "Text":"Su Mensaje",
    "Sent Date":"2016-06-23T15:27:08.497",
    "Message Status":"Entregado",
    "Delivered Date":"2016-06-23T15:27:17.973",
    "DlrCode":"000",
    "Description":"Código de error desconocido",
    "Reference":"",
    "Success":true
}]
            
        
Eliminar mensaje

Esto se puede utilizar para eliminar un mensaje programado que no se ha enviado.

                            
DELETE  /sms/message/{Id}
            
        
                                            
using System;
using System.IO;
using System.Net;
using System.Web.Script.Serialization;
namespace Sms
{
    class Program
    {
        static void Main(string[] args)
        {
            var serializer = new JavaScriptSerializer();
            try
            {
                var url = "http://api.reach-interactive.com/sms/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa";
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                request.ContentType = "application/json";
                request.Method = "DELETE";
                request.Headers.Add("Username", "Su nombre de usuario de Reach");
                request.Headers.Add("Password", "Su contraseña de Reach");
                using (var response = (HttpWebResponse)request.GetResponse())
                {
                    using (var reader = new StreamReader(response.GetResponseStream()))
                    {
                        var jsonResponse = reader.ReadToEnd();
                        dynamic data = serializer.Deserialize(jsonResponse);
                        Console.WriteLine("Correcto: {0}, Description: {1}", 
                                            data["Success"], 
                                            data["Description"]);
                    }
                }
            }
            catch (WebException err)
            {
                using (var response = err.Response.GetResponseStream())
                using (var reader = new StreamReader(response))
                {
                    var jsonResponse = reader.ReadToEnd();
                    try
                    {
                        dynamic data = serializer.Deserialize  (jsonResponse);
                        Console.WriteLine("Correcto: {0}, Description: {1}, Código de estado HTTP: {2}", 
                                            data["Success"], 
                                            data["Description"],
                                            (int)((HttpWebResponse)err.Response).StatusCode);
                    }
                    catch (Exception)
                    {
                        Console.WriteLine(jsonResponse);
                    }
                }
            }
            catch (Exception err)
            {
                Console.WriteLine(err.Message);
            }
            Console.ReadKey();
        }
    }
}
                    
                
                                            
curl -X "DELETE" http://api.reach-interactive.com/sms/message/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa -H username: SuNombreDeUsuarioDeReach -H password: SuContraseñaDeReach
                    
                
                                    
<?php
    $url = "http://api.reach-interactive.com/sms/message/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"; 
    // Los datos a enviar a la API
    $header = array();
    $header[] = 'Aceptar: application/json';
    $header[] = 'username: Su nombre de usuario de Reach';
    $header[] = 'password: Su contraseña de Reach';
    //cURL starts
    $crl = curl_init();
    curl_setopt($crl, CURLOPT_URL, $url);
    curl_setopt($crl, CURLOPT_HTTPHEADER, $header);
    curl_setopt($crl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($crl, CURLOPT_CUSTOMREQUEST, "DELETE");	                                                                                                   
                                                                                                                     
    $json_response = curl_exec($crl);
    $status = curl_getinfo($crl, CURLINFO_HTTP_CODE);
    if ( $status != 200 ) {
        die("Error: la llamada a la URL $url falló con el estado $status, response $json_response curl_error" . curl_error($crl) . " curl_errno " . curl_errno($crl));
    }
    else{
        $response = json_decode($json_response, true);
        print_r($response);
    }
    curl_close($crl); 
?>
                    
                

Respuesta devuelta

                            
{
    "Success":true,
    "Id":"aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
    "Description":"Id. eliminado"
}
            
        
Informe de entrega

Podemos proporcionar una respuesta HTTP GET del mensaje
Estos son los parámetros que se devolverán

Parámetro Descripción
msgid El id. que se suministró originalmente en la llamada a API
msisdn El número del que procede el informe de entrega
timestamp La fecha y hora del informe de entrega
status El estado del informe de entrega
code El código DLR del mensaje

Información adicional

Si necesita más información en la devolución de llamada, puede añadirla a la URL que ha proporcionado.
Por ejemplo, si usted escribe https://www.yourdomain.com/?CustomerId=123, la llamada que se devuelve es la siguiente

                                    https://www.yourdomain.com/?CustomerId=123
                                        &MsgId=aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa
                                        &MSISDN=447xxxxxxxxx&Timestamp=dd/MM/yyyy 
                                        hh:mm:ss&Status=Delivered&Code=000
                                    
                                    

Estado

Estado Descripción
delivered Entregado con éxito.
rejected Mensaje rechazado.
expired No se ha podido entregar el mensaje dentro de un plazo de tiempo válido.
undelivered No se ha entregado el mensaje.
Mensajes entrantes

Después de comprar un número de entrada largo o una palabra clave de código corto. vaya a Bandeja de entrada > Bandeja de entrada en el menú para ver/editar la configuración de cada mensaje entrante.

Documentación de la API de SMS

La puerta de enlace de nuestra API le permite conectarse a nuestras interfaces a través de HTTP/S y permite a sus aplicaciones integrar SMS a través de Internet. Nuestra API utiliza un punto final RESTful y nuestras cargas útiles de solicitud y respuesta están formateadas como JSON, pero también proporcionamos GET como alternativa.

SMPP

Es compatible con SMPP versión 3.4. Si necesita un enlace SMPP, póngase en contacto con sales@reach-data.com y estaremos encantados de configurárselo.

Autenticación

Todas las solicitudes requieren que se introduzcan su nombre de usuario y contraseña en el encabezado. Estos se pueden encontrar una vez que haya iniciado sesión en Asistencia > Desarrollador > Detalles de la API

Encabezado Descripción
username Su nombre de usuario de la API de Reach Interactive
password Su contraseña de la API de Reach Interactive
Código de estado HTTP
Código Descripción
200 Solicitud correcta
400 Los detalles no son correctos o faltan parámetros obligatorios
401 Datos de la cuenta no válidos
402 Sin créditos
403 La cuenta no tiene permiso para realizar esta acción.
500 Error de servicio.
503 El servicio no está disponible.
Códigos DLR

Los códigos DLR son los mismos para nuestras API y nuestros enlaces SMPP.

Código Descripción
000 Entregado
600 No hay créditos para enviar
601 Sin ruta
602 Número en la lista negra detectado
603 Número de destino erróneo
604 Número de origen erróneo
605 Cola de mensajes de SMSC de destino
606 Fallo al enviar SMSC de destino
607 Error general
608 Mensaje no deseado detectado
609 Período de validez vencido
610 Dirección de origen no autorizada
611 Código DLR desconocido
612 Enviar tiempo de espera
Mensajería

El URI para esta sección es

            
                                 https://api.reach-interactive.com/sms/[Acción]
                            
                            
Acción de saldo

El URI para esta sección es

            
                                GET/sms/balance
                            
                            

Parámetros obligatorios

No hay parámetros adicionales para el saldo

                    
                                        using System;
                                        using System.IO;
                                        using System.Net;
                                        using System.Web.Script.Serialization;
                                        namespace Sms
                                        {
                                        class Program
                                        {
                                        static void Main(string[] args)
                                        {
                                        var serializer = new JavaScriptSerializer();
                                        try
                                        {
                                        var url = "http://api.reach-interactive.com/sms/balance";
                                        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                                        request.ContentType = "application/json";
                                        request.Method = "GET";
                                        request.Headers.Add("Username", "Su nombre de usuario de Reach");
                                        request.Headers.Add("Password", "Su contraseña de Reach");
                                        using (var response = (HttpWebResponse)request.GetResponse())
                                        {
                                        using (var reader = new StreamReader(response.GetResponseStream()))
                                        {
                                            var jsonResponse = reader.ReadToEnd();
                                            dynamic data = serializer.Deserialize<dynamic>(jsonResponse);
                                            Console.WriteLine("Correcto: {0}, Saldo: {1}, Descripción: {2}", 
                                                                data["Correcto"], 
                                                                data["Saldo"], 
                                                                data["Descripción"]);
                                        }
                                        }
                                        }
                                        catch (WebException err)
                                        {
                                        using (var response = err.Response.GetResponseStream())
                                        using (var reader = new StreamReader(response))
                                        {
                                        var jsonResponse = reader.ReadToEnd();
                                        try
                                        {
                                            dynamic data = serializer.Deserialize<dynamic>(jsonResponse);
                                            Console.WriteLine("Correcto: {0}, Descripción: {1}, Código de estado HTTP: {2}", 
                                                                data["Correcto"], 
                                                                data["Descripción"],
                                                                (int)((HttpWebResponse)err.Response).StatusCode);
                                        }
                                        catch (Exception)
                                        {
                                            Console.WriteLine(jsonResponse);
                                        }
                                        }
                                        }
                                        catch (Exception err)
                                        {
                                        Console.WriteLine(err.Message);
                                        }
                                        Console.ReadKey();
                                        }
                                        }
                                        }
                    
                
                    
curl http://api.reach-interactive.com/sms/balance -H username: SuNombreDeUsuarioDeReach' -H password: SuContraseñaDeReach'; 
                    
                
                    
<?php
    $url = "http://api.reach-interactive.com/sms/balance"; 
    // The data to send to the API
    $header = array();
    $header[] = 'Accept: application/json';
    $header[] = 'username: su nombre de usuario de Reach';
    $header[] = 'password: su contraseña de Reach';
    //cURL starts
    $crl = curl_init();
    curl_setopt($crl, CURLOPT_URL, $url);
    curl_setopt($crl, CURLOPT_HTTPHEADER, $header);
    curl_setopt($crl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($crl, CURLOPT_HTTPGET, true);                                                                                                            
                                                                                                                     
    $json_response = curl_exec($crl);
    $status = curl_getinfo($crl, CURLINFO_HTTP_CODE);
    if ( $status != 200 ) {
        die("Error: la llamada a la URL $url falló con el estado $status, response $json_response curl_error" . curl_error($crl) . " curl_errno " . curl_errno($crl));
    }
    else{
        $response = json_decode($json_response, true);
        print_r($response);
    }
    curl_close($crl); 
?>
                    
                
Enviar mensaje

Crea un nuevo objeto de mensaje. Devolvemos una matriz de cada id. generado. Por cada solicitud se puede introducir un máximo de 50 destinatarios.

            
                                POST/sms/message
                            
                            

Parámetros obligatorios

Parámetro Descripción
to El número al que desea enviar el mensaje. Puede componerse de múltiples números separados por una "," o ";".
from Por parte de quién aparecerá enviado el mensaje.
message El mensaje a enviar al teléfono, los primeros 160 caracteres serán un solo mensaje; todo lo que sobre se dividirá en mensajes de un tamaño de 153 caracteres.
Para Unicode, este es el texto codificado en hexadecimal
Para mensajería binaria, estos son los datos del usuario (140 octetos máximo)

Parámetros opcionales

Parámetro Descripción Por defecto
valid Cuántas horas necesita que intentemos enviar el SMS antes de que expire, el mínimo es de 15 minutos (0.25). 72
reference La referencia con la que desea que se guarde el mensaje en nuestro sistema.
callbackurl La URL a la que desea que enviemos el informe de entrega. Para más información, consulte la sección de Informe de entrega a continuación
scheduled La fecha y hora en que desea que se envíe el mensaje (aaaa/MM/dd hh:mm)
coding El tipo de mensaje que desea enviar, 1 = Texto, 2 = Unicode, 3 = Binario 1
udh Encabezado de datos del usuario

Ejemplo de carga útil JSON

               
{ 
    "to" : "447xxxxxxxxx", 
    "from" : "Reach", 
    "message" : "Prueba de envío Json" 
}
            
        
                    
using System;
using System.Collections.Generic;
using System.IO;
using System.Net;
using System.Web.Script.Serialization;
namespace Sms
{
    class Program
    {
        static void Main(string[] args)
        {
            var serializer = new JavaScriptSerializer();
            try
            {
                var url = "http://api.reach-interactive.com/sms/message";
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                request.ContentType = "application/json";
                request.Method = "POST";
                request.Headers.Add("Username", "Su nombre de usuario de Reach");
                request.Headers.Add("Password", "Su contraseña de Reach");
                using (var streamWriter = new StreamWriter(request.GetRequestStream()))
                {
                    string json = "{ \"to\" : \"447xxxxxxxxx\", \"from\" : \"Reach\", \"message\" : \"Prueba de mensaje API\"}";
                    streamWriter.Write(json);
                    streamWriter.Flush();
                    streamWriter.Close();
                }
                using (var response = (HttpWebResponse)request.GetResponse())
                {
                    using (var reader = new StreamReader(response.GetResponseStream()))
                    {
                        var jsonResponse = reader.ReadToEnd();
                        dynamic data = serializer.Deserialize<dynamic>(jsonResponse);
                        foreach (Dictionary<string, dynamic> item in data)
                        {
                            Console.WriteLine("Correcto: {0}, Id.: {1}, Descripción: {2}", 
                                                item["Correcto"], 
                                                item["Id."], 
                                                item["Descripción"]);
                        }
                    }
                }
            }
            catch (WebException err)
            {
                using (var response = err.Response.GetResponseStream())
                using (var reader = new StreamReader(response))
                {
                    var jsonResponse = reader.ReadToEnd();
                    try
                    {
                        dynamic data = serializer.Deserialize<dynamic>(jsonResponse);
                        Console.WriteLine("Correcto: {0}, Descripción: {1}, Código de estado HTTP: {2}",
                            data["Correcto"],
                            data["Descripción"],
                            (int) ((HttpWebResponse) err.Response).StatusCode);
                    }
                    catch (Exception)
                    {
                        Console.WriteLine(jsonResponse);
                    }
                }
            }
            catch (Exception err)
            {
                Console.WriteLine(err.Message);
            }
            Console.ReadKey();
        }
    }
}
                    
                
                            
                                                curl -X "POST" http://api.reach-interactive.com/sms/message -H username: SuNombreDeUsuarioDeReach -H password: SuContraseñaDeReach -H 
                                                "Content-Type: application/json -d "{\"to\":\"NúmeroDeTeléfonoDelDestinatario\",\"from\":\"NombreRemitente\",\"message\":\"SuMensaje\"}"
                    
                
                    
<?php
    $url = "http://api.reach-interactive.com/sms/message"; 
    // The data to send to the API
    $header = array();
    $header[] = 'Accept: application/json';
    $header[] = 'Content-Type: application/json';
    $header[] = 'username: Su nombre de usuario de Reach';
    $header[] = 'password: Su contraseña de Reach';
    $data = array("to" => "447xxxxxxxxx", "from" => "Reach", "message" => "Prueba de envío API PHP");                                                                    
    $data_string = json_encode($data); 
    //cURL starts
    $crl = curl_init();
    curl_setopt($crl, CURLOPT_URL, $url);
    curl_setopt($crl, CURLOPT_HTTPHEADER, $header);
    curl_setopt($crl, CURLOPT_RETURNTRANSFER, true);  
    curl_setopt($crl, CURLOPT_POSTFIELDS, $data_string); 
    curl_setopt($crl, CURLOPT_CUSTOMREQUEST, "POST");                                                                                                            
                                                                                                                     
    $json_response = curl_exec($crl);
    $status = curl_getinfo($crl, CURLINFO_HTTP_CODE);
    if ( $status != 200 ) {
        die("Error: la llamada a la URL $url falló con el estado $status, response $json_response curl_error" . curl_error($crl) . " curl_errno " . curl_errno($crl));
    }
    else{
        $response = json_decode($json_response, true);
        print_r($response);
    }
    curl_close($crl); 
?>
                    
                
Detalles del mensaje

Esto se puede utilizar para recuperar los detalles de un mensaje enviado a través de nuestros enlaces API o SMPP.

            
                            GET/sms/message/{Id}
                     
                 
                    
using System;
using System.IO;
using System.Net;
using System.Web.Script.Serialization;
namespace Sms
{
    class Program
    {
        static void Main(string[] args)
        {
            var serializer = new JavaScriptSerializer();
            try
            {
                var url = "http://api.reach-interactive.com/sms/message/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa";
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                request.ContentType = "application/json";
                request.Method = "GET";
                request.Headers.Add("Username", "Su nombre de usuario de Reach");
                request.Headers.Add("Password", "Su contraseña de Reach");
                using (var response = (HttpWebResponse)request.GetResponse())
                {
                    using (var reader = new StreamReader(response.GetResponseStream()))
                    {
                        var jsonResponse = reader.ReadToEnd();
                        dynamic data = serializer.Deserialize<dynamic>(jsonResponse);
                        Console.WriteLine("Correcto: {0}, To: {1}, From: {2}, Text: {3}, Sent: {4}, Status: {5}, Delivered: {6}, Code: {7}, Description: {8}",
                                            data[0]["Success"],
                                            data[0]["To"],
                                            data[0]["Originator"],
                                            data[0]["Text"],
                                            data[0]["Sent Date"],
                                            data[0]["Message Status"],
                                            data[0]["Delivered Date"],
                                            data[0]["DlrCode"],
                                            data[0]["Description"]);
                    }
                }
            }
            catch (WebException err)
            {
                using (var response = err.Response.GetResponseStream())
                using (var reader = new StreamReader(response))
                {
                    var jsonResponse = reader.ReadToEnd();
                    try
                    {
                        dynamic data = serializer.Deserialize<dynamic>(jsonResponse);
                        Console.WriteLine("Correcto: {0}, Description: {1}, Código de estado HTTP: {2}", 
                                            data["Correcto"], 
                                            data["Description"],
                                            (int)((HttpWebResponse)err.Response).StatusCode);
                    }
                    catch (Exception)
                    {
                        Console.WriteLine(jsonResponse);
                    }
                }
            }
            catch (Exception err)
            {
                Console.WriteLine(err.Message);
            }
            Console.ReadKey();
        }
    }
}
                    
                
                    
curl http://http-1-uat.reach-interactive.com/sms/message/{id} -H username: SuNombreDeUsuarioDeReach -H password: SuContraseñaDeReach
                    
                
                    
<?php
    $url = "http://api.reach-interactive.com/sms/message/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"; 
    // The data to send to the API
    $header = array();
    $header[] = 'Aceptar: application/json';
    $header[] = 'username: Su nombre de usuario de Reach';
    $header[] = 'password: Su contraseña de Reach';
    //cURL starts
    $crl = curl_init();
    curl_setopt($crl, CURLOPT_URL, $url);
    curl_setopt($crl, CURLOPT_HTTPHEADER, $header);
    curl_setopt($crl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($crl, CURLOPT_HTTPGET, true);                                                                                                            
                                                                                                                     
    $json_response = curl_exec($crl);
    $status = curl_getinfo($crl, CURLINFO_HTTP_CODE);
    if ( $status != 200 ) {
        die("Error: la llamada a la URL $url falló con el estado $status, response $json_response curl_error" . curl_error($crl) . " curl_errno " . curl_errno($crl));
    }
    else{
        $response = json_decode($json_response, true);
        print_r($response);
    }
    curl_close($crl); 
?>
                    
                

Respuesta devuelta

            
[{
    "Method":"H",
    "To":"447xxxxxxxxx",
    "Originator":"Reach",
    "Text":"Su Mensaje",
    "Sent Date":"2016-06-23T15:27:08.497",
    "Message Status":"Entregado",
    "Delivered Date":"2016-06-23T15:27:17.973",
    "DlrCode":"000",
    "Description":"Código de error desconocido",
    "Reference":"",
    "Success":true
}]
            
        
Eliminar mensaje

Esto se puede utilizar para eliminar un mensaje programado que no se ha enviado.

            
DELETE  /sms/message/{Id}
            
        
                    
using System;
using System.IO;
using System.Net;
using System.Web.Script.Serialization;
namespace Sms
{
    class Program
    {
        static void Main(string[] args)
        {
            var serializer = new JavaScriptSerializer();
            try
            {
                var url = "http://api.reach-interactive.com/sms/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa";
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                request.ContentType = "application/json";
                request.Method = "DELETE";
                request.Headers.Add("Username", "Su nombre de usuario de Reach");
                request.Headers.Add("Password", "Su contraseña de Reach");
                using (var response = (HttpWebResponse)request.GetResponse())
                {
                    using (var reader = new StreamReader(response.GetResponseStream()))
                    {
                        var jsonResponse = reader.ReadToEnd();
                        dynamic data = serializer.Deserialize(jsonResponse);
                        Console.WriteLine("Correcto: {0}, Description: {1}", 
                                            data["Success"], 
                                            data["Description"]);
                    }
                }
            }
            catch (WebException err)
            {
                using (var response = err.Response.GetResponseStream())
                using (var reader = new StreamReader(response))
                {
                    var jsonResponse = reader.ReadToEnd();
                    try
                    {
                        dynamic data = serializer.Deserialize(jsonResponse);
                        Console.WriteLine("Correcto: {0}, Description: {1}, Código de estado HTTP: {2}", 
                                            data["Success"], 
                                            data["Description"],
                                            (int)((HttpWebResponse)err.Response).StatusCode);
                    }
                    catch (Exception)
                    {
                        Console.WriteLine(jsonResponse);
                    }
                }
            }
            catch (Exception err)
            {
                Console.WriteLine(err.Message);
            }
            Console.ReadKey();
        }
    }
}
                    
                
                            
curl -X "DELETE" http://api.reach-interactive.com/sms/message/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa -H username: SuNombreDeUsuarioDeReach -H password: SuContraseñaDeReach
                    
                
                    
<?php
    $url = "http://api.reach-interactive.com/sms/message/aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"; 
    // Los datos a enviar a la API
    $header = array();
    $header[] = 'Aceptar: application/json';
    $header[] = 'username: Su nombre de usuario de Reach';
    $header[] = 'password: Su contraseña de Reach';
    //cURL starts
    $crl = curl_init();
    curl_setopt($crl, CURLOPT_URL, $url);
    curl_setopt($crl, CURLOPT_HTTPHEADER, $header);
    curl_setopt($crl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($crl, CURLOPT_CUSTOMREQUEST, "DELETE");	                                                                                                   
                                                                                                                     
    $json_response = curl_exec($crl);
    $status = curl_getinfo($crl, CURLINFO_HTTP_CODE);
    if ( $status != 200 ) {
        die("Error: la llamada a la URL $url falló con el estado $status, response $json_response curl_error" . curl_error($crl) . " curl_errno " . curl_errno($crl));
    }
    else{
        $response = json_decode($json_response, true);
        print_r($response);
    }
    curl_close($crl); 
?>
                    
                

Respuesta devuelta

            
{
    "Success":true,
    "Id":"aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
    "Description":"Id. eliminado"
}
            
        
Informe de entrega

Podemos proporcionar una respuesta HTTP GET del mensaje
Estos son los parámetros que se devolverán

Parámetro Descripción
msgid El id. que se suministró originalmente en la llamada a API
msisdn El número del que procede el informe de entrega
timestamp La fecha y hora del informe de entrega
status El estado del informe de entrega
code El código DLR del mensaje

Información adicional

Si necesita más información en la devolución de llamada, puede añadirla a la URL que ha proporcionado.
Por ejemplo, si usted escribe https://www.yourdomain.com/?CustomerId=123, la llamada que se devuelve es la siguiente

            https://www.yourdomain.com/?CustomerId=123
                                        &MsgId=aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa
                                        &MSISDN=447xxxxxxxxx&Timestamp=dd/MM/yyyy 
                                        hh:mm:ss&Status=Delivered&Code=000
                                    
                                    

Estado

Estado Descripción
delivered Entregado con éxito.
rejected Mensaje rechazado.
expired No se ha podido entregar el mensaje dentro de un plazo de tiempo válido.
undelivered No se ha entregado el mensaje.
Mensajes entrantes

Después de comprar un número de entrada largo o una palabra clave de código corto. vaya a Bandeja de entrada > Bandeja de entrada en el menú para ver/editar la configuración de cada mensaje entrante.

Skinny Tan

Historias de éxito

Specch mark ¡El marketing de mensajes de texto nos da una rentabilidad de tres veces su coste! Speech mark

¿Tiene alguna pregunta? Hable con el equipo de Reach

FAQ y Artículos

ABRIR
ABRIR
ABRIR
ABRIR
ABRIR
ABRIR
ABRIR
PÓNGASE EN CONTACTO
soporte@reach-interactive.com
info@reach-interactive.com
+34 912 170 935
OFICINA EN MADRID
OFICINA CENTRAL EN UK
Datos de Reach Certificación
OFICINA EN MADRID
28046
Madrid
España
OFICINA CENTRAL EN UK
Atlas Office Park
First Point, Doncaster
DN4 5JT
Certificación
Premio Gold Trusted Service
Método de pago
Método de pago

©2002-2024 Todos los derechos reservados. Reach Interactive© es una marca registrada de Reach-Data Ltd, registrada en España. Número de NIF: N6060931J. Privacidad y Condiciones