What sending over SMPP includes
If you already have an SMPP client, you just connect
Hablame handles the commands a sending flow needs: opening the connection as
transmitter,receiverortransceiver, sending withsubmit_sm, keeping it alive withenquire_linkand closing it withunbind.A delivery receipt for each message
The receipt carries the final status we know:
DELIVRD,EXPIRED,DELETED,UNDELIV,ACCEPTD,UNKNOWN,REJECTD. If your client does not confirm it, we keep trying for 72 hours.Built for sustained volume
Up to 3,000 messages per second on each connection (each part of a long message counts) and up to 20 simultaneous connections per account and IP address.
Long messages
You can split the text yourself: the server joins the parts, waits up to 60 minutes from the first one and accepts up to 255 parts.
Encrypted connection
If your client opens the connection with TLS 1.2 or later, the server detects it on its own. We recommend using it.
Spanish text
The ñ and the é fit in the basic alphabet (160 characters per message). The accented vowels
á,í,ó,úforce UCS-2, with 70 characters per message.
How sending works
Your platform and Hablame talk like this, from top to bottom.
You open the connection
You bind with your system_id and your password.
You send the message
Each message (or each part of a long one) goes in a submit_sm.
You store the message_id
It arrives in the response and is the same one the receipt carries.
You receive the receipt
It carries the final status of the message. You confirm it with deliver_sm_resp.
The SMS people send you arrive by webhook
Inbound SMS are not received over the SMPP connection: they arrive at a URL on your server.
One event per SMS
When someone writes to your short code, you get the
sms.event withmo. {shortCode} shortCode,from,text,receivedAt,messageId. An SMS to 87654 arrives assms..mo. 87654 Every notification is signed
With the
X-Hablame-Signatureheader you verify that the notification came from Hablame and that nobody changed it on the way.Never process the same notification twice
A notification can arrive more than once.
X-Hablame-Delivery-Iddoes not change between retries: use it to drop the repeated ones.
How an inbound SMS arrives
1. A person writes
87654They send an SMS to your short code.
2. Hablame receives it
sms.mo.87654It looks up the endpoint you registered for that short code.
3. Your server gets the notification
POST https://…A signed POST to your HTTPS URL, with the SMS as JSON.
4. You answer
2xxWith a 2xx code. If you do not, Hablame retries the notification.
What the two messages look like
On the left, the delivery receipt you get over SMPP. On the right, the notification of an inbound SMS. The data is sample data.
id:<message_id> sub:001 dlvrd:001 submit date:YYMMDDhhmm done date:YYMMDDhhmm stat:<status> err:<error> Text:<text>{
"id": "0192f0c47b1e7a3d9c553e2a1b4c5d6e",
"type": "sms.mo.87654",
"data": {
"shortCode": "87654",
"from": "573001234567",
"text": "Hola, quiero más información",
"receivedAt": "2026-10-24T15:04:05Z",
"messageId": "0192f0c4-7b1e-7a3d-9c55-3e2a1b4c5d6e"
}
}What you need
- An SMPP account, which support creates. Support gives you the server, the port, your
system_idand your password. - Fixed public IP addresses: only the ones you authorize are enabled for your account.
- A cost center that usage is attributed to.
- An SMPP 3.4 client. If you want receipts, a
receiverortransceiverconnection. - To receive inbound SMS: a short code with a registered endpoint and an HTTPS URL that answers with a 2xx code.
- Today the destinations are mobile phones in Colombia.
What it does not do today
query_sm,submit_multi,data_sm,replace_sm,cancel_smare not supported: they answergeneric_nackand the connection stays open.- Scheduled sending (
schedule_delivery_time) is stored but not applied: the message goes out right away. - Inbound SMS arrive only by webhook, not over the SMPP connection.
Costs
- Sending SMS has a cost. We do not publish prices here: you agree the terms with the sales team.
Want to send SMS from your platform?
Tell us about your case and the IP addresses you would connect from, and we will guide you on how to continue.