Webhooks

Find out how to configure and use webhooks in Livvi

How webhooks work in LivviCopied!

Webhooks are a global configuration of the Organization and must be managed only by users of OWNER level.

Webhooks allow a single configuration per organization. The configured webhook URL will receive events from all locations inside that organization. Therefore, if you wish to push events to multiple different systems, you will need to receive them on a single URL and forward them to each system with your own infrastructure.

Important rulesCopied!

To guarantee a good level of service, please observe the following rules:

  • The URL must have SSL enabled (HTTPS).

  • The URL called by the webhook must always return a successful (2XX) HTTP status code.

  • The URL called by the webhook must respond within 15 seconds, otherwise it will timeout, which is considered a failure.

  • If the delivery fails three consecutive times, the webhook will be automatically disabled and the appointed e-mail address will receive a notification.

  • When the webhook is disabled, events will accumulate for up to 72 hours in a queue and will be delivered to the webhook whenever it's enabled again.

  • You should make sure the appointed e-mail address is monitored and fix any errors with the receiving URL before re-enabling the webhook in the Livvi dashboard.

Keep the receiving URL's implementation as simple as possible, with minimal points of failure or possible hangups. It's smart to only enqueue messages for later processing, instead of directly processing messages during the URL call.

Bookings webhookCopied!

The webhook of booking type will push events when the following operations occur on a booking:

  1. A booking is created, updated or deleted;

  2. A backup PIN code (One-time passcode, OTP) was generated for a booking;

  3. The user has used their PIN code for the first time (check in).

This is an example of what to expect on a webhook call:

{
  "id": 2,
  "corpId": 1,
  "bookingEventType": "CREATE",
  "checkInTime": "2025-07-26T17:15",
  "users": [
    {
      "id": 2,
      "fullName": "Daniel Sandoval",
      "passcode": "77560"
    }
  ],
  "doors": [
    {
      "id": 2,
      "serial": "TTLKAABAAABAAAAD",
      "name": "Kelvin TTLock",
      "passcodeOtp": [
        {
           "passcode": "1234",
           "startDateTime": "2025-07-26T17:15",
           "endDateTime": "2025-07-27T23:59"
        }
      ]
    }
  ],
  "bookingCreationTime": "2025-07-06T13:42:24.611028",
  "timezone": "America/Sao_Paulo",
  "startDateTime": "2025-07-26T17:15",
  "endDateTime": "2025-07-27T23:59",
  "weekDays": [
    "sun",
    "mon",
    "tue",
    "wed",
    "thu",
    "fri",
    "sat"
  ]
}