Enviar SMS desde la terminal de Linux usando Shell
y cURL
es una solución rápida y eficiente para notificaciones, alertas o integraciones automatizadas. Gracias a la API de 360NRS, puedes enviar mensajes a múltiples destinatarios desde scripts o servidores sin necesidad de interfaces gráficas.
En este artículo, aprenderás a usar la API de 360NRS con cURL
, a manejar respuestas y errores de la API, y a implementar buenas prácticas para garantizar un uso seguro y eficiente del servicio.
Si buscas una forma sencilla y efectiva de enviar SMS desde la terminal de Linux, ¡este tutorial es para ti! 🚀
Contenidos
Requisitos previos para enviar SMS con Shell
Antes de comenzar, asegúrate de contar con los siguientes requisitos:
🔹 Cuenta en 360NRS: Si aún no tienes una, regístrate en 360NRS.
🔹 Obtener el Token de Autenticación: Necesario para autenticarte en la API.
🔹 Tener cURL instalado: Para comprobar si está instalado, ejecuta en la terminal:
curl --version
Si no está instalado, puedes hacerlo con:
- Ubuntu/Debian:
sudo apt install curl
- CentOS/Fedora:
sudo dnf install curl
- MacOS (Homebrew):
brew install curl
Una vez que tengas cURL listo, ¡ya podemos comenzar!
Cómo funciona la API SMS de 360NRS con Shell
La API de 360NRS permite enviar SMS mediante solicitudes HTTP POST
. Aquí tienes lo más importante que debes saber:
📌 Endpoint de la API:
POST https://dashboard.360nrs.com/api/rest/sms
Parámetros principales:
Parámetro | Tipo | Obligatorio | Descripción |
---|---|---|---|
to | Array | ✅ Sí | Número(s) de teléfono con prefijo internacional. |
from | String | ✅ Sí | Remitente del SMS (máximo 11 caracteres alfanuméricos). |
message | String | ✅ Sí | Texto del SMS (máximo 160 caracteres). |
🔹 Ejemplo de una petición exitosa:
- El servidor responderá con 202 ACCEPTED si el mensaje se ha enviado correctamente.
Código para enviar SMS con Shell y cURL
Ejemplo básico
Para enviar un SMS con cURL
, ejecuta el siguiente comando en la terminal:
curl -X POST 'https://dashboard.360nrs.com/api/rest/sms' \
-H 'Content-Type: application/json' \
-H 'Authorization: Basic YOUR_AUTH_TOKEN' \
-d '{
"to": ["34666555444"],
"from": "TEST",
"message": "Mensaje de prueba desde Shell"
}'
Explicación del código:
✔️ -X POST
: Indica que estamos haciendo una solicitud HTTP POST
.
✔️ -H 'Content-Type: application/json'
: Especifica que enviamos datos en formato JSON.
✔️ -H 'Authorization: Basic YOUR_AUTH_TOKEN'
: Autenticación con un token. Sustituye «YOUR_AUTH_TOKEN» por el tuyo.
✔️ -d '{}'
: Cuerpo de la solicitud, donde se definen to
, from
y message
.
Si todo está correcto, recibirás una respuesta con el código 202 ACCEPTED.
Manejo de respuestas y errores de la API
Respuestas posibles de la API
Código HTTP | Significado | Posible solución |
---|---|---|
202 ACCEPTED | El SMS se ha enviado correctamente. | No es necesario hacer nada. |
207 MULTI-STATUS | Algunos mensajes se enviaron y otros fallaron. | Revisa los detalles en la respuesta. |
400 BAD REQUEST | Error en la solicitud (parámetro incorrecto). | Verifica los datos enviados. |
401 UNAUTHORIZED | Error en la autenticación. | Comprueba tu token. |
429 TOO MANY REQUESTS | Se ha superado el límite de envíos. | Espera y reintenta más tarde. |
🔹 Ejemplo de cómo capturar la respuesta y mostrar el resultado en Shell:
response=$(curl -s -X POST 'https://dashboard.360nrs.com/api/rest/sms' \
-H 'Content-Type: application/json' \
-H 'Authorization: Basic YOUR_AUTH_TOKEN' \
-d '{"to":["34666555444"], "from":"TEST", "message":"Mensaje de prueba"}')
echo "Respuesta de la API: $response"
📌 El -s
suprime la barra de progreso de cURL, haciendo la salida más limpia.
Funciones avanzadas en el envío de SMS
Programar un envío de SMS
Para programar un mensaje a una fecha específica, usa el parámetro scheduleDate
:
curl -X POST 'https://dashboard.360nrs.com/api/rest/sms' \
-H 'Content-Type: application/json' \
-H 'Authorization: Basic YOUR_AUTH_TOKEN' \
-d '{
"to": ["34666555444"],
"from": "TEST",
"message": "Mensaje programado",
"scheduleDate": "20250215142000"
}'
Esto enviará el SMS el 15 de febrero de 2025 a las 14:20:00 UTC.
Usar variables personalizadas en los SMS
curl -X POST 'https://dashboard.360nrs.com/api/rest/sms' \
-H 'Content-Type: application/json' \
-H 'Authorization: Basic YOUR_AUTH_TOKEN' \
-d '{
"to": ["34666555444"],
"from": "TEST",
"message": "Hola {name}",
"sub": [{"name": "Juan"}]
}'
📌 El receptor verá: "Hola Juan"
Consultar el estado de un SMS enviado
Para verificar el estado de un mensaje enviado, usa su ID
:
curl -X GET 'https://dashboard.360nrs.com/api/rest/sms/XXXXXXXXXXXXX' \
-H 'Content-Type: application/json' \
-H 'Authorization: Basic YOUR_AUTH_TOKEN'
📌 Sustituye XXXXXXXXXXXXX
por el ID del mensaje.
Buenas prácticas en el uso de la API SMS con Shell
No expongas tu Authorization Token
en código público. Usa variables de entorno:
export AUTH_TOKEN="TU_TOKEN"
Implementa reintentos en caso de fallos:
for i in {1..3}; do
response=$(curl -s -X POST 'https://dashboard.360nrs.com/api/rest/sms' -H 'Authorization: Basic YOUR_AUTH_TOKEN' -d '{}')
echo "Intento $i: $response"
[[ "$response" == *"202 ACCEPTED"* ]] && break
sleep 5
done
Valida los números antes de enviarlos:
if [[ "$numero" =~ ^[0-9]{10,15}$ ]]; then
echo "Número válido: $numero"
else
echo "Número inválido."
fi
El uso de Shell
y cURL
para enviar SMS mediante la API de 360NRS proporciona una solución simple pero extremadamente poderosa para automatizar comunicaciones. Esta integración resulta especialmente útil en entornos donde se requiere el envío de notificaciones automatizadas, como servidores, sistemas de monitoreo y aplicaciones empresariales. Gracias a su flexibilidad, es posible programar envíos masivos, personalizar los mensajes con variables dinámicas y consultar en tiempo real el estado de los SMS enviados.
Una de las grandes ventajas de este método es su compatibilidad con cualquier sistema basado en Linux, sin necesidad de instalar software adicional. Esto lo hace ideal para administradores de sistemas, desarrolladores y empresas que buscan optimizar sus flujos de trabajo sin depender de interfaces gráficas. Además, al utilizar cURL
, se mantiene un control total sobre las peticiones HTTP, permitiendo capturar respuestas y gestionar errores de manera eficiente.
Sin embargo, como en cualquier integración con APIs, es fundamental seguir buenas prácticas para garantizar un uso seguro y eficiente del servicio. Proteger el Authorization Token
es clave para evitar accesos no autorizados, así como validar correctamente los números de teléfono antes de enviarlos para evitar fallos en la API. También es recomendable implementar un sistema de reintento en caso de errores temporales o respuestas no esperadas, asegurando la entrega efectiva de los mensajes.
Con esta guía, ya tienes las bases para implementar el envío de SMS desde Shell de manera profesional. Desde aquí, puedes mejorar la integración añadiendo bases de datos para gestionar contactos, automatizar campañas de mensajería o incluso desarrollar sistemas de notificaciones en tiempo real. Las posibilidades son enormes y con las herramientas adecuadas, puedes hacer que la comunicación automatizada sea una parte esencial de tu infraestructura digital.

Jaime Martínez – Product Manager 360NRS
Jaime Martínez, Product Manager en 360NRS, experto en comunicaciones móviles, marketing online, diseño, usabilidad y gestión de producto. Con más de 20 años de experiencia en el sector, Jaime ha liderado el desarrollo y evolución de productos digitales, impulsando estrategias centradas en el usuario que optimizan tanto la experiencia como el rendimiento de las soluciones. Su amplia trayectoria en diseño, marketing digital y gestión de producto aporta una visión estratégica clave para la innovación y el éxito de nuestras soluciones multicanal.
Deja una respuesta