Skip to main content

Webhooks — Event Notifications

Register an HTTPS endpoint to receive events as they happen.

Advanced· 7 min read· Last updated: 2026-05-05· 31 people found this helpful
A webhook is a notification Glanevo sends to your address when something happens. **Registration.** Settings → Developers → Webhooks → + New: - URL (HTTPS required) - Event types (choose several) - Secret (for signature verification) **Event types.** - `appointment.created`, `appointment.updated`, `appointment.cancelled`, `appointment.no_show` - `customer.created`, `customer.updated` - `payment.succeeded`, `payment.failed`, `payment.refunded` - `invoice.created`, `invoice.paid` - `staff.created` **Example payload (`appointment.created`):** ```json { "id": "evt_01HX...", "type": "appointment.created", "createdAt": "2026-05-21T10:30:00Z", "data": { "appointment": { "id": "apt_01HY...", "customerId": "cus_...", "serviceId": "svc_...", "startAt": "2026-05-22T14:00:00Z", "endAt": "2026-05-22T15:30:00Z", "price": 450 } } } ``` **Verify the signature.** Every request carries an `X-Glanevo-Signature` header, signed with HMAC-SHA256. ```js const crypto = require('crypto'); const expected = crypto .createHmac('sha256', WEBHOOK_SECRET) .update(rawBody) .digest('hex'); if (req.headers['x-glanevo-signature'] !== expected) { return res.status(401).end(); } ``` **Retries.** If you do not return 2xx, we retry five times with exponential backoff (2 min, 5 min, 20 min, 1 hour, 6 hours). 📊 Webhook history: Settings → Developers → Logs.

Was this article helpful?