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
postWebhooklease_event

Payload

event_idstring required

Unique identifier for this webhook event. Use for idempotency and deduplication.

event_typestring required

Webhook event type. One of lease_created or lease_updated.

event_datestring date-time required

When EliseAI generated the event.

elise_property_idstring required

Elise property identifier. This is the property_id used by the Leases API.

external_lease_idstring 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_idstring

External account identifier associated with the lease, when one exists.

pk_idinteger

Internal Elise lease primary key.

lease_statusstring

Current/new lease status after the change. Possible values: Applicant, Renewing, Future, Current, Notice, Waitlist, Former, UnderEviction, Evicted, Cancelled, Collections, Other.

previous_lease_statusstring

Lease status before this change. Null when the lease is newly created.

unit_numberstring

Human-readable unit number associated with the lease.

unit_idinteger

Elise unit identifier, when the lease is unit-scoped.

start_datestring date

Lease start date.

end_datestring date

Lease end date.

move_out_datestring date

Move-out date, when set.

notice_datestring date

Notice-to-vacate date, when the resident has given notice.

is_active_leaseboolean

Whether the lease is considered active after this change.

Example payload

{
  "event_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "event_type": "lease_updated",
  "event_date": "2026-06-30T12:00:00Z",
  "elise_property_id": "12345",
  "external_lease_id": "550e8400-e29b-41d4-a716-446655440000",
  "external_account_id": "A-1001",
  "pk_id": 1346963936,
  "lease_status": "Current",
  "previous_lease_status": "Future",
  "unit_number": "101",
  "unit_id": 999,
  "start_date": "2026-01-01",
  "end_date": "2026-12-31",
  "move_out_date": "2026-12-15",
  "notice_date": "2026-11-01",
  "is_active_lease": true
}

Response

Successful Response

{"stackTrail":"webhooks:lease_event:post:responses:200:content:application/json:schema","oasType":"schema","type":"unknown"}

Changes

Webhooks have no change history: a webhook is keyed by its event name rather than a path and method, so no recorded change can name it.