Developers

Build with the Inalambria APIs

REST APIs for SMS, RCS, WhatsApp and Email, plus SMPP connections and file-based sending. Token authentication, JSON payloads and status notifications delivered to your own infrastructure.

Overview

Each service has its own host:

ServiceHost
SMS, RCS, token and monitoringhttps://rest.inalambria.com
WhatsApphttps://multichannel.inalambria.com
Emailhttps://emailrest.inalambria.com
SMPPsmsc.inalambria.com · smscssl.inalambria.com

Requirements: a sending account configured by Inalambria, authentication credentials and an HTTPS connection. Some services (RCS, notifications, monitoring, files) must be enabled first.

This page summarizes the official reference. For full details on each endpoint see docs.inalambria.com .

Quickstart

  1. 1

    Request your account

    Inalambria configures your sending account and gives you a username and password.

  2. 2

    Get a token

    POST /token with Basic Authentication and grant_type: password.

  3. 3

    Send your first SMS

    POST /mtmessage with the Bearer Token. Keep the TransactionNumber.

  4. 4

    Receive statuses

    Enable the account webhook or the per-request callback.

# 1. Request a token (Basic Authentication with your credentials)
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. Send an SMS (Colombia: 12 digits, 57 + mobile)
curl -X POST https://rest.inalambria.com/mtmessage \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "Type": 1,
    "MessageText": "Your order PEDIDO-4471 is on its way",
    "Devices": "573001234567",
    "CustomMessageId": "PEDIDO-4471"
  }'

Authentication

  • Token: POST /token with Basic Authentication (Base64 username and password) and the body {"grant_type": "password"}. The response includes access_token, expires_in, refresh_token and token_type.
  • By default a token lasts 4 hours and each account has 1 active token: requesting a new one expires the previous one. Both can be extended on request.
  • To renew it without credentials, send {"grant_type": "refresh_token", "refresh_token": "..."}.
  • SMS and RCS use Authorization: Bearer <token> (recommended) or Basic. WhatsApp uses Basic. Email uses the x-api-key header.
  • Requests from unauthorized IP addresses receive 403.

SMS: POST /mtmessage

FieldDescription
Type*1 bulk (same text), 2 personalized (MessagePattern + MessageData), 3 template (TemplateId + MessageData).
DevicesRecipients separated by a hyphen: 573XXXXXXXXX-573YYYYYYYYY.
MessageTextMessage text (bulk mode).
ChannelSMS (default) or RCS.
DateMessageScheduling: yyyy-MM-dd HH:mm:ss.
FlashSMS1 for a flash SMS.
UrlLong URL to shorten and insert in the message.
HasMore / TransactionNumberSplit sends under a single transaction number.
CustomMessageId / CallbackDataYour own data, returned in the status notification.

Response: TransactionNumber (28 digits), Status (0 accepted, 1 rejected) and MessageText with the rejection reason.

Format: Colombian numbers with 12 digits (57 + mobile) and E.164 elsewhere. There is no character limit, but staying under 500 is recommended.

RCS

RCS uses the same /mtmessage endpoint with "Channel": "RCS". The account and RCS agent must be configured first.

# RCS: same endpoint with "Channel": "RCS" (requires prior account set-up)
curl -X POST https://rest.inalambria.com/mtmessage \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "Type": 1,
    "Channel": "RCS",
    "MessageText": "Your order PEDIDO-4471 arrives today between 2 and 5 pm",
    "Devices": "573001234567"
  }'

Batch: POST /mtmessage/massive

Several messages, each with its own destinations list, in a single request. Each message supports flash, shortCode, notifyUrl, notifyContentType and callbackData (text); at the root, bulkId groups the campaign.

# Batch: several messages and recipients in one request, with per-request notification
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": "Your installment is due on December 5",
        "notifyUrl": "https://tu-servidor.example/inalambria/estado?token=TU_TOKEN",
        "callbackData": "{\"campana\": \"cobro-dic\"}"
      }
    ]
  }'

Two-way SMS: POST /momessage

Send from your assigned short code (ShortCode) to receive replies. Returns Id, Message (OK or ERROR) and Status. User replies can also be received over SMPP (Receiver mode).

# Two-way: send from your assigned short code
curl -X POST https://rest.inalambria.com/momessage \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "MessageText": "Confirm your Thursday appointment? Reply 1 for Yes, 2 for No",
    "PhoneNumber": "573001234567",
    "ShortCode": "12345"
  }'

Status notifications

ModeUseYour endpoint’s auth
Account webhookWith /mtmessage. The URL is configured on your account (activation can take up to 10 minutes).Basic or token in the URL
Per-request callbackWith /mtmessage/massive. The URL travels in notifyUrl.Token in the URL
  • Both are enabled by writing to support with the sending accounts and the receiving URL.
  • One request per message arrives (results has a single element) when the operator accepts or rejects it; smsCount shows the segments.
  • Reply 2xx. Only 503 triggers retries: up to 5, after 10, 20, 30, 40 and 50 seconds. Any other code or no response is not retried.
  • Be idempotent on transactionNumber + to and don’t assume ordering.
  • status.name is DELIVERED_TO_HANDSET on success and NO_SUCCESS on failure.
// Delivery status receiver (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', () => {
    // Acknowledge with 2xx right away; reply 503 only if you want a retry.
    res.writeHead(200).end();
    const [result] = JSON.parse(body).results; // always a single element
    const key = `${result.transactionNumber}:${result.to}`;
    if (seen.has(key)) return; // idempotency
    seen.add(key);
    console.log(result.messageId, result.status.name, result.smsCount);
  });
}).listen(8080);

WhatsApp

Send Meta-approved templates with source, destination, templateId and parameters (in the template’s exact order). A 200 confirms receipt and creates a transaction number, not final delivery.

# WhatsApp with an approved Meta template (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 must belong to a sender domain verified for your account.
  • Use templateId (see GET /email/v1/templates) or html with subject. {{variable}} placeholders are filled from fields.
  • Up to 50 recipients per request; base64 attachments (up to 10 files and 8 MB; the full request cannot exceed 20 MB).
# Email with a stored template (x-api-key header)
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": "Your company",
    "templateId": "TEMPLATE_ID_ASIGNADO",
    "payload": [
      { "recipient": "usuario@example.com", "fields": { "nombre": "Ana" } }
    ]
  }'
# Returns 202: check overallStatus, errors and each recipient status.

SMPP and files

ConnectionHostPort
SMPP without SSLsmsc.inalambria.com5020
SMPP with SSL/TLSsmscssl.inalambria.com6011
Inbound messages (MO), Receiver modesmscmo.inalambria.com6900

Bind modes: Transceiver, Transmitter or Receiver, using the System ID and password Inalambria provides.

SMS by file: drop a .txt file (personalized: number and message per line; or bulk: one message for many numbers) in a configured SFTP site or S3 bucket, and the sends are generated within minutes.

Monitoring

  • GET /platformmonitory: operator status, whether they act as alternates and their delivery time, as close to real time as possible.
  • GET /bireports/effectivitybyclient: processing times by status (last 15 minutes).
  • GET /bireports/msgmtclient: messages processed by operator and status (last 15 minutes).

Value-added services: they must be enabled first.

Response codes

CodeMeaning
200Received and processing (or token issued).
202Email: request registered; check each recipient’s status.
400Invalid payload structure.
401Unauthorized: check your credentials.
403Insufficient permissions, for example an IP that is not allowed.
500Internal error: retry in a few minutes or contact support.

Service catalog

ServiceEndpointHostAuthReference
Request tokenPOST /tokenrest.inalambria.comBasicView
One-way SMS / RCSPOST /mtmessagerest.inalambria.comBearerView
Batch SMSPOST /mtmessage/massiverest.inalambria.comBearerView
Two-way SMSPOST /momessagerest.inalambria.comBearerView
Account webhookInalambria → your server—Basic or URL tokenView
Per-request callbackInalambria → your server—URL tokenView
WhatsAppPOST /MultiChannelInput/SendMessageMetaWhatsAppmultichannel.inalambria.comBasicView
Send EmailPOST /email/v1/deliveremailrest.inalambria.comx-api-keyView
Email templatesGET /email/v1/templatesemailrest.inalambria.comx-api-keyView
Operator monitoringGET /platformmonitoryrest.inalambria.comBearerView
Effectiveness monitoringGET /bireports/effectivitybyclientrest.inalambria.comBearerView
Message status monitoringGET /bireports/msgmtclientrest.inalambria.comBearerView
SMS by fileSFTP / Amazon S3——View
SMPPsmsc.inalambria.com:5020 / :6011 (TLS)System IDView

Inalambria Express API

For small businesses and developers who want to start without a contract, the Inalambria Express API (OpenAPI 3.1, Bearer Token) offers:

  • SMS to one or many recipients
  • Batches with different messages for different groups
  • Personalized messages with templates and variables
  • Usage history, credit balance and budget
  • Async job and queue tracking

api.inalambria.express/docs · GitHub

Technical support

Email soporte@inalambria.com or open a request in the support form choosing “REST API” as the product.

Ready to communicate better with your customers?

Tell us about your needs and we’ll design the right solution with you, backed by more than 23 years of experience in Colombia.