{ "openapi": "3.0.0", "info": { "version": "v1", "title": "Open API, powered by Buildium", "description": "GetAllGLAccounts) response message now includes the property `IsBankAccount`. This is a boolean property that indicates whether the general ledger account is also a bank account.\r\n* A `Country` property has been added to all Address messages. This property contains an enumeration indicating the country of the address. \r\n", "x-logo": { "url": "Buildium-RP-Color-Logo.png", "backgroundColor": "#FFFFFF", "altText": "Buildium Logo", "href": "https://www.buildium.com" } }, "security": [ { "clientId": [] }, { "clientSecret": [] } ], "paths": { "/v1/associations": { "get": { "tags": [ "Associations" ], "summary": "Retrieve all associations", "description": "Retrieves a list of associations.\r\n

Required permission(s):

Associations > Associations and units - `View`", "operationId": "GetAssociations", "parameters": [ { "name": "location", "in": "query", "description": "Filters results to any association whose city or state *contains* the specified value.", "required": false, "schema": { "type": "string" } }, { "name": "status", "in": "query", "description": "Filters results by the status of the association. If no status is specified both `active` and `inactive` associations will be returned.", "required": false, "schema": { "type": "string", "enum": [ "Active", "InActive" ] } }, { "name": "lastupdatedfrom", "in": "query", "description": "Filters results to any associations that were updated on or after the specified date. The value must be in UTC and formatted as YYYY-MM-DDTHH:MM:SSZ.", "required": false, "schema": { "type": "string", "format": "date-time" } }, { "name": "lastupdatedto", "in": "query", "description": "Filters results to any associations that were updated on or before the specified date. The value must be in UTC and formatted as YYYY-MM-DDTHH:MM:SSZ.", "required": false, "schema": { "type": "string", "format": "date-time" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/AssociationMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } }, "x-path-sort-index": 1 }, "post": { "tags": [ "Associations" ], "summary": "Create an association", "description": "Creates an association.\r\n

Required permission(s):

Associations > Associations and units - `View` `Edit`", "operationId": "CreateAssociation", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssociationPostMessage" } } }, "required": true }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssociationMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "x-path-sort-index": 1 }, "/v1/rentals/units/listings": { "get": { "tags": [ "Listings" ], "summary": "Retrieve all listings", "description": "Retrieves all listings.\r\n

Rentals > Listings - `View`\r\n
Rentals > Rental properties and units - `View`", "operationId": "GetListingsAsync", "parameters": [ { "name": "entitytype", "in": "query", "description": "Specifies the type of entity that `EntityId` refers to.", "required": false, "schema": { "type": "string", "enum": [ "Property", "RentalOwner" ] } }, { "name": "entityid", "in": "query", "description": "Filters results to only listings that are associated with the specified entity id value. The id must be of the type specified in `EntityType` property.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ListingMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } }, "x-path-sort-index": 1 }, "x-path-sort-index": 1 }, "/v1/associations/{associationId}": { "get": { "tags": [ "Associations" ], "summary": "Retrieve an association", "description": "Retrieve a specific association.\r\n

Required permission(s):

Associations > Associations and units - `View`", "operationId": "GetAssociationById", "parameters": [ { "name": "associationId", "in": "path", "description": "The association identifier.", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssociationMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } }, "x-path-sort-index": 2 }, "put": { "tags": [ "Associations" ], "summary": "Update an association", "description": "Updates an association.\r\n

NOTE: Any field not included in the update request will be set to either an empty string or `null` in the database depending on the field definition.
The recommended workflow to ensure no data is inadvertently overwritten is to execute a `GET` request for the resource you're about to update and then use this response to fill any of the fields that are not being updated.\r\n

Required permission(s):

Associations > Associations and units - `View` `Edit`", "operationId": "UpdateAssociation", "parameters": [ { "name": "associationId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssociationPutMessage" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssociationMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "x-path-sort-index": 2 }, "/v1/rentals/units/{unitId}/listing": { "get": { "tags": [ "Listings" ], "summary": "Retrieve a listing", "description": "Retrieves a specific listing.\r\n

Required permission(s):

Rentals > Listings - `View`\r\n
Rentals > Rental properties and units - `View`", "operationId": "GetListingForUnitAsync", "parameters": [ { "name": "unitId", "in": "path", "description": "The rental unit identifier.", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ListingMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } }, "x-path-sort-index": 2 }, "put": { "tags": [ "Listings" ], "summary": "Create a listing", "description": "Listings will automatically pull in the information, features, and media that exists for the property and unit details.\r\n

\r\nThe listing will post immediately to your Buildium public website, and will post to the selected syndicated sites within 24-48 hours.\r\n

\r\nNote, a unit can only ever have one active listing. When this endpoint is called if no listing exists one will be created, otherwise the existing listing will be updated. \r\n

Rentals > Listings - `View` `Edit`\r\n
Rentals > Rental properties and units - `View` `Edit`", "operationId": "UpsertListingsAsync", "parameters": [ { "name": "unitId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ListingPutMessage" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ListingMessage" } } } }, "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ListingMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "delete": { "tags": [ "Listings" ], "summary": "Delete a listing", "description": "Deleting a listing will immediately remove it from your Buildium public website. The listing will also be removed\r\nfrom any syndicated sites within 24-48 hours.

Listings manually created on craigslist using the Buildium\r\nguided tool will not be removed. The listing must be removed using craigslist's tools provided in your craigslist account.\r\n

Required permission(s):

Rentals > Listings - `View` `Edit` `Delete`", "operationId": "DelistUnit", "parameters": [ { "name": "unitId", "in": "path", "description": "The rental property unit identifier.", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "204": { "description": "OK - No Content." }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "x-path-sort-index": 2 }, "/v1/associations/units": { "get": { "tags": [ "Association Units" ], "summary": "Retrieve all units", "description": "Retrieves a list of association units.\r\n

Required permission(s):

Associations > Associations and units - `View`", "operationId": "GetAllAssociationUnits", "parameters": [ { "name": "associationids", "in": "query", "description": "Filters results to only include Associations with matching IDs", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "integer", "format": "int32" } } }, { "name": "lastupdatedfrom", "in": "query", "description": "Filters results to any association units that were updated on or after the specified date. The value must be in UTC and formatted as YYYY-MM-DDTHH:MM:SSZ.", "required": false, "schema": { "type": "string", "format": "date-time" } }, { "name": "lastupdatedto", "in": "query", "description": "Filters results to any association units that were updated on or before the specified date. The value must be in UTC and formatted as YYYY-MM-DDTHH:MM:SSZ.", "required": false, "schema": { "type": "string", "format": "date-time" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/AssociationUnitMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } }, "x-path-sort-index": 3 }, "post": { "tags": [ "Association Units" ], "summary": "Create a unit", "description": "Creates an association unit.\r\n

Required permission(s):

Associations > Associations and units - `View` `Edit`", "operationId": "CreateAssociationUnit", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssociationUnitsPostMessage" } } }, "required": true }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssociationUnitMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "x-path-sort-index": 3 }, "/v1/rentals/units/listingcontacts": { "get": { "tags": [ "Listings" ], "summary": "Retrieve all listing contacts", "description": "Retrieves all listing contacts.\r\n

Required permission(s):

Rentals > Listings - `View`", "operationId": "GetAllListingContacts", "parameters": [ { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ListingContactMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } }, "x-path-sort-index": 3 }, "post": { "tags": [ "Listings" ], "summary": "Create a listing contact", "description": "Create a listing contact. Note, at least one contact field (phone number, email or website) is required for the listing contact.\r\n

Required permission(s):

Rentals > Listings - `View` `Edit`", "operationId": "CreateListingContact", "requestBody": { "$ref": "#/components/requestBodies/ListingContactSaveMessage" }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ListingContactMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "x-path-sort-index": 3 }, "/v1/associations/units/{unitId}": { "get": { "tags": [ "Association Units" ], "summary": "Retrieve a unit", "description": "Retrieve a specific association unit.\r\n

Required permission(s):

Associations > Associations and units - `View`", "operationId": "GetAssociationUnitById", "parameters": [ { "name": "unitId", "in": "path", "description": "The association unit identifier.", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssociationUnitMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } }, "x-path-sort-index": 4 }, "put": { "tags": [ "Association Units" ], "summary": "Update a unit", "description": "Updates an association unit.\r\n

NOTE: Any field not included in the update request will be set to either an empty string or `null` in the database depending on the field definition.
The recommended workflow to ensure no data is inadvertently overwritten is to execute a `GET` request for the resource you're about to update and then use this response to fill any of the fields that are not being updated.\r\n

Required permission(s):

Associations > Associations and units - `View` `Edit`", "operationId": "UpdateAssociationUnit", "parameters": [ { "name": "unitId", "in": "path", "description": "The identifier of the unit to update.", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssociationUnitPutMessage" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssociationUnitMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "x-path-sort-index": 4 }, "/v1/rentals/units/listingcontacts/{listingContactId}": { "get": { "tags": [ "Listings" ], "summary": "Retrieve a listing contact", "description": "Retrieves a specific listing contact.\r\n

Required permission(s):

Rentals > Listings - `View`", "operationId": "GetListingContactById", "parameters": [ { "name": "listingContactId", "in": "path", "description": "The listing contact identifier.", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ListingContactMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } }, "x-path-sort-index": 4 }, "put": { "tags": [ "Listings" ], "summary": "Update a listing contact", "description": "Update a listing contact. Note, at least one contact field (phone number, email or website) is required for the listing contact.\r\n

NOTE: Any field not included in the update request will be set to either an empty string or `null` in the database depending on the field definition.
The recommended workflow to ensure no data is inadvertently overwritten is to execute a `GET` request for the resource you're about to update and then use this response to fill any of the fields that are not being updated.\r\n

Required permission(s):

Rentals > Listings - `View` `Edit`", "operationId": "UpdateListingContact", "parameters": [ { "name": "listingContactId", "in": "path", "description": "The listing contact identifier.", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "$ref": "#/components/requestBodies/ListingContactSaveMessage" }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ListingContactMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "x-path-sort-index": 4 }, "/v1/associations/ownershipaccounts": { "get": { "tags": [ "Association Ownership Accounts" ], "summary": "Retrieve all ownership accounts", "description": "Retrieves a list of ownership accounts.\r\n

Required permission(s):

Associations > Ownership accounts - `View`", "operationId": "GetAllOwnershipAccounts", "parameters": [ { "name": "associationids", "in": "query", "description": "Filters results to any ownership accounts who belong to the specified set of association ids.", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "integer", "format": "int32" } } }, { "name": "unitorowner", "in": "query", "description": "Filters results to any association whose unit or owner *contains* the specified value.", "required": false, "schema": { "type": "string" } }, { "name": "datefrom", "in": "query", "description": "Filters results to any ownership account whose start date is greater than or equal to the specified value.", "required": false, "schema": { "type": "string", "format": "date" } }, { "name": "dateto", "in": "query", "description": "Filters results to any ownership account whose start date is less than or equal to the specified value.", "required": false, "schema": { "type": "string", "format": "date" } }, { "name": "status", "in": "query", "description": "Filters results by the status of the association. If no status is specified, `active`, `past` and `future` associations will be returned.", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "string", "enum": [ "Active", "Past", "Future" ] } } }, { "name": "delinquencystatuses", "in": "query", "description": "Filters results by the delinquency status of the ownership account. If no status is specified, ownership accounts of any delinquency status will be returned.", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "string", "enum": [ "NoDelinquency", "InCollections", "InForeclosure", "Foreclosed" ] } } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/AssociationOwnershipAccountMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } }, "x-path-sort-index": 5 }, "post": { "tags": [ "Association Ownership Accounts" ], "summary": "Create an ownership account", "description": "Creates an ownership account.\r\n

Required permission(s):

Associations > Ownership accounts - `View` `Edit`\r\n
Associations > Owners - `View` `Edit`", "operationId": "CreateAssociationOwnershipAccount", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssociationOwnershipAccountPostMessage" } } }, "required": true }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssociationOwnershipAccountMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "409": { "description": "An association ownership account already exists for this unit.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "x-path-sort-index": 5 }, "/v1/associations/ownershipaccounts/{ownershipAccountId}": { "get": { "tags": [ "Association Ownership Accounts" ], "summary": "Retrieve an ownership account", "description": "Retrieves a specific ownership account.\r\n

Required permission(s):

Associations > Ownership accounts - `View`", "operationId": "GetOwnershipAccountById", "parameters": [ { "name": "ownershipAccountId", "in": "path", "description": "The ownership account identifier.", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssociationOwnershipAccountMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } }, "x-path-sort-index": 6 }, "put": { "tags": [ "Association Ownership Accounts" ], "summary": "Update an ownership account", "description": "Updates an ownership account.\r\n

NOTE: Any field not included in the update request will be set to either an empty string or `null` in the database depending on the field definition.
The recommended workflow to ensure no data is inadvertently overwritten is to execute a `GET` request for the resource you're about to update and then use this response to fill any of the fields that are not being updated.\r\n

Required permission(s):

Associations > Ownership accounts - `View` `Edit`", "operationId": "UpdateAssociationOwnershipAccount", "parameters": [ { "name": "ownershipAccountId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssociationOwnershipAccountPutMessage" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssociationOwnershipAccountMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "x-path-sort-index": 6 }, "/v1/associations/owners": { "get": { "tags": [ "Association Owners" ], "summary": "Retrieve all owners", "description": "Retrieves a list of association owners.\r\n

Required permission(s):

Associations > Association owners and tenants - `View`", "operationId": "GetAllAssociationOwners", "parameters": [ { "name": "name", "in": "query", "description": "Filters results to only records whose name *contains* the specified value.", "required": false, "schema": { "type": "string" } }, { "name": "phone", "in": "query", "description": "Filters results to only records whose phone number *contains* the specified value.", "required": false, "schema": { "type": "string" } }, { "name": "email", "in": "query", "description": "Filters results to only records whose email *contains* the specified value.", "required": false, "schema": { "type": "string" } }, { "name": "associationids", "in": "query", "description": "Filters results to only records that belong to the specified set of association identifiers.", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "integer", "format": "int32" } } }, { "name": "statuses", "in": "query", "description": "Filters results to only records whose status is equal to the specified value.", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "string", "enum": [ "Active", "Past", "Future" ] } } }, { "name": "createddatetimeto", "in": "query", "description": "Filters results to only records that were created before this date. Must be formatted as `YYYY-MM-DD`.", "required": false, "schema": { "type": "string", "format": "date-time" } }, { "name": "createddatetimefrom", "in": "query", "description": "Filters results to only records that were created after this date. Must be formatted as `YYYY-MM-DD`.", "required": false, "schema": { "type": "string", "format": "date-time" } }, { "name": "lastupdatedfrom", "in": "query", "description": "Filters results to any association owners that were updated on or after the specified date. The value must be in UTC and formatted as YYYY-MM-DDTHH:MM:SSZ.", "required": false, "schema": { "type": "string", "format": "date-time" } }, { "name": "lastupdatedto", "in": "query", "description": "Filters results to any association owners that were updated on or before the specified date. The value must be in UTC and formatted as YYYY-MM-DDTHH:MM:SSZ.", "required": false, "schema": { "type": "string", "format": "date-time" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/AssociationOwnerMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } }, "x-path-sort-index": 7 }, "post": { "tags": [ "Association Owners" ], "summary": "Create an owner", "description": "Creates an association owner.\r\n

Required permission(s):

Associations > Association owners and tenants - `View` `Edit`\r\n
Associations > Ownership accounts - `View` `Edit`", "operationId": "CreateAssociationOwner", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssociationOwnerToExistingOwnershipAccountPostMessage" } } }, "required": true }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssociationOwnerMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "x-path-sort-index": 7 }, "/v1/associations/owners/{ownerId}": { "get": { "tags": [ "Association Owners" ], "summary": "Retrieve an owner", "description": "Retrieve a specific association owner.\r\n

Required permission(s):

Associations > Association owners and tenants - `View`", "operationId": "GetAssociationOwnerById", "parameters": [ { "name": "ownerId", "in": "path", "description": "The association owner identifier.", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssociationOwnerMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } }, "x-path-sort-index": 8 }, "put": { "tags": [ "Association Owners" ], "summary": "Update an owner", "description": "Updates an existing association owner.\r\n

NOTE: Any field not included in the update request will be set to either an empty string or `null` in the database depending on the field definition.
The recommended workflow to ensure no data is inadvertently overwritten is to execute a `GET` request for the resource you're about to update and then use this response to fill any of the fields that are not being updated.\r\n

Required permission(s):

Associations > Association owners and tenants - `View` `Edit`", "operationId": "UpdateAssociationOwner", "parameters": [ { "name": "ownerId", "in": "path", "description": "The identifier of the association owner to update.", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssociationOwnerPutMessage" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssociationOwnerMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "x-path-sort-index": 8 }, "/v1/associations/tenants": { "get": { "tags": [ "Association Tenants" ], "summary": "Retrieve all tenants", "description": "Retrieves a list of association tenants.\r\n\r\n

Required permission(s):

Associations > Association owners and tenants - `View`", "operationId": "GetAssociationTenants", "parameters": [ { "name": "name", "in": "query", "description": "Filters results to only records whose name *contains* the specified value.", "required": false, "schema": { "type": "string" } }, { "name": "phone", "in": "query", "description": "Filters results to only records whose phone number *contains* the specified value.", "required": false, "schema": { "type": "string" } }, { "name": "email", "in": "query", "description": "Filters results to only records whose email *contains* the specified value.", "required": false, "schema": { "type": "string" } }, { "name": "associationids", "in": "query", "description": "Filters results to only records that belong to the specified set of association identifiers.", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "integer", "format": "int32" } } }, { "name": "statuses", "in": "query", "description": "Filters results to only records whose status is equal to the specified value.", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "string", "enum": [ "Active", "Past", "Future" ] } } }, { "name": "createddatetimeto", "in": "query", "description": "Filters results to only records that were created before this date. Must be formatted as `YYYY-MM-DD`.", "required": false, "schema": { "type": "string", "format": "date-time" } }, { "name": "createddatetimefrom", "in": "query", "description": "Filters results to only records that were created after this date. Must be formatted as `YYYY-MM-DD`.", "required": false, "schema": { "type": "string", "format": "date-time" } }, { "name": "lastupdatedfrom", "in": "query", "description": "Filters results to any association owners that were updated on or after the specified date. The value must be in UTC and formatted as YYYY-MM-DDTHH:MM:SSZ.", "required": false, "schema": { "type": "string", "format": "date-time" } }, { "name": "lastupdatedto", "in": "query", "description": "Filters results to any association owners that were updated on or before the specified date. The value must be in UTC and formatted as YYYY-MM-DDTHH:MM:SSZ.", "required": false, "schema": { "type": "string", "format": "date-time" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/AssociationTenantMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } }, "x-path-sort-index": 9 }, "post": { "tags": [ "Association Tenants" ], "summary": "Create a tenant", "description": "Creates an association tenant.\r\n\r\n

Required permission(s):

Associations > Association owners and tenants - `View` `Edit`", "operationId": "CreateAssociationTenant", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssociationTenantPostMessage" } } }, "required": true }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssociationTenantMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "x-path-sort-index": 9 }, "/v1/associations/tenants/{tenantId}": { "get": { "tags": [ "Association Tenants" ], "summary": "Retrieve a tenant", "description": "Retrieves a specific association tenant.\r\n\r\n

Required permission(s):

Associations > Association owners and tenants - `View`", "operationId": "GetAssociationTenantById", "parameters": [ { "name": "tenantId", "in": "path", "description": "The tenant identifier.", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssociationTenantMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } }, "x-path-sort-index": 10 }, "put": { "tags": [ "Association Tenants" ], "summary": "Update a tenant", "description": "Updates an association tenant.\r\n

NOTE: Any field not included in the update request will be set to either an empty string or `null` in the database depending on the field definition.
The recommended workflow to ensure no data is inadvertently overwritten is to execute a `GET` request for the resource you're about to update and then use this response to fill any of the fields that are not being updated.\r\n

Required permission(s):

Associations > Association owners and tenants - `View` `Edit`", "operationId": "UpdateAssociationTenant", "parameters": [ { "name": "tenantId", "in": "path", "description": "The identifier of the association tenant to update.", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssociationTenantPutMessage" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssociationTenantMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "x-path-sort-index": 10 }, "/v1/administration/account": { "get": { "tags": [ "Administration" ], "summary": "Retrieve account info", "description": "Retrieves information related to the Buildium account. \r\n

Required permission(s):

Administration > Account Information - `View`", "operationId": "GetAccountInfo", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AccountInfoMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/administration/accountinglockperiod": { "get": { "tags": [ "Administration" ], "summary": "Retrieve accounting lock periods", "description": "Retrieves accounting lock periods.\r\n

Required permission(s):

Administration > Application Settings - `View`", "operationId": "GetAccountingLockPeriodSettings", "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AccountingLockPeriodMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/applicants": { "get": { "tags": [ "Applicants" ], "summary": "Retrieve all applicants", "description": "Retrieves all applicants.\r\n

Required permission(s):

Rentals > Applicants - `View`", "operationId": "GetApplicants", "parameters": [ { "name": "entityid", "in": "query", "description": "Filters results to any applicant associated with the specified entity identifier. This filter is used in conjunction with the `EntityType` field which must be set to the type of entity this identifier references.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "entitytype", "in": "query", "description": "Specifies the type of entity that `EntityId` refers to. This field is required if `EntityId` is specified.", "required": false, "schema": { "type": "string", "enum": [ "Rental", "RentalOwner" ] } }, { "name": "applicationstatuses", "in": "query", "description": "Filters results by the applicant application status. If no status is specified, applicants with an application in any status will be returned.", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "string", "enum": [ "Undecided", "Approved", "Rejected", "AddedToLease", "Cancelled", "Deferred", "New" ] } } }, { "name": "unitids", "in": "query", "description": "Filters results to applicants associated to any of the specified rental property unit identifiers.", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "integer", "format": "int32" } } }, { "name": "name", "in": "query", "description": "Filters results to applicants whose name *contains* the specified value.", "required": false, "schema": { "type": "string" } }, { "name": "email", "in": "query", "description": "Filters results to applicants whose email *contains* the specified value", "required": false, "schema": { "type": "string" } }, { "name": "applicationsubmittedstartdate", "in": "query", "description": "Filters results to any applicant who submitted an application on or after the date specified.", "required": false, "schema": { "type": "string", "format": "date-time" } }, { "name": "applicationsubmittedenddate", "in": "query", "description": "Filters results to any applicant who submitted an application on or prior to the date specified.", "required": false, "schema": { "type": "string", "format": "date-time" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ApplicantMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "post": { "tags": [ "Applicants" ], "summary": "Create an applicant", "description": "Creates an applicant.\r\n

Required permission(s):

Rentals > Applicants - `View` `Edit`", "operationId": "CreateApplicant", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApplicantPostMessage" } } }, "required": true }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApplicantMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/applicants/{applicantId}": { "get": { "tags": [ "Applicants" ], "summary": "Retrieve an applicant", "description": "Retrieves an applicant.\r\n

Required permission(s):

Rentals > Applicants - `View`", "operationId": "GetApplicantById", "parameters": [ { "name": "applicantId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApplicantMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "put": { "tags": [ "Applicants" ], "summary": "Update an applicant", "description": "Updates an applicant.\r\n

NOTE: Any field not included in the update request will be set to either an empty string or `null` in the database depending on the field definition.
The recommended workflow to ensure no data is inadvertently overwritten is to execute a `GET` request for the resource you're about to update and then use this response to fill any of the fields that are not being updated.\r\n

Required permission(s):

Rentals > Applicants - `View` `Edit`", "operationId": "UpdateApplicant", "parameters": [ { "name": "applicantId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApplicantPutMessage" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApplicantMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/applicants/{applicantId}/applications": { "get": { "tags": [ "Applicants" ], "summary": "Retrieve all applications", "description": "Retrieves all the applications for a given applicant.\r\n

Required permission(s):

Rentals > Applicants - `View`", "operationId": "GetApplicationsForApplicant", "parameters": [ { "name": "applicantId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ApplicationMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/applicants/{applicantId}/applications/{applicationId}": { "get": { "tags": [ "Applicants" ], "summary": "Retrieve an application", "description": "Retrieves an application.\r\n

Required permission(s):

Rentals > Applicants - `View`", "operationId": "GetApplicationForApplicantById", "parameters": [ { "name": "applicantId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "applicationId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApplicationMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "put": { "tags": [ "Applicants" ], "summary": "Update an application", "description": "Updates a rental application.\r\n

NOTE: Any field not included in the update request will be set to either an empty string or `null` in the database depending on the field definition.
The recommended workflow to ensure no data is inadvertently overwritten is to execute a `GET` request for the resource you're about to update and then use this response to fill any of the fields that are not being updated.\r\n

Required permission(s):

Rentals > Applicants - `View` `Edit`", "operationId": "UpdateApplication", "parameters": [ { "name": "applicantId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "applicationId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApplicationPutMessage" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApplicationMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/applicants/{applicantId}/notes": { "get": { "tags": [ "Applicants" ], "summary": "Retrieve all applicant notes", "description": "Retrieves all applicant notes.\r\n

Required permission(s):

Rentals > Applicants - `View`", "operationId": "GetAllApplicantNotes", "parameters": [ { "name": "applicantId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "updateddatetimefrom", "in": "query", "description": "Filters results to any note whose updated date and time are greater than or equal to the specified value. The value must be formatted as YYYY-MM-DD HH:MM:SS.", "required": false, "schema": { "type": "string", "format": "date-time" } }, { "name": "updateddatetimeto", "in": "query", "description": "Filters results to any note whose updated date and time are less than or equal to the specified value. The value must be formatted as YYYY-MM-DD HH:MM:SS.", "required": false, "schema": { "type": "string", "format": "date-time" } }, { "name": "lastupdatedbyuserid", "in": "query", "description": "Filters results to only notes that were last updated by the specified user identifier.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/NoteMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "post": { "tags": [ "Applicants" ], "summary": "Create an applicant note", "description": "Creates an applicant note.\r\n

Required permission(s):

Rentals > Applicants - `View` `Edit`", "operationId": "CreateApplicantNote", "parameters": [ { "name": "applicantId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "$ref": "#/components/requestBodies/NotePostMessage" }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NoteMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/applicants/{applicantId}/notes/{noteId}": { "get": { "tags": [ "Applicants" ], "summary": "Retrieve an applicant note", "description": "Retrieves an applicant note.\r\n

Required permission(s):

Rentals > Applicants - `View`", "operationId": "GetApplicantNoteById", "parameters": [ { "name": "applicantId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "noteId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NoteMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/applicants/groups": { "get": { "tags": [ "Applicants" ], "summary": "Retrieve all applicant groups", "description": "Retrieves all applicant groups.\r\n

Required permission(s):

Rentals > Applicants - `View`", "operationId": "GetApplicantGroups", "parameters": [ { "name": "entitytype", "in": "query", "description": "Filters results to any applicant groups associated with the specified entity identifier. This filter is used in conjunction with the `EntityType` field which must be set to the type of entity this identifier references.", "required": false, "schema": { "type": "string", "enum": [ "Rental", "RentalOwner" ] } }, { "name": "entityid", "in": "query", "description": "Specifies the type of entity that `EntityId` refers to. This field is required if `EntityId` is specified.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "applicationgroupstatuses", "in": "query", "description": "Filters results by the applicant group status. If no status is specified, applicant groups in any status will be returned.", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "string", "enum": [ "Undecided", "Approved", "Rejected", "AddedToLease", "Cancelled", "Deferred", "New" ] } } }, { "name": "unitids", "in": "query", "description": "Filters results to applicant groups associated to any of the specified rental property unit identifiers.", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "integer", "format": "int32" } } }, { "name": "name", "in": "query", "description": "Filters results to applicant groups that includes applicants whose name *contains* the specified value.", "required": false, "schema": { "type": "string" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ApplicantGroupMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "post": { "tags": [ "Applicants" ], "summary": "Create an applicant group", "description": "Creates an applicant group.\r\n

Required permission(s):

Rentals > Applicants - `View` `Edit`", "operationId": "CreateApplicantGroup", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApplicantGroupPostMessage" } } }, "required": true }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApplicantGroupMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/applicants/groups/{applicantGroupId}": { "get": { "tags": [ "Applicants" ], "summary": "Retrieve an applicant group", "description": "Retrieves an applicant group.\r\n

Required permission(s):

Rentals > Applicants - `View`", "operationId": "GetApplicantGroupById", "parameters": [ { "name": "applicantGroupId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApplicantGroupMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "put": { "tags": [ "Applicants" ], "summary": "Update an applicant group", "description": "Updates an applicant group.\r\n

NOTE: Any field not included in the update request will be set to either an empty string or `null` in the database depending on the field definition.
The recommended workflow to ensure no data is inadvertently overwritten is to execute a `GET` request for the resource you're about to update and then use this response to fill any of the fields that are not being updated.\r\n

Required permission(s):

Rentals > Applicants - `View` `Edit`", "operationId": "UpdateApplicantGroup", "parameters": [ { "name": "applicantGroupId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApplicantGroupPutMessage" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApplicantGroupMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/applicants/groups/{applicantGroupId}/notes": { "get": { "tags": [ "Applicants" ], "summary": "Retrieve all applicant group notes", "description": "Retrieves all applicant group notes.\r\n

Required permission(s):

Rentals > Applicants - `View`", "operationId": "GetApplicantGroupNotes", "parameters": [ { "name": "applicantGroupId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "updateddatetimefrom", "in": "query", "description": "Filters results to any note whose updated date and time are greater than or equal to the specified value. The value must be formatted as YYYY-MM-DD HH:MM:SS.", "required": false, "schema": { "type": "string", "format": "date-time" } }, { "name": "updateddatetimeto", "in": "query", "description": "Filters results to any note whose updated date and time are less than or equal to the specified value. The value must be formatted as YYYY-MM-DD HH:MM:SS.", "required": false, "schema": { "type": "string", "format": "date-time" } }, { "name": "lastupdatedbyuserid", "in": "query", "description": "Filters results to only notes that were last updated by the specified user identifier.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/NoteMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "post": { "tags": [ "Applicants" ], "summary": "Create an applicant group note", "description": "Creates an applicant group note.\r\n

Required permission(s):

Rentals > Applicants - `View` `Edit`", "operationId": "CreateApplicationGroupNote", "parameters": [ { "name": "applicantGroupId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "$ref": "#/components/requestBodies/NotePostMessage" }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NoteMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/applicants/groups/{applicantGroupId}/notes/{noteId}": { "get": { "tags": [ "Applicants" ], "summary": "Retrieve an applicant group note", "description": "Retrieves an applicant group note.\r\n

Required permission(s):

Rentals > Applicants - `View`", "operationId": "GetApplicantGroupNoteByNoteId", "parameters": [ { "name": "applicantGroupId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "noteId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NoteMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "put": { "tags": [ "Applicants" ], "summary": "Update an applicant group note", "description": "Updates an applicant group note.\r\n

NOTE: Any field not included in the update request will be set to either an empty string or `null` in the database depending on the field definition.
The recommended workflow to ensure no data is inadvertently overwritten is to execute a `GET` request for the resource you're about to update and then use this response to fill any of the fields that are not being updated.\r\n

Required permission(s):

Rentals > Applicants - `View` `Edit`", "operationId": "UpdateApplicationGroupNote", "parameters": [ { "name": "applicantGroupId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "noteId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "$ref": "#/components/requestBodies/NotePutMessage" }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NoteMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/associations/{associationId}/boardmembers": { "get": { "tags": [ "Associations" ], "summary": "Retrieve all board members", "description": "Retrieves all association board members.\r\n

Required permission(s):

Associations > Association owners and tenants - `View`", "operationId": "GetAllAssociationBoardMembers", "parameters": [ { "name": "associationId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "statuses", "in": "query", "description": "Filters results to only records whose status is equal to the specified values.", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "string", "enum": [ "Current", "Former", "Future" ] } } }, { "name": "boardpositiontypes", "in": "query", "description": "Filters results to only records whose board position type is equal to the specified values.", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "string", "enum": [ "President", "VicePresident", "Treasurer", "Secretary", "BoardMember" ] } } }, { "name": "createddatetimeto", "in": "query", "description": "Filters results to only records that were created before this date. Must be formatted as `YYYY-MM-DD`.", "required": false, "schema": { "type": "string", "format": "date-time" } }, { "name": "createddatetimefrom", "in": "query", "description": "Filters results to only records that were created after this date. Must be formatted as `YYYY-MM-DD`.", "required": false, "schema": { "type": "string", "format": "date-time" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/AssociationBoardMemberMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "post": { "tags": [ "Associations" ], "summary": "Create a board member", "description": "Creates a board member for a given association.\r\n

Required permission(s):

Associations > Association owners and tenants - `View` `Edit`", "operationId": "CreateBoardMember", "parameters": [ { "name": "associationId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssociationBoardMemberPostMessage" } } }, "required": true }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssociationBoardMemberMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/associations/{associationId}/boardmembers/{boardMemberId}": { "get": { "tags": [ "Associations" ], "summary": "Retrieve a board member", "description": "Retrieves an association board member.\r\n

Required permission(s):

Associations > Association owners and tenants - `View`", "operationId": "GetAssociationBoardMemberById", "parameters": [ { "name": "associationId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "boardMemberId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssociationBoardMemberMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "put": { "tags": [ "Associations" ], "summary": "Update a board member", "description": "Updates a board member for a given association.\r\n

NOTE: Any field not included in the update request will be set to either an empty string or `null` in the database depending on the field definition.
The recommended workflow to ensure no data is inadvertently overwritten is to execute a `GET` request for the resource you're about to update and then use this response to fill any of the fields that are not being updated.\r\n

Required permission(s):

Associations > Association owners and tenants - `View` `Edit`", "operationId": "UpdateBoardMember", "parameters": [ { "name": "associationId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "boardMemberId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssociationBoardMemberPutMessage" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssociationBoardMemberMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "delete": { "tags": [ "Associations" ], "summary": "Delete a board member", "description": "Deletes a board member. Note, this is a hard delete from the database and data can not be restored. \r\n

Required permission(s):

Associations > Association owners and tenants - `View` `Edit` `Delete`", "operationId": "DeleteBoardMember", "parameters": [ { "name": "associationId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "boardMemberId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "204": { "description": "OK - No Content." }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/associations/{associationId}/notes": { "get": { "tags": [ "Associations" ], "summary": "Retrieve all notes", "description": "Retrieves all notes.\r\n

Required permission(s):

Associations > Associations and units - `View`", "operationId": "GetAssociationNotes", "parameters": [ { "name": "associationId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "updateddatetimefrom", "in": "query", "description": "Filters results to any note whose updated date and time are greater than or equal to the specified value. The value must be formatted as YYYY-MM-DD HH:MM:SS.", "required": false, "schema": { "type": "string", "format": "date-time" } }, { "name": "updateddatetimeto", "in": "query", "description": "Filters results to any note whose updated date and time are less than or equal to the specified value. The value must be formatted as YYYY-MM-DD HH:MM:SS.", "required": false, "schema": { "type": "string", "format": "date-time" } }, { "name": "lastupdatedbyuserid", "in": "query", "description": "Filters results to only notes that were last updated by the specified user identifier.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/NoteMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "post": { "tags": [ "Associations" ], "summary": "Create a note", "description": "Creates a note.\r\n

Required permission(s):

Associations > Associations and units - `View` `Edit`", "operationId": "CreateAssociationNote", "parameters": [ { "name": "associationId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "$ref": "#/components/requestBodies/NotePostMessage" }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NoteMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/associations/{associationId}/notes/{noteId}": { "get": { "tags": [ "Associations" ], "summary": "Retrieve a note", "description": "Retrieves a note.\r\n

Required permission(s):

Associations > Associations and units - `View`", "operationId": "GetAssociationNoteByNoteId", "parameters": [ { "name": "associationId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "noteId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NoteMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "put": { "tags": [ "Associations" ], "summary": "Update a note", "description": "Updates a note.\r\n

NOTE: Any field not included in the update request will be set to either an empty string or `null` in the database depending on the field definition.
The recommended workflow to ensure no data is inadvertently overwritten is to execute a `GET` request for the resource you're about to update and then use this response to fill any of the fields that are not being updated.\r\n

Required permission(s):

Associations > Associations and units - `View` `Edit`", "operationId": "UpdateAssociationNote", "parameters": [ { "name": "associationId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "noteId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "$ref": "#/components/requestBodies/NotePutMessage" }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NoteMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/associations/{associationId}/vendors": { "get": { "tags": [ "Associations" ], "summary": "Retrieve all preferred vendors", "description": "Retrieves all preferred vendors.\r\n

Required permission(s):

Associations > Associations and units - `View`\r\n
Maintenance > Vendors - `View`", "operationId": "GetAssociationPreferredVendors", "parameters": [ { "name": "associationId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/AssociationPreferredVendorMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "put": { "tags": [ "Associations" ], "summary": "Update preferred vendors", "description": "Updates preferred vendors.\r\n

Required permission(s):

Associations > Associations and units - `View` `Edit`\r\n
Maintenance > Vendors - `View` `Edit`", "operationId": "UpdateAssociationPreferredVendors", "parameters": [ { "name": "associationId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssociationPreferredVendorPutMessage" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/AssociationPreferredVendorMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/associations/appliances": { "get": { "tags": [ "Association Appliances" ], "summary": "Retrieve all appliances", "description": "Retrieves all association appliances.\r\n

Required permission(s):

Associations > Association properties and units - `View`", "operationId": "GetAssociationAppliances", "parameters": [ { "name": "associationids", "in": "query", "description": "Filters results to appliances associated to any of the specified association identifiers.", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "integer", "format": "int32" } } }, { "name": "unitids", "in": "query", "description": "Filters results to appliances associated to any of the specified association unit identifiers.", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "integer", "format": "int32" } } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/AssociationApplianceMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "post": { "tags": [ "Association Appliances" ], "summary": "Create an appliance", "description": "Creates an association appliance.\r\n

Required permission(s):

Associations > Association properties and units - `View` `Edit`", "operationId": "CreateAssociationAppliance", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssociationAppliancePostMessage" } } }, "required": true }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssociationApplianceMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/associations/appliances/{applianceId}": { "get": { "tags": [ "Association Appliances" ], "summary": "Retrieve an appliance", "description": "Retrieves an association appliance by id.\r\n

Required permission(s):

Associations > Association properties and units - `View`", "operationId": "GetAssociationApplianceById", "parameters": [ { "name": "applianceId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssociationApplianceMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "put": { "tags": [ "Association Appliances" ], "summary": "Update an appliance", "description": "Updates an association appliance.\r\n

NOTE: Any field not included in the update request will be set to either an empty string or `null` in the database depending on the field definition.
The recommended workflow to ensure no data is inadvertently overwritten is to execute a `GET` request for the resource you're about to update and then use this response to fill any of the fields that are not being updated.\r\n

Required permission(s):

Associations > Association properties and units - `View` `Edit`", "operationId": "UpdateAssociationAppliance", "parameters": [ { "name": "applianceId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssociationAppliancePutMessage" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssociationApplianceMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "delete": { "tags": [ "Association Appliances" ], "summary": "Delete an appliance", "description": "Deletes an associations appliance.\r\n

Required permission(s):

Associations > Association properties and units - `View` `Edit`", "operationId": "DeleteAssociationAppliances", "parameters": [ { "name": "applianceId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "204": { "description": "OK - No Content." }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/associations/appliances/{applianceId}/servicehistory": { "get": { "tags": [ "Association Appliances" ], "summary": "Retrieve all service history", "description": "Retrieves all of the service history records for an appliance.\r\n

Required permission(s):

Associations > Association properties and units - `View`", "operationId": "GetAllAssociationApplianceServiceHistory", "parameters": [ { "name": "applianceId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/AssociationApplianceServiceHistoryMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "post": { "tags": [ "Association Appliances" ], "summary": "Create a service history", "description": "Creates a service history for an appliance.\r\n

Required permission(s):

Associations > Association properties and units - `View` `Edit`", "operationId": "CreateAssociationApplianceServiceHistory", "parameters": [ { "name": "applianceId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssociationApplianceServiceHistoryPostMessage" } } }, "required": true }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssociationApplianceServiceHistoryMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/associations/appliances/{applianceId}/servicehistory/{serviceHistoryId}": { "get": { "tags": [ "Association Appliances" ], "summary": "Retrieve a service history", "description": "Retrieves a specific service history record for a given appliance.\r\n

Required permission(s):

Associations > Association properties and units - `View`", "operationId": "GetAssociationApplianceServiceHistoryById", "parameters": [ { "name": "applianceId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "serviceHistoryId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssociationApplianceServiceHistoryMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/associations/owners/{ownerId}/notes": { "get": { "tags": [ "Association Owners" ], "summary": "Retrieve all notes", "description": "Retrieves all association owner notes.\r\n

Required permission(s):

Associations > Association owners and tenants - `View`", "operationId": "GetAssociationOwnerNotes", "parameters": [ { "name": "ownerId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "updateddatetimefrom", "in": "query", "description": "Filters results to any note whose updated date and time are greater than or equal to the specified value. The value must be formatted as YYYY-MM-DD HH:MM:SS.", "required": false, "schema": { "type": "string", "format": "date-time" } }, { "name": "updateddatetimeto", "in": "query", "description": "Filters results to any note whose updated date and time are less than or equal to the specified value. The value must be formatted as YYYY-MM-DD HH:MM:SS.", "required": false, "schema": { "type": "string", "format": "date-time" } }, { "name": "lastupdatedbyuserid", "in": "query", "description": "Filters results to only notes that were last updated by the specified user identifier.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/NoteMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "post": { "tags": [ "Association Owners" ], "summary": "Create a note", "description": "Creates an association owner note.\r\n

Required permission(s):

Associations > Association owners and tenants - `View` `Edit`", "operationId": "CreateAssociationOwnerNote", "parameters": [ { "name": "ownerId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "$ref": "#/components/requestBodies/NotePostMessage" }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NoteMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/associations/owners/{ownerId}/notes/{noteId}": { "get": { "tags": [ "Association Owners" ], "summary": "Retrieve a note", "description": "Retrieves an association owner note.\r\n

Required permission(s):

Associations > Association owners and tenants - `View`", "operationId": "GetAssociationOwnerNoteByNoteId", "parameters": [ { "name": "ownerId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "noteId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NoteMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "put": { "tags": [ "Association Owners" ], "summary": "Update a note", "description": "Updates an association owner note.\r\n

NOTE: Any field not included in the update request will be set to either an empty string or `null` in the database depending on the field definition.
The recommended workflow to ensure no data is inadvertently overwritten is to execute a `GET` request for the resource you're about to update and then use this response to fill any of the fields that are not being updated.\r\n

Required permission(s):

Associations > Association owners and tenants - `View` `Edit`", "operationId": "UpdateAssociationOwnerNote", "parameters": [ { "name": "ownerId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "noteId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "$ref": "#/components/requestBodies/NotePutMessage" }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NoteMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/associations/owners/{ownerId}/units": { "get": { "tags": [ "Association Owners" ], "summary": "Retrieve all occupancy statuses", "description": "Retrieves the occupancy status for all of the units owned by the association owner. \r\n

Required permission(s):

Associations > Association owners and tenants - `View`
Associations > Ownership Accounts - `View`", "operationId": "GetUnitOccupancyStatusesForAssociationOwner", "parameters": [ { "name": "ownerId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/AssociationOwnerUnitOccupancyStatusMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "503": { "description": "This service is currently unavailable.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/associations/owners/{ownerId}/units/{unitId}": { "get": { "tags": [ "Association Owners" ], "summary": "Retrieve an occupancy status", "description": "Retrieves the owner occupancy status for an association unit.\r\n

Required permission(s):

Associations > Association owners and tenants - `View`
Associations > Ownership Accounts - `View`", "operationId": "GetUnitOccupancyStatusesByIdForAssociationOwner", "parameters": [ { "name": "ownerId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "unitId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssociationOwnerUnitOccupancyStatusMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "503": { "description": "This service is currently unavailable.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "put": { "tags": [ "Association Owners" ], "summary": "Update occupancy status", "description": "Updates whether a unit is occupied by the association owner.\r\n

NOTE: Any field not included in the update request will be set to either an empty string or `null` in the database depending on the field definition.
The recommended workflow to ensure no data is inadvertently overwritten is to execute a `GET` request for the resource you're about to update and then use this response to fill any of the fields that are not being updated.\r\n

Required permission(s):

Associations > Association owners and tenants - `View` `Edit`
Associations > Ownership Accounts - `View`", "operationId": "UpdateAssociationOwnerOccupancyStatus", "parameters": [ { "name": "ownerId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "unitId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssociationOwnerUnitOccupancyPutMessage" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssociationOwnerUnitOccupancyStatusMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "503": { "description": "This service is currently unavailable.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/associations/ownershipaccounts/{ownershipAccountId}/applieddeposits": { "post": { "tags": [ "Association Ownership Accounts" ], "summary": "Create a deposit withholding", "description": "Withholds an association owner deposit by reallocating the funds from a liability account to an income account to cover an expense(s).\r\n

Required permission(s):

Associations > Ownership account transactions - `View` `Edit`\r\n Accounting > General Ledger Accounts - `View`", "operationId": "CreateOwnershipAccountDepositWithholding", "parameters": [ { "name": "ownershipAccountId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OwnershipAccountDepositWithholdingPostMessage" } } }, "required": true }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OwnershipAccountTransactionMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/associations/ownershipaccounts/{ownershipAccountId}/charges": { "post": { "tags": [ "Association Ownership Accounts" ], "summary": "Create a ledger charge", "description": "Creates a ledger charge.\r\n

Required permission(s):

Associations > Ownership account transactions - `View` `Edit`\r\n
", "operationId": "CreateOwnershipAccountLedgerCharge", "parameters": [ { "name": "ownershipAccountId", "in": "path", "description": "The ownership account identifier.", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OwnershipAccountLedgerChargePostMessage" } } }, "required": true }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OwnershipAccountTransactionMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/associations/ownershipaccounts/{ownershipAccountId}/charges/{chargeId}": { "put": { "tags": [ "Association Ownership Accounts" ], "summary": "Update a charge", "description": "Updates a charge.\r\n

Required permission(s):

Associations > Ownership account transactions - `View` `Edit`\r\n
", "operationId": "UpdateOwnershipAccountCharge", "parameters": [ { "name": "ownershipAccountId", "in": "path", "description": "The ownership account identifier.", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "chargeId", "in": "path", "description": "The charge identifier.", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OwnershipAccountLedgerChargePutMessage" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OwnershipAccountTransactionMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/associations/ownershipaccounts/{ownershipAccountId}/credits": { "post": { "tags": [ "Association Ownership Accounts" ], "summary": "Create a ledger credit", "description": "Creates a ledger credit.\r\n

Required permission(s):

Associations > Ownership account transactions - `View` `Edit`", "operationId": "CreateOwnershipAccountCredit", "parameters": [ { "name": "ownershipAccountId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OwnershipAccountCreditPostMessage" } } }, "required": true }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OwnershipAccountTransactionMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/associations/ownershipaccounts/{ownershipAccountId}/notes": { "get": { "tags": [ "Association Ownership Accounts" ], "summary": "Retrieve all notes", "description": "Retrieves notes for an ownership account.\r\n

Required permission(s):

Associations > OwnershipAccounts - `View`", "operationId": "GetAssociationOwnershipAccountNotes", "parameters": [ { "name": "ownershipAccountId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "updateddatetimefrom", "in": "query", "description": "Filters results to any note whose updated date and time are greater than or equal to the specified value. The value must be formatted as YYYY-MM-DD HH:MM:SS.", "required": false, "schema": { "type": "string", "format": "date-time" } }, { "name": "updateddatetimeto", "in": "query", "description": "Filters results to any note whose updated date and time are less than or equal to the specified value. The value must be formatted as YYYY-MM-DD HH:MM:SS.", "required": false, "schema": { "type": "string", "format": "date-time" } }, { "name": "lastupdatedbyuserid", "in": "query", "description": "Filters results to only notes that were last updated by the specified user identifier.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/NoteMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "post": { "tags": [ "Association Ownership Accounts" ], "summary": "Create a note", "description": "Creates a new ownership account note.\r\n

Required permission(s):

Associations > Ownership accounts - `View` `Edit`", "operationId": "CreateAssociationOwnershipAccountNote", "parameters": [ { "name": "ownershipAccountId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "$ref": "#/components/requestBodies/NotePostMessage" }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NoteMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/associations/ownershipaccounts/{ownershipAccountId}/notes/{noteId}": { "get": { "tags": [ "Association Ownership Accounts" ], "summary": "Retrieve a note", "description": "Retrieves an ownership account note.\r\n

Required permission(s):

Associations > OwnershipAccounts - `View`", "operationId": "GetAssociationOwnershipAccountNoteByNoteId", "parameters": [ { "name": "ownershipAccountId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "noteId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NoteMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "put": { "tags": [ "Association Ownership Accounts" ], "summary": "Update a note", "description": "Updates an association ownership account note.\r\n

NOTE: Any field not included in the update request will be set to either an empty string or `null` in the database depending on the field definition.
The recommended workflow to ensure no data is inadvertently overwritten is to execute a `GET` request for the resource you're about to update and then use this response to fill any of the fields that are not being updated.\r\n

Required permission(s):

Associations > Ownership Accounts - `View` `Edit`", "operationId": "UpdateAssociationOwnershipAccountNote", "parameters": [ { "name": "ownershipAccountId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "noteId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "$ref": "#/components/requestBodies/NotePutMessage" }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NoteMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/associations/ownershipaccounts/{ownershipAccountId}/payments": { "post": { "tags": [ "Association Ownership Accounts" ], "summary": "Create a ledger payment", "description": "Creates a ledger payment.\r\n

Required permission(s):

Associations > Ownership account transactions - `View` `Edit`", "operationId": "CreateOwnershipAccountLedgerPayment", "parameters": [ { "name": "ownershipAccountId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OwnershipAccountLedgerPaymentPostMessage" } } }, "required": true }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OwnershipAccountTransactionMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/associations/ownershipaccounts/{ownershipAccountId}/recurringcharges": { "post": { "tags": [ "Association Ownership Accounts" ], "summary": "Create a recurring charge", "description": "Creates a recurring charge transaction that will post automatically on the specified ownership account ledger.\r\n

Required permission(s):

Associations > Ownership account transactions - `View` `Edit`", "operationId": "CreateOwnershipAccountsChargeRecurringTransaction", "parameters": [ { "name": "ownershipAccountId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "$ref": "#/components/requestBodies/ChargeRecurringTransactionPostMessage" }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OwnershipAccountChargeRecurringTransactionMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/associations/ownershipaccounts/{ownershipAccountId}/recurringcharges/{transactionId}": { "get": { "tags": [ "Association Ownership Accounts" ], "summary": "Retrieve a recurring charge", "description": "Retrieves a recurring charge.\r\n

Required permission(s):

Associations > Ownership account transactions - `View`", "operationId": "GetOwnershipAccountsChargeRecurringTransactionById", "parameters": [ { "name": "ownershipAccountId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "transactionId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OwnershipAccountChargeRecurringTransactionMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/associations/ownershipaccounts/{ownershipAccountId}/recurringcredits": { "post": { "tags": [ "Association Ownership Accounts" ], "summary": "Create a recurring credit", "description": "Creates a recurring credit transaction that will post automatically on the specified ownership account ledger.\r\n

Required permission(s):

Associations > Ownership account transactions - `View` `Edit`", "operationId": "CreateOwnershipAccountCreditRecurringTransaction", "parameters": [ { "name": "ownershipAccountId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "$ref": "#/components/requestBodies/CreditRecurringTransactionPostMessage" }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OwnershipAccountRecurringCreditMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/associations/ownershipaccounts/{ownershipAccountId}/recurringcredits/{transactionId}": { "get": { "tags": [ "Association Ownership Accounts" ], "summary": "Retrieve a recurring credit", "description": "Retrieves a recurring credit.\r\n

Required permission(s):

Associations > Ownership account transactions - `View`", "operationId": "GetOwnershipAccountRecurringCreditById", "parameters": [ { "name": "ownershipAccountId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "transactionId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OwnershipAccountRecurringCreditMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/associations/ownershipaccounts/{ownershipAccountId}/recurringpayments": { "post": { "tags": [ "Association Ownership Accounts" ], "summary": "Create a recurring payment", "description": "Creates a recurring payment that will post automatically on the specified ownership account ledger.\r\n

Required permission(s):

Associations > Ownership account transactions - `View` `Edit`", "operationId": "CreateOwnershipAccountRecurringPayment", "parameters": [ { "name": "ownershipAccountId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "$ref": "#/components/requestBodies/PaymentRecurringTransactionPostMessage" }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OwnershipAccountRecurringPaymentMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/associations/ownershipaccounts/{ownershipAccountId}/recurringpayments/{paymentId}": { "get": { "tags": [ "Association Ownership Accounts" ], "summary": "Retrieve a recurring payment", "description": "Retrieves a recurring payment.\r\n

Required permission(s):

Associations > Ownership account transactions - `View`", "operationId": "GetRecurringOwnershipAccountPaymentsById", "parameters": [ { "name": "ownershipAccountId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "paymentId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OwnershipAccountRecurringPaymentMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/associations/ownershipaccounts/{ownershipAccountId}/recurringtransactions": { "get": { "tags": [ "Association Ownership Accounts" ], "summary": "Retrieve all recurring transactions", "description": "Retrieves all recurring transactions for an ownership account.\r\n

Required permission(s):

Associations > Ownership account transactions - `View`", "operationId": "GetAssociationRecurringTransaction", "parameters": [ { "name": "ownershipAccountId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/RecurringTransactionMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/associations/ownershipaccounts/{ownershipAccountId}/refunds": { "post": { "tags": [ "Association Ownership Accounts" ], "summary": "Create a refund", "description": "Creates a refund.\r\n

Required permission(s):

Accounting > Bank Accounts - `View` `Edit`", "operationId": "CreateOwnershipAccountRefund", "parameters": [ { "name": "ownershipAccountId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OwnershipAccountRefundPostMessage" } } }, "required": true }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OwnershipAccountRefundMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/associations/ownershipaccounts/{ownershipAccountId}/refunds/{refundId}": { "get": { "tags": [ "Association Ownership Accounts" ], "summary": "Retrieve a refund", "description": "Retrieves a refund.\r\n

Required permission(s):

Accounting > Bank Accounts - `View`", "operationId": "GetOwnershipAccountRefundById", "parameters": [ { "name": "ownershipAccountId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "refundId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OwnershipAccountRefundMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/associations/ownershipaccounts/{ownershipAccountId}/transactions": { "get": { "tags": [ "Association Ownership Accounts" ], "summary": "Retrieve ownership account transactions", "description": "Retrieves all transactions for a specific ownership account.\r\n

Required permission(s):

Associations > Ownership account transactions - `View`", "operationId": "GetOwnershipAccountLedger", "parameters": [ { "name": "ownershipAccountId", "in": "path", "description": "The ownership account identifier.", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "transactiondatefrom", "in": "query", "description": "Filters results to any lease transaction whose start date is greater than or equal to the specified value.", "required": false, "schema": { "type": "string", "format": "date" } }, { "name": "transactiondateto", "in": "query", "description": "Filters results to any lease transaction whose end date is less than or equal to the specified value.", "required": false, "schema": { "type": "string", "format": "date" } }, { "name": "transactiontypes", "in": "query", "description": "Filters results to any lease transaction whose lease transaction type matches the specified status. If no type is specified, lease transactions with any type will be returned.", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "string", "enum": [ "Bill", "Check", "Charge", "Payment", "Credit", "Refund", "ApplyDeposit", "ElectronicFundsTransfer", "Other", "Deposit", "GeneralJournalEntry", "OwnerContribution", "ReversePayment", "ReverseElectronicFundsTransfer", "VendorCredit", "RentalApplicationFeePayment", "ReverseRentalApplicationFeePayment", "ReverseOwnerContribution", "VendorRefund", "UnreversedPayment", "UnreversedElectronicFundsTransfer", "UnreversedOwnerContribution", "UnreversedRentalApplicationFeePayment" ] } } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/OwnershipAccountTransactionMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/associations/ownershipaccounts/{ownershipAccountId}/transactions/{transactionId}": { "get": { "tags": [ "Association Ownership Accounts" ], "summary": "Retrieve an ownership account transaction", "description": "Retrieves a single ownership account transaction.\r\n

Required permission(s):

Associations > Ownership account transactions - `View`", "operationId": "GetOwnershipAccountTransactionById", "parameters": [ { "name": "ownershipAccountId", "in": "path", "description": "The ownership account identifier.", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "transactionId", "in": "path", "description": "The transaction identifier.", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OwnershipAccountTransactionMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/associations/ownershipaccounts/outstandingbalances": { "get": { "tags": [ "Association Ownership Accounts" ], "summary": "Retrieve all outstanding balances", "description": "Retrieves a list of ownership account outstanding balances.\r\n

Required permission(s):

Associations > Outstanding Balances - `View`", "operationId": "GetOwnershipAccountOutstandingBalances", "parameters": [ { "name": "associationid", "in": "query", "description": "Association unique identifier", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "ownershipaccountstatuses", "in": "query", "description": "List of ownership account statuses", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "string", "enum": [ "Active", "Past", "Future" ] } } }, { "name": "ownershipaccountids", "in": "query", "description": "List of ownership account ids", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "integer", "format": "int32" } } }, { "name": "pastdueemail", "in": "query", "description": "Status of notification of outstanding balances", "required": false, "schema": { "type": "string", "enum": [ "NoEmailAddress", "Sent" ] } }, { "name": "balanceduration", "in": "query", "description": "Duration of outstanding balances", "required": false, "schema": { "type": "string", "enum": [ "TotalBalance", "Balance0to30Days", "Balance31to60Days", "Balance61to90Days", "BalanceOver90Days" ] } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/OwnershipAccountOutstandingBalanceMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/associations/tenants/{tenantId}/notes": { "get": { "tags": [ "Association Tenants" ], "summary": "Retrieve all notes", "description": "Retrieves all association tenant notes.\r\n

Required permission(s):

Associations > Association owners and tenants - `View`", "operationId": "GetAssociationTenantNotes", "parameters": [ { "name": "tenantId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "updateddatetimefrom", "in": "query", "description": "Filters results to any note whose updated date and time are greater than or equal to the specified value. The value must be formatted as YYYY-MM-DD HH:MM:SS.", "required": false, "schema": { "type": "string", "format": "date-time" } }, { "name": "updateddatetimeto", "in": "query", "description": "Filters results to any note whose updated date and time are less than or equal to the specified value. The value must be formatted as YYYY-MM-DD HH:MM:SS.", "required": false, "schema": { "type": "string", "format": "date-time" } }, { "name": "lastupdatedbyuserid", "in": "query", "description": "Filters results to only notes that were last updated by the specified user identifier.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/NoteMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "post": { "tags": [ "Association Tenants" ], "summary": "Create a note", "description": "Creates an association tenant note.\r\n

Required permission(s):

Associations > Association owners and tenants - `View` `Edit`", "operationId": "CreateAssociationTenantNote", "parameters": [ { "name": "tenantId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "$ref": "#/components/requestBodies/NotePostMessage" }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NoteMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/associations/tenants/{tenantId}/notes/{noteId}": { "get": { "tags": [ "Association Tenants" ], "summary": "Retrieve a note", "description": "Retrieves an association tenant note.\r\n

Required permission(s):

Associations > Association owners and tenants - `View`", "operationId": "GetAssociationTenantNoteById", "parameters": [ { "name": "tenantId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "noteId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NoteMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "put": { "tags": [ "Association Tenants" ], "summary": "Update a note", "description": "Updates an association tenant note.\r\n

NOTE: Any field not included in the update request will be set to either an empty string or `null` in the database depending on the field definition.
The recommended workflow to ensure no data is inadvertently overwritten is to execute a `GET` request for the resource you're about to update and then use this response to fill any of the fields that are not being updated.\r\n

Required permission(s):

Associations > Association owners and tenants - `View` `Edit`", "operationId": "UpdateAssociationTenantNote", "parameters": [ { "name": "tenantId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "noteId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "$ref": "#/components/requestBodies/NotePutMessage" }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NoteMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/associations/units/{unitId}/notes": { "get": { "tags": [ "Association Units" ], "summary": "Retrieve all notes", "description": "Retrieves all association unit notes.\r\n

Required permission(s):

Associations > Associations and units - `View`", "operationId": "GetAssociationUnitNotes", "parameters": [ { "name": "unitId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "updateddatetimefrom", "in": "query", "description": "Filters results to any note whose updated date and time are greater than or equal to the specified value. The value must be formatted as YYYY-MM-DD HH:MM:SS.", "required": false, "schema": { "type": "string", "format": "date-time" } }, { "name": "updateddatetimeto", "in": "query", "description": "Filters results to any note whose updated date and time are less than or equal to the specified value. The value must be formatted as YYYY-MM-DD HH:MM:SS.", "required": false, "schema": { "type": "string", "format": "date-time" } }, { "name": "lastupdatedbyuserid", "in": "query", "description": "Filters results to only notes that were last updated by the specified user identifier.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/NoteMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "post": { "tags": [ "Association Units" ], "summary": "Create a note", "description": "Creates a new association unit note.\r\n

Required permission(s):

Associations > Associations and units - `View` `Edit`", "operationId": "CreateAssociationUnitNote", "parameters": [ { "name": "unitId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "$ref": "#/components/requestBodies/NotePostMessage" }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NoteMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/associations/units/{unitId}/notes/{noteId}": { "get": { "tags": [ "Association Units" ], "summary": "Retrieve a note", "description": "Retrieves an association unit note.\r\n

Required permission(s):

Associations > Associations and units - `View`", "operationId": "GetAssociationUnitNoteByNoteId", "parameters": [ { "name": "unitId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "noteId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NoteMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "put": { "tags": [ "Association Units" ], "summary": "Update a note", "description": "Updates an association unit note.\r\n

NOTE: Any field not included in the update request will be set to either an empty string or `null` in the database depending on the field definition.
The recommended workflow to ensure no data is inadvertently overwritten is to execute a `GET` request for the resource you're about to update and then use this response to fill any of the fields that are not being updated.\r\n

Required permission(s):

Associations > Associations and units - `View` `Edit`", "operationId": "UpdateAssociationUnitNote", "parameters": [ { "name": "unitId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "noteId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "$ref": "#/components/requestBodies/NotePutMessage" }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NoteMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/bankaccounts": { "get": { "tags": [ "Bank Accounts" ], "summary": "Retrieve all bank accounts", "description": "Retrieves a list of bank accounts.\r\n

Required permission(s):

Accounting > Bank Accounts - `View`", "operationId": "GetAllBankAccounts", "parameters": [ { "name": "bankaccountstatus", "in": "query", "description": "Filters results by the status of the bank account. If no status is specified, bank accounts with any status will be returned.", "required": false, "schema": { "type": "string", "enum": [ "Active", "InActive" ] } }, { "name": "bankname", "in": "query", "description": "Filters results to any bank account whose name *contains* the specified value.", "required": false, "schema": { "type": "string" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/BankAccountMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "post": { "tags": [ "Bank Accounts" ], "summary": "Create a bank account", "description": "Creates a bank account.\r\n

Required permission(s):

Accounting > Banking - `View` `Edit`", "operationId": "CreateBankAccount", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BankAccountPostMessage" } } }, "required": true }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BankAccountMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/bankaccounts/{bankAccountId}": { "get": { "tags": [ "Bank Accounts" ], "summary": "Retrieve a bank account", "description": "Retrieves a specific bank account.\r\n

Required permission(s):

Accounting > Bank Accounts - `View`", "operationId": "GetBankAccount", "parameters": [ { "name": "bankAccountId", "in": "path", "description": "The bank account identifier.", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BankAccountMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "put": { "tags": [ "Bank Accounts" ], "summary": "Update a bank account", "description": "Updates a bank account.\r\n

NOTE: Any field not included in the update request will be set to either an empty string or `null` in the database depending on the field definition.
The recommended workflow to ensure no data is inadvertently overwritten is to execute a `GET` request for the resource you're about to update and then use this response to fill any of the fields that are not being updated.\r\n

Required permission(s):

Accounting > Banking - `View` `Edit`", "operationId": "UpdateBankAccount", "parameters": [ { "name": "bankAccountId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BankAccountPutMessage" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BankAccountMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/bankaccounts/{bankAccountId}/checks": { "get": { "tags": [ "Bank Accounts" ], "summary": "Retrieve all checks", "description": "Retrieves all bank account checks.\r\n

Required permission(s):

Accounting > Bank Accounts - `View`\r\n
Accounting > General Ledger Transactions - `View` (Required for checks associated with a Company) ", "operationId": "GetBankAccountChecks", "parameters": [ { "name": "bankAccountId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "startdate", "in": "query", "description": "Filters results to any transactions that were recorded on or after the specified date. The value must be formatted as YYYY-MM-DD.", "required": true, "schema": { "type": "string", "format": "date" } }, { "name": "enddate", "in": "query", "description": "Filters results to any transactions that were recorded on or before the specified date. The value must be formatted as YYYY-MM-DD.", "required": true, "schema": { "type": "string", "format": "date" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/BankAccountCheckMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "post": { "tags": [ "Bank Accounts" ], "summary": "Create a check", "description": "Creates a check.\r\n

Required permission(s):

Accounting > Bank Accounts - `View` `Edit`", "operationId": "CreateBankAccountCheck", "parameters": [ { "name": "bankAccountId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BankAccountCheckPostMessage" } } }, "required": true }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BankAccountCheckMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/bankaccounts/{bankAccountId}/checks/{checkId}": { "get": { "tags": [ "Bank Accounts" ], "summary": "Retrieve a check", "description": "Retrieves a bank account check.\r\n

Required permission(s):

Accounting > Bank Accounts - `View`\r\n
Accounting > General Ledger Transactions - `View` (Required for checks associated with a Company) ", "operationId": "GetCheckForBankAccount", "parameters": [ { "name": "bankAccountId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "checkId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BankAccountCheckMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "put": { "tags": [ "Bank Accounts" ], "summary": "Update a check", "description": "Updates a check.\r\n

NOTE: Any field not included in the update request will be set to either an empty string or `null` in the database depending on the field definition.
The recommended workflow to ensure no data is inadvertently overwritten is to execute a `GET` request for the resource you're about to update and then use this response to fill any of the fields that are not being updated.\r\n

Required permission(s):

Accounting > Bank Accounts - `View` `Edit`", "operationId": "UpdateCheckForBankAccount", "parameters": [ { "name": "bankAccountId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "checkId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BankAccountCheckPutMessage" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BankAccountCheckMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/bankaccounts/{bankAccountId}/deposits": { "get": { "tags": [ "Bank Accounts" ], "summary": "Retrieve all deposits", "description": "Retrieves all bank account deposits.\r\n

Required permission(s):

Accounting > BankAccount - `View`\r\n
Accounting > General Ledger Transactions - `View` (Required for deposits associated with a Company) ", "operationId": "GetBankAccountDeposits", "parameters": [ { "name": "bankAccountId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "startdate", "in": "query", "description": "Filters results to any deposits that were recorded on or after the specified date. The value must be formatted as YYYY-MM-DD.", "required": true, "schema": { "type": "string", "format": "date" } }, { "name": "enddate", "in": "query", "description": "Filters results to any deposits that were recorded on or before the specified date. The value must be formatted as YYYY-MM-DD.", "required": true, "schema": { "type": "string", "format": "date" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/BankAccountDepositMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "post": { "tags": [ "Bank Accounts" ], "summary": "Create a deposit", "description": "Creates a deposit.\r\n

Required permission(s):

Accounting > Bank Accounts - `View` `Edit`", "operationId": "CreateBankAccountDeposit", "parameters": [ { "name": "bankAccountId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BankAccountDepositPostMessage" } } }, "required": true }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BankAccountDepositMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/bankaccounts/{bankAccountId}/deposits/{depositId}": { "get": { "tags": [ "Bank Accounts" ], "summary": "Retrieve a deposit", "description": "Retrieves a bank account deposit.\r\n

Required permission(s):

Accounting > BankAccount - `View`\r\n
Accounting > General Ledger Transactions - `View` (Required for deposits associated with a Company) ", "operationId": "GetBankAccountDepositById", "parameters": [ { "name": "bankAccountId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "depositId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BankAccountDepositMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "put": { "tags": [ "Bank Accounts" ], "summary": "Update a deposit", "description": "Updates a deposit.\r\n

NOTE: Any field not included in the update request will be set to either an empty string or `null` in the database depending on the field definition.
The recommended workflow to ensure no data is inadvertently overwritten is to execute a `GET` request for the resource you're about to update and then use this response to fill any of the fields that are not being updated.\r\n

Required permission(s):

Accounting > Bank Accounts - `View` `Edit`", "operationId": "UpdateBankAccountDeposit", "parameters": [ { "name": "bankAccountId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "depositId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BankAccountDepositPutMessage" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BankAccountDepositMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/bankaccounts/{bankAccountId}/quickdeposits": { "get": { "tags": [ "Bank Accounts" ], "summary": "Retrieve all quick deposits", "description": "Retrieves all quick deposits.\r\n

Required permission(s):

Accounting > BankAccount - `View`", "operationId": "GetAllQuickDeposits", "parameters": [ { "name": "bankAccountId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "startdate", "in": "query", "description": "Filters results to any transactions that were recorded on or after the specified date. The value must be formatted as YYYY-MM-DD.", "required": true, "schema": { "type": "string", "format": "date" } }, { "name": "enddate", "in": "query", "description": "Filters results to any transactions that were recorded on or before the specified date. The value must be formatted as YYYY-MM-DD.", "required": true, "schema": { "type": "string", "format": "date" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/BankAccountQuickDepositMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "post": { "tags": [ "Bank Accounts" ], "summary": "Create a quick deposit", "description": "Creates a quick deposit.\r\n

Required permission(s):

Accounting > BankAccount - `View` `Edit`", "operationId": "CreateQuickDeposit", "parameters": [ { "name": "bankAccountId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "$ref": "#/components/requestBodies/BankAccountQuickDepositSaveMessage" }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BankAccountQuickDepositMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/bankaccounts/{bankAccountId}/quickdeposits/{quickDepositId}": { "get": { "tags": [ "Bank Accounts" ], "summary": "Retrieve a quick deposit", "description": "Retrieves a quick deposit.\r\n

Required permission(s):

Accounting > BankAccount - `View`", "operationId": "GetQuickDepositById", "parameters": [ { "name": "bankAccountId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "quickDepositId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BankAccountQuickDepositMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "put": { "tags": [ "Bank Accounts" ], "summary": "Update a quick deposit", "description": "Updates a quick deposit.\r\n

NOTE: Any field not included in the update request will be set to either an empty string or `null` in the database depending on the field definition.
The recommended workflow to ensure no data is inadvertently overwritten is to execute a `GET` request for the resource you're about to update and then use this response to fill any of the fields that are not being updated.\r\n

Required permission(s):

Accounting > Bank Accounts - `View` `Edit`", "operationId": "UpdateQuickDeposit", "parameters": [ { "name": "bankAccountId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "quickDepositId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "$ref": "#/components/requestBodies/BankAccountQuickDepositSaveMessage" }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BankAccountQuickDepositMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/bankaccounts/{bankAccountId}/transactions": { "get": { "tags": [ "Bank Accounts" ], "summary": "Retrieve all transactions", "description": "Retrieves all bank account transactions.\r\n

\r\n Note: When using the `orderby` query string parameter, the only supported parameter is `EntryDate`.\r\n

Required permission(s):

Accounting > Bank Accounts - `View`", "operationId": "GetBankAccountTransactions", "parameters": [ { "name": "bankAccountId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "selectionentityid", "in": "query", "description": "Filters results to any transaction containing journal lines for an entity associated with the specified entity id value. The id must be of the type specified in SelectionEntityType.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "selectionentitytype", "in": "query", "description": "Specifies the type of entity that SelectionEntityId refers to.", "required": false, "schema": { "type": "string", "enum": [ "Company", "Rental", "RentalOwner", "Association" ] } }, { "name": "startdate", "in": "query", "description": "Filters results to any transactions that were recorded on or after the specified date. The value must be formatted as YYYY-MM-DD.", "required": true, "schema": { "type": "string", "format": "date" } }, { "name": "enddate", "in": "query", "description": "Filters results to any transactions that were recorded on or before the specified date. The value must be formatted as YYYY-MM-DD.", "required": true, "schema": { "type": "string", "format": "date" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/BankAccountTransactionMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/bankaccounts/{bankAccountId}/transactions/{transactionId}": { "get": { "tags": [ "Bank Accounts" ], "summary": "Retrieve a transaction", "description": "Retrieves a specific bank account transaction.\r\n

Required permission(s):

Accounting > Bank Account - `View`", "operationId": "GetBankAccountTransactionById", "parameters": [ { "name": "bankAccountId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "transactionId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BankAccountTransactionMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/bankaccounts/{bankAccountId}/transfers": { "get": { "tags": [ "Bank Accounts" ], "summary": "Retrieve all transfers", "description": "Retrieves all bank account transfers.\r\n

Required permission(s):

Accounting > BankAccount - `View`", "operationId": "GetBankAccountTransfers", "parameters": [ { "name": "bankAccountId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "startdate", "in": "query", "description": "Filters results to any transfers that were recorded on or after the specified date. The value must be formatted as YYYY-MM-DD.", "required": true, "schema": { "type": "string", "format": "date" } }, { "name": "enddate", "in": "query", "description": "Filters results to any transfers that were recorded on or before the specified date. The value must be formatted as YYYY-MM-DD.", "required": true, "schema": { "type": "string", "format": "date" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/BankAccountTransferMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "post": { "tags": [ "Bank Accounts" ], "summary": "Create a transfer", "description": "Creates a bank account transfer.\r\n

Required permission(s):

Accounting > Bank Accounts - `View` `Edit`", "operationId": "CreateBankAccountTransfer", "parameters": [ { "name": "bankAccountId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "$ref": "#/components/requestBodies/BankAccountTransferSaveMessage" }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BankAccountTransferMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/bankaccounts/{bankAccountId}/transfers/{transferId}": { "get": { "tags": [ "Bank Accounts" ], "summary": "Retrieve a transfer", "description": "Retrieves a bank account transfer.\r\n

Required permission(s):

Accounting > Bank Accounts - `View`", "operationId": "GetBankAccountTransferById", "parameters": [ { "name": "bankAccountId", "in": "path", "description": "The bank account identifier.", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "transferId", "in": "path", "description": "The transfer identifier.", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BankAccountMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "put": { "tags": [ "Bank Accounts" ], "summary": "Update a transfer", "description": "Updates a bank account transfer.\r\n

NOTE: Any field not included in the update request will be set to either an empty string or `null` in the database depending on the field definition.
The recommended workflow to ensure no data is inadvertently overwritten is to execute a `GET` request for the resource you're about to update and then use this response to fill any of the fields that are not being updated.\r\n

Required permission(s):

Accounting > Bank Accounts - `View` `Edit`", "operationId": "UpdateBankAccountTransfer", "parameters": [ { "name": "bankAccountId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "transferId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "$ref": "#/components/requestBodies/BankAccountTransferSaveMessage" }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BankAccountTransferMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/bankaccounts/{bankAccountId}/undepositedfunds": { "get": { "tags": [ "Bank Accounts" ], "summary": "Retrieve all undeposited funds", "description": "Retrieve all bank account undeposited funds.\r\n

Required permission(s):

Accounting > Bank Accounts - `View`", "operationId": "GetUndepositedFunds", "parameters": [ { "name": "bankAccountId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/UndepositedFundsMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/bankaccounts/{bankAccountId}/withdrawals": { "get": { "tags": [ "Bank Accounts" ], "summary": "Retrieve all withdrawals", "description": "Retrieves all bank account withdrawals.\r\n

Required permission(s):

Accounting > BankAccounts - `View`", "operationId": "GetBankAccountWithdrawals", "parameters": [ { "name": "bankAccountId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "startdate", "in": "query", "description": "Filters results to any transactions that were recorded on or after the specified date. The value must be formatted as YYYY-MM-DD.", "required": true, "schema": { "type": "string", "format": "date" } }, { "name": "enddate", "in": "query", "description": "Filters results to any transactions that were recorded on or before the specified date. The value must be formatted as YYYY-MM-DD.", "required": true, "schema": { "type": "string", "format": "date" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/BankAccountWithdrawalMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "post": { "tags": [ "Bank Accounts" ], "summary": "Create a withdrawal", "description": "Creates a bank account withdrawal.\r\n

Required permission(s):

Accounting > Bank Accounts - `View` `Edit`", "operationId": "CreateWithdrawalForBankAccount", "parameters": [ { "name": "bankAccountId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "$ref": "#/components/requestBodies/BankAccountWithdrawalSaveMessage" }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BankAccountWithdrawalMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/bankaccounts/{bankAccountId}/withdrawals/{withdrawalId}": { "get": { "tags": [ "Bank Accounts" ], "summary": "Retrieve a withdrawal", "description": "Retrieves a bank account withdrawal.\r\n

Required permission(s):

Accounting > BankAccounts - `View`", "operationId": "GetBankAccountWithdrawalById", "parameters": [ { "name": "bankAccountId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "withdrawalId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BankAccountWithdrawalMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "put": { "tags": [ "Bank Accounts" ], "summary": "Update a withdrawal", "description": "Updates a bank account withdrawal.\r\n

NOTE: Any field not included in the update request will be set to either an empty string or `null` in the database depending on the field definition.
The recommended workflow to ensure no data is inadvertently overwritten is to execute a `GET` request for the resource you're about to update and then use this response to fill any of the fields that are not being updated.\r\n

Required permission(s):

Accounting > Bank Accounts - `View` `Edit`", "operationId": "UpdateBankAccountWithdrawal", "parameters": [ { "name": "bankAccountId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "withdrawalId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "$ref": "#/components/requestBodies/BankAccountWithdrawalSaveMessage" }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BankAccountWithdrawalMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/bills": { "get": { "tags": [ "Accounting" ], "summary": "Retrieve all bills", "description": "Retrieves a list of bills.\r\n

Required permission(s):

Accounting > Bills - `View`", "operationId": "GetBillsAsync", "parameters": [ { "name": "entityid", "in": "query", "description": "Filters results to any bill containing line items associated with the specified entity identifier. This filter is used in conjunction with the `EntityType` field which must be set to the type of entity this identifier references.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "entitytype", "in": "query", "description": "Specifies the type of entity that `EntityId` refers to. This field is required if `EntityId` is specified.", "required": false, "schema": { "type": "string", "enum": [ "Rental", "RentalOwner", "Association" ] } }, { "name": "vendorid", "in": "query", "description": "Filters results to bills associated with a specific vendor.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "referencenumber", "in": "query", "description": "Filters results to bills whose reference number contains the specified value.", "required": false, "schema": { "type": "string" } }, { "name": "paidstatus", "in": "query", "description": "Filters results by the bill's paid status. If no status is specified, bills with any status will be returned.", "required": false, "schema": { "type": "string", "enum": [ "Paid", "Unpaid", "UncollectedMarkups" ] } }, { "name": "frompaiddate", "in": "query", "description": "Filters results to any bill whose paid date is greater than or equal to the specified value.", "required": false, "schema": { "type": "string", "format": "date" } }, { "name": "topaiddate", "in": "query", "description": "Filters results to any bill whose paid date is less than or equal to the specified value.", "required": false, "schema": { "type": "string", "format": "date" } }, { "name": "approvalstatuses", "in": "query", "description": "Filters the results to bills matching the specified approval statuses. If no approval status is specified, bills with any status will be returned.", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "string", "enum": [ "NotNeeded", "ApprovalRequired", "Approved", "Pending", "Rejected" ] } } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/BillMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "post": { "tags": [ "Accounting" ], "summary": "Create a bill", "description": "Creates a bill.\r\n

Required permission(s):

Accounting > Bills - `View` `Edit`", "operationId": "CreateBill", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BillPostMessage" } } }, "required": true }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BillMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/bills/{billId}": { "get": { "tags": [ "Accounting" ], "summary": "Retrieve a bill", "description": "Retrieves a single bill.\r\n

Required permission(s):

Accounting > Bills - `View`", "operationId": "GetBillById", "parameters": [ { "name": "billId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BillMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "put": { "tags": [ "Accounting" ], "summary": "Update a bill", "description": "Use this operation to update any of the writable fields of an existing bill resource. When updating this resource keep the following in mind:


Required permission(s):

Accounting > Bills - `View` `Edit`", "operationId": "UpdateBill", "parameters": [ { "name": "billId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BillPutMessage" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BillMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/bills/{billId}/files": { "get": { "tags": [ "Accounting" ], "summary": "Retrieve all files for a bill", "description": "Retrieves the metadata for all files associated to the specified bill.\r\n

Required permission(s):

Accounting > Bills - `View`", "operationId": "GetAllFilesForBill", "parameters": [ { "name": "billId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/BillFileMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/bills/{billId}/files/{fileId}": { "get": { "tags": [ "Accounting" ], "summary": "Retrieve a file for a bill", "description": "Retrieves the metadata for a specific file associated with the specified bill.\r\n

Required permission(s):

Accounting > Bills - `View`", "operationId": "GetBillFileById", "parameters": [ { "name": "billId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "fileId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BillFileMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "delete": { "tags": [ "Accounting" ], "summary": "Delete a bill file", "description": "Deletes the specified file from a bill. The file will be permanently deleted from the Buildium platform and can not be recovered.\r\n

Required permission(s):

Accounting > Bills - `View` `Edit` `Delete`", "operationId": "DeleteBillFile", "parameters": [ { "name": "billId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "fileId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "204": { "description": "OK - No Content." }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/bills/{billId}/files/{fileId}/downloadrequest": { "post": { "tags": [ "Accounting" ], "summary": "Download a bill file", "description": "Downloads a specific file associated to the bill.\r\n

Required permission(s):

Accounting > Bills - `View`", "operationId": "DownloadBillFile", "parameters": [ { "name": "billId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "fileId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FileDownloadMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/bills/{billId}/files/uploadrequests": { "post": { "tags": [ "Accounting" ], "summary": "Upload a bill file", "description": "Uploads a file and associates it to the specified bill record.\r\n

Uploading a file requires making two API requests. Each step is outlined below.\r\n

Step 1 - Save file metadata
\r\nThe first step in the file upload process is to submit the file metadata to `/v1/bills/{billId:int}/files/uploadrequests`. The response of this call will contain a URL and a collection of form data that will be used in step 2 to generate the request for the file binary upload.\r\n

NOTE: The response data will expire after 5 minutes. The file metadata will not be saved in the Buildium system if step 2 of this process is not completed successfully.\r\n

Step 2 - Upload the file binary
\r\nUploading the file binary will require using the response from step 1 to form a POST request to the Buildium file provider. Follow these steps to create the request:\r\n
\r\n1. Form a POST request using the value of the `BucketUrl` property as the URL. \r\n

\r\n2. Set the `Content-Type` header to `multipart/form-data`.\r\n

\r\n3. Copy the fields from the `FormData` property to this request as form-data key/value pairs.\r\n
NOTE: These values must added to the request form-data in the order they were received in the response.\r\n

\r\n4. Lastly create a form-data key named `file` and set the value to the file binary.\r\n
NOTE: This must be the last field in the form-data list.\r\n

This image shows what the POST request should look like if you're using Postman:\r\n

\r\n5. Send the POST request! A successful request will return with a `204 - NO CONTENT` HTTP response code. For any failure responses, please refer to AWS documentation on REST error responses.\r\n

Required permission(s):

Accounting > Bills - `View` `Edit`", "operationId": "CreateUploadFileRequest", "parameters": [ { "name": "billId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FileNamePostMessage" } } }, "required": true }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FileUploadTicketMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "409": { "description": "There is a request conflict with the current state of the target resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/bills/{billId}/payments": { "get": { "tags": [ "Accounting" ], "summary": "Retrieve all bill payments", "description": "Retrieves a list of bill payments for a specific bill.\r\n

Required permission(s):

Accounting > Bills - `View`", "operationId": "GetBillPayments", "parameters": [ { "name": "billId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/BillPaymentMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "post": { "tags": [ "Accounting" ], "summary": "Create a bill payment", "description": "Creates a bill payment.\r\n

Required permission(s):

Accounting > Bills - `View` `Edit`\r\n Accounting > Bank Accounts - `View` `Edit`", "operationId": "CreateBillPayment", "parameters": [ { "name": "billId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BillPaymentPostMessage" } } }, "required": true }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BillPaymentMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "409": { "description": "There is a request conflict with the current state of the target resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/bills/{billId}/payments/{paymentId}": { "get": { "tags": [ "Accounting" ], "summary": "Retrieve a bill payment", "description": "Retrieves specific bill payment.\r\n

Required permission(s):

Accounting > Bills - `View`", "operationId": "GetBillPaymentById", "parameters": [ { "name": "billId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "paymentId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BillPaymentMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/budgets": { "get": { "tags": [ "Accounting" ], "summary": "Retrieve all budgets", "description": "Retrieves all budgets.\r\n

Required permission(s):

Accounting > Budgets - `View`", "operationId": "GetBudgets", "parameters": [ { "name": "propertyids", "in": "query", "description": "Filters results to any budget associated to any of the specified set of property ids.", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "integer", "format": "int32" } } }, { "name": "fiscalyear", "in": "query", "description": "Filters results to any budgets that end in the given fiscal year. FiscalYear must be a positive number.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "name", "in": "query", "description": "Filters results to any budgets whose name *contains* the specified value.", "required": false, "schema": { "type": "string" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/BudgetMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "post": { "tags": [ "Accounting" ], "summary": "Create a budget", "description": "Creates a budget.\r\n

Required permission(s):

Accounting > Budgets - `View` `Edit`", "operationId": "CreateBudget", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BudgetPostMessage" } } }, "required": true }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BudgetMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/budgets/{budgetId}": { "get": { "tags": [ "Accounting" ], "summary": "Retrieve a budget", "description": "Retrieves a budget.\r\n

Required permission(s):

Accounting > Budgets - `View`", "operationId": "GetBudgetById", "parameters": [ { "name": "budgetId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BudgetMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "put": { "tags": [ "Accounting" ], "summary": "Update a budget", "description": "Updates a budget.\r\n

Required permission(s):

Accounting > Budgets - `View` `Edit`", "operationId": "UpdateBudget", "parameters": [ { "name": "budgetId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BudgetPutMessage" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BudgetMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/clientleads": { "get": { "tags": [ "Client Leads" ], "summary": "Retrieve all client leads", "description": "Retrieves all client leads\r\n

\r\n Note: When using the `orderby` query string parameter, the only supported options are DateReceived.\r\n

Required permission(s):

Administration > All Property Management - `View`", "operationId": "GetClientLeads", "parameters": [ { "name": "leadstatuses", "in": "query", "description": "Filters results to any client leads that are in one of the given statuses.", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "string", "enum": [ "Unknown", "New", "Contacting", "Qualifying", "Closing", "ClosedWon", "ClosedLost" ] } } }, { "name": "propertytypes", "in": "query", "description": "Filters results to any client leads that have a property in one of the given property types.", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "string", "enum": [ "SingleHomeUpToThreeHundredThousand", "SingleHomeThreeHundredToFiveHundredThousand", "SingleHomeFiveHundredThousandToOneMillion", "SingleHomeOverOneMillion", "MultiFamilyTwoToFourUnits", "MultiFamilyFiveToNineteenUnits", "MultiFamilyTwentyToFortyNineUnits", "MultiFamilyOverOneHundredUnits", "OfficeLessThanTenThousandSqFt", "OfficeTenThousandToOneHundredThousandSqFt", "OfficeOverOneHundredThousandSqFt", "RetailLessThanTenThousandSqFt", "RetailTenThousandToOneHundredThousandSqFt", "RetailOverOneHundredThousandSqFt", "LightManufacturingUpToOneHundredThousandSqFt", "LightManufacturingOverOneHundredThousandSqFt", "WarehouseUpToOneHundredThousandSqFt", "WarehouseOverOneHundredThousandSqFt", "VacationOneToTwoUnits", "VacationOverThreeUnits", "ParkingGarage", "OtherAssociation", "BiotechMissionCritical", "HOATwoToFortyNineUnits", "HOAFiftyToNinetyNineUnits", "HOAOverOneHundredUnits", "COATwoToFortyNineUnits", "COAFiftyToNinetyNineUnits", "COAOverOneHundredUnits", "MobileHomeCommunity" ] } } }, { "name": "datereceivedfrom", "in": "query", "description": "Filters results to any client leads that were received on or after the specified date. The value must be formatted as YYYY-MM-DD.", "required": false, "schema": { "type": "string", "format": "date-time" } }, { "name": "datereceivedto", "in": "query", "description": "Filters results to any client leads that were received on or before the specified date. The value must be formatted as YYYY-MM-DD.", "required": false, "schema": { "type": "string", "format": "date-time" } }, { "name": "includecreditedleads", "in": "query", "description": "This will also return client leads that were credited. By default credited leads will not be returned.", "required": false, "schema": { "type": "boolean" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ClientLeadMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/clientleads/{clientLeadId}": { "get": { "tags": [ "Client Leads" ], "summary": "Retrieve a client lead", "description": "Retrieves a specific client lead\r\n

Required permission(s):

Administration > All Property Management - `View`", "operationId": "GetProspectiveClient", "parameters": [ { "name": "clientLeadId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ClientLeadMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/communications/announcements": { "get": { "tags": [ "Communications" ], "summary": "Retrieve all announcements", "description": "Retrieves all announcements.\r\n

Required permission(s):

Communications > Announcements - `View`", "operationId": "GetAllAnnouncements", "parameters": [ { "name": "announcementdatefrom", "in": "query", "description": "Filters results to any announcements created on or after the specified date. The value must be formatted as YYYY-MM-DD.", "required": false, "schema": { "type": "string", "format": "date" } }, { "name": "announcementdateto", "in": "query", "description": "Filters results to any announcements created on or before the specified date. The value must be formatted as YYYY-MM-DD.", "required": false, "schema": { "type": "string", "format": "date" } }, { "name": "entityid", "in": "query", "description": "Filters results to any announcement associated with the specified entity id value. The value must be of the type specified in the `EntityType` field.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "entitytype", "in": "query", "description": "Specifies the type of entity that the `EntityId` field refers to. This field is required if the `EntityId` field is provided.", "required": false, "schema": { "type": "string", "enum": [ "Rental", "RentalOwner", "Association" ] } }, { "name": "senderid", "in": "query", "description": "Unique identifier of the user that published the announcement.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/AnnouncementMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "post": { "tags": [ "Communications" ], "summary": "Create an announcement", "description": "Creates and publishes an announcement.\r\n

Required permission(s):

Communications > Announcements - `View` `Edit`", "operationId": "CreateAnnouncement", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AnnouncementPostMessage" } } }, "required": true }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AnnouncementMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "409": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/communications/announcements/{announcementId}": { "get": { "tags": [ "Communications" ], "summary": "Retrieve an announcement", "description": "Retrieves an announcement.\r\n

Required permission(s):

Communications > Announcements - `View`", "operationId": "GetAnnouncementById", "parameters": [ { "name": "announcementId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AnnouncementMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/communications/announcements/{announcementId}/expirationrequest": { "post": { "tags": [ "Communications" ], "summary": "Expire an announcement", "description": "Removes the announcement from the Resident Center immediately.\r\n

Required permission(s):

Communications > Announcements - `View` `Edit`", "operationId": "ExpireAnnouncement", "parameters": [ { "name": "announcementId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "204": { "description": "NoContent" }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/communications/announcements/{announcementId}/properties": { "get": { "tags": [ "Communications" ], "summary": "Retrieve all announcement properties", "description": "Retrieves a list of association and/or rental properties whose residents received the announcement. An empty response collection indicates that the announcement was sent to all properties at the time of its creation.\r\n

Required permission(s):

Communications > Announcements - `View`", "operationId": "GetAnnouncementProperties", "parameters": [ { "name": "announcementId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/PropertyMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/communications/emails": { "get": { "tags": [ "Communications" ], "summary": "Retrieve all emails", "description": "Retrieves all emails.\r\n

Required permission(s):

Communication > Emails - `View`", "operationId": "GetEmails", "parameters": [ { "name": "sentdatetimefrom", "in": "query", "description": "Filters results to any emails whose sent date and time are greater than or equal to the specified value. The value must be formatted as YYYY-MM-DDTHH:MM:SSZ. The maximum date range is 90 days.", "required": true, "schema": { "type": "string", "format": "date-time" } }, { "name": "sentdatetimeto", "in": "query", "description": "Filters results to any emails whose sent date and time are less than or equal to the specified value. The value must be formatted as YYYY-MM-DDTHH:MM:SSZ. The maximum date range is 90 days.", "required": true, "schema": { "type": "string", "format": "date-time" } }, { "name": "subject", "in": "query", "description": "Filters results to any email whose subject *contains* the specified value.", "required": false, "schema": { "type": "string" } }, { "name": "recipientnameoremail", "in": "query", "description": "Filters results to any email with a recipient whose name or email address *contains* the specified value.", "required": false, "schema": { "type": "string" } }, { "name": "senderuserid", "in": "query", "description": "Filters results to only emails that were sent by the specified user identifier.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/EmailMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "post": { "tags": [ "Communications" ], "summary": "Create an email.", "description": "Creates an email\r\n

Required permission(s):

Communication > Emails - `View` `Edit`", "operationId": "EmailsExternalApiWrite_CreateEmail", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EmailPostMessage" } } }, "required": true }, "responses": { "202": { "description": "Sent email." }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/communications/emails/{emailId}": { "get": { "tags": [ "Communications" ], "summary": "Retrieve an email", "description": "Retrieves an email. \r\n

Required permission(s):

Communications > Emails - `View`", "operationId": "GetEmailById", "parameters": [ { "name": "emailId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EmailMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/communications/emails/{emailId}/recipients": { "get": { "tags": [ "Communications" ], "summary": "Retrieve all email recipients", "description": "Retrieves all email recipients.\r\n

Required permission(s):

Communications > Email - `View`\r\n

Optional Permissions:


\r\n The following permissions are optional, but results with a missing permission will be filtered out.\r\n Maintenance > Vendors - `View` In order to retrieve recipients that are Vendors, you must have this permission.\r\n Administration > Users - `View` In order to see recipients that are Staff, you must have this permission.", "operationId": "GetEmailRecipients", "parameters": [ { "name": "emailId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/EmailRecipientMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/communications/phonelogs": { "get": { "tags": [ "Communications" ], "summary": "Retrieve all phone logs", "description": "Retrieves all phone logs.\r\n

Required permission(s):

Communications > Timelines (Phone Logs) - `View`", "operationId": "GetPhoneLogs", "parameters": [ { "name": "fromdate", "in": "query", "description": "Filters results to any phone log whose call date is greater than or equal to the specified value.", "required": false, "schema": { "type": "string", "format": "date" } }, { "name": "todate", "in": "query", "description": "Filters results to any phone log whose call date is less than or equal to the specified value.", "required": false, "schema": { "type": "string", "format": "date" } }, { "name": "loggedbystaffuserids", "in": "query", "description": "Filters results to any phone log that was logged by staff user(s).", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "integer", "format": "int32" } } }, { "name": "subject", "in": "query", "description": "Filters results to any phone log whose subject *contains* the specified value.", "required": false, "schema": { "type": "string" } }, { "name": "participantentityid", "in": "query", "description": "Filters results to any phone logs that match the participant identifier. Note, if a value is provided in this field the `ParticipantEntityType` must also be provided.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "participantentitytype", "in": "query", "description": "Filters results to any phone log with the specified participant type. This field is required if a value is provided for the `ParticipantEntityId` field.", "required": false, "schema": { "type": "string", "enum": [ "Vendor", "RentalOwner", "RentalTenant", "AssociationOwner" ] } }, { "name": "unitagreementid", "in": "query", "description": "Filters results to any phone log with the specified unit agreement identifier. Note, if a value is provided in this field the `UnitAgreementType` must also be provided.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "unitagreementtype", "in": "query", "description": "Filters results to any phone log with the specified unit agreement type. This field is required if a value is provided for the `UnitAgreementId` field.", "required": false, "schema": { "type": "string", "enum": [ "Lease", "OwnershipAccount" ] } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/PhoneLogMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "post": { "tags": [ "Communications" ], "summary": "Create a phone log", "description": "Creates a phone log.\r\n

Required permission(s):

Communications > Timelines (Phone Logs) - `View` `Edit`", "operationId": "CreatePhoneLog", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PhoneLogPostMessage" } } }, "required": true }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PhoneLogMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/communications/phonelogs/{phoneLogId}": { "get": { "tags": [ "Communications" ], "summary": "Retrieve a phone log", "description": "Retrieves a specific phone log.\r\n

Required permission(s):

Communications > Timelines (Phone Logs) - `View`", "operationId": "GetPhoneLogById", "parameters": [ { "name": "phoneLogId", "in": "path", "description": "The phone log identifier", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PhoneLogMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "put": { "tags": [ "Communications" ], "summary": "Update a phone log", "description": "Update a phone log\r\n

NOTE: Any field not included in the update request will be set to either an empty string or `null` in the database depending on the field definition.
The recommended workflow to ensure no data is inadvertently overwritten is to execute a `GET` request for the resource you're about to update and then use this response to fill any of the fields that are not being updated.\r\n

Required permission(s):

Communications > Timelines (Phone Logs) - `View` `Edit`", "operationId": "UpdatePhoneLog", "parameters": [ { "name": "phoneLogId", "in": "path", "description": "The phone log identifier.", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PhoneLogPutMessage" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PhoneLogMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/communications/templates": { "get": { "tags": [ "Communications" ], "summary": "Retrieve all communication templates", "description": "Retrieves all mailing and email templates.\r\n

Required permission(s):

Communications > Mailing Templates - `View`\r\n

Optional Permissions:

Rentals > Tenants - `View`\r\n
Rentals > Property Rental owners - `View`\r\n
Associations > Association owners and tenants - `View`\r\n
Maintenance > Vendors - `View`\r\n
Rentals > Applicants - `View`", "operationId": "GetMailingTemplates", "parameters": [ { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/MailingTemplateMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/communications/templates/{templateId}": { "get": { "tags": [ "Communications" ], "summary": "Retrieve a communication template", "description": "Retrieves a communication template.\r\n

Required permission(s):

Communications > Mailing Templates - `View`\r\n

Optional Permissions:

Rentals > Tenants - `View`\r\n
Rentals > Property Rental owners - `View`\r\n
Associations > Association owners and tenants - `View`\r\n
Maintenance > Vendors - `View`\r\n
Rentals > Applicants - `View`", "operationId": "GetMailingTemplatesById", "parameters": [ { "name": "templateId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MailingTemplateMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/files": { "get": { "tags": [ "Files" ], "summary": "Retrieve all files", "description": "GetFileDownloadUrlAsync\">Download File endpoint. \r\n

Required permission(s):

Documents > Files - `View`", "operationId": "GetFiles", "parameters": [ { "name": "entityid", "in": "query", "description": "Filters results to any file associated with the specified entity identifier. This filter is used in conjunction with the `EntityType` field which must be set to the type of entity this identifier references.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "entitytype", "in": "query", "description": "Specifies the type of entity that `EntityId` refers to. This field is required if `EntityId` is specified.", "required": false, "schema": { "type": "string", "enum": [ "Account", "Association", "AssociationOwner", "AssociationUnit", "Lease", "OwnershipAccount", "PublicAsset", "Rental", "RentalOwner", "RentalUnit", "Tenant", "Vendor" ] } }, { "name": "categoryid", "in": "query", "description": "Filters results to any file associated with the specified category identifier.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "titleordescription", "in": "query", "description": "Filters results to files whose title or description *contains* the specified value.", "required": false, "schema": { "type": "string" } }, { "name": "uploadedfrom", "in": "query", "description": "Filters results to any files that were updated on or after the specified date. The value must be formatted as YYYY-MM-DD.", "required": false, "schema": { "type": "string", "format": "date" } }, { "name": "uploadedto", "in": "query", "description": "Filters results to any files that were updated on or before the specified date. The value must be formatted as YYYY-MM-DD.", "required": false, "schema": { "type": "string", "format": "date" } }, { "name": "physicalfilenames", "in": "query", "description": "Filters results to any files with a `PhysicalFileName`exactly matching one of the provided values.", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "string" } } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/FileMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/files/{fileId}": { "get": { "tags": [ "Files" ], "summary": "Retrieve a file", "description": "GetFileDownloadUrlAsync\">Download File endpoint.

Required permission(s):

Documents > Files - `View`", "operationId": "GetFileById", "parameters": [ { "name": "fileId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FileMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "put": { "tags": [ "Files" ], "summary": "Update a file", "description": "Updates a metadata of the file. \r\n

NOTE: Any field not included in the update request will be set to either an empty string or `null` in the database depending on the field definition.
The recommended workflow to ensure no data is inadvertently overwritten is to execute a `GET` request for the resource you're about to update and then use this response to fill any of the fields that are not being updated.\r\n

Required permission(s):

Documents > Files - `View` `Edit`", "operationId": "UpdateFile", "parameters": [ { "name": "fileId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FilePutMessage" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FileMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/files/{fileId}/downloadrequest": { "post": { "tags": [ "Files" ], "summary": "Download a file", "description": "Downloading a file requires making two API requests. The first request to `/v1/files/{fileId}/downloadrequest` will return a secure URL that can be used to download the file contents. Note the download URL is transient and will expire after 5 minutes. \r\n

Required permission(s):

Documents > Files - `View`", "operationId": "GetFileDownloadUrlAsync", "parameters": [ { "name": "fileId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FileDownloadMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "503": { "description": "The file download service is currently unavailable.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/files/categories": { "get": { "tags": [ "Files" ], "summary": "Retrieve all categories", "description": "Retrieves a list of file categories.\r\n

Required permission(s):

Documents > Files - `View`", "operationId": "GetFileCategories", "parameters": [ { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/FileCategoryMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "post": { "tags": [ "Files" ], "summary": "Create a category", "description": "Creates a file category.\r\n

Required permission(s):

Documents > Files - `View` `Edit`", "operationId": "CreateFileCategory", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FileCategoryPostMessage" } } }, "required": true }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FileCategoryMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/files/categories/{fileCategoryId}": { "get": { "tags": [ "Files" ], "summary": "Retrieve a category", "description": "Retrieves a specific file category.\r\n

Required permission(s):

Documents > Files - `View`", "operationId": "GetFileCategoryById", "parameters": [ { "name": "fileCategoryId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FileCategoryMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "put": { "tags": [ "Files" ], "summary": "Update a category", "description": "Updates a file category. Note that file categories where `IsEditable` is `false` can not be updated.\r\n

NOTE: Any field not included in the update request will be set to either an empty string or `null` in the database depending on the field definition.
The recommended workflow to ensure no data is inadvertently overwritten is to execute a `GET` request for the resource you're about to update and then use this response to fill any of the fields that are not being updated.\r\n

Required permission(s):

Documents > Files - `View` `Edit`", "operationId": "UpdateFileCategory", "parameters": [ { "name": "fileCategoryId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FileCategoryPutMessage" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FileCategoryMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/files/uploadrequests": { "post": { "tags": [ "Files" ], "summary": "Upload a file", "description": "Uploading a file requires making two API requests. Each step is outlined below.\r\n

Step 1 - Save file metadata
\r\nThe first step in the file upload process is to submit the file metadata to `/v1/files/uploadrequests`. The response of this call will contain a URL and a collection of form data that will be used in step 2 to generate the request for the file binary upload.\r\n

NOTE: The response data will expire after 5 minutes. The file metadata will not be saved in the Buildium system if step 2 of this process is not completed successfully.\r\n

Step 2 - Upload the file binary
\r\nUploading the file binary will require using the response from step 1 to form a POST request to the Buildium file provider. Follow these steps to create the request:\r\n
\r\n1. Form a POST request using the value of the `BucketUrl` property as the URL. \r\n

\r\n2. Set the `Content-Type` header to `multipart/form-data`.\r\n

\r\n3. Copy the fields from the `FormData` property to this request as form-data key/value pairs.\r\n
NOTE: These values must added to the request form-data in the order they were received in the response.\r\n

\r\n4. Lastly create a form-data key named `file` and set the value to the file binary.\r\n
NOTE: This must be the last field in the form-data list.\r\n

This image shows what the POST request should look like if you're using Postman:\r\n

\r\n5. Send the POST request! A successful request will return with a `204 - NO CONTENT` HTTP response code. For any failure responses, please refer to AWS documentation on REST error responses.\r\n

Required permission(s):

Documents > Files - `View` `Edit`", "operationId": "CreateUploadFileRequestAsync", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FileUploadPostMessage" } } }, "required": true }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FileUploadTicketMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/generalledger/journalentries": { "post": { "tags": [ "Accounting" ], "summary": "Create a general journal entry", "description": "Creates a general journal entry.\r\n

Required permission(s):

Accounting > General Ledger Transactions - `View` `Edit`", "operationId": "CreateGeneralJournalEntry", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GeneralJournalEntryPostMessage" } } }, "required": true }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GeneralLedgerTransactionMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/generalledger/journalentries/{journalEntryId}": { "put": { "tags": [ "Accounting" ], "summary": "Update a general journal entry", "description": "Updates a general journal entry.\r\n

Required permission(s):

Accounting > General Ledger Transactions - `View` `Edit`", "operationId": "UpdateGeneralJournalEntry", "parameters": [ { "name": "journalEntryId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GeneralJournalEntryPutMessage" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GeneralLedgerTransactionMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/generalledger/transactions": { "get": { "tags": [ "Accounting" ], "summary": "Retrieve all general ledger transactions", "description": "Retrieves a list of general ledger transactions.\r\n

Required permission(s):

Accounting > General Ledger Transactions - `View`", "operationId": "GetAllTransactions", "parameters": [ { "name": "selectionentityid", "in": "query", "description": "Filters results to any transaction containing journal lines for an entity associated with the specified entity id value. The id must be of the type specified in SelectionEntityType.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "selectionentitytype", "in": "query", "description": "Specifies the type of entity that SelectionEntityId refers to.", "required": false, "schema": { "type": "string", "enum": [ "Rental", "RentalOwner", "Association" ] } }, { "name": "startdate", "in": "query", "description": "Filters results to any transaction whose date is greater than or equal to the specified value.", "required": true, "schema": { "type": "string", "format": "date" } }, { "name": "enddate", "in": "query", "description": "Filters results to any transaction whose date is less than or equal to the specified value.", "required": true, "schema": { "type": "string", "format": "date" } }, { "name": "glaccountids", "in": "query", "description": "Filters results to transactions whose general ledger account belongs to the specified set of general ledger account ids.", "required": true, "explode": true, "schema": { "type": "array", "items": { "type": "integer", "format": "int32" } } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/GeneralLedgerTransactionMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/generalledger/transactions/{transactionId}": { "get": { "tags": [ "Accounting" ], "summary": "Retrieve a general ledger transaction", "description": "Retrieves a specific general ledger transaction.\r\n

Required permission(s):

Accounting > General Ledger Transactions - `View`", "operationId": "GetTransactionById", "parameters": [ { "name": "transactionId", "in": "path", "description": "The general ledger transaction identifier.", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GeneralLedgerTransactionMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/glaccounts": { "get": { "tags": [ "Accounting" ], "summary": "Retrieve all general ledger accounts", "description": "Retrieves a list of general ledger accounts.

General ledger accounts are used to categorize transactions for accounting purposes.\r\n

Required permission(s):

Accounting > General Ledger Accounts - `View`", "operationId": "GetAllGLAccounts", "parameters": [ { "name": "accounttypes", "in": "query", "description": "Filters results by the specified general ledger account types.", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "string", "enum": [ "Asset", "Liability", "Equity", "Income", "Expense" ] } } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/GLAccountMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "post": { "tags": [ "Accounting" ], "summary": "Create a general ledger account", "description": "Creates a general ledger account.\r\n

Required permission(s):

Accounting > General Ledger Accounts - `View` `Edit`", "operationId": "CreateGeneralLedgerAccount", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GLAccountPostMessage" } } }, "required": true }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GLAccountMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/glaccounts/{glAccountId}": { "get": { "tags": [ "Accounting" ], "summary": "Retrieve a general ledger account", "description": "Retrieves a specific general ledger account.\r\n

Required permission(s):

Accounting > General Ledger Accounts - `View`", "operationId": "GetGlAccountById", "parameters": [ { "name": "glAccountId", "in": "path", "description": "The general ledger account identifier.", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GLAccountMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "put": { "tags": [ "Accounting" ], "summary": "Update a general ledger account", "description": "Updates a general ledger account.\r\n

Required permission(s):

Accounting > General Ledger Accounts - `View` `Edit`", "operationId": "UpdateGLAccount", "parameters": [ { "name": "glAccountId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GLAccountPutMessage" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GLAccountMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/glaccounts/balances": { "get": { "tags": [ "Accounting" ], "summary": "Retrieve all general ledger account balances", "description": "Retrieves all general ledger account balances as of a given date. The response includes the total balance of each account along with the subtotals for any accounting entities (company, associations or rental properties) that have transactions assigned to the account.\r\n

Required permission(s):

Accounting > General Ledger Accounts - `View`", "operationId": "GetGlAccountBalances", "parameters": [ { "name": "entitytype", "in": "query", "description": "Specifies the type of entity that `EntityId` field refers to.", "required": false, "schema": { "type": "string", "enum": [ "Association", "Rental", "RentalOwner" ] } }, { "name": "entityid", "in": "query", "description": "Filters transactions used in calculating the general ledger account balances to only those containing journal lines for with the specified entity id value. The entity id specified must be of the type specified in `EntityType`.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "glaccountids", "in": "query", "description": "Filters results to the specified set of general ledger account identifiers.", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "integer", "format": "int32" } } }, { "name": "accountingbasis", "in": "query", "description": "The methodology in which revenues and expenses are recognized when calculating the balances. Specifying `Cash` calculates balances based on when money changes hands. Specifying `Accrual` calculates balances based on the period in which the transaction originally happened.", "required": true, "schema": { "type": "string", "enum": [ "Accrual", "Cash" ] } }, { "name": "asofdate", "in": "query", "description": "Indicates the end date through which the balances will be calculated. This will include all transactions in your account until this specified date.", "required": true, "schema": { "type": "string", "format": "date" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/GLAccountBalanceMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/leases": { "get": { "tags": [ "Leases" ], "summary": "Retrieve all leases", "description": "Retrieves a list of leases.\r\n

Rentals > Leases - `View`", "operationId": "GetLeases", "parameters": [ { "name": "propertyids", "in": "query", "description": "Filters results to any lease whose unit belongs to the specified set of property ids.", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "integer", "format": "int32" } } }, { "name": "rentalownerids", "in": "query", "description": "Filters results to any lease whose unit belongs to a property with a rental owner in the specified set of rental owner ids.", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "integer", "format": "int32" } } }, { "name": "unitnumber", "in": "query", "description": "Filters results to any lease whose unit number *contains* the specified value.", "required": false, "schema": { "type": "string" } }, { "name": "tenantname", "in": "query", "description": "Filters results to any lease whose current tenants' names *contain* the specified value.", "required": false, "schema": { "type": "string" } }, { "name": "leasedatefrom", "in": "query", "description": "Filters results to any lease whose start date is greater than or equal to the specified value.", "required": false, "schema": { "type": "string", "format": "date" } }, { "name": "leasedateto", "in": "query", "description": "Filters results to any lease whose end date is less than or equal to the specified value.", "required": false, "schema": { "type": "string", "format": "date" } }, { "name": "leasetypes", "in": "query", "description": "Filters results to any lease whose lease type matches the specified status. If no type is specified, leases with any type will be returned.", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "string", "enum": [ "None", "Fixed", "FixedWithRollover", "AtWill" ] } } }, { "name": "leasestatuses", "in": "query", "description": "Filters results to any lease whose lease term matches the specified status. If no status is specified, leases with any lease term status will be returned.", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "string", "enum": [ "Active", "Past", "Future" ] } } }, { "name": "createddatetimefrom", "in": "query", "description": "Filters results to any lease whose created date and time are greater than or equal to the specified value. The value must be formatted as YYYY-MM-DD HH:MM:SS.", "required": false, "schema": { "type": "string", "format": "date-time" } }, { "name": "createddatetimeto", "in": "query", "description": "Filters results to any lease whose created date and time are less than or equal to the specified value. The value must be formatted as YYYY-MM-DD HH:MM:SS.", "required": false, "schema": { "type": "string", "format": "date-time" } }, { "name": "lastupdatedfrom", "in": "query", "description": "Filters results to any leases that were updated on or after the specified date. The value must be in UTC and formatted as YYYY-MM-DDTHH:MM:SSZ.", "required": false, "schema": { "type": "string", "format": "date-time" } }, { "name": "lastupdatedto", "in": "query", "description": "Filters results to any leases that were updated on or before the specified date. The value must be in UTC and formatted as YYYY-MM-DDTHH:MM:SSZ.", "required": false, "schema": { "type": "string", "format": "date-time" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/LeaseMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "post": { "tags": [ "Leases" ], "summary": "Create a lease", "description": "Creates a signed lease.\r\n

Rentals > Leases - `View` `Edit`\r\n
Rentals > Tenants - `View` `Edit`\r\n
Rentals > Lease transactions - `View` `Edit`", "operationId": "CreateLease", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LeasePostMessage" } } }, "required": true }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LeaseMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/leases/{leaseId}": { "get": { "tags": [ "Leases" ], "summary": "Retrieve a lease", "description": "Retrieves a specific lease.\r\n

Rentals > Leases - `View`", "operationId": "GetLeaseById", "parameters": [ { "name": "leaseId", "in": "path", "description": "The lease identifier.", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LeaseMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "put": { "tags": [ "Leases" ], "summary": "Update a lease", "description": "Update a signed lease.\r\n

NOTE: Any field not included in the update request will be set to either an empty string or `null` in the database depending on the field definition.
The recommended workflow to ensure no data is inadvertently overwritten is to execute a `GET` request for the resource you're about to update and then use this response to fill any of the fields that are not being updated.\r\n

Rentals > Leases - `View` `Edit`", "operationId": "UpdateLease", "parameters": [ { "name": "leaseId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LeasePutMessage" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LeaseMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/leases/{leaseId}/applieddeposits": { "post": { "tags": [ "Leases" ], "summary": "Create a deposit withholding", "description": "Withholds a resident deposit by reallocating the funds from a liability account to an income account to cover an expense(s).\r\n

Required permission(s):

Rentals > Lease Ledger - `View` `Edit`\r\n Accounting > General Ledger Accounts - `View`", "operationId": "CreateLeaseLedgerDepositWithholding", "parameters": [ { "name": "leaseId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LeaseLedgerDepositWithholdingPostMessage" } } }, "required": true }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LeaseTransactionMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/leases/{leaseId}/charges": { "post": { "tags": [ "Leases" ], "summary": "Create a charge", "description": "Creates a charge transaction on a specific lease ledger.\r\n

Required permission(s):

Rentals > Lease transactions - `View` `Edit`", "operationId": "CreateLeaseLedgerCharge", "parameters": [ { "name": "leaseId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LeaseChargePostMessage" } } }, "required": true }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/LeaseTransactionMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Lease not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/leases/{leaseId}/charges/{chargeId}": { "put": { "tags": [ "Leases" ], "summary": "Update a charge", "description": "Updates a charge.\r\n

Required permission(s):

Rentals > Lease transactions - `View` `Edit`", "operationId": "UpdateLeaseCharge", "parameters": [ { "name": "leaseId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "chargeId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LeaseChargePutMessage" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LeaseTransactionMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/leases/{leaseId}/credits": { "post": { "tags": [ "Leases" ], "summary": "Create a credit", "description": "Creates a lease ledger credit.\r\n

Required permission(s):

Rentals > Lease transactions - `View` `Edit`", "operationId": "CreateLeaseCredit", "parameters": [ { "name": "leaseId", "in": "path", "description": "The lease unique identifier.", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LeaseLedgerCreditPostMessage" } } }, "required": true }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LeaseTransactionMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/leases/{leaseId}/moveouts": { "get": { "tags": [ "Leases" ], "summary": "Retrieve all move outs", "description": "Retrieves a list of move out dates for a given lease.\r\n

Required permission(s):

Rentals > Leases - `View`\r\n
Rentals > Tenants - `View`", "operationId": "GetLeaseMoveOutInformationById", "parameters": [ { "name": "leaseId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/LeaseMoveOutDataMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "post": { "tags": [ "Leases" ], "summary": "Create a move out", "description": "Creates move out data for a single tenant on a given lease.\r\n

Required permission(s):

Rentals > Leases - `View` `Edit`\r\n
Rentals > Tenants - `View` `Edit`", "operationId": "CreateMoveOutData", "parameters": [ { "name": "leaseId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LeaseMoveOutDataPostMessage" } } }, "required": true }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LeaseMoveOutDataMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/leases/{leaseId}/moveouts/{tenantId}": { "get": { "tags": [ "Leases" ], "summary": "Retrieve a move out", "description": "Retrieves move out data for a single tenant on a given lease.\r\n

Required permission(s):

Rentals > Leases - `View`\r\n
Rentals > Tenants - `View`", "operationId": "GetLeaseMoveOutDataByTenantId", "parameters": [ { "name": "leaseId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "tenantId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LeaseMoveOutDataMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "delete": { "tags": [ "Leases" ], "summary": "Delete a move out", "description": "Deletes move out data for a tenant on a given lease.\r\n

Required Permission(s):

Rentals > Leases - `View` `Edit`\r\n
Rentals > Tenants - `View`", "operationId": "UndoTenantMoveout", "parameters": [ { "name": "leaseId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "tenantId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "204": { "description": "OK - No Content." }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/leases/{leaseId}/notes": { "get": { "tags": [ "Leases" ], "summary": "Retrieve all notes", "description": "Retrieves all lease notes.\r\n

Required permission(s):

Rentals > Leases - `View`", "operationId": "GetLeaseNotes", "parameters": [ { "name": "leaseId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "updateddatetimefrom", "in": "query", "description": "Filters results to any note whose updated date and time are greater than or equal to the specified value. The value must be formatted as YYYY-MM-DD HH:MM:SS.", "required": false, "schema": { "type": "string", "format": "date-time" } }, { "name": "updateddatetimeto", "in": "query", "description": "Filters results to any note whose updated date and time are less than or equal to the specified value. The value must be formatted as YYYY-MM-DD HH:MM:SS.", "required": false, "schema": { "type": "string", "format": "date-time" } }, { "name": "lastupdatedbyuserid", "in": "query", "description": "Filters results to only notes that were last updated by the specified user identifier.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/NoteMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "post": { "tags": [ "Leases" ], "summary": "Create a note", "description": "Creates a lease note.\r\n

Required permission(s):

Rentals > Leases - `View` `Edit`", "operationId": "CreateLeaseNote", "parameters": [ { "name": "leaseId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "$ref": "#/components/requestBodies/NotePostMessage" }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NoteMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/leases/{leaseId}/notes/{noteId}": { "get": { "tags": [ "Leases" ], "summary": "Retrieve a note", "description": "Retrieves a lease note.\r\n

Required permission(s):

Rentals > Leases - `View`", "operationId": "GetLeaseNoteByNoteId", "parameters": [ { "name": "leaseId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "noteId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NoteMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "put": { "tags": [ "Leases" ], "summary": "Update a note", "description": "Updates a lease note.\r\n

NOTE: Any field not included in the update request will be set to either an empty string or `null` in the database depending on the field definition.
The recommended workflow to ensure no data is inadvertently overwritten is to execute a `GET` request for the resource you're about to update and then use this response to fill any of the fields that are not being updated.\r\n

Required permission(s):

Rentals > Leases - `View` `Edit`", "operationId": "UpdateLeaseNote", "parameters": [ { "name": "leaseId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "noteId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "$ref": "#/components/requestBodies/NotePutMessage" }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NoteMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/leases/{leaseId}/payments": { "post": { "tags": [ "Leases" ], "summary": "Create a payment", "description": "Creates a lease ledger payment.\r\n

Required permission(s):

Rentals > Lease transactions - `View` `Edit`", "operationId": "CreatePayment", "parameters": [ { "name": "leaseId", "in": "path", "description": "The lease unique identifier.", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LeaseLedgerPaymentPostMessage" } } }, "required": true }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LeaseTransactionMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/leases/{leaseId}/recurringcharges": { "post": { "tags": [ "Leases" ], "summary": "Create a recurring charge", "description": "Creates a recurring charge transaction that will post automatically on the specified lease ledger.\r\n

Required permission(s):

Rentals > Lease transactions - `View` `Edit`", "operationId": "CreateLeaseChargeRecurringTransaction", "parameters": [ { "name": "leaseId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "$ref": "#/components/requestBodies/ChargeRecurringTransactionPostMessage" }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LeaseChargeRecurringTransactionMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/leases/{leaseId}/recurringcharges/{transactionId}": { "get": { "tags": [ "Leases" ], "summary": "Retrieve a recurring charge", "description": "Retrieves a recurring charge.\r\n

Required permission(s):

Rentals > Lease transactions - `View`", "operationId": "GetLeaseChargeRecurringTransactionById", "parameters": [ { "name": "leaseId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "transactionId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LeaseChargeRecurringTransactionMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/leases/{leaseId}/recurringcredits": { "post": { "tags": [ "Leases" ], "summary": "Create a recurring credit", "description": "Creates a recurring credit transaction on the specified lease ledger. \r\n

Required permission(s):

Rentals > Lease transactions - `View` `Edit`", "operationId": "CreateLeaseCreditRecurringTransaction", "parameters": [ { "name": "leaseId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "$ref": "#/components/requestBodies/CreditRecurringTransactionPostMessage" }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LeaseRecurringCreditMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/leases/{leaseId}/recurringcredits/{transactionId}": { "get": { "tags": [ "Leases" ], "summary": "Retrieve a recurring credit", "description": "Retrieves a recurring credit.\r\n

Required permission(s):

Rentals > Lease transactions - `View`", "operationId": "GetLeaseRecurringCreditById", "parameters": [ { "name": "leaseId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "transactionId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LeaseRecurringCreditMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/leases/{leaseId}/recurringpayments": { "post": { "tags": [ "Leases" ], "summary": "Create a recurring payment", "description": "Creates a recurring payment that will post automatically on the specified lease ledger.\r\n

Required permission(s):

Rentals > Lease Transactions - `View` `Edit`", "operationId": "CreateLeaseRecurringPayment", "parameters": [ { "name": "leaseId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "$ref": "#/components/requestBodies/PaymentRecurringTransactionPostMessage" }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LeaseRecurringPaymentMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/leases/{leaseId}/recurringpayments/{paymentId}": { "get": { "tags": [ "Leases" ], "summary": "Retrieve a recurring payment", "description": "Retrieves a recurring payment.\r\n

Required permission(s):

Rentals > Lease Transactions - `View`", "operationId": "GetRecurringLeasePaymentsById", "parameters": [ { "name": "leaseId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "paymentId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LeaseRecurringPaymentMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/leases/{leaseId}/recurringtransactions": { "get": { "tags": [ "Leases" ], "summary": "Retrieve all recurring transactions", "description": "Retrieves all recurring transactions.\r\n

Required permission(s):

Rentals > Lease transactions - `View`", "operationId": "GetLeaseRecurringTransactions", "parameters": [ { "name": "leaseId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/RecurringTransactionMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/leases/{leaseId}/refunds": { "post": { "tags": [ "Leases" ], "summary": "Create a refund", "description": "Creates a refund.\r\n

Required permission(s):

Accounting > Bank Accounts - `View` `Edit`", "operationId": "CreateLeaseLedgerRefund", "parameters": [ { "name": "leaseId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LeaseLedgerRefundPostMessage" } } }, "required": true }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LeaseLedgerRefundMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/leases/{leaseId}/refunds/{refundId}": { "get": { "tags": [ "Leases" ], "summary": "Retrieve a refund", "description": "Retrieves a refund.\r\n

Required permission(s):

Accounting > Bank Accounts - `View`", "operationId": "GetLeaseLedgerRefundById", "parameters": [ { "name": "leaseId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "refundId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LeaseLedgerRefundMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/leases/{leaseId}/renewals": { "get": { "tags": [ "Leases" ], "summary": "Retrieve all lease renewals", "description": "Retrieves all lease renewals.\r\n

Required permission(s):

Rentals > Leases - `View`", "operationId": "LeaseRenewalsExternalApiRead_GetAllLeaseRenewals", "parameters": [ { "name": "leaseId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/LeaseRenewalMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "post": { "tags": [ "Leases" ], "summary": "Create a lease renewal", "description": "Creates a lease renewal.\r\n

Required permission(s):

Rentals > Leases - `View` `Edit`", "operationId": "LeaseRenewalsExternalApiWrite_CreateLeaseRenewal", "parameters": [ { "name": "leaseId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LeaseRenewalPostMessage" } } }, "required": true }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LeaseRenewalMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "409": { "description": "There is a request conflict with the current state of the target resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/leases/{leaseId}/renewals/{renewalId}": { "get": { "tags": [ "Leases" ], "summary": "Retrieve a lease renewal", "description": "Retrieves a lease renewal.\r\n

Required permission(s):

Rentals > Leases - `View`", "operationId": "LeaseRenewalsExternalApiRead_GetLeaseRenewalById", "parameters": [ { "name": "leaseId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "renewalId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LeaseRenewalMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/leases/{leaseId}/rent": { "get": { "tags": [ "Leases" ], "summary": "Retrieve all rent schedules", "description": "The rent schedule provides details (dollar amount, day of the month, etc) of the recurring charges that are applied to the lease ledger each rent cycle. A lease may have more than one rent schedule associated with it if the rent terms change within the duration of the lease.\r\n

Required permission(s):

Rentals > Lease transactions - `View`", "operationId": "GetRent", "parameters": [ { "name": "leaseId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/LeaseRentMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/leases/{leaseId}/rent/{rentId}": { "get": { "tags": [ "Leases" ], "summary": "Retrieve a rent schedule", "description": "Retrieves a specific rent schedule for a lease. The rent schedule provides details (dollar amount, day of the month, etc) of the recurring charges that are applied to the lease ledger each rent cycle.\r\n

Required permission(s):

Rentals > Lease transactions - `View`", "operationId": "GetRentById", "parameters": [ { "name": "leaseId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "rentId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LeaseRentMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/leases/{leaseId}/reversepayments": { "post": { "tags": [ "Leases" ], "summary": "Create a payment reversal", "description": "Reverses a lease ledger payment. Note, this action can only be taken on a payment that has been deposited. \r\n

Required permission(s):

Rentals > Lease transactions - `View` `Edit`\r\n
Accounting > Bank Accounts - `View` `Edit`", "operationId": "CreateLeaseReversePayment", "parameters": [ { "name": "leaseId", "in": "path", "description": "The lease unique identifier.", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LeaseLedgerReversePaymentPostMessage" } } }, "required": true }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LeaseTransactionMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/leases/{leaseId}/transactions": { "get": { "tags": [ "Leases" ], "summary": "Retrieve all lease transactions", "description": "Retrieves all the transactions for a specific lease.\r\n

Required permission(s):

Rentals > Lease transactions - `View`", "operationId": "GetLeaseLedgers", "parameters": [ { "name": "leaseId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "transactiondatefrom", "in": "query", "description": "Filters results to any lease transaction whose start date is greater than or equal to the specified value.", "required": false, "schema": { "type": "string", "format": "date" } }, { "name": "transactiondateto", "in": "query", "description": "Filters results to any lease transaction whose end date is less than or equal to the specified value.", "required": false, "schema": { "type": "string", "format": "date" } }, { "name": "transactiontypes", "in": "query", "description": "Filters results to any lease transaction whose lease transaction type matches the specified status. If no type is specified, lease transactions with any type will be returned.", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "string", "enum": [ "Bill", "Check", "Charge", "Payment", "Credit", "Refund", "ApplyDeposit", "ElectronicFundsTransfer", "Other", "Deposit", "GeneralJournalEntry", "OwnerContribution", "ReversePayment", "ReverseElectronicFundsTransfer", "VendorCredit", "RentalApplicationFeePayment", "ReverseRentalApplicationFeePayment", "ReverseOwnerContribution", "VendorRefund", "UnreversedPayment", "UnreversedElectronicFundsTransfer", "UnreversedOwnerContribution", "UnreversedRentalApplicationFeePayment" ] } } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/LeaseTransactionMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/leases/{leaseId}/transactions/{transactionId}": { "get": { "tags": [ "Leases" ], "summary": "Retrieve a lease transaction", "description": "Retrieves a specific lease transaction.\r\n

Required permission(s):

Rentals > Lease Transactions - `View`", "operationId": "GetLeaseLedgerTransactionById", "parameters": [ { "name": "leaseId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "transactionId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LeaseTransactionMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/leases/outstandingbalances": { "get": { "tags": [ "Leases" ], "summary": "Retrieve all outstanding balances", "description": "Retrieves a list of lease outstanding balances.\r\n

Required permission(s):

Rentals > Outstanding Balances - `View`", "operationId": "GetLeaseOutstandingBalances", "parameters": [ { "name": "entitytype", "in": "query", "required": false, "schema": { "type": "string", "enum": [ "Rental", "RentalOwner" ] } }, { "name": "entityid", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "leasestatuses", "in": "query", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "string", "enum": [ "Active", "Past", "Future" ] } } }, { "name": "leaseids", "in": "query", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "integer", "format": "int32" } } }, { "name": "pastdueemail", "in": "query", "required": false, "schema": { "type": "string", "enum": [ "NoEmailAddress", "Sent" ] } }, { "name": "balanceduration", "in": "query", "required": false, "schema": { "type": "string", "enum": [ "TotalBalance", "Balance0to30Days", "Balance31to60Days", "Balance61to90Days", "BalanceOver90Days" ] } }, { "name": "evictionstatus", "in": "query", "required": false, "schema": { "type": "string", "enum": [ "NotEvictionPending", "EvictionPending" ] } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/LeaseOutstandingBalanceMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/leases/tenants": { "get": { "tags": [ "Rental Tenants" ], "summary": "Retrieve all tenants", "description": "Retrieves a list of tenants.\r\n

Required permission(s):

Rentals > Tenants - `View`", "operationId": "GetAllTenants", "parameters": [ { "name": "buildingstatuses", "in": "query", "description": "Filters results by the status of the rental property the tenants are associated with. If no status is specified tenants in either `active` and `inactive` rental properties will be returned.", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "string", "enum": [ "Active", "InActive" ] } } }, { "name": "leasetermstatuses", "in": "query", "description": "Filters results to any tenant whose lease term matches the specified status. If no status is specified tenants with any lease terms status will be returned.", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "string", "enum": [ "Active", "Past", "Future" ] } } }, { "name": "unitnumber", "in": "query", "description": "Filters results to any tenant whose unit number *contains* the specified value.", "required": false, "schema": { "type": "string" } }, { "name": "name", "in": "query", "description": "Filters results to any tenant whose name *contains* the specified value.", "required": false, "schema": { "type": "string" } }, { "name": "phone", "in": "query", "description": "Filters results to any tenant whose phone number *contains* the specified value.", "required": false, "schema": { "type": "string" } }, { "name": "email", "in": "query", "description": "Filters results to any tenant whose email *contains* the specified value.", "required": false, "schema": { "type": "string" } }, { "name": "propertyids", "in": "query", "description": "Filters results to tenants whose rental unit belongs to the specified set of property ids.", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "integer", "format": "int32" } } }, { "name": "rentalownerids", "in": "query", "description": "Filters results to tenants whose rental unit belongs to a property with a rental owner in the specified set of rental owner ids.", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "integer", "format": "int32" } } }, { "name": "lastupdatedfrom", "in": "query", "description": "Filters results to any rental tenants that were updated on or after the specified date. The value must be in UTC and formatted as YYYY-MM-DDTHH:MM:SSZ.", "required": false, "schema": { "type": "string", "format": "date-time" } }, { "name": "lastupdatedto", "in": "query", "description": "Filters results to any rental tenants that were updated on or before the specified date. The value must be in UTC and formatted as YYYY-MM-DDTHH:MM:SSZ.", "required": false, "schema": { "type": "string", "format": "date-time" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/TenantMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "post": { "tags": [ "Rental Tenants" ], "summary": "Create a tenant", "description": "Creates a rental tenant.\r\n

Required permission(s):

Rentals > Tenants - `View` `Edit`\r\n
Rentals > Leases - `View` `Edit`", "operationId": "CreateRentalTenant", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RentalTenantPostMessage" } } }, "required": true }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TenantMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/leases/tenants/{tenantId}": { "get": { "tags": [ "Rental Tenants" ], "summary": "Retrieve a tenant", "description": "Retrieve a specific tenant.\r\n

Required permission(s):

Rentals > Tenants - `View`", "operationId": "GetTenantById", "parameters": [ { "name": "tenantId", "in": "path", "description": "The tenant identifier.", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TenantMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "put": { "tags": [ "Rental Tenants" ], "summary": "Update a tenant", "description": "Updates a rental tenant.\r\n

NOTE: Any field not included in the update request will be set to either an empty string or `null` in the database depending on the field definition.
The recommended workflow to ensure no data is inadvertently overwritten is to execute a `GET` request for the resource you're about to update and then use this response to fill any of the fields that are not being updated.\r\n

Required permission(s):

Rentals > Tenants - `View` `Edit`", "operationId": "UpdateRentalTenant", "parameters": [ { "name": "tenantId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RentalTenantPutMessage" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TenantMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/leases/tenants/{tenantId}/notes": { "get": { "tags": [ "Rental Tenants" ], "summary": "Retrieve all notes", "description": "Retrieves all tenant notes.\r\n

Required permission(s):

Rentals > Tenants - `View`", "operationId": "GetAllTenantNotes", "parameters": [ { "name": "tenantId", "in": "path", "description": "The tenant identifier.", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "updateddatetimefrom", "in": "query", "description": "Filters results to any note whose updated date and time are greater than or equal to the specified value. The value must be formatted as YYYY-MM-DD HH:MM:SS.", "required": false, "schema": { "type": "string", "format": "date-time" } }, { "name": "updateddatetimeto", "in": "query", "description": "Filters results to any note whose updated date and time are less than or equal to the specified value. The value must be formatted as YYYY-MM-DD HH:MM:SS.", "required": false, "schema": { "type": "string", "format": "date-time" } }, { "name": "lastupdatedbyuserid", "in": "query", "description": "Filters results to only notes that were last updated by the specified user identifier.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/NoteMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "post": { "tags": [ "Rental Tenants" ], "summary": "Create a note", "description": "Creates a tenant note.\r\n

Required permission(s):

Rentals > Tenants - `View` `Edit`", "operationId": "CreateTenantNote", "parameters": [ { "name": "tenantId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "$ref": "#/components/requestBodies/NotePostMessage" }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NoteMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/leases/tenants/{tenantId}/notes/{noteId}": { "get": { "tags": [ "Rental Tenants" ], "summary": "Retrieve a note", "description": "Retrieves a tenant note.\r\n

Required permission(s):

Rentals > Tenants - `View`", "operationId": "GetTenantNoteById", "parameters": [ { "name": "tenantId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "noteId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NoteMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "put": { "tags": [ "Rental Tenants" ], "summary": "Update a note", "description": "Updates a tenant note.\r\n

NOTE: Any field not included in the update request will be set to either an empty string or `null` in the database depending on the field definition.
The recommended workflow to ensure no data is inadvertently overwritten is to execute a `GET` request for the resource you're about to update and then use this response to fill any of the fields that are not being updated.\r\n

Required permission(s):

Rentals > Tenants - `View` `Edit`", "operationId": "UpdateLeaseTenantNote", "parameters": [ { "name": "tenantId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "noteId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "$ref": "#/components/requestBodies/NotePutMessage" }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NoteMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/propertygroups": { "get": { "tags": [ "Property Groups" ], "summary": "Retrieve all property groups", "description": "Retrieves all property groups.\r\n

Required permission(s):

Rentals > Rental properties and units or - `View`\r\n Associations > Associations and units - `View`", "operationId": "GetPropertyGroups", "parameters": [ { "name": "propertyids", "in": "query", "description": "Filters results to property groups that contain any of the specified property ids.", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "integer", "format": "int32" } } }, { "name": "nameordescription", "in": "query", "description": "Filters results to any property group whose name or description contains the specified value.", "required": false, "schema": { "type": "string" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/PropertyGroupMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "post": { "tags": [ "Property Groups" ], "summary": "Create a property group", "description": "Creates a property group.\r\n

Required permission(s):

Rentals > Rental properties and units or - `View` `Edit`\r\n Associations > Associations and units - `View` `Edit`", "operationId": "CreatePropertyGroup", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PropertyGroupPostMessage" } } }, "required": true }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PropertyGroupMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/propertygroups/{propertyGroupId}": { "get": { "tags": [ "Property Groups" ], "summary": "Retrieve a property group", "description": "Retrieves a property group.\r\n

Required permission(s):

Rentals > Rental properties and units or - `View`\r\n Associations > Associations and units - `View`", "operationId": "GetPropertyGroupById", "parameters": [ { "name": "propertyGroupId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PropertyGroupMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "put": { "tags": [ "Property Groups" ], "summary": "Update a property group", "description": "Updates a property group.\r\n

Required permission(s):

Rentals > Rental properties and units or - `View` `Edit`\r\n Associations > Associations and units - `View` `Edit`", "operationId": "UpdatePropertyGroup", "parameters": [ { "name": "propertyGroupId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PropertyGroupPutMessage" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PropertyGroupMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/rentals": { "get": { "tags": [ "Rental Properties" ], "summary": "Retrieve all properties", "description": "Retrieves a list of rental properties.\r\n

Required permission(s):

Rentals > Rental properties and units - `View`", "operationId": "GetAllRentals", "parameters": [ { "name": "location", "in": "query", "description": "Filters results to only rental properties whose city or state *contains* the specified value.", "required": false, "schema": { "type": "string" } }, { "name": "types", "in": "query", "description": "Filters results by the rental type. If no type is provided all types will be returned.", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "string", "enum": [ "Residential", "Commercial" ] } } }, { "name": "subtypes", "in": "query", "description": "Filters results by the sub type of the rental property. If no sub type is specified all sub types will be returned.", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "string", "enum": [ "CondoTownhome", "MultiFamily", "SingleFamily", "Industrial", "Office", "Retail", "ShoppingCenter", "Storage", "ParkingSpace" ] } } }, { "name": "status", "in": "query", "description": "Filters results by the status of the rental property. If no status is specified both `active` and `inactive` rental properties will be returned.", "required": false, "schema": { "type": "string", "enum": [ "Active", "InActive" ] } }, { "name": "rentalownerids", "in": "query", "description": "Filters results to only rental properties whose RentalOwnerId matches the specified Id.", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "integer", "format": "int32" } } }, { "name": "propertyids", "in": "query", "description": "Filters results to only rental properties units whose Rental matches the specified Id.", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "integer", "format": "int32" } } }, { "name": "lastupdatedfrom", "in": "query", "description": "Filters results to any rental properties that were updated on or after the specified date. The value must be in UTC and formatted as YYYY-MM-DDTHH:MM:SSZ.", "required": false, "schema": { "type": "string", "format": "date-time" } }, { "name": "lastupdatedto", "in": "query", "description": "Filters results to any rental properties that were updated on or before the specified date. The value must be in UTC and formatted as YYYY-MM-DDTHH:MM:SSZ.", "required": false, "schema": { "type": "string", "format": "date-time" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/RentalMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "post": { "tags": [ "Rental Properties" ], "summary": "Create a property", "description": "Creates a new rental property.\r\n

Required permission(s):

Rentals > Rental properties and units - `View` `Edit`", "operationId": "CreateRentalProperty", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RentalPropertyPostMessage" } } }, "required": true }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } }, "Link": { "description": "Contains the location of the unit created for the rental property.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RentalMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/rentals/{propertyId}": { "get": { "tags": [ "Rental Properties" ], "summary": "Retrieve a property", "description": "Retrieve a specific rental property.\r\n

Required permission(s):

Rentals > Rental properties and units - `View`", "operationId": "GetRentalById", "parameters": [ { "name": "propertyId", "in": "path", "description": "The rental property identifier.", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RentalMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "put": { "tags": [ "Rental Properties" ], "summary": "Update a property", "description": "Updates a rental property.\r\n

NOTE: Any field not included in the update request will be set to either an empty string or `null` in the database depending on the field definition.
The recommended workflow to ensure no data is inadvertently overwritten is to execute a `GET` request for the resource you're about to update and then use this response to fill any of the fields that are not being updated.\r\n

Required permission(s):

Rentals > Rental properties and units - `View` `Edit`", "operationId": "UpdateRentalProperty", "parameters": [ { "name": "propertyId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RentalPropertyPutMessage" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RentalMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/rentals/{propertyId}/amenities": { "get": { "tags": [ "Rental Properties" ], "summary": "Retrieve all amenities", "description": "Retrieve all the amenities for a rental property.\r\n

Required permission(s):

Rentals > Rental properties and units - `View`", "operationId": "GetFeaturesByRentalPropertyId", "parameters": [ { "name": "propertyId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RentalFeaturesMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "put": { "tags": [ "Rental Properties" ], "summary": "Update amenities", "description": "Updates the amenities for a rental property.\r\n

NOTE: Any field not included in the update request will be set to either an empty string or `null` in the database depending on the field definition.
The recommended workflow to ensure no data is inadvertently overwritten is to execute a `GET` request for the resource you're about to update and then use this response to fill any of the fields that are not being updated.\r\n

Required permission(s):

Rentals > Rental properties and units - `View` `Edit`", "operationId": "UpdateRentalFeatures", "parameters": [ { "name": "propertyId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RentalFeaturesPutMessage" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RentalFeaturesMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/rentals/{propertyId}/notes": { "get": { "tags": [ "Rental Properties" ], "summary": "Retrieve all notes", "description": "Retrieves all notes.\r\n

Required permission(s):

Rentals > Rental properties and units - `View`", "operationId": "GetRentalNotes", "parameters": [ { "name": "propertyId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "updateddatetimefrom", "in": "query", "description": "Filters results to any note whose updated date and time are greater than or equal to the specified value. The value must be formatted as YYYY-MM-DD HH:MM:SS.", "required": false, "schema": { "type": "string", "format": "date-time" } }, { "name": "updateddatetimeto", "in": "query", "description": "Filters results to any note whose updated date and time are less than or equal to the specified value. The value must be formatted as YYYY-MM-DD HH:MM:SS.", "required": false, "schema": { "type": "string", "format": "date-time" } }, { "name": "lastupdatedbyuserid", "in": "query", "description": "Filters results to only notes that were last updated by the specified user identifier.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/NoteMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "post": { "tags": [ "Rental Properties" ], "summary": "Create a note", "description": "Creates a note.\r\n

Required permission(s):

Rentals > Rental properties and units - `View` `Edit`", "operationId": "CreateRentalPropertyNote", "parameters": [ { "name": "propertyId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "$ref": "#/components/requestBodies/NotePostMessage" }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NoteMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/rentals/{propertyId}/notes/{noteId}": { "get": { "tags": [ "Rental Properties" ], "summary": "Retrieve a note", "description": "Retrieves a note.\r\n

Required permission(s):

Rentals > Rental properties and units - `View`", "operationId": "GetRentalNoteByNoteId", "parameters": [ { "name": "propertyId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "noteId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NoteMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "put": { "tags": [ "Rental Properties" ], "summary": "Update a note", "description": "Updates a note.\r\n

NOTE: Any field not included in the update request will be set to either an empty string or `null` in the database depending on the field definition.
The recommended workflow to ensure no data is inadvertently overwritten is to execute a `GET` request for the resource you're about to update and then use this response to fill any of the fields that are not being updated.\r\n

Required permission(s):

Rentals > Rental properties and units - `View` `Edit`", "operationId": "UpdateRentalPropertyNote", "parameters": [ { "name": "propertyId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "noteId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "$ref": "#/components/requestBodies/NotePutMessage" }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NoteMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/rentals/{propertyId}/vendors": { "get": { "tags": [ "Rental Properties" ], "summary": "Retrieve all preferred vendors", "description": "Retrieves all preferred vendors.\r\n

Required permission(s):

Rentals > Rental properties and units - `View`\r\n
Maintenance > Vendors - `View`", "operationId": "GetRentalPreferredVendors", "parameters": [ { "name": "propertyId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/RentalPreferredVendorMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "put": { "tags": [ "Rental Properties" ], "summary": "Update preferred vendors", "description": "Updates preferred vendors.\r\n

Required permission(s):

Rentals > Rental properties and units - `View` `Edit`\r\n
Maintenance > Vendors - `View` `Edit`", "operationId": "UpdateRentalPreferredVendors", "parameters": [ { "name": "propertyId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RentalPreferredVendorPutMessage" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/RentalPreferredVendorMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/rentals/appliances": { "get": { "tags": [ "Rental Appliances" ], "summary": "Retrieve all appliances", "description": "Retrieves all rental appliances.\r\n

Required permission(s):

Rentals > Rental properties and units - `View`", "operationId": "GetRentalAppliances", "parameters": [ { "name": "propertyids", "in": "query", "description": "Filters results to appliances associated to any of the specified rental property identifiers.", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "integer", "format": "int32" } } }, { "name": "unitids", "in": "query", "description": "Filters results to appliances associated to any of the specified rental unit identifiers.", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "integer", "format": "int32" } } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/RentalApplianceMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "post": { "tags": [ "Rental Appliances" ], "summary": "Create an appliance", "description": "Creates a rental property appliance.\r\n

Required permission(s):

Rentals > Rental properties and units - `View` `Edit`", "operationId": "CreateRentalAppliance", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RentalAppliancePostMessage" } } }, "required": true }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RentalApplianceMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/rentals/appliances/{applianceId}": { "get": { "tags": [ "Rental Appliances" ], "summary": "Retrieve an appliance", "description": "Retrieves a rental appliance.\r\n

Required permission(s):

Rentals > Rental properties and units - `View`", "operationId": "GetRentalApplianceById", "parameters": [ { "name": "applianceId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RentalApplianceMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "put": { "tags": [ "Rental Appliances" ], "summary": "Update an appliance", "description": "Updates a rental appliance.\r\n

NOTE: Any field not included in the update request will be set to either an empty string or `null` in the database depending on the field definition.
The recommended workflow to ensure no data is inadvertently overwritten is to execute a `GET` request for the resource you're about to update and then use this response to fill any of the fields that are not being updated.\r\n

Required permission(s):

Rentals > Rental properties and units - `View` `Edit`", "operationId": "UpdateRentalAppliance", "parameters": [ { "name": "applianceId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RentalAppliancePutMessage" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RentalApplianceMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "delete": { "tags": [ "Rental Appliances" ], "summary": "Delete an appliance", "description": "Deletes an appliance.\r\n

Required permission(s):

Rentals > Rental properties and units - `View` `Edit`", "operationId": "DeleteRentalAppliances", "parameters": [ { "name": "applianceId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "204": { "description": "OK - No Content." }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/rentals/appliances/{applianceId}/servicehistory": { "get": { "tags": [ "Rental Appliances" ], "summary": "Retrieve all service history", "description": "Retrieves all of the service history records for an appliance.\r\n

Required permission(s):

Rentals > Rental properties and units - `View`", "operationId": "GetRentalApplianceServiceHistory", "parameters": [ { "name": "applianceId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/RentalApplianceServiceHistoryMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "post": { "tags": [ "Rental Appliances" ], "summary": "Create a service history", "description": "Creates a service history record for an appliance.\r\n

Required permission(s):

Rentals > Rental properties and units - `View` `Edit`", "operationId": "CreateRentalApplianceServiceHistory", "parameters": [ { "name": "applianceId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RentalApplianceServiceHistoryPostMessage" } } }, "required": true }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RentalApplianceServiceHistoryMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/rentals/appliances/{applianceId}/servicehistory/{serviceHistoryId}": { "get": { "tags": [ "Rental Appliances" ], "summary": "Retrieve a service history", "description": "Retrieves a specific service history record for a given appliance.\r\n

Required permission(s):

Rentals > Rental properties and units - `View`", "operationId": "GetRentalApplianceServiceHistoryById", "parameters": [ { "name": "applianceId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "serviceHistoryId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RentalApplianceServiceHistoryMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/rentals/owners": { "get": { "tags": [ "Rental Owners" ], "summary": "Retrieve all owners", "description": "Retrieves a list of rental owners.\r\n

Required permission(s):

Rentals > Property Rental Owners - `View`", "operationId": "GetRentalOwners", "parameters": [ { "name": "propertyids", "in": "query", "description": "Filters results to any lease whose unit belongs to the specified set of property ids.", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "integer", "format": "int32" } } }, { "name": "status", "in": "query", "description": "Filters results by the status of the user. If no status is specified both `active` and `inactive` users will be returned.", "required": false, "schema": { "type": "string", "enum": [ "Inactive", "Active" ] } }, { "name": "agreementdaysremaining", "in": "query", "description": "Filters results by the days remaining on their lease agreement.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "ownername", "in": "query", "description": "Filters results to any owner whose name *contains* the specified value.", "required": false, "schema": { "type": "string" } }, { "name": "phone", "in": "query", "description": "Filters results to any owner who has a phone number that *contains* the specified value.", "required": false, "schema": { "type": "string" } }, { "name": "lastupdatedfrom", "in": "query", "description": "Filters results to any rental owners that were updated on or after the specified date. The value must be in UTC and formatted as YYYY-MM-DDTHH:MM:SSZ.", "required": false, "schema": { "type": "string", "format": "date-time" } }, { "name": "lastupdatedto", "in": "query", "description": "Filters results to any rental owners that were updated on or before the specified date. The value must be in UTC and formatted as YYYY-MM-DDTHH:MM:SSZ.", "required": false, "schema": { "type": "string", "format": "date-time" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/RentalOwnerMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "post": { "tags": [ "Rental Owners" ], "summary": "Create an owner", "description": "Creates a rental owner.\r\n

Required permission(s):

Rentals > Property Rental Owners - `View` `Edit`", "operationId": "CreateRentalOwner", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RentalOwnerPostMessage" } } }, "required": true }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RentalOwnerMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/rentals/owners/{rentalOwnerId}": { "get": { "tags": [ "Rental Owners" ], "summary": "Retrieve an owner", "description": "Retrieves a specific rental owner.\r\n

Required permission(s):

Rentals > Property Rental Owners - `View`", "operationId": "GetRentalOwnerById", "parameters": [ { "name": "rentalOwnerId", "in": "path", "description": "The rental owner identifier.", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RentalOwnerMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "put": { "tags": [ "Rental Owners" ], "summary": "Update an owner", "description": "Updates a rental owner.\r\n

NOTE: Any field not included in the update request will be set to either an empty string or `null` in the database depending on the field definition.
The recommended workflow to ensure no data is inadvertently overwritten is to execute a `GET` request for the resource you're about to update and then use this response to fill any of the fields that are not being updated.\r\n

Required permission(s):

Rentals > Property Rental Owners - `View` `Edit`", "operationId": "UpdateRentalOwner", "parameters": [ { "name": "rentalOwnerId", "in": "path", "description": "The identifier of the rental owner to update.", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RentalOwnerPutMessage" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RentalOwnerMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/rentals/owners/{rentalOwnerId}/notes": { "get": { "tags": [ "Rental Owners" ], "summary": "Retrieves all notes", "description": "Retrieves all rental owner notes.\r\n

Required permission(s):

Rentals > Property Rental Owners - `View`", "operationId": "GetRentalOwnerNotes", "parameters": [ { "name": "rentalOwnerId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "updateddatetimefrom", "in": "query", "description": "Filters results to any note whose updated date and time are greater than or equal to the specified value. The value must be formatted as YYYY-MM-DD HH:MM:SS.", "required": false, "schema": { "type": "string", "format": "date-time" } }, { "name": "updateddatetimeto", "in": "query", "description": "Filters results to any note whose updated date and time are less than or equal to the specified value. The value must be formatted as YYYY-MM-DD HH:MM:SS.", "required": false, "schema": { "type": "string", "format": "date-time" } }, { "name": "lastupdatedbyuserid", "in": "query", "description": "Filters results to only notes that were last updated by the specified user identifier.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/NoteMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "post": { "tags": [ "Rental Owners" ], "summary": "Create a note", "description": "Creates a new Rental Owner note.\r\n

Required permission(s):

Rentals > Property Rental Owners - `View` `Edit`", "operationId": "CreateRentalOwnerNote", "parameters": [ { "name": "rentalOwnerId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "$ref": "#/components/requestBodies/NotePostMessage" }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NoteMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/rentals/owners/{rentalOwnerId}/notes/{noteId}": { "get": { "tags": [ "Rental Owners" ], "summary": "Retrieve a note", "description": "Retrieves a rental owner note.\r\n

Required permission(s):

Rentals > Property Rental Owners - `View`", "operationId": "GetRentalOwnerNoteById", "parameters": [ { "name": "rentalOwnerId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "noteId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NoteMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "put": { "tags": [ "Rental Owners" ], "summary": "Update a note", "description": "Updates a Rental Owner note.\r\n

NOTE: Any field not included in the update request will be set to either an empty string or `null` in the database depending on the field definition.
The recommended workflow to ensure no data is inadvertently overwritten is to execute a `GET` request for the resource you're about to update and then use this response to fill any of the fields that are not being updated.\r\n

Required permission(s):

Rentals > Property Rental Owners - `View` `Edit`", "operationId": "UpdateRentalOwnerNote", "parameters": [ { "name": "rentalOwnerId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "noteId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "$ref": "#/components/requestBodies/NotePutMessage" }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NoteMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/rentals/units": { "get": { "tags": [ "Rental Units" ], "summary": "Retrieve all units", "description": "Retrieves a list of rental property units.\r\n

Required permission(s):

Rentals > Rental properties and units - `View`", "operationId": "GetAllRentalUnits", "parameters": [ { "name": "propertyids", "in": "query", "description": "Filters results to rental units that belong to the specified set of property ids.", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "integer", "format": "int32" } } }, { "name": "lastupdatedfrom", "in": "query", "description": "Filters results to any rental units that were updated on or after the specified date. The value must be in UTC and formatted as YYYY-MM-DDTHH:MM:SSZ.", "required": false, "schema": { "type": "string", "format": "date-time" } }, { "name": "lastupdatedto", "in": "query", "description": "Filters results to any rental units that were updated on or before the specified date. The value must be in UTC and formatted as YYYY-MM-DDTHH:MM:SSZ.", "required": false, "schema": { "type": "string", "format": "date-time" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/RentalUnitMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "post": { "tags": [ "Rental Units" ], "summary": "Create a unit", "description": "Creates a rental unit.\r\n

Required permission(s):

Rentals > Rental properties and units - `View` `Edit`", "operationId": "CreateRentalUnit", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RentalUnitsPostMessage" } } }, "required": true }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RentalUnitMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/rentals/units/{unitId}": { "get": { "tags": [ "Rental Units" ], "summary": "Retrieve a unit", "description": "Retrieves a specific rental property unit.\r\n

Required permission(s):

Rentals > Rental properties and units - `View`", "operationId": "GetRentalUnitById", "parameters": [ { "name": "unitId", "in": "path", "description": "The rental unit identifier.", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RentalUnitMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "put": { "tags": [ "Rental Units" ], "summary": "Update a unit", "description": "Updates a rental unit.\r\n

NOTE: Any field not included in the update request will be set to either an empty string or `null` in the database depending on the field definition.
The recommended workflow to ensure no data is inadvertently overwritten is to execute a `GET` request for the resource you're about to update and then use this response to fill any of the fields that are not being updated.\r\n

Required permission(s):

Rentals > Rental properties and units - `View` `Edit`", "operationId": "UpdateRentalUnit", "parameters": [ { "name": "unitId", "in": "path", "description": "The identifier of the unit to update.", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RentalUnitPutMessage" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RentalUnitMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/rentals/units/{unitId}/amenities": { "get": { "tags": [ "Rental Units" ], "summary": "Retrieve all amenities", "description": "Retrieves all amenities for a rental unit.\r\n

Required permission(s):

Rentals > Rental properties and units - `View`", "operationId": "GetFeaturesForRentalUnitById", "parameters": [ { "name": "unitId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RentalUnitFeaturesMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "put": { "tags": [ "Rental Units" ], "summary": "Update amenities", "description": "Updates the amenities for a rental unit.\r\n

NOTE: Any field not included in the update request will be set to either an empty string or `null` in the database depending on the field definition.
The recommended workflow to ensure no data is inadvertently overwritten is to execute a `GET` request for the resource you're about to update and then use this response to fill any of the fields that are not being updated.\r\n

Required permission(s):

Rentals > Rental properties and units - `View` `Edit`", "operationId": "UpdateRentalUnitFeatures", "parameters": [ { "name": "unitId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RentalUnitFeaturesPutMessage" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RentalUnitFeaturesMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/rentals/units/{unitId}/notes": { "get": { "tags": [ "Rental Units" ], "summary": "Retrieve all notes", "description": "Retrieves all rental unit notes.\r\n

Required permission(s):

Rentals > Rental properties and units - `View`", "operationId": "GetRentalUnitNotes", "parameters": [ { "name": "unitId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "updateddatetimefrom", "in": "query", "description": "Filters results to any note whose updated date and time are greater than or equal to the specified value. The value must be formatted as YYYY-MM-DD HH:MM:SS.", "required": false, "schema": { "type": "string", "format": "date-time" } }, { "name": "updateddatetimeto", "in": "query", "description": "Filters results to any note whose updated date and time are less than or equal to the specified value. The value must be formatted as YYYY-MM-DD HH:MM:SS.", "required": false, "schema": { "type": "string", "format": "date-time" } }, { "name": "lastupdatedbyuserid", "in": "query", "description": "Filters results to only notes that were last updated by the specified user identifier.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/NoteMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "post": { "tags": [ "Rental Units" ], "summary": "Create a note", "description": "Creates a rental unit note.\r\n

Required permission(s):

Rentals > Rental properties and units - `View` `Edit`", "operationId": "CreateRentalUnitNote", "parameters": [ { "name": "unitId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "$ref": "#/components/requestBodies/NotePostMessage" }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NoteMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/rentals/units/{unitId}/notes/{noteId}": { "get": { "tags": [ "Rental Units" ], "summary": "Retrieve a note", "description": "Retrieves a rental unit note.\r\n

Required permission(s):

Rentals > Rental properties and units - `View`", "operationId": "GetRentalUnitNoteByNoteId", "parameters": [ { "name": "unitId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "noteId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NoteMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "put": { "tags": [ "Rental Units" ], "summary": "Update a note", "description": "Updates a rental unit note.\r\n

NOTE: Any field not included in the update request will be set to either an empty string or `null` in the database depending on the field definition.
The recommended workflow to ensure no data is inadvertently overwritten is to execute a `GET` request for the resource you're about to update and then use this response to fill any of the fields that are not being updated.\r\n

Required permission(s):

Rentals > Rental properties and units - `View` `Edit`", "operationId": "UpdateNoteForRentalUnit", "parameters": [ { "name": "unitId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "noteId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "$ref": "#/components/requestBodies/NotePutMessage" }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NoteMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/residentCenterUsers": { "get": { "tags": [ "Resident Center" ], "summary": "Retrieve all resident center users", "description": "Retrieves all resident center users for both rentals and associations.\r\n

Required permission(s):

Communications > Resident Center Users - `View`\r\n
Rentals > Tenants - `View` is required to retrieve resident center users that are tenants.\r\n
Associations > Association owners and tenants - `View` is required to retrieve resident center users that are association owners.", "operationId": "GetResidentCenterUsers", "parameters": [ { "name": "unitagreementids", "in": "query", "description": "Filters results to any resident center user who is associated with the specified lease and/or association ownership account identifiers.", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "integer", "format": "int32" } } }, { "name": "userids", "in": "query", "description": "Filters results to any resident center user with the specified tenant and/or association owner identifiers.", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "integer", "format": "int32" } } }, { "name": "usertypes", "in": "query", "description": "Filters results to any resident center user with the specified types.", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "string", "enum": [ "Tenant", "AssociationOwner" ] } } }, { "name": "residentcenteruserstatuses", "in": "query", "description": "Filters results to any resident center user with the specified resident center user statuses.", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "string", "enum": [ "AccountExistsButNoEmailSent", "PasswordSent", "EmailFailed", "SignedIn", "Blocked" ] } } }, { "name": "isautopayenabled", "in": "query", "description": "If true, filters results to any resident center users who have automatic payments scheduled for the future. If false, filters results to any resident center users\r\nwho do not have automatic payments scheduled for the future. If not provided, will not filter results based on automatic payments.", "required": false, "schema": { "type": "boolean" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ResidentCenterUserMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/tasks": { "get": { "tags": [ "Tasks" ], "summary": "Retrieve all tasks", "description": "Retrieves a list of tasks.\r\n

Required permission(s):

Tasks > Tasks - `View`", "operationId": "GetAllTasks", "parameters": [ { "name": "entitytype", "in": "query", "description": "Specifies the type of entity that the `EntityId` field refers to. This field is required if the `EntityId` field is populated.", "required": false, "schema": { "type": "string", "enum": [ "Rental", "RentalOwner", "Association" ] } }, { "name": "entityid", "in": "query", "description": "Filters results to any task associated with the specified entity id value. The value must be of the type specified in the `EntityType` field.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "statuses", "in": "query", "description": "Filters results by the status of the task. If no status is specified, tasks with any status will be returned.", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "string", "enum": [ "New", "InProgress", "Completed", "Deferred", "Closed" ] } } }, { "name": "type", "in": "query", "description": "Filters results to any task associated with the task type specified.", "required": false, "schema": { "type": "string", "enum": [ "ContactRequest", "ResidentRequest", "Todo", "RentalOwnerRequest" ] } }, { "name": "unitid", "in": "query", "description": "Filters results to any task associated with the unit identifier.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "unitagreementid", "in": "query", "description": "Filters results to any task associated with the unit agreement identifier specified.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "lastupdatedfrom", "in": "query", "description": "Filters results to any tasks were updated on or after the specified date. The value must be formatted as YYYY-MM-DD.", "required": false, "schema": { "type": "string", "format": "date" } }, { "name": "lastupdatedto", "in": "query", "description": "Filters results to any tasks were updated on or before the specified date. The value must be formatted as YYYY-MM-DD.", "required": false, "schema": { "type": "string", "format": "date" } }, { "name": "duedatefrom", "in": "query", "description": "Filters results to any tasks with a due date on or after the specified date. The value must be formatted as YYYY-MM-DD.", "required": false, "schema": { "type": "string", "format": "date" } }, { "name": "duedateto", "in": "query", "description": "Filters results to any tasks with a due date on or before the specified date. The value must be formatted as YYYY-MM-DD.", "required": false, "schema": { "type": "string", "format": "date" } }, { "name": "taskcategoryid", "in": "query", "description": "Filters results to any tasks with the specified category identifier.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "priorities", "in": "query", "description": "Filters results to any tasks whose priority matches the specified values. If no priority is specified, tasks with any priority will be returned.", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "string", "enum": [ "Low", "Normal", "High" ] } } }, { "name": "assignedtoid", "in": "query", "description": "Filters results to any tasks that have been assigned to the specified staff user identifier.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "tasktitle", "in": "query", "description": "Filters results to any task whose title *contains* the specified value.", "required": false, "schema": { "type": "string" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/AllTasksMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/tasks/{taskId}": { "get": { "tags": [ "Tasks" ], "summary": "Retrieve a task", "description": "Retrieves a specific task.\r\n

Required permission(s):

Tasks > Tasks - `View`", "operationId": "GetTaskById", "parameters": [ { "name": "taskId", "in": "path", "description": "The task identifier", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AllTasksMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/tasks/{taskId}/history": { "get": { "tags": [ "Tasks" ], "summary": "Retrieve all task history", "description": "Retrieves all task history records for a specific task.\r\n

This endpoint can be used for any task type - contact requests, rental owner requests, resident requests or to do's.\r\n

Required permission(s):

Tasks > Tasks - `View`", "operationId": "GetTaskHistories", "parameters": [ { "name": "taskId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/TaskHistoryMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/tasks/{taskId}/history/{taskHistoryId}": { "get": { "tags": [ "Tasks" ], "summary": "Retrieve a task history", "description": "Retrieves a specific task history record for a task.\r\n

This endpoint can be used for any task type - contact requests, rental owner requests, resident requests or to do's.\r\n

Required permission(s):

Tasks > Tasks - `View`", "operationId": "GetTaskHistoryById", "parameters": [ { "name": "taskId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "taskHistoryId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TaskHistoryMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "put": { "tags": [ "Tasks" ], "summary": "Update a task history", "description": "Updates a specific task history record for a task.\r\n

This endpoint can be used for any task type - contact requests, rental owner requests, resident requests or to do's.\r\n

Required permission(s):

Tasks > Tasks - `View` `Edit`", "operationId": "UpdateTaskHistory", "parameters": [ { "name": "taskId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "taskHistoryId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TaskHistoryPutMessage" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TaskHistoryMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/tasks/{taskId}/history/{taskHistoryId}/files": { "get": { "tags": [ "Tasks" ], "summary": "Retrieve all task history files", "description": "Retrieves the metadata for all files associated with a task history record.\r\n

This endpoint can be used for any task type - contact requests, rental owner requests, resident requests or to do's.\r\n

Required permission(s):

Tasks > Tasks - `View`", "operationId": "GetAllTaskHistoryFiles", "parameters": [ { "name": "taskId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "taskHistoryId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/TaskHistoryFileMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/tasks/{taskId}/history/{taskHistoryId}/files/{fileId}": { "get": { "tags": [ "Tasks" ], "summary": "Retrieve a task history file", "description": "Retrieves the metadata for a specific file associated with a task history record.\r\n

This endpoint can be used for any task type - contact requests, rental owner requests, resident requests or to do's.\r\n

Required permission(s):

Tasks > Tasks - `View`", "operationId": "GetTaskHistoryFileById", "parameters": [ { "name": "taskId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "taskHistoryId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "fileId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TaskHistoryFileMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "delete": { "tags": [ "Tasks" ], "summary": "Delete task history file", "description": "Deletes a specific file from a task history record. The file will be permanently deleted from the Buildium platform an can not be recovered. associated with a task history record.\r\n

This endpoint can be used for any task type - contact requests, rental owner requests, resident requests or to do's.\r\n

Required permission(s):

Tasks > Tasks - `View` `Edit` `Delete`", "operationId": "DeleteTaskHistoryFile", "parameters": [ { "name": "taskId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "taskHistoryId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "fileId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "204": { "description": "OK - No Content." }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/tasks/{taskId}/history/{taskHistoryId}/files/{fileId}/downloadrequest": { "post": { "tags": [ "Tasks" ], "summary": "Download a task history file", "description": "Downloads a specific file associated to the task history record.\r\n

This endpoint can be used for any task type - contact requests, rental owner requests, resident requests or to do's.\r\n

Required permission(s):

Tasks > Tasks - `View`", "operationId": "GetFileDownloadRequest", "parameters": [ { "name": "taskId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "taskHistoryId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "fileId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FileDownloadMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "503": { "description": "The file download service is currently unavailable.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/tasks/{taskId}/history/{taskHistoryId}/files/uploadrequests": { "post": { "tags": [ "Tasks" ], "summary": "Upload a task history file", "description": "Uploads a file and associates it to the specified task history record.\r\n

This endpoint can be used for any task type - contact requests, rental owner requests, resident requests or to do's.\r\n

Uploading a file requires making two API requests. Each step is outlined below.\r\n

Step 1 - Save file metadata
\r\nThe first step in the file upload process is to submit the file metadata to `/v1/tasks/{taskId}/history/{taskHistoryId}/uploadrequests`. The response of this call will contain a URL and a collection of form data that will be used in step 2 to generate the request for the file binary upload.\r\n

NOTE: The response data will expire after 5 minutes. The file metadata will not be saved in the Buildium system if step 2 of this process is not completed successfully.\r\n

Step 2 - Upload the file binary
\r\nUploading the file binary will require using the response from step 1 to form a POST request to the Buildium file provider. Follow these steps to create the request:\r\n
\r\n1. Form a POST request using the value of the `BucketUrl` property as the URL. \r\n

\r\n2. Set the `Content-Type` header to `multipart/form-data`.\r\n

\r\n3. Copy the fields from the `FormData` property to this request as form-data key/value pairs.\r\n
NOTE: These values must added to the request form-data in the order they were received in the response.\r\n

\r\n4. Lastly create a form-data key named `file` and set the value to the file binary.\r\n
NOTE: This must be the last field in the form-data list.\r\n

This image shows what the POST request should look like if you're using Postman:\r\n

\r\n5. Send the POST request! A successful request will return with a `204 - NO CONTENT` HTTP response code. For any failure responses, please refer to AWS documentation on REST error responses.\r\n

Required permission(s):

Tasks > Tasks - `View` `Edit`", "operationId": "UploadTaskHistoryFileRequestAsync", "parameters": [ { "name": "taskId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "taskHistoryId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TaskHistoryFileUploadPostMessage" } } }, "required": true }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FileUploadTicketMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/tasks/categories": { "get": { "tags": [ "Tasks" ], "summary": "Retrieve all task categories", "description": "Retrieves a list of task categories.\r\n

Required permission(s):

Tasks > Tasks - `View`", "operationId": "GetAllTaskCategories", "parameters": [ { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/TaskCategoryMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "post": { "tags": [ "Tasks" ], "summary": "Create a task category", "description": "Create a task category.\r\n

Required permission(s):

Tasks > Tasks - `View` `Edit`", "operationId": "CreateTaskCategory", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TaskCategorySaveMessage" } } }, "required": true }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TaskCategoryMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/tasks/categories/{taskCategoryId}": { "get": { "tags": [ "Tasks" ], "summary": "Retrieve a task category", "description": "Retrieves a specific task category.\r\n

Required permission(s):

Tasks > Tasks - `View`", "operationId": "GetTaskCategoryById", "parameters": [ { "name": "taskCategoryId", "in": "path", "description": "The task category identifier.", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TaskCategoryMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "put": { "tags": [ "Tasks" ], "summary": "Update a task category", "description": "Updates a task category.\r\n

NOTE: Any field not included in the update request will be set to either an empty string or `null` in the database depending on the field definition.
The recommended workflow to ensure no data is inadvertently overwritten is to execute a `GET` request for the resource you're about to update and then use this response to fill any of the fields that are not being updated.\r\n

Required permission(s):

Tasks > Tasks - `View` `Edit`", "operationId": "UpdateTaskCategory", "parameters": [ { "name": "taskCategoryId", "in": "path", "description": "The task category identifier.", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TaskCategoryPutMessage" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TaskCategoryMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/tasks/contactrequests": { "get": { "tags": [ "Tasks" ], "summary": "Retrieve all contact requests", "description": "Retrieves a list of contact requests.\r\n

Required permission(s):

Tasks > Tasks - `View`", "operationId": "GetContactRequestTasks", "parameters": [ { "name": "entitytype", "in": "query", "description": "Specifies the type of entity that the `EntityId` field refers to. This field is required if the `EntityId` field is populated.", "required": false, "schema": { "type": "string", "enum": [ "Rental", "RentalOwner", "Association" ] } }, { "name": "entityid", "in": "query", "description": "Filters results to any task associated with the specified entity id value. The value must be of the type specified in the `EntityType` field.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "statuses", "in": "query", "description": "Filters results by the status of the task. If no status is specified, tasks with any status will be returned.", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "string", "enum": [ "New", "InProgress", "Completed", "Deferred", "Closed" ] } } }, { "name": "unitid", "in": "query", "description": "Filters results to any task associated with the unit identifier.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "lastupdatedfrom", "in": "query", "description": "Filters results to any tasks were updated on or after the specified date. The value must be formatted as YYYY-MM-DD.", "required": false, "schema": { "type": "string", "format": "date" } }, { "name": "lastupdatedto", "in": "query", "description": "Filters results to any tasks were updated on or before the specified date. The value must be formatted as YYYY-MM-DD.", "required": false, "schema": { "type": "string", "format": "date" } }, { "name": "duedatefrom", "in": "query", "description": "Filters results to any tasks with a due date on or after the specified date. The value must be formatted as YYYY-MM-DD.", "required": false, "schema": { "type": "string", "format": "date" } }, { "name": "duedateto", "in": "query", "description": "Filters results to any tasks with a due date on or before the specified date. The value must be formatted as YYYY-MM-DD.", "required": false, "schema": { "type": "string", "format": "date" } }, { "name": "taskcategoryid", "in": "query", "description": "Filters results to any tasks with the specified category identifier.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "priorities", "in": "query", "description": "Filters results to any tasks whose priority matches the specified values. If no priority is specified, tasks with any priority will be returned.", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "string", "enum": [ "Low", "Normal", "High" ] } } }, { "name": "assignedtoid", "in": "query", "description": "Filters results to any tasks that have been assigned to the specified staff user identifier.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "tasktitle", "in": "query", "description": "Filters results to any task whose title *contains* the specified value.", "required": false, "schema": { "type": "string" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ContactRequestTaskMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "post": { "tags": [ "Tasks" ], "summary": "Create a contact request", "description": "Creates a contact request.\r\n

Required permission(s):

Tasks > Tasks - `View` `Edit`", "operationId": "CreateContactRequestTask", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ContactRequestTaskPostMessage" } } }, "required": true }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ContactRequestTaskMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/tasks/contactrequests/{contactRequestTaskId}": { "get": { "tags": [ "Tasks" ], "summary": "Retrieve a contact request", "description": "Retrieves a contact request.\r\n

Required permission(s):

Tasks > Tasks - `View`", "operationId": "GetContactRequestTaskById", "parameters": [ { "name": "contactRequestTaskId", "in": "path", "description": "The contact request identifier.", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ContactRequestTaskMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "put": { "tags": [ "Tasks" ], "summary": "Update a contact request", "description": "Updates a contact request.\r\n

NOTE: Any field not included in the update request will be set to either an empty string or `null` in the database depending on the field definition.
The recommended workflow to ensure no data is inadvertently overwritten is to execute a `GET` request for the resource you're about to update and then use this response to fill any of the fields that are not being updated.\r\n

Required permission(s):

Tasks > Tasks - `View` `Edit`", "operationId": "UpdateContactRequestTask", "parameters": [ { "name": "contactRequestTaskId", "in": "path", "description": "The contact request identifier.", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ContactRequestTaskPutMessage" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ContactRequestTaskMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/tasks/rentalownerrequests": { "get": { "tags": [ "Tasks" ], "summary": "Retrieve all rental owner requests", "description": "Retrieves all rental owner requests.\r\n

Required permission(s):

Tasks > Tasks - `View`", "operationId": "GetAllRentalOwnerRequestTasks", "parameters": [ { "name": "entitytype", "in": "query", "description": "Specifies the type of entity that the `EntityId` field refers to. This field is required if the `EntityId` field is populated.", "required": false, "schema": { "type": "string", "enum": [ "Rental", "RentalOwner", "Association" ] } }, { "name": "entityid", "in": "query", "description": "Filters results to any task associated with the specified entity id value. The value must be of the type specified in the `EntityType` field.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "statuses", "in": "query", "description": "Filters results by the status of the task. If no status is specified, tasks with any status will be returned.", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "string", "enum": [ "New", "InProgress", "Completed", "Deferred", "Closed" ] } } }, { "name": "unitid", "in": "query", "description": "Filters results to any task associated with the unit identifier.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "lastupdatedfrom", "in": "query", "description": "Filters results to any tasks were updated on or after the specified date. The value must be formatted as YYYY-MM-DD.", "required": false, "schema": { "type": "string", "format": "date" } }, { "name": "lastupdatedto", "in": "query", "description": "Filters results to any tasks were updated on or before the specified date. The value must be formatted as YYYY-MM-DD.", "required": false, "schema": { "type": "string", "format": "date" } }, { "name": "duedatefrom", "in": "query", "description": "Filters results to any tasks with a due date on or after the specified date. The value must be formatted as YYYY-MM-DD.", "required": false, "schema": { "type": "string", "format": "date" } }, { "name": "duedateto", "in": "query", "description": "Filters results to any tasks with a due date on or before the specified date. The value must be formatted as YYYY-MM-DD.", "required": false, "schema": { "type": "string", "format": "date" } }, { "name": "taskcategoryid", "in": "query", "description": "Filters results to any tasks with the specified category identifier.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "priorities", "in": "query", "description": "Filters results to any tasks whose priority matches the specified values. If no priority is specified, tasks with any priority will be returned.", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "string", "enum": [ "Low", "Normal", "High" ] } } }, { "name": "assignedtoid", "in": "query", "description": "Filters results to any tasks that have been assigned to the specified staff user identifier.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "tasktitle", "in": "query", "description": "Filters results to any task whose title *contains* the specified value.", "required": false, "schema": { "type": "string" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/RentalOwnerRequestTaskMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "post": { "tags": [ "Tasks" ], "summary": "Create a rental owner request", "description": "Creates a rental owner request.\r\n

Required permission(s):

Tasks > Tasks - `View` `Edit`", "operationId": "CreateRentalOwnerRequestTask", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RentalOwnerRequestTaskPostMessage" } } }, "required": true }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RentalOwnerRequestTaskMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/tasks/rentalownerrequests/{rentalOwnerRequestTaskId}": { "get": { "tags": [ "Tasks" ], "summary": "Retrieve a rental owner request", "description": "Retrieves a specific rental owner request.\r\n

Required permission(s):

Tasks > Tasks - `View`", "operationId": "GetRentalOwnerRequestTaskById", "parameters": [ { "name": "rentalOwnerRequestTaskId", "in": "path", "description": "The rental owner request identifier.", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RentalOwnerRequestTaskMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "put": { "tags": [ "Tasks" ], "summary": "Update a rental owner request", "description": "Updates a rental owner request.\r\n

NOTE: Any field not included in the update request will be set to either an empty string or `null` in the database depending on the field definition.
The recommended workflow to ensure no data is inadvertently overwritten is to execute a `GET` request for the resource you're about to update and then use this response to fill any of the fields that are not being updated.\r\n

Required permission(s):

Tasks > Tasks - `View` `Edit`", "operationId": "UpdateRentalOwnerRequestTask", "parameters": [ { "name": "rentalOwnerRequestTaskId", "in": "path", "description": "The rental owner request identifier.", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RentalOwnerRequestTaskPutMessage" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RentalOwnerRequestTaskMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/tasks/residentrequests": { "get": { "tags": [ "Tasks" ], "summary": "Retrieve all resident requests", "description": "Retrieves a list of resident requests.\r\n

Required permission(s):

Tasks > Tasks - `View`", "operationId": "GetResidentRequestTasks", "parameters": [ { "name": "entitytype", "in": "query", "description": "Specifies the type of entity that the `EntityId` field refers to. This field is required if the `EntityId` field is populated.", "required": false, "schema": { "type": "string", "enum": [ "Rental", "RentalOwner", "Association" ] } }, { "name": "entityid", "in": "query", "description": "Filters results to any task associated with the specified entity id value. The value must be of the type specified in the `EntityType` field.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "statuses", "in": "query", "description": "Filters results by the status of the task. If no status is specified, tasks with any status will be returned.", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "string", "enum": [ "New", "InProgress", "Completed", "Deferred", "Closed" ] } } }, { "name": "unitid", "in": "query", "description": "Filters results to any task associated with the unit identifier.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "unitagreementid", "in": "query", "description": "Filters results to any task associated with the unit agreement identifier specified.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "lastupdatedfrom", "in": "query", "description": "Filters results to any tasks were updated on or after the specified date. The value must be formatted as YYYY-MM-DD.", "required": false, "schema": { "type": "string", "format": "date" } }, { "name": "lastupdatedto", "in": "query", "description": "Filters results to any tasks were updated on or before the specified date. The value must be formatted as YYYY-MM-DD.", "required": false, "schema": { "type": "string", "format": "date" } }, { "name": "duedatefrom", "in": "query", "description": "Filters results to any tasks with a due date on or after the specified date. The value must be formatted as YYYY-MM-DD.", "required": false, "schema": { "type": "string", "format": "date" } }, { "name": "duedateto", "in": "query", "description": "Filters results to any tasks with a due date on or before the specified date. The value must be formatted as YYYY-MM-DD.", "required": false, "schema": { "type": "string", "format": "date" } }, { "name": "taskcategoryid", "in": "query", "description": "Filters results to any tasks with the specified category identifier.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "priorities", "in": "query", "description": "Filters results to any tasks whose priority matches the specified values. If no priority is specified, tasks with any priority will be returned.", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "string", "enum": [ "Low", "Normal", "High" ] } } }, { "name": "assignedtoid", "in": "query", "description": "Filters results to any tasks that have been assigned to the specified staff user identifier.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "tasktitle", "in": "query", "description": "Filters results to any task whose title *contains* the specified value.", "required": false, "schema": { "type": "string" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ResidentRequestTaskMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "post": { "tags": [ "Tasks" ], "summary": "Create a resident request", "description": "Creates a resident request.\r\n

Required permission(s):

Tasks > Tasks - `View` `Edit`", "operationId": "CreateResource", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResidentRequestTaskPostMessage" } } }, "required": true }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResidentRequestTaskMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/tasks/residentrequests/{residentRequestTaskId}": { "get": { "tags": [ "Tasks" ], "summary": "Retrieve a resident request", "description": "Retrieves a specific resident request.\r\n

Required permission(s):

Tasks > Tasks - `View`", "operationId": "GetResidentRequestTask", "parameters": [ { "name": "residentRequestTaskId", "in": "path", "description": "The resident request identifier.", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResidentRequestTaskMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "put": { "tags": [ "Tasks" ], "summary": "Update a resident request", "description": "Update a resident request.\r\n

NOTE: Any field not included in the update request will be set to either an empty string or `null` in the database depending on the field definition.
The recommended workflow to ensure no data is inadvertently overwritten is to execute a `GET` request for the resource you're about to update and then use this response to fill any of the fields that are not being updated.\r\n

Required permission(s):

Tasks > Tasks - `View` `Edit`", "operationId": "UpdateResource", "parameters": [ { "name": "residentRequestTaskId", "in": "path", "description": "The resident request identifier.", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResidentRequestTaskPutMessage" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResidentRequestTaskMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/tasks/todorequests": { "get": { "tags": [ "Tasks" ], "summary": "Retrieve all to do tasks", "description": "Retrieves a list of to do tasks.\r\n

Required permission(s):

Tasks > Tasks - `View`", "operationId": "GetToDoTasks", "parameters": [ { "name": "entitytype", "in": "query", "description": "Specifies the type of entity that the `EntityId` field refers to. This field is required if the `EntityId` field is populated.", "required": false, "schema": { "type": "string", "enum": [ "Rental", "RentalOwner", "Association" ] } }, { "name": "entityid", "in": "query", "description": "Filters results to any task associated with the specified entity id value. The value must be of the type specified in the `EntityType` field.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "statuses", "in": "query", "description": "Filters results by the status of the task. If no status is specified, tasks with any status will be returned.", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "string", "enum": [ "New", "InProgress", "Completed", "Deferred", "Closed" ] } } }, { "name": "unitid", "in": "query", "description": "Filters results to any task associated with the unit identifier.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "lastupdatedfrom", "in": "query", "description": "Filters results to any tasks were updated on or after the specified date. The value must be formatted as YYYY-MM-DD.", "required": false, "schema": { "type": "string", "format": "date" } }, { "name": "lastupdatedto", "in": "query", "description": "Filters results to any tasks were updated on or before the specified date. The value must be formatted as YYYY-MM-DD.", "required": false, "schema": { "type": "string", "format": "date" } }, { "name": "duedatefrom", "in": "query", "description": "Filters results to any tasks with a due date on or after the specified date. The value must be formatted as YYYY-MM-DD.", "required": false, "schema": { "type": "string", "format": "date" } }, { "name": "duedateto", "in": "query", "description": "Filters results to any tasks with a due date on or before the specified date. The value must be formatted as YYYY-MM-DD.", "required": false, "schema": { "type": "string", "format": "date" } }, { "name": "taskcategoryid", "in": "query", "description": "Filters results to any tasks with the specified category identifier.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "priorities", "in": "query", "description": "Filters results to any tasks whose priority matches the specified values. If no priority is specified, tasks with any priority will be returned.", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "string", "enum": [ "Low", "Normal", "High" ] } } }, { "name": "assignedtoid", "in": "query", "description": "Filters results to any tasks that have been assigned to the specified staff user identifier.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "tasktitle", "in": "query", "description": "Filters results to any task whose title *contains* the specified value.", "required": false, "schema": { "type": "string" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ToDoTaskMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "post": { "tags": [ "Tasks" ], "summary": "Create a to do task", "description": "Creates a to do task.\r\n

Required permission(s):

Tasks > Tasks - `View` `Edit`", "operationId": "CreateToDoTask", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ToDoTaskPostMessage" } } }, "required": true }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ToDoTaskMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/tasks/todorequests/{toDoTaskId}": { "get": { "tags": [ "Tasks" ], "summary": "Retrieve a to do task", "description": "Retrieves a to do task.\r\n

Required permission(s):

Tasks > Tasks - `View`", "operationId": "GetToDoTaskById", "parameters": [ { "name": "toDoTaskId", "in": "path", "description": "The to do task identifier", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ToDoTaskMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "put": { "tags": [ "Tasks" ], "summary": "Update a to do task", "description": "Updates a to do task\r\n

NOTE: Any field not included in the update request will be set to either an empty string or `null` in the database depending on the field definition.
The recommended workflow to ensure no data is inadvertently overwritten is to execute a `GET` request for the resource you're about to update and then use this response to fill any of the fields that are not being updated.\r\n

Required permission(s):

Tasks > Tasks - `View` `Edit`", "operationId": "UpdateToDoTask", "parameters": [ { "name": "toDoTaskId", "in": "path", "description": "The to do task identifier.", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ToDoTaskPutMessage" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ToDoTaskMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/userroles": { "get": { "tags": [ "Administration" ], "summary": "Retrieve all user roles", "description": "Retrieves a list of user roles.\r\n

Required permission(s):

Administration > User Roles - `View`", "operationId": "GetAllUserRoles", "parameters": [ { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/UserRoleMessage" } } } } }, "400": { "description": "BadRequest", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials do not have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/userroles/{userRoleId}": { "get": { "tags": [ "Administration" ], "summary": "Retrieve a user role", "description": "Retrieve a specific user role.\r\n

Required permission(s):

Administration > User Roles - `View`", "operationId": "GetUserRoleById", "parameters": [ { "name": "userRoleId", "in": "path", "description": "The user role identifier.", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserRoleMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials do not have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/users": { "get": { "tags": [ "Administration" ], "summary": "Retrieve all users", "description": "Retrieves a list of users.\r\n

Required permission(s):

Administration > Users - `View`", "operationId": "GetAllUsers", "parameters": [ { "name": "roleids", "in": "query", "description": "Describes the role of the user.", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "integer", "format": "int32" } } }, { "name": "usertypes", "in": "query", "description": "Describes the user type of the user.", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "string", "enum": [ "Staff", "RentalOwner", "Vendor" ] } } }, { "name": "status", "in": "query", "description": "Filters results by the status of the user. If no status is specified both `active` and `inactive` staff members will be returned.", "required": false, "schema": { "type": "string", "enum": [ "Inactive", "Active" ] } }, { "name": "name", "in": "query", "description": "Filters results to only records whose name *contains* the specified value.", "required": false, "schema": { "type": "string" } }, { "name": "email", "in": "query", "description": "Filters results to only records whose email *contains* the specified value.", "required": false, "schema": { "type": "string" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/UserMessage" } } } } }, "400": { "description": "BadRequest", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials do not have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/users/{userId}": { "get": { "tags": [ "Administration" ], "summary": "Retrieve a user", "description": "Retrieve a specific user.\r\n

Required permission(s):

Administration > Users - `View`", "operationId": "GetUserById", "parameters": [ { "name": "userId", "in": "path", "description": "The user identifier.", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials do not have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/vendors": { "get": { "tags": [ "Vendors" ], "summary": "Retrieve all vendors", "description": "Retrieves a list of vendors.\r\n

Required permission(s):

Maintenance > Vendors - `View`", "operationId": "GetAllVendors", "parameters": [ { "name": "status", "in": "query", "description": "Filters results by the status of the vendor. If no status is specified both `active` and `inactive` vendors will be returned.", "required": false, "schema": { "type": "string", "enum": [ "Inactive", "Active" ] } }, { "name": "email", "in": "query", "description": "Filters results to any vendor whose email *contains* the specified value.", "required": false, "schema": { "type": "string" } }, { "name": "website", "in": "query", "description": "Filters results to any vendor whose website *contains* the specified value.", "required": false, "schema": { "type": "string" } }, { "name": "name", "in": "query", "description": "Filters results to any vendor whose name *contains* the specified value.", "required": false, "schema": { "type": "string" } }, { "name": "insuranceexpiration", "in": "query", "description": "Filters results to any vendor whose insurance will expire in the specified date range.", "required": false, "schema": { "type": "string", "enum": [ "None", "Any", "Expired", "ThirtyDaysOrLess", "SixtyDaysOrLess", "NinetyDaysOrLess" ] } }, { "name": "phone", "in": "query", "description": "Filters results to any vendor who has a phone number that *contains* the specified value.", "required": false, "schema": { "type": "string" } }, { "name": "lastupdatedfrom", "in": "query", "description": "Filters results to any vendors that were updated on or after the specified date. The value must be in UTC and formatted as YYYY-MM-DDTHH:MM:SSZ.", "required": false, "schema": { "type": "string", "format": "date-time" } }, { "name": "lastupdatedto", "in": "query", "description": "Filters results to any vendors that were updated on or before the specified date. The value must be in UTC and formatted as YYYY-MM-DDTHH:MM:SSZ.", "required": false, "schema": { "type": "string", "format": "date-time" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/VendorMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "post": { "tags": [ "Vendors" ], "summary": "Create a vendor", "description": "Creates a vendor.\r\n

Required permission(s):

Maintenance > Vendors - `View` `Edit`", "operationId": "CreateVendor", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VendorPostMessage" } } }, "required": true }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VendorMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/vendors/{vendorId}": { "get": { "tags": [ "Vendors" ], "summary": "Retrieve a vendor", "description": "Retrieve a specific vendor.\r\n

Required permission(s):

Maintenance > Vendors - `View`", "operationId": "GetVendorById", "parameters": [ { "name": "vendorId", "in": "path", "description": "The vendor identifier.", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VendorMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "put": { "tags": [ "Vendors" ], "summary": "Update a vendor", "description": "Updates a vendor.\r\n

NOTE: Any field not included in the update request will be set to either an empty string or `null` in the database depending on the field definition.
The recommended workflow to ensure no data is inadvertently overwritten is to execute a `GET` request for the resource you're about to update and then use this response to fill any of the fields that are not being updated.\r\n

Required permission(s):

Maintenance > Vendors - `View` `Edit`", "operationId": "UpdateVendor", "parameters": [ { "name": "vendorId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VendorPutMessage" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VendorMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/vendors/{vendorId}/credits": { "post": { "tags": [ "Vendors" ], "summary": "Create a credit", "description": "Creates a credit.\r\n

Required permission(s):

Accounting > Bills - `View` `Edit`", "operationId": "CreateVendorCredit", "parameters": [ { "name": "vendorId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VendorCreditPostMessage" } } }, "required": true }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VendorCreditMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/vendors/{vendorId}/credits/{vendorCreditId}": { "get": { "tags": [ "Vendors" ], "summary": "Retrieve a credit", "description": "Retrieves a credit.\r\n

Required permission(s):

Accounting > Bills - `View`", "operationId": "GetVendorCredit", "parameters": [ { "name": "vendorId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "vendorCreditId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VendorCreditMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/vendors/{vendorId}/notes": { "get": { "tags": [ "Vendors" ], "summary": "Retrieve all notes", "description": "Retrieves all vendor notes.\r\n

Required permission(s):

Maintenance > Vendors - `View`", "operationId": "GetVendorNotes", "parameters": [ { "name": "vendorId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "updateddatetimefrom", "in": "query", "description": "Filters results to any note whose updated date and time are greater than or equal to the specified value. The value must be formatted as YYYY-MM-DD HH:MM:SS.", "required": false, "schema": { "type": "string", "format": "date-time" } }, { "name": "updateddatetimeto", "in": "query", "description": "Filters results to any note whose updated date and time are less than or equal to the specified value. The value must be formatted as YYYY-MM-DD HH:MM:SS.", "required": false, "schema": { "type": "string", "format": "date-time" } }, { "name": "lastupdatedbyuserid", "in": "query", "description": "Filters results to only notes that were last updated by the specified user identifier.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/NoteMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "post": { "tags": [ "Vendors" ], "summary": "Create a note", "description": "Creates a vendor note.\r\n

Required permission(s):

Maintenance > Vendors - `View` `Edit`", "operationId": "CreateVendorNote", "parameters": [ { "name": "vendorId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "$ref": "#/components/requestBodies/NotePostMessage" }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NoteMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/vendors/{vendorId}/notes/{noteId}": { "get": { "tags": [ "Vendors" ], "summary": "Retrieve a note", "description": "Retrieves a vendor note.\r\n

Required permission(s):

Maintenance > Vendors - `View`", "operationId": "GetVendorNoteByNoteId", "parameters": [ { "name": "vendorId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "noteId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NoteMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "put": { "tags": [ "Vendors" ], "summary": "Update a note", "description": "Updates a vendor note.\r\n

NOTE: Any field not included in the update request will be set to either an empty string or `null` in the database depending on the field definition.
The recommended workflow to ensure no data is inadvertently overwritten is to execute a `GET` request for the resource you're about to update and then use this response to fill any of the fields that are not being updated.\r\n

Required permission(s):

Maintenance > Vendors - `View` `Edit`", "operationId": "UpdateVendorNote", "parameters": [ { "name": "vendorId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "noteId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "$ref": "#/components/requestBodies/NotePutMessage" }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NoteMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/vendors/{vendorId}/refunds": { "post": { "tags": [ "Vendors" ], "summary": "Create a refund", "description": "Creates a refund.\r\n

Required permission(s):

Maintenance > Vendors - `View` `Edit`\r\n Accounting > Bank Accounts - `View`", "operationId": "CreateVendorRefund", "parameters": [ { "name": "vendorId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VendorRefundPostMessage" } } }, "required": true }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VendorRefundMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/vendors/{vendorId}/refunds/{vendorRefundId}": { "get": { "tags": [ "Vendors" ], "summary": "Retrieve a refund", "description": "Retrieves a refund.\r\n

Required permission(s):

Maintenance > Vendors - `View`", "operationId": "GetVendorRefund", "parameters": [ { "name": "vendorId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "vendorRefundId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VendorCreditMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/vendors/{vendorId}/transactions": { "get": { "tags": [ "Vendors" ], "summary": "Retrieve all transactions", "description": "Retrieves all transactions.\r\n

Required permission(s):

Maintenance > Vendors - `View`\r\n
Accounting > General Ledger Transactions - `View`", "operationId": "GetAllVendorTransactions", "parameters": [ { "name": "vendorId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "transactiondatefrom", "in": "query", "description": "Filters results to any vendor transaction whose entry date that is greater than or equal to the specified value. The maximum date range is 365 days.", "required": true, "schema": { "type": "string", "format": "date" } }, { "name": "transactiondateto", "in": "query", "description": "Filters results to any vendor transaction whose entry date is less than or equal to the specified value. The maximum date range is 365 days.", "required": true, "schema": { "type": "string", "format": "date" } }, { "name": "transactiontypes", "in": "query", "description": "Filters results to any vendor transaction whose vendor transaction type matches the specified status. If no type is specified, vendor transactions with any type will be returned.", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "string", "enum": [ "Bill", "Check", "Charge", "Payment", "Credit", "Refund", "ApplyDeposit", "ElectronicFundsTransfer", "Other", "Deposit", "GeneralJournalEntry", "OwnerContribution", "ReversePayment", "ReverseElectronicFundsTransfer", "VendorCredit", "RentalApplicationFeePayment", "ReverseRentalApplicationFeePayment", "ReverseOwnerContribution", "VendorRefund", "UnreversedPayment", "UnreversedElectronicFundsTransfer", "UnreversedOwnerContribution", "UnreversedRentalApplicationFeePayment" ] } } }, { "name": "referencenumber", "in": "query", "description": "Filters results to vendor transaction whose reference number contains the specified value. The reference number cannot exceed 40 characters.", "required": false, "schema": { "type": "string" } }, { "name": "memo", "in": "query", "description": "Filters results to vendor transaction whose memo contains the specified value. The memo cannot exceed 40 characters.", "required": false, "schema": { "type": "string" } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/VendorTransactionMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/vendors/categories": { "get": { "tags": [ "Vendors" ], "summary": "Retrieve all vendor categories", "description": "Retrieves a list of vendor categories.\r\n

Required permission(s):

Maintenance > Vendors - `View`", "operationId": "GetAllVendorCategories", "parameters": [ { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/VendorCategoryMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "post": { "tags": [ "Vendors" ], "summary": "Create a vendor category", "description": "Creates a vendor category.\r\n

Required permission(s):

Maintenance > Vendors - `View` `Edit`", "operationId": "CreateVendorCategory", "requestBody": { "$ref": "#/components/requestBodies/VendorCategorySaveMessage" }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VendorCategoryMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/vendors/categories/{vendorCategoryId}": { "get": { "tags": [ "Vendors" ], "summary": "Retrieve a vendor category", "description": "Retrieves a specific vendor category.\r\n

Required permission(s):

Maintenance > Vendors - `View`", "operationId": "GetVendorCategoryById", "parameters": [ { "name": "vendorCategoryId", "in": "path", "description": "The vendor category identifier.", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VendorCategoryMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "put": { "tags": [ "Vendors" ], "summary": "Update a vendor category", "description": "Updates a vendor category.\r\n

NOTE: Any field not included in the update request will be set to either an empty string or `null` in the database depending on the field definition.
The recommended workflow to ensure no data is inadvertently overwritten is to execute a `GET` request for the resource you're about to update and then use this response to fill any of the fields that are not being updated.\r\n

Required permission(s):

Maintenance > Vendors - `View` `Edit`", "operationId": "UpdateVendorCategory", "parameters": [ { "name": "vendorCategoryId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "$ref": "#/components/requestBodies/VendorCategorySaveMessage" }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VendorCategoryMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/workorders": { "get": { "tags": [ "Work Orders" ], "summary": "Retrieve all work orders", "description": "Retrieves a list of work orders.\r\n

Required permission(s):

Maintenance > Work Orders - `View`", "operationId": "GetAllWorkOrders", "parameters": [ { "name": "entitytype", "in": "query", "description": "Specifies the type of entity that the `EntityId` field refers to. This field is required if the `EntityId` field is populated.", "required": false, "schema": { "type": "string", "enum": [ "Rental", "RentalOwner", "Association" ] } }, { "name": "entityid", "in": "query", "description": "Filters results to any work order associated with the specified entity id value. The value must be of the type specified in the `EntityType` field.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "statuses", "in": "query", "description": "Filters results by the status of the task associated with the work order. If no status is specified, work orders with any status will be returned.", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "string", "enum": [ "New", "InProgress", "Completed", "Deferred", "Closed" ] } } }, { "name": "type", "in": "query", "description": "Filters results to any work order with an associated task with the task type specified.", "required": false, "schema": { "type": "string", "enum": [ "ContactRequest", "ResidentRequest", "Todo", "RentalOwnerRequest" ] } }, { "name": "unitid", "in": "query", "description": "Filters results to any work order associated with the unit identifier.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "unitagreementid", "in": "query", "description": "Filters results to any work order associated with the unit agreement identifier specified.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "lastupdatedfrom", "in": "query", "description": "Filters results to any work orders were updated on or after the specified date. The value must be formatted as YYYY-MM-DD.", "required": false, "schema": { "type": "string", "format": "date" } }, { "name": "lastupdatedto", "in": "query", "description": "Filters results to any work orders were updated on or before the specified date. The value must be formatted as YYYY-MM-DD.", "required": false, "schema": { "type": "string", "format": "date" } }, { "name": "duedatefrom", "in": "query", "description": "Filters results to any work orders with a due date on or after the specified date. The value must be formatted as YYYY-MM-DD.", "required": false, "schema": { "type": "string", "format": "date" } }, { "name": "duedateto", "in": "query", "description": "Filters results to any work orders with a due date on or before the specified date. The value must be formatted as YYYY-MM-DD.", "required": false, "schema": { "type": "string", "format": "date" } }, { "name": "taskcategoryid", "in": "query", "description": "Filters results to any work orders whose priority matches the specified values. If no priority is specified, tasks with any priority will be returned.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "priorities", "in": "query", "description": "Filters results to any work orders that have been assigned to the specified staff user identifier.", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "string", "enum": [ "Low", "Normal", "High" ] } } }, { "name": "assignedtoid", "in": "query", "description": "Filters results to any work orders that have been assigned to the specified staff user identifier.", "required": false, "schema": { "type": "integer", "format": "int32" } }, { "name": "vendorids", "in": "query", "description": "Filters results to any work orders that have been assigned to the specified vendor identifier.", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "integer", "format": "int32" } } }, { "name": "amountfrom", "in": "query", "description": "Filters results to any work orders whose total amounts are equal or greater than the specified amount.", "required": false, "schema": { "type": "number", "format": "double" } }, { "name": "amountto", "in": "query", "description": "Filters results to any work orders whose total amounts are equal or less than the specified amount.", "required": false, "schema": { "type": "number", "format": "double" } }, { "name": "isbilled", "in": "query", "description": "Filters results to work orders that have an associated bill.", "required": false, "schema": { "type": "boolean" } }, { "name": "title", "in": "query", "description": "Filters results to any work orders whose title *contains* the specified value.", "required": false, "schema": { "type": "string" } }, { "name": "taskids", "in": "query", "description": "Filters results to work orders that have an associated to a task in the specified list.", "required": false, "explode": true, "schema": { "type": "array", "items": { "type": "integer", "format": "int32" } } }, { "name": "orderby", "in": "query", "description": "`orderby` indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.", "required": false, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "description": "`offset` indicates the position of the first record to return. The `offset` is zero-based and the default is 0.", "required": false, "schema": { "type": "integer" } }, { "name": "limit", "in": "query", "description": "`limit` indicates the maximum number of results to be returned in the response. `limit` can range between 1 and 1000 and the default is 50.", "required": false, "schema": { "type": "integer" } } ], "responses": { "200": { "description": "OK", "headers": { "X-Total-Count": { "description": "The total number of records available in the overall result set of the request.", "schema": { "type": "integer" } } }, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/WorkOrderMessage" } } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "post": { "tags": [ "Work Orders" ], "summary": "Create a work order", "description": "Creates a work order.\r\n

Required permission(s):

Maintenance > Work Orders - `View` `Edit`", "operationId": "CreateWorkOrder", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WorkOrderPostMessage" } } }, "required": true }, "responses": { "201": { "description": "Created", "headers": { "Location": { "description": "The location to retrieve the created resource.", "schema": { "type": "string" } } }, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WorkOrderMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } }, "/v1/workorders/{workOrderId}": { "get": { "tags": [ "Work Orders" ], "summary": "Retrieve a work order", "description": "Retrieves a specific work order.\r\n

Required permission(s):

Maintenance > Work Orders - `View`", "operationId": "GetWorkOrderById", "parameters": [ { "name": "workOrderId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WorkOrderMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } }, "put": { "tags": [ "Work Orders" ], "summary": "Update a work order", "description": "Updates a work order.\r\n

NOTE: Any field not included in the update request will be set to either an empty string or `null` in the database depending on the field definition.
The recommended workflow to ensure no data is inadvertently overwritten is to execute a `GET` request for the resource you're about to update and then use this response to fill any of the fields that are not being updated.\r\n

Required permission(s):

Maintenance > Work Orders - `View` `Edit`", "operationId": "UpdateWorkOrder", "parameters": [ { "name": "workOrderId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WorkOrderPutMessage" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WorkOrderMessage" } } } }, "400": { "description": "Unable to process the request due to malformed request syntax or invalid parameters.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "401": { "description": "The API key couldn't be authorized.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "403": { "description": "The supplied credentials don't have permissions to access the resource.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "404": { "description": "Resource not found.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "415": { "description": "The Content-Type header on the request is missing or contains an unsupported value.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } }, "422": { "description": "The request data could not be used to fulfill the request.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiErrorResponse" } } } } } } } }, "tags": [ { "name": "Accounting", "description": "GetAllGLAccounts\">general ledger accounts." }, { "name": "Bank Accounts", "description": "GetAllBankAccounts\">bank accounts." }, { "name": "Associations", "description": "GetAssociationNotes\">association notes." }, { "name": "Association Units", "description": "GetAssociationUnitNotes\">unit notes." }, { "name": "Association Appliances", "description": "GetAllAssociationApplianceServiceHistory\">appliance history." }, { "name": "Association Owners", "description": "GetAssociationOwnerNotes\">owner notes." }, { "name": "Association Ownership Accounts", "description": "GetAssociationOwnershipAccountNotes\">ownership account notes." }, { "name": "Association Tenants", "description": "GetAssociationTenantNotes\">tenant notes." }, { "name": "Rental Properties", "description": "GetRentalNotes\">property notes." }, { "name": "Rental Units", "description": "GetRentalUnitNotes\">unit notes." }, { "name": "Rental Appliances", "description": "GetRentalApplianceServiceHistory\">appliance history." }, { "name": "Rental Owners", "description": "GetRentalOwnerNotes\">owner notes." }, { "name": "Rental Tenants", "description": "GetAllTenantNotes\">tenant notes." }, { "name": "Leases", "description": "GetLeaseLedgers\">lease transactions." }, { "name": "Listings", "description": "GetAllListingContacts\">listing contacts." }, { "name": "Applicants", "description": "GetApplicantGroupNotes\">applicant group notes." }, { "name": "Tasks", "description": "" }, { "name": "Work Orders", "description": "" }, { "name": "Vendors", "description": "GetVendorNotes\">vendor notes." }, { "name": "Communications", "description": "GetPhoneLogs\">phone logs." }, { "name": "Administration", "description": "GetAllUserRoles\">user roles." }, { "name": "Client Leads", "description": "Client lead resources providing access to leads that come from All Property Management. These will only be available if your Buildium account is linked to an account in All Property Management. This data will also not be available in sandbox accounts." }, { "name": "Files", "description": "" }, { "name": "Property Groups", "description": "" }, { "name": "Resident Center", "description": "GetResidentCenterUsers\">users." } ], "servers": [ { "url": "https://api.buildium.com/" } ], "components": { "securitySchemes": { "clientId": { "type": "apiKey", "in": "header", "name": "x-buildium-client-id" }, "clientSecret": { "type": "apiKey", "in": "header", "name": "x-buildium-client-secret" } }, "requestBodies": { "VendorCategorySaveMessage": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VendorCategorySaveMessage" } } }, "required": true }, "PaymentRecurringTransactionPostMessage": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PaymentRecurringTransactionPostMessage" } } }, "required": true }, "BankAccountWithdrawalSaveMessage": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BankAccountWithdrawalSaveMessage" } } }, "required": true }, "CreditRecurringTransactionPostMessage": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreditRecurringTransactionPostMessage" } } }, "required": true }, "ListingContactSaveMessage": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ListingContactSaveMessage" } } }, "required": true }, "NotePostMessage": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotePostMessage" } } }, "required": true }, "NotePutMessage": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotePutMessage" } } }, "required": true }, "ChargeRecurringTransactionPostMessage": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ChargeRecurringTransactionPostMessage" } } }, "required": true }, "BankAccountQuickDepositSaveMessage": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BankAccountQuickDepositSaveMessage" } } }, "required": true }, "BankAccountTransferSaveMessage": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BankAccountTransferSaveMessage" } } }, "required": true } }, "schemas": { "AccountInfoMessage": { "description": "This is an object that represents account info.", "type": "object", "properties": { "Id": { "format": "int32", "description": "Account unique identifier.", "type": "integer" }, "CompanyName": { "description": "Account company name.", "type": "string" }, "Url": { "description": "Url for this account.", "type": "string" }, "Contact": { "$ref": "#/components/schemas/ContactInfoMessage" }, "AccountingSettings": { "$ref": "#/components/schemas/AccountingSettingsMessage" } } }, "AccountingEntityMessage": { "description": "An object that represents an accounting entity.", "type": "object", "properties": { "Id": { "format": "int32", "description": "The accounting entity unique identifier.", "type": "integer" }, "AccountingEntityType": { "description": "The type of accounting entity.", "enum": [ "Association", "Rental", "Company" ], "type": "string" }, "Href": { "description": "A link to the accounting entity resource.", "type": "string" } } }, "AccountingEntitySaveMessage": { "description": "Object to represent an Accounting Entity", "required": [ "Id", "AccountingEntityType" ], "type": "object", "properties": { "Id": { "format": "int32", "description": "The unique identifier of the accounting entity", "type": "integer" }, "AccountingEntityType": { "description": "The type of the accounting entity", "enum": [ "Association", "Rental", "Company" ], "type": "string" } } }, "AccountingLockPeriodMessage": { "description": "Accounting lock period settings.", "type": "object", "properties": { "Global": { "$ref": "#/components/schemas/LockPeriodSettingsGlobalMessage" }, "Overrides": { "description": "Settings overrides for specific properties.", "type": "array", "items": { "$ref": "#/components/schemas/LockPeriodSettingsOverridesMessage" } }, "FinancialAdministratorUserIds": { "description": "A collection of identifiers for users that have been designated financial administrators. These users will have permission to add, edit, and delete transactions during a locked period. This won't conflict with any property-level permissions for this account. By default, account administrators have permission to add, edit, and delete transactions within a locked period.", "type": "array", "items": { "format": "int32", "type": "integer" } } } }, "AccountingSettingsMessage": { "type": "object", "properties": { "AccountingBookId": { "format": "int32", "description": "The accounting book entity unique identifier.", "type": "integer" }, "DefaultBankAccountId": { "format": "int32", "description": "The default bank account unique identifier.", "type": "integer" }, "DefaultAccountingBasis": { "description": "The default accounting basis.", "enum": [ "Accrual", "Cash" ], "type": "string" }, "TrustAccountWarning": { "description": "Indicates the type of trust account warnings are enable within the account, if any.", "enum": [ "Off", "ByProperty", "ByRentalOwner" ], "type": "string" }, "FiscalYearEndMonth": { "format": "int32", "description": "The month the fiscal year ends.", "type": "integer" }, "FiscalYearEndDay": { "format": "int32", "description": "The day the fiscal year ends.", "type": "integer" } } }, "AddressMessage": { "description": "Address.", "type": "object", "properties": { "AddressLine1": { "description": "Address line 1 (e.g., street, PO Box, or company name).", "type": "string" }, "AddressLine2": { "description": "Address line 2 (e.g., apartment, suite, unit, or building).", "type": "string" }, "AddressLine3": { "description": "Address line 3", "type": "string" }, "City": { "description": "City, district, suburb, town, or village.", "type": "string" }, "State": { "description": "State, county, province, or region.", "type": "string" }, "PostalCode": { "description": "ZIP or postal code.", "type": "string" }, "Country": { "description": "Country.", "enum": [ "UnitedStates", "Afghanistan", "Akrotiri", "Albania", "Algeria", "AmericanSamoa", "Andorra", "Angola", "Anguilla", "Antarctica", "AntiguaandBarbuda", "Argentina", "Armenia", "Aruba", "AshmoreandCartierIslands", "Australia", "Austria", "Azerbaijan", "Bahamas", "Bahrain", "Bangladesh", "Barbados", "BassasdaIndia", "Belarus", "Belgium", "Belize", "Benin", "Bermuda", "Bhutan", "Bolivia", "BosniaandHerzegovina", "Botswana", "BouvetIsland", "Brazil", "BritishIndianOceanTerritory", "BritishVirginIslands", "Brunei", "Bulgaria", "BurkinaFaso", "Burma", "Burundi", "Cambodia", "Cameroon", "Canada", "CapeVerde", "CaymanIslands", "CentralAfricanRepublic", "Chad", "Chile", "China", "ChristmasIsland", "ClippertonIsland", "CocosIslands", "Colombia", "Comoros", "DemocraticRepublicOfTheCongo", "RepublicOfTheCongo", "CookIslands", "CoralSeaIslands", "CostaRica", "CotedIvoire", "Croatia", "Cuba", "Cyprus", "CzechRepublic", "Denmark", "Dhekelia", "Djibouti", "Dominica", "DominicanRepublic", "Ecuador", "Egypt", "ElSalvador", "EquatorialGuinea", "Eritrea", "Estonia", "Ethiopia", "EuropaIsland", "FalklandIslands", "FaroeIslands", "Fiji", "Finland", "France", "FrenchGuiana", "FrenchPolynesia", "FrenchSouthernandAntarcticLands", "Gabon", "Gambia", "GazaStrip", "Georgia", "Germany", "Ghana", "Gibraltar", "GloriosoIslands", "Greece", "Greenland", "Grenada", "Guadeloupe", "Guam", "Guatemala", "Guernsey", "Guinea", "GuineaBissau", "Guyana", "Haiti", "HeardIslandandMcDonaldIslands", "VaticanCity", "Honduras", "HongKong", "Hungary", "Iceland", "India", "Indonesia", "Iran", "Iraq", "Ireland", "IsleofMan", "Israel", "Italy", "Jamaica", "JanMayen", "Japan", "Jersey", "Jordan", "JuandeNovaIsland", "Kazakhstan", "Kenya", "Kiribati", "NorthKorea", "SouthKorea", "Kuwait", "Kyrgyzstan", "Laos", "Latvia", "Lebanon", "Lesotho", "Liberia", "Libya", "Liechtenstein", "Lithuania", "Luxembourg", "Macau", "Macedonia", "Madagascar", "Malawi", "Malaysia", "Maldives", "Mali", "Malta", "MarshallIslands", "Martinique", "Mauritania", "Mauritius", "Mayotte", "Mexico", "Micronesia", "Moldova", "Monaco", "Mongolia", "Montserrat", "Morocco", "Mozambique", "Namibia", "Nauru", "NavassaIsland", "Nepal", "Netherlands", "NetherlandsAntilles", "NewCaledonia", "NewZealand", "Nicaragua", "Niger", "Nigeria", "Niue", "NorfolkIsland", "NorthernMarianaIslands", "Norway", "Oman", "Pakistan", "Palau", "Panama", "PapuaNewGuinea", "ParacelIslands", "Paraguay", "Peru", "Philippines", "PitcairnIslands", "Poland", "Portugal", "PuertoRico", "Qatar", "Reunion", "Romania", "Russia", "Rwanda", "SaintHelena", "SaintKittsandNevis", "SaintLucia", "SaintPierreandMiquelon", "SaintVincentandtheGrenadines", "Samoa", "SanMarino", "SaoTomeandPrincipe", "SaudiArabia", "Senegal", "SerbiaandMontenegro", "Seychelles", "SierraLeone", "Singapore", "Slovakia", "Slovenia", "SolomonIslands", "Somalia", "SouthAfrica", "SouthGeorgiaandtheSouthSandwichIslands", "Spain", "SpratlyIslands", "SriLanka", "Sudan", "Suriname", "Svalbard", "Swaziland", "Sweden", "Switzerland", "Syria", "Taiwan", "Tajikistan", "Tanzania", "Thailand", "TimorLeste", "Togo", "Tokelau", "Tonga", "TrinidadandTobago", "TromelinIsland", "Tunisia", "Turkey", "Turkmenistan", "TurksandCaicosIslands", "Tuvalu", "Uganda", "Ukraine", "UnitedArabEmirates", "UnitedKingdom", "Uruguay", "Uzbekistan", "Vanuatu", "Venezuela", "Vietnam", "VirginIslands", "WakeIsland", "WallisandFutuna", "WestBank", "WesternSahara", "Yemen", "Zambia", "Zimbabwe" ], "type": "string" } } }, "AllTasksMessage": { "description": "This object represents a task.", "type": "object", "properties": { "Id": { "format": "int32", "description": "Task unique identifier.", "type": "integer" }, "TaskType": { "description": "The task type.", "enum": [ "ContactRequest", "ResidentRequest", "Todo", "RentalOwnerRequest" ], "type": "string" }, "Category": { "$ref": "#/components/schemas/TaskCategoryResponseMessage" }, "Title": { "description": "Task title.", "type": "string" }, "Description": { "description": "Task description.", "type": "string" }, "Property": { "$ref": "#/components/schemas/PropertyMessage" }, "UnitId": { "format": "int32", "description": "The unit unique identifier associated with the task.", "type": "integer" }, "UnitAgreement": { "$ref": "#/components/schemas/UnitAgreementMessage" }, "RequestedByUserEntity": { "$ref": "#/components/schemas/RequestedByUserEntityMessage" }, "AssignedToUserId": { "format": "int32", "description": "The unique identifier of the staff user assigned to the task.", "type": "integer" }, "TaskStatus": { "description": "Task status.", "enum": [ "New", "InProgress", "Completed", "Deferred", "Closed" ], "type": "string" }, "Priority": { "description": "Task priority.", "enum": [ "Low", "Normal", "High" ], "type": "string" }, "DueDate": { "format": "date", "description": "Task due date.", "type": "string" }, "CreatedDateTime": { "format": "date-time", "description": "The date and time the task was created.", "type": "string" }, "LastUpdatedDateTime": { "format": "date-time", "description": "The date and time the task was last updated.", "type": "string" } } }, "AnnouncementMessage": { "type": "object", "properties": { "Id": { "format": "int32", "description": "Unique identifier of the announcement.", "type": "integer" }, "Subject": { "description": "Subject line of the announcement.", "type": "string" }, "Body": { "description": "Content of the announcement.", "type": "string" }, "AnnouncementDate": { "format": "date", "description": "Date the announcement was published.", "type": "string" }, "ExpirationDate": { "format": "date", "description": "Indicates the date on which the announcement will be removed from the Resident Center.", "type": "string" }, "Channels": { "description": "List of the distribution channels the announcement was sent through.", "type": "array", "items": { "enum": [ "None", "ResidentCenter", "Email", "Sms" ], "type": "string" } }, "Sender": { "$ref": "#/components/schemas/AnnouncementSenderMessage" } } }, "AnnouncementPostMessage": { "required": [ "Subject", "Body", "NotifyAssociationTenants", "IncludeAlternateEmail", "PropertyIds" ], "type": "object", "properties": { "Subject": { "description": "The subject of the announcement. Note, this will only show up in announcements sent via email and in the Resident Center. The value cannot exceed 100 characters.", "type": "string" }, "Body": { "description": "The content of the announcement. The value cannot exceed 65535 characters. Note: if your message is over 140 characters, the announcement will not be sent via SMS. Announcement texts are available for US numbers only.", "type": "string" }, "ExpirationDate": { "format": "date", "description": "Optional date that indicates when the announcement should be removed from the Resident Center. If no date is provided the announcement will appear indefinitely The date must be formatted as YYYY-MM-DD.", "type": "string" }, "NotifyAssociationTenants": { "description": "Indicates whether to include notifying the association tenants in addition to the association owners when publishing the announcement. Note this is only pertains to announcements sent to residents of `Association` properties.", "type": "boolean" }, "IncludeAlternateEmail": { "description": "Indicates whether to send the announcement to alternate emails in addition to the main email addresses when publishing the announcement.", "type": "boolean" }, "PropertyIds": { "description": "A list of association and/or rental property unique identifiers whose residents should receive the announcement.", "type": "array", "items": { "format": "int32", "type": "integer" } } } }, "AnnouncementSearchMessage": { "type": "object", "properties": { "AnnouncementDateFrom": { "format": "date", "description": "Filters results to any announcements created on or after the specified date. The value must be formatted as YYYY-MM-DD.", "type": "string" }, "AnnouncementDateTo": { "format": "date", "description": "Filters results to any announcements created on or before the specified date. The value must be formatted as YYYY-MM-DD.", "type": "string" }, "EntityId": { "format": "int32", "description": "Filters results to any announcement associated with the specified entity id value. The value must be of the type specified in the `EntityType` field.", "type": "integer" }, "EntityType": { "description": "Specifies the type of entity that the `EntityId` field refers to. This field is required if the `EntityId` field is provided.", "enum": [ "Rental", "RentalOwner", "Association" ], "type": "string" }, "SenderId": { "format": "int32", "description": "Unique identifier of the user that published the announcement.", "type": "integer" } } }, "AnnouncementSenderMessage": { "description": "The Buildium user who published the announcement.", "type": "object", "properties": { "Id": { "format": "int32", "description": "Unique identifier of the user who sent the announcement.", "type": "integer" }, "DisplayName": { "description": "Display name of the user who sent the announcement.", "type": "string" }, "Href": { "description": "A link to the user resource.", "type": "string" } } }, "ApiError": { "type": "object", "properties": { "Key": { "type": "string" }, "Value": { "type": "string" } } }, "ApiErrorResponse": { "type": "object", "properties": { "UserMessage": { "type": "string" }, "ErrorCode": { "type": "string" }, "Errors": { "type": "array", "items": { "$ref": "#/components/schemas/ApiError" } } } }, "ApplianceMessage": { "description": "Appliance information.", "type": "object", "properties": { "Id": { "format": "int32", "description": "Unique identifier of the appliance.", "type": "integer" }, "Name": { "description": "Name of the appliance.", "type": "string" }, "Make": { "description": "Make of the appliance.", "type": "string" }, "Model": { "description": "Model of the appliance.", "type": "string" }, "Description": { "description": "Description of the appliance.", "type": "string" } } }, "ApplicantApplicationMessage": { "type": "object", "properties": { "Id": { "format": "int32", "description": "Rental application unique identifier.", "type": "integer" }, "ApplicationNumber": { "description": "An alpha numeric value that can be used to uniquely identify the application. This is typically provided to an applicant to use as a reference when making inquiries about their application.", "type": "string" }, "ApplicationStatus": { "description": "Indicates the current application status.", "enum": [ "Undecided", "Approved", "Rejected", "AddedToLease", "Cancelled", "Deferred", "New" ], "type": "string" }, "ApplicationSubmittedDateTime": { "format": "date-time", "description": "Date and time the application was submitted.", "type": "string" } } }, "ApplicantGroupMessage": { "type": "object", "properties": { "Id": { "format": "int32", "description": "Applicant group unique identifier.", "type": "integer" }, "PropertyId": { "format": "int32", "description": "Rental property unique identifier that the applicant group is associated with.", "type": "integer" }, "UnitId": { "format": "int32", "description": "Rental property unit unique identifier that the applicant group is associated with.", "type": "integer" }, "ApplicationGroupStatus": { "description": "Indicates the current applicant group status. Note, this status is independent from individual application statuses within the group.", "enum": [ "Undecided", "Approved", "Rejected", "AddedToLease", "Cancelled", "Deferred", "New" ], "type": "string" }, "Applicants": { "description": "A collection of applicants in the group.", "type": "array", "items": { "$ref": "#/components/schemas/ApplicantMessage" } } } }, "ApplicantGroupPostMessage": { "required": [ "ApplicantIds" ], "type": "object", "properties": { "UnitId": { "format": "int32", "description": "Rental property unit unique identifier to associate with the applicant group.", "type": "integer" }, "ApplicantIds": { "description": "The applicant unique identifiers to include in the applicant group. Note, that applicants can only be included in one applicant group.", "type": "array", "items": { "format": "int32", "type": "integer" } } } }, "ApplicantGroupPutMessage": { "required": [ "ApplicantGroupStatus", "ApplicantIds" ], "type": "object", "properties": { "UnitId": { "format": "int32", "description": "Rental property unit unique identifier to associate with the applicant group.", "type": "integer" }, "ApplicantGroupStatus": { "description": "Sets the status of the applicant group.", "enum": [ "Undecided", "Approved", "Rejected", "Cancelled", "Deferred" ], "type": "string" }, "ApplicantIds": { "description": "The applicant unique identifiers to include in the applicant group. Note, that applicants can only be included in one applicant group.", "type": "array", "items": { "format": "int32", "type": "integer" } } } }, "ApplicantGroupSearchMessage": { "type": "object", "properties": { "EntityType": { "description": "Filters results to any applicant groups associated with the specified entity identifier. This filter is used in conjunction with the `EntityType` field which must be set to the type of entity this identifier references.", "enum": [ "Rental", "RentalOwner" ], "type": "string" }, "EntityId": { "format": "int32", "description": "Specifies the type of entity that `EntityId` refers to. This field is required if `EntityId` is specified.", "type": "integer" }, "ApplicationGroupStatuses": { "description": "Filters results by the applicant group status. If no status is specified, applicant groups in any status will be returned.", "type": "array", "items": { "enum": [ "Undecided", "Approved", "Rejected", "AddedToLease", "Cancelled", "Deferred", "New" ], "type": "string" } }, "UnitIds": { "description": "Filters results to applicant groups associated to any of the specified rental property unit identifiers.", "type": "array", "items": { "format": "int32", "type": "integer" } }, "Name": { "description": "Filters results to applicant groups that includes applicants whose name *contains* the specified value.", "type": "string" } } }, "ApplicantMessage": { "type": "object", "properties": { "Id": { "format": "int32", "description": "Applicant unique identifier.", "type": "integer" }, "ApplicantGroupId": { "format": "int32", "description": "Applicant group unique identifier.", "type": "integer" }, "PropertyId": { "format": "int32", "description": "Rental property unique identifier that the applicant is associated with.", "type": "integer" }, "UnitId": { "format": "int32", "description": "Rental property unit unique identifier that the applicant is associated with.", "type": "integer" }, "TenantId": { "format": "int32", "description": "The rental tenant identifier associated with the applicant. This value will be null if the applicant never transitioned into a tenant.", "type": "integer" }, "FirstName": { "description": "Applicant first name.", "type": "string" }, "LastName": { "description": "Applicant last name.", "type": "string" }, "Email": { "description": "Applicant email address.", "type": "string" }, "PhoneNumbers": { "description": "Applicant phone numbers.", "type": "array", "items": { "$ref": "#/components/schemas/PhoneNumberMessage" } }, "Applications": { "description": "A collection of applications associated with the applicant.", "type": "array", "items": { "$ref": "#/components/schemas/ApplicantApplicationMessage" } } } }, "ApplicantPostMessage": { "description": "This object represents an applicant.", "required": [ "FirstName", "LastName", "SendRentalApplicationEmail" ], "type": "object", "properties": { "UnitId": { "format": "int32", "description": "The rental property unit unique identifier to associate with the applicant.", "type": "integer" }, "FirstName": { "description": "The first name of the applicant. The value can not exceed 127 characters.", "type": "string" }, "LastName": { "description": "The last name of the applicant. The value can not exceed 127 characters.", "type": "string" }, "Email": { "description": "The email address of the applicant.", "type": "string" }, "PhoneNumbers": { "$ref": "#/components/schemas/PhoneNumbersMessage" }, "SendRentalApplicationEmail": { "description": "Indicates whether to send the applicant an email with a link to the online rental application form.", "type": "boolean" } } }, "ApplicantPutMessage": { "required": [ "FirstName", "LastName" ], "type": "object", "properties": { "UnitId": { "format": "int32", "description": "The rental property unit unique identifier to associate with the applicant.", "type": "integer" }, "FirstName": { "description": "The first name of the applicant. The value can not exceed 127 characters.", "type": "string" }, "LastName": { "description": "The last name of the applicant. The value can not exceed 127 characters.", "type": "string" }, "Email": { "description": "The email address of the applicant.", "type": "string" }, "PhoneNumbers": { "$ref": "#/components/schemas/PhoneNumbersMessage" } } }, "ApplicantSearchMessage": { "type": "object", "properties": { "EntityId": { "format": "int32", "description": "Filters results to any applicant associated with the specified entity identifier. This filter is used in conjunction with the `EntityType` field which must be set to the type of entity this identifier references.", "type": "integer" }, "EntityType": { "description": "Specifies the type of entity that `EntityId` refers to. This field is required if `EntityId` is specified.", "enum": [ "Rental", "RentalOwner" ], "type": "string" }, "ApplicationStatuses": { "description": "Filters results by the applicant application status. If no status is specified, applicants with an application in any status will be returned.", "type": "array", "items": { "enum": [ "Undecided", "Approved", "Rejected", "AddedToLease", "Cancelled", "Deferred", "New" ], "type": "string" } }, "UnitIds": { "description": "Filters results to applicants associated to any of the specified rental property unit identifiers.", "type": "array", "items": { "format": "int32", "type": "integer" } }, "Name": { "description": "Filters results to applicants whose name *contains* the specified value.", "type": "string" }, "Email": { "description": "Filters results to applicants whose email *contains* the specified value", "type": "string" }, "ApplicationSubmittedStartDate": { "format": "date-time", "description": "Filters results to any applicant who submitted an application on or after the date specified.", "type": "string" }, "ApplicationSubmittedEndDate": { "format": "date-time", "description": "Filters results to any applicant who submitted an application on or prior to the date specified.", "type": "string" } } }, "ApplicationMessage": { "type": "object", "properties": { "Id": { "format": "int32", "description": "Rental application unique identifier.", "type": "integer" }, "ApplicationNumber": { "description": "An alpha numeric value that can be used to uniquely identify the application. This is typically provided to an applicant to use as a reference when making inquiries about their application.", "type": "string" }, "ApplicationStatus": { "description": "Indicates the current application status.", "enum": [ "Undecided", "Approved", "Rejected", "AddedToLease", "Cancelled", "Deferred", "New" ], "type": "string" }, "ApplicationSubmittedDateTime": { "format": "date-time", "description": "Date and time the application was submitted.", "type": "string" }, "Application": { "description": "A submitted rental application.", "type": "array", "items": { "$ref": "#/components/schemas/ApplicationResponseMessage" } } } }, "ApplicationPutMessage": { "required": [ "ApplicationStatus" ], "type": "object", "properties": { "ApplicationStatus": { "description": "Sets the status of the application.", "enum": [ "Undecided", "Approved", "Rejected", "Cancelled", "Deferred" ], "type": "string" } } }, "ApplicationResponseFieldMessage": { "type": "object", "properties": { "FieldCategoryType": { "description": "Indicates the field category type the field is assigned. The `FieldCategoryType` can be used to identify specific data points within the application. For example, to identify the fields that contain the applicants full name you would filter the fields within the application where the `FieldCategoryType` is equal to `ApplicantName`.", "enum": [ "ApplicantName", "ApplicantEmail", "ApplicantSocialSecurityNumber", "ApplicantAlternateEmail", "ApplicantHomePhone", "ApplicantCellPhone", "ApplicantWorkPhone", "ApplicantFax", "ApplicantBirthDate", "ApplicantDriversLicense", "ApplicantCurrentAddress", "ApplicantAlternateAddress", "EmergencyContactName", "EmergencyContactRelationship", "EmergencyContactEmail", "EmergencyContactPhone", "OccupantName", "OccupantRelationship", "OccupantBirthDate", "OccupantEmail", "OccupantPhoneNumber", "CosignerName", "CosignerRelationship", "CosignerSocialSecurityNumber", "CosignerPhoneNumber", "CosignerEmail", "EmployerName", "EmployerAddress", "EmployerPhoneNumber", "EmployerEmail", "PositionHeld", "EmploymentDates", "MonthlyGrossSalary", "SupervisorName", "SupervisorTitle", "PetType", "PetName", "PetAge", "PetSpayedOrNeutered", "PetLicenseNumber", "PetWeight", "DesiredMoveInDate", "DesiredLeaseDuration", "DesiredRent", "DesiredNumberOfBedrooms", "DesiredNumberOfBathrooms", "ReferenceName", "ReferenceRelationship", "ReferencePhoneNumber", "ReferenceEmail", "RentalAddress", "RentalDates", "MonthlyRent", "ReasonForLeaving", "LandlordName", "LandlordPhoneNumber", "LandlordEmail", "VehicleMake", "VehicleModel", "VehicleColor", "VehicleYear", "VehicleLicensePlate", "AgreedTo", "AgreedBy", "CosignerAddress", "ApplicantAddress", "OtherComments", "EmailApplication" ], "type": "string" }, "FieldType": { "description": "Indicates the fields expected input value format and/or data type. For example, a field can be assigned a `FieldType` of `DateDayMonthYear` which indicates the input value must be a date containing a day, month and year.", "enum": [ "TextSingleLine", "Email", "DateDayMonthYear", "Number", "DateMonthYear", "DateYear", "GroupHeading", "NumberOfBathrooms", "NumberOfBedrooms", "PhoneNumber", "SocialSecurityNumber", "TextMultipleLines", "TrueFalse", "YesNo", "Currency", "FirstName", "LastName", "DateRangeFromDate", "DateRangeToDate", "AddressCountry", "AddressStreet", "AddressCity", "AddressState", "AddressZip", "DriversLicenseNumber", "DriversLicenseState", "Attachment" ], "type": "string" }, "FieldLabel": { "description": "A user defined description of the field. This value is typically displayed as the form field label on the application.", "type": "string" }, "Value": { "description": "The field input value from the applicant.", "type": "string" } } }, "ApplicationResponseMessage": { "type": "object", "properties": { "SectionLabel": { "description": "A user defined description of the application section.", "type": "string" }, "SectionType": { "description": "Indicates the application section type. The `SectionType` can be used to identify specific sections within the application.", "enum": [ "ApplicantInformation", "PropertyInformation", "RentalHistory", "Employment", "References", "Cosigners", "AdditionalOccupants", "Pets", "Vehicles", "TermsAndConditions", "Other" ], "type": "string" }, "SectionResponses": { "description": "A collection of form fields within the section.", "type": "array", "items": { "$ref": "#/components/schemas/ApplicationSectionResponseMessage" } } } }, "ApplicationSectionResponseMessage": { "type": "object", "properties": { "SectionFields": { "type": "array", "items": { "$ref": "#/components/schemas/ApplicationResponseFieldMessage" } } } }, "AssociationApplianceMessage": { "type": "object", "properties": { "Id": { "format": "int32", "description": "Appliance unique identifier.", "type": "integer" }, "AssociationId": { "format": "int32", "description": "Association unique identifier that the appliance belongs to.", "type": "integer" }, "UnitId": { "format": "int32", "description": "Association unit unique identifier that the appliance belongs to.", "type": "integer" }, "Name": { "description": "Name of the appliance.", "type": "string" }, "Make": { "description": "Make of the appliance.", "type": "string" }, "Model": { "description": "Model of the appliance.", "type": "string" }, "Description": { "description": "Description of the appliance.", "type": "string" }, "WarrantyEndDate": { "format": "date", "description": "Warranty end date of the appliance.", "type": "string" } } }, "AssociationAppliancePostMessage": { "required": [ "AssociationId", "Name" ], "type": "object", "properties": { "AssociationId": { "format": "int32", "description": "Association unique identifier that the appliance belongs to.", "type": "integer" }, "UnitId": { "format": "int32", "description": "Association unit unique identifier that the appliance belongs to.", "type": "integer" }, "Name": { "description": "The name of the appliance. The name cannot exceed 100 characters.", "type": "string" }, "Make": { "description": "The make of the appliance. The make cannot exceed 30 characters.", "type": "string" }, "Model": { "description": "The model of the appliance. The model cannot exceed 30 characters.", "type": "string" }, "Description": { "description": "The description of the appliance. The description cannot exceed 500 characters.", "type": "string" }, "InstallDate": { "format": "date", "description": "The install date for the appliance's warranty. Must be formatted as `YYYY-MM-DD`.", "type": "string" }, "WarrantyEndDate": { "format": "date", "description": "The end date for the appliance's warranty. The warranty's end date cannot be before the installed date, if it exists. Must be formatted as `YYYY-MM-DD`.", "type": "string" } } }, "AssociationAppliancePutMessage": { "required": [ "Name" ], "type": "object", "properties": { "UnitId": { "format": "int32", "description": "The unit identifier the association appliance belongs to. Must be within the association property the appliance is in.", "type": "integer" }, "Name": { "description": "The name of the association appliance. The name cannot exceed 100 characters.", "type": "string" }, "Make": { "description": "The make of the association appliance. The make cannot exceed 30 characters.", "type": "string" }, "Model": { "description": "The model of the association appliance. The model cannot exceed 30 characters.", "type": "string" }, "Description": { "description": "The description of the association appliance. The description cannot exceed 500 characters.", "type": "string" }, "WarrantyEndDate": { "format": "date", "description": "The end date for the association appliance's warranty. The warranty's end date cannot be before the installed date, if it exists. Must be formatted as `YYYY-MM-DD`.", "type": "string" } } }, "AssociationApplianceSearchMessage": { "type": "object", "properties": { "AssociationIds": { "description": "Filters results to appliances associated to any of the specified association identifiers.", "type": "array", "items": { "format": "int32", "type": "integer" } }, "UnitIds": { "description": "Filters results to appliances associated to any of the specified association unit identifiers.", "type": "array", "items": { "format": "int32", "type": "integer" } } } }, "AssociationApplianceServiceHistoryMessage": { "type": "object", "properties": { "Id": { "format": "int32", "description": "Appliance service history unique identifier.", "type": "integer" }, "ServiceType": { "description": "Type of service performed.", "enum": [ "Installed", "Serviced", "Uninstalled" ], "type": "string" }, "Date": { "format": "date", "description": "Date of the service.", "type": "string" }, "Details": { "description": "Details of the service.", "type": "string" } } }, "AssociationApplianceServiceHistoryPostMessage": { "required": [ "ServiceType", "Date" ], "type": "object", "properties": { "ServiceType": { "description": "Specifies the type of service that occured.", "enum": [ "Installed", "Serviced", "Uninstalled" ], "type": "string" }, "Date": { "format": "date", "description": "Date the service was performed. Must be formatted as `YYYY-MM-DD`.", "type": "string" }, "Details": { "description": "The service history details associated with the appliance. The description cannot exceed 100 characters.", "type": "string" } } }, "AssociationBoardMemberMessage": { "type": "object", "properties": { "Id": { "format": "int32", "description": "Association board member unique identifier.", "type": "integer" }, "AssociationOwnerId": { "format": "int32", "description": "Association owner unique identifier.", "type": "integer" }, "FirstName": { "description": "Association owner first name.", "type": "string" }, "LastName": { "description": "Association owner last name.", "type": "string" }, "Email": { "description": "Association owner email.", "type": "string" }, "PhoneNumbers": { "description": "List of phone numbers of the association owner.", "type": "array", "items": { "$ref": "#/components/schemas/PhoneNumberMessage" } }, "BoardPositionType": { "description": "Indicates the board position held by the association owner.", "enum": [ "President", "VicePresident", "Treasurer", "Secretary", "BoardMember" ], "type": "string" }, "StartDate": { "format": "date", "description": "Start date of the association owner's term as board member", "type": "string" }, "EndDate": { "format": "date", "description": "End date of the association owner's term as board member", "type": "string" }, "CreatedDateTime": { "format": "date-time", "description": "Date and time when the board member was created.", "type": "string" } } }, "AssociationBoardMemberPostMessage": { "description": "This object represents the Board Member for an Association.", "required": [ "AssociationOwnerId", "BoardPositionType" ], "type": "object", "properties": { "AssociationOwnerId": { "format": "int32", "description": "The association owner's unique identifier.", "type": "integer" }, "BoardPositionType": { "description": "Indicates the board position held by the association owner.", "enum": [ "President", "VicePresident", "Treasurer", "Secretary", "BoardMember" ], "type": "string" }, "StartDate": { "format": "date", "description": "Start date of the association owners term as a board member. Must be formatted as `YYYY-MM-DD`.", "type": "string" }, "EndDate": { "format": "date", "description": "End date of the association owners term as a board member. Must be formatted as `YYYY-MM-DD`.", "type": "string" } } }, "AssociationBoardMemberPutMessage": { "description": "This object represents the Board Member for an Association.", "required": [ "BoardPositionType" ], "type": "object", "properties": { "BoardPositionType": { "description": "Indicates the board position held by the association owner.", "enum": [ "President", "VicePresident", "Treasurer", "Secretary", "BoardMember" ], "type": "string" }, "StartDate": { "format": "date", "description": "Start date of the association owners term as a board member. Must be formatted as `YYYY-MM-DD`.", "type": "string" }, "EndDate": { "format": "date", "description": "End date of the association owners term as a board member. Must be formatted as `YYYY-MM-DD`.", "type": "string" } } }, "AssociationBoardMemberSearchMessage": { "type": "object", "properties": { "Statuses": { "description": "Filters results to only records whose status is equal to the specified values.", "type": "array", "items": { "enum": [ "Current", "Former", "Future" ], "type": "string" } }, "BoardPositionTypes": { "description": "Filters results to only records whose board position type is equal to the specified values.", "type": "array", "items": { "enum": [ "President", "VicePresident", "Treasurer", "Secretary", "BoardMember" ], "type": "string" } }, "CreatedDateTimeTo": { "format": "date-time", "description": "Filters results to only records that were created before this date. Must be formatted as `YYYY-MM-DD`.", "type": "string" }, "CreatedDateTimeFrom": { "format": "date-time", "description": "Filters results to only records that were created after this date. Must be formatted as `YYYY-MM-DD`.", "type": "string" } } }, "AssociationMessage": { "description": "This is an object that represents home owner associations.", "type": "object", "properties": { "Id": { "format": "int32", "description": "Association unique identifier.", "type": "integer" }, "Name": { "description": "Association name.", "type": "string" }, "IsActive": { "description": "Indicates whether the association is active within the Buildium platform.", "type": "boolean" }, "Reserve": { "format": "double", "description": "A property reserve is cash that a property manager keeps on hand in case of unexpected expenses. It is available cash that simply isn't disbursed in an owner draw.", "type": "number" }, "Description": { "description": "Description of the association.", "type": "string" }, "YearBuilt": { "format": "int32", "description": "Indicates the year the association was built. Null if no value is set.", "type": "integer" }, "OperatingBankAccount": { "description": "Primary bank account that an association uses for its income and expenses.", "type": "string" }, "OperatingBankAccountId": { "format": "int32", "description": "Primary bank account unique identifier that an association uses for its income and expenses.", "type": "integer" }, "Address": { "$ref": "#/components/schemas/AddressMessage" }, "AssociationManager": { "$ref": "#/components/schemas/PropertyManagerMessage" }, "FiscalYearEndDay": { "format": "int32", "description": "The day the fiscal year ends for the association.", "type": "integer" }, "FiscalYearEndMonth": { "format": "int32", "description": "The month the fiscal year ends for the association.", "type": "integer" } } }, "AssociationOwnerBoardTermMessage": { "description": "Board member term.", "type": "object", "properties": { "Id": { "format": "int32", "description": "Board term unique identifier.", "type": "integer" }, "AssociationId": { "format": "int32", "description": "Association unique identifier.", "type": "integer" }, "BoardPositionType": { "description": "Indicates the board position held by the association owner.", "enum": [ "President", "VicePresident", "Treasurer", "Secretary", "BoardMember" ], "type": "string" }, "StartDate": { "format": "date", "description": "Start date of the board member term.", "type": "string" }, "EndDate": { "format": "date", "description": "End date of the board member term.", "type": "string" }, "CreatedDateTime": { "format": "date-time", "description": "Date and time the board member position was created.", "type": "string" } } }, "AssociationOwnerBoardTermPostMessage": { "description": "Board member term.", "required": [ "BoardPositionType" ], "type": "object", "properties": { "BoardPositionType": { "description": "Indicates the board position held by the association owner.", "enum": [ "President", "VicePresident", "Treasurer", "Secretary", "BoardMember" ], "type": "string" }, "StartDate": { "format": "date", "description": "Start date of the board member term. Must be formatted as `YYYY-MM-DD`.", "type": "string" }, "EndDate": { "format": "date", "description": "End date of the board member term. Must be formatted as `YYYY-MM-DD`.", "type": "string" } } }, "AssociationOwnerMessage": { "description": "This object represents an owner of a unit(s) that exists within a home owner association.", "type": "object", "properties": { "Id": { "format": "int32", "description": "Unique identifier.", "type": "integer" }, "FirstName": { "description": "First name.", "type": "string" }, "LastName": { "description": "Last name.", "type": "string" }, "Email": { "description": "Email.", "type": "string" }, "AlternateEmail": { "description": "Alternate email.", "type": "string" }, "PhoneNumbers": { "description": "List of phone numbers of the association user.", "type": "array", "items": { "$ref": "#/components/schemas/PhoneNumberMessage" } }, "PrimaryAddress": { "$ref": "#/components/schemas/AddressMessage" }, "AlternateAddress": { "$ref": "#/components/schemas/AddressMessage" }, "Comment": { "description": "General comments.", "type": "string" }, "EmergencyContact": { "$ref": "#/components/schemas/EmergencyContactMessage" }, "OwnershipAccounts": { "description": "List of associated ownership accounts.", "type": "array", "items": { "$ref": "#/components/schemas/AssociationOwnershipAccountMessage" } }, "MailingPreference": { "description": "Indicates the association owner's mailing preference.", "enum": [ "PrimaryAddress", "AlternateAddress" ], "type": "string" }, "Vehicles": { "description": "List of vehicles associated with the association owner.", "type": "array", "items": { "$ref": "#/components/schemas/VehicleMessage" } }, "OccupiesUnit": { "description": "Indicates if the association owner occupies a unit(s) within the association.", "type": "boolean" }, "BoardMemberTerms": { "description": "List of Board Member Terms for the given Association Owner(s)", "type": "array", "items": { "$ref": "#/components/schemas/AssociationOwnerBoardTermMessage" } }, "CreatedDateTime": { "format": "date-time", "description": "Date and time the association owner was created.", "type": "string" }, "TaxId": { "description": "Taxpayer identification number. Examples of United States identification numbers are Social Security number or a Employer Identification Number.", "type": "string" }, "DelinquencyStatus": { "description": "Indicates the delinquency status of the association owner.", "enum": [ "NoDelinquency", "InCollections", "InForeclosure", "Foreclosed" ], "type": "string" } } }, "AssociationOwnerPostMessage": { "description": "This object represents the Association Owner to add when Creating a new OwnershipAccount", "required": [ "FirstName", "LastName", "PrimaryAddress", "IsOwnerOccupied" ], "type": "object", "properties": { "FirstName": { "description": "First name of the owner. The value cannot exceed 127 characters.", "type": "string" }, "LastName": { "description": "Last name of the owner. The value cannot exceed 127 characters.", "type": "string" }, "PrimaryAddress": { "$ref": "#/components/schemas/SaveAddressMessage" }, "AlternateAddress": { "$ref": "#/components/schemas/SaveAddressMessage" }, "BoardMemberTerm": { "$ref": "#/components/schemas/AssociationOwnerBoardTermPostMessage" }, "IsOwnerOccupied": { "description": "Indicates if the association owner occupies a unit(s) within the association.", "type": "boolean" }, "Email": { "description": "Email of owner.", "type": "string" }, "AlternateEmail": { "description": "Alternate email of owner.", "type": "string" }, "PhoneNumbers": { "$ref": "#/components/schemas/PhoneNumbersMessage" }, "DateOfBirth": { "format": "date", "description": "Date Of Birth for the owner. Must be formatted as `YYYY-MM-DD`.", "type": "string" }, "EmergencyContact": { "$ref": "#/components/schemas/SaveEmergencyContactMessage" }, "Comment": { "description": "Comments about the owner. The value cannot exceed 65,535 characters.", "type": "string" }, "MailingPreference": { "description": "Mailing preferences for the owner. If an alternate address exists and this value is not provided then the primary address will be set as the preferred address.", "enum": [ "PrimaryAddress", "AlternateAddress" ], "type": "string" }, "TaxId": { "description": "Taxpayer identification number of the owner. Examples of United States identification numbers are Social Security number or a Employer Identification Number. Valid formats are: `12-1234567`, `123-12-1234`, `123456789`.", "type": "string" } } }, "AssociationOwnerPutMessage": { "required": [ "FirstName", "LastName", "PrimaryAddress" ], "type": "object", "properties": { "FirstName": { "description": "First name of the owner. The value cannot exceed 127 characters.", "type": "string" }, "LastName": { "description": "Last name of the owner. The value cannot exceed 127 characters.", "type": "string" }, "PrimaryAddress": { "$ref": "#/components/schemas/SaveAddressMessage" }, "AlternateAddress": { "$ref": "#/components/schemas/SaveAddressMessage" }, "Email": { "description": "Email of the owner.", "type": "string" }, "AlternateEmail": { "description": "Alternate email of the owner.", "type": "string" }, "PhoneNumbers": { "$ref": "#/components/schemas/PhoneNumbersMessage" }, "EmergencyContact": { "$ref": "#/components/schemas/SaveEmergencyContactMessage" }, "Comment": { "description": "Comments about the owner. The value cannot exceed 65,535 characters.", "type": "string" }, "MailingPreference": { "description": "Mailing preferences for the owner. If an alternate address exists and this value is not provided then the primary address will be set as the preferred address.", "enum": [ "PrimaryAddress", "AlternateAddress" ], "type": "string" }, "TaxId": { "description": "Taxpayer identification number of the owner. Examples of United States identification numbers are Social Security number or a Employer Identification Number. Valid formats are: `12-1234567`, `123-12-1234`, `123456789`.", "type": "string" } } }, "AssociationOwnershipAccountMessage": { "description": "This object represents a home owner association ownership account.", "type": "object", "properties": { "Id": { "format": "int32", "description": "Association ownership account unique identifier.", "type": "integer" }, "AssociationId": { "format": "int32", "description": "Association unique identifier that the ownership account belongs to.", "type": "integer" }, "UnitId": { "format": "int32", "description": "Association unit unique identifier that the ownership account is related to.", "type": "integer" }, "Status": { "description": "Indicates the status of the ownership account.", "enum": [ "Active", "Past", "Future" ], "type": "string" }, "DateOfPurchase": { "format": "date", "description": "Date the unit(s) where purchased by the owner.", "type": "string" }, "DateOfSale": { "format": "date", "description": "Date the unit(s) where sold by the owner.", "type": "string" }, "Comments": { "description": "Comments about the ownership account.", "type": "string" }, "AssociationOwnerIds": { "description": "Association owners associated with the ownership account", "type": "array", "items": { "format": "int32", "type": "integer" } }, "DelinquencyStatus": { "description": "Indicates the delinquency status of the ownership account", "enum": [ "NoDelinquency", "InCollections", "InForeclosure", "Foreclosed" ], "type": "string" } } }, "AssociationOwnershipAccountPostMessage": { "required": [ "UnitId", "DateOfPurchase", "SendWelcomeEmail", "ReplaceExistingOwnershipAccount" ], "type": "object", "properties": { "UnitId": { "format": "int32", "description": "Association unit unique identifier that the ownership account is related to.", "type": "integer" }, "DateOfPurchase": { "format": "date", "description": "Date the unit was purchased by the owner. Must be formatted as YYYY-MM-DD. \r\nIf an existing association ownership account is being replaced then this date must be after the existing ownership accounts date of sale.", "type": "string" }, "AssociationFee": { "format": "double", "description": "Recurring association fee charge. If provided, a recurring transaction will be created that adds a charge in the amount specified to the ownership account ledger with the frequency indicated in RecurringFrequency.", "type": "number" }, "RecurringFrequency": { "description": "Indicates the frequency of the recurring association fee. This field is required if `AssociationFee` has a value.", "enum": [ "Monthly", "Weekly", "Every2Weeks", "Quarterly", "Yearly", "Every2Months", "Daily", "Every6Months", "OneTime" ], "type": "string" }, "AssociationOwnerIds": { "description": "Current or former association owners to assign to this ownership account. Values must be an active association owner identifiers. The request must include at least one owner in this property OR the `AssociationOwners` property.", "type": "array", "items": { "format": "int32", "type": "integer" } }, "AssociationOwners": { "description": "Create new association owner(s) and assigns them to this new ownership account. The request must include at least one owner in this property OR the `AssociationOwnerIds` property.", "type": "array", "items": { "$ref": "#/components/schemas/AssociationOwnerPostMessage" } }, "SendWelcomeEmail": { "description": "Indicates whether to send an owner portal welcome email to all of the association owners assigned to this ownership account. Once the owners sign into the portal, they can make online payments, view important documents, submit requests, and more.", "type": "boolean" }, "ReplaceExistingOwnershipAccount": { "description": "Indicates whether to replace an ownership account if one already exists for this unit. \r\nIf this value is false and an ownership account exists the request will fail.This protects against inadvertently overwriting of an existing ownership account. \r\nIf the value is true and an ownership account exists then the existing ownership account will be marked as with a status of Past and the newly created ownership account will be Active for the unit.", "type": "boolean" } } }, "AssociationOwnershipAccountPutMessage": { "required": [ "DateOfPurchase" ], "type": "object", "properties": { "DateOfPurchase": { "format": "date", "description": "Date the unit was purchased by the owner. Must be formatted as YYYY-MM-DD.", "type": "string" } } }, "AssociationOwnershipAccountSearchMessage": { "type": "object", "properties": { "AssociationIds": { "description": "Filters results to any ownership accounts who belong to the specified set of association ids.", "type": "array", "items": { "format": "int32", "type": "integer" } }, "UnitOrOwner": { "description": "Filters results to any association whose unit or owner *contains* the specified value.", "type": "string" }, "DateFrom": { "format": "date", "description": "Filters results to any ownership account whose start date is greater than or equal to the specified value.", "type": "string" }, "DateTo": { "format": "date", "description": "Filters results to any ownership account whose start date is less than or equal to the specified value.", "type": "string" }, "Status": { "description": "Filters results by the status of the association. If no status is specified, `active`, `past` and `future` associations will be returned.", "type": "array", "items": { "enum": [ "Active", "Past", "Future" ], "type": "string" } }, "DelinquencyStatuses": { "description": "Filters results by the delinquency status of the ownership account. If no status is specified, ownership accounts of any delinquency status will be returned.", "type": "array", "items": { "enum": [ "NoDelinquency", "InCollections", "InForeclosure", "Foreclosed" ], "type": "string" } } } }, "AssociationOwnerToExistingOwnershipAccountPostMessage": { "description": "This object represents the Association Owner to add to an existing Ownership Account", "required": [ "OwnershipAccountId", "SendWelcomeEmail", "PrimaryAddress", "FirstName", "LastName", "IsOwnerOccupied" ], "type": "object", "properties": { "OwnershipAccountId": { "format": "int32", "description": "Ownership account Id for the owner.", "type": "integer" }, "SendWelcomeEmail": { "description": "Send a welcome email to any homeowner at the association", "type": "boolean" }, "PrimaryAddress": { "$ref": "#/components/schemas/SaveAddressMessage" }, "AlternateAddress": { "$ref": "#/components/schemas/SaveAddressMessage" }, "FirstName": { "description": "First name of the owner. The value can not exceed 127 characters.", "type": "string" }, "LastName": { "description": "Last name of the owner. The value can not exceed 127 characters.", "type": "string" }, "BoardMemberTerm": { "$ref": "#/components/schemas/AssociationOwnerBoardTermPostMessage" }, "IsOwnerOccupied": { "description": "Indicates if the association owner occupies a unit(s) within the association.", "type": "boolean" }, "Email": { "description": "Email of owner.", "type": "string" }, "AlternateEmail": { "description": "Alternate email of owner.", "type": "string" }, "PhoneNumbers": { "$ref": "#/components/schemas/PhoneNumbersMessage" }, "DateOfBirth": { "format": "date", "description": "Date Of Birth for the owner. Must be formatted as `YYYY-MM-DD`.", "type": "string" }, "EmergencyContact": { "$ref": "#/components/schemas/SaveEmergencyContactMessage" }, "Comment": { "description": "Comments about the owner. The value can not exceed 65,535 characters.", "type": "string" }, "MailingPreference": { "description": "Mailing preferences for the owner. If an alternate address exists and this value is not provided then the primary address will be set as the preferred address.", "enum": [ "PrimaryAddress", "AlternateAddress" ], "type": "string" }, "TaxId": { "description": "Taxpayer identification number of the owner. Examples of United States identification numbers are Social Security number or a Employer Identification Number. Valid formats are: `12-1234567`, `123-12-1234`, `123456789`.", "type": "string" } } }, "AssociationOwnerUnitOccupancyPutMessage": { "required": [ "IsOccupied" ], "type": "object", "properties": { "IsOccupied": { "description": "Indicates whether the unit is occupied by the association owner.", "type": "boolean" } } }, "AssociationOwnerUnitOccupancyStatusMessage": { "type": "object", "properties": { "UnitId": { "format": "int32", "description": "Association unit unique identifier.", "type": "integer" }, "IsOccupied": { "description": "Indicates whether the unit is occupied by the association owner.", "type": "boolean" } } }, "AssociationPostMessage": { "required": [ "Name", "OperatingBankAccountId", "Address" ], "type": "object", "properties": { "Name": { "description": "Association name. The value cannot exceed 127 characters.", "type": "string" }, "OperatingBankAccountId": { "format": "int32", "description": "The primary bank account that an association uses for its income and expenses.", "type": "integer" }, "Address": { "$ref": "#/components/schemas/SaveAddressMessage" }, "IsActive": { "description": "Indicates whether the association is active within the Buildium platform. If no value is passed in the default is `true`.", "type": "boolean" }, "Reserve": { "format": "double", "description": "A property reserve is cash that a property manager keeps on hand in case of unexpected expenses. It is available cash that isn't disbursed in an owner draw.", "type": "number" }, "Description": { "description": "Description of the association. The description cannot exceed 65,535 characters.", "type": "string" }, "YearBuilt": { "format": "int32", "description": "Indicates the year the association was established. If provided this value must be a four digit integer between 1000 and the current year.", "type": "integer" }, "PropertyManagerId": { "format": "int32", "description": "Indicates the staff member identifier that acts as the property manager for this association. Note, the staff member must have permissions to this association to be assigned as the property manager.\r\nLeave this field null if you don't want to assign a staff member to the association.", "type": "integer" } } }, "AssociationPreferredVendorMessage": { "type": "object", "properties": { "Id": { "format": "int32", "description": "Preferred vendor unique identifier.", "type": "integer" }, "FirstName": { "description": "First name of the preferred vendor.", "type": "string" }, "LastName": { "description": "Last name of the preferred vendor.", "type": "string" }, "CompanyName": { "description": "Company name of the preferred vendor.", "type": "string" }, "PrimaryEmail": { "description": "Primary email for the preferred vendor.", "type": "string" }, "AlternateEmail": { "description": "Alternate email for the preferred vendor.", "type": "string" }, "PhoneNumbers": { "description": "List of phone numbers of the preferred vendor.", "type": "array", "items": { "$ref": "#/components/schemas/PhoneNumberMessage" } }, "Website": { "description": "Website of the preferred vendor.", "type": "string" }, "IsCompany": { "description": "Indicates whether the preferred vendor is a company.", "type": "boolean" } } }, "AssociationPreferredVendorPutMessage": { "required": [ "VendorIds" ], "type": "object", "properties": { "VendorIds": { "description": "A list of vendor identifiers that will be assigned as preferred vendors to the specified association. The submitted list of identifiers will overwrite any existing preferred vendors. Leaving the array empty will remove all vendors from the association.", "type": "array", "items": { "format": "int32", "type": "integer" } } } }, "AssociationPutMessage": { "required": [ "Name", "OperatingBankAccountId", "Address", "FiscalYearEndDay", "FiscalYearEndMonth" ], "type": "object", "properties": { "Name": { "description": "Association name. The value cannot exceed 127 characters.", "type": "string" }, "Description": { "description": "Description of the association. The value cannot exceed 65,535 characters.", "type": "string" }, "YearBuilt": { "format": "int32", "description": "Indicates the year the association was established. If provided this value must be a four digit integer between 1000 and the current year.", "type": "integer" }, "OperatingBankAccountId": { "format": "int32", "description": "The primary bank account that an association uses for its income and expenses.", "type": "integer" }, "Reserve": { "format": "double", "description": "A property reserve is cash that a property manager keeps on hand in case of unexpected expenses. It is available cash that isn't disbursed in an owner draw.", "type": "number" }, "Address": { "$ref": "#/components/schemas/SaveAddressMessage" }, "PropertyManagerId": { "format": "int32", "description": "Indicates the staff member identifier that acts as the property manager for this association. Note, the staff member must have permissions to this association to be assigned as the property manager.\r\nSet this field to null if you don't want to assign a staff member to the association.", "type": "integer" }, "FiscalYearEndDay": { "format": "int32", "description": "The day the fiscal year ends for the association.", "type": "integer" }, "FiscalYearEndMonth": { "format": "int32", "description": "The month the fiscal year ends for the association.", "type": "integer" } } }, "AssociationSearchMessage": { "description": "This object represents a filter for a home owner association search.", "type": "object", "properties": { "Location": { "description": "Filters results to any association whose city or state *contains* the specified value.", "type": "string" }, "Status": { "description": "Filters results by the status of the association. If no status is specified both `active` and `inactive` associations will be returned.", "enum": [ "Active", "InActive" ], "type": "string" }, "LastUpdatedFrom": { "format": "date-time", "description": "Filters results to any associations that were updated on or after the specified date. The value must be in UTC and formatted as YYYY-MM-DDTHH:MM:SSZ.", "type": "string" }, "LastUpdatedTo": { "format": "date-time", "description": "Filters results to any associations that were updated on or before the specified date. The value must be in UTC and formatted as YYYY-MM-DDTHH:MM:SSZ.", "type": "string" } } }, "AssociationTenantMessage": { "description": "This object represents a home owner association tenant.", "type": "object", "properties": { "Id": { "format": "int32", "description": "Unique identifier.", "type": "integer" }, "FirstName": { "description": "First name.", "type": "string" }, "LastName": { "description": "Last name.", "type": "string" }, "Email": { "description": "Email.", "type": "string" }, "AlternateEmail": { "description": "Alternate email.", "type": "string" }, "PhoneNumbers": { "description": "List of phone numbers of the association user.", "type": "array", "items": { "$ref": "#/components/schemas/PhoneNumberMessage" } }, "PrimaryAddress": { "$ref": "#/components/schemas/AddressMessage" }, "AlternateAddress": { "$ref": "#/components/schemas/AddressMessage" }, "Comment": { "description": "General comments.", "type": "string" }, "EmergencyContact": { "$ref": "#/components/schemas/EmergencyContactMessage" }, "OwnershipAccounts": { "description": "List of associated ownership accounts.", "type": "array", "items": { "$ref": "#/components/schemas/AssociationOwnershipAccountMessage" } }, "MoveInDate": { "format": "date", "description": "Move in date for the tenant.", "type": "string" }, "MoveOutDate": { "format": "date", "description": "Move out date for the tenant.", "type": "string" }, "CreatedDateTime": { "format": "date-time", "description": "Date and time the tenant was created.", "type": "string" } } }, "AssociationTenantPostMessage": { "required": [ "FirstName", "LastName", "PrimaryAddress", "OwnershipAccountId" ], "type": "object", "properties": { "FirstName": { "description": "First name of tenant. The value cannot exceed 127 characters.", "type": "string" }, "LastName": { "description": "Last name of tenant. The value cannot exceed 127 characters.", "type": "string" }, "Email": { "description": "Email of tenant.", "type": "string" }, "AlternateEmail": { "description": "Alternate email of tenant.", "type": "string" }, "PhoneNumbers": { "$ref": "#/components/schemas/PhoneNumbersMessage" }, "DateOfBirth": { "format": "date", "description": "Date of birth for the tenant. Must be formatted as `YYYY-MM-DD`.", "type": "string" }, "Comment": { "description": "Comments about the tenant. The value cannot exceed 65,535 characters.", "type": "string" }, "EmergencyContact": { "$ref": "#/components/schemas/SaveEmergencyContactMessage" }, "PrimaryAddress": { "$ref": "#/components/schemas/SaveAddressMessage" }, "AlternateAddress": { "$ref": "#/components/schemas/SaveAddressMessage" }, "MoveInDate": { "format": "date", "description": "Move in date for the tenant. This date is not editable and can only be set when creating the tenant. Must be formatted as `YYYY-MM-DD`.", "type": "string" }, "MoveOutDate": { "format": "date", "description": "Move out date for the tenant. Must be formatted as `YYYY-MM-DD`.", "type": "string" }, "OwnershipAccountId": { "format": "int32", "description": "Ownership account id for the tenant.", "type": "integer" } } }, "AssociationTenantPutMessage": { "required": [ "FirstName", "LastName", "PrimaryAddress" ], "type": "object", "properties": { "FirstName": { "description": "First name of tenant. The value cannot exceed 127 characters.", "type": "string" }, "LastName": { "description": "Last name of tenant. The value cannot exceed 127 characters.", "type": "string" }, "Email": { "description": "Email of tenant.", "type": "string" }, "AlternateEmail": { "description": "Alternate email of tenant.", "type": "string" }, "PhoneNumbers": { "$ref": "#/components/schemas/PhoneNumbersMessage" }, "DateOfBirth": { "format": "date", "description": "Date of birth for the tenant. Must be formatted as `YYYY-MM-DD`.", "type": "string" }, "Comment": { "description": "Comments about the tenant. The value cannot exceed 65,535 characters.", "type": "string" }, "EmergencyContact": { "$ref": "#/components/schemas/SaveEmergencyContactMessage" }, "PrimaryAddress": { "$ref": "#/components/schemas/SaveAddressMessage" }, "AlternateAddress": { "$ref": "#/components/schemas/SaveAddressMessage" }, "MoveOutDate": { "format": "date", "description": "Move out date for the tenant. Must be formatted as `YYYY-MM-DD`.", "type": "string" } } }, "AssociationUnitMessage": { "description": "This object represents a home owners association unit.", "type": "object", "properties": { "Id": { "format": "int32", "description": "Association unit unique identifier.", "type": "integer" }, "AssociationId": { "format": "int32", "description": "Association unique identifier that the unit belongs to.", "type": "integer" }, "AssociationName": { "description": "Association name that the unit belongs to.", "type": "string" }, "UnitNumber": { "description": "Unit number.", "type": "string" }, "Address": { "$ref": "#/components/schemas/AddressMessage" }, "UnitBedrooms": { "description": "Number of bedrooms in the unit.", "enum": [ "NotSet", "Studio", "OneBed", "TwoBed", "ThreeBed", "FourBed", "FiveBed", "SixBed", "SevenBed", "EightBed", "NineBedPlus" ], "type": "string" }, "UnitBathrooms": { "description": "Number of bathrooms in the unit.", "enum": [ "NotSet", "OneBath", "OnePointFiveBath", "TwoBath", "TwoPointFiveBath", "ThreeBath", "FourBath", "FiveBath", "FivePlusBath", "ThreePointFiveBath", "FourPointFiveBath" ], "type": "string" }, "UnitSize": { "format": "int32", "description": "Size of the unit.", "type": "integer" } } }, "AssociationUnitPutMessage": { "required": [ "UnitNumber", "Address" ], "type": "object", "properties": { "UnitNumber": { "description": "Unit Number. Must be unique within the association and cannot exceed 30 characters.", "type": "string" }, "UnitSize": { "format": "int32", "description": "Size of the unit.", "type": "integer" }, "Address": { "$ref": "#/components/schemas/SaveAddressMessage" }, "UnitBedrooms": { "description": "Number of bedrooms in the unit.", "enum": [ "NotSet", "Studio", "OneBed", "TwoBed", "ThreeBed", "FourBed", "FiveBed", "SixBed", "SevenBed", "EightBed", "NineBedPlus" ], "type": "string" }, "UnitBathrooms": { "description": "Number of bathrooms in the unit.", "enum": [ "NotSet", "OneBath", "OnePointFiveBath", "TwoBath", "TwoPointFiveBath", "ThreeBath", "FourBath", "FiveBath", "FivePlusBath", "ThreePointFiveBath", "FourPointFiveBath" ], "type": "string" } } }, "AssociationUnitSearchMessage": { "description": "This object represents a filter for a home owner association unit search", "type": "object", "properties": { "AssociationIds": { "description": "Filters results to only include Associations with matching IDs", "type": "array", "items": { "format": "int32", "type": "integer" } }, "LastUpdatedFrom": { "format": "date-time", "description": "Filters results to any association units that were updated on or after the specified date. The value must be in UTC and formatted as YYYY-MM-DDTHH:MM:SSZ.", "type": "string" }, "LastUpdatedTo": { "format": "date-time", "description": "Filters results to any association units that were updated on or before the specified date. The value must be in UTC and formatted as YYYY-MM-DDTHH:MM:SSZ.", "type": "string" } } }, "AssociationUnitsPostMessage": { "required": [ "UnitNumber", "AssociationId", "Address" ], "type": "object", "properties": { "UnitNumber": { "description": "Unit number. Must be unique within the association and cannot exceed 30 characters.", "type": "string" }, "AssociationId": { "format": "int32", "description": "Association unique identifier that the unit belongs to.", "type": "integer" }, "UnitSize": { "format": "int32", "description": "Size of the unit.", "type": "integer" }, "Address": { "$ref": "#/components/schemas/SaveAddressMessage" }, "UnitBedrooms": { "description": "Number of bedrooms in the unit.", "enum": [ "NotSet", "Studio", "OneBed", "TwoBed", "ThreeBed", "FourBed", "FiveBed", "SixBed", "SevenBed", "EightBed", "NineBedPlus" ], "type": "string" }, "UnitBathrooms": { "description": "Number of bathrooms in the unit.", "enum": [ "NotSet", "OneBath", "OnePointFiveBath", "TwoBath", "TwoPointFiveBath", "ThreeBath", "FourBath", "FiveBath", "FivePlusBath", "ThreePointFiveBath", "FourPointFiveBath" ], "type": "string" } } }, "AssociationUserSearchMessage": { "type": "object", "properties": { "Name": { "description": "Filters results to only records whose name *contains* the specified value.", "type": "string" }, "Phone": { "description": "Filters results to only records whose phone number *contains* the specified value.", "type": "string" }, "Email": { "description": "Filters results to only records whose email *contains* the specified value.", "type": "string" }, "AssociationIds": { "description": "Filters results to only records that belong to the specified set of association identifiers.", "type": "array", "items": { "format": "int32", "type": "integer" } }, "Statuses": { "description": "Filters results to only records whose status is equal to the specified value.", "type": "array", "items": { "enum": [ "Active", "Past", "Future" ], "type": "string" } }, "CreatedDateTimeTo": { "format": "date-time", "description": "Filters results to only records that were created before this date. Must be formatted as `YYYY-MM-DD`.", "type": "string" }, "CreatedDateTimeFrom": { "format": "date-time", "description": "Filters results to only records that were created after this date. Must be formatted as `YYYY-MM-DD`.", "type": "string" }, "LastUpdatedFrom": { "format": "date-time", "description": "Filters results to any association owners that were updated on or after the specified date. The value must be in UTC and formatted as YYYY-MM-DDTHH:MM:SSZ.", "type": "string" }, "LastUpdatedTo": { "format": "date-time", "description": "Filters results to any association owners that were updated on or before the specified date. The value must be in UTC and formatted as YYYY-MM-DDTHH:MM:SSZ.", "type": "string" } } }, "BankAccountCheckAccountingEntitySaveMessage": { "required": [ "Id", "AccountingEntityType" ], "type": "object", "properties": { "Id": { "format": "int32", "description": "The accounting entity unique identifier.", "type": "integer" }, "AccountingEntityType": { "description": "The type of accounting entity.", "enum": [ "Association", "Rental", "Company" ], "type": "string" } } }, "BankAccountCheckLineMessage": { "type": "object", "properties": { "Id": { "format": "int32", "description": "The unique identifier of the line item.", "type": "integer" }, "GLAccountId": { "format": "int32", "description": "General ledger account unique identifier the line item is related to.", "type": "integer" }, "AccountingEntity": { "$ref": "#/components/schemas/AccountingEntityMessage" }, "Memo": { "description": "Memo for the line item.", "type": "string" }, "ReferenceNumber": { "description": "Reference number for the line item.", "type": "string" }, "Amount": { "format": "double", "description": "Amount of the line item.", "type": "number" } } }, "BankAccountCheckLineSaveMessage": { "required": [ "GLAccountId", "AccountingEntity", "Amount" ], "type": "object", "properties": { "GLAccountId": { "format": "int32", "description": "The general ledger account identifier under which the line item amount will be recorded.", "type": "integer" }, "AccountingEntity": { "$ref": "#/components/schemas/BankAccountCheckAccountingEntitySaveMessage" }, "Memo": { "description": "Memo for the line item.", "type": "string" }, "ReferenceNumber": { "description": "Reference number for the line item.", "type": "string" }, "Amount": { "format": "double", "description": "Amount of the line item.", "type": "number" } } }, "BankAccountCheckMessage": { "type": "object", "properties": { "Id": { "format": "int32", "description": "Check unique identifier.", "type": "integer" }, "Payee": { "$ref": "#/components/schemas/BankAccountCheckPayeeMessage" }, "CheckNumber": { "description": "Check number.", "type": "string" }, "EntryDate": { "format": "date", "description": "Date the check was recorded.", "type": "string" }, "Memo": { "description": "Memo associated with the check, if applicable.", "type": "string" }, "TotalAmount": { "format": "double", "description": "Sum of all `Journal.Lines.Amount` entries in the check.", "type": "number" }, "Lines": { "description": "A collection of line items associated with the check.", "type": "array", "items": { "$ref": "#/components/schemas/BankAccountCheckLineMessage" } } } }, "BankAccountCheckPayeeMessage": { "type": "object", "properties": { "Id": { "format": "int32", "description": "The payee user identifier.", "type": "integer" }, "Type": { "description": "The entity type for the payee.", "enum": [ "Vendor", "RentalOwner" ], "type": "string" }, "Href": { "description": "A link to the resource endpoint associated with the payee.", "type": "string" } } }, "BankAccountCheckPayeeSaveMessage": { "required": [ "Id", "Type" ], "type": "object", "properties": { "Id": { "format": "int32", "description": "The payee user identifier.", "type": "integer" }, "Type": { "description": "The payee entity type.", "enum": [ "Vendor", "RentalOwner" ], "type": "string" } } }, "BankAccountCheckPostMessage": { "required": [ "Payee", "EntryDate", "Lines" ], "type": "object", "properties": { "Payee": { "$ref": "#/components/schemas/BankAccountCheckPayeeSaveMessage" }, "CheckNumber": { "description": "Check number.", "type": "string" }, "EntryDate": { "format": "date", "description": "Date the check was recorded.", "type": "string" }, "Memo": { "description": "Memo associated with the check, if applicable.", "type": "string" }, "Lines": { "description": "A collection of line items to associate with the check.", "type": "array", "items": { "$ref": "#/components/schemas/BankAccountCheckLineSaveMessage" } } } }, "BankAccountCheckPutMessage": { "required": [ "Payee", "EntryDate", "Lines" ], "type": "object", "properties": { "Payee": { "$ref": "#/components/schemas/BankAccountCheckPayeeSaveMessage" }, "CheckNumber": { "description": "Check number.", "type": "string" }, "EntryDate": { "format": "date", "description": "Date the check was recorded.", "type": "string" }, "Memo": { "description": "Memo associated with the check, if applicable.", "type": "string" }, "Lines": { "description": "A collection of line items to associate with the check.", "type": "array", "items": { "$ref": "#/components/schemas/BankAccountCheckLineSaveMessage" } } } }, "BankAccountCheckSearchMessage": { "required": [ "StartDate", "EndDate" ], "type": "object", "properties": { "StartDate": { "format": "date", "description": "Filters results to any transactions that were recorded on or after the specified date. The value must be formatted as YYYY-MM-DD.", "type": "string" }, "EndDate": { "format": "date", "description": "Filters results to any transactions that were recorded on or before the specified date. The value must be formatted as YYYY-MM-DD.", "type": "string" } } }, "BankAccountDepositLineMessage": { "type": "object", "properties": { "Id": { "format": "int32", "description": "The unique identifier of the line item.", "type": "integer" }, "AccountingEntity": { "$ref": "#/components/schemas/AccountingEntityMessage" }, "GLAccountId": { "format": "int32", "description": "The general ledger account identifier under which the line item amount is recorded.", "type": "integer" }, "Memo": { "description": "Memo for the line item.", "type": "string" }, "ReferenceNumber": { "description": "Reference number for the line item.", "type": "string" }, "Amount": { "format": "double", "description": "Amount of the line item.", "type": "number" } } }, "BankAccountDepositLineSaveMessage": { "type": "object", "properties": { "GLAccountId": { "format": "int32", "description": "The general ledger account identifier under which the line item amount will be recorded.", "type": "integer" }, "AccountingEntity": { "$ref": "#/components/schemas/AccountingEntitySaveMessage" }, "Memo": { "description": "Memo for the line item.", "type": "string" }, "ReferenceNumber": { "description": "Reference number for the line item.", "type": "string" }, "Amount": { "format": "double", "description": "Amount of the line item.", "type": "number" } } }, "BankAccountDepositMessage": { "type": "object", "properties": { "Id": { "format": "int32", "description": "Deposit unique identifier.", "type": "integer" }, "EntryDate": { "format": "date", "description": "Date the deposit was recorded.", "type": "string" }, "Memo": { "description": "Memo associated with the deposit, if applicable.", "type": "string" }, "TotalAmount": { "format": "double", "description": "Sum of all `Journal.Lines.Amount` entries in the deposit.", "type": "number" }, "Lines": { "description": "A collection of line items associated with the deposit.", "type": "array", "items": { "$ref": "#/components/schemas/BankAccountDepositLineMessage" } }, "PaymentTransactionIds": { "description": "A collection of payment transaction identifiers that were included in this deposit transaction.", "type": "array", "items": { "format": "int32", "type": "integer" } } } }, "BankAccountDepositPostMessage": { "required": [ "EntryDate" ], "type": "object", "properties": { "EntryDate": { "format": "date", "description": "Date the deposit was recorded.", "type": "string" }, "Memo": { "description": "Memo associated with the deposit, if applicable.", "type": "string" }, "Lines": { "description": "A collection of line items to associate with the deposit.", "type": "array", "items": { "$ref": "#/components/schemas/BankAccountDepositLineSaveMessage" } }, "PaymentTransactionIds": { "description": "", "type": "array", "items": { "format": "int32", "type": "integer" } } } }, "BankAccountDepositPutMessage": { "required": [ "EntryDate", "Lines" ], "type": "object", "properties": { "EntryDate": { "format": "date", "description": "Date the deposit was recorded.", "type": "string" }, "Memo": { "description": "Memo associated with the deposit, if applicable.", "type": "string" }, "Lines": { "description": "", "type": "array", "items": { "$ref": "#/components/schemas/BankAccountDepositLineSaveMessage" } } } }, "BankAccountDepositSearchMessage": { "required": [ "StartDate", "EndDate" ], "type": "object", "properties": { "StartDate": { "format": "date", "description": "Filters results to any deposits that were recorded on or after the specified date. The value must be formatted as YYYY-MM-DD.", "type": "string" }, "EndDate": { "format": "date", "description": "Filters results to any deposits that were recorded on or before the specified date. The value must be formatted as YYYY-MM-DD.", "type": "string" } } }, "BankAccountMessage": { "description": "This is an object that represents a bank account.", "type": "object", "properties": { "Id": { "format": "int32", "description": "Bank account unique identifier.", "type": "integer" }, "GLAccount": { "$ref": "#/components/schemas/GLAccountMessage" }, "CheckPrintingInfo": { "$ref": "#/components/schemas/CheckPrintingInfoMessage" }, "ElectronicPayments": { "$ref": "#/components/schemas/ElectronicPaymentsMessage" }, "Name": { "description": "Bank Account name.", "type": "string" }, "Description": { "description": "Bank account description.", "type": "string" }, "BankAccountType": { "description": "Type of bank account. Values are `Checking` or `Savings`.", "type": "string" }, "Country": { "description": "The country the bank account is in.", "enum": [ "UnitedStates", "Afghanistan", "Akrotiri", "Albania", "Algeria", "AmericanSamoa", "Andorra", "Angola", "Anguilla", "Antarctica", "AntiguaandBarbuda", "Argentina", "Armenia", "Aruba", "AshmoreandCartierIslands", "Australia", "Austria", "Azerbaijan", "Bahamas", "Bahrain", "Bangladesh", "Barbados", "BassasdaIndia", "Belarus", "Belgium", "Belize", "Benin", "Bermuda", "Bhutan", "Bolivia", "BosniaandHerzegovina", "Botswana", "BouvetIsland", "Brazil", "BritishIndianOceanTerritory", "BritishVirginIslands", "Brunei", "Bulgaria", "BurkinaFaso", "Burma", "Burundi", "Cambodia", "Cameroon", "Canada", "CapeVerde", "CaymanIslands", "CentralAfricanRepublic", "Chad", "Chile", "China", "ChristmasIsland", "ClippertonIsland", "CocosIslands", "Colombia", "Comoros", "DemocraticRepublicOfTheCongo", "RepublicOfTheCongo", "CookIslands", "CoralSeaIslands", "CostaRica", "CotedIvoire", "Croatia", "Cuba", "Cyprus", "CzechRepublic", "Denmark", "Dhekelia", "Djibouti", "Dominica", "DominicanRepublic", "Ecuador", "Egypt", "ElSalvador", "EquatorialGuinea", "Eritrea", "Estonia", "Ethiopia", "EuropaIsland", "FalklandIslands", "FaroeIslands", "Fiji", "Finland", "France", "FrenchGuiana", "FrenchPolynesia", "FrenchSouthernandAntarcticLands", "Gabon", "Gambia", "GazaStrip", "Georgia", "Germany", "Ghana", "Gibraltar", "GloriosoIslands", "Greece", "Greenland", "Grenada", "Guadeloupe", "Guam", "Guatemala", "Guernsey", "Guinea", "GuineaBissau", "Guyana", "Haiti", "HeardIslandandMcDonaldIslands", "VaticanCity", "Honduras", "HongKong", "Hungary", "Iceland", "India", "Indonesia", "Iran", "Iraq", "Ireland", "IsleofMan", "Israel", "Italy", "Jamaica", "JanMayen", "Japan", "Jersey", "Jordan", "JuandeNovaIsland", "Kazakhstan", "Kenya", "Kiribati", "NorthKorea", "SouthKorea", "Kuwait", "Kyrgyzstan", "Laos", "Latvia", "Lebanon", "Lesotho", "Liberia", "Libya", "Liechtenstein", "Lithuania", "Luxembourg", "Macau", "Macedonia", "Madagascar", "Malawi", "Malaysia", "Maldives", "Mali", "Malta", "MarshallIslands", "Martinique", "Mauritania", "Mauritius", "Mayotte", "Mexico", "Micronesia", "Moldova", "Monaco", "Mongolia", "Montserrat", "Morocco", "Mozambique", "Namibia", "Nauru", "NavassaIsland", "Nepal", "Netherlands", "NetherlandsAntilles", "NewCaledonia", "NewZealand", "Nicaragua", "Niger", "Nigeria", "Niue", "NorfolkIsland", "NorthernMarianaIslands", "Norway", "Oman", "Pakistan", "Palau", "Panama", "PapuaNewGuinea", "ParacelIslands", "Paraguay", "Peru", "Philippines", "PitcairnIslands", "Poland", "Portugal", "PuertoRico", "Qatar", "Reunion", "Romania", "Russia", "Rwanda", "SaintHelena", "SaintKittsandNevis", "SaintLucia", "SaintPierreandMiquelon", "SaintVincentandtheGrenadines", "Samoa", "SanMarino", "SaoTomeandPrincipe", "SaudiArabia", "Senegal", "SerbiaandMontenegro", "Seychelles", "SierraLeone", "Singapore", "Slovakia", "Slovenia", "SolomonIslands", "Somalia", "SouthAfrica", "SouthGeorgiaandtheSouthSandwichIslands", "Spain", "SpratlyIslands", "SriLanka", "Sudan", "Suriname", "Svalbard", "Swaziland", "Sweden", "Switzerland", "Syria", "Taiwan", "Tajikistan", "Tanzania", "Thailand", "TimorLeste", "Togo", "Tokelau", "Tonga", "TrinidadandTobago", "TromelinIsland", "Tunisia", "Turkey", "Turkmenistan", "TurksandCaicosIslands", "Tuvalu", "Uganda", "Ukraine", "UnitedArabEmirates", "UnitedKingdom", "Uruguay", "Uzbekistan", "Vanuatu", "Venezuela", "Vietnam", "VirginIslands", "WakeIsland", "WallisandFutuna", "WestBank", "WesternSahara", "Yemen", "Zambia", "Zimbabwe" ], "type": "string" }, "AccountNumber": { "description": "Bank account number.", "type": "string" }, "RoutingNumber": { "description": "Bank routing number.", "type": "string" }, "IsActive": { "description": "Bank Account Status", "type": "boolean" }, "Balance": { "format": "double", "description": "Bank Account balance", "type": "number" } } }, "BankAccountPostMessage": { "required": [ "Name", "BankAccountType", "Country" ], "type": "object", "properties": { "CheckPrintingInfo": { "$ref": "#/components/schemas/CheckPrintingInfoPostMessage" }, "Name": { "description": "Bank account name.", "type": "string" }, "Description": { "description": "Bank account description.", "type": "string" }, "BankAccountType": { "description": "Type of bank account.", "enum": [ "Checking", "Savings" ], "type": "string" }, "Country": { "description": "The country the bank account exists in.", "enum": [ "UnitedStates", "Afghanistan", "Akrotiri", "Albania", "Algeria", "AmericanSamoa", "Andorra", "Angola", "Anguilla", "Antarctica", "AntiguaandBarbuda", "Argentina", "Armenia", "Aruba", "AshmoreandCartierIslands", "Australia", "Austria", "Azerbaijan", "Bahamas", "Bahrain", "Bangladesh", "Barbados", "BassasdaIndia", "Belarus", "Belgium", "Belize", "Benin", "Bermuda", "Bhutan", "Bolivia", "BosniaandHerzegovina", "Botswana", "BouvetIsland", "Brazil", "BritishIndianOceanTerritory", "BritishVirginIslands", "Brunei", "Bulgaria", "BurkinaFaso", "Burma", "Burundi", "Cambodia", "Cameroon", "Canada", "CapeVerde", "CaymanIslands", "CentralAfricanRepublic", "Chad", "Chile", "China", "ChristmasIsland", "ClippertonIsland", "CocosIslands", "Colombia", "Comoros", "DemocraticRepublicOfTheCongo", "RepublicOfTheCongo", "CookIslands", "CoralSeaIslands", "CostaRica", "CotedIvoire", "Croatia", "Cuba", "Cyprus", "CzechRepublic", "Denmark", "Dhekelia", "Djibouti", "Dominica", "DominicanRepublic", "Ecuador", "Egypt", "ElSalvador", "EquatorialGuinea", "Eritrea", "Estonia", "Ethiopia", "EuropaIsland", "FalklandIslands", "FaroeIslands", "Fiji", "Finland", "France", "FrenchGuiana", "FrenchPolynesia", "FrenchSouthernandAntarcticLands", "Gabon", "Gambia", "GazaStrip", "Georgia", "Germany", "Ghana", "Gibraltar", "GloriosoIslands", "Greece", "Greenland", "Grenada", "Guadeloupe", "Guam", "Guatemala", "Guernsey", "Guinea", "GuineaBissau", "Guyana", "Haiti", "HeardIslandandMcDonaldIslands", "VaticanCity", "Honduras", "HongKong", "Hungary", "Iceland", "India", "Indonesia", "Iran", "Iraq", "Ireland", "IsleofMan", "Israel", "Italy", "Jamaica", "JanMayen", "Japan", "Jersey", "Jordan", "JuandeNovaIsland", "Kazakhstan", "Kenya", "Kiribati", "NorthKorea", "SouthKorea", "Kuwait", "Kyrgyzstan", "Laos", "Latvia", "Lebanon", "Lesotho", "Liberia", "Libya", "Liechtenstein", "Lithuania", "Luxembourg", "Macau", "Macedonia", "Madagascar", "Malawi", "Malaysia", "Maldives", "Mali", "Malta", "MarshallIslands", "Martinique", "Mauritania", "Mauritius", "Mayotte", "Mexico", "Micronesia", "Moldova", "Monaco", "Mongolia", "Montserrat", "Morocco", "Mozambique", "Namibia", "Nauru", "NavassaIsland", "Nepal", "Netherlands", "NetherlandsAntilles", "NewCaledonia", "NewZealand", "Nicaragua", "Niger", "Nigeria", "Niue", "NorfolkIsland", "NorthernMarianaIslands", "Norway", "Oman", "Pakistan", "Palau", "Panama", "PapuaNewGuinea", "ParacelIslands", "Paraguay", "Peru", "Philippines", "PitcairnIslands", "Poland", "Portugal", "PuertoRico", "Qatar", "Reunion", "Romania", "Russia", "Rwanda", "SaintHelena", "SaintKittsandNevis", "SaintLucia", "SaintPierreandMiquelon", "SaintVincentandtheGrenadines", "Samoa", "SanMarino", "SaoTomeandPrincipe", "SaudiArabia", "Senegal", "SerbiaandMontenegro", "Seychelles", "SierraLeone", "Singapore", "Slovakia", "Slovenia", "SolomonIslands", "Somalia", "SouthAfrica", "SouthGeorgiaandtheSouthSandwichIslands", "Spain", "SpratlyIslands", "SriLanka", "Sudan", "Suriname", "Svalbard", "Swaziland", "Sweden", "Switzerland", "Syria", "Taiwan", "Tajikistan", "Tanzania", "Thailand", "TimorLeste", "Togo", "Tokelau", "Tonga", "TrinidadandTobago", "TromelinIsland", "Tunisia", "Turkey", "Turkmenistan", "TurksandCaicosIslands", "Tuvalu", "Uganda", "Ukraine", "UnitedArabEmirates", "UnitedKingdom", "Uruguay", "Uzbekistan", "Vanuatu", "Venezuela", "Vietnam", "VirginIslands", "WakeIsland", "WallisandFutuna", "WestBank", "WesternSahara", "Yemen", "Zambia", "Zimbabwe" ], "type": "string" }, "AccountNumber": { "description": "Bank account number.", "type": "string" }, "RoutingNumber": { "description": "Bank routing number. If the bank is in Canada, the routing number should be provided as a zero followed by the three digit institution number, followed by the five digit transit number.", "type": "string" } } }, "BankAccountPutMessage": { "required": [ "CheckPrintingInfo", "Name", "BankAccountType", "Country" ], "type": "object", "properties": { "CheckPrintingInfo": { "$ref": "#/components/schemas/CheckPrintingInfoPutMessage" }, "Name": { "description": "Bank account name.", "type": "string" }, "Description": { "description": "Bank account description.", "type": "string" }, "BankAccountType": { "description": "Type of bank account.", "enum": [ "Checking", "Savings" ], "type": "string" }, "Country": { "description": "The country the bank account exists in.", "enum": [ "UnitedStates", "Afghanistan", "Akrotiri", "Albania", "Algeria", "AmericanSamoa", "Andorra", "Angola", "Anguilla", "Antarctica", "AntiguaandBarbuda", "Argentina", "Armenia", "Aruba", "AshmoreandCartierIslands", "Australia", "Austria", "Azerbaijan", "Bahamas", "Bahrain", "Bangladesh", "Barbados", "BassasdaIndia", "Belarus", "Belgium", "Belize", "Benin", "Bermuda", "Bhutan", "Bolivia", "BosniaandHerzegovina", "Botswana", "BouvetIsland", "Brazil", "BritishIndianOceanTerritory", "BritishVirginIslands", "Brunei", "Bulgaria", "BurkinaFaso", "Burma", "Burundi", "Cambodia", "Cameroon", "Canada", "CapeVerde", "CaymanIslands", "CentralAfricanRepublic", "Chad", "Chile", "China", "ChristmasIsland", "ClippertonIsland", "CocosIslands", "Colombia", "Comoros", "DemocraticRepublicOfTheCongo", "RepublicOfTheCongo", "CookIslands", "CoralSeaIslands", "CostaRica", "CotedIvoire", "Croatia", "Cuba", "Cyprus", "CzechRepublic", "Denmark", "Dhekelia", "Djibouti", "Dominica", "DominicanRepublic", "Ecuador", "Egypt", "ElSalvador", "EquatorialGuinea", "Eritrea", "Estonia", "Ethiopia", "EuropaIsland", "FalklandIslands", "FaroeIslands", "Fiji", "Finland", "France", "FrenchGuiana", "FrenchPolynesia", "FrenchSouthernandAntarcticLands", "Gabon", "Gambia", "GazaStrip", "Georgia", "Germany", "Ghana", "Gibraltar", "GloriosoIslands", "Greece", "Greenland", "Grenada", "Guadeloupe", "Guam", "Guatemala", "Guernsey", "Guinea", "GuineaBissau", "Guyana", "Haiti", "HeardIslandandMcDonaldIslands", "VaticanCity", "Honduras", "HongKong", "Hungary", "Iceland", "India", "Indonesia", "Iran", "Iraq", "Ireland", "IsleofMan", "Israel", "Italy", "Jamaica", "JanMayen", "Japan", "Jersey", "Jordan", "JuandeNovaIsland", "Kazakhstan", "Kenya", "Kiribati", "NorthKorea", "SouthKorea", "Kuwait", "Kyrgyzstan", "Laos", "Latvia", "Lebanon", "Lesotho", "Liberia", "Libya", "Liechtenstein", "Lithuania", "Luxembourg", "Macau", "Macedonia", "Madagascar", "Malawi", "Malaysia", "Maldives", "Mali", "Malta", "MarshallIslands", "Martinique", "Mauritania", "Mauritius", "Mayotte", "Mexico", "Micronesia", "Moldova", "Monaco", "Mongolia", "Montserrat", "Morocco", "Mozambique", "Namibia", "Nauru", "NavassaIsland", "Nepal", "Netherlands", "NetherlandsAntilles", "NewCaledonia", "NewZealand", "Nicaragua", "Niger", "Nigeria", "Niue", "NorfolkIsland", "NorthernMarianaIslands", "Norway", "Oman", "Pakistan", "Palau", "Panama", "PapuaNewGuinea", "ParacelIslands", "Paraguay", "Peru", "Philippines", "PitcairnIslands", "Poland", "Portugal", "PuertoRico", "Qatar", "Reunion", "Romania", "Russia", "Rwanda", "SaintHelena", "SaintKittsandNevis", "SaintLucia", "SaintPierreandMiquelon", "SaintVincentandtheGrenadines", "Samoa", "SanMarino", "SaoTomeandPrincipe", "SaudiArabia", "Senegal", "SerbiaandMontenegro", "Seychelles", "SierraLeone", "Singapore", "Slovakia", "Slovenia", "SolomonIslands", "Somalia", "SouthAfrica", "SouthGeorgiaandtheSouthSandwichIslands", "Spain", "SpratlyIslands", "SriLanka", "Sudan", "Suriname", "Svalbard", "Swaziland", "Sweden", "Switzerland", "Syria", "Taiwan", "Tajikistan", "Tanzania", "Thailand", "TimorLeste", "Togo", "Tokelau", "Tonga", "TrinidadandTobago", "TromelinIsland", "Tunisia", "Turkey", "Turkmenistan", "TurksandCaicosIslands", "Tuvalu", "Uganda", "Ukraine", "UnitedArabEmirates", "UnitedKingdom", "Uruguay", "Uzbekistan", "Vanuatu", "Venezuela", "Vietnam", "VirginIslands", "WakeIsland", "WallisandFutuna", "WestBank", "WesternSahara", "Yemen", "Zambia", "Zimbabwe" ], "type": "string" }, "AccountNumber": { "description": "Bank account number.", "type": "string" }, "RoutingNumber": { "description": "Bank routing number. If the bank is in Canada, the routing number should be provided as a zero followed by the three digit institution number, followed by the five digit transit number.", "type": "string" } } }, "BankAccountQuickDepositMessage": { "type": "object", "properties": { "Id": { "format": "int32", "description": "Quick deposit unique identifier.", "type": "integer" }, "EntryDate": { "format": "date", "description": "Date the quick deposit was recorded.", "type": "string" }, "Memo": { "description": "Memo associated with the quick deposit, if applicable.", "type": "string" }, "TotalAmount": { "format": "double", "description": "Amount included in the quick deposit.", "type": "number" }, "AccountingEntity": { "$ref": "#/components/schemas/AccountingEntityMessage" }, "OffsetGLAccountId": { "format": "int32", "description": "Offsetting general ledger account identifier. The offsetting general ledger account acts as a label for this deposit.", "type": "integer" } } }, "BankAccountQuickDepositSaveMessage": { "required": [ "EntryDate", "OffsetGLAccountId", "Amount", "AccountingEntity" ], "type": "object", "properties": { "EntryDate": { "format": "date", "description": "Date the quick deposit was recorded.", "type": "string" }, "OffsetGLAccountId": { "format": "int32", "description": "Offsetting general ledger account identifier. The offsetting general ledger account acts as a label for this deposit. For instance, if you're depositing money collected from a washing machine, you might select the \"Laundry income\" account.", "type": "integer" }, "Amount": { "format": "double", "description": "Amount to be deposited.", "type": "number" }, "Memo": { "description": "Memo associated with the quick deposit.", "type": "string" }, "AccountingEntity": { "$ref": "#/components/schemas/AccountingEntitySaveMessage" } } }, "BankAccountQuickDepositSearchMessage": { "required": [ "StartDate", "EndDate" ], "type": "object", "properties": { "StartDate": { "format": "date", "description": "Filters results to any transactions that were recorded on or after the specified date. The value must be formatted as YYYY-MM-DD.", "type": "string" }, "EndDate": { "format": "date", "description": "Filters results to any transactions that were recorded on or before the specified date. The value must be formatted as YYYY-MM-DD.", "type": "string" } } }, "BankAccountSearchMessage": { "description": "This object represents a filter for a bank account search.", "type": "object", "properties": { "BankAccountStatus": { "description": "Filters results by the status of the bank account. If no status is specified, bank accounts with any status will be returned.", "enum": [ "Active", "InActive" ], "type": "string" }, "BankName": { "description": "Filters results to any bank account whose name *contains* the specified value.", "type": "string" } } }, "BankAccountTransactionMessage": { "description": "Bank account transaction.", "type": "object", "properties": { "Id": { "format": "int32", "description": "Transaction unique identifier.", "type": "integer" }, "EntryDate": { "format": "date", "description": "Date of the transaction.", "type": "string" }, "TransactionType": { "description": "Type of transaction.", "enum": [ "Bill", "Check", "Charge", "Payment", "Credit", "Refund", "ApplyDeposit", "ElectronicFundsTransfer", "Other", "Deposit", "GeneralJournalEntry", "OwnerContribution", "ReversePayment", "ReverseElectronicFundsTransfer", "VendorCredit", "RentalApplicationFeePayment", "ReverseRentalApplicationFeePayment", "ReverseOwnerContribution", "VendorRefund", "UnreversedPayment", "UnreversedElectronicFundsTransfer", "UnreversedOwnerContribution", "UnreversedRentalApplicationFeePayment" ], "type": "string" }, "CheckNumber": { "description": "Check number associated with the transaction, if applicable.", "type": "string" }, "Memo": { "description": "Memo associated with the transaction, if applicable.", "type": "string" }, "Amount": { "format": "double", "description": "The total amount of the transaction.", "type": "number" }, "ReconciliationStatus": { "description": "Indicates the reconciliation status of the transaction.", "enum": [ "UnReconciled", "Cleared", "Reconciled" ], "type": "string" }, "PaidBy": { "description": "The entity that made the payment.", "type": "array", "items": { "$ref": "#/components/schemas/PaidByMessage" } }, "PaidTo": { "description": "The entity that received the payment.", "type": "array", "items": { "$ref": "#/components/schemas/PayeeMessage" } }, "Balance": { "format": "double", "description": "The bank account balance after this transaction was applied.", "type": "number" } } }, "BankAccountTransactionSearchMessage": { "required": [ "StartDate", "EndDate" ], "type": "object", "properties": { "SelectionEntityId": { "format": "int32", "description": "Filters results to any transaction containing journal lines for an entity associated with the specified entity id value. The id must be of the type specified in SelectionEntityType.", "type": "integer" }, "SelectionEntityType": { "description": "Specifies the type of entity that SelectionEntityId refers to.", "enum": [ "Company", "Rental", "RentalOwner", "Association" ], "type": "string" }, "StartDate": { "format": "date", "description": "Filters results to any transactions that were recorded on or after the specified date. The value must be formatted as YYYY-MM-DD.", "type": "string" }, "EndDate": { "format": "date", "description": "Filters results to any transactions that were recorded on or before the specified date. The value must be formatted as YYYY-MM-DD.", "type": "string" } } }, "BankAccountTransferAccountingEntitySaveMessage": { "required": [ "Id", "AccountingEntityType" ], "type": "object", "properties": { "Id": { "format": "int32", "description": "The accounting entity unique identifier.", "type": "integer" }, "AccountingEntityType": { "description": "The type of accounting entity.", "enum": [ "Association", "Rental", "Company" ], "type": "string" } } }, "BankAccountTransferMessage": { "type": "object", "properties": { "Id": { "format": "int32", "description": "Transfer unique identifier.", "type": "integer" }, "EntryDate": { "format": "date", "description": "Date the transfer was recorded.", "type": "string" }, "Memo": { "description": "Memo associated with the transfer, if applicable.", "type": "string" }, "AccountingEntity": { "$ref": "#/components/schemas/AccountingEntityMessage" }, "TotalAmount": { "format": "double", "description": "Total amount of the transfer.", "type": "number" }, "TransferToBankAccountId": { "format": "int32", "description": "Bank account identifier the money was transferred to.", "type": "integer" } } }, "BankAccountTransferSaveMessage": { "required": [ "EntryDate", "TransferToBankAccountId", "TotalAmount", "AccountingEntity" ], "type": "object", "properties": { "EntryDate": { "format": "date", "description": "The date the transfer was recorded.", "type": "string" }, "TransferToBankAccountId": { "format": "int32", "description": "Bank account identifier the money will be transferred to.", "type": "integer" }, "TotalAmount": { "format": "double", "description": "Total amount to transfer.", "type": "number" }, "Memo": { "description": "Memo associated with the transfer, if applicable.", "type": "string" }, "AccountingEntity": { "$ref": "#/components/schemas/BankAccountTransferAccountingEntitySaveMessage" } } }, "BankAccountTransferSearchMessage": { "required": [ "StartDate", "EndDate" ], "type": "object", "properties": { "StartDate": { "format": "date", "description": "Filters results to any transfers that were recorded on or after the specified date. The value must be formatted as YYYY-MM-DD.", "type": "string" }, "EndDate": { "format": "date", "description": "Filters results to any transfers that were recorded on or before the specified date. The value must be formatted as YYYY-MM-DD.", "type": "string" } } }, "BankAccountWithdrawalMessage": { "type": "object", "properties": { "Id": { "format": "int32", "description": "Withdrawal unique identifier.", "type": "integer" }, "EntryDate": { "format": "date", "description": "Date the withdrawal was recorded.", "type": "string" }, "Memo": { "description": "Memo associated with the withdrawal, if applicable.", "type": "string" }, "TotalAmount": { "format": "double", "description": "Total amount of the withdrawal.", "type": "number" }, "AccountingEntity": { "$ref": "#/components/schemas/AccountingEntityMessage" }, "OffsetGLAccountId": { "format": "int32", "description": "Offsetting general ledger account identifier. The offsetting GL account acts as a label for this withdrawal. For instance, if you're withdrawing money due to a bank fee, you might select the \"Bank fees\" expense account.", "type": "integer" } } }, "BankAccountWithdrawalSaveMessage": { "required": [ "EntryDate", "OffsetGLAccountId", "Amount", "AccountingEntity" ], "type": "object", "properties": { "EntryDate": { "format": "date", "description": "Date the withdrawal was recorded.", "type": "string" }, "OffsetGLAccountId": { "format": "int32", "description": "Offsetting general ledger account identifier. The offsetting general ledger account acts as a label for this withdrawal. For instance, if you're withdrawing money due to a bank fee, you might select the \"Bank fees\" expense account.", "type": "integer" }, "Amount": { "format": "double", "description": "Withdrawal amount.", "type": "number" }, "Memo": { "description": "Memo associated with the withdrawal, if applicable.", "type": "string" }, "AccountingEntity": { "$ref": "#/components/schemas/AccountingEntitySaveMessage" } } }, "BankAccountWithdrawalSearchMessage": { "required": [ "StartDate", "EndDate" ], "type": "object", "properties": { "StartDate": { "format": "date", "description": "Filters results to any transactions that were recorded on or after the specified date. The value must be formatted as YYYY-MM-DD.", "type": "string" }, "EndDate": { "format": "date", "description": "Filters results to any transactions that were recorded on or before the specified date. The value must be formatted as YYYY-MM-DD.", "type": "string" } } }, "BillFileMessage": { "type": "object", "properties": { "Id": { "format": "int32", "description": "File unique identifier.", "type": "integer" }, "Title": { "description": "The title of the file.", "type": "string" }, "PhysicalFileName": { "description": "Physical name of the file on the server.", "type": "string" }, "Size": { "format": "int64", "description": "Size of the file, in kilobytes.", "type": "integer" }, "ContentType": { "description": "MIME type of the file.", "type": "string" }, "UploadedDateTime": { "format": "date-time", "description": "Date and time the file was uploaded.", "type": "string" } } }, "BillLineMessage": { "description": "Bill line items.", "type": "object", "properties": { "Id": { "format": "int32", "description": "The bill line item unique identifier.", "type": "integer" }, "AccountingEntity": { "$ref": "#/components/schemas/AccountingEntityMessage" }, "GLAccount": { "$ref": "#/components/schemas/GLAccountMessage" }, "Amount": { "format": "double", "description": "Line item amount.", "type": "number" }, "Markup": { "$ref": "#/components/schemas/BillMarkupMessage" }, "Memo": { "description": "Description of the line item.", "type": "string" } } }, "BillLinePostMessage": { "description": "Bill line item.", "required": [ "AccountingEntity", "GlAccountId", "Amount" ], "type": "object", "properties": { "AccountingEntity": { "$ref": "#/components/schemas/AccountingEntitySaveMessage" }, "GlAccountId": { "format": "int32", "description": "The general ledger account identifier under which the line item amount will be recorded. The following general ledger accounts are not valid: Accounts Payable, Accounts Receivable, Undeposited Funds or any general leger account referencing a bank account.", "type": "integer" }, "Amount": { "format": "double", "description": "Line item amount.", "type": "number" }, "Markup": { "$ref": "#/components/schemas/BillMarkupSaveMessage" }, "Memo": { "description": "Memo for the line item. The value cannot exceed 240 characters.", "type": "string" } } }, "BillLinePutMessage": { "description": "Bill line item.", "required": [ "AccountingEntity", "GlAccountId", "Amount" ], "type": "object", "properties": { "Id": { "format": "int32", "description": "Bill line item unique identifier.", "type": "integer" }, "AccountingEntity": { "$ref": "#/components/schemas/AccountingEntitySaveMessage" }, "GlAccountId": { "format": "int32", "description": "The general ledger account identifier under which the line item amount will be recorded. The following general ledger accounts are not valid: Accounts Payable, Accounts Receivable, Undeposited Funds or any general leger account referencing a bank account.", "type": "integer" }, "Amount": { "format": "double", "description": "Line item amount.", "type": "number" }, "Markup": { "$ref": "#/components/schemas/BillMarkupSaveMessage" }, "Memo": { "description": "Memo for the line item. The value cannot exceed 240 characters.", "type": "string" } } }, "BillMarkupMessage": { "description": "Bill mark up.", "type": "object", "properties": { "Amount": { "format": "double", "description": "The mark up amount.", "type": "number" }, "Type": { "description": "The markup type.", "enum": [ "Percent", "Amount" ], "type": "string" } } }, "BillMarkupSaveMessage": { "description": "Bill mark up.", "required": [ "Amount", "Type" ], "type": "object", "properties": { "Amount": { "format": "double", "description": "The mark up amount. The value should be relative to the markup `Type`. If the mark up `Type` is `Percent` the value cannot exceed 100.", "type": "number" }, "Type": { "description": "The markup type.", "enum": [ "Percent", "Amount" ], "type": "string" } } }, "BillMessage": { "type": "object", "properties": { "Id": { "format": "int32", "description": "Bill unique identifier.", "type": "integer" }, "Date": { "format": "date", "description": "Date of the bill.", "type": "string" }, "DueDate": { "format": "date", "description": "The date that payment is due to the vendor.", "type": "string" }, "PaidDate": { "format": "date", "description": "The date that payment was made to the vendor.", "type": "string" }, "Memo": { "description": "A description of what the invoice was for.", "type": "string" }, "VendorId": { "format": "int32", "description": "Unique identifier of the vendor who submitted the bill.", "type": "integer" }, "WorkOrderId": { "format": "int32", "description": "Unique identifier of the work order associated with this bill.", "type": "integer" }, "ReferenceNumber": { "description": "The invoice or reference number that the vendor assigned to the invoice.", "type": "string" }, "ApprovalStatus": { "description": "The current approval status for the bill.", "enum": [ "NotNeeded", "ApprovalRequired", "Approved", "Pending", "Rejected" ], "type": "string" }, "Lines": { "description": "A collection of line items associated with the bill.", "type": "array", "items": { "$ref": "#/components/schemas/BillLineMessage" } } } }, "BillPaymentAccountingEntityMessage": { "description": "The accounting entity associated with the payment line item.", "type": "object", "properties": { "Id": { "format": "int32", "description": "The accounting entity unique identifier.", "type": "integer" }, "AccountingEntityType": { "description": "Indicates the type of the accounting entity.", "enum": [ "Association", "Rental", "Company" ], "type": "string" } } }, "BillPaymentLineMessage": { "description": "Payment line items.", "type": "object", "properties": { "AccountingEntity": { "$ref": "#/components/schemas/BillPaymentAccountingEntityMessage" }, "GLAccountId": { "format": "int32", "description": "The general ledger account the line item is allocated to.", "type": "integer" }, "Amount": { "format": "double", "description": "Line item amount.", "type": "number" } } }, "BillPaymentLinePostMessage": { "required": [ "BillLineId", "Amount" ], "type": "object", "properties": { "BillLineId": { "format": "int32", "description": "The unique identifier of the bill line item toward which the payment is being made.", "type": "integer" }, "Amount": { "format": "double", "description": "The amount that is being paid toward the bill line item.", "type": "number" } } }, "BillPaymentMessage": { "type": "object", "properties": { "Id": { "format": "int32", "description": "Bill payment unique identifier.", "type": "integer" }, "BankAccountId": { "format": "int32", "description": "Unique identifier of the bank account that the payment was made from.", "type": "integer" }, "EntryDate": { "format": "date", "description": "Date the payment was made.", "type": "string" }, "Memo": { "description": "A high-level description of the payment.", "type": "string" }, "CheckNumber": { "description": "Number of the check used to make the payment.", "type": "string" }, "Lines": { "description": "A collection of payment line items.", "type": "array", "items": { "$ref": "#/components/schemas/BillPaymentLineMessage" } } } }, "BillPaymentPostMessage": { "required": [ "BankAccountId", "EntryDate", "Lines" ], "type": "object", "properties": { "BankAccountId": { "format": "int32", "description": "Unique identifier of the bank account that the payment was made from.", "type": "integer" }, "EntryDate": { "format": "date", "description": "Date the payment was made.", "type": "string" }, "Memo": { "description": "A high-level description of the payment. The value cannot exceed 240 characters.", "type": "string" }, "CheckNumber": { "description": "Number of the check used to make the payment. The value cannot exceed 30 characters.", "type": "string" }, "Lines": { "description": "A collection of payment line items.", "type": "array", "items": { "$ref": "#/components/schemas/BillPaymentLinePostMessage" } } } }, "BillPostMessage": { "description": "This object represents a bill.", "required": [ "Date", "DueDate", "VendorId", "Lines" ], "type": "object", "properties": { "Date": { "format": "date", "description": "The date that the bill was received. This date typically corresponds with a Bill Received Date, Invoice Date, or Invoice Received Date from an invoice. The date must be formatted as YYYY-MM-DD.", "type": "string" }, "DueDate": { "format": "date", "description": "The date that payment is due to the vendor. The due date must be after the value in the `Date` field. The date must be formatted as YYYY-MM-DD.", "type": "string" }, "Memo": { "description": "A description of what the invoice was for. The value cannot exceed 245 characters.", "type": "string" }, "VendorId": { "format": "int32", "description": "The unique identifier of the vendor or supplier who sent you an invoice.", "type": "integer" }, "WorkOrderId": { "format": "int32", "description": "Unique identifier of the work order associated with this bill.", "type": "integer" }, "ReferenceNumber": { "description": "The reference or invoice number that the vendor assigned to the invoice. The value cannot exceed 40 characters.", "type": "string" }, "Lines": { "description": "A collection of line items associated with the bill.", "type": "array", "items": { "$ref": "#/components/schemas/BillLinePostMessage" } } } }, "BillPutMessage": { "description": "This object represents a bill.", "required": [ "Date", "DueDate", "VendorId" ], "type": "object", "properties": { "Date": { "format": "date", "description": "The date that an invoice was received. This date typically corresponds with a Bill Received Date, Invoice Date, or Invoice Received Date from an invoice. The date must be formatted as YYYY-MM-DD.", "type": "string" }, "DueDate": { "format": "date", "description": "The date that payment for a bill is due to the vendor. The date must be formatted as YYYY-MM-DD.", "type": "string" }, "Memo": { "description": "A description of what the invoice was for. The value cannot exceed 245 characters.", "type": "string" }, "VendorId": { "format": "int32", "description": "The unique identifier of the vendor or supplier who sent you an invoice.", "type": "integer" }, "ReferenceNumber": { "description": "The reference or invoice number that the vendor assigned to the invoice. The value cannot exceed 40 characters.", "type": "string" }, "Lines": { "description": "A collection of line items associated with the bill.", "type": "array", "items": { "$ref": "#/components/schemas/BillLinePutMessage" } } } }, "BillSearchMessage": { "type": "object", "properties": { "EntityId": { "format": "int32", "description": "Filters results to any bill containing line items associated with the specified entity identifier. This filter is used in conjunction with the `EntityType` field which must be set to the type of entity this identifier references.", "type": "integer" }, "EntityType": { "description": "Specifies the type of entity that `EntityId` refers to. This field is required if `EntityId` is specified.", "enum": [ "Rental", "RentalOwner", "Association" ], "type": "string" }, "VendorId": { "format": "int32", "description": "Filters results to bills associated with a specific vendor.", "type": "integer" }, "ReferenceNumber": { "description": "Filters results to bills whose reference number contains the specified value.", "type": "string" }, "PaidStatus": { "description": "Filters results by the bill's paid status. If no status is specified, bills with any status will be returned.", "enum": [ "Paid", "Unpaid", "UncollectedMarkups" ], "type": "string" }, "FromPaidDate": { "format": "date", "description": "Filters results to any bill whose paid date is greater than or equal to the specified value.", "type": "string" }, "ToPaidDate": { "format": "date", "description": "Filters results to any bill whose paid date is less than or equal to the specified value.", "type": "string" }, "ApprovalStatuses": { "description": "Filters the results to bills matching the specified approval statuses. If no approval status is specified, bills with any status will be returned.", "type": "array", "items": { "enum": [ "NotNeeded", "ApprovalRequired", "Approved", "Pending", "Rejected" ], "type": "string" } } } }, "BudgetDetailsMessage": { "type": "object", "properties": { "GLAccountId": { "format": "int32", "description": "The general ledger account unique identifier the budget is related to.", "type": "integer" }, "GLAccountSubType": { "description": "Describes the subtype of the general ledger account.", "enum": [ "CurrentAsset", "FixedAsset", "CurrentLiability", "LongTermLiability", "Equity", "Income", "NonOperatingIncome", "OperatingExpenses", "NonOperatingExpenses" ], "type": "string" }, "TotalAmount": { "format": "double", "description": "Sum of all monthly amounts in the budget.", "type": "number" }, "MonthlyAmounts": { "$ref": "#/components/schemas/BudgetMonthlyAmountsMessage" } } }, "BudgetDetailsSaveMessage": { "required": [ "GLAccountId", "MonthlyAmounts" ], "type": "object", "properties": { "GLAccountId": { "format": "int32", "description": "The general ledger account identifier to record the budget details under.", "type": "integer" }, "MonthlyAmounts": { "$ref": "#/components/schemas/BudgetMonthlyAmountsSaveMessage" } } }, "BudgetMessage": { "type": "object", "properties": { "Id": { "format": "int32", "description": "Budget unique identifier.", "type": "integer" }, "Name": { "description": "Name of the budget.", "type": "string" }, "StartDate": { "format": "date", "description": "Start date of the budget.", "type": "string" }, "EndDate": { "format": "date", "description": "End date of the budget.", "type": "string" }, "Property": { "$ref": "#/components/schemas/PropertyMessage" }, "Details": { "description": "The details of the budget.", "type": "array", "items": { "$ref": "#/components/schemas/BudgetDetailsMessage" } } } }, "BudgetMonthlyAmountsMessage": { "type": "object", "properties": { "January": { "format": "double", "description": "The amount for January.", "type": "number" }, "February": { "format": "double", "description": "The amount for February.", "type": "number" }, "March": { "format": "double", "description": "The amount for March.", "type": "number" }, "April": { "format": "double", "description": "The amount for April.", "type": "number" }, "May": { "format": "double", "description": "The amount for May.", "type": "number" }, "June": { "format": "double", "description": "The amount for June.", "type": "number" }, "July": { "format": "double", "description": "The amount for July.", "type": "number" }, "August": { "format": "double", "description": "The amount for August.", "type": "number" }, "September": { "format": "double", "description": "The amount for September.", "type": "number" }, "October": { "format": "double", "description": "The amount for October.", "type": "number" }, "November": { "format": "double", "description": "The amount for November.", "type": "number" }, "December": { "format": "double", "description": "The amount for December.", "type": "number" } } }, "BudgetMonthlyAmountsSaveMessage": { "required": [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ], "type": "object", "properties": { "January": { "format": "double", "description": "The amount for January.", "type": "number" }, "February": { "format": "double", "description": "The amount for February.", "type": "number" }, "March": { "format": "double", "description": "The amount for March.", "type": "number" }, "April": { "format": "double", "description": "The amount for April.", "type": "number" }, "May": { "format": "double", "description": "The amount for May.", "type": "number" }, "June": { "format": "double", "description": "The amount for June.", "type": "number" }, "July": { "format": "double", "description": "The amount for July.", "type": "number" }, "August": { "format": "double", "description": "The amount for August.", "type": "number" }, "September": { "format": "double", "description": "The amount for September.", "type": "number" }, "October": { "format": "double", "description": "The amount for October.", "type": "number" }, "November": { "format": "double", "description": "The amount for November.", "type": "number" }, "December": { "format": "double", "description": "The amount for December.", "type": "number" } } }, "BudgetPostMessage": { "required": [ "Name", "PropertyId", "StartMonth", "FiscalYear", "Details" ], "type": "object", "properties": { "Name": { "description": "Name of the budget.", "type": "string" }, "PropertyId": { "format": "int32", "description": "Property unique identifier that the budget belongs to.", "type": "integer" }, "StartMonth": { "description": "The month the fiscal year starts for the budget.", "enum": [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ], "type": "string" }, "FiscalYear": { "format": "int32", "description": "The fiscal year for the budget. The value must be formatted as YYYY.", "type": "integer" }, "Details": { "description": "The financial details associated with the budget.", "type": "array", "items": { "$ref": "#/components/schemas/BudgetDetailsSaveMessage" } } } }, "BudgetPutMessage": { "required": [ "Name", "Details" ], "type": "object", "properties": { "Name": { "description": "Name of the budget.", "type": "string" }, "Details": { "description": "The financial details associated with the budget.", "type": "array", "items": { "$ref": "#/components/schemas/BudgetDetailsSaveMessage" } } } }, "BudgetSearchMessage": { "type": "object", "properties": { "PropertyIds": { "description": "Filters results to any budget associated to any of the specified set of property ids.", "type": "array", "items": { "format": "int32", "type": "integer" } }, "FiscalYear": { "format": "int32", "description": "Filters results to any budgets that end in the given fiscal year. FiscalYear must be a positive number.", "type": "integer" }, "Name": { "description": "Filters results to any budgets whose name *contains* the specified value.", "type": "string" } } }, "ChargeRecurringTransactionPostMessage": { "required": [ "GLAccountId", "Amount", "FirstOccurrenceDate", "PostDaysInAdvance", "Frequency" ], "type": "object", "properties": { "GLAccountId": { "format": "int32", "description": "The general ledger account unique identifier under which the charge amount will be recorded. The general ledger account can only be an income or liability account.", "type": "integer" }, "Amount": { "format": "double", "description": "The amount to record when applying the charge to the lease ledger.", "type": "number" }, "Memo": { "description": "Memo associated with the recurring charge. This value cannot exceed 65 characters.", "type": "string" }, "FirstOccurrenceDate": { "format": "date", "description": "The date the charge will first be processed. This value along with the `Frequency` is also used as the basis for the date set on the transactions in future occurrences.", "type": "string" }, "PostDaysInAdvance": { "format": "int32", "description": "Specifies the number of days ahead of the transaction date the charge will post on the lease ledger. This setting can be used to add the charge to the ledger ahead of the due date for visibility. For example, if the `FirstOccurrenceDate` is set to 8/10/2022 and this value is set to 5 then the charge will added to the ledger on 8/5/2022, but will have transaction date of 8/10/2022. Note, the value must be between 0 to 45 or set to 60, 75 or 90.", "type": "integer" }, "Frequency": { "description": "Specifies the frequency at which the recurring charge will be processed.", "enum": [ "Monthly", "Weekly", "Every2Weeks", "Quarterly", "Yearly", "Every2Months", "Daily", "Every6Months", "OneTime" ], "type": "string" }, "Duration": { "description": "Specifies the period of time/occurrences the recurring payment will be processed. Note, if the `Frequency` field is set to `OneTime` this field should be set to `NULL` as any submitted value will be ignored.", "enum": [ "UntilEndOfTerm", "SpecificNumber" ], "type": "string" }, "NumberOfOccurrences": { "format": "int32", "description": "Indicates the number of times the recurring transaction should be processed. This value is required if the `Duration` field is set to `SpecificNumber`. This value can not exceed 100.", "type": "integer" } } }, "ChargeRecurringTransactionPutMessage": { "required": [ "Id", "GLAccountId", "Amount", "FirstOccurrenceDate", "PostDaysInAdvance", "Frequency" ], "type": "object", "properties": { "Id": { "format": "int32", "description": "The unique identifier for the charge.", "type": "integer" }, "GLAccountId": { "format": "int32", "description": "The general ledger account unique identifier under which the charge amount will be recorded. The general ledger account can only be an income or liability account.", "type": "integer" }, "Amount": { "format": "double", "description": "The amount to record when applying the charge to the lease ledger.", "type": "number" }, "Memo": { "description": "Memo associated with the recurring charge. This value cannot exceed 65 characters.", "type": "string" }, "FirstOccurrenceDate": { "format": "date", "description": "The date the charge will first be processed. This value along with the `Frequency` is also used as the basis for the date set on the transactions in future occurrences.", "type": "string" }, "PostDaysInAdvance": { "format": "int32", "description": "Specifies the number of days ahead of the transaction date the charge will post on the lease ledger. This setting can be used to add the charge to the ledger ahead of the due date for visibility. For example, if the `FirstOccurrenceDate` is set to 8/10/2022 and this value is set to 5 then the charge will added to the ledger on 8/5/2022, but will have transaction date of 8/10/2022. Note, the value must be between 0 to 45 or set to 60, 75 or 90.", "type": "integer" }, "Frequency": { "description": "Specifies the frequency at which the recurring charge will be processed.", "enum": [ "Monthly", "Weekly", "Every2Weeks", "Quarterly", "Yearly", "Every2Months", "Daily", "Every6Months", "OneTime" ], "type": "string" }, "Duration": { "description": "Specifies the period of time/occurrences the recurring payment will be processed. Note, if the `Frequency` field is set to `OneTime` this field should be set to `NULL` as any submitted value will be ignored.", "enum": [ "UntilEndOfTerm", "SpecificNumber" ], "type": "string" }, "NumberOfOccurrences": { "format": "int32", "description": "Indicates the number of times the recurring transaction should be processed. This value is required if the `Duration` field is set to `SpecificNumber`. This value can not exceed 100.", "type": "integer" } } }, "CheckPrintingInfoMessage": { "type": "object", "properties": { "EnableRemoteCheckPrinting": { "description": "Indicates whether remote check printing is enabled.", "type": "boolean" }, "EnableLocalCheckPrinting": { "description": "Indicates whether local check printing is enabled.", "type": "boolean" }, "CheckLayoutType": { "description": "The check layout type.", "enum": [ "Voucher1StubBottomMemo1Signature", "Voucher2StubBottomMemo1Signature", "Voucher2StubBottomMemo2Signatures", "Voucher2StubTopMemo", "Voucher2StubsPrePrintedLayout" ], "type": "string" }, "SignatureHeading": { "description": "The check signature heading.", "type": "string" }, "FractionalNumber": { "description": "The fractional form of the routing number. Typically is used to identify the bank of the check in cases where the MICR is unreadable.", "type": "string" }, "BankInformationLine1": { "description": "Bank information line 1.", "type": "string" }, "BankInformationLine2": { "description": "Bank information line 2.", "type": "string" }, "BankInformationLine3": { "description": "Bank information line 3.", "type": "string" }, "BankInformationLine4": { "description": "Bank information line 4.", "type": "string" }, "BankInformationLine5": { "description": "Bank information line 5.", "type": "string" }, "CompanyInformationLine1": { "description": "Company information 1.", "type": "string" }, "CompanyInformationLine2": { "description": "Company information 2.", "type": "string" }, "CompanyInformationLine3": { "description": "Company information 3.", "type": "string" }, "CompanyInformationLine4": { "description": "Company information 4.", "type": "string" }, "CompanyInformationLine5": { "description": "Company information 5.", "type": "string" } } }, "CheckPrintingInfoPostMessage": { "type": "object", "properties": { "EnableRemoteCheckPrinting": { "description": "Indicates whether remote check printing is enabled.", "type": "boolean" }, "EnableLocalCheckPrinting": { "description": "Indicates whether local check printing is enabled.", "type": "boolean" }, "CheckLayoutType": { "description": "The check layout type. Defaults to `Voucher2StubsPrePrintedLayout` if not specified.", "enum": [ "Voucher1StubBottomMemo1Signature", "Voucher2StubBottomMemo1Signature", "Voucher2StubBottomMemo2Signatures", "Voucher2StubTopMemo", "Voucher2StubsPrePrintedLayout" ], "type": "string" }, "SignatureHeading": { "description": "The signature heading. Defaults to \"VOID AFTER 90 DAYS\" if not specified.", "type": "string" }, "FractionalNumber": { "description": "The fractional form of the routing number. Typically is used to identify the bank of the check in cases where the MICR is unreadable.", "type": "string" }, "BankInformationLine1": { "description": "Bank information line 1.", "type": "string" }, "BankInformationLine2": { "description": "Bank information line 2.", "type": "string" }, "BankInformationLine3": { "description": "Bank information line 3.", "type": "string" }, "BankInformationLine4": { "description": "Bank information line 4.", "type": "string" }, "BankInformationLine5": { "description": "Bank information line 5.", "type": "string" }, "CompanyInformationLine1": { "description": "Company information 1. Defaults to the company name from the account if not specified.", "type": "string" }, "CompanyInformationLine2": { "description": "Company information 2. Defaults to the company address if not specified.", "type": "string" }, "CompanyInformationLine3": { "description": "Company information 3. Defaults to the company address if not specified.", "type": "string" }, "CompanyInformationLine4": { "description": "Company information 4. Defaults to the company address if not specified.", "type": "string" }, "CompanyInformationLine5": { "description": "Company information 5. Defaults to the company address if not specified.", "type": "string" } } }, "CheckPrintingInfoPutMessage": { "required": [ "EnableRemoteCheckPrinting", "EnableLocalCheckPrinting", "CheckLayoutType" ], "type": "object", "properties": { "EnableRemoteCheckPrinting": { "description": "Indicates whether remote check printing is enabled.", "type": "boolean" }, "EnableLocalCheckPrinting": { "description": "Indicates whether local check printing is enabled.", "type": "boolean" }, "CheckLayoutType": { "description": "The check layout type.", "enum": [ "Voucher1StubBottomMemo1Signature", "Voucher2StubBottomMemo1Signature", "Voucher2StubBottomMemo2Signatures", "Voucher2StubTopMemo", "Voucher2StubsPrePrintedLayout" ], "type": "string" }, "SignatureHeading": { "description": "The signature heading.", "type": "string" }, "FractionalNumber": { "description": "The fractional form of the routing number. Typically is used to identify the bank of the check in cases where the MICR is unreadable.", "type": "string" }, "BankInformationLine1": { "description": "Bank information line 1.", "type": "string" }, "BankInformationLine2": { "description": "Bank information line 2.", "type": "string" }, "BankInformationLine3": { "description": "Bank information line 3.", "type": "string" }, "BankInformationLine4": { "description": "Bank information line 4.", "type": "string" }, "BankInformationLine5": { "description": "Bank information line 5.", "type": "string" }, "CompanyInformationLine1": { "description": "Company information 1.", "type": "string" }, "CompanyInformationLine2": { "description": "Company information 2.", "type": "string" }, "CompanyInformationLine3": { "description": "Company information 3.", "type": "string" }, "CompanyInformationLine4": { "description": "Company information 4.", "type": "string" }, "CompanyInformationLine5": { "description": "Company information 5.", "type": "string" } } }, "ClientLeadCreditRequestMessage": { "description": "Lead credit request.", "type": "object", "properties": { "CreditStatus": { "description": "Indicates the current status of the credit.", "enum": [ "Approved", "Declined", "Requested" ], "type": "string" }, "CreditReason": { "description": "Indicates the reason a credit was requested.", "enum": [ "AccidentalFormSubmission", "DuplicateLead", "InvalidContactInformation", "JobSeeker", "Tenant", "Vendor", "WrongPropertyType", "WrongZipCode", "Other" ], "type": "string" }, "Comments": { "description": "Additional comments about the credit request.", "type": "string" }, "RequestDate": { "format": "date", "description": "The date the credit was requested.", "type": "string" } } }, "ClientLeadMessage": { "description": "This is an object that represents a client lead", "type": "object", "properties": { "Id": { "format": "int32", "description": "Client lead unique identifier.", "type": "integer" }, "DateReceived": { "format": "date-time", "description": "The date the lead was received.", "type": "string" }, "Name": { "description": "The name of the lead.", "type": "string" }, "Email": { "description": "The email of the lead.", "type": "string" }, "PhoneNumber": { "description": "The phone number of the lead.", "type": "string" }, "PricePaid": { "format": "double", "description": "The price paid for the lead.", "type": "number" }, "Address": { "$ref": "#/components/schemas/AddressMessage" }, "PropertyType": { "description": "The property type of the lead's property.", "enum": [ "SingleHomeUpToThreeHundredThousand", "SingleHomeThreeHundredToFiveHundredThousand", "SingleHomeFiveHundredThousandToOneMillion", "SingleHomeOverOneMillion", "MultiFamilyTwoToFourUnits", "MultiFamilyFiveToNineteenUnits", "MultiFamilyTwentyToFortyNineUnits", "MultiFamilyOverOneHundredUnits", "OfficeLessThanTenThousandSqFt", "OfficeTenThousandToOneHundredThousandSqFt", "OfficeOverOneHundredThousandSqFt", "RetailLessThanTenThousandSqFt", "RetailTenThousandToOneHundredThousandSqFt", "RetailOverOneHundredThousandSqFt", "LightManufacturingUpToOneHundredThousandSqFt", "LightManufacturingOverOneHundredThousandSqFt", "WarehouseUpToOneHundredThousandSqFt", "WarehouseOverOneHundredThousandSqFt", "VacationOneToTwoUnits", "VacationOverThreeUnits", "ParkingGarage", "OtherAssociation", "BiotechMissionCritical", "HOATwoToFortyNineUnits", "HOAFiftyToNinetyNineUnits", "HOAOverOneHundredUnits", "COATwoToFortyNineUnits", "COAFiftyToNinetyNineUnits", "COAOverOneHundredUnits", "MobileHomeCommunity" ], "type": "string" }, "Comments": { "description": "Additional comments submitted for the lead.", "type": "string" }, "LeadStatus": { "description": "The current status of the client lead.", "enum": [ "Unknown", "New", "Contacting", "Qualifying", "Closing", "ClosedWon", "ClosedLost" ], "type": "string" }, "CreditRequest": { "$ref": "#/components/schemas/ClientLeadCreditRequestMessage" } } }, "ClientLeadSearchMessage": { "description": "This object represents a filter for a client lead search.", "type": "object", "properties": { "LeadStatuses": { "description": "Filters results to any client leads that are in one of the given statuses.", "type": "array", "items": { "enum": [ "Unknown", "New", "Contacting", "Qualifying", "Closing", "ClosedWon", "ClosedLost" ], "type": "string" } }, "PropertyTypes": { "description": "Filters results to any client leads that have a property in one of the given property types.", "type": "array", "items": { "enum": [ "SingleHomeUpToThreeHundredThousand", "SingleHomeThreeHundredToFiveHundredThousand", "SingleHomeFiveHundredThousandToOneMillion", "SingleHomeOverOneMillion", "MultiFamilyTwoToFourUnits", "MultiFamilyFiveToNineteenUnits", "MultiFamilyTwentyToFortyNineUnits", "MultiFamilyOverOneHundredUnits", "OfficeLessThanTenThousandSqFt", "OfficeTenThousandToOneHundredThousandSqFt", "OfficeOverOneHundredThousandSqFt", "RetailLessThanTenThousandSqFt", "RetailTenThousandToOneHundredThousandSqFt", "RetailOverOneHundredThousandSqFt", "LightManufacturingUpToOneHundredThousandSqFt", "LightManufacturingOverOneHundredThousandSqFt", "WarehouseUpToOneHundredThousandSqFt", "WarehouseOverOneHundredThousandSqFt", "VacationOneToTwoUnits", "VacationOverThreeUnits", "ParkingGarage", "OtherAssociation", "BiotechMissionCritical", "HOATwoToFortyNineUnits", "HOAFiftyToNinetyNineUnits", "HOAOverOneHundredUnits", "COATwoToFortyNineUnits", "COAFiftyToNinetyNineUnits", "COAOverOneHundredUnits", "MobileHomeCommunity" ], "type": "string" } }, "DateReceivedFrom": { "format": "date-time", "description": "Filters results to any client leads that were received on or after the specified date. The value must be formatted as YYYY-MM-DD.", "type": "string" }, "DateReceivedTo": { "format": "date-time", "description": "Filters results to any client leads that were received on or before the specified date. The value must be formatted as YYYY-MM-DD.", "type": "string" }, "IncludeCreditedLeads": { "description": "This will also return client leads that were credited. By default credited leads will not be returned.", "type": "boolean" } } }, "ContactDetailMessage": { "description": "Contact information.", "type": "object", "properties": { "FirstName": { "description": "Contact first name.", "type": "string" }, "LastName": { "description": "Contact last name.", "type": "string" }, "Email": { "description": "Contact email.", "type": "string" }, "PhoneNumbers": { "$ref": "#/components/schemas/ContactDetailPhoneMessage" } } }, "ContactDetailPhoneMessage": { "description": "Contact phone numbers.", "type": "object", "properties": { "Home": { "description": "Home phone number.", "type": "string" }, "Work": { "description": "Work phone number.", "type": "string" }, "Mobile": { "description": "Mobile phone number.", "type": "string" } } }, "ContactDetailSaveMessage": { "description": "The contact details of the person who made the request.", "required": [ "FirstName" ], "type": "object", "properties": { "FirstName": { "description": "First name of the contact.", "type": "string" }, "LastName": { "description": "Last name of the contact.", "type": "string" }, "Email": { "description": "Email of the contact.", "type": "string" }, "PhoneNumbers": { "$ref": "#/components/schemas/ContactDetailSavePhoneMessage" } } }, "ContactDetailSavePhoneMessage": { "description": "Contact phone numbers.", "type": "object", "properties": { "Home": { "description": "Home phone number. If provided, the value must be between 10 and 20 characters, ideally formatted as `(123) 123-1234`.", "type": "string" }, "Work": { "description": "Work phone number. If provided, the value must be between 10 and 20 characters, ideally formatted as `(123) 123-1234`.", "type": "string" }, "Mobile": { "description": "Mobile phone number. If provided, the value must be between 10 and 20 characters, ideally formatted as `(123) 123-1234`.", "type": "string" } } }, "ContactInfoMessage": { "description": "Contact information.", "type": "object", "properties": { "FirstName": { "description": "Contact first name.", "type": "string" }, "LastName": { "description": "Contact last name.", "type": "string" }, "Address": { "$ref": "#/components/schemas/AddressMessage" }, "PhoneNumber": { "description": "Contact phone number.", "type": "string" } } }, "ContactRequestTaskMessage": { "type": "object", "properties": { "Id": { "format": "int32", "description": "Request unique identifier.", "type": "integer" }, "Category": { "$ref": "#/components/schemas/TaskCategoryResponseMessage" }, "Title": { "description": "Request title.", "type": "string" }, "Description": { "description": "Request description.", "type": "string" }, "Property": { "$ref": "#/components/schemas/PropertyMessage" }, "UnitId": { "format": "int32", "description": "The unit unique identifier associated with the request.", "type": "integer" }, "ContactDetail": { "$ref": "#/components/schemas/ContactDetailMessage" }, "AssignedToUserId": { "format": "int32", "description": "The unique identifier of the staff user assigned to the request.", "type": "integer" }, "TaskStatus": { "description": "Request status.", "enum": [ "New", "InProgress", "Completed", "Deferred", "Closed" ], "type": "string" }, "Priority": { "description": "Request priority.", "enum": [ "Low", "Normal", "High" ], "type": "string" }, "DueDate": { "format": "date", "description": "Request due date.", "type": "string" }, "CreatedDateTime": { "format": "date-time", "description": "The date and time the request was created.", "type": "string" }, "LastUpdatedDateTime": { "format": "date-time", "description": "The date and time the request was last updated.", "type": "string" } } }, "ContactRequestTaskPostMessage": { "required": [ "Title", "AssignedToUserId", "TaskStatus", "Priority", "ContactDetail" ], "type": "object", "properties": { "Title": { "description": "Request title. The title can not exceed 127 characters.", "type": "string" }, "Description": { "description": "Request description. The description can not exceed 65500 characters.", "type": "string" }, "CategoryId": { "format": "int32", "description": "The category identifier to assign the request.", "type": "integer" }, "SubCategoryId": { "format": "int32", "description": "The subcategory identifier to assign the request.", "type": "integer" }, "PropertyId": { "format": "int32", "description": "The unique identifier of property associated with the request. The assigned property must be active.", "type": "integer" }, "UnitId": { "format": "int32", "description": "The unique identifier of the unit associated with the request. The unit must be associated with the `PropertyId` specified.", "type": "integer" }, "AssignedToUserId": { "format": "int32", "description": "The unique identifier of the staff user assigned to the request. The user must be a `Staff` user type.", "type": "integer" }, "TaskStatus": { "description": "Request status.", "enum": [ "New", "InProgress", "Completed", "Deferred", "Closed" ], "type": "string" }, "Priority": { "description": "Request priority.", "enum": [ "Low", "Normal", "High" ], "type": "string" }, "DueDate": { "format": "date", "description": "Request due date. The date must be formatted as YYYY-MM-DD.", "type": "string" }, "ContactDetail": { "$ref": "#/components/schemas/ContactDetailSaveMessage" } } }, "ContactRequestTaskPutMessage": { "required": [ "Title", "AssignedToUserId", "TaskStatus", "Priority", "ContactDetail" ], "type": "object", "properties": { "Title": { "description": "Request title. The title can not exceed 127 characters.", "type": "string" }, "Message": { "description": "Description of the request update. The message can not exceed 65500 characters.", "type": "string" }, "CategoryId": { "format": "int32", "description": "The category identifier to assign the request.", "type": "integer" }, "SubCategoryId": { "format": "int32", "description": "The subcategory identifier to assign the request.", "type": "integer" }, "PropertyId": { "format": "int32", "description": "The unique identifier of property associated with the request. The assigned property must be active.", "type": "integer" }, "UnitId": { "format": "int32", "description": "The unique identifier of the unit associated with the request. The unit must be associated with the `PropertyId` specified.", "type": "integer" }, "AssignedToUserId": { "format": "int32", "description": "The unique identifier of the staff user assigned to the request. The user must be a `Staff` user type.", "type": "integer" }, "TaskStatus": { "description": "Request status.", "enum": [ "New", "InProgress", "Completed", "Deferred", "Closed" ], "type": "string" }, "Priority": { "description": "Request priority.", "enum": [ "Low", "Normal", "High" ], "type": "string" }, "DueDate": { "format": "date", "description": "Request due date. The date must be formatted as YYYY-MM-DD.", "type": "string" }, "ContactDetail": { "$ref": "#/components/schemas/ContactDetailSaveMessage" } } }, "ContactRequestTaskSearchMessage": { "type": "object", "properties": { "EntityType": { "description": "Specifies the type of entity that the `EntityId` field refers to. This field is required if the `EntityId` field is populated.", "enum": [ "Rental", "RentalOwner", "Association" ], "type": "string" }, "EntityId": { "format": "int32", "description": "Filters results to any task associated with the specified entity id value. The value must be of the type specified in the `EntityType` field.", "type": "integer" }, "Statuses": { "description": "Filters results by the status of the task. If no status is specified, tasks with any status will be returned.", "type": "array", "items": { "enum": [ "New", "InProgress", "Completed", "Deferred", "Closed" ], "type": "string" } }, "UnitId": { "format": "int32", "description": "Filters results to any task associated with the unit identifier.", "type": "integer" }, "LastUpdatedFrom": { "format": "date", "description": "Filters results to any tasks were updated on or after the specified date. The value must be formatted as YYYY-MM-DD.", "type": "string" }, "LastUpdatedTo": { "format": "date", "description": "Filters results to any tasks were updated on or before the specified date. The value must be formatted as YYYY-MM-DD.", "type": "string" }, "DueDateFrom": { "format": "date", "description": "Filters results to any tasks with a due date on or after the specified date. The value must be formatted as YYYY-MM-DD.", "type": "string" }, "DueDateTo": { "format": "date", "description": "Filters results to any tasks with a due date on or before the specified date. The value must be formatted as YYYY-MM-DD.", "type": "string" }, "TaskCategoryId": { "format": "int32", "description": "Filters results to any tasks with the specified category identifier.", "type": "integer" }, "Priorities": { "description": "Filters results to any tasks whose priority matches the specified values. If no priority is specified, tasks with any priority will be returned.", "type": "array", "items": { "enum": [ "Low", "Normal", "High" ], "type": "string" } }, "AssignedToId": { "format": "int32", "description": "Filters results to any tasks that have been assigned to the specified staff user identifier.", "type": "integer" }, "TaskTitle": { "description": "Filters results to any task whose title *contains* the specified value.", "type": "string" } } }, "CosignerMessage": { "description": "This object represents a rental property cosigner.", "type": "object", "properties": { "Id": { "format": "int32", "description": "Cosigner unique identifier.", "type": "integer" }, "FirstName": { "description": "First name of the cosigner.", "type": "string" }, "LastName": { "description": "Last name of the cosigner.", "type": "string" }, "Email": { "description": "Email for the cosigner.", "type": "string" }, "AlternateEmail": { "description": "Alternate Email for the cosigner.", "type": "string" }, "PhoneNumbers": { "description": "List of phone numbers for the cosigner.", "type": "array", "items": { "$ref": "#/components/schemas/PhoneNumberMessage" } }, "CreatedDateTime": { "format": "date-time", "description": "Created date of this cosigner record.", "type": "string" }, "Address": { "$ref": "#/components/schemas/AddressMessage" }, "AlternateAddress": { "$ref": "#/components/schemas/AddressMessage" }, "MailingPreference": { "description": "Mailing preference for the cosigner.", "enum": [ "PrimaryAddress", "AlternateAddress" ], "type": "string" } } }, "CreatedByUserMessage": { "type": "object", "properties": { "Id": { "format": "int32", "description": "User unique identifier.", "type": "integer" }, "FirstName": { "description": "First name of the user.", "type": "string" }, "LastName": { "description": "Last name of the user.", "type": "string" }, "Href": { "description": "A link to the user resource.", "type": "string" } } }, "CreditRecurringTransactionPostMessage": { "required": [ "CreditType", "PostDaysInAdvance", "Frequency", "FirstOccurrenceDate" ], "type": "object", "properties": { "CreditType": { "description": "Indicates how the credit will be applied.\r\n", "enum": [ "WaiveUnpaid", "Exchange", "PreviouslyDeposited" ], "type": "string" }, "OffsettingGLAccountId": { "format": "int32", "description": "Sets the offsetting general ledger account identifier for the credit.\r\n
This value must be provided when the `CreditType` field is set to `Exchange` or `PreviouslyDeposited`.\r\n
When the `CreditType` is `Exchange` this must be an *expense* general ledger account type.\r\n
When the `CreditType` is `PreviouslyDeposited` this must be an *equity* general ledger account type.", "type": "integer" }, "PostingRuleGlAccountId": { "format": "int32", "description": "Indicates whether to apply a posting rule when processing the transaction that would only record the credit if a prior payment has been made.\r\n

\r\nSet the field value to the Rent Income general ledger account identifier if the credit should only be recorded when a payment was made and applied to the Rent Income general ledger account.\r\n

\r\nSet the field value to the Accounts Receivable general ledger account identifier if the credit should only be recorded when a payment was made and applied to *any* general ledger account.\r\n

\r\nSet the field value to null to always record the credit.", "type": "integer" }, "Lines": { "description": "Line items describing how the credit is to be allocated when the recurring credit is processed.", "type": "array", "items": { "$ref": "#/components/schemas/RecurringTransactionLinePostMessage" } }, "PostDaysInAdvance": { "format": "int32", "description": "Specifies the number of days ahead of the transaction date the credit will post on the lease ledger. This setting can be used to add the credit to the ledger ahead of the due date for visibility. For example, if the `FirstOccurrenceDate` is set to 8/10/2022 and this value is set to 5 then the charge will added to the ledger on 8/5/2022, but will have transaction date of 8/10/2022. Note, the value must be between 0 to 45 or set to 60, 75 or 90.", "type": "integer" }, "Frequency": { "description": "Specifies the frequency at which the recurring credit will be processed.", "enum": [ "Monthly", "Weekly", "Every2Weeks", "Quarterly", "Yearly", "Every2Months", "Daily", "Every6Months", "OneTime" ], "type": "string" }, "Duration": { "description": "Specifies the period of time/occurrences the recurring credit will be processed. Note, if the `Frequency` field is set to `OneTime` this field should be set to `NULL` as any submitted value will be ignored.", "enum": [ "UntilEndOfTerm", "SpecificNumber" ], "type": "string" }, "NumberOfOccurrences": { "format": "int32", "description": "Indicates the number of times the recurring credit should be processed. This value is required if the `Duration` field is set to `SpecificNumber`. This value can not exceed 100.", "type": "integer" }, "FirstOccurrenceDate": { "format": "date", "description": "The date the credit will first be processed. This value along with the `Frequency` is also used as the basis for the date set on the transactions in future occurrences.", "type": "string" }, "Memo": { "description": "Memo associated with the recurring credit. This value cannot exceed 65 characters.", "type": "string" } } }, "DepositDetailMessage": { "description": "Deposit details.", "type": "object", "properties": { "BankGLAccountId": { "format": "int32", "description": "Bank account general ledger identifier.", "type": "integer" }, "PaymentTransactions": { "description": "Collection of payments that were included in the bank deposit transaction.", "type": "array", "items": { "$ref": "#/components/schemas/PaymentTransactionsMessage" } } } }, "ElectronicPaymentsMessage": { "type": "object", "properties": { "DebitTransactionLimit": { "format": "double", "description": "Debit transaction limit", "type": "number" }, "CreditTransactionLimit": { "format": "double", "description": "Credit transaction limit", "type": "number" }, "DebitMonthlyLimit": { "format": "double", "description": "Monthly debt limit", "type": "number" }, "CreditMonthlyLimit": { "format": "double", "description": "Monthly credit limit", "type": "number" }, "ResidentEFTConvienceFeeAmount": { "format": "double", "description": "Fee charged per transaction by EFT", "type": "number" }, "ResidentCreditCardConvenienceFeeAmount": { "format": "double", "description": "Fee charged per transaction by Credit Card", "type": "number" }, "CreditCardServiceFeePercentage": { "format": "double", "description": "Fee charged for using a Credit Card in transactions", "type": "number" }, "IsCreditCardServiceFeePaidByResident": { "description": "Whether the credit card service fee is paid by residents", "type": "boolean" } } }, "EmailMessage": { "type": "object", "properties": { "Id": { "format": "int32", "description": "Email unique identifier.", "type": "integer" }, "SentDateTime": { "format": "date-time", "description": "The date and time the email was sent.", "type": "string" }, "Subject": { "description": "Email subject.", "type": "string" }, "Sender": { "$ref": "#/components/schemas/EmailSenderMessage" } } }, "EmailPostMessage": { "required": [ "TemplateId", "Subject", "IncludeAlternateEmails", "ExcludeDelinquentRecipients", "IncludeAssociationTenants" ], "type": "object", "properties": { "TemplateId": { "format": "int32", "description": "Unique identifier of the email template to use for the body of the email. Any tokens present in the template will be replaced based on the recipient(s) of the email.", "type": "integer" }, "Subject": { "description": "Email subject.", "type": "string" }, "IncludeAlternateEmails": { "description": "Indicates whether to send the email to the recipient's primary and alternate email addresses.", "type": "boolean" }, "ExcludeDelinquentRecipients": { "description": "Indicates whether to exclude sending emails to association owners that are flagged as delinquent. This only applies to association recipients.", "type": "boolean" }, "IncludeAssociationTenants": { "description": "Indicates whether to include association tenants. Only applies to association properties.", "type": "boolean" }, "PropertyIds": { "description": "A list of association and/or rental property unique identifiers to send the email to. Cannot be populated if 'RecipientIds' is present.", "type": "array", "items": { "format": "int32", "type": "integer" } }, "RecipientIds": { "description": "A list of individual unique identifiers to send the email to. Cannot be populated if 'PropertyIds' is present.", "type": "array", "items": { "format": "int32", "type": "integer" } } } }, "EmailRecipientMessage": { "type": "object", "properties": { "Id": { "format": "int32", "description": "Recipient unique identifier.", "type": "integer" }, "Name": { "description": "Name of the recipient.", "type": "string" }, "Email": { "description": "Email address of the recipient.", "type": "string" }, "RecipientType": { "description": "The type of recipient.", "enum": [ "Tenant", "AssociationOwner", "RentalOwner", "AssociationTenant", "Applicant", "Vendor", "Staff" ], "type": "string" }, "Href": { "description": "A link to the resource associated with the recipient.", "type": "string" } } }, "EmailSearchMessage": { "required": [ "SentDateTimeFrom", "SentDateTimeTo" ], "type": "object", "properties": { "SentDateTimeFrom": { "format": "date-time", "description": "Filters results to any emails whose sent date and time are greater than or equal to the specified value. The value must be formatted as YYYY-MM-DDTHH:MM:SSZ. The maximum date range is 90 days.", "type": "string" }, "SentDateTimeTo": { "format": "date-time", "description": "Filters results to any emails whose sent date and time are less than or equal to the specified value. The value must be formatted as YYYY-MM-DDTHH:MM:SSZ. The maximum date range is 90 days.", "type": "string" }, "Subject": { "description": "Filters results to any email whose subject *contains* the specified value.", "type": "string" }, "RecipientNameOrEmail": { "description": "Filters results to any email with a recipient whose name or email address *contains* the specified value.", "type": "string" }, "SenderUserId": { "format": "int32", "description": "Filters results to only emails that were sent by the specified user identifier.", "type": "integer" } } }, "EmailSenderMessage": { "type": "object", "properties": { "Id": { "format": "int32", "description": "User unique identifier.", "type": "integer" }, "FirstName": { "description": "First name of the user.", "type": "string" }, "LastName": { "description": "Last name of the user.", "type": "string" }, "Href": { "description": "A link to the user resource.", "type": "string" } } }, "EmergencyContactMessage": { "description": "This is an object that represents an emergency contact.", "type": "object", "properties": { "Name": { "description": "Emergency contact name", "type": "string" }, "RelationshipDescription": { "description": "Emergency contact relationship to the person.", "type": "string" }, "Phone": { "description": "Emergency contact phone number", "type": "string" }, "Email": { "description": "Emergency contact email address.", "type": "string" } } }, "FileCategoryMessage": { "description": "File category.", "type": "object", "properties": { "Id": { "format": "int32", "description": "File category unique identifier.", "type": "integer" }, "Name": { "description": "Name of the file category.", "type": "string" }, "IsEditable": { "description": "Indicates whether the category is editable.", "type": "boolean" } } }, "FileCategoryPostMessage": { "description": "File category.", "required": [ "Name" ], "type": "object", "properties": { "Name": { "description": "Name of the file category. The value cannot exceed 100 characters.", "type": "string" } } }, "FileCategoryPutMessage": { "description": "File Category", "required": [ "Name" ], "type": "object", "properties": { "Name": { "description": "Name of the file category. The value cannot exceed 100 characters.", "type": "string" } } }, "FileDownloadMessage": { "type": "object", "properties": { "DownloadUrl": { "description": "A transient URL that can be used to download the requested file. This URL expires after 5 minutes.", "type": "string" } } }, "FileEntityMessage": { "description": "The entity the file is associated to.", "type": "object", "properties": { "Id": { "format": "int32", "description": "Entity unique identifier.", "type": "integer" }, "EntityType": { "description": "The entity type.", "enum": [ "Account", "Association", "AssociationOwner", "AssociationUnit", "Lease", "OwnershipAccount", "PublicAsset", "Rental", "RentalOwner", "RentalUnit", "Tenant", "Vendor" ], "type": "string" }, "Href": { "description": "A link to the entity resource.", "type": "string" } } }, "FileMessage": { "type": "object", "properties": { "Id": { "format": "int32", "description": "File unique identifier.", "type": "integer" }, "FileEntity": { "$ref": "#/components/schemas/FileEntityMessage" }, "CategoryId": { "format": "int32", "description": "The category identifier assigned to this file.", "type": "integer" }, "Title": { "description": "Title of the file.", "type": "string" }, "Description": { "description": "Description of the file.", "type": "string" }, "PhysicalFileName": { "description": "Physical name of the file on the server.", "type": "string" }, "Size": { "format": "int32", "description": "Size of the file. Unit of measure is bytes.", "type": "integer" }, "ContentType": { "description": "MIME type of the file.", "type": "string" }, "UploadedDateTime": { "format": "date-time", "description": "Date the file was uploaded.", "type": "string" } } }, "FileNamePostMessage": { "required": [ "FileName" ], "type": "object", "properties": { "FileName": { "description": "Name of file being uploaded. The value can not exceed 255 characters.", "type": "string" } } }, "FilePutMessage": { "required": [ "Title", "CategoryId" ], "type": "object", "properties": { "Title": { "description": "The title of the file. The value cannot exceed 255 characters.", "type": "string" }, "Description": { "description": "A description of the file. The value cannot exceed 65000 characters.", "type": "string" }, "CategoryId": { "format": "int32", "description": "The category identifier to assign to this file.", "type": "integer" } } }, "FileSearchMessage": { "description": "An object that contains search criteria for retrieving files.", "type": "object", "properties": { "EntityId": { "format": "int32", "description": "Filters results to any file associated with the specified entity identifier. This filter is used in conjunction with the `EntityType` field which must be set to the type of entity this identifier references.", "type": "integer" }, "EntityType": { "description": "Specifies the type of entity that `EntityId` refers to. This field is required if `EntityId` is specified.", "enum": [ "Account", "Association", "AssociationOwner", "AssociationUnit", "Lease", "OwnershipAccount", "PublicAsset", "Rental", "RentalOwner", "RentalUnit", "Tenant", "Vendor" ], "type": "string" }, "CategoryId": { "format": "int32", "description": "Filters results to any file associated with the specified category identifier.", "type": "integer" }, "TitleOrDescription": { "description": "Filters results to files whose title or description *contains* the specified value.", "type": "string" }, "UploadedFrom": { "format": "date", "description": "Filters results to any files that were updated on or after the specified date. The value must be formatted as YYYY-MM-DD.", "type": "string" }, "UploadedTo": { "format": "date", "description": "Filters results to any files that were updated on or before the specified date. The value must be formatted as YYYY-MM-DD.", "type": "string" }, "PhysicalFileNames": { "description": "Filters results to any files with a `PhysicalFileName`exactly matching one of the provided values.", "type": "array", "items": { "type": "string" } } } }, "FileUploadPostMessage": { "required": [ "EntityType", "FileName", "Title", "CategoryId" ], "type": "object", "properties": { "EntityType": { "description": "Specifies the type of entity that `EntityId` refers to.", "enum": [ "Account", "Association", "AssociationOwner", "AssociationUnit", "Lease", "OwnershipAccount", "PublicAsset", "Rental", "RentalOwner", "RentalUnit", "Tenant", "Vendor" ], "type": "string" }, "EntityId": { "format": "int32", "description": "Unique identified of the Entity Type.", "type": "integer" }, "FileName": { "description": "Name of file being uploaded. The value can not exceed 255 characters.", "type": "string" }, "Title": { "description": "Title of file upload. The value can not exceed 255 characters.", "type": "string" }, "Description": { "description": "Description of file upload. The value can not exceed 1000 characters.", "type": "string" }, "CategoryId": { "format": "int32", "description": "Unique identified of file category.", "type": "integer" } } }, "FileUploadTicketMessage": { "type": "object", "properties": { "BucketUrl": { "description": "AWS S3 Bucket Url.", "type": "string" }, "FormData": { "description": "AWS Meta Data.", "type": "object", "additionalProperties": { "type": "string" } }, "PhysicalFileName": { "description": "The physical file name.", "type": "string" } } }, "GeneralJournalEntryLineSaveMessage": { "required": [ "GLAccountId", "PostingType", "Amount" ], "type": "object", "properties": { "GLAccountId": { "format": "int32", "description": "GetAllGLAccounts\">Get All GLAccounts for a listing of available accounts.", "type": "integer" }, "Memo": { "description": "Memo for the line item.", "type": "string" }, "PostingType": { "description": "The posting type for the line item.", "enum": [ "Credit", "Debit" ], "type": "string" }, "Amount": { "format": "double", "description": "Amount of the line item.", "type": "number" } } }, "GeneralJournalEntryPostMessage": { "required": [ "AccountingEntity", "Date", "Lines" ], "type": "object", "properties": { "AccountingEntity": { "$ref": "#/components/schemas/AccountingEntitySaveMessage" }, "Date": { "format": "date", "description": "Date of the general journal entry. The date must be formatted as YYYY-MM-DD.", "type": "string" }, "Memo": { "description": "Description of the general journal entry. Must be no longer than 240 characters.", "type": "string" }, "Lines": { "description": "A list of general journal entry lines. At least two lines are required. The total amount of the debit PostingType lines must equal the total of the credit PostingType lines.", "type": "array", "items": { "$ref": "#/components/schemas/GeneralJournalEntryLineSaveMessage" } } } }, "GeneralJournalEntryPutMessage": { "required": [ "AccountingEntity", "Date", "Lines" ], "type": "object", "properties": { "AccountingEntity": { "$ref": "#/components/schemas/AccountingEntitySaveMessage" }, "Date": { "format": "date", "description": "Date of the general journal entry. The date must be formatted as YYYY-MM-DD.", "type": "string" }, "Memo": { "description": "Description of the general journal entry. Must be no longer than 240 characters.", "type": "string" }, "Lines": { "description": "A list of general journal entry lines. At least two lines are required. The total amount of the debit PostingType lines must equal the total of the credit PostingType lines.", "type": "array", "items": { "$ref": "#/components/schemas/GeneralJournalEntryLineSaveMessage" } } } }, "GeneralLedgerJournalLineMessage": { "description": "This is an object that represents a line item for a journal entry.", "type": "object", "properties": { "GLAccount": { "$ref": "#/components/schemas/GLAccountMessage" }, "Amount": { "format": "double", "description": "Amount of the line item.", "type": "number" }, "IsCashPosting": { "description": "Indicates whether the line item is a cash posting.", "type": "boolean" }, "ReferenceNumber": { "description": "Reference number for the line item.", "type": "string" }, "Memo": { "description": "Memo for the line item.", "type": "string" }, "AccountingEntity": { "$ref": "#/components/schemas/AccountingEntityMessage" } } }, "GeneralLedgerJournalMessage": { "type": "object", "properties": { "Memo": { "description": "Memo associated with the journal.", "type": "string" }, "Lines": { "description": "A collection of line items associated with the journal.", "type": "array", "items": { "$ref": "#/components/schemas/GeneralLedgerJournalLineMessage" } } } }, "GeneralLedgerTransactionMessage": { "description": "This is an object that represents a financial transaction", "type": "object", "properties": { "Id": { "format": "int32", "description": "Transaction unique identifier.", "type": "integer" }, "Date": { "format": "date", "description": "Date of the transaction.", "type": "string" }, "TransactionType": { "description": "Type of transaction that occurred", "enum": [ "Bill", "Check", "Charge", "Payment", "Credit", "Refund", "ApplyDeposit", "ElectronicFundsTransfer", "Other", "Deposit", "GeneralJournalEntry", "OwnerContribution", "ReversePayment", "ReverseElectronicFundsTransfer", "VendorCredit", "RentalApplicationFeePayment", "ReverseRentalApplicationFeePayment", "ReverseOwnerContribution", "VendorRefund", "UnreversedPayment", "UnreversedElectronicFundsTransfer", "UnreversedOwnerContribution", "UnreversedRentalApplicationFeePayment" ], "type": "string" }, "TotalAmount": { "format": "double", "description": "Sum of all `Journal.Lines.Amount` entries in the transaction.", "type": "number" }, "CheckNumber": { "description": "Check number associated with the transaction, if applicable.", "type": "string" }, "UnitAgreement": { "$ref": "#/components/schemas/UnitAgreementMessage" }, "UnitId": { "format": "int32", "description": "Unit unique identifier associated with the transaction, if applicable. Null if value is not set.", "type": "integer" }, "UnitNumber": { "description": "Unit number associated with the transaction, if applicable. Null if value is not set.", "type": "string" }, "PaymentDetail": { "$ref": "#/components/schemas/PaymentDetailMessage" }, "DepositDetails": { "$ref": "#/components/schemas/DepositDetailMessage" }, "Journal": { "$ref": "#/components/schemas/GeneralLedgerJournalMessage" } } }, "GeneralLedgerTransactionSearchMessage": { "description": "An object that contains search criteria for retrieving general ledger transactions.", "required": [ "StartDate", "EndDate", "GlAccountIds" ], "type": "object", "properties": { "SelectionEntityId": { "format": "int32", "description": "Filters results to any transaction containing journal lines for an entity associated with the specified entity id value. The id must be of the type specified in SelectionEntityType.", "type": "integer" }, "SelectionEntityType": { "description": "Specifies the type of entity that SelectionEntityId refers to.", "enum": [ "Rental", "RentalOwner", "Association" ], "type": "string" }, "StartDate": { "format": "date", "description": "Filters results to any transaction whose date is greater than or equal to the specified value.", "type": "string" }, "EndDate": { "format": "date", "description": "Filters results to any transaction whose date is less than or equal to the specified value.", "type": "string" }, "GlAccountIds": { "description": "Filters results to transactions whose general ledger account belongs to the specified set of general ledger account ids.", "type": "array", "items": { "format": "int32", "type": "integer" } } } }, "GLAccountBalanceItemMessage": { "description": "An object that represents an accounting entity's contribution to the general ledger account total balance.", "type": "object", "properties": { "Balance": { "format": "double", "description": "The sum of transactions associated with the general ledger account for the given accounting entity.", "type": "number" }, "AccountingEntity": { "$ref": "#/components/schemas/AccountingEntityMessage" } } }, "GLAccountBalanceMessage": { "description": "Represents the balance amount of a general ledger account.", "type": "object", "properties": { "TotalBalance": { "format": "double", "description": "The sum of transactions across all accounting entities (rental properties, association properties and your company) that are associated with the given general ledger account.", "type": "number" }, "GLAccount": { "$ref": "#/components/schemas/GLAccountMessage" }, "AccountingEntityBalances": { "description": "A collection of accounting entity balances that make up the `TotalBalance`.", "type": "array", "items": { "$ref": "#/components/schemas/GLAccountBalanceItemMessage" } } } }, "GLAccountBalanceSearchMessage": { "description": "An object that contains search criteria for retrieving general ledger account balances.", "required": [ "AccountingBasis", "AsOfDate" ], "type": "object", "properties": { "EntityType": { "description": "Specifies the type of entity that `EntityId` field refers to.", "enum": [ "Association", "Rental", "RentalOwner" ], "type": "string" }, "EntityId": { "format": "int32", "description": "Filters transactions used in calculating the general ledger account balances to only those containing journal lines for with the specified entity id value. The entity id specified must be of the type specified in `EntityType`.", "type": "integer" }, "GLAccountIds": { "description": "Filters results to the specified set of general ledger account identifiers.", "type": "array", "items": { "format": "int32", "type": "integer" } }, "AccountingBasis": { "description": "The methodology in which revenues and expenses are recognized when calculating the balances. Specifying `Cash` calculates balances based on when money changes hands. Specifying `Accrual` calculates balances based on the period in which the transaction originally happened.", "enum": [ "Accrual", "Cash" ], "type": "string" }, "AsOfDate": { "format": "date", "description": "Indicates the end date through which the balances will be calculated. This will include all transactions in your account until this specified date.", "type": "string" } } }, "GLAccountMessage": { "description": "A message that represents a general ledger account.", "type": "object", "properties": { "Id": { "format": "int32", "description": "General ledger account unique identifier.", "type": "integer" }, "AccountNumber": { "description": "General ledger account number.", "type": "string" }, "Name": { "description": "Name of the general ledger account.", "type": "string" }, "Description": { "description": "Description of the general ledger account.", "type": "string" }, "Type": { "description": "Describes the type of general ledger account.", "enum": [ "Asset", "Liability", "Equity", "Income", "Expense" ], "type": "string" }, "SubType": { "description": "Describes the subtype of the general ledger account.", "enum": [ "CurrentAsset", "FixedAsset", "CurrentLiability", "LongTermLiability", "Equity", "Income", "NonOperatingIncome", "OperatingExpenses", "NonOperatingExpenses" ], "type": "string" }, "IsDefaultGLAccount": { "description": "Indicates if the general ledger account is a default for auto populating fields.", "type": "boolean" }, "DefaultAccountName": { "description": "Indicates the original name of the general ledger account if it is a default account.", "type": "string" }, "IsContraAccount": { "description": "Indicates whether the account is a contra account.", "type": "boolean" }, "IsBankAccount": { "description": "Indicates whether the account is a bank account.", "type": "boolean" }, "CashFlowClassification": { "description": "Describes the cash flow classification for the general ledger account.", "enum": [ "OperatingActivities", "InvestingActivities", "FinancingActivities" ], "type": "string" }, "ExcludeFromCashBalances": { "description": "Indicates whether transactions associated with the account should be excluded from cash balances.", "type": "boolean" }, "SubAccounts": { "description": "Children general ledger accounts. The relationship only goes one level deep.", "type": "array", "items": { "$ref": "#/components/schemas/GLAccountMessage" } }, "IsActive": { "description": "Indicates whether the account is active.", "type": "boolean" }, "ParentGLAccountId": { "format": "int32", "description": "Unique identifier of the parent general ledger account, if applicable.", "type": "integer" } } }, "GLAccountPostMessage": { "required": [ "SubType", "Name", "AccountNumber" ], "type": "object", "properties": { "SubType": { "description": "Describes the subtype of the general ledger account.", "enum": [ "CurrentAsset", "FixedAsset", "CurrentLiability", "LongTermLiability", "Equity", "Income", "NonOperatingIncome", "OperatingExpenses", "NonOperatingExpenses" ], "type": "string" }, "IsCashAsset": { "description": "Indicates if an account is a Cash Asset. Can only have a value if SubType is `CurrentAsset`", "type": "boolean" }, "Name": { "description": "Name of the general ledger account. The name cannot exceed 50 characters and must be unique across all general ledger accounts.", "type": "string" }, "AccountNumber": { "description": "General ledger account number. The account number cannot exceed 12 characters and must be unique across all general ledger accounts.", "type": "string" }, "Description": { "description": "Description of the general ledger account. The description cannot exceed 250 characters.", "type": "string" }, "IsContraAccount": { "description": "Indicates whether the account is a contra account. Must be null if `IsCashAsset` field is set to true.", "type": "boolean" }, "CashFlowClassification": { "description": "Describes the cash flow classification for the general ledger account. Must be null if `IsCashAsset` field is set to true.", "enum": [ "OperatingActivities", "InvestingActivities", "FinancingActivities" ], "type": "string" }, "ParentGLAccountId": { "format": "int32", "description": "Unique identifier of the parent general ledger account. Indicates if this is a sub general ledger account.", "type": "integer" } } }, "GLAccountPutMessage": { "required": [ "Name", "SubType" ], "type": "object", "properties": { "Name": { "description": "Name of the general ledger account. The name cannot exceed 50 characters and must be unique across all general ledger accounts.", "type": "string" }, "SubType": { "description": "Describes the subtype of the general ledger account.", "enum": [ "CurrentAsset", "FixedAsset", "CurrentLiability", "LongTermLiability", "Equity", "Income", "NonOperatingIncome", "OperatingExpenses", "NonOperatingExpenses" ], "type": "string" }, "ParentGLAccountId": { "format": "int32", "description": "Unique identifier of the parent general ledger account. Indicates if this is a sub general ledger account.", "type": "integer" }, "IsCashAsset": { "description": "Indicates if an account is a Cash Asset. Can only have a value if SubType is `CurrentAsset`", "type": "boolean" }, "AccountNumber": { "description": "General ledger account number. The account number cannot exceed 12 characters and must be unique across all general ledger accounts.", "type": "string" }, "Description": { "description": "Description of the general ledger account. The description cannot exceed 250 characters.", "type": "string" }, "IsContraAccount": { "description": "Indicates whether the account is a contra account. Must be null if `IsCashAsset` field is set to true.", "type": "boolean" }, "CashFlowClassification": { "description": "Describes the cash flow classification for the general ledger account. Must be null if `IsCashAsset` field is set to true.", "enum": [ "OperatingActivities", "InvestingActivities", "FinancingActivities" ], "type": "string" } } }, "GLAccountsSearchMessage": { "description": "Search Message for GLAccount queries", "type": "object", "properties": { "AccountTypes": { "description": "Filters results by the specified general ledger account types.", "type": "array", "items": { "enum": [ "Asset", "Liability", "Equity", "Income", "Expense" ], "type": "string" } } } }, "GLTransactionMessageV1": { "type": "object", "properties": { "Id": { "format": "int32", "description": "General ledger transaction unique identifier.", "type": "integer" }, "Amount": { "format": "double", "description": "General ledger transaction amount.", "type": "number" }, "CheckNumber": { "description": "General ledger transaction check number.", "type": "string" }, "EntryDate": { "format": "date", "description": "Date the transaction was made.", "type": "string" }, "Memo": { "description": "General ledger transaction memo.", "type": "string" } } }, "InternalTransactionStatusMessage": { "description": "This object represents the status for internal transactions", "type": "object", "properties": { "IsPending": { "description": "Indicates whether the transaction is pending processing.", "type": "boolean" }, "ResultDate": { "format": "date", "description": "The date the transaction was processed.", "type": "string" }, "ResultCode": { "description": "The result code of the transaction.", "type": "string" } } }, "JournalLineMessage": { "description": "This is an object that represents a line item for a journal entry.", "type": "object", "properties": { "GLAccount": { "$ref": "#/components/schemas/GLAccountMessage" }, "Amount": { "format": "double", "description": "Amount of the line item.", "type": "number" }, "IsCashPosting": { "description": "Indicates whether the line item is a cash posting.", "type": "boolean" }, "ReferenceNumber": { "description": "Reference number for the line item.", "type": "string" }, "Memo": { "description": "Memo for the line item.", "type": "string" }, "PropertyId": { "format": "int32", "description": "PropertyId associated with the line item.", "type": "integer" } } }, "JournalMessage": { "type": "object", "properties": { "Memo": { "description": "Memo associated with the journal.", "type": "string" }, "Lines": { "description": "A collection of line items associated with the journal.", "type": "array", "items": { "$ref": "#/components/schemas/JournalLineMessage" } } } }, "LastUpdatedByUserMessage": { "description": "Last updated details.", "type": "object", "properties": { "Id": { "format": "int32", "description": "User unique identifier.", "type": "integer" }, "FirstName": { "description": "User first name.", "type": "string" }, "LastName": { "description": "User last name.", "type": "string" }, "Href": { "description": "A link to the user resource.", "type": "string" }, "UpdatedDateTime": { "format": "date-time", "description": "The date and time the note was last updated.", "type": "string" } } }, "LeaseAccountDetailMessage": { "description": "This is an object that represents lease financial details.", "type": "object", "properties": { "SecurityDeposit": { "format": "double", "description": "Security deposit for the lease. Null if no security deposit exists.", "type": "number" }, "Rent": { "format": "double", "description": "Rent for the lease. Null if no rent exists.", "type": "number" } } }, "LeaseChargeLineSaveMessage": { "description": "This is an object that represents a line item on a lease charge", "required": [ "Amount", "GLAccountId" ], "type": "object", "properties": { "Amount": { "format": "double", "description": "Line item amount.", "type": "number" }, "GLAccountId": { "format": "int32", "description": "The general ledger account identifier under which the line item amount will be recorded.", "type": "integer" }, "ReferenceNumber": { "description": "Reference number for the line item. The value cannot exceed 30 characters.", "type": "string" } } }, "LeaseChargePostMessage": { "description": "This is an object that represents a charge related to a lease", "type": "object", "properties": { "Date": { "format": "date", "description": "Date of the charge. The date must be formatted as YYYY-MM-DD.", "type": "string" }, "Memo": { "description": "Memo associated with the charge. The value cannot exceed 65 characters.", "type": "string" }, "Lines": { "description": "A collection of line items included in the charge. At least one line item is required.", "type": "array", "items": { "$ref": "#/components/schemas/LeaseChargeLineSaveMessage" } } } }, "LeaseChargePutMessage": { "required": [ "Date", "Lines" ], "type": "object", "properties": { "Date": { "format": "date", "description": "Date of the charge. The date must be formatted as YYYY-MM-DD.", "type": "string" }, "Memo": { "description": "Memo associated with the charge. The value cannot exceed 65 characters.", "type": "string" }, "Lines": { "description": "Collection of line items to be included in the charge. All existing line items will be deleted and replaced with the line items in this request. At least 1 line item is required.", "type": "array", "items": { "$ref": "#/components/schemas/LeaseChargeLineSaveMessage" } } } }, "LeaseChargeRecurringTransactionMessage": { "type": "object", "properties": { "Id": { "format": "int32", "description": "The unique identifier of the recurring charge schedule.", "type": "integer" }, "LeaseId": { "format": "int32", "description": "The unique identifier of the lease that the recurring charge will be applied to.", "type": "integer" }, "GLAccountId": { "format": "int32", "description": "The general ledger account unique identifier the recurring charge is applied to.", "type": "integer" }, "RentId": { "format": "int32", "description": "The unique identifier of the scheduled Rent entity. If the charge is not associated with a Rent entity then the value will be `NULL`.", "type": "integer" }, "Amount": { "format": "double", "description": "The amount of the recurring charge.", "type": "number" }, "Memo": { "description": "Memo associated with the recurring charge.", "type": "string" }, "OccurrencesRemaining": { "format": "int32", "description": "The number of remaining times this recurring charge will be processed.", "type": "integer" }, "FirstOccurrenceDate": { "format": "date", "description": "The date the first occurence this charge was processed.", "type": "string" }, "NextOccurrenceDate": { "format": "date", "description": "The next date the scheduled charge will be processed.", "type": "string" }, "PostDaysInAdvance": { "format": "int32", "description": "The number of days ahead of the transaction date the charge will post on the lease ledger. This setting is used to add the charge to the ledger ahead of it's due date for visibility. For example, if the `FirstOccurrenceDate` is set to 8/10/2022 and this value is set to 5 then the charge will added to the ledger on 8/5/2022, but will have transaction date of 8/10/2022.", "type": "integer" }, "Frequency": { "description": "Specifies the frequency at which the recurring charge will be processed.", "enum": [ "Monthly", "Weekly", "Every2Weeks", "Quarterly", "Yearly", "Every2Months", "Daily", "Every6Months", "OneTime" ], "type": "string" }, "Duration": { "description": "Specifies the period of time/occurrences the recurring charge will be processed. Note, if the `Frequency` field is set to `OneTime` this field should be set to `NULL` as any submitted value will be ignored.", "enum": [ "Unspecified", "UntilEndOfTerm", "SpecificNumber", "SpecificDate" ], "type": "string" } } }, "LeaseCosignerPostMessage": { "description": "This object represents a rental lease cosigner.", "required": [ "FirstName", "LastName" ], "type": "object", "properties": { "FirstName": { "description": "First name of the cosigner.", "type": "string" }, "LastName": { "description": "Last name of the cosigner.", "type": "string" }, "Email": { "description": "Email for the cosigner.", "type": "string" }, "AlternateEmail": { "description": "Alternate Email for the cosigner.", "type": "string" }, "PhoneNumbers": { "$ref": "#/components/schemas/PhoneNumbersMessage" }, "Address": { "$ref": "#/components/schemas/SaveAddressMessage" }, "AlternateAddress": { "$ref": "#/components/schemas/SaveAddressMessage" }, "MailingPreference": { "description": "Mailing preferences for the cosigner. If an alternate address exists and this value is not provided then the primary address will be set as the preferred address.", "enum": [ "PrimaryAddress", "AlternateAddress" ], "type": "string" } } }, "LeaseLedgerCreditLinePostMessage": { "description": "Credit line item.", "required": [ "Amount", "GlAccountId" ], "type": "object", "properties": { "Amount": { "format": "double", "description": "Line item amount.", "type": "number" }, "GlAccountId": { "format": "int32", "description": "The general ledger account identifier under which the line item amount will be recorded. The account must be a liability or income type.", "type": "integer" } } }, "LeaseLedgerCreditPostMessage": { "required": [ "Date", "CreditType", "Lines" ], "type": "object", "properties": { "Date": { "format": "date", "description": "Date of the transaction. The date must be formatted as YYYY-MM-DD.", "type": "string" }, "Memo": { "description": "Description of the transaction. The value cannot exceed 65 characters.", "type": "string" }, "CreditType": { "description": "Indicates how the credit should be applied.\r\n", "enum": [ "WaiveUnpaid", "Exchange", "PreviouslyDeposited" ], "type": "string" }, "OffsettingGLAccountId": { "format": "int32", "description": "Sets the offsetting general ledger account identifier for the credit.\r\n
This value must be provided when the `CreditType` field is set to `Exchange` or `PreviouslyDeposited`.\r\n
When the `CreditType` is `Exchange` this must be an *expense* general ledger account type.\r\n
When the `CreditType` is `PreviouslyDeposited` this must be an *equity* general ledger account type.", "type": "integer" }, "Lines": { "description": "A collection of line items included in the credit. At least one line item is required.", "type": "array", "items": { "$ref": "#/components/schemas/LeaseLedgerCreditLinePostMessage" } } } }, "LeaseLedgerDepositWithholdingLinePostMessage": { "required": [ "Amount", "GLAccountId" ], "type": "object", "properties": { "Amount": { "format": "double", "description": "Line item amount.", "type": "number" }, "GLAccountId": { "format": "int32", "description": "General ledger account identifier under which the line item amount will be recorded. Must be an Income account.", "type": "integer" } } }, "LeaseLedgerDepositWithholdingPostMessage": { "required": [ "EntryDate", "DepositLiabilityGLAccountId" ], "type": "object", "properties": { "EntryDate": { "format": "date", "description": "Date of the deposit withholding. The date must be formatted as YYYY-MM-DD.", "type": "string" }, "DepositLiabilityGLAccountId": { "format": "int32", "description": "The identifier of the liability general ledger account from which to withhold the funds. Note, the specified liability account must have a positive balance.", "type": "integer" }, "Memo": { "description": "Memo associated with the withholding. Memo cannot exceed 65 characters.", "type": "string" }, "Lines": { "description": "Line items specifying the income accounts the deposit will be applied to. The total amount of the line items can not exceed the balance of the liability account.", "type": "array", "items": { "$ref": "#/components/schemas/LeaseLedgerDepositWithholdingLinePostMessage" } } } }, "LeaseLedgerPaymentLineSaveMessage": { "description": "This is an object that represents a line item on a lease ledger payment", "required": [ "Amount", "GLAccountId" ], "type": "object", "properties": { "Amount": { "format": "double", "description": "Amount of the line item.", "type": "number" }, "GLAccountId": { "format": "int32", "description": "The general ledger account identifier under which the line item amount will be recorded.", "type": "integer" } } }, "LeaseLedgerPaymentPostMessage": { "description": "This is an object that represents a Payment made in a particular lease ledger.", "required": [ "Date", "PaymentMethod", "SendEmailReceipt", "Lines" ], "type": "object", "properties": { "Date": { "format": "date", "description": "The date of the transaction. The date must be formatted as YYYY-MM-DD.", "type": "string" }, "PaymentMethod": { "description": "The payment method used for the transaction.", "enum": [ "Check", "Cash", "MoneyOrder", "CashierCheck", "DirectDeposit", "CreditCard", "ElectronicPayment" ], "type": "string" }, "PayeeUserId": { "format": "int32", "description": "The payee's user unique identifier.", "type": "integer" }, "Memo": { "description": "A brief note describing the reason for the payment. The value cannot exceed 65 characters.", "type": "string" }, "ReferenceNumber": { "description": "The reference Number of the transaction. The value cannot exceed 30 characters.", "type": "string" }, "SendEmailReceipt": { "description": "An indicator for whether or not to send an email receipt to the payee. If the payee does not have an email address set, no email will be sent.", "type": "boolean" }, "Lines": { "description": "A collection of line items included in the payment. At least one line item is required.", "type": "array", "items": { "$ref": "#/components/schemas/LeaseLedgerPaymentLineSaveMessage" } } } }, "LeaseLedgerRefundLineMessage": { "type": "object", "properties": { "Amount": { "format": "double", "description": "Amount of the line item.", "type": "number" }, "GLAccountId": { "format": "int32", "description": "Unique identifier of the general ledger account associated with the refund.", "type": "integer" } } }, "LeaseLedgerRefundLinePostMessage": { "required": [ "Amount", "GLAccountId" ], "type": "object", "properties": { "Amount": { "format": "double", "description": "Amount of the line item.", "type": "number" }, "GLAccountId": { "format": "int32", "description": "Unique identifier of the general ledger account associated with the refund.", "type": "integer" } } }, "LeaseLedgerRefundMessage": { "type": "object", "properties": { "Id": { "format": "int32", "description": "Refund unique identifier.", "type": "integer" }, "Date": { "format": "date", "description": "Date of the refund.", "type": "string" }, "Payees": { "description": "List of payees being refunded.", "type": "array", "items": { "$ref": "#/components/schemas/PayeeMessage" } }, "Memo": { "description": "Memo associated with the refund, if applicable.", "type": "string" }, "CheckNumber": { "description": "Check number associated with the refund, if applicable.", "type": "string" }, "BankAccountId": { "format": "int32", "description": "Unique identifier of the bank account that the refund was made from.", "type": "integer" }, "Address": { "$ref": "#/components/schemas/AddressMessage" }, "TotalAmount": { "format": "double", "description": "Total amount of the refund.", "type": "number" }, "Lines": { "description": "A collection of line items included in the refund.", "type": "array", "items": { "$ref": "#/components/schemas/LeaseLedgerRefundLineMessage" } } } }, "LeaseLedgerRefundPostMessage": { "required": [ "Date", "PayeeUserIds", "BankAccountId", "Address", "Lines" ], "type": "object", "properties": { "Date": { "format": "date", "description": "The date of the refund. The date must be formatted as YYYY-MM-DD.", "type": "string" }, "PayeeUserIds": { "description": "Unique identifiers of the users receiving the refund.", "type": "array", "items": { "format": "int32", "type": "integer" } }, "Memo": { "description": "A brief note describing the reason for the refund. The value cannot exceed 65 characters.", "type": "string" }, "CheckNumber": { "description": "Check number associated with the refund, if applicable. The value cannot exceed 30 characters.", "type": "string" }, "BankAccountId": { "format": "int32", "description": "Unique identifier of the bank account the refund is issued from.", "type": "integer" }, "Address": { "$ref": "#/components/schemas/SaveAddressMessage" }, "Lines": { "description": "A collection of line items included in the refund. At least one line item is required.", "type": "array", "items": { "$ref": "#/components/schemas/LeaseLedgerRefundLinePostMessage" } } } }, "LeaseLedgerReversePaymentNSFChargePostMessage": { "description": "Non-sufficient funds (NSF) charge to the tenant.", "required": [ "GLAccountId", "TotalAmount" ], "type": "object", "properties": { "GLAccountId": { "format": "int32", "description": "Income general ledger income account to record the charge under.", "type": "integer" }, "TotalAmount": { "format": "double", "description": "Total amount to charge the tenant.", "type": "number" } } }, "LeaseLedgerReversePaymentOtherBankChargePostMessage": { "description": "Fee assessed by the bank for the reversed payment.", "required": [ "GLAccountId", "TotalAmount" ], "type": "object", "properties": { "GLAccountId": { "format": "int32", "description": "Expense general ledger account to associate the bank fee.", "type": "integer" }, "TotalAmount": { "format": "double", "description": "Total amount of the bank fee.", "type": "number" } } }, "LeaseLedgerReversePaymentPostMessage": { "required": [ "EntryDate", "PaymentTransactionId" ], "type": "object", "properties": { "EntryDate": { "format": "date", "description": "Date of the transaction.", "type": "string" }, "PaymentTransactionId": { "format": "int32", "description": "Transaction identifier of the payment to reverse. Note, this payment transaction must be deposited.", "type": "integer" }, "NSFCharge": { "$ref": "#/components/schemas/LeaseLedgerReversePaymentNSFChargePostMessage" }, "BankFee": { "$ref": "#/components/schemas/LeaseLedgerReversePaymentOtherBankChargePostMessage" } } }, "LeaseMessage": { "description": "This object represents a rental property lease.", "type": "object", "properties": { "Id": { "format": "int32", "description": "Lease unique identifier.", "type": "integer" }, "PropertyId": { "format": "int32", "description": "Rental property unique identifier.", "type": "integer" }, "UnitId": { "format": "int32", "description": "Unit unique identifier.", "type": "integer" }, "UnitNumber": { "description": "Unit number specified in the lease.", "type": "string" }, "LeaseFromDate": { "format": "date", "description": "Start date of the lease.", "type": "string" }, "LeaseToDate": { "format": "date", "description": "End date of the lease.", "type": "string" }, "LeaseType": { "description": "Describes the type of lease.", "enum": [ "None", "Fixed", "FixedWithRollover", "AtWill" ], "type": "string" }, "LeaseStatus": { "description": "Indicates the status of the lease.", "enum": [ "Active", "Past", "Future" ], "type": "string" }, "IsEvictionPending": { "description": "Indicates whether the lease has an eviction pending.", "type": "boolean" }, "TermType": { "description": "Describes the term type of the lease.", "enum": [ "MonthToMonth", "Standard", "Owner" ], "type": "string" }, "RenewalOfferStatus": { "description": "Describes the status of the renewal offer. Null if no renewal offer exists.", "enum": [ "NotSet", "NotStarted", "Generated", "Declined", "Renewed", "Draft", "Unsigned", "PartiallySigned", "Countersign", "Activated", "Sent", "Accepted" ], "type": "string" }, "CurrentTenants": { "description": "List of the current tenants on the lease.", "type": "array", "items": { "$ref": "#/components/schemas/TenantMessage" } }, "CurrentNumberOfOccupants": { "format": "int32", "description": "Count of current tenants.", "type": "integer" }, "AccountDetails": { "$ref": "#/components/schemas/LeaseAccountDetailMessage" }, "Cosigners": { "description": "List of the cosigners on the lease.", "type": "array", "items": { "$ref": "#/components/schemas/CosignerMessage" } }, "AutomaticallyMoveOutTenants": { "description": "Indicates whether to automatically move out all tenants assigned to the lease and set the lease status to past when the lease ends.", "type": "boolean" }, "CreatedDateTime": { "format": "date-time", "description": "Date and time the lease was created.", "type": "string" }, "LastUpdatedDateTime": { "format": "date-time", "description": "The date and time the lease was last updated.", "type": "string" }, "MoveOutData": { "description": "Move out data of lease", "type": "array", "items": { "$ref": "#/components/schemas/LeaseMoveOutDataMessage" } }, "PaymentDueDay": { "format": "int32", "description": "Day of the month payment is due.", "type": "integer" }, "Tenants": { "description": "List of all tenants ever associated with the lease", "type": "array", "items": { "$ref": "#/components/schemas/LeaseTenantMessage" } } } }, "LeaseMoveOutDataMessage": { "type": "object", "properties": { "TenantId": { "format": "int32", "description": "Tenant unique identifier.", "type": "integer" }, "MoveOutDate": { "format": "date", "description": "Date the tenant will move out of the leased unit.", "type": "string" }, "NoticeGivenDate": { "format": "date", "description": "Date the tenant move out notice was received.", "type": "string" } } }, "LeaseMoveOutDataPostMessage": { "required": [ "TenantId", "MoveOutDate" ], "type": "object", "properties": { "TenantId": { "format": "int32", "description": "Tenant unique identifier.", "type": "integer" }, "MoveOutDate": { "format": "date", "description": "Date the tenant(s) will move out of the leased unit.", "type": "string" }, "NoticeGivenDate": { "format": "date", "description": "Date the tenant(s) gave their move out notice.", "type": "string" } } }, "LeaseOutstandingBalanceMessage": { "type": "object", "properties": { "LeaseId": { "format": "int32", "description": "Lease unique identifier.", "type": "integer" }, "PropertyId": { "format": "int32", "description": "Property unique identifier.", "type": "integer" }, "UnitId": { "format": "int32", "description": "Property unit unique identifier.", "type": "integer" }, "Balance0To30Days": { "format": "double", "description": "Outstanding balance due from within the last 30 days.", "type": "number" }, "Balance31To60Days": { "format": "double", "description": "Outstanding balance due from within 31 to 60 days ago.", "type": "number" }, "Balance61To90Days": { "format": "double", "description": "Outstanding balance due from within 61 to 90 days ago.", "type": "number" }, "BalanceOver90Days": { "format": "double", "description": "Outstanding balance due from over 90 days ago.", "type": "number" }, "TotalBalance": { "format": "double", "description": "Total outstanding balance due.", "type": "number" }, "Balances": { "description": "Breakdown of outstanding balance due by general ledger account.", "type": "array", "items": { "$ref": "#/components/schemas/OutstandingBalancesLineMessage" } }, "PastDueEmailSentDate": { "format": "date-time", "description": "Date of notification for outstanding balance.", "type": "string" }, "EvictionPendingDate": { "format": "date", "description": "Date of notification for pending eviction.", "type": "string" }, "IsNoticeGiven": { "description": "Indicates if notice was sent.", "type": "boolean" } } }, "LeaseOutstandingBalanceSearchMessage": { "type": "object", "properties": { "EntityType": { "enum": [ "Rental", "RentalOwner" ], "type": "string" }, "EntityId": { "format": "int32", "type": "integer" }, "LeaseStatuses": { "type": "array", "items": { "enum": [ "Active", "Past", "Future" ], "type": "string" } }, "LeaseIds": { "type": "array", "items": { "format": "int32", "type": "integer" } }, "PastDueEmail": { "enum": [ "NoEmailAddress", "Sent" ], "type": "string" }, "BalanceDuration": { "enum": [ "TotalBalance", "Balance0to30Days", "Balance31to60Days", "Balance61to90Days", "BalanceOver90Days" ], "type": "string" }, "EvictionStatus": { "enum": [ "NotEvictionPending", "EvictionPending" ], "type": "string" } } }, "LeasePostMessage": { "required": [ "LeaseType", "UnitId", "LeaseFromDate", "SendWelcomeEmail", "Tenants" ], "type": "object", "properties": { "LeaseType": { "description": "Describes the type of lease.

\r\n`AtWill` leases are month-to-month leases. Setting a lease as at will tells Buildium when the tenant's lease initially started, but since there is no lease end date, Buildium will never move the lease to expired, and it will continue to post any automatic transactions (like recurring monthly rent charges or late fees) until you manually end the lease.\r\n

\r\n`Fixed` leases are leases that have specific start and end dates.When the end date occurs, the lease will move from active to expired, and any transactions set to post automatically(like recurring monthly rent charges or late fees) will stop posting.\r\n

\r\n`FixedWithRollover` leases are similar to fixed leases, but instead of Buildium moving this lease to expired as of the end date, it will move the lease to an at will status, which tells Buildium to continue posting monthly rent charges, late fees for you until you manually end the lease.", "enum": [ "Fixed", "FixedWithRollover", "AtWill" ], "type": "string" }, "UnitId": { "format": "int32", "description": "Unit unique identifier associated with the lease.", "type": "integer" }, "LeaseFromDate": { "format": "date", "description": "Start date of the lease.", "type": "string" }, "LeaseToDate": { "format": "date", "description": "End date of the lease.", "type": "string" }, "SendWelcomeEmail": { "description": "Indicates whether to send a welcome email to all tenants on the lease inviting them to the resident center website.", "type": "boolean" }, "Tenants": { "description": "List of the tenants on the lease.", "type": "array", "items": { "$ref": "#/components/schemas/RentalTenantPutMessage" } }, "Cosigners": { "description": "List of the cosigners on the lease.", "type": "array", "items": { "$ref": "#/components/schemas/LeaseCosignerPostMessage" } }, "Rent": { "$ref": "#/components/schemas/LeaseRentPostMessage" }, "SecurityDeposit": { "$ref": "#/components/schemas/LeaseSecurityDepositPostMessage" }, "ProratedFirstMonthRent": { "format": "double", "description": "Prorated rent charged for the first month of the lease. Must be null if the lease begins on the first day of a month.", "type": "number" }, "ProratedLastMonthRent": { "format": "double", "description": "Prorated rent charged for the last month of the lease. Must be null if the lease ends on the last day of a month.", "type": "number" } } }, "LeasePutMessage": { "required": [ "LeaseType", "UnitId", "LeaseFromDate", "IsEvictionPending" ], "type": "object", "properties": { "LeaseType": { "description": "Describes the type of lease.", "enum": [ "Fixed", "FixedWithRollover", "AtWill" ], "type": "string" }, "UnitId": { "format": "int32", "description": "Unit unique identifier associated with the lease.", "type": "integer" }, "LeaseFromDate": { "format": "date", "description": "Start date of the lease.", "type": "string" }, "LeaseToDate": { "format": "date", "description": "End date of the lease.", "type": "string" }, "IsEvictionPending": { "description": "Indicates whether the lease has an eviction pending.", "type": "boolean" }, "AutomaticallyMoveOutTenants": { "description": "Indicates whether to automatically move out all tenants assigned to the lease and set the lease status to past when the lease ends.", "type": "boolean" } } }, "LeaseRecurringCreditMessage": { "type": "object", "properties": { "Id": { "format": "int32", "description": "The unique identifier of the recurring credit schedule.", "type": "integer" }, "LeaseId": { "format": "int32", "description": "The unique identifier of the lease that the recurring credit will be applied to.", "type": "integer" }, "CreditType": { "description": "Indicates how the credit will be applied.\r\n", "enum": [ "WaiveUnpaid", "Exchange", "PreviouslyDeposited" ], "type": "string" }, "OffsettingGLAccountId": { "format": "int32", "description": "Offsetting general ledger account identifier. The offsetting general ledger account acts as the expense account.", "type": "integer" }, "PostingRuleGLAccountId": { "format": "int32", "description": "Indicates whether to apply a posting rule when processing the transaction that would only record the credit if a prior payment has been made.\r\n

\r\nSet the field value to the Rent Income general ledger account identifier if the credit should only be recorded when a payment was made and applied to the Rent Income general ledger account.\r\n

\r\nSet the field value to the Accounts Receivable general ledger account identifier if the credit should only be recorded when a payment was made and applied to *any* general ledger account.\r\n

\r\nSet the field value to null to always record the credit.", "type": "integer" }, "Lines": { "description": "Line items describing how the credit is to be allocated when the recurring transaction is processed.", "type": "array", "items": { "$ref": "#/components/schemas/RecurringTransactionLineMessage" } }, "Amount": { "format": "double", "description": "The total amount of the recurring credit based on sum of the `Lines.Amount`.", "type": "number" }, "OccurrencesRemaining": { "format": "int32", "description": "The number of remaining times this recurring credit will be processed.", "type": "integer" }, "FirstOccurrenceDate": { "format": "date", "description": "The date the first occurrence this credit was processed.", "type": "string" }, "NextOccurrenceDate": { "format": "date", "description": "The next date the scheduled credit will be processed.", "type": "string" }, "PostDaysInAdvance": { "format": "int32", "description": "Specifies the number of days ahead of the transaction date the credit will post on the lease ledger. This setting can be used to add the charge to the ledger ahead of the due date for visibility. For example, if the `FirstOccurrenceDate` is set to 8/10/2022 and this value is set to 5 then the charge will added to the ledger on 8/5/2022, but will have transaction date of 8/10/2022.", "type": "integer" }, "Memo": { "description": "Memo associated with the recurring credit.", "type": "string" }, "Frequency": { "description": "Indicates the frequency at which the recurring credit is processed.", "enum": [ "Monthly", "Weekly", "Every2Weeks", "Quarterly", "Yearly", "Every2Months", "Daily", "Every6Months", "OneTime" ], "type": "string" }, "Duration": { "description": "Specifies the period of time/occurrences the recurring payment will be processed. Note, if the `Frequency` field is set to `OneTime` this field should be set to `NULL` as any submitted value will be ignored.", "enum": [ "Unspecified", "UntilEndOfTerm", "SpecificNumber", "SpecificDate" ], "type": "string" } } }, "LeaseRecurringPaymentMessage": { "type": "object", "properties": { "Id": { "format": "int32", "description": "The unique identifier for the recurring payment schedule.", "type": "integer" }, "LeaseId": { "format": "int32", "description": "The unique identifier of the lease that the recurring payment will be applied to.", "type": "integer" }, "Payer": { "$ref": "#/components/schemas/PayeeMessage" }, "PaymentMethod": { "description": "The method of payment for the transaction.", "enum": [ "None", "Check", "Cash", "MoneyOrder", "CashierCheck", "DirectDeposit", "CreditCard", "ElectronicPayment", "RetailCash" ], "type": "string" }, "Lines": { "description": "Line items describing how the payment is to be allocated when the recurring transaction is processed.", "type": "array", "items": { "$ref": "#/components/schemas/RecurringTransactionLineMessage" } }, "Amount": { "format": "double", "description": "The total amount of the recurring payment based on sum of the `Lines.Amount`.", "type": "number" }, "OccurrencesRemaining": { "format": "int32", "description": "The number of remaining times this recurring payment will be processed.", "type": "integer" }, "FirstOccurrenceDate": { "format": "date", "description": "The date the first occurrence this payment was processed.", "type": "string" }, "NextOccurrenceDate": { "format": "date", "description": "The next date the scheduled payment will be processed.", "type": "string" }, "PostDaysInAdvance": { "format": "int32", "description": "Specifies the number of days ahead of the transaction date the payment will post on the lease ledger. This setting can be used to add the charge to the ledger ahead of the due date for visibility. For example, if the `FirstOccurrenceDate` is set to 8/10/2022 and this value is set to 5 then the charge will added to the ledger on 8/5/2022, but will have transaction date of 8/10/2022.", "type": "integer" }, "Frequency": { "description": "Indicates the frequency at which the recurring payment is processed.", "enum": [ "Monthly", "Weekly", "Every2Weeks", "Quarterly", "Yearly", "Every2Months", "Daily", "Every6Months", "OneTime" ], "type": "string" }, "Duration": { "description": "Specifies the period of time/occurrences the recurring payment will be processed. Note, if the `Frequency` field is set to `OneTime` this field should be set to `NULL` as any submitted value will be ignored.", "enum": [ "Unspecified", "UntilEndOfTerm", "SpecificNumber", "SpecificDate" ], "type": "string" }, "Memo": { "description": "Memo associated with the recurring payment.", "type": "string" } } }, "LeaseRenewalMessage": { "type": "object", "properties": { "Id": { "format": "int32", "description": "Lease renewal unique identifier.", "type": "integer" }, "LeaseStatus": { "description": "Indicates the status of the lease.", "enum": [ "Active", "Past", "Future" ], "type": "string" }, "LeaseFromDate": { "format": "date", "description": "Start date of the lease.", "type": "string" }, "LeaseToDate": { "format": "date", "description": "End date of the lease.", "type": "string" }, "LeaseType": { "description": "Describes the type of lease.", "enum": [ "None", "Fixed", "FixedWithRollover", "AtWill" ], "type": "string" }, "Rent": { "format": "double", "description": "Rent for the lease.", "type": "number" }, "RentId": { "format": "int32", "description": "The unique identifier of the scheduled Rent entity. If the renewal is not associated with a Rent entity then the value will be `NULL`.", "type": "integer" }, "TenantIds": { "description": "Unique identifiers of tenants on the lease.", "type": "array", "items": { "format": "int32", "type": "integer" } } } }, "LeaseRenewalPostMessage": { "required": [ "LeaseType", "Rent", "SendWelcomeEmail" ], "type": "object", "properties": { "LeaseType": { "description": "Describes the type of lease.", "enum": [ "Fixed", "FixedWithRollover", "AtWill" ], "type": "string" }, "LeaseToDate": { "format": "date", "description": "End date of the lease. This is required if `LeaseType` is `Fixed` or `FixedWithRollover`", "type": "string" }, "AutomaticallyMoveOutTenants": { "description": "Indicates whether to automatically move out all tenants assigned to the lease and set the lease status to past when the lease ends.", "type": "boolean" }, "Rent": { "$ref": "#/components/schemas/LeaseRentPostMessage" }, "Cosigners": { "description": "List of the cosigners to create on the lease.", "type": "array", "items": { "$ref": "#/components/schemas/LeaseCosignerPostMessage" } }, "TenantIds": { "description": "Unique identifiers of existing tenants to include on the lease. The request must include at least one tenant in this property OR the `Tenants` property.", "type": "array", "items": { "format": "int32", "type": "integer" } }, "Tenants": { "description": "List of new tenants to create on the lease. The request must include at least one tenant in this property OR the `TenantIds` property.", "type": "array", "items": { "$ref": "#/components/schemas/RentalTenantRenewalPostMessage" } }, "SendWelcomeEmail": { "description": "Indicates whether to send a welcome email to all tenants on the lease inviting them to the resident center website.", "type": "boolean" }, "RecurringChargesToStop": { "description": "Unique identifiers of existing recurring charges on the lease to stop.", "type": "array", "items": { "format": "int32", "type": "integer" } }, "RecurringChargesToCreate": { "description": "List of new recurring charges to create.", "type": "array", "items": { "$ref": "#/components/schemas/ChargeRecurringTransactionPostMessage" } }, "RecurringChargesToUpdate": { "description": "List of existing recurring charges to update.", "type": "array", "items": { "$ref": "#/components/schemas/ChargeRecurringTransactionPutMessage" } } } }, "LeaseRentChargeMessage": { "type": "object", "properties": { "Id": { "format": "int32", "description": "Rent charge unique identifier.", "type": "integer" }, "GLAccountId": { "format": "int32", "description": "General ledger account unique identifier the rent charge is related to.", "type": "integer" }, "Amount": { "format": "double", "description": "Amount of the rent charge.", "type": "number" }, "Memo": { "description": "Memo for the rent charge.", "type": "string" }, "FirstChargeDate": { "format": "date", "description": "First date for the rent charge.", "type": "string" }, "PostDaysInAdvance": { "format": "int32", "description": "Number of days ahead of the due date the charge will post on the lease ledger.", "type": "integer" }, "DueOnDayOfTheMonth": { "format": "int32", "description": "The day of the month the rent charge is due.", "type": "integer" } } }, "LeaseRentChargePostMessage": { "required": [ "Amount", "GlAccountId", "NextDueDate" ], "type": "object", "properties": { "Amount": { "format": "double", "description": "The amount of the charge.", "type": "number" }, "GlAccountId": { "format": "int32", "description": "The general ledger account identifier under which to record the charge.", "type": "integer" }, "NextDueDate": { "format": "date", "description": "Indicates the next date the charge will be applied to the lease ledger. This date will also be used as the start date for the calculating the `Cycle` of when to apply the next charge. The date must be formatted as YYYY-MM-DD.", "type": "string" }, "Memo": { "description": "Memo for the charge.", "type": "string" } } }, "LeaseRentMessage": { "type": "object", "properties": { "Id": { "format": "int32", "description": "Rent unique identifier.", "type": "integer" }, "StartDate": { "format": "date", "description": "Start date of the rent.", "type": "string" }, "EndDate": { "format": "date", "description": "End date of the rent.", "type": "string" }, "TotalAmount": { "format": "double", "description": "Total amount of the rent.", "type": "number" }, "RentCycle": { "description": "Determines the frequency at which rent is charged.", "enum": [ "None", "Monthly", "Weekly", "Every2Weeks", "Quarterly", "Yearly", "Every2Months", "Daily", "Every6Months", "OneTime" ], "type": "string" }, "BackdateCharges": { "description": "Indicates whether the rent has backdated charges.", "type": "boolean" }, "CreatedDateTime": { "format": "date-time", "description": "The date and time the rent was created.", "type": "string" }, "CreatedByUserId": { "format": "int32", "description": "Unique identifier of user that created the rent.", "type": "integer" }, "Charges": { "description": "A collection of charges associated with the rent.", "type": "array", "items": { "$ref": "#/components/schemas/LeaseRentChargeMessage" } } } }, "LeaseRentPostMessage": { "description": "The rent for the lease. When provided in the request the charges for the specified amount will be automatically applied to the lease ledger on the cadence specified in the `Cycle`.", "required": [ "Cycle", "Charges" ], "type": "object", "properties": { "Cycle": { "description": "Indicates the cadence of when rent `Charges` will be applied automatically to the lease ledger.", "enum": [ "Monthly", "Weekly", "Every2Weeks", "Quarterly", "Yearly", "Every2Months", "Daily", "Every6Months", "OneTime" ], "type": "string" }, "Charges": { "description": "List of charges to apply to the lease.", "type": "array", "items": { "$ref": "#/components/schemas/LeaseRentChargePostMessage" } } } }, "LeaseSearchMessage": { "description": "This object represents a filter for a lease search.", "type": "object", "properties": { "PropertyIds": { "description": "Filters results to any lease whose unit belongs to the specified set of property ids.", "type": "array", "items": { "format": "int32", "type": "integer" } }, "RentalOwnerIds": { "description": "Filters results to any lease whose unit belongs to a property with a rental owner in the specified set of rental owner ids.", "type": "array", "items": { "format": "int32", "type": "integer" } }, "UnitNumber": { "description": "Filters results to any lease whose unit number *contains* the specified value.", "type": "string" }, "TenantName": { "description": "Filters results to any lease whose current tenants' names *contain* the specified value.", "type": "string" }, "LeaseDateFrom": { "format": "date", "description": "Filters results to any lease whose start date is greater than or equal to the specified value.", "type": "string" }, "LeaseDateTo": { "format": "date", "description": "Filters results to any lease whose end date is less than or equal to the specified value.", "type": "string" }, "LeaseTypes": { "description": "Filters results to any lease whose lease type matches the specified status. If no type is specified, leases with any type will be returned.", "type": "array", "items": { "enum": [ "None", "Fixed", "FixedWithRollover", "AtWill" ], "type": "string" } }, "LeaseStatuses": { "description": "Filters results to any lease whose lease term matches the specified status. If no status is specified, leases with any lease term status will be returned.", "type": "array", "items": { "enum": [ "Active", "Past", "Future" ], "type": "string" } }, "CreatedDateTimeFrom": { "format": "date-time", "description": "Filters results to any lease whose created date and time are greater than or equal to the specified value. The value must be formatted as YYYY-MM-DD HH:MM:SS.", "type": "string" }, "CreatedDateTimeTo": { "format": "date-time", "description": "Filters results to any lease whose created date and time are less than or equal to the specified value. The value must be formatted as YYYY-MM-DD HH:MM:SS.", "type": "string" }, "LastUpdatedFrom": { "format": "date-time", "description": "Filters results to any leases that were updated on or after the specified date. The value must be in UTC and formatted as YYYY-MM-DDTHH:MM:SSZ.", "type": "string" }, "LastUpdatedTo": { "format": "date-time", "description": "Filters results to any leases that were updated on or before the specified date. The value must be in UTC and formatted as YYYY-MM-DDTHH:MM:SSZ.", "type": "string" } } }, "LeaseSecurityDepositPostMessage": { "description": "The security deposit on the lease. When provided in the request a one-time charge for the specified amount will be applied to the lease ledger.", "required": [ "DueDate", "Amount" ], "type": "object", "properties": { "DueDate": { "format": "date", "description": "The date the security deposit is due. This date will be used as the transaction date when applying the charge to the lease ledger.", "type": "string" }, "Amount": { "format": "double", "description": "Security deposit amount.", "type": "number" } } }, "LeaseTenantMessage": { "type": "object", "properties": { "Id": { "format": "int32", "description": "Tenant unique identifier.", "type": "integer" }, "Status": { "description": "Indicates the tenant's current status in relation to the lease.", "enum": [ "MovedOut", "Current", "Future" ], "type": "string" } } }, "LeaseTransactionMessage": { "description": "This is an object that represents a financial transaction", "type": "object", "properties": { "Id": { "format": "int32", "description": "Transaction unique identifier.", "type": "integer" }, "Date": { "format": "date", "description": "Date of the transaction.", "type": "string" }, "TransactionType": { "description": "Type of transaction that occurred", "type": "string" }, "TotalAmount": { "format": "double", "description": "Sum of all `Journal.Lines.Amount` entries in the transaction.", "type": "number" }, "CheckNumber": { "description": "Check number associated with the transaction, if applicable.", "type": "string" }, "LeaseId": { "format": "int32", "description": "Lease unique identifier associated with the transaction, if applicable. Null if value is not set.", "type": "integer" }, "PayeeTenantId": { "format": "int32", "description": "The payee's tenant unique identifier associated with the transaction, where applicable.", "type": "integer" }, "PaymentMethod": { "description": "The payment method used for the transaction.", "type": "string" }, "Journal": { "$ref": "#/components/schemas/JournalMessage" } } }, "LeaseTransactionSearchMessage": { "description": "This object represents a filter for a lease transaction search.", "type": "object", "properties": { "TransactionDateFrom": { "format": "date", "description": "Filters results to any lease transaction whose start date is greater than or equal to the specified value.", "type": "string" }, "TransactionDateTo": { "format": "date", "description": "Filters results to any lease transaction whose end date is less than or equal to the specified value.", "type": "string" }, "TransactionTypes": { "description": "Filters results to any lease transaction whose lease transaction type matches the specified status. If no type is specified, lease transactions with any type will be returned.", "type": "array", "items": { "enum": [ "Bill", "Check", "Charge", "Payment", "Credit", "Refund", "ApplyDeposit", "ElectronicFundsTransfer", "Other", "Deposit", "GeneralJournalEntry", "OwnerContribution", "ReversePayment", "ReverseElectronicFundsTransfer", "VendorCredit", "RentalApplicationFeePayment", "ReverseRentalApplicationFeePayment", "ReverseOwnerContribution", "VendorRefund", "UnreversedPayment", "UnreversedElectronicFundsTransfer", "UnreversedOwnerContribution", "UnreversedRentalApplicationFeePayment" ], "type": "string" } } } }, "ListingContactMessage": { "description": "The contact information for the listing.", "type": "object", "properties": { "Id": { "format": "int32", "description": "Listing contact unique identifier.", "type": "integer" }, "Name": { "description": "Name of listing contact.", "type": "string" }, "Email": { "description": "Email of the listing contact.", "type": "string" }, "PhoneNumber": { "description": "Phone number of the listing contact.", "type": "string" }, "Website": { "description": "Website of the listing contact.", "type": "string" } } }, "ListingContactSaveMessage": { "required": [ "Name" ], "type": "object", "properties": { "Name": { "description": "Name of the listing contact. This name must be unique across all listing contacts.", "type": "string" }, "Email": { "description": "Email address for the listing contact.", "type": "string" }, "PhoneNumber": { "description": "Phone number of the listing contact. The value must be between 10 and 20 characters, ideally formatted as (123) 123-1234.", "type": "string" }, "Website": { "description": "Website associated with the listing contact. The value must be a valid URL including the HTTP protocol. For example http://www.example.com.", "type": "string" } } }, "ListingFileMessage": { "type": "object", "properties": { "Type": { "description": "Indicates the media type of file.", "enum": [ "Image", "Video" ], "type": "string" }, "Name": { "description": "The name of the file.", "type": "string" }, "Url": { "description": "The the full URL to access the file.", "type": "string" } } }, "ListingMessage": { "type": "object", "properties": { "ListingDate": { "format": "date", "description": "The date the listing was created in Buildium. It does not reflect when the listing was syndicated and listed in external systems. It can take 24-48 hours for a listing to be syndicated once it is created in Buildium.", "type": "string" }, "Rent": { "format": "double", "description": "The asking rent amount for this unit.", "type": "number" }, "Deposit": { "format": "double", "description": "The deposit amount for the unit.", "type": "number" }, "LeaseTerms": { "description": "A summary of the lease terms.", "type": "string" }, "AvailableDate": { "format": "date", "description": "The date the unit will be available to move in.", "type": "string" }, "IsManagedExternally": { "description": "Indicates if the listing is managed by an external vendor. Note, the `Contact` property will be `null` if the this property is `true` as the contact information is managed by a vendor outside of Buildium.", "type": "boolean" }, "RentalApplicationUrl": { "description": "The URL to the online rental application hosted by Buildium.", "type": "string" }, "Contact": { "$ref": "#/components/schemas/ListingContactMessage" }, "Property": { "$ref": "#/components/schemas/ListingPropertyMessage" }, "Unit": { "$ref": "#/components/schemas/ListingUnitMessage" } } }, "ListingPropertyMessage": { "description": "Details of the unit property.", "type": "object", "properties": { "Id": { "format": "int32", "description": "Rental property unique identifier.", "type": "integer" }, "Name": { "description": "Name of the rental property.", "type": "string" }, "Address": { "$ref": "#/components/schemas/AddressMessage" }, "NumberUnits": { "format": "int32", "description": "Number of units in the rental property.", "type": "integer" }, "StructureDescription": { "description": "Description of the rental property structure.", "type": "string" }, "YearBuilt": { "format": "int32", "description": "Year the rental property was built.", "type": "integer" }, "Features": { "description": "List of features for the property.", "type": "array", "items": { "enum": [ "LaundryRoom", "WheelchairAccess", "DoorAttendant", "Elevator", "Parking", "StorageUnits", "Pool", "FitnessCenter", "TennisCourt", "ClubHouse", "Power", "ParkingCommercial", "SprinklerSystem", "DockHighDoorsOrLoadingAvailable", "Availability24Hours", "AccentWalls", "BasketballCourt", "Bilingual", "BoatDocks", "BusinessCenter", "CarWashArea", "ChildCare", "ClubDiscount", "ConferenceRoom", "Concierge", "FreeWeights", "FurnishedAvailable", "GamingStations", "Garage", "Gate", "GroceryService", "GroupExercise", "GuestRoom", "Housekeeping", "HouseSitting", "JoggingWalkingTrails", "LakeFront", "LakeAccess", "Library", "MealService", "MediaRoom", "MultiUseRoom", "NightPatrol", "OnSiteMaintenance", "OnSiteManagement", "PackageReceiving", "PerDiemAccepted", "PlayGround", "Racquetball", "RecRoom", "Recycling", "Sauna", "ShortTermLease", "SmokeFree", "Spa", "Sundeck", "Transportation", "TVLounge", "ValetTrash", "Vintage", "VolleyballCourt", "WirelessInternet", "HighSpeedInternet" ], "type": "string" } }, "IncludedInRent": { "description": "The list of amenities included in rent the property has.", "type": "array", "items": { "enum": [ "Gas", "Electric", "Trash", "Water", "HotWater", "Telephone", "Heat", "Cable", "AirCon", "Satellite", "Sewer", "BroadbandInternet" ], "type": "string" } }, "Files": { "description": "List of media files associated with the property.", "type": "array", "items": { "$ref": "#/components/schemas/ListingFileMessage" } } } }, "ListingPutMessage": { "description": "This is an object that represents a rental unit's Listing Contact.", "required": [ "Rent", "AvailableDate", "IsManagedExternally" ], "type": "object", "properties": { "Rent": { "format": "double", "description": "Rent for the listing.", "type": "number" }, "Deposit": { "format": "double", "description": "Deposit for the listing.", "type": "number" }, "LeaseTerms": { "description": "The lease term for the listing.", "type": "string" }, "AvailableDate": { "format": "date", "description": "The date the listing is available.", "type": "string" }, "ContactId": { "format": "int32", "description": "The contact Id for the listing.", "type": "integer" }, "IsManagedExternally": { "type": "boolean" } } }, "ListingSearchMessage": { "type": "object", "properties": { "EntityType": { "description": "Specifies the type of entity that `EntityId` refers to.", "enum": [ "Property", "RentalOwner" ], "type": "string" }, "EntityId": { "format": "int32", "description": "Filters results to only listings that are associated with the specified entity id value. The id must be of the type specified in `EntityType` property.", "type": "integer" } } }, "ListingUnitMessage": { "description": "Details of the unit.", "type": "object", "properties": { "Id": { "format": "int32", "description": "Rental unit unique identifier.", "type": "integer" }, "UnitNumber": { "description": "Unit number.", "type": "string" }, "Address": { "$ref": "#/components/schemas/AddressMessage" }, "UnitBedrooms": { "description": "Number of bedrooms in the unit. Null if no value is set.", "enum": [ "NotSet", "Studio", "OneBed", "TwoBed", "ThreeBed", "FourBed", "FiveBed", "SixBed", "SevenBed", "EightBed", "NineBedPlus" ], "type": "string" }, "UnitBathrooms": { "description": "Number of bathrooms in the unit. Null if no value is set.", "enum": [ "NotSet", "OneBath", "OnePointFiveBath", "TwoBath", "TwoPointFiveBath", "ThreeBath", "FourBath", "FiveBath", "FivePlusBath", "ThreePointFiveBath", "FourPointFiveBath" ], "type": "string" }, "UnitSize": { "format": "int32", "description": "Size of the unit. Null if no value is set.", "type": "integer" }, "Description": { "description": "Description of the unit.", "type": "string" }, "MarketRent": { "format": "double", "description": "Market rent of the unit. This value is separate from the lease rent and is typically used for rental listings. Null if no value is set.", "type": "number" }, "Features": { "description": "List of features for the unit.", "type": "array", "items": { "enum": [ "CableReady", "Microwave", "HardwoodFloors", "HighSpeedInternet", "AirConditioning", "Refrigerator", "Dishwasher", "WalkinClosets", "BalconyOrDeckOrPatio", "GarageParking", "Carport", "FencedYard", "LaundryRoomOrHookups", "Fireplace", "CableReadyCommercial", "HighSpeedInternetCommercial", "AirConditioningCommercial", "Heating", "OvenOrRange", "HeatElectric", "HeatGas", "HeatOil", "PetsAllowed", "Balcony", "PrivateBalcony", "PrivatePatio", "Dryer", "Heat", "WD_Hookup", "Washer", "AdditionalStorage", "Alarm", "Carpet", "CeilingFan", "ControlledAccess", "Courtyard", "Disposal", "DoubleSinkVanity", "FramedMirrors", "Furnished", "Handrails", "IndividualClimateControl", "IslandKitchen", "LinenCloset", "Pantry", "Satellite", "Skylight", "TileFlooring", "VaultedCeiling", "View", "VinylFlooring", "WheelChair", "WindowCoverings" ], "type": "string" } }, "Files": { "description": "List of media files associated with the unit.", "type": "array", "items": { "$ref": "#/components/schemas/ListingFileMessage" } } } }, "LockPeriodSettingsGlobalMessage": { "type": "object", "properties": { "LockDate": { "format": "date", "description": "Financial transactions on or prior to this date will be locked.", "type": "string" } } }, "LockPeriodSettingsOverridesMessage": { "type": "object", "properties": { "Property": { "$ref": "#/components/schemas/PropertyMessage" }, "LockDate": { "format": "date", "description": "Accounting transactions related to the property specified in the Property field on or prior to this date will be locked.", "type": "string" } } }, "LoggedByStaffUserMessage": { "description": "The staff member that logged the call.", "type": "object", "properties": { "Id": { "format": "int32", "description": "The staff user unique identifier.", "type": "integer" }, "FirstName": { "description": "First name of the staff user.", "type": "string" }, "LastName": { "description": "Last name of the staff user.", "type": "string" }, "Href": { "description": "A link to the staff user resource.", "type": "string" } } }, "LookupMessage": { "type": "object", "properties": { "Id": { "format": "int32", "type": "integer" }, "Name": { "type": "string" } } }, "MailingTemplateMessage": { "type": "object", "properties": { "Id": { "format": "int32", "description": "Unique identifier of the mailing template.", "type": "integer" }, "Name": { "description": "Name of the mailing template.", "type": "string" }, "Description": { "description": "Description of the mailing template.", "type": "string" }, "RecipientType": { "description": "Intended recipient type for mailings using the template.", "enum": [ "Tenants", "AssociationOwners", "RentalOwners", "Vendors", "Applicants" ], "type": "string" } } }, "NoteMessage": { "type": "object", "properties": { "Id": { "format": "int32", "description": "Note unique identifier.", "type": "integer" }, "Note": { "description": "Note contents.", "type": "string" }, "LastUpdatedByUser": { "$ref": "#/components/schemas/LastUpdatedByUserMessage" } } }, "NotePostMessage": { "required": [ "Note" ], "type": "object", "properties": { "Note": { "description": "Note contents. The value cannot exceed 65535 characters.", "type": "string" } } }, "NotePutMessage": { "required": [ "Note" ], "type": "object", "properties": { "Note": { "description": "Note contents. The value cannot exceed 65535 characters.", "type": "string" } } }, "NoteSearchMessage": { "type": "object", "properties": { "UpdatedDateTimeFrom": { "format": "date-time", "description": "Filters results to any note whose updated date and time are greater than or equal to the specified value. The value must be formatted as YYYY-MM-DD HH:MM:SS.", "type": "string" }, "UpdatedDateTimeTo": { "format": "date-time", "description": "Filters results to any note whose updated date and time are less than or equal to the specified value. The value must be formatted as YYYY-MM-DD HH:MM:SS.", "type": "string" }, "LastUpdatedByUserId": { "format": "int32", "description": "Filters results to only notes that were last updated by the specified user identifier.", "type": "integer" } } }, "OutstandingBalancesLineMessage": { "type": "object", "properties": { "GlAccountId": { "format": "int32", "description": "General ledger account unique identifier.", "type": "integer" }, "TotalBalance": { "format": "double", "description": "Total balance of the account on the line item.", "type": "number" } } }, "OwnershipAccountChargeRecurringTransactionMessage": { "type": "object", "properties": { "Id": { "format": "int32", "description": "The unique identifier of the recurring charge schedule.", "type": "integer" }, "OwnershipAccountId": { "format": "int32", "description": "The unique identifier of the ownership account that the recurring charge will be applied to.", "type": "integer" }, "GLAccountId": { "format": "int32", "description": "The general ledger account unique identifier the recurring charge is applied to.", "type": "integer" }, "RentId": { "format": "int32", "description": "The unique identifier of the scheduled Rent entity. If the charge is not associated with a Rent entity then the value will be `NULL`.", "type": "integer" }, "Amount": { "format": "double", "description": "The amount of the recurring charge.", "type": "number" }, "Memo": { "description": "Memo associated with the recurring charge.", "type": "string" }, "FirstOccurrenceDate": { "format": "date", "description": "The date the first occurence this charge was processed.", "type": "string" }, "NextOccurrenceDate": { "format": "date", "description": "The next date the scheduled charge will be processed.", "type": "string" }, "PostDaysInAdvance": { "format": "int32", "description": "Specifies the number of days ahead of the transaction date the charge will post on the lease ledger. This setting can be used to add the charge to the ledger ahead of the due date for visibility. For example, if the `FirstOccurrenceDate` is set to 8/10/2022 and this value is set to 5 then the charge will added to the ledger on 8/5/2022, but will have transaction date of 8/10/2022.", "type": "integer" }, "OccurrencesRemaining": { "format": "int32", "description": "The number of remaining times this recurring charge will be processed.", "type": "integer" }, "Frequency": { "description": "Indicates the frequency at which the recurring charge is processed.", "enum": [ "Monthly", "Weekly", "Every2Weeks", "Quarterly", "Yearly", "Every2Months", "Daily", "Every6Months", "OneTime" ], "type": "string" }, "Duration": { "description": "Specifies the period of time/occurrences the recurring charge will be processed. Note, if the `Frequency` field is set to `OneTime` this field should be set to `NULL` as any submitted value will be ignored.", "enum": [ "Unspecified", "UntilEndOfTerm", "SpecificNumber", "SpecificDate" ], "type": "string" } } }, "OwnershipAccountCreditLinePostMessage": { "required": [ "Amount", "GlAccountId" ], "type": "object", "properties": { "Amount": { "format": "double", "description": "Line item amount.", "type": "number" }, "GlAccountId": { "format": "int32", "description": "The general ledger account identifier under which the line item amount will be recorded. The account must be a liability or income type.", "type": "integer" } } }, "OwnershipAccountCreditPostMessage": { "required": [ "Date", "CreditType", "Lines" ], "type": "object", "properties": { "Date": { "format": "date", "description": "Date of the transaction. The date must be formatted as YYYY-MM-DD.", "type": "string" }, "Memo": { "description": "Description of the transaction. The value cannot exceed 65 characters.", "type": "string" }, "CreditType": { "description": "Indicates how the credit should be applied.\r\n", "enum": [ "WaiveUnpaid", "Exchange", "PreviouslyDeposited" ], "type": "string" }, "OffsettingGLAccountId": { "format": "int32", "description": "Sets the offsetting general ledger account identifier for the credit.\r\n
This value must be provided when the `CreditType` field is set to `Exchange` or `PreviouslyDeposited`.\r\n
When the `CreditType` is `Exchange` this must be an *expense* general ledger account type.\r\n
When the `CreditType` is `PreviouslyDeposited` this must be an *equity* general ledger account type.", "type": "integer" }, "Lines": { "description": "A collection of line items included in the credit. At least one line item is required.", "type": "array", "items": { "$ref": "#/components/schemas/OwnershipAccountCreditLinePostMessage" } } } }, "OwnershipAccountDepositWithholdingLinePostMessage": { "required": [ "Amount", "GLAccountId" ], "type": "object", "properties": { "Amount": { "format": "double", "description": "Line item amount.", "type": "number" }, "GLAccountId": { "format": "int32", "description": "General Ledger Account identifier under which the line item amount will be recorded. Must be an Income account.", "type": "integer" } } }, "OwnershipAccountDepositWithholdingPostMessage": { "required": [ "EntryDate", "DepositLiabilityGLAccountId" ], "type": "object", "properties": { "EntryDate": { "format": "date", "description": "Date of the deposit withholding. The date must be formatted as YYYY-MM-DD.", "type": "string" }, "DepositLiabilityGLAccountId": { "format": "int32", "description": "General Ledger Account identifier to record the deposit withholding under.", "type": "integer" }, "Memo": { "description": "Memo associated with the withholding. Memo cannot exceed 65 characters.", "type": "string" }, "Lines": { "description": "Collection of line items included in this deposit withholding. At least one line item is required.", "type": "array", "items": { "$ref": "#/components/schemas/OwnershipAccountDepositWithholdingLinePostMessage" } } } }, "OwnershipAccountLedgerChargeLinesPutMessage": { "required": [ "Amount", "GLAccountId" ], "type": "object", "properties": { "Amount": { "format": "double", "description": "Line item amount.", "type": "number" }, "GLAccountId": { "format": "int32", "description": "The general ledger account identifier under which the line item amount will be recorded. The account must be a liability or income type.", "type": "integer" }, "ReferenceNumber": { "description": "Reference number associated with the charge. The value cannot exceed 30 characters.", "type": "string" } } }, "OwnershipAccountLedgerChargeLinesSaveMessage": { "required": [ "Amount", "GlAccountId" ], "type": "object", "properties": { "Amount": { "format": "double", "description": "Line item amount.", "type": "number" }, "GlAccountId": { "format": "int32", "description": "The general ledger account identifier under which the line item amount will be recorded. The account must be a liability or income type.", "type": "integer" } } }, "OwnershipAccountLedgerChargePostMessage": { "required": [ "Date", "Lines" ], "type": "object", "properties": { "Date": { "format": "date", "description": "Date of the charge. The date must be formatted as YYYY-MM-DD.", "type": "string" }, "Memo": { "description": "Memo associated with the charge. The value cannot exceed 65 characters.", "type": "string" }, "Lines": { "description": "Collection of line items to be included in the charge. All existing line items will be deleted and replaced with the line items in this request. At least 1 line item is required.", "type": "array", "items": { "$ref": "#/components/schemas/OwnershipAccountLedgerChargeLinesSaveMessage" } } } }, "OwnershipAccountLedgerChargePutMessage": { "required": [ "Date", "Lines" ], "type": "object", "properties": { "Date": { "format": "date", "description": "Date of the charge. The date must be formatted as YYYY-MM-DD.", "type": "string" }, "Memo": { "description": "Memo associated with the charge. The value cannot exceed 65 characters.", "type": "string" }, "Lines": { "description": "A collection of line items included in the charge. At least one line item is required.", "type": "array", "items": { "$ref": "#/components/schemas/OwnershipAccountLedgerChargeLinesPutMessage" } } } }, "OwnershipAccountLedgerPaymentLineSaveMessage": { "description": "This is an object that represents a line item on an Ownership Account Ledger Payment", "required": [ "Amount", "GLAccountId" ], "type": "object", "properties": { "Amount": { "format": "double", "description": "Amount of the line item.", "type": "number" }, "GLAccountId": { "format": "int32", "description": "The general ledger account identifier under which the line item amount will be recorded.", "type": "integer" } } }, "OwnershipAccountLedgerPaymentPostMessage": { "description": "This is an object that represents a Payment made in a particular Ownership Account Ledger", "required": [ "Date", "PaymentMethod", "SendEmailReceipt", "Lines" ], "type": "object", "properties": { "Date": { "format": "date", "description": "The date of the transaction. The date must be formatted as YYYY-MM-DD.", "type": "string" }, "PaymentMethod": { "description": "The payment method used for the transaction.", "enum": [ "Check", "Cash", "MoneyOrder", "CashierCheck", "DirectDeposit", "CreditCard", "ElectronicPayment" ], "type": "string" }, "PayeeUserId": { "format": "int32", "description": "The payee's user unique identifier.", "type": "integer" }, "Memo": { "description": "A brief note describing the reason for the payment. The value cannot exceed 65 characters.", "type": "string" }, "ReferenceNumber": { "description": "The reference Number of the transaction. The value cannot exceed 30 characters.", "type": "string" }, "SendEmailReceipt": { "description": "An indicator for whether or not to send an email receipt to the payee. If the payee does not have an email address set, no email will be sent.", "type": "boolean" }, "Lines": { "description": "A collection of line items included in the payment. At least one line item is required.", "type": "array", "items": { "$ref": "#/components/schemas/OwnershipAccountLedgerPaymentLineSaveMessage" } } } }, "OwnershipAccountOutstandingBalanceMessage": { "type": "object", "properties": { "OwnershipAccountId": { "format": "int32", "description": "Ownership account unique identifier.", "type": "integer" }, "AssociationId": { "format": "int32", "description": "Association unique identifier .", "type": "integer" }, "UnitId": { "format": "int32", "description": "Association unit unique identifier.", "type": "integer" }, "Balance0To30Days": { "format": "double", "description": "Outstanding balance due from within the last 30 days.", "type": "number" }, "Balance31To60Days": { "format": "double", "description": "Outstanding balance due from within 31 to 60 days ago.", "type": "number" }, "Balance61To90Days": { "format": "double", "description": "Outstanding balance due from within 61 to 90 days ago.", "type": "number" }, "BalanceOver90Days": { "format": "double", "description": "Outstanding balance due from over 90 days ago.", "type": "number" }, "TotalBalance": { "format": "double", "description": "Total outstanding balance due.", "type": "number" }, "Balances": { "description": "Breakdown of outstanding balance due by general ledger account.", "type": "array", "items": { "$ref": "#/components/schemas/OutstandingBalancesLineMessage" } }, "PastDueEmailSentDate": { "format": "date-time", "description": "Date of notification for outstanding balance.", "type": "string" } } }, "OwnershipAccountOutstandingBalanceSearchMessage": { "type": "object", "properties": { "AssociationId": { "format": "int32", "description": "Association unique identifier", "type": "integer" }, "OwnershipAccountStatuses": { "description": "List of ownership account statuses", "type": "array", "items": { "enum": [ "Active", "Past", "Future" ], "type": "string" } }, "OwnershipAccountIds": { "description": "List of ownership account ids", "type": "array", "items": { "format": "int32", "type": "integer" } }, "PastDueEmail": { "description": "Status of notification of outstanding balances", "enum": [ "NoEmailAddress", "Sent" ], "type": "string" }, "BalanceDuration": { "description": "Duration of outstanding balances", "enum": [ "TotalBalance", "Balance0to30Days", "Balance31to60Days", "Balance61to90Days", "BalanceOver90Days" ], "type": "string" } } }, "OwnershipAccountRecurringCreditMessage": { "type": "object", "properties": { "Id": { "format": "int32", "description": "The unique identifier of the recurring credit schedule.", "type": "integer" }, "OwnershipAccountId": { "format": "int32", "description": "The unique identifier of the ownership account that the recurring credit will be applied to.", "type": "integer" }, "CreditType": { "description": "Indicates how the credit will be applied.\r\n", "enum": [ "WaiveUnpaid", "Exchange", "PreviouslyDeposited" ], "type": "string" }, "OffsettingGLAccountId": { "format": "int32", "description": "Offsetting general ledger account identifier. The offsetting general ledger account acts as the expense account.", "type": "integer" }, "PostingRuleGLAccountId": { "format": "int32", "description": "Indicates whether to apply a posting rule when processing the transaction that would only record the credit if a prior payment has been made.\r\n

\r\nSet the field value to the Rent Income general ledger account identifier if the credit should only be recorded when a payment was made and applied to the Rent Income general ledger account.\r\n

\r\nSet the field value to the Accounts Receivable general ledger account identifier if the credit should only be recorded when a payment was made and applied to *any* general ledger account.\r\n

\r\nSet the field value to null to always record the credit.", "type": "integer" }, "Lines": { "description": "Line items describing how the credit is to be allocated when the recurring transaction is processed.", "type": "array", "items": { "$ref": "#/components/schemas/RecurringTransactionLineMessage" } }, "Amount": { "format": "double", "description": "The total amount of the recurring credit based on sum of the `Lines.Amount`.", "type": "number" }, "OccurrencesRemaining": { "format": "int32", "description": "The number of remaining times this recurring credit will be processed.", "type": "integer" }, "FirstOccurrenceDate": { "format": "date", "description": "The date the first occurrence this credit was processed.", "type": "string" }, "NextOccurrenceDate": { "format": "date", "description": "The next date the scheduled credit will be processed.", "type": "string" }, "PostDaysInAdvance": { "format": "int32", "description": "Specifies the number of days ahead of the transaction date the credit will post on the lease ledger. This setting can be used to add the credit to the ledger ahead of the due date for visibility. For example, if the `FirstOccurrenceDate` is set to 8/10/2022 and this value is set to 5 then the charge will added to the ledger on 8/5/2022, but will have transaction date of 8/10/2022.", "type": "integer" }, "Memo": { "description": "Memo associated with the recurring credit.", "type": "string" }, "Frequency": { "description": "Indicates the frequency at which the recurring credit is processed.", "enum": [ "Monthly", "Weekly", "Every2Weeks", "Quarterly", "Yearly", "Every2Months", "Daily", "Every6Months", "OneTime" ], "type": "string" }, "Duration": { "description": "Specifies the period of time/occurrences the recurring credit will be processed. Note, if the `Frequency` field is set to `OneTime` this field should be set to `NULL` as any submitted value will be ignored.", "enum": [ "Unspecified", "UntilEndOfTerm", "SpecificNumber", "SpecificDate" ], "type": "string" } } }, "OwnershipAccountRecurringPaymentMessage": { "type": "object", "properties": { "Id": { "format": "int32", "description": "The unique identifier of the recurring payment schedule.", "type": "integer" }, "OwnershipAccountId": { "format": "int32", "description": "The unique identifier of the ownership account that the recurring payment will be applied to.", "type": "integer" }, "Payer": { "$ref": "#/components/schemas/PayeeMessage" }, "PaymentMethod": { "description": "The method of payment for the transaction.", "enum": [ "None", "Check", "Cash", "MoneyOrder", "CashierCheck", "DirectDeposit", "CreditCard", "ElectronicPayment", "RetailCash" ], "type": "string" }, "Lines": { "description": "Line items describing how the payment is to be allocated when the recurring transaction is processed.", "type": "array", "items": { "$ref": "#/components/schemas/RecurringTransactionLineMessage" } }, "Amount": { "format": "double", "description": "The total amount of the recurring payment based on sum of the `Lines.Amount`.", "type": "number" }, "FirstOccurrenceDate": { "format": "date", "description": "The date the first occurence this payment was processed.", "type": "string" }, "NextOccurrenceDate": { "format": "date", "description": "The next date the scheduled payment will be processed.", "type": "string" }, "PostDaysInAdvance": { "format": "int32", "description": "Specifies the number of days ahead of the transaction date the payment will post on the lease ledger. This setting can be used to add the payment to the ledger ahead of the due date for visibility. For example, if the `FirstOccurrenceDate` is set to 8/10/2022 and this value is set to 5 then the charge will added to the ledger on 8/5/2022, but will have transaction date of 8/10/2022.", "type": "integer" }, "Frequency": { "description": "Specifies the frequency at which the recurring payment will be processed.", "enum": [ "Monthly", "Weekly", "Every2Weeks", "Quarterly", "Yearly", "Every2Months", "Daily", "Every6Months", "OneTime" ], "type": "string" }, "Duration": { "description": "Specifies the period of time/occurrences the recurring payment will be processed. Note, if the `Frequency` field is set to `OneTime` this field should be set to `NULL` as any submitted value will be ignored.", "enum": [ "Unspecified", "UntilEndOfTerm", "SpecificNumber", "SpecificDate" ], "type": "string" }, "OccurrencesRemaining": { "format": "int32", "description": "The number of remaining times this recurring payment will be processed.", "type": "integer" }, "Memo": { "description": "Memo associated with the recurring payment.", "type": "string" } } }, "OwnershipAccountRefundLineMessage": { "type": "object", "properties": { "Amount": { "format": "double", "description": "Amount of the account on the line item.", "type": "number" }, "GLAccountId": { "format": "int32", "description": "Unique identifier of the general ledger account associated with the refund.", "type": "integer" } } }, "OwnershipAccountRefundLinesPostMessage": { "required": [ "Amount", "GLAccountId" ], "type": "object", "properties": { "Amount": { "format": "double", "description": "Line item amount.", "type": "number" }, "GLAccountId": { "format": "int32", "description": "The general ledger account identifier under which the line item amount will be recorded. The account must be a liability or income type.", "type": "integer" } } }, "OwnershipAccountRefundMessage": { "type": "object", "properties": { "Id": { "format": "int32", "description": "Refund unique identifier.", "type": "integer" }, "Date": { "format": "date", "description": "Date of the refund.", "type": "string" }, "Payees": { "description": "List of payees being refunded.", "type": "array", "items": { "$ref": "#/components/schemas/PayeeMessage" } }, "Memo": { "description": "Memo associated with the refund, if applicable.", "type": "string" }, "CheckNumber": { "description": "Check number associated with the refund, if applicable.", "type": "string" }, "BankAccountId": { "format": "int32", "description": "Unique identifier of the bank account that the refund was made from.", "type": "integer" }, "Address": { "$ref": "#/components/schemas/AddressMessage" }, "TotalAmount": { "format": "double", "description": "Total amount of the refund.", "type": "number" }, "Lines": { "description": "A collection of line items included in the refund.", "type": "array", "items": { "$ref": "#/components/schemas/OwnershipAccountRefundLineMessage" } } } }, "OwnershipAccountRefundPostMessage": { "required": [ "Date", "PayeeUserIds", "BankAccountId", "Address", "Lines" ], "type": "object", "properties": { "Date": { "format": "date", "description": "The date of the refund. The date must be formatted as YYYY-MM-DD.", "type": "string" }, "PayeeUserIds": { "description": "Unique identifiers of the users receiving the refund.", "type": "array", "items": { "format": "int32", "type": "integer" } }, "Memo": { "description": "A brief note describing the reason for the refund. The value cannot exceed 65 characters.", "type": "string" }, "CheckNumber": { "description": "Check number associated with the refund, if applicable. The value cannot exceed 30 characters.", "type": "string" }, "BankAccountId": { "format": "int32", "description": "Unique identifier of the bank account the refund is issued from.", "type": "integer" }, "Address": { "$ref": "#/components/schemas/SaveAddressMessage" }, "Lines": { "description": "A collection of line items included in the refund. At least one line item is required.", "type": "array", "items": { "$ref": "#/components/schemas/OwnershipAccountRefundLinesPostMessage" } } } }, "OwnershipAccountTransactionMessage": { "description": "This is an object that represents a financial transaction", "type": "object", "properties": { "Id": { "format": "int32", "description": "Transaction unique identifier.", "type": "integer" }, "Date": { "format": "date", "description": "Date of the transaction.", "type": "string" }, "TransactionType": { "description": "Type of transaction that occurred.", "type": "string" }, "TotalAmount": { "format": "double", "description": "Sum of all `Journal.Lines.Amount` entries in the transaction.", "type": "number" }, "CheckNumber": { "description": "Check number associated with the transaction, if applicable.", "type": "string" }, "OwnershipAccountId": { "format": "int32", "description": "Ownership account unique identifier associated with the transaction, if applicable. Null if value is not set.", "type": "integer" }, "PayeeAssociationOwnerId": { "format": "int32", "description": "The payee's association owner unique identifier associated with the transaction, where applicable.", "type": "integer" }, "PaymentMethod": { "description": "The payment method used for the transaction.", "type": "string" }, "Journal": { "$ref": "#/components/schemas/JournalMessage" } } }, "PaidByMessage": { "description": "Transaction line item.", "type": "object", "properties": { "AccountingEntity": { "$ref": "#/components/schemas/AccountingEntityMessage" }, "Amount": { "format": "double", "description": "Amount of the line item.", "type": "number" } } }, "ParticipantMessage": { "description": "The participant in the phone call.", "type": "object", "properties": { "EntityId": { "format": "int32", "description": "The unique identifier for the participant entity.", "type": "integer" }, "EntityResources": { "description": "A list of the participants entity types and links to the entity resource. Note, that a participant can have more than one type assigned to them. For example, they could be both a vendor and a rental owner.", "type": "array", "items": { "$ref": "#/components/schemas/ParticipantResourceMessage" } }, "UnitAgreement": { "$ref": "#/components/schemas/UnitAgreementMessage" } } }, "ParticipantResourceMessage": { "description": "The participant in the phone call.", "type": "object", "properties": { "Type": { "description": "Indicates the participant type.", "enum": [ "Vendor", "RentalOwner", "RentalTenant", "AssociationOwner" ], "type": "string" }, "Href": { "description": "A link to the participant resource.", "type": "string" } } }, "PayeeMessage": { "description": "The payer of the transaction.", "type": "object", "properties": { "Id": { "format": "int32", "description": "The payer user unique identifier.", "type": "integer" }, "Name": { "description": "The name of the payer.", "type": "string" }, "Type": { "description": "The payer user entity type.", "enum": [ "Tenant", "AssociationTenant", "AssociationOwner", "RentalOwner", "Vendor", "Staff" ], "type": "string" }, "Href": { "description": "A link to the resource endpoint associated with the payer.", "type": "string" } } }, "PaymentDetailMessage": { "description": "This object represents payment details.", "type": "object", "properties": { "PaymentMethod": { "description": "The payment method used for the transaction.", "enum": [ "None", "Check", "Cash", "MoneyOrder", "CashierCheck", "DirectDeposit", "CreditCard", "ElectronicPayment", "RetailCash" ], "type": "string" }, "Payee": { "$ref": "#/components/schemas/PayeeMessage" }, "IsInternalTransaction": { "description": "Whether the transaction is processed internally.", "type": "boolean" }, "InternalTransactionStatus": { "$ref": "#/components/schemas/InternalTransactionStatusMessage" } } }, "PaymentRecurringTransactionPostMessage": { "required": [ "PaymentMethod", "FirstOccurrenceDate", "PostDaysInAdvance", "Frequency" ], "type": "object", "properties": { "PayerUserId": { "format": "int32", "description": "The unique identifier of the user making the payment.", "type": "integer" }, "PaymentMethod": { "description": "The payment method for the transaction.", "enum": [ "Check", "Cash", "MoneyOrder", "CashierCheck", "DirectDeposit", "CreditCard", "ElectronicPayment" ], "type": "string" }, "Lines": { "description": "Line items describing how the payment is to be allocated when the payment is processed.", "type": "array", "items": { "$ref": "#/components/schemas/RecurringTransactionLinePostMessage" } }, "Memo": { "description": "Memo associated with the recurring payment. This value cannot exceed 65 characters.", "type": "string" }, "FirstOccurrenceDate": { "format": "date", "description": "The date the payment will first be processed. This value along with the `Frequency` is also used as the basis for the date set on the transactions in future occurrences.", "type": "string" }, "PostDaysInAdvance": { "format": "int32", "description": "Specifies the number of days ahead of the transaction date the payment will post on the lease ledger. This setting can be used to add the payment to the ledger ahead of the due date for visibility. For example, if the `FirstOccurrenceDate` is set to 8/10/2022 and this value is set to 5 then the charge will added to the ledger on 8/5/2022, but will have transaction date of 8/10/2022. Note, the value must be between 0 to 45 or set to 60, 75 or 90.", "type": "integer" }, "Frequency": { "description": "Specifies the frequency at which the recurring payment will be processed.", "enum": [ "Monthly", "Weekly", "Every2Weeks", "Quarterly", "Yearly", "Every2Months", "Daily", "Every6Months", "OneTime" ], "type": "string" }, "Duration": { "description": "Specifies the period of time/occurrences the recurring payment will be processed. Note, if the `Frequency` field is set to `OneTime` this field should be set to `NULL` as any submitted value will be ignored.", "enum": [ "UntilEndOfTerm", "SpecificNumber" ], "type": "string" }, "NumberOfOccurrences": { "format": "int32", "description": "Indicates the number of times the recurring payment should be processed. This value is required if the `Duration` field is set to `SpecificNumber`. This value can not exceed 100.", "type": "integer" } } }, "PaymentTransactionsMessage": { "type": "object", "properties": { "Id": { "format": "int32", "description": "Payment transaction unique identifier.", "type": "integer" }, "AccountingEntity": { "$ref": "#/components/schemas/AccountingEntityMessage" }, "Amount": { "format": "double", "description": "Payment amount.", "type": "number" } } }, "PhoneLogMessage": { "type": "object", "properties": { "Id": { "format": "int32", "description": "Phone log unique identifier.", "type": "integer" }, "Participant": { "$ref": "#/components/schemas/ParticipantMessage" }, "LoggedByStaffUser": { "$ref": "#/components/schemas/LoggedByStaffUserMessage" }, "Subject": { "description": "Subject of the phone call.", "type": "string" }, "Description": { "description": "Description of the phone call.", "type": "string" }, "CallDateTime": { "format": "date-time", "description": "The date and time in UTC of when the call took place.", "type": "string" } } }, "PhoneLogParticipantPostMessage": { "description": "The participant in the phone call.", "required": [ "EntityType", "EntityId" ], "type": "object", "properties": { "EntityType": { "description": "The type of participant entity.", "enum": [ "Vendor", "RentalOwner", "RentalTenant", "AssociationOwner" ], "type": "string" }, "EntityId": { "format": "int32", "description": "The unique identifier for the participant entity.", "type": "integer" }, "UnitAgreement": { "$ref": "#/components/schemas/PhoneLogParticipantUnitAgreementPostMessage" } } }, "PhoneLogParticipantUnitAgreementPostMessage": { "description": "The unit agreement associated with the participant.", "type": "object", "properties": { "Id": { "format": "int32", "description": "The unit agreement unique identifier. Note, if a value is provided in this field then `Type` must also be provided.", "type": "integer" }, "Type": { "description": "The type of unit agreement. Note, this field is required if a value is provided for the `Id` field.", "enum": [ "NotSet", "Lease", "OwnershipAccount" ], "type": "string" } } }, "PhoneLogPostMessage": { "required": [ "Participant", "Subject", "Description", "CallDateTime" ], "type": "object", "properties": { "Participant": { "$ref": "#/components/schemas/PhoneLogParticipantPostMessage" }, "Subject": { "description": "Subject of the phone call. This value is restricted to a maximum of 255 characters.", "type": "string" }, "Description": { "description": "Description of the phone call. This value is restricted to a maximum of 65,535 characters.", "type": "string" }, "CallDateTime": { "format": "date-time", "description": "The date and time the call took place. Time of the phone call must be UTC. Example format: \"2021-01-26T13:59:15Z\"", "type": "string" } } }, "PhoneLogPutMessage": { "required": [ "Subject", "Description", "CallDateTime" ], "type": "object", "properties": { "Subject": { "description": "Subject of the phone call. This value is restricted to a maximum of 255 characters.", "type": "string" }, "Description": { "description": "Description of the phone call. This value is restricted to a maximum of 65,535 characters.", "type": "string" }, "CallDateTime": { "format": "date-time", "description": "The date and time the call took place. Time of the phone call must be UTC. Example format: \"2021-01-26T13:59:15Z\"", "type": "string" } } }, "PhoneLogSearchMessage": { "type": "object", "properties": { "FromDate": { "format": "date", "description": "Filters results to any phone log whose call date is greater than or equal to the specified value.", "type": "string" }, "ToDate": { "format": "date", "description": "Filters results to any phone log whose call date is less than or equal to the specified value.", "type": "string" }, "LoggedByStaffUserIds": { "description": "Filters results to any phone log that was logged by staff user(s).", "type": "array", "items": { "format": "int32", "type": "integer" } }, "Subject": { "description": "Filters results to any phone log whose subject *contains* the specified value.", "type": "string" }, "ParticipantEntityId": { "format": "int32", "description": "Filters results to any phone logs that match the participant identifier. Note, if a value is provided in this field the `ParticipantEntityType` must also be provided.", "type": "integer" }, "ParticipantEntityType": { "description": "Filters results to any phone log with the specified participant type. This field is required if a value is provided for the `ParticipantEntityId` field.", "enum": [ "Vendor", "RentalOwner", "RentalTenant", "AssociationOwner" ], "type": "string" }, "UnitAgreementId": { "format": "int32", "description": "Filters results to any phone log with the specified unit agreement identifier. Note, if a value is provided in this field the `UnitAgreementType` must also be provided.", "type": "integer" }, "UnitAgreementType": { "description": "Filters results to any phone log with the specified unit agreement type. This field is required if a value is provided for the `UnitAgreementId` field.", "enum": [ "Lease", "OwnershipAccount" ], "type": "string" } } }, "PhoneNumberMessage": { "description": "This is an object that represents a phone number.", "type": "object", "properties": { "Number": { "description": "Phone number.", "type": "string" }, "Type": { "description": "Indicates the type of phone number.", "enum": [ "NotSet", "Home", "Office", "Cell", "Personal", "Fax", "Other" ], "type": "string" } } }, "PhoneNumbersMessage": { "description": "Phone numbers.", "type": "object", "properties": { "Home": { "description": "Home phone number. If provided, must be between 10 and 20 characters, ideally formatted as `(123) 123-1234`.", "type": "string" }, "Work": { "description": "Work phone number. If provided, must be between 10 and 20 characters, ideally formatted as `(123) 123-1234`.", "type": "string" }, "Mobile": { "description": "Mobile phone number. If provided, must be between 10 and 20 characters, ideally formatted as `(123) 123-1234`.", "type": "string" }, "Fax": { "description": "Fax number. If provided, must be between 10 and 20 characters, ideally formatted as `(123) 123-1234`.", "type": "string" } } }, "PropertyGroupMessage": { "type": "object", "properties": { "Id": { "format": "int32", "description": "Property group unique identifier.", "type": "integer" }, "Name": { "description": "Property group name.", "type": "string" }, "Description": { "description": "Property group description.", "type": "string" }, "Properties": { "description": "A list of association and/or rental property unique identifiers assigned to the property group.", "type": "array", "items": { "$ref": "#/components/schemas/PropertyMessage" } }, "CreatedByUser": { "$ref": "#/components/schemas/CreatedByUserMessage" } } }, "PropertyGroupPostMessage": { "required": [ "Name", "PropertyIds" ], "type": "object", "properties": { "Name": { "description": "Property group name. The name can not exceed 127 characters.", "type": "string" }, "Description": { "description": "Description of the property group. The description can not exceed 1000 characters.", "type": "string" }, "PropertyIds": { "description": "A list of association and/or rental property unique identifiers to assign to the property group. Property groups cannot be created using inactive associations and/or rental properties.", "type": "array", "items": { "format": "int32", "type": "integer" } } } }, "PropertyGroupPutMessage": { "required": [ "Name", "PropertyIds" ], "type": "object", "properties": { "Name": { "description": "Property group name. The name can not exceed 127 characters.", "type": "string" }, "Description": { "description": "Description of the property group. The description can not exceed 1000 characters.", "type": "string" }, "PropertyIds": { "description": "A list of association and/or rental property unique identifiers to assign to the property group. Property groups cannot be updated using inactive associations and/or rental properties.", "type": "array", "items": { "format": "int32", "type": "integer" } } } }, "PropertyGroupSearchMessage": { "type": "object", "properties": { "PropertyIds": { "description": "Filters results to property groups that contain any of the specified property ids.", "type": "array", "items": { "format": "int32", "type": "integer" } }, "NameOrDescription": { "description": "Filters results to any property group whose name or description contains the specified value.", "type": "string" } } }, "PropertyManagerMessage": { "description": "This is an object that represents a property manager.", "type": "object", "properties": { "Id": { "format": "int32", "description": "Property manager unique identifier.", "type": "integer" }, "FirstName": { "description": "First name of the property manager.", "type": "string" }, "LastName": { "description": "Last name of the property manager.", "type": "string" }, "CompanyName": { "description": "Company name of the rental owner. Empty if `IsCompany` is `false`.", "type": "string" }, "IsCompany": { "description": "Denotes if the property manager is a company.", "type": "boolean" }, "ProfilePhotoUrl": { "description": "Profile photo URL for the property manager.", "type": "string" }, "Email": { "description": "Email of the property manager.", "type": "string" }, "PhoneNumbers": { "description": "List of phone numbers associated with the property manager.", "type": "array", "items": { "$ref": "#/components/schemas/PhoneNumberMessage" } } } }, "PropertyMessage": { "description": "Property information.", "type": "object", "properties": { "Id": { "format": "int32", "description": "The property unique identifier.", "type": "integer" }, "Type": { "description": "The property type.", "enum": [ "Association", "Rental" ], "type": "string" }, "Href": { "description": "A link to the property entity resource.", "type": "string" } } }, "RecurringTransactionLineMessage": { "type": "object", "properties": { "GLAccountId": { "format": "int32", "description": "The general ledger account unique identifier the recurring transaction is related to.", "type": "integer" }, "Amount": { "format": "double", "description": "Amount of the line item.", "type": "number" } } }, "RecurringTransactionLinePostMessage": { "required": [ "GLAccountId", "Amount" ], "type": "object", "properties": { "GLAccountId": { "format": "int32", "description": "The general ledger account identifier under which the line item amount will be recorded. The account must be a liability or income type.", "type": "integer" }, "Amount": { "format": "double", "description": "Line item amount.", "type": "number" } } }, "RecurringTransactionMessage": { "type": "object", "properties": { "Id": { "format": "int32", "description": "The unique identifier for the recurring transaction schedule.", "type": "integer" }, "TransactionType": { "description": "Indicates the type of transaction to be applied to the ledger.", "enum": [ "Bill", "Check", "Charge", "Payment", "Credit", "Refund", "ApplyDeposit", "ElectronicFundsTransfer", "Other", "Deposit", "GeneralJournalEntry", "OwnerContribution", "ReversePayment", "ReverseElectronicFundsTransfer", "VendorCredit", "RentalApplicationFeePayment", "ReverseRentalApplicationFeePayment", "ReverseOwnerContribution", "VendorRefund", "UnreversedPayment", "UnreversedElectronicFundsTransfer", "UnreversedOwnerContribution", "UnreversedRentalApplicationFeePayment" ], "type": "string" }, "IsExpired": { "description": "Indicates if the recurring transaction schedule has expired.", "type": "boolean" }, "RentId": { "format": "int32", "description": "The unique identifier of the scheduled Rent entity. This field is only applicable for `Charge` transaction types.", "type": "integer" }, "OffsettingGLAccountId": { "format": "int32", "description": "Offsetting general ledger account identifier. The offsetting general ledger account acts as the expense account. Note, this field is only applicable for `Credit` transaction types.", "type": "integer" }, "Lines": { "description": "Line items describing how the transaction is to be allocated when it is processed.", "type": "array", "items": { "$ref": "#/components/schemas/RecurringTransactionLineMessage" } }, "Amount": { "format": "double", "description": "Total amount of the recurring transaction.", "type": "number" }, "Memo": { "description": "Memo associated with the recurring transaction.", "type": "string" }, "NextOccurrenceDate": { "format": "date", "description": "The next date the scheduled transaction will be processed.", "type": "string" }, "PostDaysInAdvance": { "format": "int32", "description": "The number of days ahead of the transaction date the transaction will post on the lease ledger. This setting is used to add the transaction to the ledger ahead of it's due date for visibility. For example, if the `FirstOccurrenceDate` is set to 8/10/2022 and this value is set to 5 then the charge will added to the ledger on 8/5/2022, but will have transaction date of 8/10/2022.", "type": "integer" }, "Frequency": { "description": "Indicates the frequency at which the recurring transaction is processed.", "enum": [ "Monthly", "Weekly", "Every2Weeks", "Quarterly", "Yearly", "Every2Months", "Daily", "Every6Months", "OneTime" ], "type": "string" }, "Duration": { "description": "Specifies the period of time/occurrences the recurring transaction will be processed. Note, if the `Frequency` field is set to `OneTime` this field should be set to `NULL` as any submitted value will be ignored.", "enum": [ "Unspecified", "UntilEndOfTerm", "SpecificNumber", "SpecificDate" ], "type": "string" } } }, "RentalApplianceMessage": { "type": "object", "properties": { "Id": { "format": "int32", "description": "Appliance unique identifier.", "type": "integer" }, "PropertyId": { "format": "int32", "description": "Rental property unique identifier that the appliance belongs to.", "type": "integer" }, "UnitId": { "format": "int32", "description": "Rental unit unique identifier that the appliance belongs to.", "type": "integer" }, "Name": { "description": "Name of the appliance.", "type": "string" }, "Make": { "description": "Make of the appliance.", "type": "string" }, "Model": { "description": "Model of the appliance.", "type": "string" }, "Description": { "description": "Description of the appliance.", "type": "string" }, "WarrantyEndDate": { "format": "date", "description": "Warranty end date of the appliance.", "type": "string" } } }, "RentalAppliancePostMessage": { "required": [ "PropertyId", "Name" ], "type": "object", "properties": { "PropertyId": { "format": "int32", "description": "Rental property unique identifier that the appliance belongs to.", "type": "integer" }, "UnitId": { "format": "int32", "description": "Rental unit unique identifier that the appliance belongs to.", "type": "integer" }, "Name": { "description": "The name of the appliance. The name cannot exceed 100 characters.", "type": "string" }, "Make": { "description": "The make of the appliance. The make cannot exceed 30 characters.", "type": "string" }, "Model": { "description": "The model of the appliance. The model cannot exceed 30 characters.", "type": "string" }, "Description": { "description": "The description of the appliance. The description cannot exceed 500 characters.", "type": "string" }, "InstallDate": { "format": "date", "description": "The install date for the appliance's warranty. Must be formatted as `YYYY-MM-DD`.", "type": "string" }, "WarrantyEndDate": { "format": "date", "description": "The end date for the appliance's warranty. The warranty's end date cannot be before the installed date, if it exists. Must be formatted as `YYYY-MM-DD`.", "type": "string" } } }, "RentalAppliancePutMessage": { "required": [ "Name" ], "type": "object", "properties": { "UnitId": { "format": "int32", "description": "The unit identifier the rental appliance belongs to. Must be within the rental property the appliance is in.", "type": "integer" }, "Name": { "description": "The name of the rental appliance. The name cannot exceed 100 characters.", "type": "string" }, "Make": { "description": "The make of the rental appliance. The make cannot exceed 30 characters.", "type": "string" }, "Model": { "description": "The model of the rental appliance. The model cannot exceed 30 characters.", "type": "string" }, "Description": { "description": "The description of the rental appliance. The description cannot exceed 500 characters.", "type": "string" }, "WarrantyEndDate": { "format": "date", "description": "The end date for the rental appliance's warranty. The warranty's end date cannot be before the installed date, if it exists. Must be formatted as `YYYY-MM-DD`.", "type": "string" } } }, "RentalApplianceSearchMessage": { "type": "object", "properties": { "PropertyIds": { "description": "Filters results to appliances associated to any of the specified rental property identifiers.", "type": "array", "items": { "format": "int32", "type": "integer" } }, "UnitIds": { "description": "Filters results to appliances associated to any of the specified rental unit identifiers.", "type": "array", "items": { "format": "int32", "type": "integer" } } } }, "RentalApplianceServiceHistoryMessage": { "type": "object", "properties": { "Id": { "format": "int32", "description": "Appliance service history unique identifier.", "type": "integer" }, "ServiceType": { "description": "Type of service performed.", "enum": [ "Installed", "Serviced", "Uninstalled" ], "type": "string" }, "Date": { "format": "date", "description": "Date of the service.", "type": "string" }, "Details": { "description": "Details of the service.", "type": "string" } } }, "RentalApplianceServiceHistoryPostMessage": { "required": [ "ServiceType", "Date" ], "type": "object", "properties": { "ServiceType": { "description": "Specifies the type of service that occured.", "enum": [ "Installed", "Serviced", "Uninstalled" ], "type": "string" }, "Date": { "format": "date", "description": "Date the service was performed. Must be formatted as `YYYY-MM-DD`.", "type": "string" }, "Details": { "description": "The service history details associated with the appliance. The description cannot exceed 100 characters.", "type": "string" } } }, "RentalFeaturesMessage": { "description": "Rental property amenities.", "type": "object", "properties": { "Features": { "description": "A list of overall property amenities.", "type": "array", "items": { "enum": [ "LaundryRoom", "WheelchairAccess", "DoorAttendant", "Elevator", "Parking", "StorageUnits", "Pool", "FitnessCenter", "TennisCourt", "ClubHouse", "Power", "ParkingCommercial", "SprinklerSystem", "DockHighDoorsOrLoadingAvailable", "Availability24Hours", "AccentWalls", "BasketballCourt", "Bilingual", "BoatDocks", "BusinessCenter", "CarWashArea", "ChildCare", "ClubDiscount", "ConferenceRoom", "Concierge", "FreeWeights", "FurnishedAvailable", "GamingStations", "Garage", "Gate", "GroceryService", "GroupExercise", "GuestRoom", "Housekeeping", "HouseSitting", "JoggingWalkingTrails", "LakeFront", "LakeAccess", "Library", "MealService", "MediaRoom", "MultiUseRoom", "NightPatrol", "OnSiteMaintenance", "OnSiteManagement", "PackageReceiving", "PerDiemAccepted", "PlayGround", "Racquetball", "RecRoom", "Recycling", "Sauna", "ShortTermLease", "SmokeFree", "Spa", "Sundeck", "Transportation", "TVLounge", "ValetTrash", "Vintage", "VolleyballCourt", "WirelessInternet", "HighSpeedInternet" ], "type": "string" } }, "IncludedInRent": { "description": "A list of amenities that are included in rent.", "type": "array", "items": { "enum": [ "Gas", "Electric", "Trash", "Water", "HotWater", "Telephone", "Heat", "Cable", "AirCon", "Satellite", "Sewer", "BroadbandInternet" ], "type": "string" } } } }, "RentalFeaturesPutMessage": { "type": "object", "properties": { "Features": { "description": "A list of overall property amenities. Any previously saved values that are not submitted in the update request will be deleted.", "type": "array", "items": { "enum": [ "LaundryRoom", "WheelchairAccess", "DoorAttendant", "Elevator", "Parking", "StorageUnits", "Pool", "FitnessCenter", "TennisCourt", "ClubHouse", "Power", "ParkingCommercial", "SprinklerSystem", "DockHighDoorsOrLoadingAvailable", "Availability24Hours", "AccentWalls", "BasketballCourt", "Bilingual", "BoatDocks", "BusinessCenter", "CarWashArea", "ChildCare", "ClubDiscount", "ConferenceRoom", "Concierge", "FreeWeights", "FurnishedAvailable", "GamingStations", "Garage", "Gate", "GroceryService", "GroupExercise", "GuestRoom", "Housekeeping", "HouseSitting", "JoggingWalkingTrails", "LakeFront", "LakeAccess", "Library", "MealService", "MediaRoom", "MultiUseRoom", "NightPatrol", "OnSiteMaintenance", "OnSiteManagement", "PackageReceiving", "PerDiemAccepted", "PlayGround", "Racquetball", "RecRoom", "Recycling", "Sauna", "ShortTermLease", "SmokeFree", "Spa", "Sundeck", "Transportation", "TVLounge", "ValetTrash", "Vintage", "VolleyballCourt", "WirelessInternet", "HighSpeedInternet" ], "type": "string" } }, "IncludedInRent": { "description": "A list of amenities that are included in rent. Any previously saved values that are not submitted in the update request will be deleted.", "type": "array", "items": { "enum": [ "Gas", "Electric", "Trash", "Water", "HotWater", "Telephone", "Heat", "Cable", "AirCon", "Satellite", "Sewer", "BroadbandInternet" ], "type": "string" } } } }, "RentalMessage": { "description": "This is an object that represents a rental property.", "type": "object", "properties": { "Id": { "format": "int32", "description": "Rental property unique identifier.", "type": "integer" }, "Name": { "description": "Name of the rental property.", "type": "string" }, "StructureDescription": { "description": "Description of the rental property structure.", "type": "string" }, "NumberUnits": { "format": "int32", "description": "Number of units in the rental property.", "type": "integer" }, "IsActive": { "description": "Indicates whether the rental property is active within the Buildium platform.", "type": "boolean" }, "OperatingBankAccountId": { "format": "int32", "description": "The primary bank account that a rental property uses for its income and expenses.", "type": "integer" }, "Reserve": { "format": "double", "description": "A property reserve is cash that a property manager keeps on hand in case of unexpected expenses. It is available cash that isn't disbursed in an owner draw.", "type": "number" }, "Address": { "$ref": "#/components/schemas/AddressMessage" }, "YearBuilt": { "format": "int32", "description": "Year the rental property was built.", "type": "integer" }, "RentalType": { "description": "Indicates the type of rental property.", "enum": [ "None", "Residential", "Commercial" ], "type": "string" }, "RentalSubType": { "description": "Indicates the sub type of the rental property.", "enum": [ "CondoTownhome", "MultiFamily", "SingleFamily", "Industrial", "Office", "Retail", "ShoppingCenter", "Storage", "ParkingSpace" ], "type": "string" }, "RentalManager": { "$ref": "#/components/schemas/PropertyManagerMessage" } } }, "RentalOwnerMessage": { "description": "This is an object that represents a rental property owner.", "type": "object", "properties": { "Id": { "format": "int32", "description": "Rental property owner unique identifier.", "type": "integer" }, "IsCompany": { "description": "Indicates whether the rental owner is a company.", "type": "boolean" }, "IsActive": { "description": "Indicates whether the rental owner is active within the Buildium platform.", "type": "boolean" }, "FirstName": { "description": "First name of the rental owner. Empty if `IsCompany` is `true`.", "type": "string" }, "LastName": { "description": "Last name of the rental owner. Empty if `IsCompany` is `true`.", "type": "string" }, "PhoneNumbers": { "description": "Phone numbers associated with the rental owner.", "type": "array", "items": { "$ref": "#/components/schemas/PhoneNumberMessage" } }, "Email": { "description": "Email of the rental owner.", "type": "string" }, "AlternateEmail": { "description": "Alternate email of the rental owner.", "type": "string" }, "Comment": { "description": "Comments about the rental owner.", "type": "string" }, "Address": { "$ref": "#/components/schemas/AddressMessage" }, "ManagementAgreementStartDate": { "format": "date", "description": "Start date of the management agreement with the rental owner. Null if value is not set.", "type": "string" }, "ManagementAgreementEndDate": { "format": "date", "description": "End date of the management agreement with the rental owner. Null if value is not set.", "type": "string" }, "CompanyName": { "description": "Company name of the rental owner. Empty if `IsCompany` is `false`.", "type": "string" }, "PropertyIds": { "description": "A list of rental property ID's associated with this rental owner.", "type": "array", "items": { "format": "int32", "type": "integer" } }, "TaxInformation": { "$ref": "#/components/schemas/RentalOwnerTaxInformationMessage" } } }, "RentalOwnerPostMessage": { "description": "This is an object that represents a rental property owner.", "required": [ "IsCompany", "Address", "PropertyIds" ], "type": "object", "properties": { "FirstName": { "description": "First name of the rental owner. Required if `IsCompany` is `false`. The value cannot exceed 127 characters.", "type": "string" }, "LastName": { "description": "Last name of the rental owner. Required if `IsCompany` is `false`. The value cannot exceed 127 characters.", "type": "string" }, "IsCompany": { "description": "Indicates whether the rental owner should be considered a company or person.", "type": "boolean" }, "CompanyName": { "description": "Company name of the rental owner. Required if `IsCompany` is `true`. The value cannot exceed 127 characters.", "type": "string" }, "DateOfBirth": { "format": "date", "description": "Date of birth of the rental owner. Must be formatted as `YYYY-MM-DD`.", "type": "string" }, "ManagementAgreementStartDate": { "format": "date", "description": "Start date of the management agreement with the rental owner. Must be formatted as `YYYY-MM-DD`.", "type": "string" }, "ManagementAgreementEndDate": { "format": "date", "description": "End date of the management agreement with the rental owner. Must be formatted as `YYYY-MM-DD`.", "type": "string" }, "Email": { "description": "Email of the rental owner.", "type": "string" }, "AlternateEmail": { "description": "Alternate email of the rental owner.", "type": "string" }, "PhoneNumbers": { "$ref": "#/components/schemas/PhoneNumbersMessage" }, "Address": { "$ref": "#/components/schemas/SaveAddressMessage" }, "Comment": { "description": "Comments about the rental owner. The comments cannot exceed 65,535 characters.", "type": "string" }, "PropertyIds": { "description": "A list of rental property ID's to associate with this rental owner. At least one property ID must be provided.", "type": "array", "items": { "format": "int32", "type": "integer" } }, "TaxInformation": { "$ref": "#/components/schemas/TaxInformationPostMessage" } } }, "RentalOwnerPutMessage": { "description": "This is an object that represents a rental property owner.", "required": [ "IsCompany", "Address", "PropertyIds" ], "type": "object", "properties": { "FirstName": { "description": "First name of the rental owner. Required if `IsCompany` is `false`. The value cannot exceed 127 characters.", "type": "string" }, "LastName": { "description": "Last name of the rental owner. Required if `IsCompany` is `false`. The value cannot exceed 127 characters.", "type": "string" }, "IsCompany": { "description": "Indicates whether the rental owner should be considered a company or person.", "type": "boolean" }, "CompanyName": { "description": "Company name of the rental owner. Required if `IsCompany` is `true`. The value cannot exceed 127 characters.", "type": "string" }, "DateOfBirth": { "format": "date", "description": "Date of birth of the rental owner. Must be formatted as `YYYY-MM-DD`.", "type": "string" }, "ManagementAgreementStartDate": { "format": "date", "description": "Start date of the management agreement with the rental owner. Must be formatted as `YYYY-MM-DD`.", "type": "string" }, "ManagementAgreementEndDate": { "format": "date", "description": "End date of the management agreement with the rental owner. Must be formatted as `YYYY-MM-DD`.", "type": "string" }, "Email": { "description": "Email of the rental owner.", "type": "string" }, "AlternateEmail": { "description": "Alternate email of the rental owner.", "type": "string" }, "PhoneNumbers": { "$ref": "#/components/schemas/PhoneNumbersMessage" }, "Address": { "$ref": "#/components/schemas/SaveAddressMessage" }, "Comment": { "description": "Comments about the rental owner. The comments cannot exceed 65,535 characters.", "type": "string" }, "PropertyIds": { "description": "A list of rental property ID's to associate with this rental owner. At least one property ID must be provided.", "type": "array", "items": { "format": "int32", "type": "integer" } } } }, "RentalOwnerRequestTaskMessage": { "type": "object", "properties": { "Id": { "format": "int32", "description": "Request unique identifier.", "type": "integer" }, "Category": { "$ref": "#/components/schemas/TaskCategoryResponseMessage" }, "Title": { "description": "Request title.", "type": "string" }, "Description": { "description": "Request description.", "type": "string" }, "Property": { "$ref": "#/components/schemas/PropertyMessage" }, "UnitId": { "format": "int32", "description": "The unit unique identifier associated with the request.", "type": "integer" }, "RequestedByUserEntity": { "$ref": "#/components/schemas/RequestedByUserEntityMessage" }, "AssignedToUserId": { "format": "int32", "description": "The unique identifier of the staff user assigned to the request.", "type": "integer" }, "TaskStatus": { "description": "Request status.", "enum": [ "New", "InProgress", "Completed", "Deferred", "Closed" ], "type": "string" }, "Priority": { "description": "Request priority.", "enum": [ "Low", "Normal", "High" ], "type": "string" }, "DueDate": { "format": "date", "description": "Request due date.", "type": "string" }, "CreatedDateTime": { "format": "date-time", "description": "Date and time the request was created.", "type": "string" }, "LastUpdatedDateTime": { "format": "date-time", "description": "Date and time the request was last updated.", "type": "string" } } }, "RentalOwnerRequestTaskPostMessage": { "required": [ "Title", "TaskStatus", "Priority", "RequestedByRentalOwnerId" ], "type": "object", "properties": { "Title": { "description": "Request title. The title can not exceed 127 characters.", "type": "string" }, "Description": { "description": "Request description. The description can not exceed 65500 characters.", "type": "string" }, "CategoryId": { "format": "int32", "description": "The category identifier to assign the request.", "type": "integer" }, "SubCategoryId": { "format": "int32", "description": "The subcategory identifier to assign the request.", "type": "integer" }, "PropertyId": { "format": "int32", "description": "The unique identifier of property associated with the request. The assigned property must be active.", "type": "integer" }, "UnitId": { "format": "int32", "description": "The unique identifier of the unit associated with the request. The unit must be associated with the `PropertyId` specified.", "type": "integer" }, "AssignedToUserId": { "format": "int32", "description": "The unique identifier of the staff user assigned to the request. The user must be a `Staff` user type.", "type": "integer" }, "TaskStatus": { "description": "Request status.", "enum": [ "New", "InProgress", "Completed", "Deferred", "Closed" ], "type": "string" }, "Priority": { "description": "Request priority.", "enum": [ "Low", "Normal", "High" ], "type": "string" }, "DueDate": { "format": "date", "description": "Request due date. The date must be formatted as YYYY-MM-DD.", "type": "string" }, "RequestedByRentalOwnerId": { "format": "int32", "description": "The unique identifier of the rental owner that submitted the request.", "type": "integer" } } }, "RentalOwnerRequestTaskPutMessage": { "required": [ "Title", "TaskStatus", "Priority" ], "type": "object", "properties": { "Title": { "description": "Request title. The title can not exceed 127 characters.", "type": "string" }, "Message": { "description": "Description of the request update. The message can not exceed 65500 characters.", "type": "string" }, "CategoryId": { "format": "int32", "description": "The category identifier to assign the request.", "type": "integer" }, "SubCategoryId": { "format": "int32", "description": "The subcategory identifier to assign the request.", "type": "integer" }, "PropertyId": { "format": "int32", "description": "The unique identifier of property associated with the request. The assigned property must be active.", "type": "integer" }, "UnitId": { "format": "int32", "description": "The unique identifier of the unit associated with the request. The unit must be associated with the `PropertyId` specified.", "type": "integer" }, "AssignedToUserId": { "format": "int32", "description": "The unique identifier of the staff user assigned to the request. The user must be a `Staff` user type.", "type": "integer" }, "TaskStatus": { "description": "Request status.", "enum": [ "New", "InProgress", "Completed", "Deferred", "Closed" ], "type": "string" }, "Priority": { "description": "Request priority.", "enum": [ "Low", "Normal", "High" ], "type": "string" }, "DueDate": { "format": "date", "description": "Request due date. The date must be formatted as YYYY-MM-DD.", "type": "string" } } }, "RentalOwnerRequestTaskSearchMessage": { "type": "object", "properties": { "EntityType": { "description": "Specifies the type of entity that the `EntityId` field refers to. This field is required if the `EntityId` field is populated.", "enum": [ "Rental", "RentalOwner", "Association" ], "type": "string" }, "EntityId": { "format": "int32", "description": "Filters results to any task associated with the specified entity id value. The value must be of the type specified in the `EntityType` field.", "type": "integer" }, "Statuses": { "description": "Filters results by the status of the task. If no status is specified, tasks with any status will be returned.", "type": "array", "items": { "enum": [ "New", "InProgress", "Completed", "Deferred", "Closed" ], "type": "string" } }, "UnitId": { "format": "int32", "description": "Filters results to any task associated with the unit identifier.", "type": "integer" }, "LastUpdatedFrom": { "format": "date", "description": "Filters results to any tasks were updated on or after the specified date. The value must be formatted as YYYY-MM-DD.", "type": "string" }, "LastUpdatedTo": { "format": "date", "description": "Filters results to any tasks were updated on or before the specified date. The value must be formatted as YYYY-MM-DD.", "type": "string" }, "DueDateFrom": { "format": "date", "description": "Filters results to any tasks with a due date on or after the specified date. The value must be formatted as YYYY-MM-DD.", "type": "string" }, "DueDateTo": { "format": "date", "description": "Filters results to any tasks with a due date on or before the specified date. The value must be formatted as YYYY-MM-DD.", "type": "string" }, "TaskCategoryId": { "format": "int32", "description": "Filters results to any tasks with the specified category identifier.", "type": "integer" }, "Priorities": { "description": "Filters results to any tasks whose priority matches the specified values. If no priority is specified, tasks with any priority will be returned.", "type": "array", "items": { "enum": [ "Low", "Normal", "High" ], "type": "string" } }, "AssignedToId": { "format": "int32", "description": "Filters results to any tasks that have been assigned to the specified staff user identifier.", "type": "integer" }, "TaskTitle": { "description": "Filters results to any task whose title *contains* the specified value.", "type": "string" } } }, "RentalOwnersSearchMessage": { "type": "object", "properties": { "PropertyIds": { "description": "Filters results to any lease whose unit belongs to the specified set of property ids.", "type": "array", "items": { "format": "int32", "type": "integer" } }, "Status": { "description": "Filters results by the status of the user. If no status is specified both `active` and `inactive` users will be returned.", "enum": [ "Inactive", "Active" ], "type": "string" }, "AgreementDaysRemaining": { "format": "int32", "description": "Filters results by the days remaining on their lease agreement.", "type": "integer" }, "OwnerName": { "description": "Filters results to any owner whose name *contains* the specified value.", "type": "string" }, "Phone": { "description": "Filters results to any owner who has a phone number that *contains* the specified value.", "type": "string" }, "LastUpdatedFrom": { "format": "date-time", "description": "Filters results to any rental owners that were updated on or after the specified date. The value must be in UTC and formatted as YYYY-MM-DDTHH:MM:SSZ.", "type": "string" }, "LastUpdatedTo": { "format": "date-time", "description": "Filters results to any rental owners that were updated on or before the specified date. The value must be in UTC and formatted as YYYY-MM-DDTHH:MM:SSZ.", "type": "string" } } }, "RentalOwnerTaxInformationMessage": { "description": "Rental owner tax information.", "type": "object", "properties": { "TaxPayerIdType": { "description": "Indicates the type of tax payer id being specified in the request.", "enum": [ "SSN", "EIN" ], "type": "string" }, "TaxPayerId": { "description": "The tax payer identifier.", "type": "string" }, "TaxPayerName1": { "description": "Tax payer name line 1.", "type": "string" }, "TaxPayerName2": { "description": "Tax payer name line 2.", "type": "string" }, "IncludeIn1099": { "description": "Indicates whether the rental owner should be included in 1099 form generation.", "type": "boolean" }, "Address": { "$ref": "#/components/schemas/AddressMessage" } } }, "RentalPreferredVendorMessage": { "type": "object", "properties": { "Id": { "format": "int32", "description": "Preferred vendor unique identifier.", "type": "integer" }, "FirstName": { "description": "First name of the preferred vendor.", "type": "string" }, "LastName": { "description": "Last name of the preferred vendor.", "type": "string" }, "CompanyName": { "description": "Company name of the preferred vendor.", "type": "string" }, "PrimaryEmail": { "description": "Primary email for the preferred vendor.", "type": "string" }, "AlternateEmail": { "description": "Alternate email for the preferred vendor.", "type": "string" }, "PhoneNumbers": { "description": "List of phone numbers of the preferred vendor.", "type": "array", "items": { "$ref": "#/components/schemas/PhoneNumberMessage" } }, "Website": { "description": "Website of the preferred vendor.", "type": "string" }, "IsCompany": { "description": "Indicates whether the preferred vendor is a company.", "type": "boolean" } } }, "RentalPreferredVendorPutMessage": { "required": [ "VendorIds" ], "type": "object", "properties": { "VendorIds": { "description": "A list of vendor identifiers that will be assigned as preferred vendors to the specified rental property. The submitted list of identifiers will overwrite any existing preferred vendors. Leaving the array empty will remove all vendors from the rental property.", "type": "array", "items": { "format": "int32", "type": "integer" } } } }, "RentalPropertyPostMessage": { "required": [ "Name", "Address", "RentalSubType", "OperatingBankAccountId" ], "type": "object", "properties": { "Name": { "description": "Rental property name. The value cannot exceed 127 characters.", "type": "string" }, "StructureDescription": { "description": "Description of the rental property building. The description cannot exceed 65,535 characters.", "type": "string" }, "Address": { "$ref": "#/components/schemas/SaveAddressMessage" }, "RentalSubType": { "description": "Subtype of the rental property.", "enum": [ "CondoTownhome", "MultiFamily", "SingleFamily", "Industrial", "Office", "Retail", "ShoppingCenter", "Storage", "ParkingSpace" ], "type": "string" }, "RentalOwnerIds": { "description": "List of existing rental owner ID's that are owners of this property.", "type": "array", "items": { "format": "int32", "type": "integer" } }, "OperatingBankAccountId": { "format": "int32", "description": "The primary bank account that a rental property uses for its income and expenses.", "type": "integer" }, "PropertyManagerId": { "format": "int32", "description": "Indicates the staff member identifier that acts as the property manager for this rental property. Note, the staff member must have permissions to this rental to be assigned as the property manager.\r\nSet this field to null if you don't want to assign a staff member to the rental property.", "type": "integer" }, "Reserve": { "format": "double", "description": "A property reserve is cash that a property manager keeps on hand in case of unexpected expenses. It is available cash that isn't disbursed in an owner draw.", "type": "number" }, "YearBuilt": { "format": "int32", "description": "Indicates the year the rental property was built. If provided this value must be a four digit integer between 1000 and the current year.", "type": "integer" }, "Units": { "description": "CreateRentalUnit\">Create a unit endpoint to create the additional units once the property has been created.", "type": "array", "items": { "$ref": "#/components/schemas/RentalPropertyUnitPostMessage" } } } }, "RentalPropertyPutMessage": { "required": [ "Name", "Address", "RentalSubType", "OperatingBankAccountId" ], "type": "object", "properties": { "Name": { "description": "Rental property name. The value cannot exceed 127 characters.", "type": "string" }, "StructureDescription": { "description": "Description of the rental property building. The description cannot exceed 65,535 characters.", "type": "string" }, "Address": { "$ref": "#/components/schemas/SaveAddressMessage" }, "RentalSubType": { "description": "Subtype of the rental property", "enum": [ "CondoTownhome", "MultiFamily", "SingleFamily", "Industrial", "Office", "Retail", "ShoppingCenter", "Storage", "ParkingSpace" ], "type": "string" }, "OperatingBankAccountId": { "format": "int32", "description": "The primary bank account that an rental property uses for its income and expenses.", "type": "integer" }, "PropertyManagerId": { "format": "int32", "description": "Indicates the staff member identifier that acts as the property manager for this rental property. Note, the staff member must have permissions to this rental to be assigned as the property manager.\r\nSet this field to null if you don't want to assign a staff member to the rental property.", "type": "integer" }, "Reserve": { "format": "double", "description": "A property reserve is cash that a property manager keeps on hand in case of unexpected expenses. It is available cash that isn't disbursed in an owner draw.", "type": "number" }, "YearBuilt": { "format": "int32", "description": "Indicates the year the rental property was built. If provided this value must be a four digit integer between 1000 and the current year.", "type": "integer" } } }, "RentalPropertyUnitPostMessage": { "required": [ "UnitNumber", "Address" ], "type": "object", "properties": { "UnitNumber": { "description": "Unit number. Must be unique within the rental property and cannot exceed 30 characters.", "type": "string" }, "UnitSize": { "format": "int32", "description": "Size of the unit.", "type": "integer" }, "MarketRent": { "format": "double", "description": "Market rent of the unit. This value is separate from the lease rent and is typically used for rental listings.", "type": "number" }, "Address": { "$ref": "#/components/schemas/SaveAddressMessage" }, "UnitBedrooms": { "description": "Number of bedrooms in the unit.", "enum": [ "NotSet", "Studio", "OneBed", "TwoBed", "ThreeBed", "FourBed", "FiveBed", "SixBed", "SevenBed", "EightBed", "NineBedPlus" ], "type": "string" }, "UnitBathrooms": { "description": "Number of bathrooms in the unit.", "enum": [ "NotSet", "OneBath", "OnePointFiveBath", "TwoBath", "TwoPointFiveBath", "ThreeBath", "FourBath", "FiveBath", "FivePlusBath", "ThreePointFiveBath", "FourPointFiveBath" ], "type": "string" }, "Description": { "description": "Description of the unit. The description cannot exceed 65,535 characters.", "type": "string" } } }, "RentalSearchMessage": { "type": "object", "properties": { "Location": { "description": "Filters results to only rental properties whose city or state *contains* the specified value.", "type": "string" }, "Types": { "description": "Filters results by the rental type. If no type is provided all types will be returned.", "type": "array", "items": { "enum": [ "Residential", "Commercial" ], "type": "string" } }, "SubTypes": { "description": "Filters results by the sub type of the rental property. If no sub type is specified all sub types will be returned.", "type": "array", "items": { "enum": [ "CondoTownhome", "MultiFamily", "SingleFamily", "Industrial", "Office", "Retail", "ShoppingCenter", "Storage", "ParkingSpace" ], "type": "string" } }, "Status": { "description": "Filters results by the status of the rental property. If no status is specified both `active` and `inactive` rental properties will be returned.", "enum": [ "Active", "InActive" ], "type": "string" }, "RentalOwnerIds": { "description": "Filters results to only rental properties whose RentalOwnerId matches the specified Id.", "type": "array", "items": { "format": "int32", "type": "integer" } }, "PropertyIds": { "description": "Filters results to only rental properties units whose Rental matches the specified Id.", "type": "array", "items": { "format": "int32", "type": "integer" } }, "LastUpdatedFrom": { "format": "date-time", "description": "Filters results to any rental properties that were updated on or after the specified date. The value must be in UTC and formatted as YYYY-MM-DDTHH:MM:SSZ.", "type": "string" }, "LastUpdatedTo": { "format": "date-time", "description": "Filters results to any rental properties that were updated on or before the specified date. The value must be in UTC and formatted as YYYY-MM-DDTHH:MM:SSZ.", "type": "string" } } }, "RentalTenantPostMessage": { "required": [ "LeaseId", "FirstName", "LastName", "Address" ], "type": "object", "properties": { "LeaseId": { "format": "int32", "description": "Lease ID to associate the tenant with.", "type": "integer" }, "FirstName": { "description": "First name of the tenant. The value cannot exceed 127 characters.", "type": "string" }, "LastName": { "description": "Last name of the tenant. The value cannot exceed 127 characters.", "type": "string" }, "Email": { "description": "Email of the tenant.", "type": "string" }, "AlternateEmail": { "description": "Alternate email of the tenant.", "type": "string" }, "PhoneNumbers": { "$ref": "#/components/schemas/PhoneNumbersMessage" }, "DateOfBirth": { "format": "date", "description": "Date of birth for the tenant. Must be formatted as `YYYY-MM-DD`.", "type": "string" }, "Comment": { "description": "Comments about the tenant. The value cannot exceed 65,535 characters.", "type": "string" }, "TaxId": { "description": "Tax identifier of the tenant. Valid formats are: `12-1234567`, `123-12-1234`, `123456789`", "type": "string" }, "EmergencyContact": { "$ref": "#/components/schemas/SaveEmergencyContactMessage" }, "Address": { "$ref": "#/components/schemas/SaveAddressMessage" }, "AlternateAddress": { "$ref": "#/components/schemas/SaveAddressMessage" }, "MailingPreference": { "description": "Mailing preference for the tenant. If an alternate address exists and this value is not provided then the primary address will be set as the preferred address.", "enum": [ "PrimaryAddress", "AlternateAddress" ], "type": "string" } } }, "RentalTenantPutMessage": { "required": [ "FirstName", "LastName", "Address" ], "type": "object", "properties": { "FirstName": { "description": "First name of the tenant. The value cannot exceed 127 characters.", "type": "string" }, "LastName": { "description": "Last name of the tenant. The value cannot exceed 127 characters.", "type": "string" }, "Email": { "description": "Email of the tenant.", "type": "string" }, "AlternateEmail": { "description": "Alternate email of the tenant.", "type": "string" }, "PhoneNumbers": { "$ref": "#/components/schemas/PhoneNumbersMessage" }, "DateOfBirth": { "format": "date", "description": "Date of birth for the tenant. Must be formatted as `YYYY-MM-DD`.", "type": "string" }, "Comment": { "description": "Comments about the tenant. The value cannot exceed 65,535 characters.", "type": "string" }, "TaxId": { "description": "Tax identifier of the tenant. Valid formats are: `12-1234567`, `123-12-1234`, `123456789`", "type": "string" }, "EmergencyContact": { "$ref": "#/components/schemas/SaveEmergencyContactMessage" }, "Address": { "$ref": "#/components/schemas/SaveAddressMessage" }, "AlternateAddress": { "$ref": "#/components/schemas/SaveAddressMessage" }, "MailingPreference": { "description": "Mailing preference for the tenant. If an alternate address exists and this value is not provided then the primary address will be set as the preferred address.", "enum": [ "PrimaryAddress", "AlternateAddress" ], "type": "string" } } }, "RentalTenantRenewalPostMessage": { "required": [ "FirstName", "LastName", "Address" ], "type": "object", "properties": { "FirstName": { "description": "First name of the tenant. The value cannot exceed 127 characters.", "type": "string" }, "LastName": { "description": "Last name of the tenant. The value cannot exceed 127 characters.", "type": "string" }, "Email": { "description": "Email of the tenant.", "type": "string" }, "AlternateEmail": { "description": "Alternate email of the tenant.", "type": "string" }, "PhoneNumbers": { "$ref": "#/components/schemas/PhoneNumbersMessage" }, "DateOfBirth": { "format": "date", "description": "Date of birth for the tenant. Must be formatted as `YYYY-MM-DD`.", "type": "string" }, "Comment": { "description": "Comments about the tenant. The value cannot exceed 65,535 characters.", "type": "string" }, "TaxId": { "description": "Tax identifier of the tenant. Valid formats are: `12-1234567`, `123-12-1234`, `123456789`", "type": "string" }, "EmergencyContact": { "$ref": "#/components/schemas/SaveEmergencyContactMessage" }, "Address": { "$ref": "#/components/schemas/SaveAddressMessage" }, "AlternateAddress": { "$ref": "#/components/schemas/SaveAddressMessage" }, "MailingPreference": { "description": "Mailing preference for the tenant. If an alternate address exists and this value is not provided then the primary address will be set as the preferred address.", "enum": [ "PrimaryAddress", "AlternateAddress" ], "type": "string" } } }, "RentalUnitFeaturesMessage": { "description": "Rental unit amenities.", "type": "object", "properties": { "Features": { "description": "A list of unit amenities.", "type": "array", "items": { "enum": [ "CableReady", "Microwave", "HardwoodFloors", "HighSpeedInternet", "AirConditioning", "Refrigerator", "Dishwasher", "WalkinClosets", "BalconyOrDeckOrPatio", "GarageParking", "Carport", "FencedYard", "LaundryRoomOrHookups", "Fireplace", "CableReadyCommercial", "HighSpeedInternetCommercial", "AirConditioningCommercial", "Heating", "OvenOrRange", "HeatElectric", "HeatGas", "HeatOil", "PetsAllowed", "Balcony", "PrivateBalcony", "PrivatePatio", "Dryer", "Heat", "WD_Hookup", "Washer", "AdditionalStorage", "Alarm", "Carpet", "CeilingFan", "ControlledAccess", "Courtyard", "Disposal", "DoubleSinkVanity", "FramedMirrors", "Furnished", "Handrails", "IndividualClimateControl", "IslandKitchen", "LinenCloset", "Pantry", "Satellite", "Skylight", "TileFlooring", "VaultedCeiling", "View", "VinylFlooring", "WheelChair", "WindowCoverings" ], "type": "string" } } } }, "RentalUnitFeaturesPutMessage": { "type": "object", "properties": { "Features": { "description": "A list of unit amenities. Any existing amenities associated with the unit that are not submitted in the request will be removed from the unit.", "type": "array", "items": { "enum": [ "CableReady", "Microwave", "HardwoodFloors", "HighSpeedInternet", "AirConditioning", "Refrigerator", "Dishwasher", "WalkinClosets", "BalconyOrDeckOrPatio", "GarageParking", "Carport", "FencedYard", "LaundryRoomOrHookups", "Fireplace", "CableReadyCommercial", "HighSpeedInternetCommercial", "AirConditioningCommercial", "Heating", "OvenOrRange", "HeatElectric", "HeatGas", "HeatOil", "PetsAllowed", "Balcony", "PrivateBalcony", "PrivatePatio", "Dryer", "Heat", "WD_Hookup", "Washer", "AdditionalStorage", "Alarm", "Carpet", "CeilingFan", "ControlledAccess", "Courtyard", "Disposal", "DoubleSinkVanity", "FramedMirrors", "Furnished", "Handrails", "IndividualClimateControl", "IslandKitchen", "LinenCloset", "Pantry", "Satellite", "Skylight", "TileFlooring", "VaultedCeiling", "View", "VinylFlooring", "WheelChair", "WindowCoverings" ], "type": "string" } } } }, "RentalUnitMessage": { "description": "This object represents a rental property unit.", "type": "object", "properties": { "Id": { "format": "int32", "description": "Rental unit unique identifier.", "type": "integer" }, "PropertyId": { "format": "int32", "description": "Rental property unique identifier that the unit belongs to.", "type": "integer" }, "BuildingName": { "description": "Building name that the unit belongs to.", "type": "string" }, "UnitNumber": { "description": "Unit number.", "type": "string" }, "Description": { "description": "Description of the unit.", "type": "string" }, "MarketRent": { "format": "double", "description": "Market rent of the unit. This value is separate from the lease rent and is typically used for rental listings. Null if no value is set.", "type": "number" }, "Address": { "$ref": "#/components/schemas/AddressMessage" }, "UnitBedrooms": { "description": "Number of bedrooms in the unit. Null if no value is set.", "enum": [ "NotSet", "Studio", "OneBed", "TwoBed", "ThreeBed", "FourBed", "FiveBed", "SixBed", "SevenBed", "EightBed", "NineBedPlus" ], "type": "string" }, "UnitBathrooms": { "description": "Number of bathrooms in the unit. Null if no value is set.", "enum": [ "NotSet", "OneBath", "OnePointFiveBath", "TwoBath", "TwoPointFiveBath", "ThreeBath", "FourBath", "FiveBath", "FivePlusBath", "ThreePointFiveBath", "FourPointFiveBath" ], "type": "string" }, "UnitSize": { "format": "int32", "description": "Size of the unit. Null if no value is set.", "type": "integer" }, "IsUnitListed": { "description": "Whether the unit is currently listed for rent.", "type": "boolean" }, "IsUnitOccupied": { "description": "Whether the unit is currently being rented by a tenent.", "type": "boolean" } } }, "RentalUnitPutMessage": { "required": [ "UnitNumber", "Address" ], "type": "object", "properties": { "UnitNumber": { "description": "Unit number. Must be unique within the rental property and cannot exceed 30 characters.", "type": "string" }, "UnitSize": { "format": "int32", "description": "Size of the unit.", "type": "integer" }, "MarketRent": { "format": "double", "description": "Market rent of the unit. This value is separate from the lease rent and is typically used for rental listings.", "type": "number" }, "Address": { "$ref": "#/components/schemas/SaveAddressMessage" }, "UnitBedrooms": { "description": "Number of bedrooms in the unit.", "enum": [ "NotSet", "Studio", "OneBed", "TwoBed", "ThreeBed", "FourBed", "FiveBed", "SixBed", "SevenBed", "EightBed", "NineBedPlus" ], "type": "string" }, "UnitBathrooms": { "description": "Number of bathrooms in the unit.", "enum": [ "NotSet", "OneBath", "OnePointFiveBath", "TwoBath", "TwoPointFiveBath", "ThreeBath", "FourBath", "FiveBath", "FivePlusBath", "ThreePointFiveBath", "FourPointFiveBath" ], "type": "string" }, "Description": { "description": "Description of the unit. The description cannot exceed 65,535 characters.", "type": "string" } } }, "RentalUnitSearchMessage": { "type": "object", "properties": { "PropertyIds": { "description": "Filters results to rental units that belong to the specified set of property ids.", "type": "array", "items": { "format": "int32", "type": "integer" } }, "LastUpdatedFrom": { "format": "date-time", "description": "Filters results to any rental units that were updated on or after the specified date. The value must be in UTC and formatted as YYYY-MM-DDTHH:MM:SSZ.", "type": "string" }, "LastUpdatedTo": { "format": "date-time", "description": "Filters results to any rental units that were updated on or before the specified date. The value must be in UTC and formatted as YYYY-MM-DDTHH:MM:SSZ.", "type": "string" } } }, "RentalUnitsPostMessage": { "required": [ "UnitNumber", "PropertyId", "Address" ], "type": "object", "properties": { "UnitNumber": { "description": "Unit number. Must be unique within the rental property and cannot exceed 30 characters.", "type": "string" }, "PropertyId": { "format": "int32", "description": "Rental property unique identifier that the unit belongs to.", "type": "integer" }, "UnitSize": { "format": "int32", "description": "Size of the unit.", "type": "integer" }, "MarketRent": { "format": "double", "description": "Market rent of the unit. This value is separate from the lease rent and is typically used for rental listings.", "type": "number" }, "Address": { "$ref": "#/components/schemas/SaveAddressMessage" }, "UnitBedrooms": { "description": "Number of bedrooms in the unit.", "enum": [ "NotSet", "Studio", "OneBed", "TwoBed", "ThreeBed", "FourBed", "FiveBed", "SixBed", "SevenBed", "EightBed", "NineBedPlus" ], "type": "string" }, "UnitBathrooms": { "description": "Number of bathrooms in the unit.", "enum": [ "NotSet", "OneBath", "OnePointFiveBath", "TwoBath", "TwoPointFiveBath", "ThreeBath", "FourBath", "FiveBath", "FivePlusBath", "ThreePointFiveBath", "FourPointFiveBath" ], "type": "string" }, "Description": { "description": "Description of the unit. The description cannot exceed 65,535 characters.", "type": "string" } } }, "RequestedByUserEntityMessage": { "description": "Entity information for the user that submitted the task request.", "type": "object", "properties": { "Type": { "description": "Entity type.", "enum": [ "ContactRequestor", "RentalOwner", "RentalTenant", "AssociationOwner" ], "type": "string" }, "Id": { "format": "int32", "description": "Entity identifier.", "type": "integer" }, "FirstName": { "description": "First name.", "type": "string" }, "LastName": { "description": "Last name.", "type": "string" }, "IsCompany": { "description": "Indicates whether entity is a company.", "type": "boolean" }, "Href": { "description": "A link to the entity resource.", "type": "string" } } }, "ResidentCenterUserMessage": { "type": "object", "properties": { "UnitAgreement": { "$ref": "#/components/schemas/UnitAgreementMessage" }, "User": { "$ref": "#/components/schemas/ResidentCenterUserReferenceMessage" }, "ResidentCenterUserStatus": { "description": "Resident center status for the user.", "enum": [ "AccountExistsButNoEmailSent", "PasswordSent", "EmailFailed", "SignedIn", "Blocked" ], "type": "string" }, "IsAutoPayEnabled": { "description": "Indicates if the user has an automatic payment scheduled for the future.", "type": "boolean" } } }, "ResidentCenterUserReferenceMessage": { "type": "object", "properties": { "Id": { "format": "int32", "description": "Resident center user unique identifier.", "type": "integer" }, "FirstName": { "description": "First name of the resident center user.", "type": "string" }, "LastName": { "description": "Last name of the resident center user.", "type": "string" }, "UserType": { "description": "Indicates if the resident center user is a tenant or association owner", "enum": [ "Tenant", "AssociationOwner" ], "type": "string" }, "Href": { "description": "A link to the user resource.", "type": "string" } } }, "ResidentCenterUserSearchMessage": { "type": "object", "properties": { "UnitAgreementIds": { "description": "Filters results to any resident center user who is associated with the specified lease and/or association ownership account identifiers.", "type": "array", "items": { "format": "int32", "type": "integer" } }, "UserIds": { "description": "Filters results to any resident center user with the specified tenant and/or association owner identifiers.", "type": "array", "items": { "format": "int32", "type": "integer" } }, "UserTypes": { "description": "Filters results to any resident center user with the specified types.", "type": "array", "items": { "enum": [ "Tenant", "AssociationOwner" ], "type": "string" } }, "ResidentCenterUserStatuses": { "description": "Filters results to any resident center user with the specified resident center user statuses.", "type": "array", "items": { "enum": [ "AccountExistsButNoEmailSent", "PasswordSent", "EmailFailed", "SignedIn", "Blocked" ], "type": "string" } }, "IsAutoPayEnabled": { "description": "If true, filters results to any resident center users who have automatic payments scheduled for the future. If false, filters results to any resident center users\r\nwho do not have automatic payments scheduled for the future. If not provided, will not filter results based on automatic payments.", "type": "boolean" } } }, "ResidentRequestTaskMessage": { "type": "object", "properties": { "Id": { "format": "int32", "description": "Request unique identifier.", "type": "integer" }, "Category": { "$ref": "#/components/schemas/TaskCategoryResponseMessage" }, "Title": { "description": "Request title.", "type": "string" }, "Description": { "description": "Request description.", "type": "string" }, "Property": { "$ref": "#/components/schemas/PropertyMessage" }, "UnitId": { "format": "int32", "description": "The unit unique identifier associated with the request.", "type": "integer" }, "UnitAgreement": { "$ref": "#/components/schemas/UnitAgreementMessage" }, "RequestedByUserEntity": { "$ref": "#/components/schemas/RequestedByUserEntityMessage" }, "AssignedToUserId": { "format": "int32", "description": "The unique identifier of the staff user assigned to the request.", "type": "integer" }, "TaskStatus": { "description": "Request status.", "enum": [ "New", "InProgress", "Completed", "Deferred", "Closed" ], "type": "string" }, "Priority": { "description": "Request priority.", "enum": [ "Low", "Normal", "High" ], "type": "string" }, "DueDate": { "format": "date", "description": "Request due date.", "type": "string" }, "CreatedDateTime": { "format": "date-time", "description": "The date and time the request was created.", "type": "string" }, "LastUpdatedDateTime": { "format": "date-time", "description": "The date and time the request was last updated.", "type": "string" }, "Appliance": { "$ref": "#/components/schemas/ApplianceMessage" }, "IsEntryPermittedByResident": { "description": "Indicates whether the resident has permitted entry. A null value represents no response was provided from the resident.", "type": "boolean" }, "DoesResidentHavePets": { "description": "Indicates whether the resident has pets. A null value represents no response was provided from the resident.", "type": "boolean" }, "ResidentEntryNotes": { "description": "Notes provided by the resident specific to entering the premises.", "type": "string" } } }, "ResidentRequestTaskPostMessage": { "required": [ "Title", "UnitAgreementId", "RequestedByEntityId", "TaskStatus", "Priority" ], "type": "object", "properties": { "Title": { "description": "Request title. The title can not exceed 127 characters.", "type": "string" }, "Description": { "description": "Request description. The description can not exceed 65500 characters.", "type": "string" }, "CategoryId": { "format": "int32", "description": "The category identifier to assign the request.", "type": "integer" }, "SubCategoryId": { "format": "int32", "description": "The subcategory identifier to assign the request.", "type": "integer" }, "UnitAgreementId": { "format": "int32", "description": "The unique identifier of the unit agreement associated with the request.", "type": "integer" }, "RequestedByEntityId": { "format": "int32", "description": "The unique identifier of the resident that submitted the request.", "type": "integer" }, "AssignedToUserId": { "format": "int32", "description": "The unique identifier of the staff user assigned to the request. The user must be a `Staff` user type. If not provided, assignment rules in the resident center settings (if configured) will be used for assignment.", "type": "integer" }, "TaskStatus": { "description": "Request status.", "enum": [ "New", "InProgress", "Completed", "Deferred", "Closed" ], "type": "string" }, "Priority": { "description": "Request priority.", "enum": [ "Low", "Normal", "High" ], "type": "string" }, "DueDate": { "format": "date", "description": "Request due date. The date must be formatted as YYYY-MM-DD.", "type": "string" }, "IsEntryPermittedByResident": { "description": "Indicates whether the resident has explicitly granted permission to enter the unit. Set this value to null if the resident has not provided a response.", "type": "boolean" }, "DoesResidentHavePets": { "description": "Indicates whether the resident has pets. Set this value to null if the resident has not provided a response.", "type": "boolean" }, "ResidentEntryNotes": { "description": "Notes provided by the resident specific to entering the premises. The value cannot exceed 65535 characters.", "type": "string" } } }, "ResidentRequestTaskPutMessage": { "required": [ "Title", "TaskStatus", "Priority" ], "type": "object", "properties": { "Title": { "description": "Request title. The title can not exceed 127 characters.", "type": "string" }, "Message": { "description": "Description of the request update. The message can not exceed 65500 characters.", "type": "string" }, "CategoryId": { "format": "int32", "description": "The category identifier to assign the request.", "type": "integer" }, "SubCategoryId": { "format": "int32", "description": "The subcategory identifier to assign the request.", "type": "integer" }, "AssignedToUserId": { "format": "int32", "description": "The unique identifier of the staff user assigned to the request. The user must be a `Staff` user type.", "type": "integer" }, "TaskStatus": { "description": "Request status.", "enum": [ "New", "InProgress", "Completed", "Deferred", "Closed" ], "type": "string" }, "Priority": { "description": "Request priority.", "enum": [ "Low", "Normal", "High" ], "type": "string" }, "DueDate": { "format": "date", "description": "Request due date. The date must be formatted as YYYY-MM-DD.", "type": "string" } } }, "ResidentRequestTaskSearchMessage": { "type": "object", "properties": { "EntityType": { "description": "Specifies the type of entity that the `EntityId` field refers to. This field is required if the `EntityId` field is populated.", "enum": [ "Rental", "RentalOwner", "Association" ], "type": "string" }, "EntityId": { "format": "int32", "description": "Filters results to any task associated with the specified entity id value. The value must be of the type specified in the `EntityType` field.", "type": "integer" }, "Statuses": { "description": "Filters results by the status of the task. If no status is specified, tasks with any status will be returned.", "type": "array", "items": { "enum": [ "New", "InProgress", "Completed", "Deferred", "Closed" ], "type": "string" } }, "UnitId": { "format": "int32", "description": "Filters results to any task associated with the unit identifier.", "type": "integer" }, "UnitAgreementId": { "format": "int32", "description": "Filters results to any task associated with the unit agreement identifier specified.", "type": "integer" }, "LastUpdatedFrom": { "format": "date", "description": "Filters results to any tasks were updated on or after the specified date. The value must be formatted as YYYY-MM-DD.", "type": "string" }, "LastUpdatedTo": { "format": "date", "description": "Filters results to any tasks were updated on or before the specified date. The value must be formatted as YYYY-MM-DD.", "type": "string" }, "DueDateFrom": { "format": "date", "description": "Filters results to any tasks with a due date on or after the specified date. The value must be formatted as YYYY-MM-DD.", "type": "string" }, "DueDateTo": { "format": "date", "description": "Filters results to any tasks with a due date on or before the specified date. The value must be formatted as YYYY-MM-DD.", "type": "string" }, "TaskCategoryId": { "format": "int32", "description": "Filters results to any tasks with the specified category identifier.", "type": "integer" }, "Priorities": { "description": "Filters results to any tasks whose priority matches the specified values. If no priority is specified, tasks with any priority will be returned.", "type": "array", "items": { "enum": [ "Low", "Normal", "High" ], "type": "string" } }, "AssignedToId": { "format": "int32", "description": "Filters results to any tasks that have been assigned to the specified staff user identifier.", "type": "integer" }, "TaskTitle": { "description": "Filters results to any task whose title *contains* the specified value.", "type": "string" } } }, "SaveAddressMessage": { "description": "Address.", "required": [ "AddressLine1", "Country" ], "type": "object", "properties": { "AddressLine1": { "description": "Address line 1 (e.g., street, PO Box, or company name). This value cannot exceed 100 characters.", "type": "string" }, "AddressLine2": { "description": "Address line 2 (e.g., apartment, suite, unit, or building). This value cannot exceed 100 characters.", "type": "string" }, "AddressLine3": { "description": "Address line 3. This value cannot exceed 100 characters.", "type": "string" }, "City": { "description": "City, district, suburb, town, or village. This value cannot exceed 100 characters.", "type": "string" }, "State": { "description": "State, county, province, or region. When `Country` is set to `UnitedStates` this value must be a valid state name or abbreviation. If the value is `Canada` this value must be a valid Canadian province. For all other countries this field is optional and not validated.", "type": "string" }, "PostalCode": { "description": "ZIP or postal code.", "type": "string" }, "Country": { "description": "Country. Must be a valid `Country` enumeration value.", "enum": [ "UnitedStates", "Afghanistan", "Akrotiri", "Albania", "Algeria", "AmericanSamoa", "Andorra", "Angola", "Anguilla", "Antarctica", "AntiguaandBarbuda", "Argentina", "Armenia", "Aruba", "AshmoreandCartierIslands", "Australia", "Austria", "Azerbaijan", "Bahamas", "Bahrain", "Bangladesh", "Barbados", "BassasdaIndia", "Belarus", "Belgium", "Belize", "Benin", "Bermuda", "Bhutan", "Bolivia", "BosniaandHerzegovina", "Botswana", "BouvetIsland", "Brazil", "BritishIndianOceanTerritory", "BritishVirginIslands", "Brunei", "Bulgaria", "BurkinaFaso", "Burma", "Burundi", "Cambodia", "Cameroon", "Canada", "CapeVerde", "CaymanIslands", "CentralAfricanRepublic", "Chad", "Chile", "China", "ChristmasIsland", "ClippertonIsland", "CocosIslands", "Colombia", "Comoros", "DemocraticRepublicOfTheCongo", "RepublicOfTheCongo", "CookIslands", "CoralSeaIslands", "CostaRica", "CotedIvoire", "Croatia", "Cuba", "Cyprus", "CzechRepublic", "Denmark", "Dhekelia", "Djibouti", "Dominica", "DominicanRepublic", "Ecuador", "Egypt", "ElSalvador", "EquatorialGuinea", "Eritrea", "Estonia", "Ethiopia", "EuropaIsland", "FalklandIslands", "FaroeIslands", "Fiji", "Finland", "France", "FrenchGuiana", "FrenchPolynesia", "FrenchSouthernandAntarcticLands", "Gabon", "Gambia", "GazaStrip", "Georgia", "Germany", "Ghana", "Gibraltar", "GloriosoIslands", "Greece", "Greenland", "Grenada", "Guadeloupe", "Guam", "Guatemala", "Guernsey", "Guinea", "GuineaBissau", "Guyana", "Haiti", "HeardIslandandMcDonaldIslands", "VaticanCity", "Honduras", "HongKong", "Hungary", "Iceland", "India", "Indonesia", "Iran", "Iraq", "Ireland", "IsleofMan", "Israel", "Italy", "Jamaica", "JanMayen", "Japan", "Jersey", "Jordan", "JuandeNovaIsland", "Kazakhstan", "Kenya", "Kiribati", "NorthKorea", "SouthKorea", "Kuwait", "Kyrgyzstan", "Laos", "Latvia", "Lebanon", "Lesotho", "Liberia", "Libya", "Liechtenstein", "Lithuania", "Luxembourg", "Macau", "Macedonia", "Madagascar", "Malawi", "Malaysia", "Maldives", "Mali", "Malta", "MarshallIslands", "Martinique", "Mauritania", "Mauritius", "Mayotte", "Mexico", "Micronesia", "Moldova", "Monaco", "Mongolia", "Montserrat", "Morocco", "Mozambique", "Namibia", "Nauru", "NavassaIsland", "Nepal", "Netherlands", "NetherlandsAntilles", "NewCaledonia", "NewZealand", "Nicaragua", "Niger", "Nigeria", "Niue", "NorfolkIsland", "NorthernMarianaIslands", "Norway", "Oman", "Pakistan", "Palau", "Panama", "PapuaNewGuinea", "ParacelIslands", "Paraguay", "Peru", "Philippines", "PitcairnIslands", "Poland", "Portugal", "PuertoRico", "Qatar", "Reunion", "Romania", "Russia", "Rwanda", "SaintHelena", "SaintKittsandNevis", "SaintLucia", "SaintPierreandMiquelon", "SaintVincentandtheGrenadines", "Samoa", "SanMarino", "SaoTomeandPrincipe", "SaudiArabia", "Senegal", "SerbiaandMontenegro", "Seychelles", "SierraLeone", "Singapore", "Slovakia", "Slovenia", "SolomonIslands", "Somalia", "SouthAfrica", "SouthGeorgiaandtheSouthSandwichIslands", "Spain", "SpratlyIslands", "SriLanka", "Sudan", "Suriname", "Svalbard", "Swaziland", "Sweden", "Switzerland", "Syria", "Taiwan", "Tajikistan", "Tanzania", "Thailand", "TimorLeste", "Togo", "Tokelau", "Tonga", "TrinidadandTobago", "TromelinIsland", "Tunisia", "Turkey", "Turkmenistan", "TurksandCaicosIslands", "Tuvalu", "Uganda", "Ukraine", "UnitedArabEmirates", "UnitedKingdom", "Uruguay", "Uzbekistan", "Vanuatu", "Venezuela", "Vietnam", "VirginIslands", "WakeIsland", "WallisandFutuna", "WestBank", "WesternSahara", "Yemen", "Zambia", "Zimbabwe" ], "type": "string" } } }, "SaveEmergencyContactMessage": { "type": "object", "properties": { "Name": { "description": "This is an object that represents an emergency contact.", "type": "string" }, "RelationshipDescription": { "description": "Emergency contact relationship to the person.", "type": "string" }, "Phone": { "description": "Emergency contact phone number", "type": "string" }, "Email": { "description": "Emergency contact email address.", "type": "string" } } }, "TaskCategoryMessage": { "description": "Task category.", "type": "object", "properties": { "Id": { "format": "int32", "description": "Task category unique identifier.", "type": "integer" }, "Name": { "description": "Name of the task category.", "type": "string" }, "IsSystemCategory": { "description": "Indicates whether the category is a system category. Note, system categories can not be edited.", "type": "boolean" }, "SubCategories": { "description": "Subcategories associated with the task category.", "type": "array", "items": { "$ref": "#/components/schemas/TaskSubCategoryMessage" } } } }, "TaskCategoryPutMessage": { "description": "Task category.", "required": [ "Name" ], "type": "object", "properties": { "Name": { "description": "Name of the task category.", "type": "string" } } }, "TaskCategoryResponseMessage": { "description": "Task category.", "type": "object", "properties": { "Id": { "format": "int32", "description": "Task category unique identifier.", "type": "integer" }, "Name": { "description": "Name of the task category.", "type": "string" }, "Href": { "description": "A link to the task category resource.", "type": "string" }, "SubCategory": { "$ref": "#/components/schemas/TaskSubCategoryMessage" } } }, "TaskCategorySaveMessage": { "description": "Task category.", "required": [ "Name" ], "type": "object", "properties": { "Name": { "description": "Name of the task category.", "type": "string" } } }, "TaskHistoryFileMessage": { "type": "object", "properties": { "Id": { "format": "int32", "description": "File unique identifier.", "type": "integer" }, "Title": { "description": "The title of the file.", "type": "string" }, "PhysicalFileName": { "description": "Physical name of the file on the server.", "type": "string" }, "Size": { "format": "int64", "description": "Size of the file, in kilobytes.", "type": "integer" }, "ContentType": { "description": "MIME type of the file.", "type": "string" }, "UploadedDateTime": { "format": "date-time", "description": "Date and time the file was uploaded.", "type": "string" } } }, "TaskHistoryFileUploadPostMessage": { "required": [ "FileName" ], "type": "object", "properties": { "FileName": { "description": "Name of file being uploaded. The value can not exceed 255 characters.", "type": "string" } } }, "TaskHistoryMessage": { "type": "object", "properties": { "Id": { "format": "int32", "description": "Task history unique identifier.", "type": "integer" }, "Priority": { "description": "Task priority.", "enum": [ "Low", "Normal", "High" ], "type": "string" }, "TaskStatus": { "description": "Task status.", "enum": [ "New", "InProgress", "Completed", "Deferred", "Closed" ], "type": "string" }, "AssignedToUserId": { "format": "int32", "description": "The unique identifier of the staff user assigned to the task.", "type": "integer" }, "DueDate": { "format": "date", "description": "Task due date.", "type": "string" }, "Message": { "description": "Description of the task update.", "type": "string" }, "SharedWith": { "description": "Indicates the who the task update was shared with.", "type": "array", "items": { "enum": [ "Residents", "RentalOwners", "AssociationBoardMembers" ], "type": "string" } }, "FileIds": { "description": "List of file unique identifiers associated with the task history. These identifiers can be used to retrieve the file metadata and/or download the files.", "type": "array", "items": { "format": "int32", "type": "integer" } }, "CreatedDateTIme": { "format": "date-time", "description": "The date and time the task history was created.", "type": "string" }, "CreatedByUser": { "$ref": "#/components/schemas/TaskHistoryUserMessage" }, "LastUpdatedDateTime": { "format": "date-time", "description": "The date and time the task was last updated.", "type": "string" }, "LastUpdatedByUser": { "$ref": "#/components/schemas/TaskHistoryUserMessage" } } }, "TaskHistoryPutMessage": { "required": [ "Message" ], "type": "object", "properties": { "Message": { "description": "A message to include with the task update. The value can not exceed 65500 characters.", "type": "string" } } }, "TaskHistoryUserMessage": { "description": "User information.", "type": "object", "properties": { "Id": { "format": "int32", "description": "User unique identifier.", "type": "integer" }, "FirstName": { "description": "First name of the user.", "type": "string" }, "LastName": { "description": "Last name of the user.", "type": "string" }, "Href": { "description": "A link to the resource endpoint associated with the user.", "type": "string" } } }, "TaskSearchMessage": { "type": "object", "properties": { "EntityType": { "description": "Specifies the type of entity that the `EntityId` field refers to. This field is required if the `EntityId` field is populated.", "enum": [ "Rental", "RentalOwner", "Association" ], "type": "string" }, "EntityId": { "format": "int32", "description": "Filters results to any task associated with the specified entity id value. The value must be of the type specified in the `EntityType` field.", "type": "integer" }, "Statuses": { "description": "Filters results by the status of the task. If no status is specified, tasks with any status will be returned.", "type": "array", "items": { "enum": [ "New", "InProgress", "Completed", "Deferred", "Closed" ], "type": "string" } }, "Type": { "description": "Filters results to any task associated with the task type specified.", "enum": [ "ContactRequest", "ResidentRequest", "Todo", "RentalOwnerRequest" ], "type": "string" }, "UnitId": { "format": "int32", "description": "Filters results to any task associated with the unit identifier.", "type": "integer" }, "UnitAgreementId": { "format": "int32", "description": "Filters results to any task associated with the unit agreement identifier specified.", "type": "integer" }, "LastUpdatedFrom": { "format": "date", "description": "Filters results to any tasks were updated on or after the specified date. The value must be formatted as YYYY-MM-DD.", "type": "string" }, "LastUpdatedTo": { "format": "date", "description": "Filters results to any tasks were updated on or before the specified date. The value must be formatted as YYYY-MM-DD.", "type": "string" }, "DueDateFrom": { "format": "date", "description": "Filters results to any tasks with a due date on or after the specified date. The value must be formatted as YYYY-MM-DD.", "type": "string" }, "DueDateTo": { "format": "date", "description": "Filters results to any tasks with a due date on or before the specified date. The value must be formatted as YYYY-MM-DD.", "type": "string" }, "TaskCategoryId": { "format": "int32", "description": "Filters results to any tasks with the specified category identifier.", "type": "integer" }, "Priorities": { "description": "Filters results to any tasks whose priority matches the specified values. If no priority is specified, tasks with any priority will be returned.", "type": "array", "items": { "enum": [ "Low", "Normal", "High" ], "type": "string" } }, "AssignedToId": { "format": "int32", "description": "Filters results to any tasks that have been assigned to the specified staff user identifier.", "type": "integer" }, "TaskTitle": { "description": "Filters results to any task whose title *contains* the specified value.", "type": "string" } } }, "TaskSubCategoryMessage": { "description": "Task subcategory.", "type": "object", "properties": { "Id": { "format": "int32", "description": "Task subcategory unique identifier.", "type": "integer" }, "Name": { "description": "Name of the task subcategory.", "type": "string" } } }, "TaxInformationPostMessage": { "description": "Tax information.", "type": "object", "properties": { "TaxPayerId": { "description": "The unique identifier of the tax payer. Required if `TaxPayerType` is set. Format the values based on the `TaxPayerIdType` that is specified in the request. `SSN` must be formatted as 123-45-6789. `EIN` must be formatted as 12-3456789.", "type": "string" }, "TaxPayerType": { "description": "The tax payer type. Required if `TaxPayerId` is set.", "enum": [ "SSN", "EIN" ], "type": "string" }, "TaxPayerName1": { "description": "The tax payer name 1. The value cannot exceed 40 characters.", "type": "string" }, "TaxPayerName2": { "description": "The tax payer name 2. The value cannot exceed 40 characters.", "type": "string" }, "Address": { "$ref": "#/components/schemas/SaveAddressMessage" } } }, "TaxInformationSaveMessage": { "description": "Tax information.", "required": [ "IncludeIn1099" ], "type": "object", "properties": { "TaxPayerId": { "description": "The unique identifier of the tax payer. Required if `TaxPayerType` is set. Format the values based on the `TaxPayerIdType` that is specified in the request. `SSN` must be formatted as 123-45-6789. `EIN` must be formatted as 12-3456789.", "type": "string" }, "TaxPayerType": { "description": "The tax payer type. Required if `TaxPayerId` is set.", "enum": [ "SSN", "EIN" ], "type": "string" }, "TaxPayerName1": { "description": "The tax payer name 1. The value cannot exceed 40 characters.", "type": "string" }, "TaxPayerName2": { "description": "The tax payer name 2. The value cannot exceed 40 characters.", "type": "string" }, "IncludeIn1099": { "description": "Indicates whether the vendor should be included in 1099 form generation.", "type": "boolean" }, "Address": { "$ref": "#/components/schemas/SaveAddressMessage" } } }, "TenantMessage": { "description": "This object represents a rental property tenant.", "type": "object", "properties": { "Id": { "format": "int32", "description": "Tenant unique identifier.", "type": "integer" }, "FirstName": { "description": "First name of the tenant.", "type": "string" }, "LastName": { "description": "Last name of the tenant.", "type": "string" }, "Email": { "description": "Email for the tenant.", "type": "string" }, "AlternateEmail": { "description": "Alternate email of the tenant.", "type": "string" }, "PhoneNumbers": { "description": "List of phone numbers for the tenant.", "type": "array", "items": { "$ref": "#/components/schemas/PhoneNumberMessage" } }, "CreatedDateTime": { "format": "date-time", "description": "Created date of this tenant record.", "type": "string" }, "EmergencyContact": { "$ref": "#/components/schemas/EmergencyContactMessage" }, "DateOfBirth": { "format": "date", "description": "Tenant date of birth.", "type": "string" }, "SMSOptInStatus": { "description": "Indicates the tenants SMS opt in status. Null if no status exists for the tenant.", "type": "string" }, "Address": { "$ref": "#/components/schemas/AddressMessage" }, "AlternateAddress": { "$ref": "#/components/schemas/AddressMessage" }, "MailingPreference": { "description": "Mailing preference for the tenant.", "enum": [ "PrimaryAddress", "AlternateAddress" ], "type": "string" }, "Leases": { "description": "List of leases, regardless of status, that the tenant is associated with.", "type": "array", "items": { "$ref": "#/components/schemas/LeaseMessage" } }, "Comment": { "description": "Comments about the tenant.", "type": "string" }, "TaxId": { "description": "TaxId of the tenant.", "type": "string" } } }, "TenantSearchMessage": { "description": "This object represents a filter for a rental tenant search.", "type": "object", "properties": { "BuildingStatuses": { "description": "Filters results by the status of the rental property the tenants are associated with. If no status is specified tenants in either `active` and `inactive` rental properties will be returned.", "type": "array", "items": { "enum": [ "Active", "InActive" ], "type": "string" } }, "LeaseTermStatuses": { "description": "Filters results to any tenant whose lease term matches the specified status. If no status is specified tenants with any lease terms status will be returned.", "type": "array", "items": { "enum": [ "Active", "Past", "Future" ], "type": "string" } }, "UnitNumber": { "description": "Filters results to any tenant whose unit number *contains* the specified value.", "type": "string" }, "Name": { "description": "Filters results to any tenant whose name *contains* the specified value.", "type": "string" }, "Phone": { "description": "Filters results to any tenant whose phone number *contains* the specified value.", "type": "string" }, "Email": { "description": "Filters results to any tenant whose email *contains* the specified value.", "type": "string" }, "PropertyIds": { "description": "Filters results to tenants whose rental unit belongs to the specified set of property ids.", "type": "array", "items": { "format": "int32", "type": "integer" } }, "RentalOwnerIds": { "description": "Filters results to tenants whose rental unit belongs to a property with a rental owner in the specified set of rental owner ids.", "type": "array", "items": { "format": "int32", "type": "integer" } }, "LastUpdatedFrom": { "format": "date-time", "description": "Filters results to any rental tenants that were updated on or after the specified date. The value must be in UTC and formatted as YYYY-MM-DDTHH:MM:SSZ.", "type": "string" }, "LastUpdatedTo": { "format": "date-time", "description": "Filters results to any rental tenants that were updated on or before the specified date. The value must be in UTC and formatted as YYYY-MM-DDTHH:MM:SSZ.", "type": "string" } } }, "ToDoTaskMessage": { "type": "object", "properties": { "Id": { "format": "int32", "description": "Request unique identifier.", "type": "integer" }, "Category": { "$ref": "#/components/schemas/TaskCategoryResponseMessage" }, "Title": { "description": "Request title.", "type": "string" }, "Description": { "description": "Request description.", "type": "string" }, "Property": { "$ref": "#/components/schemas/PropertyMessage" }, "UnitId": { "format": "int32", "description": "The unit unique identifier associated with the request.", "type": "integer" }, "AssignedToUserId": { "format": "int32", "description": "The unique identifier of the staff user assigned to the request.", "type": "integer" }, "TaskStatus": { "description": "Request status.", "enum": [ "New", "InProgress", "Completed", "Deferred", "Closed" ], "type": "string" }, "Priority": { "description": "Request priority.", "enum": [ "Low", "Normal", "High" ], "type": "string" }, "DueDate": { "format": "date", "description": "Request due date.", "type": "string" }, "CreatedDateTime": { "format": "date-time", "description": "The date and time the request was created.", "type": "string" }, "LastUpdatedDateTime": { "format": "date-time", "description": "The date and time the request was last updated.", "type": "string" } } }, "ToDoTaskPostMessage": { "required": [ "Title", "AssignedToUserId", "TaskStatus", "Priority" ], "type": "object", "properties": { "Title": { "description": "Request title. The title can not exceed 127 characters.", "type": "string" }, "Description": { "description": "Request description. The description can not exceed 65500 characters.", "type": "string" }, "CategoryId": { "format": "int32", "description": "The category identifier to assign the request.", "type": "integer" }, "SubCategoryId": { "format": "int32", "description": "The subcategory identifier to assign the request.", "type": "integer" }, "PropertyId": { "format": "int32", "description": "The unique identifier of property associated with the request. The assigned property must be active.", "type": "integer" }, "UnitId": { "format": "int32", "description": "The unique identifier of the unit associated with the request. The unit must be associated with the `PropertyId` specified.", "type": "integer" }, "AssignedToUserId": { "format": "int32", "description": "The unique identifier of the staff user assigned to the request. The user must be a `Staff` user type.", "type": "integer" }, "TaskStatus": { "description": "Request status.", "enum": [ "New", "InProgress", "Completed", "Deferred", "Closed" ], "type": "string" }, "Priority": { "description": "Request priority.", "enum": [ "Low", "Normal", "High" ], "type": "string" }, "DueDate": { "format": "date", "description": "Request due date. The date must be formatted as YYYY-MM-DD.", "type": "string" } } }, "ToDoTaskPutMessage": { "required": [ "Title", "AssignedToUserId", "TaskStatus", "Priority" ], "type": "object", "properties": { "Title": { "description": "Request title. The title can not exceed 127 characters.", "type": "string" }, "Message": { "description": "Description of the request update. The message can not exceed 65500 characters.", "type": "string" }, "CategoryId": { "format": "int32", "description": "The category identifier to assign the request.", "type": "integer" }, "SubCategoryId": { "format": "int32", "description": "The subcategory identifier to assign the request.", "type": "integer" }, "PropertyId": { "format": "int32", "description": "The unique identifier of property associated with the request. The assigned property must be active.", "type": "integer" }, "UnitId": { "format": "int32", "description": "The unique identifier of the unit associated with the request. The unit must be associated with the `PropertyId` specified.", "type": "integer" }, "AssignedToUserId": { "format": "int32", "description": "The unique identifier of the staff user assigned to the request. The user must be a `Staff` user type.", "type": "integer" }, "TaskStatus": { "description": "Request status.", "enum": [ "New", "InProgress", "Completed", "Deferred", "Closed" ], "type": "string" }, "Priority": { "description": "Request priority.", "enum": [ "Low", "Normal", "High" ], "type": "string" }, "DueDate": { "format": "date", "description": "Request due date. The date must be formatted as YYYY-MM-DD.", "type": "string" } } }, "ToDoTaskSearchMessage": { "type": "object", "properties": { "EntityType": { "description": "Specifies the type of entity that the `EntityId` field refers to. This field is required if the `EntityId` field is populated.", "enum": [ "Rental", "RentalOwner", "Association" ], "type": "string" }, "EntityId": { "format": "int32", "description": "Filters results to any task associated with the specified entity id value. The value must be of the type specified in the `EntityType` field.", "type": "integer" }, "Statuses": { "description": "Filters results by the status of the task. If no status is specified, tasks with any status will be returned.", "type": "array", "items": { "enum": [ "New", "InProgress", "Completed", "Deferred", "Closed" ], "type": "string" } }, "UnitId": { "format": "int32", "description": "Filters results to any task associated with the unit identifier.", "type": "integer" }, "LastUpdatedFrom": { "format": "date", "description": "Filters results to any tasks were updated on or after the specified date. The value must be formatted as YYYY-MM-DD.", "type": "string" }, "LastUpdatedTo": { "format": "date", "description": "Filters results to any tasks were updated on or before the specified date. The value must be formatted as YYYY-MM-DD.", "type": "string" }, "DueDateFrom": { "format": "date", "description": "Filters results to any tasks with a due date on or after the specified date. The value must be formatted as YYYY-MM-DD.", "type": "string" }, "DueDateTo": { "format": "date", "description": "Filters results to any tasks with a due date on or before the specified date. The value must be formatted as YYYY-MM-DD.", "type": "string" }, "TaskCategoryId": { "format": "int32", "description": "Filters results to any tasks with the specified category identifier.", "type": "integer" }, "Priorities": { "description": "Filters results to any tasks whose priority matches the specified values. If no priority is specified, tasks with any priority will be returned.", "type": "array", "items": { "enum": [ "Low", "Normal", "High" ], "type": "string" } }, "AssignedToId": { "format": "int32", "description": "Filters results to any tasks that have been assigned to the specified staff user identifier.", "type": "integer" }, "TaskTitle": { "description": "Filters results to any task whose title *contains* the specified value.", "type": "string" } } }, "UndepositedFundsMessage": { "type": "object", "properties": { "GeneralLedgerTransaction": { "$ref": "#/components/schemas/GLTransactionMessageV1" } } }, "UnitAgreementMessage": { "description": "Unit agreement.", "type": "object", "properties": { "Id": { "format": "int32", "description": "Unit agreement unique identifier.", "type": "integer" }, "Type": { "description": "The type of unit agreement.", "enum": [ "NotSet", "Lease", "OwnershipAccount" ], "type": "string" }, "Href": { "description": "A link to the unit agreement resource.", "type": "string" } } }, "UserMessage": { "description": "Buildium user account.", "type": "object", "properties": { "Id": { "format": "int32", "description": "User unique identifier.", "type": "integer" }, "UserTypes": { "description": "The user type assigned to the user account.", "type": "array", "items": { "enum": [ "Staff", "RentalOwner", "Vendor" ], "type": "string" } }, "IsActive": { "description": "Indicates whether the user account is still active.", "type": "boolean" }, "LastLogin": { "format": "date-time", "description": "Date and time the user last logged into Buildium. This value will be `NULL` if the user has never logged into Buildium.", "type": "string" }, "FirstName": { "description": "First name of the user.", "type": "string" }, "LastName": { "description": "Last name of the user.", "type": "string" }, "CompanyName": { "description": "The company name.", "type": "string" }, "Email": { "description": "Email address of the user.", "type": "string" }, "AlternateEmail": { "description": "Alternate email address of user.", "type": "string" }, "PhoneNumbers": { "description": "List of phone numbers for the user.", "type": "array", "items": { "$ref": "#/components/schemas/PhoneNumberMessage" } }, "UserRole": { "$ref": "#/components/schemas/UserRoleMessage" }, "IsCompany": { "description": "Indicates with the user account represents company versus a person.", "type": "boolean" } } }, "UserRoleMessage": { "description": "User role.", "type": "object", "properties": { "Id": { "format": "int32", "description": "User role unique identifier.", "type": "integer" }, "Name": { "description": "User role name.", "type": "string" }, "Description": { "description": "User role description.", "type": "string" }, "NumberOfUsers": { "format": "int64", "description": "Number of users assigned to this user role.", "type": "integer" } } }, "UserSearchMessage": { "description": "This object represents a filter for a User search.", "type": "object", "properties": { "RoleIds": { "description": "Describes the role of the user.", "type": "array", "items": { "format": "int32", "type": "integer" } }, "UserTypes": { "description": "Describes the user type of the user.", "type": "array", "items": { "enum": [ "Staff", "RentalOwner", "Vendor" ], "type": "string" } }, "Status": { "description": "Filters results by the status of the user. If no status is specified both `active` and `inactive` staff members will be returned.", "enum": [ "Inactive", "Active" ], "type": "string" }, "Name": { "description": "Filters results to only records whose name *contains* the specified value.", "type": "string" }, "Email": { "description": "Filters results to only records whose email *contains* the specified value.", "type": "string" } } }, "VehicleMessage": { "description": "This is an object that represents a vehicle.", "type": "object", "properties": { "Make": { "description": "Make of the vehicle.", "type": "string" }, "Model": { "description": "Model of the vehicle.", "type": "string" }, "LicensePlateNumber": { "description": "License plate number of the vehicle.", "type": "string" }, "ParkingPassNumber": { "description": "Parking pass number assigned to the vehicle.", "type": "string" } } }, "VendorCategoryMessage": { "description": "This object represents a vendor category.", "type": "object", "properties": { "Id": { "format": "int32", "description": "Unique identifier.", "type": "integer" }, "Name": { "description": "Name.", "type": "string" }, "IsSystemCategory": { "description": "Indicates whether the category is a system category.", "type": "boolean" } } }, "VendorCategorySaveMessage": { "required": [ "Name" ], "type": "object", "properties": { "Name": { "description": "The category name.", "type": "string" } } }, "VendorCreditLineItemMessage": { "type": "object", "properties": { "Id": { "format": "int32", "description": "Vendor credit line item unique identifier.", "type": "integer" }, "GLAccountId": { "format": "int32", "description": "Unique identifier of the general ledger account associated with the vendor credit.", "type": "integer" }, "Amount": { "format": "double", "description": "Amount of the vendor credit line item.", "type": "number" }, "Memo": { "description": "Memo for the vendor credit line item.", "type": "string" }, "AccountingEntity": { "$ref": "#/components/schemas/AccountingEntityMessage" } } }, "VendorCreditLineItemPostMessage": { "required": [ "GLAccountId", "Amount", "AccountingEntity" ], "type": "object", "properties": { "GLAccountId": { "format": "int32", "description": "Unique identifier of the general ledger account associated with the vendor credit. The account cannot be a bank account.", "type": "integer" }, "Amount": { "format": "double", "description": "Amount of the vendor credit line item. Must be between 0.01 and 9999999.99.", "type": "number" }, "Memo": { "description": "Memo for the vendor credit line item. Cannot exceed 240 characters.", "type": "string" }, "AccountingEntity": { "$ref": "#/components/schemas/AccountingEntitySaveMessage" } } }, "VendorCreditMessage": { "type": "object", "properties": { "Id": { "format": "int32", "description": "Vendor credit unique identifier.", "type": "integer" }, "EntryDate": { "format": "date", "description": "Date the vendor credit was made.", "type": "string" }, "ReferenceNumber": { "description": "The invoice or reference number that the vendor assigned to the credit.", "type": "string" }, "Memo": { "description": "Memo associated with the vendor credit, if applicable.", "type": "string" }, "Lines": { "description": "A collection of line items associated with the vendor credit.", "type": "array", "items": { "$ref": "#/components/schemas/VendorCreditLineItemMessage" } } } }, "VendorCreditPostMessage": { "required": [ "EntryDate", "Lines" ], "type": "object", "properties": { "EntryDate": { "format": "date", "description": "Date the vendor credit was made. The date must be formatted as YYYY-MM-DD.", "type": "string" }, "ReferenceNumber": { "description": "The invoice or reference number that the vendor assigned to the credit. The value cannot exceed 40 characters.", "type": "string" }, "Memo": { "description": "Memo associated with the vendor credit, if applicable. The value cannot exceed 40 characters.", "type": "string" }, "Lines": { "description": "A collection of line items associated with the vendor credit. At least one line item is required and cannot exceed 100 line items.", "type": "array", "items": { "$ref": "#/components/schemas/VendorCreditLineItemPostMessage" } } } }, "VendorInsuranceMessage": { "description": "Vendor insurance information.", "type": "object", "properties": { "Provider": { "description": "Insurance provider.", "type": "string" }, "PolicyNumber": { "description": "Insurance policy number.", "type": "string" }, "ExpirationDate": { "format": "date-time", "description": "Expiration date of the insurance policy. Null if no expiration exists.", "type": "string" } } }, "VendorInsuranceSaveMessage": { "description": "Vendor insurance information.", "type": "object", "properties": { "Provider": { "description": "Insurance provider. This value can not exceed 65 characters.", "type": "string" }, "PolicyNumber": { "description": "Insurance policy number. This value can not exceed 65 characters.", "type": "string" }, "ExpirationDate": { "format": "date", "description": "Expiration date of the insurance policy. The date must be formatted as YYYY-MM-DD.", "type": "string" } } }, "VendorMessage": { "description": "This is an object that represents a vendor.", "type": "object", "properties": { "Id": { "format": "int32", "description": "Vendor unique identifier.", "type": "integer" }, "IsCompany": { "description": "Indicates whether the vendor is a company.", "type": "boolean" }, "IsActive": { "description": "Indicates whether the vendor is active within the Buildium platform.", "type": "boolean" }, "FirstName": { "description": "First name of the vendor. Empty if `IsCompany` is `true`.", "type": "string" }, "LastName": { "description": "Last name of the vendor. Empty if `IsCompany` is `true`.", "type": "string" }, "PrimaryEmail": { "description": "Primary email for the vendor.", "type": "string" }, "AlternateEmail": { "description": "Alternate email for the vendor.", "type": "string" }, "CompanyName": { "description": "Company name for the vendor. Empty if `IsCompany` is `false`", "type": "string" }, "PhoneNumbers": { "description": "List of phone numbers for the vendor.", "type": "array", "items": { "$ref": "#/components/schemas/PhoneNumberMessage" } }, "Website": { "description": "Website of the vendor.", "type": "string" }, "Category": { "$ref": "#/components/schemas/LookupMessage" }, "Address": { "$ref": "#/components/schemas/AddressMessage" }, "VendorInsurance": { "$ref": "#/components/schemas/VendorInsuranceMessage" }, "Comments": { "description": "General comments about the vendor.", "type": "string" }, "AccountNumber": { "description": "Vendor account number.", "type": "string" }, "ExpenseGLAccountId": { "format": "int32", "description": "The unique identifier of the default expense general ledger account to associate with the vendor.", "type": "integer" }, "TaxInformation": { "$ref": "#/components/schemas/VendorTaxInformationMessage" } } }, "VendorPostMessage": { "required": [ "IsCompany", "CategoryId" ], "type": "object", "properties": { "FirstName": { "description": "First name of the vendor. Required if `IsCompany` is `false`. The value cannot exceed 127 characters.", "type": "string" }, "LastName": { "description": "Last name of the vendor. Required if `IsCompany` is `false`. The value cannot exceed 127 characters.", "type": "string" }, "IsCompany": { "description": "Indicates whether the vendor should be considered a company or person.", "type": "boolean" }, "CompanyName": { "description": "Company name of the vendor. Required if `IsCompany` is `true`. The value cannot exceed 127 characters.", "type": "string" }, "PrimaryEmail": { "description": "Primary email for the vendor.", "type": "string" }, "AlternateEmail": { "description": "Alternate email for the vendor.", "type": "string" }, "PhoneNumbers": { "$ref": "#/components/schemas/PhoneNumbersMessage" }, "Address": { "$ref": "#/components/schemas/SaveAddressMessage" }, "CategoryId": { "format": "int32", "description": "The unique identifier of the vendor category.", "type": "integer" }, "ExpenseGlAccountId": { "format": "int32", "description": "The unique identifier of the default expense general ledger account to associate with the vendor.", "type": "integer" }, "AccountNumber": { "description": "The account number of the vendor. The value cannot exceed 30 characters.", "type": "string" }, "Website": { "description": "The website of the vendor. The value must be a valid URL. For example `http://www.example.com`. The value cannot exceed 100 characters.", "type": "string" }, "VendorInsurance": { "$ref": "#/components/schemas/VendorInsuranceSaveMessage" }, "Comments": { "description": "Comments about the vendor. The value cannot exceed 65,535 characters.", "type": "string" }, "TaxInformation": { "$ref": "#/components/schemas/TaxInformationPostMessage" } } }, "VendorPutMessage": { "required": [ "IsCompany", "CategoryId" ], "type": "object", "properties": { "FirstName": { "description": "First name of the vendor. Required if `IsCompany` is `false`. The value cannot exceed 127 characters.", "type": "string" }, "LastName": { "description": "Last name of the vendor. Required if `IsCompany` is `false`. The value cannot exceed 127 characters.", "type": "string" }, "IsCompany": { "description": "Indicates whether the vendor should be considered a company or person.", "type": "boolean" }, "CompanyName": { "description": "Company name of the vendor. Required if `IsCompany` is `true`. The value cannot exceed 127 characters.", "type": "string" }, "PrimaryEmail": { "description": "Primary email for the vendor.", "type": "string" }, "AlternateEmail": { "description": "Alternate email for the vendor.", "type": "string" }, "PhoneNumbers": { "$ref": "#/components/schemas/PhoneNumbersMessage" }, "Address": { "$ref": "#/components/schemas/SaveAddressMessage" }, "CategoryId": { "format": "int32", "description": "The unique identifier of the vendor category.", "type": "integer" }, "ExpenseGlAccountId": { "format": "int32", "description": "The unique identifier of the default expense general ledger account to associate with the vendor.", "type": "integer" }, "AccountNumber": { "description": "The account number of the vendor. The value cannot exceed 30 characters.", "type": "string" }, "Website": { "description": "The website of the vendor. The value must be a valid URL. For example \"http://www.example.com\". The value cannot exceed 100 characters.", "type": "string" }, "VendorInsurance": { "$ref": "#/components/schemas/VendorInsuranceSaveMessage" }, "Comments": { "description": "Comments about the vendor. The value cannot exceed 65,535 characters.", "type": "string" }, "TaxInformation": { "$ref": "#/components/schemas/TaxInformationSaveMessage" } } }, "VendorRefundLineMessage": { "type": "object", "properties": { "Id": { "format": "int32", "description": "Vendor refund line item unique identifier.", "type": "integer" }, "AccountingEntity": { "$ref": "#/components/schemas/AccountingEntityMessage" }, "GLAccountId": { "format": "int32", "description": "Unique identifier of the general ledger account associated with the vendor refund.", "type": "integer" }, "Amount": { "format": "double", "description": "Amount of the vendor refund line item.", "type": "number" }, "Memo": { "description": "Memo for the vendor refund line item.", "type": "string" } } }, "VendorRefundLinePostMessage": { "required": [ "GLAccountId", "Amount", "AccountingEntity" ], "type": "object", "properties": { "GLAccountId": { "format": "int32", "description": "Unique identifier of the general ledger account associated with the vendor refund.", "type": "integer" }, "Amount": { "format": "double", "description": "Amount of the vendor refund line item.", "type": "number" }, "Memo": { "description": "Memo for the vendor refund line item. Memo cannot exceed 215 characters.", "type": "string" }, "AccountingEntity": { "$ref": "#/components/schemas/AccountingEntitySaveMessage" } } }, "VendorRefundMessage": { "type": "object", "properties": { "Id": { "format": "int32", "description": "Transaction unique identifier.", "type": "integer" }, "EntryDate": { "format": "date", "description": "Date the refund was recorded.", "type": "string" }, "BankAccountId": { "format": "int32", "description": "Unique identifier of the bank account that the refund was deposited into.", "type": "integer" }, "PaymentMethod": { "description": "The payment method used for the vendor refund.", "enum": [ "None", "Check", "Cash", "MoneyOrder", "CashierCheck", "DirectDeposit", "CreditCard", "ElectronicPayment", "RetailCash" ], "type": "string" }, "ReferenceNumber": { "description": "Reference number for the vendor refund.", "type": "string" }, "Memo": { "description": "Memo for the vendor refund.", "type": "string" }, "Lines": { "description": "A collection of line items associated with the vendor refund.", "type": "array", "items": { "$ref": "#/components/schemas/VendorRefundLineMessage" } } } }, "VendorRefundPostMessage": { "required": [ "EntryDate", "BankAccountId", "PaymentMethod", "Lines" ], "type": "object", "properties": { "EntryDate": { "format": "date", "description": "Date the vendor refund was made.", "type": "string" }, "BankAccountId": { "format": "int32", "description": "Unique identifier of the bank account that the refund was deposited into.", "type": "integer" }, "PaymentMethod": { "description": "The payment method used for the refund.", "enum": [ "Check", "Cash", "MoneyOrder", "CashierCheck", "DirectDeposit", "CreditCard", "ElectronicPayment" ], "type": "string" }, "ReferenceNumber": { "description": "The invoice or reference number that the vendor assigned to the refund. Reference number cannot exceed 45 characters.", "type": "string" }, "Memo": { "description": "Memo associated with the vendor refund, if applicable. Memo cannot exceed 65 characters", "type": "string" }, "Lines": { "description": "A collection of line items associated with the vendor refund.", "type": "array", "items": { "$ref": "#/components/schemas/VendorRefundLinePostMessage" } } } }, "VendorSearchMessage": { "type": "object", "properties": { "Status": { "description": "Filters results by the status of the vendor. If no status is specified both `active` and `inactive` vendors will be returned.", "enum": [ "Inactive", "Active" ], "type": "string" }, "Email": { "description": "Filters results to any vendor whose email *contains* the specified value.", "type": "string" }, "Website": { "description": "Filters results to any vendor whose website *contains* the specified value.", "type": "string" }, "Name": { "description": "Filters results to any vendor whose name *contains* the specified value.", "type": "string" }, "InsuranceExpiration": { "description": "Filters results to any vendor whose insurance will expire in the specified date range.", "enum": [ "None", "Any", "Expired", "ThirtyDaysOrLess", "SixtyDaysOrLess", "NinetyDaysOrLess" ], "type": "string" }, "Phone": { "description": "Filters results to any vendor who has a phone number that *contains* the specified value.", "type": "string" }, "LastUpdatedFrom": { "format": "date-time", "description": "Filters results to any vendors that were updated on or after the specified date. The value must be in UTC and formatted as YYYY-MM-DDTHH:MM:SSZ.", "type": "string" }, "LastUpdatedTo": { "format": "date-time", "description": "Filters results to any vendors that were updated on or before the specified date. The value must be in UTC and formatted as YYYY-MM-DDTHH:MM:SSZ.", "type": "string" } } }, "VendorTaxInformationMessage": { "description": "Vendor tax information.", "type": "object", "properties": { "TaxPayerIdType": { "description": "Indicates the type of tax payer id being specified in the request.", "enum": [ "SSN", "EIN" ], "type": "string" }, "TaxPayerId": { "description": "The tax payer identifier.", "type": "string" }, "TaxPayerName1": { "description": "Tax payer name line 1.", "type": "string" }, "TaxPayerName2": { "description": "Tax payer name line 2.", "type": "string" }, "IncludeIn1099": { "description": "Indicates whether the vendor should be included in 1099 form generation.", "type": "boolean" }, "Address": { "$ref": "#/components/schemas/AddressMessage" } } }, "VendorTransactionMessage": { "type": "object", "properties": { "Id": { "format": "int32", "description": "Transaction unique identifier.", "type": "integer" }, "Date": { "format": "date", "description": "Date of the transaction.", "type": "string" }, "TotalAmount": { "format": "double", "description": "Total amount of the transaction.", "type": "number" }, "TransactionType": { "description": "Type of transaction.", "enum": [ "Bill", "Check", "Charge", "Payment", "Credit", "Refund", "ApplyDeposit", "ElectronicFundsTransfer", "Other", "Deposit", "GeneralJournalEntry", "OwnerContribution", "ReversePayment", "ReverseElectronicFundsTransfer", "VendorCredit", "RentalApplicationFeePayment", "ReverseRentalApplicationFeePayment", "ReverseOwnerContribution", "VendorRefund", "UnreversedPayment", "UnreversedElectronicFundsTransfer", "UnreversedOwnerContribution", "UnreversedRentalApplicationFeePayment" ], "type": "string" }, "ReferenceNumber": { "description": "Reference number for the transaction.", "type": "string" }, "Memo": { "description": "Memo for the transaction.", "type": "string" } } }, "VendorTransactionSearchMessage": { "required": [ "TransactionDateFrom", "TransactionDateTo" ], "type": "object", "properties": { "TransactionDateFrom": { "format": "date", "description": "Filters results to any vendor transaction whose entry date that is greater than or equal to the specified value. The maximum date range is 365 days.", "type": "string" }, "TransactionDateTo": { "format": "date", "description": "Filters results to any vendor transaction whose entry date is less than or equal to the specified value. The maximum date range is 365 days.", "type": "string" }, "TransactionTypes": { "description": "Filters results to any vendor transaction whose vendor transaction type matches the specified status. If no type is specified, vendor transactions with any type will be returned.", "type": "array", "items": { "enum": [ "Bill", "Check", "Charge", "Payment", "Credit", "Refund", "ApplyDeposit", "ElectronicFundsTransfer", "Other", "Deposit", "GeneralJournalEntry", "OwnerContribution", "ReversePayment", "ReverseElectronicFundsTransfer", "VendorCredit", "RentalApplicationFeePayment", "ReverseRentalApplicationFeePayment", "ReverseOwnerContribution", "VendorRefund", "UnreversedPayment", "UnreversedElectronicFundsTransfer", "UnreversedOwnerContribution", "UnreversedRentalApplicationFeePayment" ], "type": "string" } }, "ReferenceNumber": { "description": "Filters results to vendor transaction whose reference number contains the specified value. The reference number cannot exceed 40 characters.", "type": "string" }, "Memo": { "description": "Filters results to vendor transaction whose memo contains the specified value. The memo cannot exceed 40 characters.", "type": "string" } } }, "WorkOrderEntryContactMessage": { "description": "Contact entity for the work order.", "type": "object", "properties": { "Id": { "format": "int32", "description": "Contact entity unique identifier.", "type": "integer" }, "Resources": { "description": "List of contact entity resources.", "type": "array", "items": { "$ref": "#/components/schemas/WorkOrderEntryContactResourceMessage" } } } }, "WorkOrderEntryContactResourceMessage": { "description": "Work order entry contact.", "type": "object", "properties": { "Type": { "description": "Contact entity type.", "enum": [ "RentalTenant", "AssociationOwner", "Staff", "RentalOwner" ], "type": "string" }, "Href": { "description": "Link to the contact resource.", "type": "string" } } }, "WorkOrderLineItemMessage": { "description": "Work order line item.", "type": "object", "properties": { "GlAccountId": { "format": "int32", "description": "General ledger account unique identifier.", "type": "integer" }, "Quantity": { "format": "double", "description": "Line item quantity.", "type": "number" }, "Memo": { "description": "Line item memo.", "type": "string" }, "UnitPrice": { "format": "double", "description": "Line item unit price.", "type": "number" } } }, "WorkOrderLineItemSaveMessage": { "required": [ "Quantity", "UnitPrice" ], "type": "object", "properties": { "GlAccountId": { "format": "int32", "description": "General ledger account unique identifier.", "type": "integer" }, "Quantity": { "format": "double", "description": "Line item quantity.", "type": "number" }, "Memo": { "description": "Line item memo.", "type": "string" }, "UnitPrice": { "format": "double", "description": "Line item unit price.", "type": "number" } } }, "WorkOrderMessage": { "type": "object", "properties": { "Id": { "format": "int32", "description": "Work order unique identifier.", "type": "integer" }, "Task": { "$ref": "#/components/schemas/WorkOrderTaskMessage" }, "WorkDetails": { "description": "Description of the work order.", "type": "string" }, "InvoiceNumber": { "description": "The invoice or reference number that the vendor assigned to the invoice.", "type": "string" }, "ChargeableTo": { "description": "A description of the entity that will be charged for the work.", "type": "string" }, "EntryAllowed": { "description": "Indicates whether entry has been allowed to the unit.", "enum": [ "Unknown", "Yes", "No" ], "type": "string" }, "EntryNotes": { "description": "Notes specific to entering the unit.", "type": "string" }, "VendorId": { "format": "int32", "description": "Vendor unique identifier.", "type": "integer" }, "VendorNotes": { "description": "Notes specific to the vendor.", "type": "string" }, "EntryContact": { "$ref": "#/components/schemas/WorkOrderEntryContactMessage" }, "BillTransactionId": { "format": "int32", "description": "Unique identifier for the bill related to this work order. This field will be `null` if no bill is related to this work order.", "type": "integer" }, "Amount": { "format": "double", "description": "The total amount of the work order.", "type": "number" }, "LineItems": { "description": "A collection of line items associated with the work order.", "type": "array", "items": { "$ref": "#/components/schemas/WorkOrderLineItemMessage" } } } }, "WorkOrderPostMessage": { "required": [ "EntryAllowed", "VendorId" ], "type": "object", "properties": { "WorkDetails": { "description": "Description of the work order. The value cannot exceed 65,535 characters.", "type": "string" }, "InvoiceNumber": { "description": "The invoice or reference number that the vendor assigned to the work order. The value cannot exceed 50 characters.", "type": "string" }, "ChargeableTo": { "description": "A description of the entity that will be charged for the work. The value cannot exceed 100 characters.", "type": "string" }, "EntryAllowed": { "description": "Indicates whether entry has been allowed to the unit.", "enum": [ "Unknown", "Yes", "No" ], "type": "string" }, "EntryNotes": { "description": "Notes specific to entering the unit. The value cannot exceed 65,535 characters.", "type": "string" }, "VendorId": { "format": "int32", "description": "Vendor unique identifier.", "type": "integer" }, "VendorNotes": { "description": "Notes specific to the vendor. The value cannot exceed 65,535 characters.", "type": "string" }, "EntryContactId": { "format": "int32", "description": "Contact user unique identifier. The user type must be one of the following types: `RentalTenant`, `AssociationOwner`, `Staff`, `RentalOwner`.", "type": "integer" }, "LineItems": { "description": "Work order line items.", "type": "array", "items": { "$ref": "#/components/schemas/WorkOrderLineItemSaveMessage" } }, "TaskId": { "format": "int32", "description": "Task unique identifier to associate with the work order.", "type": "integer" }, "Task": { "$ref": "#/components/schemas/WorkOrderTaskPostMessage" } } }, "WorkOrderPutMessage": { "required": [ "EntryAllowed", "VendorId" ], "type": "object", "properties": { "WorkDetails": { "description": "Description of the work order. The value cannot exceed 65,535 characters.", "type": "string" }, "InvoiceNumber": { "description": "The invoice or reference number that the vendor assigned to the invoice. The value cannot exceed 50 characters.", "type": "string" }, "ChargeableTo": { "description": "A description of the entity that will be charged for the work. The value cannot exceed 100 characters.", "type": "string" }, "EntryAllowed": { "description": "Indicates whether entry has been allowed to the unit.", "enum": [ "Unknown", "Yes", "No" ], "type": "string" }, "EntryNotes": { "description": "Notes specific to entering the unit. The value cannot exceed 65,535 characters.", "type": "string" }, "VendorId": { "format": "int32", "description": "Vendor unique identifier.", "type": "integer" }, "VendorNotes": { "description": "Notes specific to the vendor. The value cannot exceed 65,535 characters.", "type": "string" }, "EntryContactId": { "format": "int32", "description": "Contact user unique identifier. The user type must be one of the following types: `RentalTenant`, `AssociationOwner`, `Staff`, `RentalOwner`.", "type": "integer" }, "LineItems": { "description": "Work order line items. Note that all existing work order line items will be removed and replaced with this list of line items.", "type": "array", "items": { "$ref": "#/components/schemas/WorkOrderLineItemSaveMessage" } } } }, "WorkOrderSearchMessage": { "type": "object", "properties": { "EntityType": { "description": "Specifies the type of entity that the `EntityId` field refers to. This field is required if the `EntityId` field is populated.", "enum": [ "Rental", "RentalOwner", "Association" ], "type": "string" }, "EntityId": { "format": "int32", "description": "Filters results to any work order associated with the specified entity id value. The value must be of the type specified in the `EntityType` field.", "type": "integer" }, "Statuses": { "description": "Filters results by the status of the task associated with the work order. If no status is specified, work orders with any status will be returned.", "type": "array", "items": { "enum": [ "New", "InProgress", "Completed", "Deferred", "Closed" ], "type": "string" } }, "Type": { "description": "Filters results to any work order with an associated task with the task type specified.", "enum": [ "ContactRequest", "ResidentRequest", "Todo", "RentalOwnerRequest" ], "type": "string" }, "UnitId": { "format": "int32", "description": "Filters results to any work order associated with the unit identifier.", "type": "integer" }, "UnitAgreementId": { "format": "int32", "description": "Filters results to any work order associated with the unit agreement identifier specified.", "type": "integer" }, "LastUpdatedFrom": { "format": "date", "description": "Filters results to any work orders were updated on or after the specified date. The value must be formatted as YYYY-MM-DD.", "type": "string" }, "LastUpdatedTo": { "format": "date", "description": "Filters results to any work orders were updated on or before the specified date. The value must be formatted as YYYY-MM-DD.", "type": "string" }, "DueDateFrom": { "format": "date", "description": "Filters results to any work orders with a due date on or after the specified date. The value must be formatted as YYYY-MM-DD.", "type": "string" }, "DueDateTo": { "format": "date", "description": "Filters results to any work orders with a due date on or before the specified date. The value must be formatted as YYYY-MM-DD.", "type": "string" }, "TaskCategoryId": { "format": "int32", "description": "Filters results to any work orders whose priority matches the specified values. If no priority is specified, tasks with any priority will be returned.", "type": "integer" }, "Priorities": { "description": "Filters results to any work orders that have been assigned to the specified staff user identifier.", "type": "array", "items": { "enum": [ "Low", "Normal", "High" ], "type": "string" } }, "AssignedToId": { "format": "int32", "description": "Filters results to any work orders that have been assigned to the specified staff user identifier.", "type": "integer" }, "VendorIds": { "description": "Filters results to any work orders that have been assigned to the specified vendor identifier.", "type": "array", "items": { "format": "int32", "type": "integer" } }, "AmountFrom": { "format": "double", "description": "Filters results to any work orders whose total amounts are equal or greater than the specified amount.", "type": "number" }, "AmountTo": { "format": "double", "description": "Filters results to any work orders whose total amounts are equal or less than the specified amount.", "type": "number" }, "IsBilled": { "description": "Filters results to work orders that have an associated bill.", "type": "boolean" }, "Title": { "description": "Filters results to any work orders whose title *contains* the specified value.", "type": "string" }, "TaskIds": { "description": "Filters results to work orders that have an associated to a task in the specified list.", "type": "array", "items": { "format": "int32", "type": "integer" } } } }, "WorkOrderTaskMessage": { "description": "Task information related to the work order.", "type": "object", "properties": { "Id": { "format": "int32", "description": "Task unique identifier.", "type": "integer" }, "Type": { "description": "The task type.", "enum": [ "ContactRequest", "ResidentRequest", "Todo", "RentalOwnerRequest" ], "type": "string" }, "UnitId": { "format": "int32", "description": "The unit unique identifier associated with the task.", "type": "integer" }, "UnitAgreement": { "$ref": "#/components/schemas/UnitAgreementMessage" }, "Title": { "description": "Task title.", "type": "string" }, "DueDate": { "format": "date", "description": "Task due date.", "type": "string" }, "Priority": { "description": "Task priority.", "enum": [ "Low", "Normal", "High" ], "type": "string" }, "Status": { "description": "Task status.", "enum": [ "New", "InProgress", "Completed", "Deferred", "Closed" ], "type": "string" } } }, "WorkOrderTaskPostMessage": { "description": "Task information to create and associate with the work order.", "required": [ "Title", "Priority", "Status", "AssignedToUserId" ], "type": "object", "properties": { "Title": { "description": "Task title. The title can not exceed 127 characters.", "type": "string" }, "DueDate": { "format": "date", "description": "Task due date. The date must be formatted as YYYY-MM-DD.", "type": "string" }, "Priority": { "description": "Task priority.", "enum": [ "Low", "Normal", "High" ], "type": "string" }, "Status": { "description": "Task status.", "enum": [ "New", "InProgress", "Completed", "Deferred", "Closed" ], "type": "string" }, "PropertyId": { "format": "int32", "description": "The unique identifier of property associated with the request. The assigned property must be active.", "type": "integer" }, "UnitId": { "format": "int32", "description": "The unique identifier of the unit associated with the request. The unit must be associated with the `PropertyId` specified.", "type": "integer" }, "AssignedToUserId": { "format": "int32", "description": "The unique identifier of the staff user assigned to the request. The user must be a `Staff` user type.", "type": "integer" } } } } } }