Está en la página 1de 12

GATEWAY SMS

Especificación Técnica

Version 3.2
El documento contiene especificaciones técnicas para el realizar el envío de contenido vía
SMS para diferentes operadores de Argentina.
Fecha: 30-enero-2015

Juan Pablo Analian


janalian@intertronmobile.com
Contenido
Historial de cambios................................................................................................................................ 2
Introducción ............................................................................................................................................ 3
Glosario ................................................................................................................................................... 3
Especificaciones para envíos................................................................................................................... 3
Método SendNow................................................................................................................................... 3
Parámetros de entrada ....................................................................................................................... 3
Respuesta del método ........................................................................................................................ 4
Ejemplo del método SendNow ........................................................................................................... 4
Soap 1.1............................................................................................................................................... 4
Soap 1.2............................................................................................................................................... 5
Soap 1.2............................................................................................................................................... 5
HTTP GET ............................................................................................................................................. 6
HTTP POST........................................................................................................................................... 6
Ejemplo del String de respuesta para un envío exitoso...................................................................... 6
Ejemplo del String de respuesta para un envío fallido ....................................................................... 6
Método SendBulk ................................................................................................................................... 7
Parámetros de entrada ....................................................................................................................... 7
Formato del parámetro pXML ............................................................................................................ 7
Descripción de los elementos del XML ........................................................................................... 7
Respuesta del método ........................................................................................................................ 8
Estado del envío (DLR) ............................................................................................................................ 9
Consulta de estado ............................................................................................................................. 9
Información técnica ........................................................................................................................ 9
Notificación de estado (DLR) ............................................................................................................ 10
Valores notificados........................................................................................................................ 10
Formato de las notificaciones por GET ......................................................................................... 10
Formato de las notificaciones por POST ....................................................................................... 10
Tablas de referencias ............................................................................................................................ 11
Carriers (idCarrier) ............................................................................................................................ 11

1
Historial de cambios
Fecha Responsable Versión Comentarios
2015-01-30 Analian, Juan Pablo 3.0 Cambio de formato del documento V2.
2018-03-13 Analian, Juan Pablo 3.1 Se suma el subdominio api y se ofrece la
opción de trasferir datos sobre https.
2018-04-12 Analian, Juan Pablo 3.2 Se suma la consulta y/o notificación del
estado de entrega del MT.

2
Introducción
En el siguiente documento se detallan las especificaciones necesarias para interactuar con los Web
Services (WS) que provee Intertron Mobile S.A. para el envío de SMS a dispositivos celulares y
determinar el estado de este envío.

El objetivo de este servicio, es proveer una interfaz que podrá ser integrada en aplicaciones de
terceros y poner a disposición este canal de comunicación.

Glosario
WSDL: Web Service Description Language

WS: Web Service

SMS: Short Message Service.

Carrier: operador móvil

XML: eXtensible Markup Language

MT: Mobile Terminated

Especificaciones para envíos


El servicio se encuentra publicado en la siguiente URL:

URL: https://api.intertronmobile.com/gateway/wsmessage.asmx ó

URL: http://api.intertronmobile.com/gateway/wsmessage.asmx

WSDL: http://api.intertronmobile.com/gateway/wsmessage.asmx?wsdl

Los métodos que expone este WS para el envío de SMS, son los siguientes:

 SendNow
 SendBulk

Los protocolos HTTP permitidos para consumir el servicio web, son los siguientes:

 POST
 GET
 SOAP 1.1
 SOAP 1.2

El acceso a estos servicios, requiere habilitar la IP de origen desde donde serán consumidos.

Método SendNow
Este método se utiliza para enviar mensajes instantáneos a un celular en particular. Cada llamada a
este servicio ejecuta el envío de un SMS (MT). Los parámetros recibidos son de tipo “string” pero
internamente se hacen las validaciones.

Parámetros de entrada
Nombre Tipo de dato Descripción

3
pUser string (50) Usuario que proveerá Intertron Mobile
pPassword string (50) Contraseña del usuario
pToNum String(20) Numero de celular que recibirá el mensaje
pToCompany String(2) Numero de compañía de celular. Código interno de Intertron
Mobile que hace referencia al Operador. (abajo especificado)
En caso de no contar con esta información, enviar el valor cero
(0).
pFromNum String(20) Número corto desde donde se envía el mensaje de texto. Valor
provisto por Intertron Mobile.
pMessage String(160) Mensaje de texto a enviar.
pmsgId String(150) Identificador único por transacción de quien consume el
servicio. Servirá para hacer un seguimiento y mapeo de cada
envío.

Respuesta del método


El método devuelve un string que contiene un XML. El XML especifica 2 parámetros de respuesta.

Nombre Tipo de dato Descripción


status int Indica el resultado de la operación. 0=se ha realizado el envío a
través del Operador especificado; otro valor; no se pudo
realizar el envío.
message string Descripción asociada al status (a modo de información)

Ejemplo del método SendNow


Soap 1.1
Request

POST /gateway/wsmessage.asmx HTTP/1.1


Host: api.intertronmobile.com
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://tempuri.org/SendNow"

<?xml version="1.0" encoding="utf-8"?>


<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<SendNow xmlns="http://tempuri.org/">
<pUser>string</pUser>
<pPassword>string</pPassword>
<pToNum>string</pToNum>
<pToCompany>string</pToCompany>
<pFromNum>string</pFromNum>
<pMessage>string</pMessage>
<pmsgId>string</pmsgId>
</SendNow>
</soap:Body>
</soap:Envelope>

Response

4
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>


<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<SendNowResponse xmlns="http://tempuri.org/">
<SendNowResult>string</SendNowResult>
</SendNowResponse>
</soap:Body>
</soap:Envelope>

Soap 1.2
Request

POST /gateway/wsmessage.asmx HTTP/1.1


Host: api.intertronmobile.com
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>


<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
<soap12:Body>
<SendNow xmlns="http://tempuri.org/">
<pUser>string</pUser>
<pPassword>string</pPassword>
<pToNum>string</pToNum>
<pToCompany>string</pToCompany>
<pFromNum>string</pFromNum>
<pMessage>string</pMessage>
<pmsgId>string</pmsgId>
</SendNow>
</soap12:Body>
</soap12:Envelope>

Soap 1.2
Response

HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>


<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
<soap12:Body>
<SendNowResponse xmlns="http://tempuri.org/">
<SendNowResult>string</SendNowResult>
</SendNowResponse>
</soap12:Body>

5
</soap12:Envelope>

HTTP GET
GET
/gateway/wsmessage.asmx/SendNow?pUser=string&pPassword=string&pToNum=string
&pToCompany=string&pFromNum=string&pMessage=string&pmsgId=string HTTP/1.1
Host: api.intertronmobile.com

Response

HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>


<string xmlns="http://tempuri.org/">string</string>

HTTP POST
POST /gateway/wsmessage.asmx/SendNow HTTP/1.1
Host: api.intertronmobile.com
Content-Type: application/x-www-form-urlencoded
Content-Length: length

pUser=string&pPassword=string&pToNum=string&pToCompany=string&pFromNum=stri
ng&pMessage=string&pmsgId=string

Response

HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>


<string xmlns="http://tempuri.org/">string</string>

Ejemplo del String de respuesta para un envío exitoso


<return>
<response>
<status>0</status>
<message>Success</message>
</response>
</return>

Ejemplo del String de respuesta para un envío fallido


<return>
<response>
<status>1</status>
<message> ERROR: LONGITUD DE TELEFONO INVALIDA</message>

6
</response>
</return>

Método SendBulk
Este método se utiliza para hacer envíos masivos. Cada llamada a este servicio ejecuta el envío de
uno o más mensajes (MT). Los parámetros recibidos son de tipo “string” pero internamente se hacen
las validaciones.

Parámetros de entrada
Nombre Tipo de dato Descripción
pUser string (50) Usuario que proveerá Intertron Mobile
pPassword string (50) Contraseña del usuario
pXML String Es un XML en el cual se detallan los Mensajes a
enviar, con sus datos correspondientes.

Formato del parámetro pXML


<sendbulkmessages>
<message>
<tonum>3513206838</tonum>
<fromnum>11011</fromnum>
<carrier>4</carrier>
<messagetext>Prueba SMSBULK</messagetext>
<traceids>2008232314</traceids>
<prioridad>10</prioridad>
<fechaexpiracion>03/06/2008</fechaexpiracion>
<fechaprogramada>02/06/2008</fechaprogramada>
<schedule>1</Schedule>
<wappushurl></wappushurl>
</message>
<sendbulkmessages>

Descripción de los elementos del XML


tonum: Numero de celular del usuario
Tipo de dato: long
Validación: 10 dígitos
Nota: El número debe ir sin el prefijo internacional 54, sin el 0 del DDN y sin el 15 del número.
Ejemplo: para el número +54 0351 155320689, debe ser 3515320689

fromnum: Numero Corto asignado por Intertron Mobile


Tipo de dato: long
Validación: 10 dígitos

carrier: id del operador (MOVISTAR, CLARO, PERSONAL, NEXTEL)


Tipo de dato: int
Nota: En caso de no saber el operador del número de teléfono, enviar el valor cero (0). Si tienen
información del operador, deben enviar los siguientes Id respectivamente:

 1 Movistar
 3 Claro
 4 Personal

7
 8 Nextel

messagetext: Texto del SMS


Tipo de dato: string
Nota: Debe tener un máximo de 160 caracteres, pero lo ideal es 140 para compatibilidad con
tecnologías anteriores. Incorporar el TAG xml ![CDATA[String]] para evitar problemas de parsing en
XML. Los mensajes no deben llevar caracteres raros ni con tilde.

traceids: Id de referencia con sistema propio de cada cliente.


Tipo de dato: string

prioridad: número que define el orden de prioridad de los mensaje, tomando 0 como mayor
prioridad.
Tipo de dato: int
Nota: Los valores permitidos son de 0 a 10

fechaexpiracion: Fecha de expiración del SMS, una vez pasada esta fecha el SMS no se intentará de
enviar. Debe ser obligatoria la carga.
Tipo de dato: Date
Nota: El formato es dd/mm/yyyy

fechaprogramada: Es la fecha en la cual el SMS se procesará y se preparará para su envió. Debe ser
obligatoria la carga.
Tipo de dato: Date
Nota: El formato es dd/mm/yyyy hh:mm:ss

schedule: Los Schedule son configuraciones de Días y Horarios en los cuales está permitido enviar el
SMS.
Tipo de dato: int
Nota: Deberá pedir a Intertron Mobile que configure un Schedule de acuerdo a sus necesidades,
luego de la configuración se le informará el número que debe enviar en este campo. Si se especifica
el valor 1, se podrá enviar contenido de 0 a 24 hs los 7 días de la semana.

wappushurl: (deprecado) En este campo deberá enviarse la URL a la cual se desea que ingrese el
celular que reciba el wap push.
Tipo de dato: string

Respuesta del método


El método devuelve un string que contiene un XML. El XML especifica 2 parámetros de respuesta.

Nombre Tipo de dato Descripción


status int Indica el resultado de la operación. 0=se ha realizado el envío a
través del Operador especificado; otro valor; no se pudo
realizar el envío.
message string Descripción asociada al status (a modo de información)

8
Estado del envío (DLR)
Opcionalmente al envío del SMS, se ofrecen diferentes mecanismos para averiguar el estado de cada
uno de los envíos MT.

Es necesario aclarar que los operadores de Argentina no ofrecen información de entrega del SMS en
la terminal del usuario. Por lo tanto, el estado devuelto en esta API hace referencia al estado de
entrega al operador correspondiente. El estado “entregado” (delivered) significa que el operador ha
recibido el SMS y no lo ha rechazado por ningún motivo.

Los dos mecanismos para obtener el estado de entrega son:

1. mediante una consulta HTTP a una API (consulta de estado)


2. notificación enviada por Intertron Mobile a una URL predefinida del cliente (HTTP Post/Get)

Consulta de estado
Para poder realizar la consulta, deberá proveer dos parámetros. El nombre de cliente provisionado
por Intertron Mobile y el “traceid” (o “pMsgID”) que es el valor alfanumérico utilizado al hacer el
envío del MT (ya sea por el método SendNow o SendBulk). Este valor debe ser único para cada
cliente, a fin de evitar errores al referenciar el estado de un envío.

Información técnica
El servicio se encuentra publicado en la siguiente URL:

URL: https://api.intertronmobile.com/api/v1/bulk/status/{cliente}/{traceid}

URL: http://api.intertronmobile.com/api/v1/bulk/status/{cliente}/{traceid}

Donde los dos parámetros necesarios son el cliente, asignado por Intertron Mobile y el traceId, valor
único por cada MT.

Ejemplo: para consultar el estado del traceid ab3546fx del cliente infonews, la consulta será
mediante HTTP GET a la siguiente URL:
https://api.intertronmobile.com/api/v1/bulk/status/infonews/ab3546fx

La respuesta, en caso de éxito devolverá el HTTP Status code 200 (OK) con el siguiente JSON.
{

"idCarrier": 3,
"status": 1,
"traceid": "ab3546fx"

Valores de respuesta
 idCarrier (int, opcional): código del operador. Ver tabla de referencia.
 status (int, opcional): estado del envío (MT).
o 0=encolado (queued),
o 1=enviado(sent),
o 2=error
o -1 = trace id no encontrado
 traceid (string, opcional): mismo valor pasado por querystring.

Documentación técnica:

9
https://api.intertronmobile.com/api/v1/swagger/ui/index#/Bulk

En caso de error de autenticación/autorización, se devolverá HTTP Status code 401. En caso de otro
error no controlado, el status code 500.

Notificación de estado (DLR)


A los clientes que lo soliciten, Intertron enviará mediante HTTP, los estados de todos los MTs
enviados. Podrán elegir el método HTTP con el cual se hará el envío. Éste puede ser:

 GET (los valores se envían mediante querystring)


 POST (los valores se pasan en un objeto json)

Una notificación enviada contiene el estado de envío de un solo MT (no se envía un array). Estas,
pueden tener una demora de entre 15 y 30 minutos en ser informadas.

Importante: Es probable que un mismo MT se intente enviar simultáneamente por las diferentes
conexiones de los operadores (cuando el MSISDN haya sido portado), por lo tanto, es posible recibir
más de una notificación con el mismo traceid. En estos casos, deberá tener en cuenta, el que tenga
el estado de enviado (Delivered).

Valores notificados
 id (int): identificador único de cada notificación (generado por Intertron Mobile)
 idCarrier (int): código del operador. Ver tabla de referencia
 fechaEnvio (date): fecha en la cual se efectivió el envío hacia el operador. Formato de la
fecha yyyy-MM-ddTHHmmss.fff ejemplo: 2018-02-28T162933.974
 traceId (string): valor utilizado al enviar el MT. En el método SendNow, es el valor del campo
pMsgId. En el método SendBulk es el valor del campo traceIds. El contenido de este campo
se devuelve con formato URL Encode.
 msisdn (int): número de teléfono al cual se envió el SMS.
 nroCorto (string): número corto por el cual se envió el SMS.
 estado (string): estado del envío. Puede ser Delivered o Error. Solo se reportan los estados
luego del intento de envío.

Formato de las notificaciones por GET


El cliente deberá especificar en qué parámetros y/o segmentos recibirá cada uno de los valores. Los
valores, se especifica en color azul. Ejemplo:

http(s)://{dominioCliente}/{traceId}/id={id}&idc={idCarrier}&fecha={fechaEnvio}&msisdn={nroTelefo
no}&nc={nroCorto}&status={estado}

Formato de las notificaciones por POST


El cliente deberá especificar una URL en donde recibirá el POST Content-Type: application/json. Con
los siguientes campo y valores:

{
"id":224679098,
"idCarrier":3,
"fechaEnvio":"2018-01-01T192401.977",
"traceId":"ab3546fx",
"msisdn":541149801225,

10
"nroCorto":"11011",
"status":"Delivered"
}

Tablas de referencias
En caso de no conocer el operador al momento de hacer el envío MT, colocar el valor (cero) 0.
Intertron Mobile mantiene una base retroalimentada de los operadores de cada número de
teléfono.

Carriers (idCarrier)
idCarrier Operador (país) Longitud del NroTelefono (MSISDN)
1 Movistar Argentina 12 dígitos (formato 541100000000)
3 Claro Argentina 12 dígitos (formato 541100000000)
4 Personal Argentina 12 dígitos (formato 541100000000)
8 Nextel Argentina 12 dígitos (formato 541100000000)

11

También podría gustarte