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.
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]
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/
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=
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.
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:
Recurso | Verbo | Content-type | Autorización |
---|---|---|---|
/Token | Post | application/json | Soportada Basic |
Cuerpo:
{
"grant_type": "password"
}
Variable | Descripción | Observaciones |
---|---|---|
Grant_type | Describe el tipo de acceso solicitado | Define si va a ser Solicitud o refresco |
Respuesta del servicio:
{
"access_token": "MWQxNTA4N2ZiMWZmMzI0Nzg3OTllOTAxYmQyYzJkNzZiN2U4NWRmMzFiMjU4ZGNlOWM4NTAxZTcxYTMyZTQxYzRiMzMwZTNjMDM0OWNkOGFkMmNhMjExMWIxZGFmYzVjZGExYWIxYzY5NmIzMzYzNTRjNGM5OGU2YTBiMTY2ZmU=",
"expires_in": 21600,
"refresh_token": "MDEwOTMzMmQ5Mjg0ZTVjMTQxMGZiYWY1ZGMzNGU4MWQ5ZjVhZDlkMDExMjcxNzQ1MzQ1MTA1ZjZhNzE4N2ZiZDAwZDhkYjJlMzIyZTc3N2EwNjBlODdiZGRmYmIzNDAzYzBhZjFkOTViNzcxMWY3MTMwYTcyY2ZmNjcwMDAxMzQ=",
"token_type": "bearer"
}
Variable | Descripción | Observaciones |
---|---|---|
access_token | Este 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_in | Muestra el tiempo de expiración del token, expresado en segundos. | |
refresh_token | Este 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_type | Hace 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=
Recurso | Verbo | Content-type | Autorización |
---|---|---|---|
/Token | Post | application/json | Basic |
Cuerpo:
{
"grant_type": "refresh_token",
"refresh_token": "MDEwOTMzMmQ5Mjg0ZTVjMTQxMGZiYWY1ZGMzNGU4MWQ5ZjVhZDlkMDExMjcxNzQ1MzQ1MTA1ZjZhNzE4N2ZiZDAwZDhkYjJlMzIyZTc3N2EwNjBlODdiZGRmYmIzNDAzYzBhZjFkOTViNzcxMWY3MTMwYTcyY2ZmNjcwMDAxMzQ="
}
Variable | Descripción | Observaciones |
---|---|---|
Grant_type | Describe el tipo de acceso solicitado | Define 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"
}
Variable | Descripción | Observaciones |
---|---|---|
access_token | Describe el tipo de acceso solicitado | Define si va a ser Solicitud o refresco |
refresh_token | Este token permite solicitar un nuevo access_token luego de su vencimiento. | |
refresh_token | Este 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_type | Hace 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=
Para hacer envíos de mensajes de los que no se espera respuesta del usuario final se ha dispuesto del siguiente recurso:
Recurso | Verbo | Content-type | Autorización |
---|---|---|---|
/Token | Post | application/json | Basic |
Cuerpo
*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.
{
"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"
}
Variable | Descripción | Observaciones |
---|---|---|
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 |
Devices | Nú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 |
MessageData | String 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. |
TemplateId | Contiene 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
}
Variable | Descripción | Observaciones |
---|---|---|
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. |
Status | Identificador 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. |
{
"MessageText": "Texto del mensaje",
"Type": 1,
"Devices": "3123456789"
}
{
"MessageText": "Texto del mensaje",
"Type": 1,
"Devices": "3123456789-3987654321"
}
{
"MessageData": "[{\"PhoneNumber\":\"3123456789\",\"nombre\":\"Cristhian\",\"valor\":\"100000\"},{\"PhoneNumber\":\"3987654321\",\"nombre\":\"Gean\",\"valor\":\"200000\"}]",
"MessagePattern": "Sr @{nombre} su valor a descontar es @{valor}",
"Type": 2
}
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:
Recurso | Verbo | Content-type | Autorización |
---|---|---|---|
MTMessage?idrequest=1324848250768440531325803936 | Get | application/json | Basic - 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"
}
]
Variable | Descripción | Observaciones |
---|---|---|
PhoneNumber | Número de celular destinatario del mensaje | |
State | Identificador 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 |
{
"MessageText": "Invalid Authorization Header.",
"Status": 2,
"TransactionNumber": 0.0
}
Para hacer envíos de mensajes de los que se espera respuesta del usuario final se ha dispuesto del siguiente recurso:
Recurso | Verbo | Content-type | Autorización |
---|---|---|---|
/momessage | Post | application/json | Basic - OAuth |
Cuerpo
{
"MessageText": "Prueba MO",
"PhoneNumber": "3123456789",
"ShortCode": "85293"
}
Variable | Descripción | Observaciones |
---|---|---|
MessageText | Texto 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. |
PhoneNumber | Nú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
}
Variable | Descripción | Observaciones |
---|---|---|
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. |
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:
Recurso | Verbo | Content-type | Autorización |
---|---|---|---|
/instance | Post | application/json | Basic - OAuth |
Cuerpo
{
"JSONData":"{\"Name\":\"Andres\"}",
"PhoneNumber": "3123456789",
"ShortCode": "85293"
}
Variable | Descripción | Observaciones |
---|---|---|
JSONData | (Opcional) Permite ensamblar un mensaje con las variables de la campaña. | Ejemplo: {“NombreVariable” : “John Doe”} |
PhoneNumber | Nú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"
}
Variable | Descripción | Observaciones |
---|---|---|
Message | Describe el resultado del consumo del servicio. | Si el consumo es exitoso, su valor será “ok”. |
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:
Recurso | Verbo | Content-type | Autorización |
---|---|---|---|
/PlatformMonitory | Get | application/json | Basic - 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
}
]
Variable | Descripción | Observaciones |
---|---|---|
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 |
DeliveryTime | Tiempo 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. |
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
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.
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.
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.
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.
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.
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.