Maintenance
Vendor execution
Abode's maintenance lifecycle is designed so vendor activity does not disappear into text threads or ad hoc bookkeeping. The same work order can hold the quote, schedule, notes, billing handoff, and vendor payment status.
Vendor visibility
Scoped to assigned work only
Portal outputs
Quotes, notes, schedule updates, payment visibility
Payables link
Resolved work can auto-create vendor bills
Vendor portal contract
The vendor portal is intentionally narrow. It is an execution surface, not a secondary management dashboard.
/api/vendor-portal/work-ordersLists assigned work orders with pagination, status filters, and property / unit context.
- Authentication
- Vendor portal session resolved through an active vendor membership
- Constraint 1
- The response includes estimated and actual cost, schedule, notes, and message counts.
- Constraint 2
- Filtering by status and priority keeps the vendor queue manageable.
- Constraint 3
- The management app enforces allowed state transitions on update routes.
Response examples
{
"workOrders": [
{
"id": "wo_01J8V2MBN84M0R9EVP6K8Y4VCH",
"title": "Replace disposal in Unit 3A",
"status": "QUOTED",
"priority": "HIGH",
"category": "Appliance",
"estimatedCost": 425,
"actualCost": null,
"scheduledDate": null,
"vendorNotes": "Need approval for disposal replacement.",
"tenancy": {
"property": { "name": "Cedar Flats", "address": "123 Main St" },
"unit": { "name": "3A" }
}
}
],
"pagination": {
"page": 1,
"limit": 25,
"total": 1,
"totalPages": 1
}
}Billing handoff and trust impact
When maintenance is resolved with cost and vendor data, the accounting system can inherit the work cleanly.
- A resolved work order with actual cost and vendor context can create a bill automatically.
- Paying that bill can post a balanced journal entry and a trust-ledger movement when owner funds are involved.
- This keeps maintenance cost, payable status, and owner financial impact aligned without duplicate data entry.
Operational payoff
The work order becomes the source of truth for the maintenance event, and the accounting layer inherits it. That is materially better than running jobs in one tool and bills in another.