Webhooks de SMS

Webhooks de SMS

Los webhooks de SMS envían un POST a tu servidor cuando un mensaje se envía, se entrega, falla o llega. Esta guía te muestra la forma rápida de registrarlo desde Private Integrations, la regla del HTTP 200 que decide si se guarda, y el método por API.

La forma sencilla: configúralo en el portal

No necesitas llamar a la API para registrar un webhook. Se puede configurar desde el portal en menos de un minuto.

  1. Inicia sesión en tu Zonitel Office Portal.
  2. En el menú lateral izquierdo, expande Settings y haz clic en Private Integrations.
  3. Abre la pestaña Webhooks.
  4. En SMS webhook, pega tu Webhook URL.
  5. Haz clic en Save.

La URL debe ser válida y responder con HTTP 200 para guardarse: si no responde correctamente no se almacena, así que ten tu endpoint activo antes de guardar. Para quitar el webhook más adelante, borra el campo y guarda de nuevo.

El resto de este artículo cubre cómo hacer lo mismo por la API, que es lo que necesitas si aprovisionas cuentas de forma programática.


Advanced: método y autenticación del receptor

  1. Abre Advanced debajo de la URL del webhook y activa Use a custom method or authentication.
  2. Elige el HTTP method y la Authentication que requiere el servicio receptor. Métodos: POST, PUT, PATCH o GET. Autenticación: None, Bearer token, API key, Basic (user + password) o Custom header.
  3. Completa los campos de la opción elegida y guarda el webhook. La URL receptora debe responder con HTTP 200 para que el portal la acepte.

El valor predeterminado es POST sin autenticación. GET no lleva cuerpo: el evento viaja como parámetros de consulta. Para API key, elige dónde enviarla e introduce el nombre del encabezado o parámetro que exige el receptor.

Las credenciales opcionales del receptor pertenecen al servicio que recibe el webhook. Son distintas del token de la API de Zonitel y de X-Client-Id, que tu software utiliza para llamar a nuestra API. Proporciona únicamente credenciales destinadas a ese receptor.

El ejemplo de registro por API que aparece abajo configura la URL. Utiliza el portal para las opciones Advanced mostradas aquí.

Paso a paso: sms webhook

Cómo Funciona

  1. Registra una URL de webhook en tu cuenta.

  2. Cada vez que se envíe, entregue, falle un SMS o se reciba un mensaje entrante, Zonitel enviará una solicitud POST a tu URL de webhook.

  3. Tu servidor debe responder con HTTP 200 OK dentro de 5 segundos para confirmar la recepción.

Importante: Las solicitudes utilizan Bearer Authentication. Incluye tu token de acceso en el header Authorization.


Registrar un Webhook

Endpoint:

 
PUT https://api.zonitel.com/api/v3/integrations/sms/webhooks Content-Type: application/json X-Client-Id: 550e8400-e29b-41d4-a716-446655440000 Authorization: Bearer <TU_ACCESS_TOKEN>

Cuerpo de la solicitud (JSON):

 
{ "url": "https://tudominio.com/api/sms-webhook" }

Notas:

  • La URL debe ser HTTPS y accesible públicamente.

  • Tu servidor debe responder dentro de 5 segundos con HTTP 200 OK.

Ejemplo de respuesta exitosa:

 
{ "status": "success", "data": { "url": "https://tudominio.com/api/sms-webhook" }, "message": "Webhook actualizado correctamente" }

Consultar Webhook Registrado

Endpoint:

 
GET https://api.zonitel.com/api/v3/integrations/sms/webhooks X-Client-Id: 550e8400-e29b-41d4-a716-446655440000 Authorization: Bearer <TU_ACCESS_TOKEN>

Ejemplo de respuesta:

 
{ "status": "success", "data": { "url": "https://tudominio.com/api/sms-webhook" }, "message": "Webhook obtenido correctamente" }

Elimina el webhook de SMS registrado

Usa DELETE en la misma ruta para dejar de enviar eventos de SMS a tu receptor. La eliminación correcta devuelve HTTP 204.

curl --request DELETE \
  --url https://api.zonitel.com/api/v3/integrations/sms/webhooks \
  --header 'Authorization: Bearer YOUR_TOKEN' \
  --header 'X-Client-Id: YOUR_CLIENT_ID'

Notificaciones de Webhook

Notificación de SMS entrante

 
{ "status": "received", "data": { "id": "11111111-aaaa-2222-bbbb-333333333333", "segments": 1, "direction": "inbound", "messageText": "Hola, este es un SMS de prueba", "from": "+10000000010", "to": "+10000000020", "medias": [] }, "message": "SMS recibido correctamente" }

Notificación de estado de mensaje (saliente)

 
{ "status": "delivered", "data": { "id": "44444444-cccc-5555-dddd-666666666666", "segments": 1, "direction": "outbound", "messageText": "SMS de prueba con media", "from": "+10000000020", "to": "+10000000030", "medias": [ "https://example.com/media1.jpg" ] }, "message": "SMS entregado correctamente" }

Respuestas Comunes de Error

  • 401 Unauthorized

 
{ "code": 401, "message": "Autenticación requerida" }
  • 403 Forbidden

 
{ "code": 403, "message": "Acceso denegado" }
  • 400 Bad Request

 
{ "code": 400, "message": "Parámetros de solicitud inválidos" }
  • 500 Internal Server Error

 
{ "code": 500, "message": "Ocurrió un error interno del servidor" }

Buenas Prácticas

  • Usa siempre HTTPS para tus URLs de webhook.

  • Responde con HTTP 200 OK dentro de 5 segundos.

  • Mantén tu token Bearer seguro y nunca lo compartas públicamente.

  • Revisa periódicamente que tus webhooks estén funcionando correctamente.

Para ir más lejos

Recibir eventos es la mitad de una integración de mensajería. Enviar SMS y MMS, consultar un mensaje, revisar la capacidad restante y programar campañas masivas se explican en Envía y recibe SMS con la API.

¿Necesitas ayuda?

Llamada/Texto/WhatsApp: (833) 966-4835
Email: info@zonitel.com

¿Te ha sido útil este artículo?

¿Aún tienes preguntas?

Nuestro equipo de soporte está disponible 24/7 para ayudarte a comenzar

Habla con nosotros en WhatsApp