Payment Plan Event

Whenever a resident's payment plan is created, updated, or cancelled in EliseAI, we will post the event to your registered webhook. A payment plan is a set of scheduled installments, each of which is a promise to pay; individual installment transitions are delivered through the promise_to_pay_event webhook.

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:

  • payment_plan.created: Posted whenever a new payment plan is created for a lease
  • payment_plan.updated: Posted whenever an existing payment plan's installments or cadence change
  • payment_plan.cancelled: Posted whenever a payment plan is cancelled

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

Payment plan 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 payment_plan.created, payment_plan.updated, or payment_plan.cancelled.
  • event_date: Date and time of the event
  • elise_property_id: Elise identifier for the property
  • external_lease_id: Lease identifier the payment plan belongs to
  • resident_uuid: Resident UUID from the residents API for the resident the plan belongs to
  • payment_plan_id: Identifier of the payment plan, shared by every installment of the plan
  • cadence_type: How the installments are spaced (for example weekly or biweekly). Null for a plan with no cadence.
  • total_amount: Sum of the promised amounts across all installments
  • installments: The installments of the plan, in chronological order. Each installment has the same shape as a promise_to_pay_event payload.
postWebhookpayment_plan_event

Payload

event_idstring required

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

event_typestring required

Webhook event type. One of payment_plan.created, payment_plan.updated, payment_plan.cancelled.

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 the payment plan belongs to. 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.

resident_uuidstring

Resident UUID of the resident the plan belongs to, as returned by the Residents API.

payment_plan_idinteger

Identifier of the payment plan. Shared by every installment of the plan.

cadence_typestring

How the installments are spaced (for example weekly or biweekly). Null for a plan with no cadence.

total_amountnumber required

Sum of the promised amounts across all installments of the plan.

Example payload

{
  "event_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "event_type": "payment_plan.created",
  "event_date": "2026-06-30T12:00:00Z",
  "elise_property_id": "12345",
  "external_lease_id": "550e8400-e29b-41d4-a716-446655440000",
  "resident_uuid": "7f1f0f6c-4c1a-4f4e-9a2e-9f4bbf6f1a11",
  "payment_plan_id": 98765,
  "cadence_type": "weekly",
  "total_amount": 1500.5,
  "installments": [
    {
      "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

{"stackTrail":"webhooks:payment_plan_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.