---
title: "Lease Event Webhook"
method: POST
path: "lease_event"
---

# Lease Event Webhook

`POST lease_event` (webhook)

Whenever a lease's status changes in EliseAI, we will post the event to your
registered webhook. Use these events to keep an external system in sync with
lease lifecycle transitions. For the current lease snapshot at any time, use
`GET /v2/leases/properties/{property_id}/leases`.

Webhooks can be registered at the organization level or the property level.
Please reach out to the EliseAI support team to register your webhooks.

Event Types:
* **lease_created:** Posted whenever a new lease is created (status goes from none to a value)
* **lease_updated:** Posted whenever an existing lease's `lease_status` changes

This webhook fires only when `lease_status` changes. Non-status field updates
(for example rent, contact info, or dates without a status change) do not
produce an event.

Each delivery includes an `X-Signature` header: an HMAC SHA-256 hex digest
of the JSON request body, signed with your registered webhook secret.

For AIP properties where EliseAI is the system of record, `external_lease_id`
matches the lease `id` returned by `GET /v2/leases/properties/{property_id}/leases`.

Lease events will include:
* **event_id:** Unique identifier for the event. Use this for idempotency/deduplication.
* **event_type:** The type of event that occurred. One of `lease_created` or `lease_updated`.
* **event_date:** Date and time of the event
* **elise_property_id:** Elise identifier for the property
* **external_lease_id:** Lease identifier. For AIP leases this is the Elise lease id; for PMS-synced leases this is the external/PMS lease id.
* **external_account_id:** External account identifier associated with the lease, when one exists
* **pk_id:** Internal Elise lease primary key
* **lease_status:** Current/new lease status after the change. Possible values: `Applicant`, `Renewing`, `Future`, `Current`, `Notice`, `Waitlist`, `Former`, `UnderEviction`, `Evicted`, `Cancelled`, `Collections`, `Other`.
* **previous_lease_status:** Status before the change. Null when the lease is newly created.
* **unit_id:** Elise unit identifier, if applicable
* **unit_number:** Unit number associated with the lease
* **start_date:** Lease start date
* **end_date:** Lease end date
* **move_out_date:** Move-out date, if set
* **notice_date:** Notice-to-vacate date, if set
* **is_active_lease:** Whether the lease is considered active after the change

## Payload

- LeaseWebhookEvent
  - `event_id` string, required — Unique identifier for this webhook event. Use for idempotency and deduplication.
  - `event_type` string, required — Webhook event type. One of lease_created or lease_updated.
  - `event_date` string, date-time, required — When EliseAI generated the event.
  - `elise_property_id` string, required — Elise property identifier. This is the property_id used by the Leases API.
  - `external_lease_id` string, required — Lease identifier. For AIP leases this is the Elise lease id returned as id by GET /v2/leases/properties/{property_id}/leases; for PMS-synced leases this is the external/PMS lease id.
  - `external_account_id` string — External account identifier associated with the lease, when one exists.
  - `pk_id` integer — Internal Elise lease primary key.
  - `lease_status` string — Current/new lease status after the change. Possible values: Applicant, Renewing, Future, Current, Notice, Waitlist, Former, UnderEviction, Evicted, Cancelled, Collections, Other.
  - `previous_lease_status` string — Lease status before this change. Null when the lease is newly created.
  - `unit_number` string — Human-readable unit number associated with the lease.
  - `unit_id` integer — Elise unit identifier, when the lease is unit-scoped.
  - `start_date` string, date — Lease start date.
  - `end_date` string, date — Lease end date.
  - `move_out_date` string, date — Move-out date, when set.
  - `notice_date` string, date — Notice-to-vacate date, when the resident has given notice.
  - `is_active_lease` boolean — Whether the lease is considered active after this change.

## Acknowledgement `200`

Successful Response

- unknown

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/eliseai/apis/elise-api.md) · [All operations](https://skmtc.dev/eliseai/apis/elise-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/eliseai/elise-api/revisions/5b5dfc1a03d2/schema)
