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
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
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.