Webhooks

Receive real-time event notifications via webhooks.

Overview

Webhooks let you receive HTTP POST requests when events happen in Offly. Use them to integrate with your own systems.

Setting up webhooks

Navigate to Settings → Webhooks and click Add Webhook:

  • URL — your endpoint that receives events
  • Events — which events to send (or all)
  • Secret — used to verify webhook signatures

Webhook configuration form

Events

| Event | Fires when | |-------|-----------| | leave.requested | A new leave request is submitted | | leave.approved | A request is approved | | leave.declined | A request is declined | | leave.cancelled | A request is cancelled | | user.invited | A new user is invited | | user.joined | A user accepts their invitation |

Payload format

{
  "event": "leave.approved",
  "timestamp": "2026-05-26T10:30:00Z",
  "data": {
    "id": "lr_abc123",
    "user_id": "usr_def456",
    "leave_type": "holiday",
    "start_date": "2026-06-01",
    "end_date": "2026-06-05",
    "status": "approved"
  }
}

Verifying signatures

Each webhook includes an X-Offly-Signature header. Verify it using your webhook secret to ensure requests are genuine.

Failed webhook deliveries are retried up to 3 times with exponential backoff.