Lo que incluye el envío por SMPP
Si ya tienes un cliente SMPP, solo te conectas
Hablame atiende los comandos que un envío necesita: abrir la conexión como
transmitter,receiverotransceiver, enviar consubmit_sm, mantenerla viva conenquire_linky cerrarla conunbind.Acuse de entrega de cada mensaje
El acuse trae el estado final que conocemos:
DELIVRD,EXPIRED,DELETED,UNDELIV,ACCEPTD,UNKNOWN,REJECTD. Si tu cliente no lo confirma, lo seguimos intentando durante 72 horas.Pensado para volumen sostenido
Hasta 3.000 mensajes por segundo en cada conexión (cada parte de un mensaje largo cuenta) y hasta 20 conexiones a la vez por cuenta y dirección IP.
Mensajes largos
Puedes partir el texto tú mismo: el servidor junta las partes, espera hasta 60 minutos desde la primera y admite hasta 255 partes.
Conexión cifrada
Si tu cliente abre la conexión con TLS 1.2 o superior, el servidor lo detecta solo. Te recomendamos usarlo.
Textos en español
La ñ y la é caben en el alfabeto básico (160 caracteres por mensaje). Las vocales con tilde
á,í,ó,úobligan a usar UCS-2, con 70 caracteres por mensaje.
Cómo funciona el envío
Tu plataforma y Hablame conversan así, de arriba abajo.
Abres la conexión
Haces el bind con tu system_id y tu contraseña.
Envías el mensaje
Cada mensaje (o cada parte de uno largo) va en un submit_sm.
Guardas el message_id
Llega en la respuesta y es el mismo que trae el acuse.
Recibes el acuse
Trae el estado final del mensaje. Lo confirmas con deliver_sm_resp.
Los SMS que te escriben llegan por webhook
Los SMS entrantes no se reciben por la conexión SMPP: llegan a una URL de tu servidor.
Un evento por cada SMS
Cuando alguien escribe a tu código corto, te llega el evento
sms.conmo. {shortCode} shortCode,from,text,receivedAt,messageId. Un SMS al 87654 llega comosms..mo. 87654 Cada aviso viene firmado
Con la cabecera
X-Hablame-Signatureverificas que el aviso salió de Hablame y que nadie lo cambió en el camino.Sin procesar dos veces el mismo aviso
Un aviso puede llegar más de una vez.
X-Hablame-Delivery-Idno cambia entre reintentos: úsalo para descartar los repetidos.
Cómo llega un SMS entrante
1. Una persona escribe
87654Envía un SMS a tu código corto.
2. Hablame lo recibe
sms.mo.87654Busca el destino que registraste para ese código corto.
3. Tu servidor recibe el aviso
POST https://…Un POST firmado a tu URL HTTPS, con el SMS en formato JSON.
4. Tú respondes
2xxCon un código 2xx. Si no lo haces, Hablame reintenta el aviso.
Así se ven los dos mensajes
A la izquierda, el acuse de entrega que recibes por SMPP. A la derecha, el aviso de un SMS entrante. Los datos son de ejemplo.
id:<message_id> sub:001 dlvrd:001 submit date:AAMMDDhhmm done date:AAMMDDhhmm stat:<estado> err:<error> Text:<texto>{
"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"
}
}Qué necesitas
- Una cuenta SMPP, que crea soporte. Soporte te entrega el servidor, el puerto, tu
system_idy tu contraseña. - Direcciones IP públicas fijas: solo las que autorices quedan habilitadas para tu cuenta.
- Un centro de costo al que se atribuye el consumo.
- Un cliente SMPP 3.4. Si quieres acuses, una conexión
receiverotransceiver. - Para recibir SMS entrantes: un código corto con un destino registrado y una URL HTTPS que responda con un código 2xx.
- Hoy los destinos son celulares en Colombia.
Lo que hoy no hace
- No se admiten
query_sm,submit_multi,data_sm,replace_sm,cancel_sm: respondengeneric_nacky la conexión sigue abierta. - El envío programado (
schedule_delivery_time) se guarda pero no se aplica: el mensaje sale de inmediato. - Los SMS entrantes llegan solo por webhook, no por la conexión SMPP.
Costos
- Enviar SMS tiene costo. No publicamos precios aquí: las condiciones las acuerdas con el equipo comercial.
¿Quieres enviar SMS desde tu plataforma?
Cuéntanos tu caso y las direcciones IP desde las que te conectarías, y te orientamos sobre cómo continuar.