Write Requests
Write requests are used to create or update data.
Overview
With Propexo, you can move data to and from your customers’ Property Management Systems (PMS). To understand how Propexo handles write requests, it is important to understand how we think about source-of-truth relationships.
Source of Truth
Propexo does not act as the source of truth. Instead, we rely on each PMS to maintain accurate records. This means that when you write data to Propexo’s API, we will pass the request along to the PMS. The data in Propexo’s caching layer will remain in it’s original form (prior to your update) until we receive the updated record back from the PMS during your next sync window. For our enterprise customers, we request an updated version of that record right away so that the cached data in Propexo is as fresh as possible. Since this is not enabled for all models across all PMSs, please ask us about this feature for your use case.
Generic Endpoints
As a unified API solution, Propexo offers generic endpoints for all write (POST
& PUT
) requests. This means that you can use the same endpoint, regardless of the Property Management System. However, different PMSs require or restrict different sets of data in the request payload which introduces an element of complexity in maintaining a single entry point. To address this, Propexo has developed some utilities (outlined below) to help with your development process.
How do generic endpoints work?
Generic endpoints are designed to be a single point of entry across all Property Management Systems. For example, if you want to update a value on the applicant
model, you would request a PUT
to /applicants/{id}
. Under the hood, Propexo will perform a lookup in our database to determine which PMS is associated with the passed id
, and we will automatically proxy the request to the appropriate PMS. We will then validate your request payload against that specific PMSs requirements for updating an applicant.
Generic Endpoint Utilities
-
Private Documentation — Propexo maintains a private documentation site (for customers only) that contains all of the information you need to know about the data models and endpoints for each PMS. This documentation is available to all of our customers and is updated regularly as we add new PMSs and features. These private docs address the following:
- Granular PMS functionality — Not all functionality is permitted by every PMS. For example, some PMSs allow you to update a
notes
field on the residents model, but some do not. This could impact your development plans, so it is important to know what is and is not possible with each PMS. Our private docs detail which fields are and are not available for each PMS. - High Level PMS functionality — In addition to granular functionality, we also provide a high level overview of the functionality available for each PMS. For example, some PMSs allow you to create (
POST
) a newunit
, while many do not. Propexo’s private docs will inform you when certain high level functionality is not permitted by a PMS API.
- Granular PMS functionality — Not all functionality is permitted by every PMS. For example, some PMSs allow you to update a
-
Validation Utility — There are cases where you may want to force a request payload that does not meet validation requirements for a certain PMS, but would be ok for another PMS. For example, our generic
PUT /residents
endpoint exposes anotes
field that is not available on all PMSs. If you have customers usingBUILDIUM
(who supportsnotes
onresidents
) and others usingRENT MANAGER
(who does not supportnotes
onresidents
), you can still use the generic endpoint and append?ignore_unknown_fields=true
to each request against the genericPUT /residents
endpoint. That way, you do not need to code against individual PMSs. Propexo will accept your request payload withnotes
and we will pass it through toBUILDIUM
and strip it out forRENT MANAGER
. If you do not append the?ignore_unknown_fields=true
query string param, you will receive a400
error response when attempting to update thenotes
field for aRENT MANAGER
customer.