LabsMobile API WebService Interface V 1 12 Es
LabsMobile API WebService Interface V 1 12 Es
Índice
Página
1 Introducción 3
1.1 Changelog 3
11 Recomendaciones 19
12 Glosario de términos 21
13 Alfabeto GSM 3.38 7-bit 23
2 / 28
API-SMS WebService Interface T. 34 93 100 35 65
18/04/2017 - v1.12 [email protected]
1 Introducción
Este documento sobre la API-SMS WebService Interface de LabsMobile. Está diseñado para
técnicos y clientes que quieran conectar sus aplicaciones a la plataforma de mensajería
SMS de LabsMobile. La finalidad de la integración es el envío de mensajes SMS (MT o Push
SMS) y las comunicaciones relacionadas (ACKs y consulta de crédito).
Este documento contiene una explicación detallada sobre el proceso de integración. Si tiene
alguna duda o necesita ejemplos de código contacte con su agente habitual LabsMobile o
en:
www.labsmobile.com
1.1 Changelog
v2.09 - 16/01/2016
- Consulta de precios
v2.10 - 16/03/2016
- Recepción de visitas (CLICKs)
v2.11 - 30/03/2016
- Nueva función de consulta de confirmaciones (ACK)
- Reintentos en recepción de confirmaciones (ACK)
- Creación de un subid siempre cuando se ha procesado una petición correctamente.
v2.12 - 18/04/2017
- Información de estado y errores en las confirmaciones ACK.
3 / 28
API-SMS WebService Interface T. 34 93 100 35 65
18/04/2017 - v1.12 [email protected]
IMPORTANTE: Todos estos parámetros se asignarán con los valores por defecto a todas la
cuentas.
http://api.labsmobile.com/ws/services/LabsMobileWsdl.php
La variable ‘XmlData’ debe estar codificada en UTF-8. De igual forma todos las respuestas y
mensajes enviados desde la plataforma LabsMobile estarán codificados con el mismo juego
de caracteres (UTF-8). A continuación se presenta un ejemplo de formato XML para un envío
simple. También se presentan todos los TAGS y opciones disponibles.
4 / 28
API-SMS WebService Interface T. 34 93 100 35 65
18/04/2017 - v1.12 [email protected]
Nombre Descripción
tpoa Opcional. Remitente del envío. Puede tener un valor numérico (longitud
máxima 14 dígitos) o alfanumérica (capacidad máxima 11 caracteres).
La plataforma de envío asigna un remitente por defecto si no se incluye
este tag en el formato xml.
Ejemplo: <test>1</test>
5 / 28
API-SMS WebService Interface T. 34 93 100 35 65
18/04/2017 - v1.12 [email protected]
Nombre Descripción
Ejemplo: <ackurl>http://clientserver.com/
receive_ack.php</ackurl>
Ejemplo: <shortlink>1</shortlink>
Ejemplo: <clickurl>http://clientserver.com/
receive_click.php</clickurl>
6 / 28
API-SMS WebService Interface T. 34 93 100 35 65
18/04/2017 - v1.12 [email protected]
Nombre Descripción
IMPORTANTE: Los tags sms, recipient, msisdn y message son obligatorios. Envíos que no
contengan alguno de estos campos generarán el error correspondiente. De igual forma
generarán error los campos msisdn y message vacíos.
2.5 Autenticación
La autenticación de la cuenta se realiza con las variables username y password de la
llamada al WebService. Esta es la descripción de cada uno de estas variables:
Nombre Descripción
7 / 28
API-SMS WebService Interface T. 34 93 100 35 65
18/04/2017 - v1.12 [email protected]
Nombre Descripción
Código Descripción
8 / 28
API-SMS WebService Interface T. 34 93 100 35 65
18/04/2017 - v1.12 [email protected]
Código Descripción
IMPORTANTE: El filtro de mensajes duplicados bloqueará (no enviará) mensajes con el mismo
texto y remitente enviados al mismo número dentro de una misma hora. Por tanto, sólo se enviará el
primer mensaje y los duplicados (mismo texto) quedarán marcados como duplicados y no se
enviarán. Los mensajes duplicados son visibles en el BUSCADOR de la aplicación WebSMS.
9 / 28
API-SMS WebService Interface T. 34 93 100 35 65
18/04/2017 - v1.12 [email protected]
Durante el proceso de integración dispone del tag test para envíos de prueba. Serán envíos
simulados que NO se enviarán al móvil indicado y que son útiles para realizar las primeras
pruebas sin ningún coste. Los envíos de prueba no devolverán acuses de recibo (ACK) y se
podrán consultar en la aplicación WebSMS en el módulo BUSCADOR.
También puedes ponerte en contacto con nosotros si tienes cualquier duda o pregunta:
[email protected] ó +34 93 100 35 65.
10 / 28
API-SMS WebService Interface T. 34 93 100 35 65
18/04/2017 - v1.12 [email protected]
IMPORTANTE: Los mensajes concatenados tienen una capacidad máxima de hasta 459
caracteres. SMSLong sólo está disponible en algunos países debido a las restricciones de los
operadores.
El proceso de envío es el mismo pero se debe añadir el tag long al formato XML. Todos los
envíos con este tag serán tratados como mensajes SMSLong. Los demás tags son válidos y
tienen las mismas características. Un ejemplo de formato XML para un envío SMSLong sería:
11 / 28
API-SMS WebService Interface T. 34 93 100 35 65
18/04/2017 - v1.12 [email protected]
IMPORTANTE: Los mensajes UCS2 tienen una capacidad máxima de hasta 500 caracteres.
SMSUnicode sólo está disponible en algunos países debido a las restricciones de los operadores.
El proceso de envío es el mismo pero se debe añadir la variable ucs2 y long si el mensaje
contiene más de 70 caracteres. Todos los envíos con la variable ucs2 serán tratados como
mensajes SMSUnicode. Las demás variables son válidas y tienen las mismas características.
Un ejemplo de llamada para un envío SMSUnicode sería:
12 / 28
API-SMS WebService Interface T. 34 93 100 35 65
18/04/2017 - v1.12 [email protected]
IMPORTANTE: Los mensajes concatenados tienen una capacidad técnica de hasta 750 caracteres.
SMSCert sólo está implementada en algunos países.
El proceso de envío es el mismo pero se debe añadir el tag crt al formato XML. Todos los
envíos con este tag serán tratados como mensajes SMSCert. Los demás tags son válidos y
tienen las mismas características. Un ejemplo de formato XML para un envío SMSCert sería:
13 / 28
API-SMS WebService Interface T. 34 93 100 35 65
18/04/2017 - v1.12 [email protected]
6 Recepción de confirmaciones
(ACKs)
Un cliente de la API-SMS HTTP Interface de LabsMobile puede solicitar la recepción de
confirmaciones de entrega en su sistema de forma asíncrona. Mediante los tags subid y
ackurl del formato XML se pueden recibir notificaciones HTTP/GET para cada número móvil
incluido en el envío. Existen los siguientes niveles:
• gateway: cuando el mensaje se envía a la red GSM.
• operator: cuando el operador final se responsabiliza de la entrega.
• handset: cuando el móvil recibe el mensaje.
• error: se ha producido un error en la entrega del mensaje. El campo status=ko y el
campo desc especifica el tipo de error.
IMPORTANTE: es posible que algunos operadores o rutas no tengan disponible alguno de los
niveles de confirmación de entrega.
?acklevel=[gateway|operator|handset|error]&msisdn=…&status=[ok|
error]&desc=…&subid=…×tamp=YYYY-MM-DD%20HH:MM:SS
Variable Valores
status ok, ko
IMPORTANTE: la variable timestamp contiene horas en GMT ó UTC, y por tanto se debe modificar
para adaptarlas a la zona horaria u hora local de cada cliente.
IMPORTANTE: Si la llamada HTTP/GET genera error (estados HTTP 4xx o 5xx) se reintentará 5
veces la entrega de la confirmación ACK en los siguientes intervalos: 30s, 5m, 30m, 6h, 1d.
14 / 28
API-SMS WebService Interface T. 34 93 100 35 65
18/04/2017 - v1.12 [email protected]
7 Consulta de confirmaciones
(ACKs)
La consulta de estado a través de la API-SMS WebService Interface se realiza con llamadas
SOAP WDSL a:
http://api.labsmobile.com/ws/services/LabsMobileWsdl.php
username: xsd:string
password: xsd:string
subid: xsd:string
msisdn: xsd:string
Estado Descripción
IMPORTANTE: la variable timestamp contiene horas en GMT ó UTC y por tanto se debe modificar
para adaptarlas a la zona horaria u hora local de cada cliente.
15 / 28
API-SMS WebService Interface T. 34 93 100 35 65
18/04/2017 - v1.12 [email protected]
8 Recepción de visitas
(CLICKs)
Un cliente de la API-SMS HTTP Interface de LabsMobile puede solicitar la recepción de
forma asíncrona de visitas a la url que se marque como shortlink en un mensaje. Mediante
los tags subid, shortlink y clickurl del formato XML se pueden recibir notificaciones HTTP/
POST JSON para cada visita.
Para recibir estas notificaciones de visitas es necesario que el mensaje contenga el tag
shortlink y que su valor sea 1. Cuando se produzca una visita o click en el shortlink que
remplazará a la url original se notificará via llamada HTTP/POST JSON con los datos de la
visita.
La url de destino de la notificación se puede especificar en cada envío con el tag clickurl o
se puede establecer una url por defecto para todos los envíos en las Preferencias de
WebSMS.
Content-Type: application/json
Accept: application/json
{
"ip" : "XXX.XXX.XXX.XXX",
"useragent" : "…",
"subid" : "…",
"msisdn" : "…",
"timestamp" : "YYYY-MM-DD HH:mm:SS"
}
IMPORTANTE: la variable timestamp contiene horas en GMT ó UTC, y por tanto se debe modificar
para adaptarlas a la zona horaria u hora local de cada cliente.
16 / 28
API-SMS WebService Interface T. 34 93 100 35 65
30/03/2016 - v1.11 [email protected]
9 Consulta de créditos
La consulta de créditos a través de la API-SMS WebService Interface se realiza con llamadas
SOAP WDSL a:
http://api.labsmobile.com/ws/services/LabsMobileWsdl.php
username: xsd:string
password: xsd:string
17 / 28
API-SMS WebService Interface T. 34 93 100 35 65
30/03/2016 - v1.11 [email protected]
10 Consulta de precios
La consulta de los créditos que consume cada envío simple según el país de destino se
realiza con llamadas SOAP WDSL a:
http://api.labsmobile.com/ws/services/LabsMobileWsdl.php
username: xsd:string
password: xsd:string
countries: xsd:string
format: xsd:string
La variable countries puede contener el valor ALL para obtener los datos de todos los
países o especificando los códigos ISO de los países en concreto.
El formato del resultado puede ser en CSV (por defecto), XML o JSON.
FR,33,France,1.114
DE,49,Germany,1.8
XML
JSON
{"FR":{"isocode":"FR","prefix":"33","name":"France","credits":1.114},"DE":
{"isocode":"DE","prefix":"49","name":"Germany","credits":1.8}}
18 / 28
API-SMS WebService Interface T. 34 93 100 35 65
30/03/2016 - v1.11 [email protected]
11 Recomendaciones
En esta sección se presentan 10 puntos a comprobar en toda integración para asegurar que
todo envío a nuestra plataforma de envío SMS se realice sin problemas. En los manuales de
integración se explican en detalle todas las posibilidades y errores posibles. No obstante,
estas son las 10 causas más comunes de error y recomendamos su verificación.
Longitud del mensaje. El contenido del mensaje de texto debe tener un valor no nulo y no
sobrepasar los 160 caracteres que es el límite máximo de un SMS estándar (459 para
SMSLong).
Teléfonos válidos. Los teléfonos deben tener un formato numérico y precedidos con el
código de país. Para el envío a móviles españoles los móviles siempre empezarán por 346 o
347 y ocho dígitos más.
Capacidad del remitente. El campo remitente (TPOA) tiene una capacidad máxima de 16
dígitos o de 11 caracteres alfanuméricos. Los caracteres permitidos con letras y números
([A-Z|a-z|0-9]).
Caracteres no válidos en mensaje. El campo mensaje debe contener sólo caracteres del
alfabeto GSM 3.38 7-bit que se encuentra en todos los manuales. Recomendamos realizar la
conversión de algunos caracteres no soportados y la no posibilidad de otros caracteres no
soportados o reemplazables.
Versión y codificación XML. Todas las tecnologías, excepto HTTP/GET, utilizan XML como
lenguaje de definición de los parámetros del SMS. Se debe especificar la versión y el
alfabeto de codificación en la primera línea. Además de comprobar que corresponda con la
codificación real de envío para evitar errores de caracteres no válidos y escapar los
caracteres reservados:
< => <
> => >
& => &
" => "
' => '
19 / 28
API-SMS WebService Interface T. 34 93 100 35 65
30/03/2016 - v1.11 [email protected]
Pruebas. Durante el periodo de integración es posible realizar envíos con el parámetro test
activado. De esta forma se pueden realizar todo tipo de pruebas sin coste y verificar el
resultado en la aplicación WebSMS.
Límites de tráfico. Las cuentas LabsMobile tienen un límite por batch (mensajes en un
mismo envío, 10.000 por defecto) y un límite de SMS por día (50.000 por defecto). Si deseas
modificar estos límites ponte en contacto con nosotros.
20 / 28
API-SMS WebService Interface T. 34 93 100 35 65
30/03/2016 - v1.11 [email protected]
12 Glosario de términos
XML
MSISDN
Significa Mobile Station Integrated Services Digital Network e identifica a una suscripción en
la red GSM o UMTS. Es decir, identifica la suscripción y corresponde con el número de
teléfono de la tarjeta SIM. Tiene una longitud máxima de 15 dígitos y se compone por el
código de país y el número del abonado (en España 34 y 9 dígitos más).
ACK
Las notificaciones ACK son las confirmaciones de entrega o acuse de recibo de los
mensajes enviados por la plataforma de mensajería LabsMobile. Se notifica el momento
exacto en el mensaje SMS cambia de estado.
MT
Los mensajes SMS-MT (Short message Mobile Terminated) son los que tienen como destino
un dispositivo móvil. En esta documentación todos los mensajes enviados desde la
plataforma LabsMobile se consideran SMS-MT.
MO
Los mensajes SMS-MO (Short message Mobile Originated) son los enviados desde un
dispositivo móvil.
El destino puede ser por ejemplo un número asociado con la plataforma de mensajería
LabsMobile y que ésta pueda redirigir el mensaje (vía WebSMS, SMS, e-mail, http/GET, http/
POST, WebService, etc.).
UTF-8
Es un juego de caracteres que puede representar cualquier carácter Unicode. Incluye todos
los símbolos utilizados en los lenguajes latinos y anglosajones.
21 / 28
API-SMS WebService Interface T. 34 93 100 35 65
30/03/2016 - v1.11 [email protected]
GSM
Es el sistema global para las comunicaciones móviles (GSM, proviene del francés Groupe
Spécial Mobile). Sobre esta tecnología de alcance internacional se envían todos los
mensajes SMS a los dispositivos móviles.
TPOA
Corresponde con el origen del mensaje o remitente. El TPOA (Transmission Path Originating
Address) en un mensaje entre dos móviles siempre contiene el número móvil del emisor pero
con la plataforma de mensajería de LabsMobile puede tener cualquier valor respetando los
máximos de tamaño (16 dígitos si es numérico o 11 caracteres si es alfanumérico).
SSL
El protocolo criptográfico SSL (Secure Sockets Layer) asegura una comunicación segura a
través de Internet. En todas las comunicaciones con la SMSAPI y la aplicación WebSMS se
puede utilizar este protocolo para asegurar la privacidad y no vulnerabilidad de la
autenticación de cuenta.
API
http/GET
http/POST
WebService
22 / 28
API-SMS WebService Interface T. 34 93 100 35 65
30/03/2016 - v1.11 [email protected]
0x00 COMMERCIAL AT @ 64
23 / 28
API-SMS WebService Interface T. 34 93 100 35 65
30/03/2016 - v1.11 [email protected]
0x20 SPACE 32
0x27 APOSTROPHE 39
24 / 28
API-SMS WebService Interface T. 34 93 100 35 65
30/03/2016 - v1.11 [email protected]
0x2A ASTERISK * 42
0x2C COMMA , 44
0x2D HYPHEN-MINUS - 45
0x3A COLON : 58
0x3B SEMICOLON ; 59
25 / 28
API-SMS WebService Interface T. 34 93 100 35 65
30/03/2016 - v1.11 [email protected]
26 / 28
API-SMS WebService Interface T. 34 93 100 35 65
30/03/2016 - v1.11 [email protected]
27 / 28
API-SMS WebService Interface T. 34 93 100 35 65
30/03/2016 - v1.11 [email protected]
* Caracteres que se codifican con dos bytes y que ocupan dos espacios dentro de un SMS.
28 / 28