Introduction
Welcome to the Facilite API.
To connect with us and start using the API, please send an email to connect@facilitee.com with the following details:
- personal name, role and contact details
- your company name
- the name of your app that will be connecting to Facilitee API
- a link (if you have a website)
Once you contact us, we will provide the authentication details for you to be able to start using the Facilitee API.
In the meantime, you can browse through the API documentation we prepared for you.
Thank you.
The route to our API is .../api/public
.
NOTE:
The protocol used for all endpoints, including the authorization URL, is https
.
All of our non-authorization endpoints expect a Content-Type: application/json
header in all requests.
Authorization
URL
Request Format
Route:
.../api/connect/token
Body:
{
client_id=your_client_id&client_secret=your_client_secret&scope=openid api&grant_type=client_credentials
}
Response Format
Body:
{
"access_token": "access_token_string",
"token_type": "token_type_string",
"expires_in": 1800,
"scope": "openid",
"id_token": "id_token_string"
}
POST
.../api/connect/token
Returns the tokens required to access the endpoints.
Request headers
Field | Value | |
---|---|---|
Content-Type | application/x-www-form-urlencoded | required |
Request parameters
Body type: x-www-form-urlencoded
Body:
Field | Type | Value | |
---|---|---|---|
client_id | string | Given to you by our API development team |
required |
client_secret | string | Given to you by our API development team |
required |
scope | string | openid api |
required |
grant_type | string | client_credentials |
required |
Response values
Field | Type |
---|---|
access_token | string |
token_type | string |
expires_in | integer |
scope | string |
id_token | string |
Using the API
Example
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6ImF0K2p3dCJ9.
eyJzdWIiOiJwb3N0bWFuIiwiUHVibGljQXBpIjoiUG9zdG1hbiIsInRlbmFudEl
kIjoiMSIsIm9pX3Byc3QiOiJwb3N0bWFuIiwiY2xpZW50X2lkIjoicG9zdG1hbi
IsIm9pX3Rrbl9pZCI6ImFmYjQ3OWM4LTJhMWEtNDlmYy1iOTI4LWQ5NjIyMjA5N
jUxMSIsImF1ZCI6IndlYiIsInNjb3BlIjoib3BlbmlkIiwiZXhwIjoxNjI1NzQwN
DYyLCJpc3MiOiJodHRwczovL2xvY2FsaG9zdDo0NDMzNC8iLCJpYXQiOjE2MjU3Mzg2NjJ9.g3i_K7QLqrib49HjPta0mGIiqB8qfEa0dPguVQHc7Bo
Request headers
Field | Value | |
---|---|---|
Authorization | token_type_string access_token_string |
required |
If the token expires, re-visit the Authorization endpoint
again and receive a new token.
Country Codes
Get a list of phone number country codes
Request Format
Route:
.../api/public/country-codes
Response Format
Body:
{
[
{
"id": 8,
"code": "31",
"country": "Netherlands"
},
{
"id": 220,
"code": "33",
"country": "France"
}
]
}
GET
.../api/public/country-codes
Returns a list of country codes.
Response values
Field | Type |
---|---|
array | |
[index] | object |
[index].id | integer |
[index].code | string |
[index].country | string |
Owner
Owner
Create Owner
Request Format
Route:
.../api/public/Owners
Body:
{
"email": "user@example.com",
"name": "User Test",
"companyName": "Test Company",
"countryCode": "31",
"phoneNumber": "984356578",
"externalReferenceId": "string",
"address":
{
"street": "Javastraat",
"streetNumber": "1",
"postCode": "1094 EM",
"city": "Amsterdam",
"country": "Netherlands",
"googlePlaceId": "ChIJyfEW6XIJxkcRyRX1yUIDLxg"
},
"additionalNote": "Test note",
"authorizedAmount": 650.50,
"invoiceAddress":
{
"street": "Javastraat",
"streetNumber": "1",
"postCode": "1094 EM",
"city": "Amsterdam",
"country": "Netherlands",
"googlePlaceId": "ChIJyfEW6XIJxkcRyRX1yUIDLxg"
},
"invoiceCompany": "Owner Company",
"invoiceEmail": "owner.invoice@email.com",
"attentionTo": "Owner"
}
Response Format
Body:
{
"id": 2564,
"email": "user@example.com",
"name": "User Test",
"companyName": "Test Company",
"countryCode": "31",
"phoneNumber": "984356578",
"address":
{
"street": "Javastraat",
"streetNumber": "1",
"postCode": "1094 EM",
"city": "Amsterdam",
"country": "Netherlands",
"googlePlaceId": "ChIJyfEW6XIJxkcRyRX1yUIDLxg"
},
"additionalNote": "Test note",
"authorizedAmount": 650.50,
"status": "Uninvited",
"externalReferenceId": "string",
"invoiceAddress":
{
"id": 22,
"street": "Javastraat",
"streetNumber": "1",
"postCode": "1094 EM",
"city": "Amsterdam",
"country": "Netherlands",
"googlePlaceId": "ChIJyfEW6XIJxkcRyRX1yUIDLxg"
},
"invoiceCompany": "Owner Company",
"invoiceEmail": "owner.invoice@email.com",
"attentionTo": "Owner"
}
POST
.../api/public/Owners
Creates a new User entity and assigns a role Owner to it.
Request parameters
Body:
Field | Type | |
---|---|---|
string | required | |
name | string | required |
companyName | string | optional |
countryCode | string | optional |
phoneNumber | string | optional |
externalReferenceId | string | optional |
address | object | optional |
address.street | string | optional |
address.streetNumber | string | optional |
address.postCode | string | optional |
address.city | string | optional |
address.country | string | optional |
address.googlePlaceId | string | optional |
additionalNote | string | optional |
authorizedAmount | number | optional |
invoiceAddress | object | optional |
invoiceAddress.street | string | optional |
invoiceAddress.streetNumber | string | optional |
invoiceAddress.postCode | string | optional |
invoiceAddress.city | string | optional |
invoiceAddress.country | string | optional |
invoiceAddress.googlePlaceId | string | optional |
invoiceCompany | string | optional |
invoiceEmail | string | optional |
attentionTo | string | optional |
countryCode
and phoneNumber
fields are used together by the application for the purpose of sending SMS messages. If either or both fields are left empty or they are not formatted correctly as shown in the example request, they will not be saved in the database.
invoiceAddress
related fields, invoiceCompany
, invoiceEmail
and attentionTo
fields are optional fields that serve as a way to specify another invoice address for a Property Owner
in the cases where a Property Owner
preffers to use a different address instead.
invoiceAddress
related fields, invoiceCompany
, invoiceEmail
and attentionTo
fields will be shown in the generated Workorder documents instead of the address
fields if a value for them was provided, otherwise address
fields value will be used in the document.
Response values
Field | Type |
---|---|
id | integer |
string | |
name | string |
companyName | string |
countryCode | string |
phoneNumber | string |
address | object |
address.street | string |
address.streetNumber | string |
address.postCode | string |
address.city | string |
address.country | string |
address.googlePlaceId | string |
additionalNote | string |
authorizedAmount | number |
status | string |
externalReferenceId | string |
invoiceAddress | object |
invoiceAddress.street | string |
invoiceAddress.streetNumber | string |
invoiceAddress.postCode | string |
invoiceAddress.city | string |
invoiceAddress.country | string |
invoiceAddress.googlePlaceId | string |
invoiceCompany | string |
invoiceEmail | string |
attentionTo | string |
status
shows the current status of the user. They are :
- Uninvited : The default status, it signifies the user was not invited to use Facilitee via email and has not received the login credentials
- Invited : It signifies the user was invited to use Facilitee via email that also contains his/hers login credentials
- Active : It signifies the user has logged in at least once and is considered an active user of Facilitee
Please note that inviting users is currently only possible in the Facilitee App.
Get owner details
Request Format
Route:
.../api/public/Owners/{id}
Example :
.../api/public/owners/7
Response Format
Body:
{
"id": 2564,
"email": "user@example.com",
"name": "User Test",
"companyName": "Test Company",
"countryCode": "31",
"phoneNumber": "984356578",
"address":
{
"street": "Javastraat",
"streetNumber": "1",
"postCode": "1094 EM",
"city": "Amsterdam",
"country": "Netherlands",
"googlePlaceId": "ChIJyfEW6XIJxkcRyRX1yUIDLxg"
},
"additionalNote": "Test note",
"authorizedAmount": 650.50,
"status": "Active",
"externalReferenceId": "string",
"invoiceAddress":
{
"id": 22,
"street": "Javastraat",
"streetNumber": "1",
"postCode": "1094 EM",
"city": "Amsterdam",
"country": "Netherlands",
"googlePlaceId": "ChIJyfEW6XIJxkcRyRX1yUIDLxg"
},
"invoiceCompany": "Owner Company",
"invoiceEmail": "owner.invoice@email.com",
"attentionTo": "Owner"
}
GET
.../api/public/Owners/{id}
Returns a User entity which has a role Owner and corresponds to the ownerId
.
Request parameters
Route:
Field | Type | |
---|---|---|
ownerId | integer | required |
Response values
Field | Type |
---|---|
id | integer |
string | |
name | string |
companyName | string |
countryCode | string |
phoneNumber | string |
address | object |
address.street | string |
address.streetNumber | string |
address.postCode | string |
address.city | string |
address.country | string |
address.googlePlaceId | string |
additionalNote | string |
authorizedAmount | number |
status | string |
externalReferenceId | string |
invoiceAddress | object |
invoiceAddress.street | string |
invoiceAddress.streetNumber | string |
invoiceAddress.postCode | string |
invoiceAddress.city | string |
invoiceAddress.country | string |
invoiceAddress.googlePlaceId | string |
invoiceCompany | string |
invoiceEmail | string |
attentionTo | string |
status
shows the current status of the user. They are :
- Uninvited : The default status, it signifies the user was not invited to use Facilitee via email and has not received the login credentials
- Invited : It signifies the user was invited to use Facilitee via email that also contains his/hers login credentials
- Active : It signifies the user has logged in at least once and is considered an active user of Facilitee
Please note that inviting users is currently only possible in the Facilitee App.
Get owner id by email
Request Format
Route:
.../api/public/owners/get-by-email
Example :
.../api/public/owners/get-by-email?email=user@example.com
Response Format
Body:
{
110
}
GET
.../api/public/Owners/get-by-email?email=email@example.com
Returns a User entity’s id which has a role Owner and corresponds to the email
.
Request parameters
Route:
Query parameters:
Field | Type | |
---|---|---|
string | required |
Response values
Field | Type |
---|---|
integer |
Get a list of Owners
Request Format
Route:
.../api/public/Owners?{queryParams}
Example :
.../api/public/Owners?pageNo=1&pageSize=15&searchParameter=Test
Response Format
Body:
{
"numberOfPages": 1,
"totalItems": 1,
"pageSize": 1,
"currentPage": 1,
"items":
[
{
"id": 2564,
"name": "User Test",
"email": "user@example.com",
"companyName": "string",
"countryCode": "31",
"phoneNumber": "string",
"address":
{
"id": 21048,
"street": "Javastraat",
"streetNumber": "1",
"postCode": "1094 EM",
"city": "Amsterdam",
"country": "Netherlands",
"googlePlaceId": "ChIJyfEW6XIJxkcRyRX1yUIDLxg"
},
"additionalNote": "Test note",
"authorizedAmount": 650.50,
"numberOfPropertyUnits": 2,
"userStatus": "Active",
"externalReferenceId": "string"
}
]
}
GET
.../api/public/Owners?{queryParams}
Returns a list of User entities which have a role Owner.
Request parameters
Route:
Query parameters:
Field | Type | |
---|---|---|
pageNo | integer | optional |
pageSize | integer | optional |
searchParameter | string | optional |
The searchParameter
is used for querying the results. If a value for it is provided, only the results with fields that contain the value of the searchParameter
query parameter will be returned. The following fields are checked :
email
name
companyName
externalReferenceId
Response values
Field | Type |
---|---|
numberOfPages | integer |
totalItems | integer |
pageSize | integer |
currentPage | integer |
items | array |
items[index] | object |
items[index].id | integer |
items[index].email | string |
items[index].name | string |
items[index].companyName | string |
items[index].countryCode | string |
items[index].phoneNumber | string |
items[index].address | object |
items[index].address.id | int |
items[index].address.street | string |
items[index].address.streetNumber | string |
items[index].address.postCode | string |
items[index].address.city | string |
items[index].address.country | string |
items[index].address.googlePlaceId | string |
items[index].additionalNote | string |
items[index].authorizedAmount | number |
items[index].numberOfPropertyUnits | int |
items[index].userStatus | string |
items[index].externalReferenceId | string |
userStatus
shows the current status of the user. They are :
- Uninvited : The default status, it signifies the user was not invited to use Facilitee via email and has not received the login credentials
- Invited : It signifies the user was invited to use Facilitee via email that also contains his/hers login credentials
- Active : It signifies the user has logged in at least once and is considered an active user of Facilitee
Please note that inviting users is currently only possible in the Facilitee App.
Update owner details
Request Format
Route:
.../api/public/Owners/{id}
Example:
.../api/public/Owners/2
Body:
{
"email": "user@example.com",
"name": "User Test",
"companyName": "Test Company",
"countryCode": "31",
"phoneNumber": "984356578",
"externalReferenceId": "string",
"address":
{
"street": "Javastraat",
"streetNumber": "1",
"postCode": "1094 EM",
"city": "Amsterdam",
"country": "Netherlands",
"googlePlaceId": "ChIJyfEW6XIJxkcRyRX1yUIDLxg"
},
"additionalNote": "Test note",
"authorizedAmount": 650.50,
"invoiceAddress":
{
"street": "Javastraat",
"streetNumber": "1",
"postCode": "1094 EM",
"city": "Amsterdam",
"country": "Netherlands",
"googlePlaceId": "ChIJyfEW6XIJxkcRyRX1yUIDLxg"
},
"invoiceCompany": "Owner Company",
"invoiceEmail": "owner.invoice@email.com",
"attentionTo": "Owner"
}
Response Format
Body:
{
"id": 2564,
"email": "user@example.com",
"name": "User Test",
"companyName": "Test Company",
"countryCode": "31",
"phoneNumber": "984356578",
"address":
{
"street": "Javastraat",
"streetNumber": "1",
"postCode": "1094 EM",
"city": "Amsterdam",
"country": "Netherlands",
"googlePlaceId": "ChIJyfEW6XIJxkcRyRX1yUIDLxg"
},
"additionalNote": "Test note",
"authorizedAmount": 650.50,
"status": "Uninvited",
"externalReferenceId": "string",
"invoiceAddress":
{
"id": 22,
"street": "Javastraat",
"streetNumber": "1",
"postCode": "1094 EM",
"city": "Amsterdam",
"country": "Netherlands",
"googlePlaceId": "ChIJyfEW6XIJxkcRyRX1yUIDLxg"
},
"invoiceCompany": "Owner Company",
"invoiceEmail": "owner.invoice@email.com",
"attentionTo": "Owner"
}
PUT
.../api/public/Owners/{id}
Updates a User entity with the assigned Owner role and a matching ownerId
.
Request parameters
Route:
Field | Type | |
---|---|---|
ownerId | integer | required |
Body:
Field | Type | |
---|---|---|
string | required | |
name | string | required |
companyName | string | optional |
countryCode | string | optional |
phoneNumber | string | optional |
externalReferenceId | string | optional |
address | object | optional |
address.street | string | optional |
address.streetNumber | string | optional |
address.postCode | string | optional |
address.city | string | optional |
address.country | string | optional |
address.googlePlaceId | string | optional |
additionalNote | string | optional |
authorizedAmount | number | optional |
invoiceAddress | object | optional |
invoiceAddress.street | string | optional |
invoiceAddress.streetNumber | string | optional |
invoiceAddress.postCode | string | optional |
invoiceAddress.city | string | optional |
invoiceAddress.country | string | optional |
invoiceAddress.googlePlaceId | string | optional |
invoiceCompany | string | optional |
invoiceEmail | string | optional |
attentionTo | string | optional |
countryCode
and phoneNumber
fields are used together by the application for the purpose of sending SMS messages. If either or both fields are left empty or they are not formatted correctly as shown in the example request, they will not be saved in the database.
invoiceAddress
related fields, invoiceCompany
, invoiceEmail
and attentionTo
fields are optional fields that serve as a way to specify another invoice address for a Property Owner
in the cases where a Property Owner
preffers to use a different address instead.
invoiceAddress
related fields, invoiceCompany
, invoiceEmail
and attentionTo
fields will be shown in the generated Workorder documents instead of the address
fields if a value for them was provided, otherwise address
fields value will be used in the document.
Response values
Field | Type |
---|---|
id | integer |
string | |
name | string |
companyName | string |
countryCode | string |
phoneNumber | string |
address | object |
address.street | string |
address.streetNumber | string |
address.postCode | string |
address.city | string |
address.country | string |
address.googlePlaceId | string |
additionalNote | string |
authorizedAmount | number |
status | string |
externalReferenceId | string |
invoiceAddress | object |
invoiceAddress.street | string |
invoiceAddress.streetNumber | string |
invoiceAddress.postCode | string |
invoiceAddress.city | string |
invoiceAddress.country | string |
invoiceAddress.googlePlaceId | string |
invoiceCompany | string |
invoiceEmail | string |
attentionTo | string |
status
shows the current status of the user. They are :
- Uninvited : The default status, it signifies the user was not invited to use Facilitee via email and has not received the login credentials
- Invited : It signifies the user was invited to use Facilitee via email that also contains his/hers login credentials
- Active : It signifies the user has logged in at least once and is considered an active user of Facilitee
Please note that inviting users is currently only possible in the Facilitee App.
Owner Company
Create Owner Company
Request Format
Route:
.../api/public/Owners/{ownerId}/companies
Example :
.../api/public/owners/7/companies
Body:
{
"name": "Test Company",
"invoiceEmail": "test-company@email.com",
"maxMandateAmount": 1000,
"attentionTo": "Sales team",
"countryCode": "+31",
"phoneNumber": "23545467",
"externalReferenceId": "string",
"invoiceAddress":
{
"street": "Javastraat",
"streetNumber": "1",
"postCode": "1094 EM",
"city": "Amsterdam",
"country": "Netherlands",
"googlePlaceId": "ChIJyfEW6XIJxkcRyRX1yUIDLxg"
}
}
Response Format
Body:
{
"id": 22,
"name": "Test Company",
"invoiceEmail": "test-company@email.com",
"maxMandateAmount": 1000,
"attentionTo": "Sales team",
"countryCode": "+31",
"phoneNumber": "23545467",
"externalReferenceId": "string",
"invoiceAddress":
{
"id": 330,
"street": "Javastraat",
"streetNumber": "1",
"postCode": "1094 EM",
"city": "Amsterdam",
"country": "Netherlands",
"googlePlaceId": "ChIJyfEW6XIJxkcRyRX1yUIDLxg"
}
}
POST
.../api/public/Owners/{ownerId}/companies
Creates a new Owner Company
entity and assigns it to an Owner
User entity with a matching ownerId
.
Request parameters
Route:
Field | Type | |
---|---|---|
ownerId | integer | required |
Body:
Field | Type | |
---|---|---|
name | string | required |
invoiceEmail | string | optional |
maxManadateAmount | number | optional |
attentionTo | string | optional |
countryCode | string | optional |
phoneNumber | string | optional |
externalReferenceId | string | optional |
invoiceAddress | object | optional |
invoiceAddress.street | string | optional |
invoiceAddress.streetNumber | string | optional |
invoiceAddress.postCode | string | optional |
invoiceAddress.city | string | optional |
invoiceAddress.country | string | optional |
invoiceAddress.googlePlaceId | string | optional |
countryCode
and phoneNumber
fields are used together by the application for the purpose of sending SMS messages. If either or both fields are left empty or they are not formatted correctly as shown in the example request, they will not be saved in the database.
Response values
Field | Type |
---|---|
id | integer |
name | string |
invoiceEmail | string |
maxMandateAmount | number |
attentionTo | string |
countryCode | string |
phoneNumber | string |
externalReferenceId | string |
invoiceAddress | object |
invoiceAddress.id | integer |
invoiceAddress.street | string |
invoiceAddress.streetNumber | string |
invoiceAddress.postCode | string |
invoiceAddress.city | string |
invoiceAddress.country | string |
invoiceAddress.googlePlaceId | string |
Get Owner Company Details
Request Format
Route:
.../api/public/Owners/{ownerId}/companies/{companyId}
Example :
.../api/public/owners/7/companies/22
Response Format
Body:
{
"id": 22,
"name": "Test Company",
"invoiceEmail": "test-company@email.com",
"maxMandateAmount": 1000,
"attentionTo": "Sales team",
"countryCode": "+31",
"phoneNumber": "23545467",
"externalReferenceId": "string",
"invoiceAddress":
{
"id": 330,
"street": "Javastraat",
"streetNumber": "1",
"postCode": "1094 EM",
"city": "Amsterdam",
"country": "Netherlands",
"googlePlaceId": "ChIJyfEW6XIJxkcRyRX1yUIDLxg"
}
}
GET
.../api/public/Owners/{ownerId}/companies/{companyId}
Returns a Owner Company
entity connected to the User entity with matching ownerId
and corresponding companyId
.
Request parameters
Route:
Field | Type | |
---|---|---|
ownerId | integer | required |
companyId | integer | required |
Response values
Field | Type |
---|---|
id | integer |
name | string |
invoiceEmail | string |
maxMandateAmount | number |
attentionTo | string |
countryCode | string |
phoneNumber | string |
externalReferenceId | string |
invoiceAddress | object |
invoiceAddress.id | integer |
invoiceAddress.street | string |
invoiceAddress.streetNumber | string |
invoiceAddress.postCode | string |
invoiceAddress.city | string |
invoiceAddress.country | string |
invoiceAddress.googlePlaceId | string |
Get A List Of Owner Companies
Request Format
Route:
.../api/public/Owners/{ownerId}/companies?{queryParams}
Example :
.../api/public/Owners/{ownerId}/companies?pageNo=1&pageSize=15&searchParameter=Test
Response Format
Body:
{
"numberOfPages": 1,
"totalItems": 1,
"pageSize": 1,
"currentPage": 1,
"items":
[
{
"id": 22,
"name": "Test Company",
"invoiceEmail": "test-company@email.com",
"maxMandateAmount": 1000,
"attentionTo": "Sales team",
"countryCode": "+31",
"phoneNumber": "23545467",
"externalReferenceId": "string",
"invoiceAddress":
{
"id": 330,
"street": "Javastraat",
"streetNumber": "1",
"postCode": "1094 EM",
"city": "Amsterdam",
"country": "Netherlands",
"googlePlaceId": "ChIJyfEW6XIJxkcRyRX1yUIDLxg"
}
}
]
}
GET
.../api/public/Owners/{ownerId}/companies?{queryParams}
Returns a list of Owner Company
entities connected to the Owner
with a corresponding ownerId
.
Request parameters
Route:
Field | Type | |
---|---|---|
ownerId | integer | required |
Query parameters:
Field | Type | |
---|---|---|
pageNo | integer | optional |
pageSize | integer | optional |
searchParameter | string | optional |
The searchParameter
refers to the company’s name. It is possible to filter out the response by company names where the result must contain the searchParameter
value in the company’s name.
Response values
Field | Type |
---|---|
numberOfPages | integer |
totalItems | integer |
pageSize | integer |
currentPage | integer |
items | array |
items[index] | object |
items[index].id | integer |
items[index].name | string |
items[index].invoiceEmail | string |
items[index].maxMandateAmount | number |
items[index].attentionTo | string |
items[index].countryCode | string |
items[index].phoneNumber | string |
items[index].externalReferenceId | string |
items[index].invoiceAddress | object |
items[index].invoiceAddress.id | integer |
items[index].invoiceAddress.street | string |
items[index].invoiceAddress.streetNumber | string |
items[index].invoiceAddress.postCode | string |
items[index].invoiceAddress.city | string |
items[index].invoiceAddress.country | string |
items[index].invoiceAddress.googlePlaceId | string |
Update Owner Company Details
Request Format
Route:
.../api/public/Owners/{ownerId}/companies/{companyId}
Example:
.../api/public/Owners/7/companies/22
Body:
{
"name": "Test Company",
"invoiceEmail": "test-company@email.com",
"maxMandateAmount": 1000,
"attentionTo": "Sales team",
"countryCode": "+31",
"phoneNumber": "23545467",
"externalReferenceId": "string",
"invoiceAddress":
{
"street": "Javastraat",
"streetNumber": "1",
"postCode": "1094 EM",
"city": "Amsterdam",
"country": "Netherlands",
"googlePlaceId": "ChIJyfEW6XIJxkcRyRX1yUIDLxg"
}
}
Response Format
Body:
{
"id": 22,
"name": "Test Company",
"invoiceEmail": "test-company@email.com",
"maxMandateAmount": 1000,
"attentionTo": "Sales team",
"countryCode": "+31",
"phoneNumber": "23545467",
"externalReferenceId": "string",
"invoiceAddress":
{
"id": 330,
"street": "Javastraat",
"streetNumber": "1",
"postCode": "1094 EM",
"city": "Amsterdam",
"country": "Netherlands",
"googlePlaceId": "ChIJyfEW6XIJxkcRyRX1yUIDLxg"
}
}
PUT
.../api/public/Owners/{ownerId}/companies/{companyId}
Updates an Owner Company
entity with a corresponding companyId
belonging to an Owner
entity with a matching ownerId
.
Request parameters
Route:
Route:
Field | Type | |
---|---|---|
ownerId | integer | required |
companyId | integer | required |
Body:
Field | Type | |
---|---|---|
name | string | required |
invoiceEmail | string | optional |
maxManadateAmount | number | optional |
attentionTo | string | optional |
countryCode | string | optional |
phoneNumber | string | optional |
externalReferenceId | string | optional |
invoiceAddress | object | optional |
invoiceAddress.street | string | optional |
invoiceAddress.streetNumber | string | optional |
invoiceAddress.postCode | string | optional |
invoiceAddress.city | string | optional |
invoiceAddress.country | string | optional |
invoiceAddress.googlePlaceId | string | optional |
countryCode
and phoneNumber
fields are used together by the application for the purpose of sending SMS messages. If either or both fields are left empty or they are not formatted correctly as shown in the example request, they will not be saved in the database.
Response values
Field | Type |
---|---|
id | integer |
name | string |
invoiceEmail | string |
maxMandateAmount | number |
attentionTo | string |
countryCode | string |
phoneNumber | string |
externalReferenceId | string |
invoiceAddress | object |
invoiceAddress.id | integer |
invoiceAddress.street | string |
invoiceAddress.streetNumber | string |
invoiceAddress.postCode | string |
invoiceAddress.city | string |
invoiceAddress.country | string |
invoiceAddress.googlePlaceId | string |
Delete Owner Company
Request Format
Route:
.../api/public/owners/{ownerId}/companies/{companyId}
Example:
.../api/public/owners/7/companies/22
Response Format
Body:
{
"id": 22,
}
DELETE
.../api/public/owners/{ownerId}/companies/{companyId}
Deletes an Owner Company
entity with a corresponding companyId
belonging to an Owner
entity with a matching ownerId
.
Request parameters
Route:
Field | Type | |
---|---|---|
ownerId | integer | required |
companyId | integer | required |
Response values
Field | Type |
---|---|
Id | integer |
Property Manager
Create Property Manager
Request Format
Route:
.../api/public/managers
Body:
{
"email": "test-manager@facilitee.com",
"name": "Test Manager",
"companyName": "Manager Co.",
"countryCode": "25",
"phoneNumber": "354354353",
"additionalNote": "Note",
"externalReferenceId": "pm-123",
"address":
{
"street": "Javastraat",
"streetNumber": "1",
"postCode": "1094 EM",
"city": "Amsterdam",
"country": "Netherlands",
"googlePlaceId": "ChIJyfEW6XIJxkcRyRX1yUIDLxg"
}
}
Response Format
Body:
{
"id": 110,
"email": "test-manager@facilitee.com",
"name": "Test Manager",
"companyName": "Manager Co.",
"countryCode": "25",
"phoneNumber": "354354353",
"additionalNote": "Note",
"userStatus": "Uninvited",
"externalReferenceId": "pm-123",
"address":
{
"id": 222,
"street": "Javastraat",
"streetNumber": "1",
"postCode": "1094 EM",
"city": "Amsterdam",
"country": "Netherlands",
"googlePlaceId": "ChIJyfEW6XIJxkcRyRX1yUIDLxg"
},
"averageRating": 0,
"numberOfRatings": 0
}
POST
.../api/public/managers
Creates a new User entity and assigns a role Property Manager to it.
Request parameters
Body:
Field | Type | |
---|---|---|
string | required | |
name | string | required |
companyName | string | optional |
countryCode | string | optional |
phoneNumber | string | optional |
additionalNote | string | optional |
externalReferenceId | string | optional |
address | object | optional |
address.street | string | optional |
address.streetNumber | string | optional |
address.postCode | string | optional |
address.city | string | optional |
address.country | string | optional |
address.googlePlaceId | string | optional |
countryCode
and phoneNumber
fields are used together by the application for the purpose of sending SMS messages. If either or both fields are left empty or they are not formatted correctly as shown in the example request, they will not be saved in the database.
Response values
Field | Type |
---|---|
id | integer |
string | |
name | string |
companyName | string |
countryCode | string |
phoneNumber | string |
additionalNote | string |
userStatus | string |
externalReferenceId | string |
address | object |
address.street | string |
address.streetNumber | string |
address.postCode | string |
address.city | string |
address.country | string |
address.googlePlaceId | string |
averageRating | number |
numberOfRatings | integer |
userStatus
shows the current status of the user. They are :
- Uninvited : The default status, it signifies the user was not invited to use Facilitee via email and has not received the login credentials
- Invited : It signifies the user was invited to use Facilitee via email that also contains his/hers login credentials
- Active : It signifies the user has logged in at least once and is considered an active user of Facilitee
Please note that inviting users is currently only possible in the Facilitee App.
Get Property Manager details
Request Format
Route:
.../api/public/managers/{managerId}
Example:
.../api/public/manager/110
Response Format
Body:
{
"id": 110,
"email": "test-manager@facilitee.com",
"name": "Test Manager",
"companyName": "Manager Co.",
"countryCode": "25",
"phoneNumber": "354354353",
"additionalNote": "Note",
"userStatus": "Uninvited",
"externalReferenceId": "pm-123",
"address":
{
"id": 222,
"street": "Javastraat",
"streetNumber": "1",
"postCode": "1094 EM",
"city": "Amsterdam",
"country": "Netherlands",
"googlePlaceId": "ChIJyfEW6XIJxkcRyRX1yUIDLxg"
},
"averageRating": 4.0,
"numberOfRatings": 20
}
GET
.../api/public/managers/{managerId}
Returns a User entity which has a role Property Manager and corresponds to the managerId
.
Request parameters
Route:
Field | Type | |
---|---|---|
managerId | integer | required |
Response values
Field | Type |
---|---|
id | integer |
string | |
name | string |
companyName | string |
countryCode | string |
phoneNumber | string |
additionalNote | string |
userStatus | string |
externalReferenceId | string |
address | object |
address.street | string |
address.streetNumber | string |
address.postCode | string |
address.city | string |
address.country | string |
address.googlePlaceId | string |
averageRating | number |
numberOfRatings | integer |
userStatus
shows the current status of the user. They are :
- Uninvited : The default status, it signifies the user was not invited to use Facilitee via email and has not received the login credentials
- Invited : It signifies the user was invited to use Facilitee via email that also contains his/hers login credentials
- Active : It signifies the user has logged in at least once and is considered an active user of Facilitee
Please note that inviting users is currently only possible in the Facilitee App.
Get Property Manager id by email
Request Format
Route:
.../api/public/managers/get-by-email
Example :
.../api/public/managers/get-by-email?email=email@example.com
Response Format
Body:
{
230
}
GET
.../api/public/managers/get-by-email?email=email@example.com
Returns a User entity’s id which has a role Property Manager
and corresponds to the email
.
Request parameters
Route:
Query parameters:
Field | Type | |
---|---|---|
string | required |
Response values
Field | Type |
---|---|
integer |
Get a list of Property Managers
Request Format
Route:
.../api/public/managers?{queryParams}
Example :
.../api/public/managers?pageNo=1&pageSize=15&searchParameter=test
Response Format
Body:
{
"numberOfPages": 10,
"totalItems": 10,
"pageSize": 1,
"currentPage": 1,
"items":
[
{
"id": 110,
"email": "test-manager@facilitee.com",
"name": "Test Manager",
"companyName": "Manager Co.",
"countryCode": "25",
"phoneNumber": "354354353",
"additionalNote": "Note",
"userStatus": "Active",
"externalReferenceId": "pm-123",
"role": "PropertyManager",
"numberOfPropertyUnits": 4,
"averageRating": 3.5,
"numberOfRatings": 2
}
]
}
GET
.../api/public/managers
Returns a list of User entities which have a role Property Manager.
Request parameters
Route:
Query parameters:
Field | Type | |
---|---|---|
pageNo | integer | optional |
pageSize | integer | optional |
searchParameter | string | optional |
The searchParameter
is used for querying the results. If a value for it is provided, only the results with fields that contain the value of the searchParameter
query parameter will be returned. The following fields are checked :
name
email
countryCode
phoneNumber
externalReferenceId
Response values
Field | Type |
---|---|
numberOfPages | integer |
totalItems | integer |
pageSize | integer |
currentPage | integer |
items | array |
items[index_A].id | integer |
items[index_A].email | string |
items[index_A].name | string |
items[index_A].companyName | string |
items[index_A].countryCode | string |
items[index_A].phoneNumber | string |
items[index_A].additionalNote | string |
items[index_A].userStatus | string |
items[index_A].externalReferenceId | string |
items[index_A].role | string |
items[index_A].numberOfPropertyUnits | integer |
items[index_A].averageRating | number |
items[index_A].numberOfRatings | integer |
userStatus
shows the current userStatus of the user. They are :
- Uninvited : The default userStatus, it signifies the user was not invited to use Facilitee via email and has not received the login credentials
- Invited : It signifies the user was invited to use Facilitee via email that also contains his/hers login credentials
- Active : It signifies the user has logged in at least once and is considered an active user of Facilitee
Please note that inviting users is currently only possible in the Facilitee App.
Update Property Manager details
Request Format
Route:
.../api/public/managers/{managerId}
Example:
.../api/public/managers/110
Body:
{
"email": "test-manager@facilitee.com",
"name": "Test Manager",
"companyName": "Manager Co.",
"countryCode": "25",
"phoneNumber": "354354353",
"additionalNote": "Note",
"externalReferenceId": "pm-123",
"address":
{
"street": "Javastraat",
"streetNumber": "1",
"postCode": "1094 EM",
"city": "Amsterdam",
"country": "Netherlands",
"googlePlaceId": "ChIJyfEW6XIJxkcRyRX1yUIDLxg"
}
}
Response Format
Body:
{
"id": 110,
"email": "test-manager@facilitee.com",
"name": "Test Manager",
"companyName": "Manager Co.",
"countryCode": "25",
"phoneNumber": "354354353",
"additionalNote": "Note",
"userStatus": "Uninvited",
"externalReferenceId": "pm-123",
"address":
{
"id": 222,
"street": "Javastraat",
"streetNumber": "1",
"postCode": "1094 EM",
"city": "Amsterdam",
"country": "Netherlands",
"googlePlaceId": "ChIJyfEW6XIJxkcRyRX1yUIDLxg"
},
"averageRating": 0,
"numberOfRatings": 0
}
PUT
.../api/public/managers/{managerId}
Updates a User entity with the assigned Property Manager role and a matching managerId
.
Request parameters
Route:
Field | Type | |
---|---|---|
managerId | integer | required |
Body:
Field | Type | |
---|---|---|
string | required | |
name | string | required |
companyName | string | optional |
countryCode | string | optional |
phoneNumber | string | optional |
additionalNote | string | optional |
externalReferenceId | string | optional |
address | object | optional |
address.street | string | optional |
address.streetNumber | string | optional |
address.postCode | string | optional |
address.city | string | optional |
address.country | string | optional |
address.googlePlaceId | string | optional |
countryCode
and phoneNumber
fields are used together by the application for the purpose of sending SMS messages. If either or both fields are left empty or they are not formatted correctly as shown in the example request, they will not be saved in the database.
Response values
Field | Type |
---|---|
id | integer |
string | |
name | string |
companyName | string |
countryCode | string |
phoneNumber | string |
additionalNote | string |
userStatus | string |
externalReferenceId | string |
address | object |
address.street | string |
address.streetNumber | string |
address.postCode | string |
address.city | string |
address.country | string |
address.googlePlaceId | string |
averageRating | number |
numberOfRatings | integer |
userStatus
shows the current userStatus of the user. They are :
- Uninvited : The default userStatus, it signifies the user was not invited to use Facilitee via email and has not received the login credentials
- Invited : It signifies the user was invited to use Facilitee via email that also contains his/hers login credentials
- Active : It signifies the user has logged in at least once and is considered an active user of Facilitee
Please note that inviting users is currently only possible in the Facilitee App.
Property Categorization
Property Type
Create Property Type
Request Format
Route:
.../api/public/property-categorization/property
Body:
{
"name": "Test Property Type"
}
Response Format
Body:
{
"id": 111,
"name": "Test Property Type",
"isActive": true,
"canDelete": true,
"isUsed": false
}
POST
.../api/public/property-categorization/property
Creates a new Property Type entity.
Request parameters
Body:
Field | Type | |
---|---|---|
name | string | required |
Response values
Field | Type |
---|---|
id | integer |
name | string |
isActive | boolean |
canDelete | boolean |
isUsed | boolean |
Get Property Type details
Request Format
Route:
.../api/public/property-categorization/property/{propertyTypeId}
Example:
.../api/public/property-categorization/property/111
Response Format
Body:
{
"id": 111,
"name": "Test Property Type",
"isActive": true,
"canDelete": true,
"isUsed": false
}
GET
.../api/public/property-categorization/property/{propertyTypeId}
Returns a Property Type entity which corresponds to propertyTypeId
.
Request parameters
Route:
Field | Type | |
---|---|---|
propertyTypeId | integer | required |
Response values
Field | Type |
---|---|
id | integer |
name | string |
isActive | boolean |
canDelete | boolean |
isUsed | boolean |
Get a list of Property Types
Request Format
Route:
.../api/public/property-categorization/property
Example:
.../api/public/property-categorization/property
Response Format
[
{
"id": 111,
"name": "Test Property Type",
"isActive": true,
"canDelete": true,
"isUsed": false
}
]
GET
.../api/public/property-categorization/property
Returns a list of Property Type entities.
Request parameters
Response values
Field | Type |
---|---|
array | |
[index] | object |
[index].id | integer |
[index].name | string |
[index].isActive | boolean |
[index].canDelete | boolean |
[index].isUsed | boolean |
Update Property Type
Request Format
Route:
.../api/public/property-categorization/property/{propertyTypeId}
Example:
.../api/public/property-categorization/property/111
Body:
{
"name": "TEST",
}
Response Format
Body:
{
"id": 111,
"name": "TEST",
"isActive": true,
"canDelete": false,
"isUsed": true
}
PUT
.../api/public/property-categorization/property/{propertyTypeId}
Updates a Property Type entity with matching propertyTypeId
.
Request parameters
Route:
Field | Type | |
---|---|---|
propertyTypeId | integer | required |
Body:
Field | Type | |
---|---|---|
name | string | required |
Response values
Field | Type |
---|---|
id | integer |
name | string |
isActive | boolean |
canDelete | boolean |
isUsed | boolean |
Delete Property Type
Request Format
Route:
.../api/public/property-categorization/property/{propertyTypeId}
Example:
.../api/public/property-categorization/property/111
DELETE
.../api/public/property-categorization/property/{propertyTypeId}
Deletes a Property Type entity with matching propertyTypeId
.
Request parameters
Route:
Field | Type | |
---|---|---|
propertyTypeId | integer | required |
Property Unit Type
Create Property Unit Type
Request Format
Route:
.../api/public/property-categorization/unit
Example:
.../api/public/property-categorization/unit
Body:
{
"name": "Test Unit Type"
}
Response Format
Body:
{
"id": 230,
"name": "Test Unit Type",
"canDelete": true,
"isUsed": false
}
POST
.../api/public/property-categorization/unit
Creates a new Property Unit Type entity.
Request parameters
Body:
Field | Type | |
---|---|---|
name | string | required |
Response values
Field | Type |
---|---|
id | integer |
name | string |
canDelete | boolean |
isUsed | boolean |
Get Property Unit Type details
Request Format
Route:
.../api/public/property-categorization/unit/{propertyUnitTypeId}
Example:
.../api/public/property-categorization/unit/230
Response Format
Body:
{
"id": 230,
"name": "Test Unit Type",
"canDelete": true,
"isUsed": false
}
GET
.../api/public/property-categorization/unit/{propertyUnitTypeId}
Returns a Property Unit Type entity with a matching propertyUnitTypeId
.
Request parameters
Route:
Field | Type | |
---|---|---|
propertyUnitTypeId | integer | required |
Response values
Field | Type |
---|---|
id | integer |
name | string |
canDelete | boolean |
isUsed | boolean |
Get a list of Property Unit Types
Request Format
Route:
.../api/public/property-categorization/unit
Example:
.../api/public/property-categorization/unit
Response Format
Body:
[
{
"id": 230,
"name": "Test Unit Type",
"canDelete": true,
"isUsed": true
}
]
GET
.../api/public/property-categorization/unit
Returns a list of Property Unit Types
.
Request parameters
Route:
Field | Type | |
---|---|---|
propertyTypeId | integer | required |
Response values
Field | Type |
---|---|
array | |
[index] | object |
[index].id | integer |
[index].name | string |
[index].canDelete | boolean |
[index].isUsed | boolean |
Update Property Unit
Request Format
Route:
.../api/public/property-categorization/unit/{propertyUnitTypeId}
Example:
.../api/public/property-categorization/unit/230
Body:
{
"name": "Test Unit Type 23"
}
Response Format
Body:
{
"id": 230,
"name": "Test Unit Type 23",
"canDelete": false,
"isUsed": false
}
PUT
.../api/public/property-categorization/unit/{propertyUnitTypeId}
Updates a Property Unit Type that corresponds to propertyUnitTypeId
.
Request parameters
Route:
Field | Type | |
---|---|---|
propertyUnitTypeId | integer | required |
Body:
Field | Type | |
---|---|---|
name | string | required |
Response values
Field | Type |
---|---|
id | integer |
name | string |
canDelete | boolean |
isUsed | boolean |
Delete Property Unit Type
Request Format
Route:
.../api/public/property-categorization/unit/{propertyUnitTypeId}
Example:
.../api/public/property-categorization/unit/230
DELETE
.../api/public/property-categorization/unit/{propertyUnitTypeId}
Deletes a Property Unit Type that corresponds to propertyUnitTypeId
.
Request parameters
Route:
Field | Type | |
---|---|---|
propertyUnitTypeId | integer | required |
Property
Create Property
Request Format
Route:
.../api/public/Properties
Body:
{
"address":
{
"street": "Javastraat",
"streetNumber": "1",
"postCode": "1094 EM",
"city": "Amsterdam",
"country": "Netherlands",
"googlePlaceId": "ChIJyfEW6XIJxkcRyRX1yUIDLxg"
},
"name": "The Building",
"customPropertyId": "222",
"propertyTypeId": 10
}
Response Format
Body:
{
"id": 10,
"name": "The Building",
"customPropertyId": "222",
"address":
{
"id": 33,
"street": "Javastraat",
"streetNumber": "1",
"postCode": "1094 EM",
"city": "Amsterdam",
"country": "Netherlands",
"googlePlaceId": "ChIJyfEW6XIJxkcRyRX1yUIDLxg"
},
"isActive": true,
"propertyType":
{
"id": 3,
"name": "Apartment Building",
"isActive": true,
"canDelete": false,
"isUsed": true
}
}
POST
.../api/public/Properties
Creates a new Property entity.
Request parameters
Body:
Field | Type | |
---|---|---|
address | object | required |
address.street | string | required |
address.streetNumber | string | required |
address.postCode | string | required |
address.city | string | required |
address.country | string | required |
address.googlePlaceId | string | optional |
name | string | optional |
customPropertyId | string | optional |
propertyTypeId | int | optional |
Response values
Field | Type |
---|---|
id | integer |
name | string |
customPropertyId | string |
address | object |
address.id | int |
address.street | string |
address.streetNumber | string |
address.postCode | string |
address.city | string |
address.country | string |
address.googlePlaceId | string |
isActive | boolean |
propertyType | object |
propertyType.id | int |
propertyType.name | string |
propertyType.isActive | boolean |
propertyType.canDelete | boolean |
propertyType.isUsed | boolean |
Get Property details
Request Format
Route:
.../api/public/Properties/{propertyId}
Example:
.../api/public/Properties/10
Response Format
Body:
{
"id": 10,
"name": "The Building",
"customPropertyId": "222",
"address":
{
"id": 33,
"street": "Javastraat",
"streetNumber": "1",
"postCode": "1094 EM",
"city": "Amsterdam",
"country": "Netherlands",
"googlePlaceId": "ChIJyfEW6XIJxkcRyRX1yUIDLxg"
},
"isActive": true,
"propertyType":
{
"id": 33,
"name": "Apartment Building",
"isActive": true,
"canDelete": false,
"isUsed": true
}
}
GET
.../api/public/Properties/{propertyId}
Returns a Property entity with a matching propertyId
.
Request parameters
Route:
Field | Type | |
---|---|---|
propertyId | integer | required |
Response values
Field | Type |
---|---|
id | integer |
name | string |
customPropertyId | string |
address | object |
address.id | int |
address.street | string |
address.streetNumber | string |
address.postCode | string |
address.city | string |
address.country | string |
address.googlePlaceId | string |
isActive | boolean |
propertyType | object |
propertyType.id | int |
propertyType.name | string |
propertyType.isActive | boolean |
propertyType.canDelete | boolean |
propertyType.isUsed | boolean |
Get a list of Properties
Request Format
Route:
.../api/public/Properties?{queryParams}
Example :
.../api/public/Properties?pageNo=1&pageSize=15
Response Format
Body:
{
"numberOfPages": 2,
"totalItems": 30,
"pageSize": 15,
"currentPage": 1,
"items":
[
{
"id": 10,
"name": "The Building",
"customPropertyId": "222",
"address":
{
"id": 33,
"street": "Javastraat",
"streetNumber": "1",
"postCode": "1094 EM",
"city": "Amsterdam",
"country": "Netherlands",
"googlePlaceId": "ChIJyfEW6XIJxkcRyRX1yUIDLxg"
},
"isActive": true,
"propertyType":
{
"id": 3,
"name": "Apartment Building",
"isActive": true,
"canDelete": false,
"isUsed": true
}
}
]
}
GET
.../api/public/Properties?{queryParams}
Returns a list of Property entities.
Request parameters
Route:
Query parameters:
Field | Type | |
---|---|---|
pageNo | integer | optional |
pageSize | integer | optional |
searchParameter | string | optional |
The searchParameter
is used for querying the results. If a value for it is provided, only the results with fields that contain the value of the searchParameter
query parameter will be returned. The following fields are checked :
address.street
address.streetNumber
address.postCode
address.city
address.country
name
customPropertyId
propertyType.name
Response values
Field | Type |
---|---|
numberOfPages | integer |
totalItems | integer |
pageSize | integer |
currentPage | integer |
items | array |
items[index] | object |
items[index].id | integer |
items[index].name | string |
items[index].customPropertyId | string |
items[index].address | object |
items[index].address.id | int |
items[index].address.street | string |
items[index].address.streetNumber | string |
items[index].address.postCode | string |
items[index].address.city | string |
items[index].address.country | string |
items[index].address.googlePlaceId | string |
items[index].isActive | boolean |
items[index].propertyType | object |
items[index].propertyType.id | int |
items[index].propertyType.name | string |
items[index].propertyType.isActive | boolean |
items[index].propertyType.canDelete | boolean |
items[index].propertyType.isUsed | boolean |
Update Property details
Request Format
Route:
.../api/public/Properties/{propertyId}
Example:
.../api/public/Properties/10
Body:
{
"address":
{
"street": "Javastraat",
"streetNumber": "1",
"postCode": "1094 EM",
"city": "Amsterdam",
"country": "Netherlands",
"googlePlaceId": "ChIJyfEW6XIJxkcRyRX1yUIDLxg"
},
"name": "Dutch building",
"customPropertyId": "222",
"propertyTypeId": 3
}
Response Format
Body:
{
"id": 10,
"name": "Dutch building",
"customPropertyId": "222",
"address":
{
"id": 33,
"street": "Javastraat",
"streetNumber": "1",
"postCode": "1094 EM",
"city": "Amsterdam",
"country": "Netherlands",
"googlePlaceId": "ChIJyfEW6XIJxkcRyRX1yUIDLxg"
},
"isActive": true,
"propertyType":
{
"id": 3,
"name": "Apartment Building",
"isActive": true,
"canDelete": true,
"isUsed": true
}
}
PUT
.../api/public/Properties/{propertyId}
Updates a Property entity with a matching propertyId
.
Request parameters
Route:
Field | Type | |
---|---|---|
propertyId | integer | required |
Body:
Field | Type | |
---|---|---|
address | object | required |
address.street | string | required |
address.streetNumber | string | required |
address.postCode | string | required |
address.city | string | required |
address.country | string | required |
address.googlePlaceId | string | optional |
name | string | optional |
customPropertyId | string | optional |
propertyTypeId | int | optional |
Response values
Field | Type |
---|---|
id | integer |
name | string |
customPropertyId | string |
address | object |
address.id | int |
address.street | string |
address.streetNumber | string |
address.postCode | string |
address.city | string |
address.country | string |
address.googlePlaceId | string |
isActive | boolean |
propertyType | object |
propertyType.id | int |
propertyType.name | string |
propertyType.isActive | boolean |
propertyType.canDelete | boolean |
propertyType.isUsed | boolean |
Property Unit
Create Property Unit
Request Format
Route:
.../api/public/PropertyUnit/{propertyId}
Body:
{
"address":
{
"street": "Javastraat",
"streetNumber": "1",
"postCode": "1094 EM",
"city": "Amsterdam",
"country": "Netherlands",
"googlePlaceId": "ChIJyfEW6XIJxkcRyRX1yUIDLxg"
},
"floor": 1,
"contractStart": "01.01.2021",
"contractEnd": "01.01.2022",
"additionalNote": "At the end of the hallway, to the right.",
"isCommonSpace": true,
"customUnitId": "JavaStraat-1-200",
"managerId": 15,
"ownerId": 20,
"ownerCompanyId": 22,
"propertyUserIds":
[
30,35
],
"contactId": 35,
"propertyUnitTypeId": 10,
"hasPropertyAddress": false
}
Response Format
Body:
{
"id": 1489,
"address":
{
"id": 21048,
"street": "Javastraat",
"streetNumber": "1",
"postCode": "1094 EM",
"city": "Amsterdam",
"country": "Netherlands",
"googlePlaceId": "ChIJyfEW6XIJxkcRyRX1yUIDLxg"
},
"contractStart": "2021-01-01T00:00:00.000Z",
"contractEnd": "2022-01-01T00:00:00.000Z",
"expired": false,
"isCommonSpace": true,
"isActive": true,
"manager":
{
"id": 398,
"email": "manager@facilitee.com",
"name": "Manager",
"companyName": "Management company",
"countryCode": "93",
"phoneNumber": "1231232",
"additionalNote": "PM",
"isActive": true,
"userStatus": "Active"
},
"defaultIssueManager":
{
"id": 33,
"email": "manager2@facilitee.com",
"name": "Issue Manager",
"companyName": "Management company",
"countryCode": "93",
"phoneNumber": "2323322",
"additionalNote": "IM",
"isActive": true,
"userStatus": "Active"
},
"owner":
{
"id": 468,
"email": "owner.facilitee.com",
"name": "Property Owner",
"companyName": "The Company",
"countryCode": "38",
"phoneNumber": "991929314",
"authorizedAmount": 350.50,
"isActive": true,
"userStatus": "Active"
},
"ownerCompany":
{
"id": 22,
"name": "Test Company",
"invoiceEmail": "test-company@email.com",
"maxMandateAmount": 1000,
"attentionTo": "Sales team",
"countryCode": "+31",
"phoneNumber": "23545467"
},
"propertyUsers":
[
{
"id": 2566,
"email": "user1@facilitee.com",
"name": "The User 1",
"companyName": "Occupants",
"countryCode": "32",
"phoneNumber": "991929314",
"additionalNote": null,
"isContact": false,
"isActive": true
},
{
"id": 2567,
"email": "main-contact@facilitee.com",
"name": "Main Contact User",
"companyName": "Occupants",
"countryCode": "32",
"phoneNumber": "991929314",
"additionalNote": null,
"isContact": true,
"isActive": true
}
],
"attachments": null,
"customUnitId": "JavaStraat-1-200",
"additionalNote": "At the end of the hallway, to the right.",
"floor": 1,
"propertyUnitType": {
"id": 19,
"name": "Apartment",
"canDelete": true,
"isUsed": true
},
"property": {
"propertyType": {
"id": 3,
"name": "Apartment building",
"isActive": true,
"canDelete": true,
"isUsed": false
},
"name": "Dutch building",
"id": 1257
},
"hasPropertyAddress": false
}
POST
.../api/public/PropertyUnit/{propertyId}
Creates a new Property Unit entity.
Request parameters
Route:
Field | Type | |
---|---|---|
propertyId | integer | required |
Body:
Field | Type | |
---|---|---|
address | object | required when hasPropertyAddress is set to false , ignored otherwise |
address.street | string | required or optional |
address.streetNumber | string | required or optional |
address.postCode | string | required or optional |
address.city | string | required or optional |
address.country | string | required or optional |
address.googlePlaceId | string | optional |
floor | integer | optional |
contractStart | string(date-time) | optional |
contractEnd | string(date-time) | optional |
additionalNote | string | optional |
isCommonSpace | boolean | optional |
customUnitId | string | optional |
managerId | integer | optional |
ownerId | integer | required |
ownerCompanyId | integer | optional |
propertyUserIds | array | optional |
propertyUserIds[index] | integer | optional |
contactId | integer | optional |
propertyUnitTypeId | integer | optional |
hasPropertyAddress | boolean | optional |
propertyId
represents an identifier of the property entity, each property unit needs to be assigned to a property.
customUnitId
represents a custom identifier of your choosing, if left unspecifed a unique customUnitId
will be auto-generated.
propertyUnitTypeId
is an identifier of the property unit type entity used to categorize the property unit.
contactId
refers to the userId
of a property user who will be designated as the main contact for that property.
propertyUserIds
is an array containing userIds
of property users who will use the property.
hasPropertyAddress
is a flag determining whether the property unit will inherit the address of its property entity parent. If left unspecified it will fall back to true
.Any changes of address for that Property entity will be reflected to the contained Property Units that have this flag set to true
.
Response values
Field | Type |
---|---|
id | integer |
address | object |
address.id | int |
address.street | string |
address.streetNumber | string |
address.postCode | string |
address.city | string |
address.country | string |
address.googlePlaceId | string |
contractStart | string(date-time) |
contractEnd | string(date-time) |
expired | boolean |
isCommonSpace | boolean |
isActive | boolean |
manager | object |
manager.id | integer |
manager.email | string |
manager.name | string |
manager.companyName | string |
manager.countryCode | string |
manager.phoneNumber | string |
manager.additionalNote | string |
manager.isActive | boolean |
manager.userStatus | string |
defaultIssueManager | object |
defaultIssueManager.id | integer |
defaultIssueManager.email | string |
defaultIssueManager.name | string |
defaultIssueManager.companyName | string |
defaultIssueManager.countryCode | string |
defaultIssueManager.phoneNumber | string |
defaultIssueManager.additionalNote | string |
defaultIssueManager.isActive | boolean |
defaultIssueManager.userStatus | string |
owner | object |
owner.id | integer |
owner.email | string |
owner.name | string |
owner.companyName | string |
owner.countryCode | string |
owner.phoneNumber | string |
owner.authorizedAmount | number |
owner.isActive | boolean |
owner.userStatus | string |
ownerCompany | object |
ownerCompany.id | integer |
ownerCompany.name | string |
ownerCompany.invoiceEmail | string |
ownerCompany.maxMandateAmount | number |
ownerCompany.attentionTo | string |
ownerCompany.countryCode | string |
ownerCompany.phoneNumber | string |
propertyUsers | array |
propertyUsers[index] | object |
propertyUsers[index].id | integer |
propertyUsers[index].email | string |
propertyUsers[index].name | string |
propertyUsers[index].companyName | string |
propertyUsers[index].countryCode | string |
propertyUsers[index].phoneNumber | string |
propertyUsers[index].additionalNote | string |
propertyUsers[index].isContact | boolean |
propertyUsers[index].isActive | boolean |
attachments | array |
attachments[index] | object |
attachments[index].id | integer |
attachments[index].name | string |
attachments[index].url | string |
attachments[index].size | integer |
customUnitId | string |
additionalNote | string |
floor | integer |
propertyUnitType | object |
propertyUnitType.id | integer |
propertyUnitType.name | string |
propertyUnitType.canDelete | boolean |
propertyUnitType.isUsed | boolean |
property | object |
property.propertyType | object |
property.propertyType.id | integer |
property.propertyType.name | string |
property.propertyType.isActive | boolean |
property.propertyType.canDelete | boolean |
property.propertyType.isUsed | boolean |
property.name | string |
property.id | integer |
hasPropertyAddress | boolean |
Get Property Unit details
Request Format
Route:
.../api/public/PropertyUnit/{propertyUnitId}
Example:
.../api/public/PropertyUnit/1489
Response Format
Body:
{
"id": 1489,
"address":
{
"id": 21048,
"street": "Javastraat",
"streetNumber": "1",
"postCode": "1094 EM",
"city": "Amsterdam",
"country": "Netherlands",
"googlePlaceId": "ChIJyfEW6XIJxkcRyRX1yUIDLxg"
},
"contractStart": "2021-01-01T00:00:00.000Z",
"contractEnd": "2022-01-01T00:00:00.000Z",
"expired": false,
"isCommonSpace": true,
"isActive": true,
"manager":
{
"id": 398,
"email": "manager@facilitee.com",
"name": "Manager",
"companyName": "Management company",
"countryCode": "93",
"phoneNumber": "1231232",
"additionalNote": "PM",
"isActive": true,
"userStatus": "Active"
},
"defaultIssueManager":
{
"id": 33,
"email": "manager2@facilitee.com",
"name": "Issue Manager",
"companyName": "Management company",
"countryCode": "93",
"phoneNumber": "2323322",
"additionalNote": "IM",
"isActive": true,
"userStatus": "Active"
},
"owner":
{
"id": 468,
"email": "owner.facilitee.com",
"name": "Property Owner",
"companyName": "The Company",
"countryCode": "38",
"phoneNumber": "991929314",
"authorizedAmount": 350.50,
"isActive": true,
"userStatus": "Active"
},
"ownerCompany":
{
"id": 22,
"name": "Test Company",
"invoiceEmail": "test-company@email.com",
"maxMandateAmount": 1000,
"attentionTo": "Sales team",
"countryCode": "+31",
"phoneNumber": "23545467"
},
"propertyUsers":
[
{
"id": 2566,
"email": "user1@facilitee.com",
"name": "The User 1",
"companyName": "Occupants",
"countryCode": "32",
"phoneNumber": "991929314",
"additionalNote": null,
"isContact": false,
"isActive": true
},
{
"id": 2567,
"email": "main-contact@facilitee.com",
"name": "Main Contact User",
"companyName": "Occupants",
"countryCode": "32",
"phoneNumber": "991929314",
"additionalNote": null,
"isContact": true,
"isActive": true
}
],
"attachments": null,
"customUnitId": "JavaStraat-1-200",
"additionalNote": "At the end of the hallway, to the right.",
"floor": 1,
"propertyUnitType": {
"id": 19,
"name": "Apartment",
"canDelete": true,
"isUsed": true
},
"property": {
"propertyType": {
"id": 3,
"name": "Apartment building",
"isActive": true,
"canDelete": true,
"isUsed": false
},
"name": "Dutch building",
"id": 1257
},
"hasPropertyAddress": false
}
GET
.../api/public/PropertyUnit/{propertyUnitId}
Returns a Property Unit entity with a matching propertyUnitId
.
Request parameters
Route:
Field | Type | |
---|---|---|
propertyUnitId | integer | required |
Response values
Field | Type |
---|---|
id | integer |
address | object |
address.id | int |
address.street | string |
address.streetNumber | string |
address.postCode | string |
address.city | string |
address.country | string |
address.googlePlaceId | string |
contractStart | string(date-time) |
contractEnd | string(date-time) |
expired | boolean |
isCommonSpace | boolean |
isActive | boolean |
manager | object |
manager.id | integer |
manager.email | string |
manager.name | string |
manager.companyName | string |
manager.countryCode | string |
manager.phoneNumber | string |
manager.additionalNote | string |
manager.isActive | boolean |
manager.userStatus | string |
defaultIssueManager | object |
defaultIssueManager.id | integer |
defaultIssueManager.email | string |
defaultIssueManager.name | string |
defaultIssueManager.companyName | string |
defaultIssueManager.countryCode | string |
defaultIssueManager.phoneNumber | string |
defaultIssueManager.additionalNote | string |
defaultIssueManager.isActive | boolean |
defaultIssueManager.userStatus | string |
owner | object |
owner.id | integer |
owner.email | string |
owner.name | string |
owner.companyName | string |
owner.countryCode | string |
owner.phoneNumber | string |
owner.authorizedAmount | number |
owner.isActive | boolean |
owner.userStatus | string |
ownerCompany | object |
ownerCompany.id | integer |
ownerCompany.name | string |
ownerCompany.invoiceEmail | string |
ownerCompany.maxMandateAmount | number |
ownerCompany.attentionTo | string |
ownerCompany.countryCode | string |
ownerCompany.phoneNumber | string |
propertyUsers | array |
propertyUsers[index] | object |
propertyUsers[index].id | integer |
propertyUsers[index].email | string |
propertyUsers[index].name | string |
propertyUsers[index].companyName | string |
propertyUsers[index].countryCode | string |
propertyUsers[index].phoneNumber | string |
propertyUsers[index].additionalNote | string |
propertyUsers[index].isContact | boolean |
propertyUsers[index].isActive | boolean |
attachments | array |
attachments[index] | object |
attachments[index].id | integer |
attachments[index].name | string |
attachments[index].url | string |
attachments[index].size | integer |
customUnitId | string |
additionalNote | string |
floor | integer |
propertyUnitType | object |
propertyUnitType.id | integer |
propertyUnitType.name | string |
propertyUnitType.canDelete | boolean |
propertyUnitType.isUsed | boolean |
property | object |
property.propertyType | object |
property.propertyType.id | integer |
property.propertyType.name | string |
property.propertyType.isActive | boolean |
property.propertyType.canDelete | boolean |
property.propertyType.isUsed | boolean |
property.name | string |
property.id | integer |
hasPropertyAddress | boolean |
Get a list of Property Units
Request Format
Route:
.../api/public/PropertyUnit?{queryParams}
Example :
.../api/public/PropertyUnit?pageNo=1&pageSize=15&propertyId=10
Response Format
Body:
{
"numberOfPages": 10,
"totalItems": 10,
"pageSize": 1,
"currentPage": 1,
"items":
[
{
"id": 10,
"address":
{
"id": 21048,
"street": "Javastraat",
"streetNumber": "1",
"postCode": "1094 EM",
"city": "Amsterdam",
"country": "Netherlands",
"googlePlaceId": "ChIJyfEW6XIJxkcRyRX1yUIDLxg"
},
"propertyUnitType":
{
"id": 19,
"name": "Apartment",
"canDelete": true,
"isUsed": true
},
"isCommonSpace": false,
"isActive": true,
"customUnitId": "Custom ID",
"additionalNote": "string",
"floor": 0,
"mainContact":
{
"email": "user1@facilitee.com",
"name": "The User 1",
"companyName": "Occupants",
"countryCode": "32",
"phoneNumber": "991929314",
"additionalNote": null
},
"mainContactContractEnd": "2021-12-16T10:41:51.018Z",
"defaultIssueManagerName": "Issue Manager",
"defaultPropertyManagerName": "Property Manager",
"propertyManagerId": 15,
"ownerName": "Property Owner",
"ownerCompanyName": "Test Company"
}
]
}
GET
.../api/public/PropertyUnit?{queryParams}
Returns a list of Property Unit entities.
Request parameters
Route:
Query parameters:
Field | Type | |
---|---|---|
pageNo | integer | optional |
pageSize | integer | optional |
searchParameter | string | optional |
propertyId | integer | required |
The searchParameter
is used for querying the results. If a value for it is provided, only the results with fields that contain the value of the searchParameter
query parameter will be returned. The following fields are checked :
address.street
address.streetNumber
address.postCode
address.city
address.country
customUnitId
propertyUnitType.name
propertyId
refers to the ID of the Property entity that you want to see a list of Property Units for.
Response values
Field | Type |
---|---|
numberOfPages | integer |
totalItems | integer |
pageSize | integer |
currentPage | integer |
items | array |
items[index] | object |
items[index].id | integer |
items[index].address | object |
items[index].address.id | integer |
items[index].address.street | string |
items[index].address.streetNumber | string |
items[index].address.postCode | string |
items[index].address.city | string |
items[index].address.country | string |
items[index].address.googlePlaceId | string |
items[index].propertyUnitType | object |
items[index].propertyUnitType.id | integer |
items[index].propertyUnitType.name | string |
items[index].propertyUnitType.canDelete | string |
items[index].propertyUnitType.isUsed | string |
items[index].isCommonSpace | boolean |
items[index].isActive | boolean |
items[index].customUnitId | string |
items[index].additionalNote | string |
items[index].floor | integer |
items[index].mainContact | object |
items[index].mainContact.email | string |
items[index].mainContact.name | string |
items[index].mainContact.companyName | string |
items[index].mainContact.countryCode | string |
items[index].mainContact.phoneNumber | string |
items[index].mainContact.additionalNote | string |
items[index].mainContactContractEnd | string(date-time) |
items[index].defaultIssueManagerName | string |
items[index].defaultPropertyManagerName | string |
items[index].propertyManagerId | integer |
items[index].ownerName | string |
items[index].ownerCompanyName | string |
Update Property Unit details
Request Format
Route:
.../api/public/PropertyUnit/{propertyUnitId}
Example:
.../api/public/PropertyUnit/1489
Body:
{
"address":
{
"street": "Javastraat",
"streetNumber": "1",
"postCode": "1094 EM",
"city": "Amsterdam",
"country": "Netherlands",
"googlePlaceId": "ChIJyfEW6XIJxkcRyRX1yUIDLxg"
},
"floor": 1,
"contractStart": "01.01.2021",
"contractEnd": "01.01.2022",
"additionalNote": "At the end of the hallway, to the right.",
"isCommonSpace": true,
"customUnitId": "JavaStraat-1-200",
"managerId": 15,
"ownerId": 20,
"ownerCompanyId": 22,
"propertyUserIds":
[
30,35
],
"contactId": 35,
"propertyUnitTypeId": 10,
"hasPropertyAddress": false
}
Response Format
Body:
{
"id": 1489,
"address":
{
"id": 21048,
"street": "Javastraat",
"streetNumber": "1",
"postCode": "1094 EM",
"city": "Amsterdam",
"country": "Netherlands",
"googlePlaceId": "ChIJyfEW6XIJxkcRyRX1yUIDLxg"
},
"contractStart": "2021-01-01T00:00:00.000Z",
"contractEnd": "2022-01-01T00:00:00.000Z",
"expired": false,
"isCommonSpace": true,
"isActive": true,
"manager":
{
"id": 398,
"email": "manager@facilitee.com",
"name": "Manager",
"companyName": "Management company",
"countryCode": "93",
"phoneNumber": "1231232",
"additionalNote": "PM",
"isActive": true,
"userStatus": "Active"
},
"defaultIssueManager":
{
"id": 33,
"email": "manager2@facilitee.com",
"name": "Issue Manager",
"companyName": "Management company",
"countryCode": "93",
"phoneNumber": "2323322",
"additionalNote": "IM",
"isActive": true,
"userStatus": "Active"
},
"owner":
{
"id": 468,
"email": "owner.facilitee.com",
"name": "Property Owner",
"companyName": "The Company",
"countryCode": "38",
"phoneNumber": "991929314",
"authorizedAmount": 350.50,
"isActive": true,
"userStatus": "Active"
},
"ownerCompany":
{
"id": 22,
"name": "Test Company",
"invoiceEmail": "test-company@email.com",
"maxMandateAmount": 1000,
"attentionTo": "Sales team",
"countryCode": "+31",
"phoneNumber": "23545467"
},
"propertyUsers":
[
{
"id": 2566,
"email": "user1@facilitee.com",
"name": "The User 1",
"companyName": "Occupants",
"countryCode": "32",
"phoneNumber": "991929314",
"additionalNote": null,
"isContact": false,
"isActive": true
},
{
"id": 2567,
"email": "main-contact@facilitee.com",
"name": "Main Contact User",
"companyName": "Occupants",
"countryCode": "32",
"phoneNumber": "991929314",
"additionalNote": null,
"isContact": true,
"isActive": true
}
],
"attachments": null,
"customUnitId": "JavaStraat-1-200",
"additionalNote": "At the end of the hallway, to the right.",
"floor": 1,
"propertyUnitType": {
"id": 19,
"name": "Apartment",
"canDelete": true,
"isUsed": true
},
"property": {
"propertyType": {
"id": 3,
"name": "Apartment building",
"isActive": true,
"canDelete": true,
"isUsed": false
},
"name": "Dutch building",
"id": 1257
},
"hasPropertyAddress": false
}
PUT
.../api/public/PropertyUnit/{propertyUnitId}
Updates a Property Unit entity with a matching propertyUnitId
.
Request parameters
Route:
Field | Type | |
---|---|---|
propertyUnitId | integer | required |
Body:
Field | Type | |
---|---|---|
address | object | required when hasPropertyAddress is set to false , ignored otherwise |
address.street | string | required or optional |
address.streetNumber | string | required or optional |
address.postCode | string | required or optional |
address.city | string | required or optional |
address.country | string | required or optional |
address.googlePlaceId | string | optional |
floor | integer | optional |
contractStart | string(date-time) | optional |
contractEnd | string(date-time) | optional |
additionalNote | string | optional |
isCommonSpace | boolean | optional |
customUnitId | string | optional |
managerId | integer | optional |
ownerId | integer | required |
ownerCompanyId | integer | optional |
propertyUserIds | array | optional |
propertyUserIds[index] | integer | optional |
contactId | integer | optional |
propertyUnitTypeId | integer | optional |
hasPropertyAddress | boolean | optional |
contactId
refers to the userId
of a property user who will be designated as the main contact for that property.
propertyUserIds
is an array containing userIds
of property users who will use the property.
If managerId
is not provided, the Property Unit
will keep its current Property Manager
.
Response values
Field | Type |
---|---|
id | integer |
address | object |
address.id | int |
address.street | string |
address.streetNumber | string |
address.postCode | string |
address.city | string |
address.country | string |
address.googlePlaceId | string |
contractStart | string(date-time) |
contractEnd | string(date-time) |
expired | boolean |
isCommonSpace | boolean |
isActive | boolean |
manager | object |
manager.id | integer |
manager.email | string |
manager.name | string |
manager.companyName | string |
manager.countryCode | string |
manager.phoneNumber | string |
manager.additionalNote | string |
manager.isActive | boolean |
manager.userStatus | string |
defaultIssueManager | object |
defaultIssueManager.id | integer |
defaultIssueManager.email | string |
defaultIssueManager.name | string |
defaultIssueManager.companyName | string |
defaultIssueManager.countryCode | string |
defaultIssueManager.phoneNumber | string |
defaultIssueManager.additionalNote | string |
defaultIssueManager.isActive | boolean |
defaultIssueManager.userStatus | string |
owner | object |
owner.id | integer |
owner.email | string |
owner.name | string |
owner.companyName | string |
owner.countryCode | string |
owner.phoneNumber | string |
owner.authorizedAmount | number |
owner.isActive | boolean |
owner.userStatus | string |
ownerCompany | object |
ownerCompany.id | integer |
ownerCompany.name | string |
ownerCompany.invoiceEmail | string |
ownerCompany.maxMandateAmount | number |
ownerCompany.attentionTo | string |
ownerCompany.countryCode | string |
ownerCompany.phoneNumber | string |
propertyUsers | array |
propertyUsers[index] | object |
propertyUsers[index].id | integer |
propertyUsers[index].email | string |
propertyUsers[index].name | string |
propertyUsers[index].companyName | string |
propertyUsers[index].countryCode | string |
propertyUsers[index].phoneNumber | string |
propertyUsers[index].additionalNote | string |
propertyUsers[index].isContact | boolean |
propertyUsers[index].isActive | boolean |
attachments | array |
attachments[index] | object |
attachments[index].id | integer |
attachments[index].name | string |
attachments[index].url | string |
attachments[index].size | integer |
customUnitId | string |
additionalNote | string |
floor | integer |
propertyUnitType | object |
propertyUnitType.id | integer |
propertyUnitType.name | string |
propertyUnitType.canDelete | boolean |
propertyUnitType.isUsed | boolean |
property | object |
property.propertyType | object |
property.propertyType.id | integer |
property.propertyType.name | string |
property.propertyType.isActive | boolean |
property.propertyType.canDelete | boolean |
property.propertyType.isUsed | boolean |
property.name | string |
property.id | integer |
hasPropertyAddress | boolean |
Change Property Unit Owner
Request Format
Route:
.../api/public/PropertyUnit/change-property-owner/{propertyUnitId}?{queryParams}
Example:
.../api/public/PropertyUnit/change-property-owner/1489?newOwnerId=30
Response Format
Body:
{
"propertyUnitId": 1489,
"oldOwner":
{
"id": 468,
"email": "owner.facilitee.com",
"name": "Property Owner",
"companyName": "The Company",
"countryCode": "38",
"phoneNumber": "991929314",
"authorizedAmount": 350.50,
"isActive": true,
"userStatus": "string"
},
"newOwner":
{
"id": 30,
"email": "owner2.facilitee.com",
"name": "Property Owner 2",
"companyName": "The Company 2",
"countryCode": "31",
"phoneNumber": "991929314",
"authorizedAmount": 750.50,
"isActive": true,
"userStatus": "string"
}
}
PUT
.../api/public/PropertyUnit/change-property-owner/{propertyUnitId}{queryParams}
Replaces an existing owner of a property unit with a new owner. The property unit matches the propertyUnitId
and the new owner matches the newOwnerId
.
Request parameters
Route:
Field | Type | |
---|---|---|
propertyUnitId | integer | required |
Query parameters:
Field | Type | |
---|---|---|
newOwnerId | integer | required |
Response values
Field | Type |
---|---|
propertyUnitId | integer |
oldOwner | object |
oldOwner.id | integer |
oldOwner.email | string |
oldOwner.name | string |
oldOwner.companyName | string |
oldOwner.countryCode | string |
oldOwner.phoneNumber | string |
oldOwner.authorizedAmount | number |
oldOwner.isActive | boolean |
oldOwner.userStatus | string |
newOwner | object |
newOwner | object |
newOwner.id | integer |
newOwner.email | string |
newOwner.name | string |
newOwner.companyName | string |
newOwner.countryCode | string |
newOwner.phoneNumber | string |
newOwner.authorizedAmount | number |
newOwner.isActive | boolean |
newOwner.userStatus | string |
Assign Property User to a Property Unit
Request Format
Route:
.../api/public/PropertyUnit/assign-property-user/{propertyUnitId}
Example:
.../api/public/PropertyUnit/assign-property-user/1489
Body:
{
"propertyUserId": 35,
"isMainContact": true
}
Response Format
Body:
{
"propertyUnitId": 1489,
"propertyUsers":
[
{
"id": 35,
"email": "test-user@facilitee.com",
"name": "Test User",
"companyName": "Occupants Co.",
"countryCode": "31",
"phoneNumber": "234342342",
"additionalNote": "Note",
"isMainContact": true,
"contractStartDate": "2021-12-16T11:49:14.365Z",
"contractEndDate": "2022-12-16T11:49:14.365Z"
}
]
}
PUT
.../api/public/PropertyUnit/assign-property-user/1489
Assigns a User with a role Property User to a property unit. It is possible to define if this Property User is a main contact. The property unit matches the propertyUnitId
and the new Property User matches the propertyUserId
.
Request parameters
Route:
Field | Type | |
---|---|---|
propertyUnitId | integer | required |
Body:
Field | Type | |
---|---|---|
propertyUserId | integer | required |
isMainContact | boolean | optional |
Response values
Field | Type |
---|---|
propertyUnitId | integer |
propertyUsers | array |
propertyUsers[index] | object |
propertyUsers[index].id | integer |
propertyUsers[index].email | string |
propertyUsers[index].name | string |
propertyUsers[index].companyName | string |
propertyUsers[index].countryCode | string |
propertyUsers[index].phoneNumber | string |
propertyUsers[index].additionalNote | string |
propertyUsers[index].isMainContact | boolean |
propertyUsers[index].contractStartDate | string(date-time) |
propertyUsers[index].contractEndDate | string(date-time) |
Remove Property User from a Property Unit
Request Format
Route:
.../api/public/PropertyUnit/remove-property-user/{propertyUnitId}?{queryParams}
Example :
.../api/public/PropertyUnit/remove-property-user/1489?propertyUserId=35
Response Format
Body:
{
"propertyUnitId": 1489,
"propertyUser":
{
"id": 35,
"email": "test-user@facilitee.com",
"name": "Test User",
"companyName": "Occupants Co.",
"countryCode": "31",
"phoneNumber": "234342342",
"additionalNote": "Note",
"isMainContact": true,
"contractStartDate": "2021-12-16T11:49:14.365Z",
"contractEndDate": "2022-12-16T11:49:14.365Z"
}
}
PUT
.../api/public/PropertyUnit/remove-property-user/{propertyUnitId}?{queryParams}
Removes a User with a role Property User from a property unit. The property unit matches the propertyUnitId
and the Property User matches the propertyUserId
.
Request parameters
Route:
Field | Type | |
---|---|---|
propertyUnitId | integer | required |
Query parameters:
Field | Type | |
---|---|---|
propertyUserId | integer | required |
Response values
Field | Type |
---|---|
propertyUnitId | integer |
propertyUser | object |
propertyUser.id | integer |
propertyUser.email | string |
propertyUser.name | string |
propertyUser.companyName | string |
propertyUser.countryCode | string |
propertyUser.phoneNumber | string |
propertyUser.additionalNote | string |
propertyUser.isMainContact | boolean |
propertyUser.contractStartDate | string(date-time) |
propertyUser.contractEndDate | string(date-time) |
Service Provider
Create Service Provider
Request Format
Route:
.../api/public/service-providers
Body:
{
"email": "servicer@facilitee.com",
"name": "Service Provider",
"companyName": "The Fixer Uppers",
"countryCode": "32",
"phoneNumber": "2343454",
"additionalNote": "We can fix it.",
"externalReferenceId": "servicer-123",
"address":
{
"street": "Javastraat",
"streetNumber": "1",
"postCode": "1094 EM",
"city": "Amsterdam",
"country": "Netherlands",
"googlePlaceId": "ChIJyfEW6XIJxkcRyRX1yUIDLxg"
}
}
Response Format
Body:
{
"id": 330,
"email": "servicer@facilitee.com",
"name": "Service Provider",
"companyName": "The Fixer Uppers",
"countryCode": "32",
"phoneNumber": "2343454",
"additionalNote": "We can fix it.",
"status": "Uninvited",
"externalReferenceId": "servicer-123",
"tags":
[
{
"id": 2,
"name": "Plumbing"
}
],
"attachments":
[
{
"id": 10,
"name": "Document",
"url": "url",
"size": 5
}
],
"address":
{
"street": "Javastraat",
"streetNumber": "1",
"postCode": "1094 EM",
"city": "Amsterdam",
"country": "Netherlands",
"googlePlaceId": "ChIJyfEW6XIJxkcRyRX1yUIDLxg"
},
"averageRating": 0,
"numberOfRatings": 0
}
POST
.../api/public/service-providers
Creates a new User entity and assigns a role Service Provider to it.
Request parameters
Body:
Field | Type | |
---|---|---|
string | required | |
name | string | required |
companyName | string | optional |
countryCode | string | optional |
phoneNumber | string | optional |
additionalNote | string | optional |
externalReferenceId | string | optional |
address | object | optional |
address.street | string | optional |
address.streetNumber | string | optional |
address.postCode | string | optional |
address.city | string | optional |
address.country | string | optional |
address.googlePlaceId | string | optional |
countryCode
and phoneNumber
fields are used together by the application for the purpose of sending SMS messages. If either or both fields are left empty or they are not formatted correctly as shown in the example request, they will not be saved in the database.
Response values
Field | Type |
---|---|
id | integer |
string | |
name | string |
companyName | string |
countryCode | string |
phoneNumber | string |
additionalNote | string |
status | string |
externalReferenceId | string |
tags | array |
tags[index] | object |
tags[index].id | integer |
tags[index].name | string |
address | object |
address.street | string |
address.streetNumber | string |
address.postCode | string |
address.city | string |
address.country | string |
address.googlePlaceId | string |
averageRating | number |
numberOfRatings | integer |
status
shows the current status of the user. They are :
- Uninvited : The default status, it signifies the user was not invited to use Facilitee via email and has not received the login credentials
- Invited : It signifies the user was invited to use Facilitee via email that also contains his/hers login credentials
- Active : It signifies the user has logged in at least once and is considered an active user of Facilitee
Please note that inviting users is currently only possible in the Facilitee App.
Get Service Provider details
Request Format
Route:
.../api/public/service-providers/{serviceProviderId}
Example:
.../api/public/service-providers/330
Response Format
Body:
{
"id": 330,
"email": "servicer@facilitee.com",
"name": "Service Provider",
"companyName": "The Fixer Uppers",
"countryCode": "32",
"phoneNumber": "2343454",
"additionalNote": "We can fix it.",
"status": "Active",
"externalReferenceId": "servicer-123",
"tags":
[
{
"id": 2,
"name": "Plumbing"
}
],
"attachments":
[
{
"id": 10,
"name": "Document",
"url": "url",
"size": 5
}
],
"address":
{
"street": "Javastraat",
"streetNumber": "1",
"postCode": "1094 EM",
"city": "Amsterdam",
"country": "Netherlands",
"googlePlaceId": "ChIJyfEW6XIJxkcRyRX1yUIDLxg"
},
"averageRating": 0,
"numberOfRatings": 0
}
GET
.../api/public/service-providers/{serviceProviderId}
Returns a User entity which has a role Service Provider and corresponds to the serviceProviderId
.
Request parameters
Route:
Field | Type | |
---|---|---|
serviceProviderId | integer | required |
Response values
Field | Type |
---|---|
id | integer |
string | |
name | string |
companyName | string |
countryCode | string |
phoneNumber | string |
additionalNote | string |
status | string |
externalReferenceId | string |
tags | array |
tags[index] | object |
tags[index].id | integer |
tags[index].name | string |
address | object |
address.street | string |
address.streetNumber | string |
address.postCode | string |
address.city | string |
address.country | string |
address.googlePlaceId | string |
averageRating | number |
numberOfRatings | integer |
status
shows the current status of the user. They are :
- Uninvited : The default status, it signifies the user was not invited to use Facilitee via email and has not received the login credentials
- Invited : It signifies the user was invited to use Facilitee via email that also contains his/hers login credentials
- Active : It signifies the user has logged in at least once and is considered an active user of Facilitee
Please note that inviting users is currently only possible in the Facilitee App.
Get a list of Service Providers
Request Format
Route:
.../api/public/service-providers?{queryParams}
Example :
.../api/public/service-providers?pageNo=1&pageSize=15&searchParameter=Fixer
Response Format
Body:
{
"numberOfPages": 0,
"totalItems": 0,
"pageSize": 0,
"currentPage": 0,
"items":
[
{
"id": 330,
"email": "servicer@facilitee.com",
"name": "Service Provider",
"companyName": "The Fixer Uppers",
"countryCode": "32",
"phoneNumber": "2343454",
"additionalNote": "We can fix it.",
"userStatus": "Active",
"activeIssues": 2,
"externalReferenceId": "servicer-123",
"tags":
[
"Plumbing"
],
"address":
{
"street": "Javastraat",
"streetNumber": "1",
"postCode": "1094 EM",
"city": "Amsterdam",
"country": "Netherlands",
"googlePlaceId": "ChIJyfEW6XIJxkcRyRX1yUIDLxg"
},
"averageRating": 0,
"numberOfRatings": 0
}
]
}
GET
.../api/public/service-providers
Returns a list of User entities which have a role Service Provider.
Request parameters
Route:
Query parameters:
Field | Type | |
---|---|---|
pageNo | integer | optional |
pageSize | integer | optional |
searchParameter | string | optional |
The searchParameter
is used for querying the results. If a value for it is provided, only the results with fields that contain the value of the searchParameter
query parameter will be returned. The following fields are checked :
name
email
companyName
countryCode
phoneNumber
city
externalReferenceId
Response values
Field | Type |
---|---|
numberOfPages | integer |
totalItems | integer |
pageSize | integer |
currentPage | integer |
items | array |
items[index_A] | object |
items[index_A].id | integer |
items[index_A].email | string |
items[index_A].name | string |
items[index_A].companyName | string |
items[index_A].countryCode | string |
items[index_A].phoneNumber | string |
items[index_A].additionalNote | string |
items[index_A].userStatus | string |
items[index_A].activeIssues | integer |
items[index_A].externalReferenceId | string |
items[index_A].tags | array |
items[index_A].tags[index_B] | string |
items[index_A].address | object |
items[index_A].address.id | integer |
items[index_A].address.street | string |
items[index_A].address.streetNumber | string |
items[index_A].address.postCode | string |
items[index_A].address.city | string |
items[index_A].address.country | string |
items[index_A].address.googlePlaceId | string |
items[index_A].averageRating | number |
items[index_A].numberOfRatings | integer |
userStatus
shows the current status of the user. They are :
- Uninvited : The default status, it signifies the user was not invited to use Facilitee via email and has not received the login credentials
- Invited : It signifies the user was invited to use Facilitee via email that also contains his/hers login credentials
- Active : It signifies the user has logged in at least once and is considered an active user of Facilitee
Please note that inviting users is currently only possible in the Facilitee App.
Update Service Provider details
Request Format
Route:
.../api/public/service-providers/{serviceProviderId}
Example:
.../api/public/service-providers/32
Body:
{
"email": "servicer@facilitee.com",
"name": "Service Provider",
"companyName": "The Fixer Uppers",
"countryCode": "32",
"phoneNumber": "2343454",
"additionalNote": "We can fix it.",
"externalReferenceId": "servicer-123",
"tags":
[
2
],
"address":
{
"street": "Javastraat",
"streetNumber": "1",
"postCode": "1094 EM",
"city": "Amsterdam",
"country": "Netherlands",
"googlePlaceId": "ChIJyfEW6XIJxkcRyRX1yUIDLxg"
}
}
Response Format
Body:
{
"id": 330,
"email": "servicer@facilitee.com",
"name": "Service Provider",
"companyName": "The Fixer Uppers",
"countryCode": "32",
"phoneNumber": "2343454",
"additionalNote": "We can fix it.",
"status": "Active",
"externalReferenceId": "servicer-123",
"tags":
[
{
"id": 2,
"name": "Plumbing"
}
],
"attachments":
[
{
"id": 10,
"name": "Document",
"url": "url",
"size": 5
}
],
"address":
{
"street": "Javastraat",
"streetNumber": "1",
"postCode": "1094 EM",
"city": "Amsterdam",
"country": "Netherlands",
"googlePlaceId": "ChIJyfEW6XIJxkcRyRX1yUIDLxg"
},
"averageRating": 0,
"numberOfRatings": 0
}
PUT
.../api/public/service-providers/{serviceProviderId}
Updates a User entity with the assigned Service Provider role and a matching serviceProviderId
.
Request parameters
Route:
Field | Type | |
---|---|---|
serviceProviderId | integer | required |
Body:
Field | Type | |
---|---|---|
string | required | |
name | string | required |
companyName | string | optional |
countryCode | string | optional |
phoneNumber | string | optional |
additionalNote | string | optional |
externalReferenceId | string | optional |
address | object | optional |
address.street | string | optional |
address.streetNumber | string | optional |
address.postCode | string | optional |
address.city | string | optional |
address.country | string | optional |
address.googlePlaceId | string | optional |
countryCode
and phoneNumber
fields are used together by the application for the purpose of sending SMS messages. If either or both fields are left empty or they are not formatted correctly as shown in the example request, they will not be saved in the database.
Response values
Field | Type |
---|---|
id | integer |
string | |
name | string |
companyName | string |
countryCode | string |
phoneNumber | string |
additionalNote | string |
status | string |
externalReferenceId | string |
tags | array |
tags[index] | object |
tags[index].id | integer |
tags[index].name | string |
address | object |
address.street | string |
address.streetNumber | string |
address.postCode | string |
address.city | string |
address.country | string |
address.googlePlaceId | string |
averageRating | number |
numberOfRatings | integer |
status
shows the current status of the user. They are :
- Uninvited : The default status, it signifies the user was not invited to use Facilitee via email and has not received the login credentials
- Invited : It signifies the user was invited to use Facilitee via email that also contains his/hers login credentials
- Active : It signifies the user has logged in at least once and is considered an active user of Facilitee
Please note that inviting users is currently only possible in the Facilitee App.
Property User
Create Property User
Request Format
Route:
.../api/public/property-users
Body:
{
"email": "test-user@facilitee.com",
"name": "Test User",
"companyName": "Occupants Co.",
"countryCode": "25",
"phoneNumber": "354354353",
"additionalNote": "Note",
"externalReferenceId": "user-123",
"address":
{
"street": "Javastraat",
"streetNumber": "1",
"postCode": "1094 EM",
"city": "Amsterdam",
"country": "Netherlands",
"googlePlaceId": "ChIJyfEW6XIJxkcRyRX1yUIDLxg"
}
}
Response Format
Body:
{
"id": 110,
"email": "test-user@facilitee.com",
"name": "Test User",
"companyName": "Occupants Co.",
"countryCode": "25",
"phoneNumber": "354354353",
"additionalNote": "Note",
"status": "Uninvited",
"externalReferenceId": "user-123",
"address":
{
"id": 222,
"street": "Javastraat",
"streetNumber": "1",
"postCode": "1094 EM",
"city": "Amsterdam",
"country": "Netherlands",
"googlePlaceId": "ChIJyfEW6XIJxkcRyRX1yUIDLxg"
},
"propertyUnits":
[
{
"propertyUnitId": 35,
"customUnitId": "Custom Unit ID",
"additionalNote": "Note",
"floor": 0,
"isMainContact": true,
"contractStart": "2021-12-16T11:49:14.365Z",
"contractEnd": "2022-12-16T11:49:14.365Z",
"address":
{
"street": "Javastraat",
"streetNumber": "12",
"postCode": "1094 EM",
"city": "Amsterdam",
"country": "Netherlands",
"googlePlaceId": "ChIJyfEW6XIJxkcRyRX1yUIDLxg"
}
}
]
}
POST
.../api/public/property-users
Creates a new User entity and assigns a role Property User to it.
Request parameters
Body:
Field | Type | |
---|---|---|
string | required | |
name | string | required |
companyName | string | optional |
countryCode | string | optional |
phoneNumber | string | optional |
additionalNote | string | optional |
externalReferenceId | string | optional |
address | object | optional |
address.street | string | optional |
address.streetNumber | string | optional |
address.postCode | string | optional |
address.city | string | optional |
address.country | string | optional |
address.googlePlaceId | string | optional |
countryCode
and phoneNumber
fields are used together by the application for the purpose of sending SMS messages. If either or both fields are left empty or they are not formatted correctly as shown in the example request, they will not be saved in the database.
Response values
Field | Type |
---|---|
id | integer |
string | |
name | string |
companyName | string |
countryCode | string |
phoneNumber | string |
additionalNote | string |
status | string |
externalReferenceId | string |
address | object |
address.street | string |
address.streetNumber | string |
address.postCode | string |
address.city | string |
address.country | string |
address.googlePlaceId | string |
propertyUnits | array |
propertyUnits[index].propertyUnitId | int |
propertyUnits[index].customUnitId | string |
propertyUnits[index].additionalNote | string |
propertyUnits[index].floor | int |
propertyUnits[index].isMainContact | boolean |
propertyUnits[index].contractStart | string(date-time) |
propertyUnits[index].contractEnd | string(date-time) |
propertyUnits[index].address | object |
propertyUnits[index].address.street | string |
propertyUnits[index].address.streetNumber | string |
propertyUnits[index].address.postCode | string |
propertyUnits[index].address.city | string |
propertyUnits[index].address.country | string |
propertyUnits[index].address.googlePlaceId | string |
status
shows the current status of the user. They are :
- Uninvited : The default status, it signifies the user was not invited to use Facilitee via email and has not received the login credentials
- Invited : It signifies the user was invited to use Facilitee via email that also contains his/hers login credentials
- Active : It signifies the user has logged in at least once and is considered an active user of Facilitee
Please note that inviting users is currently only possible in the Facilitee App.
A Property User needs to be assigned as a main contact on a Property Unit in order to be eligible to get invited.
Get Property User details
Request Format
Route:
.../api/public/property-users/{propertyUserId}
Example:
.../api/public/property-users/22
Response Format
Body:
{
"id": 110,
"email": "test-user@facilitee.com",
"name": "Test User",
"companyName": "Occupants Co.",
"countryCode": "25",
"phoneNumber": "354354353",
"additionalNote": "Note",
"status": "Active",
"externalReferenceId": "user-123",
"address":
{
"id": 0,
"street": "string",
"streetNumber": "string",
"postCode": "string",
"city": "string",
"country": "string",
"googlePlaceId": "string"
},
"propertyUnits":
[
{
"propertyUnitId": 35,
"customUnitId": "Custom Unit ID",
"additionalNote": "Note",
"floor": 0,
"isMainContact": true,
"contractStart": "2021-12-16T11:49:14.365Z",
"contractEnd": "2022-12-16T11:49:14.365Z",
"address":
{
"street": "Javastraat",
"streetNumber": "12",
"postCode": "1094 EM",
"city": "Amsterdam",
"country": "Netherlands",
"googlePlaceId": "ChIJyfEW6XIJxkcRyRX1yUIDLxg"
}
}
]
}
GET
.../api/public/property-users/{propertyUserId}
Returns a User entity which has a role Property User and corresponds to the propertyUserId
.
Request parameters
Route:
Field | Type | |
---|---|---|
propertyUserId | integer | required |
Response values
Field | Type |
---|---|
id | integer |
string | |
name | string |
companyName | string |
countryCode | string |
phoneNumber | string |
additionalNote | string |
status | string |
externalReferenceId | string |
address | object |
address.street | string |
address.streetNumber | string |
address.postCode | string |
address.city | string |
address.country | string |
address.googlePlaceId | string |
propertyUnits | array |
propertyUnits[index].propertyUnitId | int |
propertyUnits[index].customUnitId | string |
propertyUnits[index].additionalNote | string |
propertyUnits[index].floor | int |
propertyUnits[index].isMainContact | boolean |
propertyUnits[index].contractStart | string(date-time) |
propertyUnits[index].contractEnd | string(date-time) |
propertyUnits[index].address | object |
propertyUnits[index].address.street | string |
propertyUnits[index].address.streetNumber | string |
propertyUnits[index].address.postCode | string |
propertyUnits[index].address.city | string |
propertyUnits[index].address.country | string |
propertyUnits[index].address.googlePlaceId | string |
status
shows the current status of the user. They are :
- Uninvited : The default status, it signifies the user was not invited to use Facilitee via email and has not received the login credentials
- Invited : It signifies the user was invited to use Facilitee via email that also contains his/hers login credentials
- Active : It signifies the user has logged in at least once and is considered an active user of Facilitee
Please note that inviting users is currently only possible in the Facilitee App.
A Property User needs to be assigned as a main contact on a Property Unit in order to be eligible to get invited.
Get Property User id by email
Request Format
Route:
.../api/public/property-users/get-by-email
Example :
.../api/public/property-users/get-by-email?email=email@example.com
Response Format
Body:
{
230
}
GET
.../api/public/property-users/get-by-email?email=email@example.com
Returns a User entity’s id which has a role Property user and corresponds to the email
.
Request parameters
Route:
Query parameters:
Field | Type | |
---|---|---|
string | required |
Response values
Field | Type |
---|---|
integer |
Get a list of Property Users
Request Format
Route:
.../api/public/property-users?{queryParams}
Example :
.../api/public/property-users?pageNo=1&pageSize=15&searchParameter=test
Response Format
Body:
{
"numberOfPages": 10,
"totalItems": 10,
"pageSize": 1,
"currentPage": 1,
"items":
[
{
"id": 110,
"email": "test-user@facilitee.com",
"name": "Test User",
"companyName": "Occupants Co.",
"countryCode": "25",
"phoneNumber": "354354353",
"additionalNote": "Note",
"status": "Active",
"externalReferenceId": "user-123",
"address":
{
"id": 0,
"street": "string",
"streetNumber": "string",
"postCode": "string",
"city": "string",
"country": "string",
"googlePlaceId": "string"
},
"propertyUnits":
[
{
"propertyUnitId": 35,
"customUnitId": "Custom Unit ID",
"additionalNote": "Note",
"floor": 0,
"isMainContact": true,
"contractStart": "2021-12-16T11:49:14.365Z",
"contractEnd": "2022-12-16T11:49:14.365Z",
"address":
{
"street": "Javastraat",
"streetNumber": "12",
"postCode": "1094 EM",
"city": "Amsterdam",
"country": "Netherlands",
"googlePlaceId": "ChIJyfEW6XIJxkcRyRX1yUIDLxg"
}
}
]
}
]
}
GET
.../api/public/property-users
Returns a list of User entities which have a role Property User.
Request parameters
Route:
Query parameters:
Field | Type | |
---|---|---|
pageNo | integer | optional |
pageSize | integer | optional |
searchParameter | string | optional |
The searchParameter
is used for querying the results. If a value for it is provided, only the results with fields that contain the value of the searchParameter
query parameter will be returned. The following fields are checked :
name
email
companyName
externalReferenceId
Response values
Field | Type |
---|---|
numberOfPages | integer |
totalItems | integer |
pageSize | integer |
currentPage | integer |
items | array |
items[index_A].id | integer |
items[index_A].email | string |
items[index_A].name | string |
items[index_A].companyName | string |
items[index_A].countryCode | string |
items[index_A].phoneNumber | string |
items[index_A].additionalNote | string |
items[index_A].status | string |
items[index_A].externalReferenceId | string |
items[index_A].address | object |
items[index_A].address.street | string |
items[index_A].address.streetNumber | string |
items[index_A].address.postCode | string |
items[index_A].address.city | string |
items[index_A].address.country | string |
items[index_A].address.googlePlaceId | string |
items[index_A].propertyUnits | array |
items[index_A].propertyUnits[index_B].propertyUnitId | int |
items[index_A].propertyUnits[index_B].customUnitId | string |
items[index_A].propertyUnits[index_B].additionalNote | string |
items[index_A].propertyUnits[index_B].floor | int |
items[index_A].propertyUnits[index_B].isMainContact | boolean |
items[index_A].propertyUnits[index_B].contractStart | string(date-time) |
items[index_A].propertyUnits[index_B].contractEnd | string(date-time) |
items[index_A].propertyUnits[index_B].address | object |
items[index_A].propertyUnits[index_B].address.street | string |
items[index_A].propertyUnits[index_B].address.streetNumber | string |
items[index_A].propertyUnits[index_B].address.postCode | string |
items[index_A].propertyUnits[index_B].address.city | string |
items[index_A].propertyUnits[index_B].address.country | string |
items[index_A].propertyUnits[index_B].address.googlePlaceId | string |
status
shows the current status of the user. They are :
- Uninvited : The default status, it signifies the user was not invited to use Facilitee via email and has not received the login credentials
- Invited : It signifies the user was invited to use Facilitee via email that also contains his/hers login credentials
- Active : It signifies the user has logged in at least once and is considered an active user of Facilitee
Please note that inviting users is currently only possible in the Facilitee App.
A Property User needs to be assigned as a main contact on a Property Unit in order to be eligible to get invited.
Update Property User details
Request Format
Route:
.../api/public/property-users/{propertyUserId}
Example:
.../api/public/property-users/110
Body:
{
"email": "test-user@facilitee.com",
"name": "Test User",
"companyName": "Occupants Co.",
"countryCode": "25",
"phoneNumber": "354354353",
"additionalNote": "Note",
"externalReferenceId": "user-123",
"address":
{
"street": "Javastraat",
"streetNumber": "1",
"postCode": "1094 EM",
"city": "Amsterdam",
"country": "Netherlands",
"googlePlaceId": "ChIJyfEW6XIJxkcRyRX1yUIDLxg"
}
}
Response Format
Body:
{
"id": 110,
"email": "test-user@facilitee.com",
"name": "Test User",
"companyName": "Occupants Co.",
"countryCode": "25",
"phoneNumber": "354354353",
"additionalNote": "Note",
"status": "Active",
"externalReferenceId": "user-123",
"address":
{
"id": 0,
"street": "string",
"streetNumber": "string",
"postCode": "string",
"city": "string",
"country": "string",
"googlePlaceId": "string"
},
"propertyUnits":
[
{
"propertyUnitId": 35,
"customUnitId": "Custom Unit ID",
"additionalNote": "Note",
"floor": 0,
"isMainContact": true,
"contractStart": "2021-12-16T11:49:14.365Z",
"contractEnd": "2022-12-16T11:49:14.365Z",
"address":
{
"street": "Javastraat",
"streetNumber": "12",
"postCode": "1094 EM",
"city": "Amsterdam",
"country": "Netherlands",
"googlePlaceId": "ChIJyfEW6XIJxkcRyRX1yUIDLxg"
}
}
]
}
PUT
.../api/public/property-users/{propertyUserId}
Updates a User entity with the assigned Property User role and a matching propertyUserId
.
Request parameters
Route:
Field | Type | |
---|---|---|
propertyUserId | integer | required |
Body:
Field | Type | |
---|---|---|
string | required | |
name | string | required |
companyName | string | optional |
countryCode | string | optional |
phoneNumber | string | optional |
additionalNote | string | optional |
externalReferenceId | string | optional |
address | object | optional |
address.street | string | optional |
address.streetNumber | string | optional |
address.postCode | string | optional |
address.city | string | optional |
address.country | string | optional |
address.googlePlaceId | string | optional |
countryCode
and phoneNumber
fields are used together by the application for the purpose of sending SMS messages. If either or both fields are left empty or they are not formatted correctly as shown in the example request, they will not be saved in the database.
Response values
Field | Type |
---|---|
id | integer |
string | |
name | string |
companyName | string |
countryCode | string |
phoneNumber | string |
additionalNote | string |
status | string |
externalReferenceId | string |
address | object |
address.street | string |
address.streetNumber | string |
address.postCode | string |
address.city | string |
address.country | string |
address.googlePlaceId | string |
propertyUnits | array |
propertyUnits[index].propertyUnitId | int |
propertyUnits[index].customUnitId | string |
propertyUnits[index].additionalNote | string |
propertyUnits[index].floor | int |
propertyUnits[index].isMainContact | boolean |
propertyUnits[index].contractStart | string(date-time) |
propertyUnits[index].contractEnd | string(date-time) |
propertyUnits[index].address | object |
propertyUnits[index].address.street | string |
propertyUnits[index].address.streetNumber | string |
propertyUnits[index].address.postCode | string |
propertyUnits[index].address.city | string |
propertyUnits[index].address.country | string |
propertyUnits[index].address.googlePlaceId | string |
status
shows the current status of the user. They are :
- Uninvited : The default status, it signifies the user was not invited to use Facilitee via email and has not received the login credentials
- Invited : It signifies the user was invited to use Facilitee via email that also contains his/hers login credentials
- Active : It signifies the user has logged in at least once and is considered an active user of Facilitee
Please note that inviting users is currently only possible in the Facilitee App.
A Property User needs to be assigned as a main contact on a Property Unit in order to be eligible to get invited.
Issue
Get a list of Issues within a specified period
Request Format
Route:
.../api/public/Issues?{queryParams}
Example :
.../api/public/Issues?pageNo=1&pageSize=15&fromDateTime=01.01.2020&toDateTime=01.01.2023
Response Format
Body:
{
"numberOfPages": 0,
"totalItems": 0,
"pageSize": 0,
"currentPage": 0,
"items":
[
{
"id": 77,
"name": "Broken pipe",
"description": "The pipe in the bathroom burst open.",
"category": "Plumbing",
"reporterId": 33,
"reporterName": "Property user",
"issueManagerName": "Jon Jonason",
"urgent": true,
"propertyUsersInvolved": true,
"status": "Closed",
"created": "2021-07-17T16:24:40.180Z",
"modified": "2021-07-18T17:20:20.181Z",
"responseTimeLeft": 0,
"userReferenceId": "AP-232",
"rejectionComment": "",
"propertyUnit":
{
"id": 66,
"address":
{
"street": "Javastraat",
"streetNumber": "1",
"postCode": "1094 EM",
"city": "Amsterdam",
"country": "Netherlands",
"googlePlaceId": "ChIJyfEW6XIJxkcRyRX1yUIDLxg"
},
"floor": 0,
"propertyUnitType":
{
"id": 20,
"name": "Apartment",
"canDelete": true,
"isUsed": true
},
"property":
{
"propertyType":
{
"id": 0,
"name": "Apartment Building",
"isActive": true,
"canDelete": false,
"isUsed": true
},
"name": "The Building",
"id": 55
}
},
"overallRating":
{
"rating": 5,
"comment": "Perfect Work",
"type": 2,
"user": "Property User",
"lastRatedDate": "2021-07-18T17:20:20.181Z"
}
}
]
}
GET
.../api/public/Issues
Returns a list of Issue entities.
Request parameters
Route:
Query parameters:
Field | Type | |
---|---|---|
pageNo | integer | optional |
pageSize | integer | optional |
fromDateTime | dateTime | required |
toDateTime | dateTime | required |
Response values
Field | Type |
---|---|
numberOfPages | integer |
totalItems | integer |
pageSize | integer |
currentPage | integer |
items | array |
items[index].id | int |
items[index].name | string |
items[index].description | string |
items[index].category | string |
items[index].reporterId | int |
items[index].reporterName | string |
items[index].issueManagerName | string |
items[index].urgent | boolean |
items[index].propertyUsersInvolved | boolean |
items[index].status | string |
items[index].created | string(date-time) |
items[index].modified | string(date-time) |
items[index].responseTimeLeft | integer |
items[index].userReferenceId | string |
items[index].rejectionComment | string |
items[index].propertyUnit | object |
items[index].propertyUnit.id | int |
items[index].propertyUnit.address | object |
items[index].propertyUnit.address.id | int |
items[index].propertyUnit.address.street | street |
items[index].propertyUnit.address.streetNumber | string |
items[index].propertyUnit.address.postCode | string |
items[index].propertyUnit.address.city | string |
items[index].propertyUnit.address.country | string |
items[index].propertyUnit.address.googlePlaceId | object |
items[index].propertyUnit.floor | int |
items[index].propertyUnit.propertyUnitType | object |
items[index].propertyUnit.propertyUnitType.id | int |
items[index].propertyUnit.propertyUnitType.name | string |
items[index].propertyUnit.propertyUnitType.canDelete | boolean |
items[index].propertyUnit.propertyUnitType.isUsed | boolean |
items[index].propertyUnit.property | object |
items[index].propertyUnit.property.propertyType | object |
items[index].propertyUnit.property.propertyType.id | int |
items[index].propertyUnit.property.propertyType.name | string |
items[index].propertyUnit.property.propertyType.isActive | boolean |
items[index].propertyUnit.property.propertyType.canDelete | boolean |
items[index].propertyUnit.property.propertyType.isUsed | boolean |
items[index].propertyUnit.property.name | string |
items[index].propertyUnit.property.id | int |
items[index].overallRating | object |
items[index].overallRating.rating | int |
items[index].overallRating.comment | string |
items[index].overallRating.type | int |
items[index].overallRating.user | string |
items[index].overallRating.lastRatedDate | string |
Notes
Possible statuses
- Future
- New
- MoreInfo
- MoreInfoOwner
- Rejected
- ToBeAssigned
- SubmittedByManager
- ServicerRejected
- Assigned
- MyTask
- ResolvedBeforeAssignmentWasAccepted
- InProgress
- Resolved
- Closed
- Quote
- NewQuotation
- QuotationAcceptedByManager
- QuotationSent
- QuotationAccepted
- QuotationRejected
Dates
The fromDateTime
and the toDateTime
must have a year > 1000.
All the DateTime values have the same format as follows yyyy-MM-ddTHH:mm:ss.fffZ
.
Errors
Problem Details
Response Format Example:
Body:
{
"Type": "/problems/entity-not-found",
"Title": "The requested entity was not found",
"Status": 404,
"Detail": "Property with id 22143 not found in database. Update failed.",
"Instance": "/api/public/properties/22143",
"Extensions": {}
}
Response values
Field | Type | Explanation |
---|---|---|
Type | string | Unique URI identifier of the error that occured |
Title | string | String containing human-readable text concerning the subject of the error that occured |
Status | integer | HTTP status code that corresponds to the error that occured |
Detail | string | Detailed error message explaining why the error occured and how you may fix it. |
Instance | string | URI specifying on what endpoint the error occured. |
Extensions | object | Additional error information that may or may not be included if the Detail field isn’t enough to convey the error information |
Type | Meaning |
---|---|
/problems/entity-not-found | The entity you requested could not be found |
/problems/user-already-exists | The user you tried to create conflicts with the information regarding an existing user |
/problems/file-upload | An error occured during fetching/uploading the file |
/problems/one-click-login | Error occured during one click login |
/problems/issue-status | Error occured when trying to change issue status |
/problems/forbidden-action | A forbidden action was requested |
/problems/auto-mapper | An error occured when trying to map information from/to request/response |
/problems/mailing | An error occured when trying to send an e-mail |
/problems/authorization-error | An authorization related error occured |
/problems/invalid-format | Invalid format was received |
/problems/invalid-credentials | Invalid credentials were received |
/problems/bad-request | Invalid request was received |
/problems/error | A fallback error type when an error isn’t covered by the types above |
HTTP Status Code | Meaning |
---|---|
400 | Bad Request |
401 | Unauthorized – The provided API key is wrong |
403 | Forbidden |
404 | Not Found |
405 | Method Not Allowed |
500 | Internal Server Error – There is problem with our server. |
503 | Service Unavailable |