Desarrolladores

Construye con las APIs de Inalambria

APIs REST para SMS, RCS, WhatsApp y Email, conexiones SMPP y envíos por archivo. Autenticación con token, payloads JSON y notificaciones de estado en tu propia infraestructura.

Introducción

Cada servicio tiene su propio host:

ServicioHost
SMS, RCS, token y monitoreohttps://rest.inalambria.com
WhatsApphttps://multichannel.inalambria.com
Emailhttps://emailrest.inalambria.com
SMPPsmsc.inalambria.com · smscssl.inalambria.com

Requisitos: una cuenta de envío configurada por Inalambria, credenciales de autenticación y conexión HTTPS. Algunos servicios (RCS, notificaciones, monitoreo, archivos) requieren habilitación previa.

Esta página resume la referencia oficial. Para el detalle completo de cada endpoint consulta docs.inalambria.com .

Inicio rápido

  1. 1

    Solicita tu cuenta

    Inalambria configura tu cuenta de envío y te entrega usuario y contraseña.

  2. 2

    Obtén el token

    POST /token con Basic Authentication y grant_type: password.

  3. 3

    Envía tu primer SMS

    POST /mtmessage con el Bearer Token. Guarda el TransactionNumber.

  4. 4

    Recibe los estados

    Activa el webhook de cuenta o el callback por petición.

# 1. Solicita el token (Basic Authentication con tus credenciales)
TOKEN=$(curl -s -X POST https://rest.inalambria.com/token \
  -u "$INALAMBRIA_USER:$INALAMBRIA_PASSWORD" \
  -H "Content-Type: application/json" \
  -d '{"grant_type": "password"}' | jq -r '.access_token')

# 2. Envía un SMS (Colombia: 12 dígitos, 57 + celular)
curl -X POST https://rest.inalambria.com/mtmessage \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "Type": 1,
    "MessageText": "Tu pedido PEDIDO-4471 va en camino",
    "Devices": "573001234567",
    "CustomMessageId": "PEDIDO-4471"
  }'

Autenticación

  • Token: POST /token con Basic Authentication (usuario y contraseña en Base64) y el cuerpo {"grant_type": "password"}. La respuesta trae access_token, expires_in, refresh_token y token_type.
  • Por defecto el token dura 4 horas y cada cuenta tiene 1 token activo: pedir uno nuevo expira el anterior. Ambos valores se pueden ampliar bajo solicitud.
  • Para renovarlo sin credenciales, envía {"grant_type": "refresh_token", "refresh_token": "..."}.
  • Los servicios SMS y RCS usan Authorization: Bearer <token> (recomendado) o Basic. WhatsApp usa Basic. Email usa la cabecera x-api-key.
  • Las peticiones desde direcciones IP no autorizadas reciben 403.

SMS: POST /mtmessage

CampoDescripción
Type*1 masivo (mismo texto), 2 personalizado (MessagePattern + MessageData), 3 plantilla (TemplateId + MessageData).
DevicesDestinatarios separados por guion: 573XXXXXXXXX-573YYYYYYYYY.
MessageTextTexto del mensaje (modo masivo).
ChannelSMS (por defecto) o RCS.
DateMessageProgramación: yyyy-MM-dd HH:mm:ss.
FlashSMS1 para SMS flash.
UrlURL larga que se acorta e inserta en el mensaje.
HasMore / TransactionNumberEnvíos por partes bajo un mismo número de transacción.
CustomMessageId / CallbackDataDatos propios que se devuelven en la notificación de estado.

Respuesta: TransactionNumber (28 dígitos), Status (0 validado, 1 rechazado) y MessageText con el motivo del rechazo.

Formato: números de Colombia de 12 dígitos (57 + celular) y E.164 para el resto del mundo. No hay límite de caracteres, pero se recomienda no superar 500.

RCS

RCS usa el mismo endpoint /mtmessage con "Channel": "RCS". La cuenta y el agente RCS deben estar configurados previamente.

# RCS: mismo endpoint, con "Channel": "RCS" (requiere configuración previa de la cuenta)
curl -X POST https://rest.inalambria.com/mtmessage \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "Type": 1,
    "Channel": "RCS",
    "MessageText": "Tu pedido PEDIDO-4471 llega hoy entre 2 y 5 p. m.",
    "Devices": "573001234567"
  }'

Envíos en lotes: POST /mtmessage/massive

Varios mensajes, cada uno con su lista de destinations, en una sola petición. Cada mensaje admite flash, shortCode, notifyUrl, notifyContentType y callbackData (texto); en la raíz, bulkId agrupa la campaña.

# Lotes: varios mensajes y destinatarios en una sola petición, con notificación por petición
curl -X POST https://rest.inalambria.com/mtmessage/massive \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "bulkId": "CAMPANA-001",
    "messages": [
      {
        "destinations": [
          { "to": "573001234567", "messageId": "1" },
          { "to": "573007654321", "messageId": "2" }
        ],
        "text": "Tu cuota vence el 5 de diciembre",
        "notifyUrl": "https://tu-servidor.example/inalambria/estado?token=TU_TOKEN",
        "callbackData": "{\"campana\": \"cobro-dic\"}"
      }
    ]
  }'

SMS bidireccional: POST /momessage

Envía desde tu código corto asignado (ShortCode) para recibir respuestas. Responde Id, Message (OK o ERROR) y Status. Las respuestas de los usuarios también pueden recibirse por SMPP (modo Receiver).

# Bidireccional: envío por tu código corto asignado
curl -X POST https://rest.inalambria.com/momessage \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "MessageText": "¿Confirmas tu cita del jueves? Responde 1 para Sí, 2 para No",
    "PhoneNumber": "573001234567",
    "ShortCode": "12345"
  }'

Notificaciones de estado

ModalidadUsoAutenticación de tu endpoint
Webhook de cuentaCon /mtmessage. La URL queda configurada en tu cuenta (puede tardar hasta 10 minutos en activarse).Basic o token en la URL
Callback por peticiónCon /mtmessage/massive. La URL viaja en notifyUrl.Token en la URL
  • Ambas se habilitan escribiendo a soporte con las cuentas de envío y la URL receptora.
  • Llega una petición por mensaje (results trae un solo elemento) cuando el operador recibe o rechaza el envío; smsCount indica los segmentos.
  • Responde 2xx. Solo 503 provoca reintentos: hasta 5, a los 10, 20, 30, 40 y 50 segundos. Otro código o la falta de respuesta no se reintenta.
  • Sé idempotente con transactionNumber + to y no asumas orden de llegada.
  • status.name es DELIVERED_TO_HANDSET en un envío exitoso y NO_SUCCESS en uno fallido.
// Receptor de notificaciones de estado (Node.js)
import http from 'node:http';

const seen = new Set();

http.createServer((req, res) => {
  if (req.method !== 'POST' || !req.url.startsWith('/inalambria/estado')) {
    res.writeHead(404).end();
    return;
  }
  let body = '';
  req.on('data', (chunk) => (body += chunk));
  req.on('end', () => {
    // Acusa recibo con 2xx de inmediato; responde 503 solo si quieres un reintento.
    res.writeHead(200).end();
    const [result] = JSON.parse(body).results; // siempre un único elemento
    const key = `${result.transactionNumber}:${result.to}`;
    if (seen.has(key)) return; // idempotencia
    seen.add(key);
    console.log(result.messageId, result.status.name, result.smsCount);
  });
}).listen(8080);

WhatsApp

Envía plantillas aprobadas por Meta con source, destination, templateId y parameters (en el orden exacto de la plantilla). Un 200 confirma la recepción y genera un número de transacción, no la entrega final.

# WhatsApp con plantilla aprobada de Meta (Basic Authentication)
curl -X POST https://multichannel.inalambria.com/MultiChannelInput/SendMessageMetaWhatsApp \
  -u "$INALAMBRIA_USER:$INALAMBRIA_PASSWORD" \
  -H "Content-Type: application/json" \
  -d '{
    "source": "573000000000",
    "destination": "573000000001",
    "templateId": "ID_PLANTILLA",
    "parameters": ["Ana", "PEDIDO-4471"]
  }'

Email

  • from debe pertenecer a un dominio remitente verificado para tu cuenta.
  • Usa templateId (consulta GET /email/v1/templates) o html con subject. Las variables {{variable}} se llenan con fields.
  • Hasta 50 destinatarios por petición; adjuntos en base64 (máximo 10 archivos y 8 MB; la petición completa no puede superar 20 MB).
# Email con plantilla almacenada (cabecera x-api-key)
curl -X POST https://emailrest.inalambria.com/email/v1/deliver \
  -H "x-api-key: $INALAMBRIA_EMAIL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "from": "notificaciones@tu-dominio-verificado.example",
    "fromName": "Tu empresa",
    "templateId": "TEMPLATE_ID_ASIGNADO",
    "payload": [
      { "recipient": "usuario@example.com", "fields": { "nombre": "Ana" } }
    ]
  }'
# Responde 202: revisa overallStatus, errors y el estado de cada destinatario.

SMPP y archivos

ConexiónHostPuerto
SMPP sin SSLsmsc.inalambria.com5020
SMPP con SSL/TLSsmscssl.inalambria.com6011
Mensajes entrantes (MO), modo Receiversmscmo.inalambria.com6900

Modos de conexión: Transceiver, Transmitter o Receiver, con el System ID y la contraseña que te entrega Inalambria.

SMS por archivo: deja un archivo .txt (personalizado: número y mensaje por línea; o masivo: un mensaje para muchos números) en un sitio SFTP o un bucket S3 configurado, y en minutos se generan los envíos.

Monitoreo

  • GET /platformmonitory: estado de los operadores, si se usan como alternos y su tiempo de entrega, en lo posible en tiempo real.
  • GET /bireports/effectivitybyclient: tiempos de procesamiento por estado (últimos 15 minutos).
  • GET /bireports/msgmtclient: mensajes procesados por operador y estado (últimos 15 minutos).

Servicios de valor agregado: requieren habilitación previa.

Códigos de respuesta

CódigoSignificado
200Recibido y en procesamiento (o token generado).
202Email: solicitud registrada; revisa el estado de cada destinatario.
400Estructura del payload inválida.
401No autorizado: revisa las credenciales.
403Permisos insuficientes, por ejemplo una IP no permitida.
500Error interno: reintenta en unos minutos o contacta a soporte.

Catálogo de servicios

ServicioEndpointHostAutenticaciónReferencia
Solicitar tokenPOST /tokenrest.inalambria.comBasicVer
SMS / RCS unidireccionalPOST /mtmessagerest.inalambria.comBearerVer
SMS en lotesPOST /mtmessage/massiverest.inalambria.comBearerVer
SMS bidireccionalPOST /momessagerest.inalambria.comBearerVer
Webhook de cuentaInalambria → tu servidor—Basic o token en URLVer
Callback por peticiónInalambria → tu servidor—Token en URLVer
WhatsAppPOST /MultiChannelInput/SendMessageMetaWhatsAppmultichannel.inalambria.comBasicVer
Enviar EmailsPOST /email/v1/deliveremailrest.inalambria.comx-api-keyVer
Plantillas de EmailGET /email/v1/templatesemailrest.inalambria.comx-api-keyVer
Monitoreo de operadoresGET /platformmonitoryrest.inalambria.comBearerVer
Monitoreo de efectividadGET /bireports/effectivitybyclientrest.inalambria.comBearerVer
Monitoreo de estado de mensajesGET /bireports/msgmtclientrest.inalambria.comBearerVer
SMS por archivoSFTP / Amazon S3——Ver
SMPPsmsc.inalambria.com:5020 / :6011 (TLS)System IDVer

Inalambria Express API

Para pymes y desarrolladores que quieren empezar sin contrato, la API de Inalambria Express (OpenAPI 3.1, Bearer Token) ofrece:

  • Envío de SMS a uno o varios destinatarios
  • Lotes con mensajes distintos para distintos grupos
  • Mensajes personalizados con plantillas y variables
  • Historial de consumo, saldo y presupuesto
  • Seguimiento de trabajos asíncronos y colas

api.inalambria.express/docs · GitHub

Soporte técnico

Escribe a soporte@inalambria.com o abre una solicitud en el formulario de soporte seleccionando «API REST» como producto.

¿Listo para comunicarte mejor con tus clientes?

Cuéntanos tu caso y diseñamos contigo la solución adecuada, con el respaldo de más de 23 años de experiencia en Colombia.