v6

OpenAPI 3.1.02026-08-0331136162.2 KB
Maintenance

Update a work order by external ID

Update an existing work order using your own work-order identifier (external_work_order_id) instead of the EliseAI work order ID.

The request body must include EliseAI property_id; the pair (property_id, external_work_order_id) identifies the work order. The external ID is the identifier your system supplied when the work order was created through this API. Only the update fields included in the request body are changed; omitted fields are left unchanged. Status transitions are validated the same way as the update-by-ID endpoint; Completed and Closed work orders are terminal and cannot be modified.

Updates through this endpoint are saved in EliseAI only. They are not automatically forwarded to other systems through a PMS push or work_order_event webhook. Treat the API response as the acknowledgement for the write.

patch/v2/maintenance/work_orders/external/{external_work_order_id}

Path parameters

external_work_order_idstring required

Your work-order identifier supplied when the work order was created

Your work-order identifier supplied when the work order was created

Request body

status'Paused' | 'NotStarted' | 'InProgress' | 'OnHold' | 'AwaitingParts' | 'AwaitingVendor' | 'ResidentDeniedAccess' | 'Completed' | 'Closed'

Lifecycle status of a maintenance work order.

These are the public statuses exposed through the Maintenance API. Completed and Closed are terminal states.

priority'Low' | 'Medium' | 'High' | 'Emergency'

Urgency level of a work order.

issue_idstring

Updated Elise maintenance issue identifier

descriptionstring

Updated issue description

due_datestring date-time

Updated due date/time (ISO 8601)

property_idstring required

Elise property identifier. Scopes the external_work_order_id lookup.

Example request

{
  "property_id": "12345"
}

Response

Successful Response

idstring required

Unique identifier for this work order

external_idstring

Your external reference ID for this work order

property_idstring required

Elise property identifier

unit_idstring

Elise unit identifier (numeric ID as string). Use this for phased communities with sub-buildings.

unit_numberstring

Unit number where the work is needed (human-readable label)

resident_uuidstring

Resident UUID from the residents API. Null for common area / inspection work orders.

type'Resident' | 'CommonArea' required

Classification of what the work order pertains to.

issue_idstring

Elise maintenance issue identifier

categorystring required

Display category derived from issue_id (e.g. Plumbing, Electrical, HVAC, Appliance, General)

status'Paused' | 'NotStarted' | 'InProgress' | 'OnHold' | 'AwaitingParts' | 'AwaitingVendor' | 'ResidentDeniedAccess' | 'Completed' | 'Closed'

Lifecycle status of a maintenance work order.

These are the public statuses exposed through the Maintenance API. Completed and Closed are terminal states.

priority'Low' | 'Medium' | 'High' | 'Emergency' required

Urgency level of a work order.

descriptionstring

Free-text description of the issue

permission_to_enter'pending' | 'granted' | 'not_applicable'

Whether the maintenance team has permission to enter the unit.

access_instructionsstring

Resident-provided instructions for accessing the unit

assignee_namesstring[]

Names of assigned technicians

scheduled_timestring date-time

Scheduled date/time for the work (ISO 8601)

due_datestring date-time

Due date/time for the work (ISO 8601)

created_atstring date-time

When the work order was created (ISO 8601)

updated_atstring date-time

When the work order was last modified (ISO 8601)

completed_datestring date-time

When the work was completed (ISO 8601, null if still open)

notesstring

General notes from the maintenance team

closing_notesstring

Resolution summary written when the work order is completed

created_by'AI' | 'Resident' | 'Agent' | 'API' | 'PMS' | 'Project' required

Origin of the work order.

Example response

{
  "id": "12345",
  "external_id": "WO-12345",
  "property_id": "12345",
  "unit_id": "98765",
  "unit_number": "318E",
  "type": "Resident",
  "issue_id": "plumbing/leak",
  "category": "Plumbing",
  "status": "NotStarted",
  "priority": "Medium",
  "description": "Leaking faucet in kitchen",
  "permission_to_enter": "pending",
  "access_instructions": "Dog in unit, please knock loudly",
  "preferred_time_windows": {
    "timezone": "America/New_York",
    "rules": [
      {
        "type": "weekly",
        "days_of_week": [
          "MON",
          "WED"
        ],
        "start_time": "09:00",
        "end_time": "12:00"
      }
    ]
  },
  "created_at": "2026-03-24T12:00:00Z",
  "updated_at": "2026-03-24T12:00:00Z",
  "created_by": "Resident"
}