Promise To Pay Event
Whenever a resident's promise to pay is created, decided, fulfilled, or cancelled in EliseAI, we will post the event to your registered webhook. A promise to pay is a resident's commitment to pay a given amount within a given window. Use these events to keep an external system in sync with collections activity EliseAI drives.
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:
- promise_to_pay.created: Posted whenever a resident makes a new promise to pay
- promise_to_pay.accepted: Posted whenever EliseAI accepts the promise
- promise_to_pay.rejected: Posted whenever EliseAI rejects the promise (for example when it falls past the escalation date, or partial payments are not allowed)
- promise_to_pay.fulfilled: Posted whenever payment fulfilling the promise is received
- promise_to_pay.cancelled: Posted whenever the promise is closed without being fulfilled (cancelled, edited, merged, or denied by an operator)
Each delivery includes an X-Signature header: an HMAC SHA-256 hex digest of the JSON request body, signed with your registered webhook secret.
elise_property_id is the property_id used by the Leases API, and external_lease_id identifies the lease the promise belongs to: for AIP properties where EliseAI is the system of record it matches the lease id returned by GET /v2/leases/properties/{property_id}/leases; for PMS-synced leases it is the external/PMS lease id. resident_uuid matches the resident UUID returned by the Residents API.
Promise to pay 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 promise_to_pay.created, promise_to_pay.accepted, promise_to_pay.rejected, promise_to_pay.fulfilled, or promise_to_pay.cancelled.
- event_date: Date and time of the event
- elise_property_id: Elise identifier for the property
- external_lease_id: Lease identifier the promise belongs to
- external_account_id: External account identifier associated with the lease, when one exists
- resident_uuid: Resident UUID from the residents API for the resident who made the promise
- amount_promised: Amount the resident promised to pay
- to_pay_by_start: Start of the window the resident promised to pay within
- to_pay_by_end: End of the window the resident promised to pay within
- promise_accepted: Whether EliseAI accepted the promise. False while the promise is rejected or awaiting an operator decision.
- date_fulfilled: Date the promise was fulfilled by payment, if it has been fulfilled
- cancellation_reason: Why the promise was closed without being fulfilled. Possible values: merged, edited, new_promise_made_while_active, canceled_through_crm, rejected, handoff, denied_by_operator, resident_payment, dismissed_by_operator, other.
- payment_plan_id: Identifier of the payment plan this promise is an installment of. Null for a standalone promise to pay.
Payload
Example payload
{
"event_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"event_type": "promise_to_pay.created",
"event_date": "2026-06-30T12:00:00Z",
"elise_property_id": "12345",
"external_lease_id": "550e8400-e29b-41d4-a716-446655440000",
"external_account_id": "A-1001",
"resident_uuid": "7f1f0f6c-4c1a-4f4e-9a2e-9f4bbf6f1a11",
"amount_promised": 750.25,
"to_pay_by_start": "2026-07-01T00:00:00Z",
"to_pay_by_end": "2026-07-05T23:59:59Z",
"promise_accepted": true,
"date_fulfilled": "2026-07-03",
"cancellation_reason": "canceled_through_crm",
"payment_plan_id": 98765
}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.