Webhook-notificaties
Een webhook-abonnee toevoegen
Log in bij Instatus via instatus.com/login en kies je statuspagina.
Ga naar Abonnees en daarna naar Webhook.
Klik op Webhook-abonnee toevoegen,
Er verschijnt een nieuw formulier waarin je invult:
- Webhook-URL
- E-mailadres

We sturen verzoeken naar je URL in dit formaat en er gaat een e-mail naar het opgegeven adres wanneer er iets mis is met de URL.
Je kunt je webhook-abonnee een naam geven door erop te klikken en een naam in het formulier te typen. Je kunt deze abonnee ook verwijderen door op Afmelden te klikken.
Verificatie van de webhook-payload
Het wordt sterk aangeraden om de webhook-payload in je webhook-endpoint te valideren.
We ondertekenen webhook-payloads met een secret en sturen de handtekening mee als header met de naam x-instatus-webhook-signature. Met die handtekening controleer je of de webhook echt van Instatus komt.
Stappen om een webhook te verifiëren
- Haal je Webhook Secret op uit het dashboard (je vindt het terwijl je een webhook bewerkt of aanmaakt, en je kunt het daar ook aanpassen).

-
Maak op je server een nieuw endpoint dat de webhook ontvangt.
-
Vergelijk de handtekening met de handtekening die je server genereert om te valideren.
-
Komen de handtekeningen overeen, verwerk de webhook dan.
Codevoorbeeld
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'))
Waarom verificatie belangrijk is
- Garandeert echtheid: bevestigt dat de webhook van ons platform komt.
- Voorkomt manipulatie: signaleert wijzigingen in de payload.
- Verhoogt de veiligheid: beschermt tegen replay-aanvallen en ongeautoriseerde toegang.