Notificaciones por webhook
Añadir un suscriptor de webhook
Inicia sesión en Instatus desde instatus.com/login y elige tu página de estado.
Ve a Suscriptores y después a Webhook.
Haz clic en Añadir suscriptor de webhook.
Aparecerá un formulario nuevo donde puedes introducir:
- La URL del webhook
- Una dirección de correo

Enviaremos peticiones a tu URL con este formato y se enviará un correo a la dirección indicada cuando haya un problema con la URL.
Puedes dar un nombre a tu suscriptor de webhook haciendo clic en él y escribiéndolo en el formulario; también puedes eliminar este suscriptor haciendo clic en Cancelar suscripción.
Verificación de la carga del webhook
Recomendamos encarecidamente validar la carga del webhook en tu endpoint.
Firmamos las cargas de los webhooks con un secreto e incluimos la firma en una cabecera llamada x-instatus-webhook-signature. Esa firma te permite verificar que el webhook viene de Instatus.
Pasos para verificar un webhook
- Obtén tu secreto del webhook en el panel (lo encontrarás al crear o editar un webhook, y también puedes personalizarlo ahí).

-
Crea un endpoint nuevo en tu servidor que reciba el webhook.
-
Compara la firma con la que genere tu servidor para validarla.
-
Si las firmas coinciden, procesa el webhook.
Ejemplo de código
import crypto from 'crypto'import express from 'express'const app = express()app.use(express.json())const WEBHOOK_SECRET = 'your-webhook-secret'function isVerifiedPayload(payload, signature, secret) {const hmac = crypto.createHmac('sha256', secret)const digest = hmac.update(JSON.stringify(payload)).digest('hex')return crypto.timingSafeEqual(Buffer.from(digest), Buffer.from(signature))}app.post('/endpoint/to/webhook', (req, res) => {const payload = req.bodyconst signature = req.header('x-instatus-webhook-signature')if (!signature) {return res.status(400).send('Signature missing')}if (!isVerifiedPayload(payload, signature, WEBHOOK_SECRET)) {return res.status(401).send('Invalid signature')}// Process the valid webhookres.status(200).send('Webhook received')})app.listen(3000, () => console.log('Server running on port 3000'))
Por qué importa la verificación
- Garantiza la autenticidad: confirma que el webhook procede de nuestra plataforma.
- Evita manipulaciones: detecta cambios en la carga.
- Mejora la seguridad: protege frente a ataques de repetición y accesos no autorizados.