Direct connection to every operator
Redundant links with every mobile operator in the country and automatic reconnection to keep the service running.
Channels · SMS
The universal channel: it reaches every phone, with no data plan or app required. More than 23 years operating SMS for the most demanding companies in Colombia, with direct, redundant connections to every mobile operator.
Today · 10:24
Inalambria Bank: Your verification code is 482913. It expires in 5 min. Never share it with anyone.
SMS is still the channel with the widest reach and the highest read rate. At Inalambria we run it as critical infrastructure: separate routes for OTP traffic, automatic reconnection with operators, load balancing and overflow to alternative channels when needed.
Send from our web platform, through the REST API or over dedicated connections, using shared or dedicated short codes, with real-time delivery reports.
Redundant links with every mobile operator in the country and automatic reconnection to keep the service running.
5 or 6 digit numbers that belong only to your brand: the messaging equivalent of your .com domain, easy to recognize and hard to spoof.
We isolate critical processes such as OTP notifications so they are managed independently and securely, never competing with bulk campaigns.
Receive replies, confirmations and keywords from your customers for surveys, appointment confirmations or transaction approvals.
Per-message status through the platform, the API or callbacks (webhooks) to your own infrastructure.
Automatic load balancing and overflow to RCS, WhatsApp or Email when the context calls for it.
Transactions, reminders, order updates, due dates and service notices delivered in seconds, over priority routes with real-time reporting.
Learn moreOne-time codes for sign-up, login and transaction approval, isolated from bulk traffic and backed by automatic cross-channel failover.
Learn morePromotions, launches and loyalty campaigns over SMS, RCS, WhatsApp and Email, with segmentation, personalization and automatic RNE and send-window controls.
Learn moreAI against smishing, dedicated short codes, verified senders and real-time transaction confirmation.
Learn moreOrchestrate SMS, RCS, WhatsApp, Twnel and Email from a single integration, with automatic overflow, load balancing and rules per message type.
Learn moreDevelopers
Bearer Token authentication, JSON and status callbacks.
# 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"
}'// Node.js 18+
const BASE = 'https://rest.inalambria.com';
async function getToken() {
const basic = Buffer.from(`${process.env.INALAMBRIA_USER}:${process.env.INALAMBRIA_PASSWORD}`).toString('base64');
const res = await fetch(`${BASE}/token`, {
method: 'POST',
headers: { Authorization: `Basic ${basic}`, 'Content-Type': 'application/json' },
body: JSON.stringify({ grant_type: 'password' }),
});
const { access_token } = await res.json(); // default lifetime: 4 hours
return access_token;
}
const token = await getToken();
const res = await fetch(`${BASE}/mtmessage`, {
method: 'POST',
headers: { Authorization: `Bearer ${token}`, 'Content-Type': 'application/json' },
body: JSON.stringify({
Type: 1,
MessageText: 'Reminder: your appointment is tomorrow at 8:30 am',
Devices: '573001234567',
}),
});
console.log(await res.json()); // { TransactionNumber, Status: 0 | 1, MessageText }# Python 3 + requests
import os, requests
BASE = "https://rest.inalambria.com"
token = requests.post(
f"{BASE}/token",
auth=(os.environ["INALAMBRIA_USER"], os.environ["INALAMBRIA_PASSWORD"]),
json={"grant_type": "password"},
timeout=10,
).json()["access_token"]
resp = requests.post(
f"{BASE}/mtmessage",
headers={"Authorization": f"Bearer {token}"},
json={
"Type": 1,
"MessageText": "Your October invoice is now available",
"Devices": "573001234567-573007654321", # several destinations separated by a hyphen
"DateMessage": "2027-01-15 08:00:00", # scheduled send (optional)
},
timeout=10,
)
print(resp.status_code, resp.json())
For Colombia, 12 digits (57 + the 10-digit number). For the rest of the world, international E.164 format.
The API does not enforce a strict limit, but we recommend staying under 500 characters. Long messages are concatenated and billed per segment.
Yes. We guide you through the application and set-up of a short code that belongs only to your brand, ideal for OTP, alerts and customer service.
Tell us about your needs and we’ll design the right solution with you, backed by more than 23 years of experience in Colombia.