Objetivo

El API de SMS de Inalambria permite que fácilmente sus aplicaciones puedan agregar funcionalidades de mensajería.

Este documento describe la manera en que se pueden enviar y monitorear el estado de los mensajes mediante el consumo de API Rest.

Pre-requisitos

Para poder consumir el API de Inalambria se requiere un usuario y contraseña válidos que correspondan a una cuenta activa. En caso de requerir una nueva cuenta o validar las credenciales con las que hoy cuenta, por favor comuníquese con su ejecutivo de cuenta o mediante un correo electrónico a [email protected]

URL

Para acceder al API Rest ofrecido por Inalambria, debe hacerse uso de la siguiente URL, la cual por seguridad solo puede ser consumida por https://restaws.inalambria.com/ 

Autenticación

Para consumir el API Rest deben ser suministradas las credenciales al momento del consumo en el encabezado, estas credenciales pueden ser enviadas de dos maneras, la primera Basic, en la que las credenciales son enviadas en cada consumo y OAuth en la que se hace un consumo previo con las credenciales y se recibe un token con el que se autentica el consumo de los métodos.

Basic

La autenticación de acceso básica es un método diseñado que permite proveer credenciales en la forma de usuario y contraseña cuando se realiza una petición HTTP a un servidor que lo requiera. Para hacer uso de la autenticación de acceso básica, es necesario enviar el encabezado Authorization siguiendo la estructura descrita a continuación:
Authorization:Basic dXNlcm5hbWU6YWNjZXNzcGFzc3dvcmQ= 

La palabra Basic, hace referencia a la autenticación para el consumo de la API por medio de BasicAuthetication. Y luego de un espacio, el nombre de usuario y contraseña concatenados por el carácter de dos puntos (:), codificado en Base64. En la estructura de ejemplo descrita
anteriormente, si codificamos

username: accesspassword

obtendremos: dXNlcm5hbWU6YWNjZXNzcGFzc3dvcmQ=

OAuth

Es un protocolo abierto de autorización que describe como servidores y servicios no relacionados permiten el acceso autenticado a sus recursos sin compartir las credenciales de acceso. OAuth es fuertemente
soportada por grandes compañías como Google, Facebook, Twitter, entre otras.

Solicitud de Token

Este modelo de autenticación implica el consumo previo del método de autenticación mediante realizar una petición tomando en cuenta los siguientes parámetros:

RecursoVerboContent-typeAutorización
/TokenPost application/jsonSoportada Basic

Cuerpo:

{
"grant_type": "password"
} 
VariableDescripciónObservaciones
Grant_typeDescribe el tipo de acceso solicitadoDefine si va a ser Solicitud o refresco

Respuesta del servicio:

{
    "access_token": "MWQxNTA4N2ZiMWZmMzI0Nzg3OTllOTAxYmQyYzJkNzZiN2U4NWRmMzFiMjU4ZGNlOWM4NTAxZTcxYTMyZTQxYzRiMzMwZTNjMDM0OWNkOGFkMmNhMjExMWIxZGFmYzVjZGExYWIxYzY5NmIzMzYzNTRjNGM5OGU2YTBiMTY2ZmU=",
    "expires_in": 21600,
    "refresh_token": "MDEwOTMzMmQ5Mjg0ZTVjMTQxMGZiYWY1ZGMzNGU4MWQ5ZjVhZDlkMDExMjcxNzQ1MzQ1MTA1ZjZhNzE4N2ZiZDAwZDhkYjJlMzIyZTc3N2EwNjBlODdiZGRmYmIzNDAzYzBhZjFkOTViNzcxMWY3MTMwYTcyY2ZmNjcwMDAxMzQ=",
    "token_type": "bearer"
} 
VariableDescripciónObservaciones
access_tokenEste Token autentica al usuario ante la plataforma de Inalambria, permitiendo acceder a los recursos ofrecidos.El token es válido únicamente por seis horas desde el momento en que fue generado.
expires_inMuestra el tiempo de expiración del token, expresado en segundos.
refresh_tokenEste token permite solicitar un nuevo access_token luego de su vencimiento.El token es válido durante tres meses a partir de momento en que es generado. Este token es válido por un solo uso.
token_typeHace referencia al estándar de autorización que se debe utilizar en el momento de invocar un recurso.

Para hacer uso de la autenticación OAuth, es necesario enviar el encabezado Authorization siguiendo la estructura descrita a continuación: 

Authorization:Basic dXNlcm5hbWU6YWNjZXNzcGFzc3dvcmQ= 

Refresco de Token de acceso

RecursoVerboContent-typeAutorización
/TokenPost application/jsonBasic

Cuerpo:

{
    "grant_type": "refresh_token",
    "refresh_token": "MDEwOTMzMmQ5Mjg0ZTVjMTQxMGZiYWY1ZGMzNGU4MWQ5ZjVhZDlkMDExMjcxNzQ1MzQ1MTA1ZjZhNzE4N2ZiZDAwZDhkYjJlMzIyZTc3N2EwNjBlODdiZGRmYmIzNDAzYzBhZjFkOTViNzcxMWY3MTMwYTcyY2ZmNjcwMDAxMzQ="
}
 
VariableDescripciónObservaciones
Grant_typeDescribe el tipo de acceso solicitadoDefine si va a ser Solicitud o refresco
refresh_token Este token permite solicitar un nuevo access_token luego de su vencimiento.

Respuesta del servicio:

{
    "access_token": "ZGM5NjE4MDM5MzNjYWU3NmViZTI0OWE2Yzk2MjFjMzY5N2I0NjJhYjg2ZDNjZjk2YzQ4MTI3ZGVkMzYxNDAzMjdjOWUxM2Q1ZjA2M2QyYzQwODc0MzEzOWI3YjZmY2EzMGY5N2IzOWM1OTgwN2UxMmRjZWU3MDEzYmQ0ZGY3NmY=",
    "expires_in": 21600,
    "refresh_token": "YjcwZjUxMTQ5MmUxNGU2NDMwYjc2OGE3NzYyY2I3MmY1ZmZjMzMyOTM3NmM4NjI3OTg4MjRiODgwZDYzMGI4ZDAwMDRmMzdjYmMzMDM1ZTRjZjA1ZmVkOTJkNWY2YTEwZjljNjZkOWU3OWUwNzgxNzMxMWVmMWFhODY0ZTFlZDE=",
    "token_type": "bearer"
}

 
VariableDescripciónObservaciones
access_tokenDescribe el tipo de acceso solicitadoDefine si va a ser Solicitud o refresco
refresh_token Este token permite solicitar un nuevo access_token luego de su vencimiento.
refresh_tokenEste token permite solicitar un nuevo access_token luego de su vencimiento. El token es válido durante tres meses a partir de momento en que es generado. Este token es válido por un solo uso.
token_typeHace referencia al estándar de autorización que se debe utilizar en el momento de invocar un recurso.

Para hacer uso de la autenticación OAuth, es necesario enviar el encabezado Authorization siguiendo la estructura descrita a continuación: 

Authorization:Basic dXNlcm5hbWU6YWNjZXNzcGFzc3dvcmQ= 

Envío de mensajes Unidireccionales

Para hacer envíos de mensajes de los que no se espera respuesta del usuario final se ha dispuesto del siguiente recurso:

RecursoVerboContent-typeAutorización
/TokenPost application/jsonBasic

Cuerpo

{
    "DateMessage": "2017-06-06 15:00:00",
    "Devices": "3015555555-3015556666",
    "FlashSMS": 0/1,
    "HasMore": 0/1,
    "MessageData": "[{\"clave\":\"valor\"}, {\"clave\":\"valor\"}, n]",
    "MessagePattern": "Señor @Nombre, su saldo es @Valor",
    "MessageText": "EL mensaje es este",
    "TemplateId": 123,
    "TransactionNumber": 1234567890,
    "Type": "Massive/Personalized/Template"
} 

*Nota: Los parámetros que se enuncian en el ejemplo son seleccionables de acuerdo al tipo de integración que se requieren, sin embargo “MessageText” y “Device” son completamente obligatorios para consumir SMS.



VariableDescripciónObservaciones
DateMessage Fecha específica para el envío del mensaje. El formato requerido es: yyyy-MM-dd HH:mm:ss Si no se envía, o se envía una fecha anterior, el sistema asigna la fecha actual
DevicesNúmero o números de celular a quienes será enviado el mensaje. Este campo es requerido cuando la llave o propiedad Type se especifica con el valor Massive. Para un envío simultaneo a múltiples números se debe emplear el separador "-" sin espacios Ej. "3102455440- 3315331223-3295582732"
FlashSMS Indica si los mensajes enviados deben tratarse como mensajes flash. Valido para envios Type Massive y Personalized.
HasMore Usado para especificar el envío de mensajes por lotes que tendrán un único TransactionID. 1 o true – Para activar
MessageDataString con la estructura de un array de objetos json así: [{\"clave\":\"valor\", \"clave\":\"valor\" }, {\"clave\":\"valor\", \"clave\":\"valor\" }, n] Este campo es requerido cuando la llave o propiedad Type se especifica con el valor Personalized o Template.

El array debe contener un registro por cada destinatario del mensaje, por lo que cada registro debe tener como clave obligatoria y nombrada exactamente así: “PhoneNumber” y como valor el número de celular del destinatario.

Cada registro del array, además debe contener el mismo número de llaves con sus respectivos valores, nombradas exactamente igual, de acuerdo al patrón del mensaje descrito en la llave o propiedad: MessagePattern, o de un patrón o template configurado previamente y consultado mediante especificación del mismo en la propiedad o clave: TemplateId.
MessagePattern Texto que detalla el patrón o template del mensaje que se usará para mapear con la propiedad MessageData anteriormente descrita, obedeciendo como ejemplo a esta estructura: "Señor @Nombre, su saldo es @Valor" Este campo es requerido cuando la llave o propiedad Type se especifica con el valor Personalized.

Las claves que serán objeto de mapeo con lo especificado en la propiedad MessgeData, deben ir precedidas del carácter “@”
Table MessageText Texto informativo o de notificación para ser enviado. Este campo es requerido cuando la llave o propiedad Type se especifica con el valor Massive. Cada mensaje tiene un límite de 160 caracteres. En caso de exceder este número, el texto del mensaje será́ dividido en tantos mensajes como sea necesario para su envío satisfactorio.
TemplateIdContiene el número del template que desea usar para el envío del mensaje y mapeo con la propiedad MessageData. Este campo es requerido cuando la llave o propiedad Type se especifica con el valor Template.
TransactionNumber Número de transacción para los casos de envío de mensajes por lotes.Este campo es requerido cuando la llave o propiedad HasMore se especifica con el valor 1 o true.

Para el primer consumo, especificando HasMore en 1 o true, no es necesario enviar un valor en esta propiedad TransactionNumber. En la respuesta de esta primera petición se envía el número de transacción (TransactionNumber) que si debe especificar en los siguientes envíos junto con la propiedad HasMore en 1 o true para que todos los envíos posteriores queden asociados a ese número de transacción y obedezca al concepto de envío por lotes.
Type Define el método que se usará para el envío de los mensajes. Valores:
Massive (1): Para el envío de un mismo mensaje plano a diferentes destinatarios.

Personalized (2): Para el envío de mensajes con información personalizada por cada destinatario, según valores especificados en las propiedades o claves MessageData y MessagePattern.

Template (3): Para el envío de mensajes con información personalizada por cada destinatario, según valores especificados en las propiedades MessageData y TemplateId.

Respuesta del servicio:

{
    "MessageText": "OK",
    "Status": 0,
    "TransactionNumber": 1324848143939288741219658550.0
} 
VariableDescripciónObservaciones
MessageText Describe el resultado del consumo del servicio. Si el consumo es exitoso, su valor será́ “OK”, de lo contrario informará el mensaje del error.
StatusIdentificador del estado de la recepción de la solicitud de envío de mensaje. Valores:
0 – Exitoso
1 – Data inválida
2 –Encabezado Authorization vacío o inválido.
3 – Usuario o contraseña inválidos.
TransactionNumber Número de transacción asociado al proceso de envío. Identificador único del proceso de envío, solo se entrega en caso de éxito en la ejecución del método.

Ejemplo de consumo con un único destinatario

{
    "MessageText": "Texto del mensaje",
    "Type": 1,
    "Devices": "3123456789"
} 

Ejemplo de consumo con un múltiples destinatarios

{
    "MessageText": "Texto del mensaje",
    "Type": 1,
    "Devices": "3123456789-3987654321"
} 

Ejemplo de consumo con un tipo personalizado

{
    "MessageData": "[{\"PhoneNumber\":\"3123456789\",\"nombre\":\"Cristhian\",\"valor\":\"100000\"},{\"PhoneNumber\":\"3987654321\",\"nombre\":\"Gean\",\"valor\":\"200000\"}]",
    "MessagePattern": "Sr @{nombre} su valor a descontar es @{valor}",
    "Type": 2
} 

Consulta de estado de mensajes Unidireccionales

Para consultar el estado de los envíos de mensajes de los que no se espera respuesta del usuario final se ha dispuesto del siguiente recurso:

RecursoVerboContent-typeAutorización
MTMessage?idrequest=1324848250768440531325803936 Getapplication/jsonBasic - OAuth

Query params:

idrequest:1324848250768440531325803936 

Respuesta del servidor

[
    {
        "PhoneNumber": 3174045787.0,
        "State": 3,
        "StateDescription": "Success",
        "ArrivalDate": "2020-10-29T17:01:47.687",
        "OperatorId": 62.0,
        "Part": 1,
        "SendDate": "2020-10-29T17:01:48.41"
    },
    {
        "PhoneNumber": 3185046303.0,
        "State": 3,
        "StateDescription": "Success",
        "ArrivalDate": "2020-10-29T17:01:47.687",
        "OperatorId": 1.0,
        "Part": 1,
        "SendDate": "2020-10-29T17:01:48.19"
    }
] 
VariableDescripciónObservaciones
PhoneNumber Número de celular destinatario del mensaje
StateIdentificador del estado del mensaje
StateDescription Descripción del estado del envío del mensaje Programado = 1,
Envío exitoso = 3,
Envío Cancelado = 4,
Celular en lista negra = 5,
Cuenta sin cupo = 82,
Responsable inactivo = 83,
Cuenta inactiva = 84,
Cliente inactivo = 85,
Suscripción inactiva = 86,
Cuenta sin método de envío para el operador = 87,
Cuenta expirada = 89,
Celular invalido = 91,
Error entregando mensaje al operador = 92,
Texto vacío o nulo = 94,
IP invalida = 96,
Error general = 99

Respuesta fallida

{
    "MessageText": "Invalid Authorization Header.",
    "Status": 2,
    "TransactionNumber": 0.0
} 

Envio de mensajes Bidireccionales

Para hacer envíos de mensajes de los que se espera respuesta del usuario final se ha dispuesto del siguiente recurso:

RecursoVerboContent-typeAutorización
/momessage Postapplication/jsonBasic - OAuth

Cuerpo

{
    "MessageText": "Prueba MO",
    "PhoneNumber": "3123456789",
    "ShortCode": "85293"
} 
VariableDescripciónObservaciones
MessageTextTexto para enviar. Cada mensaje tiene un límite de 160 caracteres. En caso de exceder este número, el texto del mensaje será́ dividido en tantos mensajes como sea necesario para su envío satisfactorio.
PhoneNumberNúmero o números destinatarios del mensaje. Para un envío a múltiples destinatarios se debe emplear el separador “-“ entre los números.
ShortCode Código corto asignado por Inalambria.

Respuesta del servicio:

{
    "Id": "1324889303541009362009985908",
    "Message": "OK",
    "Status": true
}

 
VariableDescripciónObservaciones
Id Identificador único del envio. Se recomienda almacenar este valor, ya que para cualquier consulta que el cliente realice, deberá indicarlo.
Message Describe el resultado del consumo del servicio. Si el consumo es exitoso, su valor será “ok”.
Status Valor booleano que indica si el consumo fue satisfactorio. Si Status es false, se debe revisar message para conocer la causa.

Inicio de campañas bajo demanda

Los clientes que soliciten a Inalambria la creación de una campaña Bidireccional, pueden utilizar esta API para iniciar esta a un número celular específico. Al momento de realizar la petición es necesario tener en cuenta la siguiente información:

RecursoVerboContent-typeAutorización
/instance Postapplication/jsonBasic - OAuth

Cuerpo

{
    "JSONData":"{\"Name\":\"Andres\"}",
    "PhoneNumber": "3123456789",
    "ShortCode": "85293"
}

 
VariableDescripciónObservaciones
JSONData(Opcional) Permite ensamblar un mensaje con las variables de la campaña. Ejemplo: {“NombreVariable” : “John Doe”}
PhoneNumberNúmero o números destinatarios del mensaje. Para un envío a múltiples destinatarios se debe emplear el separador “-“ entre los números.
ShortCode Código corto asignado por Inalambria.

Respuesta del servidor

{
    "Message": "OK"
} 
VariableDescripciónObservaciones
Message Describe el resultado del consumo del servicio. Si el consumo es exitoso, su valor será “ok”.

Estado de la plataforma

Los El servicio permite realizar una consulta del estado general de la plataforma. Al momento de realizar la petición es necesario tener en cuenta la siguiente información:

RecursoVerboContent-typeAutorización
/PlatformMonitory Getapplication/jsonBasic - OAuth

Respuesta del servidor

[
    {
        "alternateChannel": false,
        "operator": "MOVISTAR",
        "status": "OK",
        "time": 4.451
    },
    {
        "alternateChannel": false,
        "operator": "AVANTEL",
        "status": "OK",
        "time": 3.938
    },
    {
        "alternateChannel": false,
        "operator": "ETB",
        "status": "OK",
        "time": 3.171
    },
    {
        "alternateChannel": false,
        "operator": "FLASH MOBILE",
        "status": "OK",
        "time": 0.0
    }
] 
VariableDescripciónObservaciones
Operator Nombre del operador
Status Indica si el estado de la conexión al operador, permite el envío de SMS al mismo. Las posibles respuestas son OK y ERROR
AlternateChannel Indica si los SMS están siendo enviados a través del canal alterno o no. Los posibles valores son TRUE o FALSE
DeliveryTimeTiempo Real de llegada al dispositivo móvil, calculado por medio de un proceso controlado de manera periódica.Este difiere del tiempo de paso por la plataforma dado que se calcula mediante un software instalado en un dispositivo móvil de pruebas que mide el tiempo incluyendo el paso por el operador. Por esta razón, no debe ser usado para medición de SLA, ya que este último solo comprende el tiempo de paso por la plataforma.

Sector
financiero

Construyendo relaciones de confianza y seguridad con sus clientes:

Por medio de nuestras soluciones de mensajería instantánea trabajamos de la mano de importantes entidades del sector financiero con el objetivo de brindar mayor seguridad y de contribuir a la reducción del fraude financiero por medio de notificaciones que permitan realizar seguimiento de las transacciones y procesos financieros.

Cumplimos con las exigencias de la circular 052 de la Superintendencia Financiera de Colombia, respecto a los requerimientos mínimos de seguridad y calidad en el manejo de información a través de medios y canales de distribución de productos y servicios.

Este servicio permite la implementación de un canal de alta usabilidad, capacidad y eficiencia para el envío de notificaciones transaccionales exitosas, robusteciendo los mecanismos de seguridad y minimizando los índices de fraude

Contribuyendo a mejorar la experiencia del Cliente

Nuestra solución Chat Bot le ayuda a su empresa a realizar encuestas de satisfacción de manera segura, fácil e inclusiva, aumentando sus niveles de respuesta y ampliando su público objetivo. Esta tecnología es de fácil uso, incluso para personas que no tienen acceso a otros medios como el correo electrónico.

Actualmente la fidelización de los clientes juega un papel fundamental en los resultados de las compañías. Chat Bot también le permite actualizar datos y gestionar las consultas de sus programas de lealtad de forma amigable y segura.

Disponer un canal de alta velocidad y trazabilidad es esencial para la optimización del seguimiento en línea de sus notificaciones y reducir el tiempo de validación de sus peticiones, quejas y reclamos.

Apoyando la mejora de sus indicadores y niveles de recaudo

Los procesos de cobranza son un desafío para las organizaciones, que buscan lograr un equilibrio entre lograr un objetivo y mantener la satisfacción del cliente. Nuestras soluciones de mensajería instantánea y Chat Bot le permiten brindar información de forma amable y segura, así como proveer opciones de refinanciamiento con tan solo unos clics.

Clientes que han confiado en nosotros:

Sector
Salud

Optimizando sus canales de atención y mejorando la experiencia de sus pacientes

Mejore sus indicadores de asistencia mientras descongestiona sus sitios de atención presencial por medio de soluciones de mensajería instantánea con las que puede realizar confirmación de citas, enviar recordatorios, cancelaciones, entre otros, lo que le permitirá reducir las llamadas a sus líneas de atención convencional, así como la inasistencia a citas médicas previamente programadas.

Con nuestra solución SMSx puede aumentar los niveles de satisfacción de usuarios realizando envíos de autorizaciones médicas, resultados de exámenes médicos o fórmulas para reclamar sus medicamentos, a través de un canal de fácil acceso y seguro. Esta solución le permitirá contar con la información de manera oportuna, disminuyendo los tiempos de entrega de documentos y optimizando tiempos de respuesta para los diversos procesos clínicos.

La experiencia de sus pacientes es una prioridad, con nuestra solución Chat Bot puede realizar desde procesos de actualización de datos hasta encuestas de satisfacción por medio de canales

que le permiten ampliar su cobertura de interacción, llegando incluso a usuarios que no tienen fácil acceso a otros medios digitales.

Clientes que han confiado en nosotros:

Seguros

Personalice la experiencia de su cliente con soluciones adaptadas para cada fase de su servicio:

Cada vez más el cliente requiere atención y comunicaciones ajustadas para cada uno de los puntos críticos de contacto.

Nuestras soluciones de mensajería instantánea le permiten comunicar de manera oportuna información relevante de su negocio:

-Notificaciones de vencimiento de pólizas.

-Confirmación de aprobación de servicios (Grúas, carro taller, conductor elegido, asistencia, entre otros)

-Confirmación de recepción de solicitudes y procesos de reclamación.

Puede ampliar sus posibilidades de comunicación y a la vez disminuir la generación de documentos físicos, enviando sus pólizas y documentos relacionados a través de mensajes de texto, un canal seguro, de fácil acceso y con alto nivel de lectura, aumentando su público objetivo.

Clientes que han confiado en nosotros:

Inalambria internacional

Solicita una demo

Industria

financiera

Sector

Salud

Industria de

seguros

Otras Industria que usan

TWNEL
TWNEL

La solución End to End para conectar y automatizar los procesos de tu empresa con usuarios y aliados.

La primera solución de comunicación y productividad del mundo que utiliza el poder de la mensajería móvil y las automatizaciones conversacionales para facilitar las comunicaciones y automatizar procesos críticos del negocio, involucrando a equipos de ventas, transporte, logística, operaciones, contratistas, cartera y por supuesto a clientes.

¿Por qué usar Twnel?

Las conversaciones basadas en mensajes juegan un papel fundamental en la forma en que las empresas crean confianza y empatía con todos a su alrededor. Sin embargo, las apps personales de mensajería instantánea traen consigo limitaciones que ponen en riesgo la habilidad de su empresa para conectar efectivamente a Aliados y Clientes. Por eso es necesario implementar un canal sin distracciones donde la empresa tiene el control.