Configurar notificaciones en tiempo real para su negocio —ya sea enviando confirmaciones de citas para una clínica o actualizaciones de pedidos para un taller de reparaciones— requiere una forma fiable de rastrear el estado de entrega. Una vez configurada su URL de callback, saber exactamente cómo probar SMS una vez configurado el webhook es el siguiente paso crítico para asegurar que su sistema procese los reportes de entrega y los mensajes entrantes sin errores.

Paso 1: Configurar un receptor de webhook local

Antes de poder probar cómo maneja su sistema los reportes de entrega de SMS, necesita una URL pública que pueda recibir solicitudes HTTP POST desde su pasarela SMS. Si está desarrollando localmente, su servidor ejecutándose en localhost:3000 no es accesible desde el internet abierto. Para cerrar esta brecha, puede usar herramientas de túnel local como ngrok, LocalTunnel, o herramientas de prueba de webhooks en línea como Webhook.site.

Para una prueba rápida y sin configuración, se recomienda encarecidamente Webhook.site. Genera una URL pública única y temporal donde puede observar los payloads entrantes en tiempo real. Si prefiere probar directamente contra su aplicación local, ejecute ngrok para exponer su puerto local:

ngrok http 3000

Este comando generará una URL de reenvío HTTPS pública (por ejemplo, https://su-subdominio.ngrok-free.app). Deberá añadir su ruta de webhook a esta URL —por ejemplo, https://su-subdominio.ngrok-free.app/webhooks/sms— y usarla como su endpoint de webhook.

Escribir un receptor de webhook sencillo en Express.js

Si desea registrar e inspeccionar el payload en su propio backend, aquí tiene un fragmento simple de Node.js y Express para configurar un endpoint rápido:

const express = require('express');
const app = express();
app.use(express.json());

app.post('/webhooks/sms', (req, res) => {
  console.log('Received Webhook Payload:', JSON.stringify(req.body, null, 2));
  // Always return a 200 OK status quickly to acknowledge receipt
  res.status(200).send({ status: 'success' });
});

app.listen(3000, () => console.log('Webhook receiver listening on port 3000'));

Paso 2: Configurar la URL del webhook en su pasarela SMS

Una vez que tenga su URL de webhook pública, debe registrarla en el panel de su pasarela SMS. A diferencia de los proveedores tradicionales como Twilio o Vonage, que requieren registros complejos de A2P 10DLC, verificación de perfil comercial y aprobaciones de campaña antes de poder enviar siquiera un mensaje de prueba, MySMSGate le permite conectar su propio teléfono Android mediante un simple código QR y comenzar a probar al instante.

Para configurar su webhook en MySMSGate:

  1. Inicie sesión en su panel en MySMSGate.
  2. Navegue a la configuración de API o al panel de Integración para Desarrolladores.
  3. Pegue su URL de webhook (por ejemplo, su URL de Webhook.site o su URL de reenvío de ngrok) en el campo "Webhook URL".
  4. Seleccione los eventos a los que desea suscribirse (por ejemplo, sms.sent, sms.delivered, sms.failed, o sms.received).
  5. Guarde sus cambios.

Esta configuración vincula sus tarjetas SIM físicas de Android con su aplicación de backend, asegurando que cualquier cambio de estado de SMS o mensaje de texto entrante se reenvíe instantáneamente a su servidor.

Paso 3: Disparar un SMS de prueba para verificar la entrega del webhook

La forma más fiable de probar su webhook es disparar un mensaje SMS real. Con MySMSGate, no necesita comprar números virtuales ni configurar un entorno de sandbox. Debido a que la plataforma convierte su teléfono Android en una pasarela SMS, usted envía mensajes reales a través de su propia tarjeta SIM a su propio número móvil para realizar las pruebas.

Puede disparar un SMS de prueba directamente desde el panel web usando la interfaz de Web Conversations, o programáticamente a través de nuestra sencilla API REST. Aquí tiene un ejemplo de curl para disparar un mensaje de prueba:

curl -X POST https://mysmsgate.net/api/v1/send \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "+1234567890",
    "message": "Mensaje de prueba de webhook desde MySMSGate",
    "sim_slot": 1
  }'

Después de ejecutar esta solicitud, su teléfono Android conectado enviará inmediatamente el mensaje a través de su tarjeta SIM. A medida que el mensaje pase de "pendiente" a "enviado" y finalmente a "entregado", MySMSGate enviará solicitudes HTTP POST a su URL de webhook configurada.

Paso 4: Inspeccionar el payload del estado de entrega

Una vez que dispare el SMS de prueba, revise su receptor de webhook (como Webhook.site o su terminal local ejecutando ngrok). Debería ver una solicitud HTTP POST entrante. Inspeccionar este payload es una parte fundamental para aprender cómo probar SMS una vez configurado el webhook.

Un payload típico de estado de entrega de MySMSGate se ve así:

{
  "event": "sms.status_changed",
  "message_id": "msg_8f7d6e5c4b3a",
  "to": "+1234567890",
  "status": "delivered",
  "sim_slot": 1,
  "device_id": "dev_android_01",
  "timestamp": "2026-08-05T14:32:01.000Z",
  "error_code": null
}

Al analizar este payload, verifique los siguientes campos:

  • message_id: Coincide con el ID devuelto por la llamada inicial a la API.
  • status: Confirma si el mensaje fue despachado o entregado con éxito.
  • sim_slot: Identifica qué tarjeta SIM se utilizó (especialmente útil para teléfonos Android con SIM dual).
  • error_code: Si el estado es "failed", este campo contendrá el motivo (ej. sin señal de operador, sin saldo).

Paso 5: Probar casos extremos y reintentos del webhook

Una aplicación de producción robusta debe manejar algo más que solo entregas exitosas. Debe verificar cómo se comporta su sistema cuando algo sale mal. Al probar su integración de webhook, asegúrese de simular y manejar estos tres casos extremos:

  1. Simular un fallo de entrega: Envíe un SMS a un número de teléfono inválido o desconectado. Observe el payload del webhook. El status debería actualizarse a failed y el error_code debería completarse. En MySMSGate, cualquier SMS fallido se reembolsa automáticamente al saldo de su cuenta, lo cual puede verificar en su panel.
  2. Simular inactividad del servidor: Apague temporalmente su servidor receptor de webhook local y dispare un SMS. Una buena pasarela SMS encolará los reportes de entrega y reintentará enviarlos si su servidor devuelve un error 5xx o agota el tiempo de espera. Verifique que la pasarela reintente la entrega del webhook una vez que su servidor vuelva a estar en línea.
  3. Manejar webhooks duplicados: En escenarios de red poco comunes, su servidor podría recibir el mismo evento de webhook dos veces. Asegúrese de que su código de backend sea idempotente —es decir, que verifique si el estado del message_id ya ha sido actualizado en su base de datos antes de ejecutar cualquier lógica de negocio (como enviar un correo de seguimiento).

Comparación de entornos de prueba de webhooks de pasarelas SMS

Probar webhooks puede variar enormemente según el proveedor de API SMS que elija. Las plataformas de comunicación en la nube tradicionales suelen introducir fricciones mediante reglas de cumplimiento complejas y sandboxes, mientras que las pasarelas SMS modernas basadas en Android agilizan la experiencia del desarrollador.

A continuación, una comparación de la prueba de webhooks y la gestión de entrega de SMS en diferentes plataformas:

Característica / ParámetroMySMSGateTwilio / PlivoPasarelas SMS tradicionales
Tiempo de configuración< 5 minutos (escaneo QR)Días a semanas (aprobaciones A2P 10DLC)Horas (claves API complejas)
Entorno de pruebasDispositivo Android real y tarjeta SIMSandbox restringido o números virtuales de pagoSolo sandbox simulado
Estructura de preciosTarifa plana $0.02/SMS (sin cuotas mensuales)Facturación por segmento + cargos de operador + alquiler mensual de númeroSuscripción mensual (ej. $9.99/mes)
Política de SMS fallidosReembolso automático de saldo en caso de falloSe cobra el precio total aunque falle la entregaVaría (a menudo se cobra igual)
Integraciones No-CodeZapier, Make.com, n8n, Panel WebRequiere código personalizado o middleware complejoIntegraciones limitadas

Al usar su propio teléfono Android como pasarela SMS, evita la necesidad de comprar costosos códigos cortos dedicados o números virtuales solo para probar sus webhooks. Esto convierte a MySMSGate en la API de SMS más barata para pequeñas empresas cuyos propietarios desean notificaciones simples y fiables sin los gastos generales de los contratos corporativos.

Preguntas frecuentes

A continuación se presentan algunas de las preguntas más comunes que los desarrolladores y dueños de negocios hacen al configurar y probar webhooks de SMS.

¿Cómo verifico si mi endpoint de webhook está recibiendo los estados de entrega de SMS?

Puede verificar esto revisando los logs de su servidor o usando una herramienta como Webhook.site. Cuando se envía un SMS, la pasarela envía una solicitud HTTP POST a su URL. Si los logs de su servidor muestran una solicitud POST entrante con un código de respuesta 200 OK, su endpoint está recibiendo con éxito los estados de entrega.

¿Qué herramientas debo usar para probar webhooks localmente?

Las mejores herramientas para pruebas locales de webhooks son ngrok (para exponer su servidor local a internet mediante un túnel seguro) y Webhook.site (para inspeccionar rápidamente payloads JSON sin escribir código). Ambas herramientas son gratuitas y ampliamente utilizadas por desarrolladores.

¿Por qué mi webhook de SMS devuelve un error 500 durante las pruebas?

Un error 500 Internal Server Error significa que el código de su receptor de webhook falló o encontró un error al procesar el payload entrante. Revise los logs de su servidor backend para encontrar el stack trace. Asegúrese de que su código esté analizando correctamente el cuerpo JSON y devolviendo una respuesta 200 OK rápidamente, antes de realizar cualquier operación de base de datos prolongada.

¿Cómo maneja MySMSGate los reintentos de webhook si mi servidor se desconecta?

Si su servidor está fuera de línea o devuelve un estado de error (como 500 o 503), el sistema de entrega de webhooks de MySMSGate encolará automáticamente la notificación y reintentará enviarla en intervalos crecientes. Esto asegura que nunca pierda reportes de entrega críticos o respuestas entrantes de clientes durante actualizaciones breves del servidor.