Open API, powered by Buildium (v1)

Download OpenAPI specification:Download

Introduction

Welcome!

Welcome to Buildium’s API—a powerful, RESTful programming interface that lets you leverage valuable Buildium data.

Using HTTP requests, you can create integrations with applications that specialize in accounting, lead tracking, and more. Enjoy greater flexibility, transparency, and control over your business!

What's in this Guide?

This guide is full of simple, easy-to-follow instructions that’ll help you use Buildium’s API like a pro.

Topics include:

  • choosing the right resources for your use case
  • making HTTP requests to any resource
  • understanding data and response codes

Getting Started

Excited to get going? We’ll walk you through the setup process.

Note: To take advantage of the Buildium Open API you must have a Premium Subscription.

Account Configuration

Before you can use Buildium’s API, you’ll need to make some tweaks to your account settings.


Enabling the API

In order to start creating your keys and making requests, you’ll need to enable the API.

Tip: You’ll need an administrator user role with access to Application settings to set things up properly.


Let's Begin!

  1. Sign in to your Buildium account from your browser.

  2. Open the Settings menu and click Application settings.

  3. Under System preferences, click Api settings. A modal will appear.

  4. Click the Open API toggle to turn it on. Then click Save.

Congratulations! Your account's enabled. Now, you’re ready to start managing API keys.

If you are having issues enabling the API within your account you can submit a Support request for assistance.


API Keys

Account-level API keys authenticate every request and keep things secure.

API keys have two components: a “client ID” and a “secret”.

  • Client IDs are similar to usernames. They’re used to identify your Buildium account and are safe to share.
  • Secrets are similar to passwords. They must be kept confidential.

Whenever you make a request, you’ll need the API key’s client ID and secret. If you forget it, make a mistake, or try to use information that’s linked to a deleted key, the API will return a 401 response code.

Tip: We compiled a list of best practices that detail how securely store API keys. Give it a read!

Creating API Keys

Now that the Open APi is enabled, you’ll be able to create API keys. You’re almost there!

Tip: You’ll need an administrator user role to complete this step, too.


How to create an API key

  1. Sign in to your Buildium account from your browser.

  2. Open the Settings menu and click Developer Tools. The page will open automatically.

  3. Click the Create API Key button. A modal will appear.

  4. Enter a clear, memorable name and description for your API key. It’ll make it easier to locate the right key when you make a request. Once finished, click Next.

  5. Now, choose which pieces of Buildium data you want this API key to have access to by marking the corresponding checkboxes. Once finished, click Next.

  6. You successfully created an API key!

Important: This is your only chance to record the secret. Make sure it’s stored somewhere secure! If it’s forgotten, you’ll need to delete this key and start from scratch.



You have now successfully created an API key and have everything you need to send requests to the Buildium API!

Before moving on to making your first request please review Keeping your Keys Safe for an overview on securely storing your API keys.

If you are having issues creating API keys you can submit a Support request for assistance.

Keeping API Keys Safe

Based on their permissions, API keys could have full access to your account’s Buildium data. It’s important that you only grant access to trusted applications, securely record secrets, and consider a password manager to stay organized.

  • Avoid hard-coding client IDs and secrets inside source files.
  • Avoid storing client IDs and secrets in any files that may be committed to source control, particularly cloud-based source control platforms.
  • Apply restrictions to client IDs and secrets shared with your staff. You can restrict a key to particular Buildium entities or to read-only access (GET resources only).
  • Avoid sharing client IDs and secrets across public, insecure platforms.
  • Establish a process to regularly recreate your client IDs and secrets from your Buildium account.

How to Make a Request

You’ve done a great job setting up your account, Now, we’ll walk you through how to access your data. It’s very straightforward and should only take a few minutes!

Tip: Looking for the right HTTP client? If you’re just getting started, we recommend Postman.


Let's Get Started!

Step 1: Get Your API Key

If you haven't yet done so, obtain your API key client ID and secret from your Buildium account. Your API key is how the Buildium API authenticates requests and ensures only you can access your data.

See Getting Started for a deeper dive into enabling the API and creating keys.

Step 2: Install a HTTP client

The Buildium API supports any standard HTTP client. If you're looking for a user-friendly HTTP client application, we recommend Postman – it allows you to access the Buildium API without writing code. We’ll use Postman for our example below to demonstrate sending an API request.

Step 3: Make a Sample Request

Let's dive in and make a simple request to get all the Rental Properties in your account. This will confirm your connectivity to our platform and validate the keys you created on our website. Simply follow the instructions below.

  1. Open the Postman application.
  2. Open the verb menu and select GET.
  3. Enter the request endpoint in the field next to GET.
  1. To authenticate the request, enter your client ID and secret respectively in these request headers:
  • x-buildium-client-id
  • x-buildium-client-secret
  • Your full request should look similar to the image below.

  1. Review the parameters of your request on last time. Once finished, click Send.

  2. If successful, you should see a JSON response and a 200 HTTP status code. Voilà! You've connected to the Buildium API.


You now have the knowledge required to make requests for any of our resources.

If you've received an error response please review the JSON response message for a description of how to resolve the issue. You can also see more information about HTTP status codes in the Response Codes section. If you are still having trouble making a request after reviewing these sections please submit a Support request.


API Overview

The Buildium API is built upon standard REST conventions. It's designed to use consistent resource-oriented URLs, accept and return JSON-encoded messages, and use standard HTTP status codes and verbs.

Base URL

The base URL for production environment API requests is: https://api.buildium.com/

The base URL for sandbox environment API requests is: https://apisandbox.buildium.com/

In order to ensure all requests and responses are secure between the API consumer and Buildium servers, requests must be made using the https protocol. Any requests not made with the https protocol will be refused by the Buildium API platform.

Note: URL paths are case-sensitive to stay consistent with common REST standards. If your request doesn’t align with the documented URL path, you’ll receive a 404 response code reminding you of this constraint.

API Versioning

The Buildium API is version controlled. Versioning ensures backwards-incompatible changes to the API don’t impact any existing integrations.

Buildium uses only a major version nomenclature to manage changes. The current version of the Buildium API is version 1. By specifying a version in the resource request URL, you'll get expected responses regardless of future changes to the API. Here's an example of calling version 1 of the retrieve all rentals resource:

https://api.buildium.com/v1/rentals

Any request submitted without the version in the URL path will result in a 404 error response code.

Releasing Changes to the API

The Buildium API will continue to evolve to ensure it meets the needs of our customers. Changes will be defined as either backwards-compatible or backwards-incompatible.

We’ll always provide advance notice for all API releases–regardless of the type of modifications being made.

Backward-compatible Changes

Backward-compatible changes are modifications to the API that shouldn't impact existing integrations. They'll apply to the current version of the API. Simply put: you won’t need to change the version to consume new changes like these.

It's important as you develop against the Buildium API that you ensure these types of changes don't impact your integration. Here's are examples of backward-compatible modifications.

  • Adding new API resources and/or endpoints.
  • Adding new optional request parameters to existing API methods.
  • Adding new properties to existing API responses and non-required properties for request messages.
  • Changing property order in existing API responses.

All backward-compatible changes to the API will be documented in the Changelog.

Backwards-incompatible Changes

When backwards-incompatible changes to the API occur, a new version of the API will be released. You’ll need to update the URL path to consume resources under the new API version.

Backwards-incompatible changes include:

  • Removing a property from a request and/or response message.
  • Changing the name of a property in a message.
  • Adding a required parameter to a request message.
  • Changing existing enumeration values.

New versions of the API will have full reference documentation and an upgrade guide.


Authentication

The Buildium API uses API key’s client IDs and secrets to authenticate requests.

An API key client ID and secret must be passed in every request header using the following parameters:

  • x-buildium-client-id
  • x-buildium-client-secret

Failing to provide both of them in the request header will cause the API to return a 401 HTTP status code.

Note: We currently do not support enabling CORS to access the Buildium API due to the security and authentication mechanisms we have in place to protect your data. Buildium supports authentication through API keys passed in the headers of a request versus a more CORS supported authentication mechanism like oAuth. Our recommendation is to access the Buildium API using server to server communication versus browser to server communication for the safest implementation.

Rate Limiting

Rate limits help us ensure consistent and reliable performance for all users, even during peak loads. That’s why we limit clients to 10 concurrent requests per second.

If your request rate violates that limit, a response code of 429 is returned. Simply retry the request after a short interval (~200ms).

Request Size Limits

The query string for a request is limited to a maximum length of 4096 characters. If the query string exceeds this length, the API will return a 500 HTTP status code.

Bulk Request Options

All top-level API resources support bulk fetches. For instance, you can retrieve all Associations. These resources also allow for filtering criteria. Each resource has descriptions of the filter criteria available.

In addition to filtering, our API gives you the ability to control the returned data’s pagination and the sort order.

Pagination

Endpoints that return result sets allow for pagination using limit and offset request parameters to reduce the amount of data returned.

The limit request parameter will cap the number of results that come back in the response. If you don't specify a limit value, a default of 50 results are returned. The maximum limit value is 1000. If a limit value is specified greater than 1000, it will be overridden to the default to 1000.

The offset request parameter indicates the record position within the resultset to start at when returning the results. The offset is zero-based and is inclusive. If no offset value is submitted it will default to 0.

The total resultset count is returned in the HTTP Header X-Total-Count


Pagination Example

As an example, let's say we make a request to retrieve all rental properties with no paging parameters. Our response indicates in the X-Total-Count header that there are 150 total rental properties. We want to get only the last 50 results so we would submit a request with the offset set to 100 and the limit set to 50.

Note: The limit and offset parameter names are case-sensitive. If they aren't formatted correctly, the API will return a 404 HTTP status code.


Sorting Results

You can specify the sort order of returned data by assigning any property from the returned object to the orderby parameter in the querystring. For example:

orderby=LeaseType

By default, the sort is performed in ascending order. To specify sort order, use "asc" for ascending or "desc" for descending. For example:

orderby=LeaseType desc

Additionally, you can sort by multiple properties by comma separating the properties. For example:

orderby=Rent desc,City asc

Note: While the orderby parameter is case-sensitive, the properties specified in the orderby value aren't.

Response Codes

The Buildium API supports standard HTTP status codes.

Response Code Description
200 OK Everything worked as expected.
201 Created Everything worked as expected.
202 Accepted Everything worked as expected.
204 No Content Everything worked as expected.
400 Bad Request The request was unacceptable, often due to missing a required parameter.
401 Unauthorized The API client ID and secret weren’t provided or they’re no longer valid. Be sure that the client ID and secret combination are correct and they are still active.
403 Forbidden The API key doesn't have permission to perform the request. This could be due to authorization for the given endpoint or an inability to access given entities within the platform (e.g. properties).
404 Not Found The requested resource doesn't exist.
409 Conflict The request cannot be completed due to an issue that cannot be resolved by changing the input of the request. Resolve the error before trying again.
415 Unsupported Media Type Ensure you have the appropriate content-type header value set on your request. Each resource is documented with media type(s) that are accepted.
429 Too Many Requests Too many requests against the API too quickly. We recommend an exponential backoff of your requests. See more information in Rate Limiting.
500 and above - Server Errors Something went wrong on Buildium's end. Review the JSON response message for more details about the error. These are rare. Excludes 503 responses.
503 Service Unavailable A service you are trying to use is currently either down for maintenance or not functioning correctly, and your request will need to be resubmitted when functionality is restored.

Support

If you are unable to resolve your issue after reviewing the API documentation our support team can assist you. Please fill out the form below and let us know how we can help.

Select your issue


Please include the following information when applicable to your issue:
  • Date & time of API request
  • Full URL used in making the request along with any querystring and/or post parameters
  • HTTP status code (e.g. 500)
  • Response body


API Sandbox

To assist your development efforts Buildium offers a free Sandbox account with your Premium subscription. A sandbox is a development environment that is separate from your production account. Sandboxes duplicate much of the same property management functionality available in your production account and all of the resources available in the Open API. The benefit of the sandbox is that it's isolated from your primary account. This separation ensures that API operations you perform against the sandbox account during development of your integration do not corrupt the data in your production account.

Mock Data

To help you hit the ground running with your development efforts sandbox accounts are provisioned with realistic sample data. This ensures you have data to work with immediately and won’t have to spend time doing data entry. You always have the ability to add more data through the application and the Buildium Open API.

Getting Started

To create a sandbox account follow the steps below.

  1. Sign in to your Buildium account from your browser.

  2. Open the Settings menu and click Developer Tools.

  3. Click the API Sandbox tab.

  4. Click the Create sandbox button. A modal will appear.

  5. Enter the name and email of the person that will be administering the sandbox account. When the sandbox creation process has completed an email will be sent to the email address submitted. This email will provide a link to the sandbox. After all fields have been filled out, click Create.

  6. The provisioning process will now execute. It can take 2 - 3 minutes for the sandbox to be created. The page will automatically refresh with the provisioning status. When it completes you will see the sandbox status is Active along with details about the sandbox including the URL to the account. You can browse back to this page at any time if you need to look up the URL to the sandbox.


  7. Once the sandbox has been created an email will be sent to the address you entered in the "Create sandbox" modal. To complete the activation of the sandbox open the email and click on the "Activate Account". This will allow you to create a password for your account and log into the sandbox.

  8. You are now ready to begin making API requests to your sandbox! Please see Accessing the Sandbox for next steps on how to start making API requests.

Accessing the Sandbox

Once your sandbox is created you can begin to access it through the Open API. Requests are made following all the same versioning, authentication, messages, etc that are used in the production environment with the exception of the base URL. The base URL for the sandbox is:
https://apisandbox.buildium.com/

You can read more about connecting to the API in the API Overview section.

Once you have completed your development and testing against the sandbox and you're ready to start using the integration in your production account simply change the base URL in your integration to the production API URL.

Sandbox Account Restrictions

The core Buildium functionality is available in the sandbox environment, however there are some restrictions which include:

  1. Add-on services, ePay and other paid services will not be available.
  2. A maximum of 1500 units (rentals and associations) can be created within the sandbox.
  3. A maximum of 50 rental tenants per lease can be created within the sandbox.
  4. Communication emails will not be sent out. This protects you from inadvertently sending emails to your test accounts.

FAQs

How many sandboxes can I create?

The Premium subscription plan allows you to create one sandbox.

Can I use my production keys to access my sandbox?

No. To ensure you are accessing the correct environment the API keys are restricted to the environment they were created in.

What is the throttle limit on requests to the sandbox?

A sandbox account is limited to 10 concurrent requests per second.

Can I reset sandbox data to its original state?

Resetting sandbox data is not supported at this time.

Can I delete a sandbox?

You cannot delete a sandbox at this time. Closing your account or changing subscription plans will delete your sandbox and it will be no longer accessible.

Can I delete the sandbox data?

Yes, you can manually delete records by logging into the web application.

Why do I see an error when I try to access add-on functionality like ePayments?

Certain functionality is restricted in the sandbox environment. Please see Sandbox Account Restrictions for an overview of these limitations.

Webhooks

Buildium webhooks allow your remote applications to listen for events within your Buildium account and react to those events in near real-time!

To implement webhooks you need to register a callback URL to your web server for the events you want to capture. Then Builidum will send notifications to that URL when the events occur making syncing data and automating workflows a breeze.

As an example, let’s say you’ve registered a callback to your application to receive “Lease Created” events. When a user within your Buildium account creates a new lease then a webhook callback from Buildium informs your app about this new lease. After your application receives the event it can then execute actions such as creating tasks to clean the apartment and change the locks.

Another advantage of using webhooks is that they allow your applications to respond to events in Buildium in near real time. Having events pushed to your platform as they happen is like calling the API every second to ask “Was a lease created”?

The diagram below illustrates how your application would integrate with Buildium webhooks.

Webhook Events Overview

Event notifications are Buildium’s way of letting you know when something interesting happens in your account. When a subscribed event occurs a new Event object is created and sent to your endpoint as part of a HTTPS POST request.

Event objects are simple data structures with fields that describe the entity and the event that occurred. The object will have the following fields:

Field Description
EventName This value indicates the entity and operation that occurred.
EventDateTime The date and time that the operation occurred. The value is in UTC and formatted as YYYY-MM-DDTHH:MM:SSSSSSSZ.
AccountId Your Buildium account identifier. This is used to distinguish between accounts if you have configured webhook callbacks across multiple Buildium accounts to the same endpoint.
Entity Identifier(s) These field(s) constitute the identifier of the entity. Use these values to query the Buildium Open API for the full entity data.

Here is an example of an Event object, serialized as JSON, when a rental property has been updated:

{
"EventName": "Rental.Updated",
"EventDateTime": "2022-05-10T15:12:46.2317653Z",
"AccountId": 123456,
"PropertyId": 23
}

Note that the EventName is a constant value that can be used to determine the entity and the operation that triggered the event. This value is concatenation of the entity name and operation separated by a period. For example, if a rental property was updated the EventName value would be: Rental.Updated.

The event identifiers included in the Event object will provide the data necessary to query the Buildium Open API and retrieve the full entity.

The Webhook Events section below lists all of the available entities and their corresponding events that can be subscribed to. The grid also includes the EventName constants and sample JSON for each entity.

Receiving Callbacks

To take advantage of webhooks you’ll need to establish an endpoint that our Buildium servers can make a request to whenever the data you’re interested in changes. You can use one endpoint to handle several different event types at once or set up individual endpoints for specific events.

Your endpoint must be implemented to support the following:

  • HTTPS protocol
  • Be publicly available
  • POST requests that consist of a JSON formatted payload sent as raw body type and a Content-Type of application/json.

When receiving webhook callbacks it is important that your endpoint responds promptly. If Buildium doesn’t receive a response within 10 seconds the callback is considered unsuccessful. As a best practice your endpoint should return a response prior to executing any complex logic to ensure a response within the 10 second duration. Any HTTP response code from your endpoint other than a 2XX is also considered an unsuccessful request. Buildium will retry unsuccessful events on the following intervals:

  1. 1 minute
  2. 10 minutes
  3. 1 hour

If a callback for an event is unsuccessful after all three attempts Buildium will stop attempting to send the event message.

The webhook subscription will be suspended if there 20 consecutive failed attempts to send events to the URL. Upon suspension an email will be sent notifying you that the subscription has been paused. You can troubleshoot issues and enable the webhook by browsing to Settings > Developer Tools > Webhooks. The email is sent to the contact email address that is set when the webhook subscription is created or updated.

As you develop the callback endpoint you can use the JSON examples found in the webhook event grid to generate the mock payloads for testing. Once you are able to successfully receive the event callback you should implement a signature check to ensure the authenticity of of the request.

Signature Checks

It is strongly recommended that you validate webhook event signatures in your application to ensure that the request came from Buildium and not a bad actor attempting to impersonate Buildium, alter event messages after they have been sent, or perform replay attacks. While validating the request isn’t required to read the payload, it is strongly recommended to ensure the authenticity of the request and ensure the overall security and data integrity of your application.

All webhook callback requests include the signature and a timestamp in the HTTP headers.

HTTP Header Description
buildium-webhook-timestamp A UNIX timestamp of when the message was sent. NOTE: This is not the time the event occurred within the system, but rather the time the event was sent.
buildium-webhook-signature A computed signature using the secret key that can be used to verify that the request came from Buildium. The secret key is generated when the webhook subscription is created.

The signature is a concatenation of the timestamp value and the event message hashed by a secret key. The secret key is generated for you when creating webhook subscriptions. It is important to keep this key stored safely as you would with any other credentials.

The following steps outline how to use the secret key, the event message and the HTTP header values to verify the request:

  1. Concatenate the value of the buildium-webhook-timestamp header with the body of the event with a period character in between the two values. The body of the event must have all newlines removed and not contain spaces after the colon between property names and values. For example
    {
      "EventName": "Rental.Created",
      "EventDateTime": "2022-12-22T16:18:20.876772Z",
      "AccountId": 123456,
      "PropertyId": 78910
    }
    
    would be passed into your verification method as:
    {"EventName":"Rental.Created","EventDateTime":"2022-12-22T16:18:20.876772Z","AccountId":123456,"PropertyId":78910}
    
  2. Hash the concatenated string using the HMACSHA256 algorithm setting the webhook secret key as the algorithm key.
  3. Convert the resulting hash bytes to a base64 string.
  4. Compare the base64 string to the value of the buildium-webhook-signature header. If the values match with a case sensitive comparison, the message has been validated to have come from Buildium.

Sample Validation Code (C#)

private static bool ClientSideValidate(
string eventNotificationMessage, 
string timestamp, 
string signature)
{
   var signedPayload = $"{timestamp}.{eventNotificationMessage}";
   var hasher = new HMACSHA256(Encoding.UTF8.GetBytes(m_secretKey));
   var computedHash = hasher.ComputeHash(Encoding.UTF8.GetBytes(signedPayload));
   var computedHashString = Convert.ToBase64String(computedHash);

   return computedHashString.Equals(signature);
}

Once you’ve successfully validated the message you can begin to process it with confidence it came from the Buildium platform and has not been altered after it has been sent.

To test your validation logic you can generate requests to your URL with headers you generate using the similar logic you created for validating the values.

Webhook Creation

Once your endpoint is ready to be tested end to end you will need to create a webhook subscription in your Buildium account. The subscription can be created by browsing to Settings > Developer Tools > Webhooks and then clicking the “Add webhook” button.

Once you’ve configured a new webhook, events will be sent to your endpoint as they are triggered within the account. So all you have to do is execute the action you want to test. You can expect webhook callbacks to your endpoint to fire within a few seconds to a few minutes from the event occurring in the Buildium platform. To determine if the events have been sent and/or see the resulting response from your platform you can view the webhook subscription event history page.

We strongly suggest you test your webhooks in your Buildium API sandbox account to ensure you don’t corrupt data in your production account. Once the integration is fully tested you can register the webhook in your production account.

NOTE: Due to our current security policies we do not support webhook callbacks to the Ngrok platform. We understand Ngrok can be useful for testing local webhook development and we hope to be able to support that platform safely and securely soon. In the meantime, we recommend using other websites and tools that can capture the webhook event HTTP request payload and headers and replay it manually on your local machine with a tool such as Postman.

Best Practices

  • Be sure to validate the signature on all incoming requests and consider rolling your secret keys on a regular basis. A new secret key can be generated by clicking the "Generate key" link next to the current secret key value when updating the webhook subscription.
  • Your webhook endpoints should be configured to receive only the types of events required by your integration. Listening for extra events (or all events) will put undue strain on your server and is not recommended.
  • Be sure your platform can handle duplicate events correctly. We do our best to ensure an event is only sent one time, but due to the distributed nature of the process we can not make any guarantees. We advise you to guard against duplicated event receipts by making your event processing idempotent. One way of doing this is logging the events you’ve processed, and then not processing already-logged events.
  • Buildium does not guarantee delivery of events in the order in which they are generated within the platform. For example, creating a lease might generate the following events - Lease.Created, Tenant.Created. Your endpoint shouldn’t expect delivery of these events in this order and should handle this accordingly. You can use the API to fetch any missing data. For example, you can fetch the lease resource using the information from tenant if you happen to receive that event first.

Webhook Events

The grid below details the available webhooks events along with their EventName and JSON message schema.

Applicants Applicant.Created
Applicant.Updated
Applicant.Deleted
{
  EventName: [string],
  EventDateTime: [datetime],
  AccountId: [integer],
  ApplicantId: [integer]
}
Applicant Applications ApplicantApplication.Created
ApplicantApplication.Updated
{
  EventName: [string],
  EventDateTime: [datetime],
  AccountId: [integer],
  ApplicantId: [integer]
  ApplicationId: [integer]
}
Association Board Members AssociationBoardMember.Created
AssociationBoardMember.Updated
AssociationBoardMember.Deleted
{
  EventName: [string],
  EventDateTime: [datetime],
  AccountId: [integer],
  BoardMemberId: [integer]
}
Associations Association.Created
Association.Updated
Association.Deleted
{
  EventName: [string],
  EventDateTime: [datetime],
  AccountId: [integer],
  PropertyId: [integer]
}
Association Meter Readings Association.MeterReading.Created
Association.MeterReading.Updated
Association.MeterReading.Deleted
{
  EventName: [string],
  EventDateTime: [datetime],
  AccountId: [integer],
  PropertyId: [integer],
  ReadingDate: [date],
  MeterType: [string]
}
Association Owners AssociationOwner.Created
AssociationOwner.Updated
AssociationOwner.Deleted
{
  EventName: [string],
  EventDateTime: [datetime],
  AccountId: [integer],
  OwnerId: [integer]
}
Association Ownership Account Transactions OwnershipAccountTransaction.Created
OwnershipAccountTransaction.Updated
OwnershipAccountTransaction.Deleted
{
  EventName: [string],
  EventDateTime: [datetime],
  AccountId: [integer],
  TransactionId: [integer],
  TransactionType: [string]
}
Association Ownership Accounts OwnershipAccount.Created
OwnershipAccount.Updated
OwnershipAccount.Deleted
{
  EventName: [string],
  EventDateTime: [datetime],
  AccountId: [integer],
  OwnershipAccountId: [integer]
}
Association Tenants AssociationTenant.Created
AssociationTenant.Updated
AssociationTenant.Deleted
{
  EventName: [string],
  EventDateTime: [datetime],
  AccountId: [integer],
  TenantId: [integer]
}
Association Units AssociationUnit.Created
AssociationUnit.Updated
AssociationUnit.Deleted
{
  EventName: [string],
  EventDateTime: [datetime],
  AccountId: [integer],
  UnitId: [integer]
}
Bank Accounts BankAccount.Created
BankAccount.Updated
BankAccount.Deleted
{
  EventName: [string],
  EventDateTime: [datetime],
  AccountId: [integer],
  BankAccountId: [integer]
}
Bank Account Transactions BankAccount.Transaction.Created
BankAccount.Transaction.Updated
BankAccount.Transaction.Deleted
{
  EventName: [string],
  EventDateTime: [datetime],
  AccountId: [integer],
  BankAccountId: [integer],
  TransactionId: [integer],
  TransactionType: [string]
}
Bills Bill.Created
Bill.Updated
Bill.Deleted
{
  EventName: [string],
  EventDateTime: [datetime],
  AccountId: [integer],
  BillId: [integer]
}
Bill Payments Bill.Payment.Created
Bill.Payment.Updated
Bill.Payment.Deleted
{
  EventName: [string],
  EventDateTime: [datetime],
  AccountId: [integer],
  PaymentId: [integer]
  BillIds: [
   [integer]
  ]
}
Budgets Budget.Created
Budget.Updated
Budget.Deleted
{
  EventName: [string],
  EventDateTime: [datetime],
  AccountId: [integer],
  BudgetId: [integer]
}
General Ledger Accounts GLAccount.Created
GLAccount.Updated
GLAccount.Deleted
{
  EventName: [string],
  EventDateTime: [datetime],
  AccountId: [integer],
  GLAccountId: [integer]
}
Integrations Installation.Created
Installation.Updated
Installation.Deleted
{
  EventName: [string],
  EventDateTime: [datetime],
  AccountId: [integer],
  IntegrationName: [string]
}
Lease Move Outs Lease.MoveOut.Created {
  EventName: [string],
  EventDateTime: [datetime],
  AccountId: [integer],
  LeaseId: [integer],
  TenantId: [integer]
}
Lease Tenants LeaseTenant.Created
LeaseTenant.Updated
LeaseTenant.Deleted
{
  EventName: [string],
  EventDateTime: [datetime],
  AccountId: [integer],
  TenantId: [integer]
}
Lease Transactions LeaseTransaction.Created
LeaseTransaction.Updated
LeaseTransaction.Deleted
{
  EventName: [string],
  EventDateTime: [datetime],
  AccountId: [integer],
  TransactionId: [integer],
  TransactionType: [string]
}
Leases Lease.Created
Lease.Updated
Lease.Deleted
{
  EventName: [string],
  EventDateTime: [datetime],
  AccountId: [integer],
  LeaseId: [integer]
}
Listings Listing.Created
Listing.Updated
Listing.Deleted
{
  EventName: [string],
  EventDateTime: [datetime],
  AccountId: [integer],
  UnitId: [integer]
}
Phone Logs PhoneLog.Created
PhoneLog.Updated
PhoneLog.Deleted
{
  EventName: [string],
  EventDateTime: [datetime],
  AccountId: [integer],
  PhoneLogId: [integer]
}
Rental Meter Readings Rental.MeterReading.Created
Rental.MeterReading.Updated
Rental.MeterReading.Deleted
{
  EventName: [string],
  EventDateTime: [datetime],
  AccountId: [integer],
  PropertyId: [integer],
  ReadingDate: [date],
  MeterType: [string]
}
Rental Properties Rental.Created
Rental.Updated
Rental.Deleted
{
  EventName: [string],
  EventDateTime: [datetime],
  AccountId: [integer],
  PropertyId: [integer]
}
Rental Units RentalUnit.Created
RentalUnit.Updated
RentalUnit.Deleted
{
  EventName: [string],
  EventDateTime: [datetime],
  AccountId: [integer],
  UnitId: [integer]
}
Task Categories TaskCategory.Created
TaskCategory.Updated
TaskCategory.Deleted
{
  EventName: [string],
  EventDateTime: [datetime],
  AccountId: [integer],
  TaskCategoryId: [integer]
}
Task History Task.History.Created
Task.History.Updated
Task.History.Deleted
{
  EventName: [string],
  EventDateTime: [datetime],
  AccountId: [integer],
  TaskId: [integer],
  TaskHistoryId: [integer],
}
Tasks Task.Created
Task.Updated
Task.Deleted
{
  EventName: [string],
  EventDateTime: [datetime],
  AccountId: [integer],
  TaskId: [integer],
  TaskType: [string]
}
Vendor Categories VendorCategory.Created
VendorCategory.Updated
VendorCategory.Deleted
{
  EventName: [string],
  EventDateTime: [datetime],
  AccountId: [integer],
  VendorCategoryId: [integer]
}
Vendors Vendor.Created
Vendor.Updated
Vendor.Deleted
{
  EventName: [string],
  EventDateTime: [datetime],
  AccountId: [integer],
  VendorId: [integer]
}
Vendor Transactions Vendor.Transaction.Created
Vendor.Transaction.Updated
Vendor.Transaction.Deleted
{
  EventName: [string],
  EventDateTime: [datetime],
  AccountId: [integer],
  TransactionId: [integer]
  TransactionType: [string]
  VendorId: [integer]
}
Work Orders WorkOrder.Created
WorkOrder.Updated
WorkOrder.Deleted
{
  EventName: [string],
  EventDateTime: [datetime],
  AccountId: [integer],
  WorkOrderId: [integer]
}

Changelog

2024-11-19

API Updates

2024-09-17

API Updates

2024-08-20

API Updates

  • Accounts receivable, accounts payable, undeposited funds, and bank account ids can no longer be used in lines when creating or updating checks. Doing so will result in a 422 Unprocessible Entity result.
  • The following template ids can no longer be used when sending an email. Doing so will result in a 422 Unprocessible Entity result.
    • 1 (Tenant Statement)
    • 2 (Homeowner Statement)
    • 3 (Rental Owner Statement)
    • 123 (Association Tenant Invoice)
    • 124 (Rental Tenant Invoice)
  • UnitIds is available as a filter option for retrieving all tenants.
  • LastUpdatedDateTime has been added to applicant resources.
  • LastUpdatedFrom and LastUpdatedTo are available as filter options for retrieving all applicants.
  • PrimaryAddress, AlternateAddress, and MailingPreference have been added to association owner resources when retrieving all association lockbox data.

2024-07-16

API Updates

2024-06-18

API Updates

2024-05-21

Webhook Updates

  • New webhook events have been added for the following resource:
    • Task history

2024-04-23

API Updates

  • UserType has been added to the CreatedByUser and LastUpdatedByUser properties for task history resources.

2024-04-16

API Updates

  • General ledger transaction resources can now be filtered by LastUpdatedFrom and LastUpdatedTo.
  • LastUpdatedDateTime has been added to general ledger transaction resources.
  • The ability to update a deposit withholding has been released.
  • We have released our first PATCH endpoint! PATCH allows for partial updates of resources without having to provide an entire resource representation in a PUT.
    • Our first PATCH endpoint provides the ability to Update a bill.

2024-03-19

API Updates

2024-02-20

API Updates

2024-01-23

API Updates

2023-12-12

API Updates

  • File sharing resources have been released:
  • TransactionTypeEnum has been added as a property to lease and ownership account transaction response resources.
  • MoveInDate has been added as a property to each resource in the Tenants property of a lease resource.

2023-11-14

API Updates

  • The ability to set sharing options while creating a resident request task has been released.
  • AccountNumberUnmasked has been added as a property to bank account response resources.
  • DelinquencyStatus has been added as a property to each Ownership Account in the response for association lockbox data response resources.

2023-10-17

API Updates

2023-09-19

API Updates

2023-08-16

API Updates

2023-07-18

API Updates

Webhook Updates

  • New webhook events have been added for the following resources:
    • Vendor transactions

2023-06-20

API Updates

2023-05-16

API Updates

2023-04-18

API Updates

2023-03-21

API Updates

2023-02-21

API Updates

2022-12-13

API Updates

2022-11-15

API Updates

2022-10-18

API Updates

Webhook Updates

  • New webhook events have been added for the following resources:
    • Bank Accounts
    • Bank Account Transactions
    • Bills
    • Bill Payments
    • Budgets
    • General Ledger Accounts
    • Phone logs

2022-09-20

API Updates

Webhook Updates

  • Webhooks have been released! Please refer to the Webhooks section of the documentation for more details.

2022-08-16

API Updates

2022-07-19

API Updates

2022-06-14

API Updates

2022-05-24

API Updates

2022-04-19

API Updates

  • Preferred vendor capabilities have been released including:
    • The ability to retrieve and update preferred vendors for associations.
    • The ability to retrieve and update preferred vendors for rental properties.

2022-03-22

API Updates

2022-02-15

API Updates

  • Additional rental data is now available including:
  • Additional applicant capabilities are available including:
    • The ability to retrieve and create applicant notes.
    • When an applicant is converted to a tenant a new TenantId field on the applicant message will link the two resources.
    • The ability to filter the Retrieve all Applicants endpoint by email address.
  • The ability to retrieve file metadata as well as upload and download files related to the following resources - Accounts, Associations, Association Owners, Association Units, Leases, Ownership Accounts, Public Assets, Rentals, Rental Owners, RentalUnits, Tenants and Vendors.

2022-01-18

API Updates

  • Additional association data is now available including:
    • The ability retrieve, create and delete association board members.
    • Association fiscal month and day can now be retrieved and updated as part of the Association endpoints.
    • Staff members can now be assigned as the association manager for a given association.
  • Additional association owner data is now available including:
    • Association owner occupancy status can be retrieved and updated.
    • Association owner tax payer identification number can be retrieved and updated as part of the association owner endpoints.
    • The date and time the association owner record was created is now being returned in the response payload.
  • Additional association tenant features are now available including:
    • The ability to set the move out date.
    • The date and time the association tenant record was created is now being returned in the response payload.
  • Updating bills now includes the ability to edit line items.
  • The ability to retrieve client leads has been introduced. Note, this data is only available if you have an All Property Management account.

2021-12-14

API Updates

  • Additional bank account endpoints have been added to retrieve, create and update bank accounts and bank account transactions.

2021-11-16

API Updates

2021-10-19

API Updates

2021-09-21

API Updates

2021-08-24

API Updates

2021-07-20

API Updates

2021-06-22

API Updates

  • Bill and bill payment resources have been released. These new endpoints will support retrieve, create and update functionality for bills and retrieve functionality for bill payments. Creating and updating bill payments will be available in a future release.
  • Rental applicant, applicant groups and application read capabilities have been released. These new endpoints will support retrieving rental applicants, applicant groups and their rental applications. Creating and updating applicants and applicant groups will be available in a future release.
  • Rental leases can now be filtered by the date and time they were created. The lease created date and time are also being returned as part of the lease response message.

2021-05-18

API Updates

2021-04-20

API Updates

  • Task resources have been released. These new endpoints will support retrieve, create and update functionality for all task request types. Review the Tasks documentation for more information.
  • Vendor create and update capabilities have been released. These new endpoints will support creating and updating vendors.

2021-02-16

API Updates

  • Phone log resources have been released. These new endpoints will support create, update and retrieve functionality for phone logs.
  • Enhancements to the leases resource have been released. These new endpoints will support create and update functionality for leases.
  • Ability to filter by phone has been released for the following:

2020-12-15

API Updates

  • Rental listing resources have been released. These new endpoints will support create and retrieve functionality for:

2020-11-17

API Updates

2020-10-20

API Updates

Feature Enhancements

  • Sandbox environments can now be created for developing and testing your integrations. Learn more about how to take advantage of this new capability in the API Sandbox section of the documentation.

2020-09-15

API Updates

  • General ledger account balances are now available through the Retrieve all general ledger account balances endpoint. This new endpoint provides the ability to retrieve the general ledger account balances as of a given date.

2020-08-18

API Updates

  • General ledger transactions are now available through the Retrieve all general ledger transactions endpoint. These new endpoints provide the ability to retrieve all transactions or use a set of filters including specific rental/association properties, rental owners, date ranges, and others to find specific transactions.

2020-07-21

API Updates

  • Association Owners response message now returns board member terms including the start date, end date and position.
  • Two new resources were added to retrieve Users and User Roles.
  • The general ledger response message now includes the property IsBankAccount. This is a boolean property that indicates whether the general ledger account is also a bank account.
  • A Country property has been added to all Address messages. This property contains an enumeration indicating the country of the address.

Bank Accounts

Bank account resources provide access to bank accounts.

Retrieve all bank accounts

Retrieves a list of bank accounts.

Required permission(s):

Accounting > Bank Accounts - View

query Parameters
bankaccountstatus
string
Enum: "Active" "InActive"

Filters results by the status of the bank account. If no status is specified, bank accounts with any status will be returned.

bankname
string

Filters results to any bank account whose name contains the specified value.

routingnumbers
Array of strings

Filters results to any bank accounts whose routing number contains the specified value.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a bank account

Creates a bank account.

Required permission(s):

Accounting > Banking - View Edit

Request Body schema: application/json
object

Check printing info.

Name
required
string non-empty

Bank account name.

Description
string

Bank account description.

BankAccountType
required
string
Enum: "Checking" "Savings"

Type of bank account.

Country
required
string
Enum: "Afghanistan" "Akrotiri" "Albania" "Algeria" "AmericanSamoa" "Andorra" "Angola" "Anguilla" "Antarctica" "AntiguaandBarbuda" "Argentina" "Armenia" "Aruba" "AshmoreandCartierIslands" "Australia" "Austria" "Azerbaijan" "Bahamas" "Bahrain" "Bangladesh" "Barbados" "BassasdaIndia" "Belarus" "Belgium" "Belize" "Benin" "Bermuda" "Bhutan" "Bolivia" "BosniaandHerzegovina" "Botswana" "BouvetIsland" "Brazil" "BritishIndianOceanTerritory" "BritishVirginIslands" "Brunei" "Bulgaria" "BurkinaFaso" "Burma" "Burundi" "Cambodia" "Cameroon" "Canada" "CapeVerde" "CaymanIslands" "CentralAfricanRepublic" "Chad" "Chile" "China" "ChristmasIsland" "ClippertonIsland" "CocosIslands" "Colombia" "Comoros" "DemocraticRepublicOfTheCongo" "RepublicOfTheCongo" "CookIslands" "CoralSeaIslands" "CostaRica" "CotedIvoire" "Croatia" "Cuba" "Cyprus" "CzechRepublic" "Denmark" "Dhekelia" "Djibouti" "Dominica" "DominicanRepublic" "Ecuador" "Egypt" "ElSalvador" "EquatorialGuinea" "Eritrea" "Estonia" "Ethiopia" "EuropaIsland" "FalklandIslands" "FaroeIslands" "Fiji" "Finland" "France" "FrenchGuiana" "FrenchPolynesia" "FrenchSouthernandAntarcticLands" "Gabon" "Gambia" "GazaStrip" "Georgia" "Germany" "Ghana" "Gibraltar" "GloriosoIslands" "Greece" "Greenland" "Grenada" "Guadeloupe" "Guam" "Guatemala" "Guernsey" "Guinea" "GuineaBissau" "Guyana" "Haiti" "HeardIslandandMcDonaldIslands" "VaticanCity" "Honduras" "HongKong" "Hungary" "Iceland" "India" "Indonesia" "Iran" "Iraq" "Ireland" "IsleofMan" "Israel" "Italy" "Jamaica" "JanMayen" "Japan" "Jersey" "Jordan" "JuandeNovaIsland" "Kazakhstan" "Kenya" "Kiribati" "NorthKorea" "SouthKorea" "Kuwait" "Kyrgyzstan" "Laos" "Latvia" "Lebanon" "Lesotho" "Liberia" "Libya" "Liechtenstein" "Lithuania" "Luxembourg" "Macau" "Macedonia" "Madagascar" "Malawi" "Malaysia" "Maldives" "Mali" "Malta" "MarshallIslands" "Martinique" "Mauritania" "Mauritius" "Mayotte" "Mexico" "Micronesia" "Moldova" "Monaco" "Mongolia" "Montserrat" "Morocco" "Mozambique" "Namibia" "Nauru" "NavassaIsland" "Nepal" "Netherlands" "NetherlandsAntilles" "NewCaledonia" "NewZealand" "Nicaragua" "Niger" "Nigeria" "Niue" "NorfolkIsland" "NorthernMarianaIslands" "Norway" "Oman" "Pakistan" "Palau" "Panama" "PapuaNewGuinea" "ParacelIslands" "Paraguay" "Peru" "Philippines" "PitcairnIslands" "Poland" "Portugal" "PuertoRico" "Qatar" "Reunion" "Romania" "Russia" "Rwanda" "SaintHelena" "SaintKittsandNevis" "SaintLucia" "SaintPierreandMiquelon" "SaintVincentandtheGrenadines" "Samoa" "SanMarino" "SaoTomeandPrincipe" "SaudiArabia" "Senegal" "SerbiaandMontenegro" "Seychelles" "SierraLeone" "Singapore" "Slovakia" "Slovenia" "SolomonIslands" "Somalia" "SouthAfrica" "SouthGeorgiaandtheSouthSandwichIslands" "Spain" "SpratlyIslands" "SriLanka" "Sudan" "Suriname" "Svalbard" "Swaziland" "Sweden" "Switzerland" "Syria" "Taiwan" "Tajikistan" "Tanzania" "Thailand" "TimorLeste" "Togo" "Tokelau" "Tonga" "TrinidadandTobago" "TromelinIsland" "Tunisia" "Turkey" "Turkmenistan" "TurksandCaicosIslands" "Tuvalu" "Uganda" "Ukraine" "UnitedArabEmirates" "UnitedKingdom" "UnitedStates" "Uruguay" "Uzbekistan" "Vanuatu" "Venezuela" "Vietnam" "VirginIslands" "WakeIsland" "WallisandFutuna" "WestBank" "WesternSahara" "Yemen" "Zambia" "Zimbabwe"

The country the bank account exists in.

AccountNumber
string

Bank account number.

RoutingNumber
string

Bank routing number. If the bank is in Canada, the routing number should be provided as a zero followed by the three digit institution number, followed by the five digit transit number.

Responses

Request samples

Content type
application/json
{
  • "CheckPrintingInfo": {
    },
  • "Name": "string",
  • "Description": "string",
  • "BankAccountType": "Checking",
  • "Country": "Afghanistan",
  • "AccountNumber": "string",
  • "RoutingNumber": "string"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "GLAccount": {
    },
  • "CheckPrintingInfo": {
    },
  • "ElectronicPayments": {
    },
  • "Name": "string",
  • "Description": "string",
  • "BankAccountType": "string",
  • "Country": "Afghanistan",
  • "AccountNumber": "string",
  • "RoutingNumber": "string",
  • "IsActive": true,
  • "Balance": 0,
  • "AccountNumberUnmasked": "string"
}

Retrieve a bank account

Retrieves a specific bank account.

Required permission(s):

Accounting > Bank Accounts - View

path Parameters
bankAccountId
required
integer <int32>

The bank account identifier.

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "GLAccount": {
    },
  • "CheckPrintingInfo": {
    },
  • "ElectronicPayments": {
    },
  • "Name": "string",
  • "Description": "string",
  • "BankAccountType": "string",
  • "Country": "Afghanistan",
  • "AccountNumber": "string",
  • "RoutingNumber": "string",
  • "IsActive": true,
  • "Balance": 0,
  • "AccountNumberUnmasked": "string"
}

Update a bank account

Updates a bank account.;

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

Required permission(s):

Accounting > Banking - View Edit

path Parameters
bankAccountId
required
integer <int32>
Request Body schema: application/json
required
object

Check printing info.

Name
required
string non-empty

Bank account name.

Description
string

Bank account description.

BankAccountType
required
string
Enum: "Checking" "Savings"

Type of bank account.

Country
required
string
Enum: "Afghanistan" "Akrotiri" "Albania" "Algeria" "AmericanSamoa" "Andorra" "Angola" "Anguilla" "Antarctica" "AntiguaandBarbuda" "Argentina" "Armenia" "Aruba" "AshmoreandCartierIslands" "Australia" "Austria" "Azerbaijan" "Bahamas" "Bahrain" "Bangladesh" "Barbados" "BassasdaIndia" "Belarus" "Belgium" "Belize" "Benin" "Bermuda" "Bhutan" "Bolivia" "BosniaandHerzegovina" "Botswana" "BouvetIsland" "Brazil" "BritishIndianOceanTerritory" "BritishVirginIslands" "Brunei" "Bulgaria" "BurkinaFaso" "Burma" "Burundi" "Cambodia" "Cameroon" "Canada" "CapeVerde" "CaymanIslands" "CentralAfricanRepublic" "Chad" "Chile" "China" "ChristmasIsland" "ClippertonIsland" "CocosIslands" "Colombia" "Comoros" "DemocraticRepublicOfTheCongo" "RepublicOfTheCongo" "CookIslands" "CoralSeaIslands" "CostaRica" "CotedIvoire" "Croatia" "Cuba" "Cyprus" "CzechRepublic" "Denmark" "Dhekelia" "Djibouti" "Dominica" "DominicanRepublic" "Ecuador" "Egypt" "ElSalvador" "EquatorialGuinea" "Eritrea" "Estonia" "Ethiopia" "EuropaIsland" "FalklandIslands" "FaroeIslands" "Fiji" "Finland" "France" "FrenchGuiana" "FrenchPolynesia" "FrenchSouthernandAntarcticLands" "Gabon" "Gambia" "GazaStrip" "Georgia" "Germany" "Ghana" "Gibraltar" "GloriosoIslands" "Greece" "Greenland" "Grenada" "Guadeloupe" "Guam" "Guatemala" "Guernsey" "Guinea" "GuineaBissau" "Guyana" "Haiti" "HeardIslandandMcDonaldIslands" "VaticanCity" "Honduras" "HongKong" "Hungary" "Iceland" "India" "Indonesia" "Iran" "Iraq" "Ireland" "IsleofMan" "Israel" "Italy" "Jamaica" "JanMayen" "Japan" "Jersey" "Jordan" "JuandeNovaIsland" "Kazakhstan" "Kenya" "Kiribati" "NorthKorea" "SouthKorea" "Kuwait" "Kyrgyzstan" "Laos" "Latvia" "Lebanon" "Lesotho" "Liberia" "Libya" "Liechtenstein" "Lithuania" "Luxembourg" "Macau" "Macedonia" "Madagascar" "Malawi" "Malaysia" "Maldives" "Mali" "Malta" "MarshallIslands" "Martinique" "Mauritania" "Mauritius" "Mayotte" "Mexico" "Micronesia" "Moldova" "Monaco" "Mongolia" "Montserrat" "Morocco" "Mozambique" "Namibia" "Nauru" "NavassaIsland" "Nepal" "Netherlands" "NetherlandsAntilles" "NewCaledonia" "NewZealand" "Nicaragua" "Niger" "Nigeria" "Niue" "NorfolkIsland" "NorthernMarianaIslands" "Norway" "Oman" "Pakistan" "Palau" "Panama" "PapuaNewGuinea" "ParacelIslands" "Paraguay" "Peru" "Philippines" "PitcairnIslands" "Poland" "Portugal" "PuertoRico" "Qatar" "Reunion" "Romania" "Russia" "Rwanda" "SaintHelena" "SaintKittsandNevis" "SaintLucia" "SaintPierreandMiquelon" "SaintVincentandtheGrenadines" "Samoa" "SanMarino" "SaoTomeandPrincipe" "SaudiArabia" "Senegal" "SerbiaandMontenegro" "Seychelles" "SierraLeone" "Singapore" "Slovakia" "Slovenia" "SolomonIslands" "Somalia" "SouthAfrica" "SouthGeorgiaandtheSouthSandwichIslands" "Spain" "SpratlyIslands" "SriLanka" "Sudan" "Suriname" "Svalbard" "Swaziland" "Sweden" "Switzerland" "Syria" "Taiwan" "Tajikistan" "Tanzania" "Thailand" "TimorLeste" "Togo" "Tokelau" "Tonga" "TrinidadandTobago" "TromelinIsland" "Tunisia" "Turkey" "Turkmenistan" "TurksandCaicosIslands" "Tuvalu" "Uganda" "Ukraine" "UnitedArabEmirates" "UnitedKingdom" "UnitedStates" "Uruguay" "Uzbekistan" "Vanuatu" "Venezuela" "Vietnam" "VirginIslands" "WakeIsland" "WallisandFutuna" "WestBank" "WesternSahara" "Yemen" "Zambia" "Zimbabwe"

The country the bank account exists in.

AccountNumber
string

Bank account number.

RoutingNumber
string

Bank routing number. If the bank is in Canada, the routing number should be provided as a zero followed by the three digit institution number, followed by the five digit transit number.

Responses

Request samples

Content type
application/json
{
  • "CheckPrintingInfo": {
    },
  • "Name": "string",
  • "Description": "string",
  • "BankAccountType": "Checking",
  • "Country": "Afghanistan",
  • "AccountNumber": "string",
  • "RoutingNumber": "string"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "GLAccount": {
    },
  • "CheckPrintingInfo": {
    },
  • "ElectronicPayments": {
    },
  • "Name": "string",
  • "Description": "string",
  • "BankAccountType": "string",
  • "Country": "Afghanistan",
  • "AccountNumber": "string",
  • "RoutingNumber": "string",
  • "IsActive": true,
  • "Balance": 0,
  • "AccountNumberUnmasked": "string"
}

Retrieve all checks

Retrieves all bank account checks.

Required permission(s):

Accounting > Bank Accounts - View
Accounting > General Ledger Transactions - View (Required for checks associated with a Company)

path Parameters
bankAccountId
required
integer <int32>
query Parameters
startdate
required
string <date>

Filters results to any transactions that were recorded on or after the specified date. The value must be formatted as YYYY-MM-DD.

enddate
required
string <date>

Filters results to any transactions that were recorded on or before the specified date. The value must be formatted as YYYY-MM-DD.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a check

Creates a check.

Required permission(s):

Accounting > Bank Accounts - View Edit

path Parameters
bankAccountId
required
integer <int32>
Request Body schema: application/json
required
object

Payee of the transaction.

CheckNumber
string

Check number.

EntryDate
required
string <date>

Date the check was recorded.

Memo
string

Memo associated with the check, if applicable.

required
Array of objects (BankAccountCheckLineSaveMessage)

A collection of line items to associate with the check.

Responses

Request samples

Content type
application/json
{
  • "Payee": {
    },
  • "CheckNumber": "string",
  • "EntryDate": "2019-08-24",
  • "Memo": "string",
  • "Lines": [
    ]
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Payee": {
    },
  • "CheckNumber": "string",
  • "EntryDate": "2019-08-24",
  • "Memo": "string",
  • "TotalAmount": 0,
  • "Lines": [
    ]
}

Retrieve a check

Retrieves a bank account check.

Required permission(s):

Accounting > Bank Accounts - View
Accounting > General Ledger Transactions - View (Required for checks associated with a Company)

path Parameters
bankAccountId
required
integer <int32>
checkId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Payee": {
    },
  • "CheckNumber": "string",
  • "EntryDate": "2019-08-24",
  • "Memo": "string",
  • "TotalAmount": 0,
  • "Lines": [
    ]
}

Update a check

Updates a check.

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

Required permission(s):

Accounting > Bank Accounts - View Edit

path Parameters
bankAccountId
required
integer <int32>
checkId
required
integer <int32>
Request Body schema: application/json
required
object

Payee of the transaction.

CheckNumber
string

Check number.

EntryDate
required
string <date>

Date the check was recorded.

Memo
string

Memo associated with the check, if applicable.

required
Array of objects (BankAccountCheckLineSaveMessage)

A collection of line items to associate with the check.

Responses

Request samples

Content type
application/json
{
  • "Payee": {
    },
  • "CheckNumber": "string",
  • "EntryDate": "2019-08-24",
  • "Memo": "string",
  • "Lines": [
    ]
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Payee": {
    },
  • "CheckNumber": "string",
  • "EntryDate": "2019-08-24",
  • "Memo": "string",
  • "TotalAmount": 0,
  • "Lines": [
    ]
}

Retrieve all files for a check

Retrieves the metadata for all files associated to the specified check.

Required permission(s):

Accounting > Bank Accounts - View
Accounting > General Ledger Transactions - View (Required for checks associated with a Company)

path Parameters
bankAccountId
required
integer <int32>
checkId
required
integer <int32>
query Parameters
orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve a file for a check

Retrieves the metadata for a specific file associated with the specified check.

Required permission(s):

Accounting > Bank Accounts - View
Accounting > General Ledger Transactions - View (Required for checks associated with a Company)

path Parameters
bankAccountId
required
integer <int32>
checkId
required
integer <int32>
fileId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Title": "string",
  • "PhysicalFileName": "string",
  • "Size": 0,
  • "ContentType": "string",
  • "UploadedDateTime": "2019-08-24T14:15:22Z"
}

Delete a file for a check

Deletes a file for a check

Required permission(s):

Accounting > BankAccounts - View Edit Delete
Accounting > General Ledger Transactions - View (Required for checks associated with a Company)

path Parameters
bankAccountId
required
integer <int32>
checkId
required
integer <int32>
fileId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "UserMessage": "string",
  • "ErrorCode": "string",
  • "Errors": [
    ]
}

Download a file for a check

Downloads a specific file associated to the check.

Required permission(s):

Accounting > Bank Accounts - View
Accounting > General Ledger Transactions - View (Required for checks associated with a Company)

path Parameters
bankAccountId
required
integer <int32>
checkId
required
integer <int32>
fileId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "DownloadUrl": "string"
}

Upload a file for a check

Uploads a file and associates it to the specified check record.

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

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

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

Step 2 - Upload the file binary
Uploading the file binary will require using the response from step 1 to form a POST request to the Buildium file provider. Follow these steps to create the request:

  1. Form a POST request using the value of the BucketUrl property as the URL.

  2. Set the Content-Type header to multipart/form-data.

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

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

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

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

    NOTE: The file identifier is not generated in this response. To retrieve the file identifier, call /v1/files and pass the PhysicalFileName value received from the response of this endpoint into the physicalfilenames query parameter.

    Required permission(s):

    Accounting > Checks - View Edit Accounting > General Ledger Transactions - View (Required for checks associated with a Company)
path Parameters
bankAccountId
required
integer <int32>
checkId
required
integer <int32>
Request Body schema: application/json
FileName
required
string non-empty

Name of file being uploaded. The value can not exceed 255 characters.

Responses

Request samples

Content type
application/json
{
  • "FileName": "string"
}

Response samples

Content type
application/json
{
  • "BucketUrl": "string",
  • "FormData": {
    },
  • "PhysicalFileName": "string"
}

Retrieve all deposits

Retrieves all bank account deposits.

Required permission(s):

Accounting > BankAccount - View
Accounting > General Ledger Transactions - View (Required for deposits associated with a Company)

path Parameters
bankAccountId
required
integer <int32>
query Parameters
startdate
required
string <date>

Filters results to any deposits that were recorded on or after the specified date. The value must be formatted as YYYY-MM-DD.

enddate
required
string <date>

Filters results to any deposits that were recorded on or before the specified date. The value must be formatted as YYYY-MM-DD.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a deposit

Creates a deposit.

Required permission(s):

Accounting > Bank Accounts - View Edit

path Parameters
bankAccountId
required
integer <int32>
Request Body schema: application/json
EntryDate
required
string <date>

Date the deposit was recorded.

Memo
string

Memo associated with the deposit, if applicable.

Array of objects (BankAccountDepositLineSaveMessage)

A collection of line items to associate with the deposit.

PaymentTransactionIds
Array of integers <int32> [ items <int32 > ]

A collection of payment transaction identifiers that were included in this deposit transaction.

Responses

Request samples

Content type
application/json
{
  • "EntryDate": "2019-08-24",
  • "Memo": "string",
  • "Lines": [
    ],
  • "PaymentTransactionIds": [
    ]
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "EntryDate": "2019-08-24",
  • "Memo": "string",
  • "TotalAmount": 0,
  • "Lines": [
    ],
  • "PaymentTransactionIds": [
    ]
}

Retrieve a deposit

Retrieves a bank account deposit.

Required permission(s):

Accounting > BankAccount - View
Accounting > General Ledger Transactions - View (Required for deposits associated with a Company)

path Parameters
bankAccountId
required
integer <int32>
depositId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "EntryDate": "2019-08-24",
  • "Memo": "string",
  • "TotalAmount": 0,
  • "Lines": [
    ],
  • "PaymentTransactionIds": [
    ]
}

Update a deposit

Updates a deposit.

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

Required permission(s):

Accounting > Bank Accounts - View Edit

path Parameters
bankAccountId
required
integer <int32>
depositId
required
integer <int32>
Request Body schema: application/json
EntryDate
required
string <date>

Date the deposit was recorded.

Memo
string

Memo associated with the deposit, if applicable.

required
Array of objects (BankAccountDepositLineSaveMessage)

Responses

Request samples

Content type
application/json
{
  • "EntryDate": "2019-08-24",
  • "Memo": "string",
  • "Lines": [
    ]
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "EntryDate": "2019-08-24",
  • "Memo": "string",
  • "TotalAmount": 0,
  • "Lines": [
    ],
  • "PaymentTransactionIds": [
    ]
}

Retrieve all quick deposits

Retrieves all quick deposits.

Required permission(s):

Accounting > BankAccount - View

path Parameters
bankAccountId
required
integer <int32>
query Parameters
startdate
required
string <date>

Filters results to any transactions that were recorded on or after the specified date. The value must be formatted as YYYY-MM-DD.

enddate
required
string <date>

Filters results to any transactions that were recorded on or before the specified date. The value must be formatted as YYYY-MM-DD.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a quick deposit

Creates a quick deposit.

Required permission(s):

Accounting > BankAccount - View Edit

path Parameters
bankAccountId
required
integer <int32>
Request Body schema: application/json
EntryDate
required
string <date>

Date the quick deposit was recorded.

OffsetGLAccountId
required
integer <int32>

Offsetting general ledger account identifier. The offsetting general ledger account acts as a label for this deposit. For instance, if you're depositing money collected from a washing machine, you might select the "Laundry income" account.

Amount
required
number <double>

Amount to be deposited.

Memo
string

Memo associated with the quick deposit.

required
object

A rental property, association or company to associate with the quick deposit.

Responses

Request samples

Content type
application/json
{
  • "EntryDate": "2019-08-24",
  • "OffsetGLAccountId": 0,
  • "Amount": 0,
  • "Memo": "string",
  • "AccountingEntity": {
    }
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "EntryDate": "2019-08-24",
  • "Memo": "string",
  • "TotalAmount": 0,
  • "AccountingEntity": {
    },
  • "OffsetGLAccountId": 0
}

Retrieve a quick deposit

Retrieves a quick deposit.

Required permission(s):

Accounting > BankAccount - View

path Parameters
bankAccountId
required
integer <int32>
quickDepositId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "EntryDate": "2019-08-24",
  • "Memo": "string",
  • "TotalAmount": 0,
  • "AccountingEntity": {
    },
  • "OffsetGLAccountId": 0
}

Update a quick deposit

Updates a quick deposit.

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

Required permission(s):

Accounting > Bank Accounts - View Edit

path Parameters
bankAccountId
required
integer <int32>
quickDepositId
required
integer <int32>
Request Body schema: application/json
EntryDate
required
string <date>

Date the quick deposit was recorded.

OffsetGLAccountId
required
integer <int32>

Offsetting general ledger account identifier. The offsetting general ledger account acts as a label for this deposit. For instance, if you're depositing money collected from a washing machine, you might select the "Laundry income" account.

Amount
required
number <double>

Amount to be deposited.

Memo
string

Memo associated with the quick deposit.

required
object

A rental property, association or company to associate with the quick deposit.

Responses

Request samples

Content type
application/json
{
  • "EntryDate": "2019-08-24",
  • "OffsetGLAccountId": 0,
  • "Amount": 0,
  • "Memo": "string",
  • "AccountingEntity": {
    }
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "EntryDate": "2019-08-24",
  • "Memo": "string",
  • "TotalAmount": 0,
  • "AccountingEntity": {
    },
  • "OffsetGLAccountId": 0
}

Create a reconciliation

Creates a reconciliation. Reconciliations can only be created for bank accounts that are not linked externally.

Required permission(s):

Accounting > BankAccount - View Edit

path Parameters
bankAccountId
required
integer <int32>
Request Body schema: application/json
StatementEndingDate
required
string <date>

End date for the reconciliation statement period. The date must be formatted as YYYY-MM-DD.

TotalChecksAndWithdrawals
number <double>

Sum of all checks and withdrawals for the reconciliation.

TotalDepositsAndAdditions
number <double>

Sum of all deposits and additions for the reconciliation.

EndingBalance
required
number <double>

Ending balance of the pending reconciliation.

Responses

Request samples

Content type
application/json
{
  • "StatementEndingDate": "2019-08-24",
  • "TotalChecksAndWithdrawals": 0,
  • "TotalDepositsAndAdditions": 0,
  • "EndingBalance": 0
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "IsFinished": true,
  • "StatementEndingDate": "2019-08-24"
}

Retrieve all reconciliations

Retrieves all bank account reconciliations. Reconciliations can only be retrieved for bank accounts that are not linked externally.

Required permission(s):

Accounting > BankAccount - View

path Parameters
bankAccountId
required
integer <int32>
query Parameters
orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve a reconciliation

Retrieves a bank account reconciliation. Reconciliations can only be retrieved for bank accounts that are not linked externally.

Required permission(s):

Accounting > BankAccount - View

path Parameters
bankAccountId
required
integer <int32>
reconciliationId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "IsFinished": true,
  • "StatementEndingDate": "2019-08-24"
}

Update a reconciliation

Updates a reconciliation. Reconciliations can only be updated for bank accounts that are not linked externally.

Required permission(s):

Accounting > BankAccount - View Edit

path Parameters
bankAccountId
required
integer <int32>
reconciliationId
required
integer <int32>
Request Body schema: application/json
StatementEndingDate
required
string <date>

Date the reconciliation statement ended. The value must be formatted as YYYY-MM-DD.

Responses

Request samples

Content type
application/json
{
  • "StatementEndingDate": "2019-08-24"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "IsFinished": true,
  • "StatementEndingDate": "2019-08-24"
}

Retrieve a reconciliation's balance

Retrieves a bank account reconciliation's balance. Reconciliation balances can only be retrieved for bank accounts that are not linked externally.

Required permission(s):

Accounting > BankAccount - View

path Parameters
bankAccountId
required
integer <int32>
reconciliationId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Difference": 0,
  • "StatementBalance": {
    },
  • "ClearedBalance": {
    }
}

Update a reconciliation's balance

Updates a bank account reconciliation's balance. Reconciliation balances can only be updated for bank accounts that are not linked externally.

Required permission(s):

Accounting > BankAccount - View Edit

path Parameters
bankAccountId
required
integer <int32>
reconciliationId
required
integer <int32>
Request Body schema: application/json
TotalChecksAndWithdrawals
required
number <double>

Total amount of checks and withdrawals of the reconciliation statement balance.

TotalDepositsAndAdditions
required
number <double>

Total amount of deposits and additions of the reconciliation statement balance.

EndingBalance
required
number <double>

Ending balance of the reconciliation statement balance.

Responses

Request samples

Content type
application/json
{
  • "TotalChecksAndWithdrawals": 0,
  • "TotalDepositsAndAdditions": 0,
  • "EndingBalance": 0
}

Response samples

Content type
application/json
{
  • "Difference": 0,
  • "StatementBalance": {
    },
  • "ClearedBalance": {
    }
}

Clear transactions for a reconciliation

Clears transactions for a reconciliation. Reconciliation transactions can only be cleared for bank accounts that are not linked externally.

Required permission(s):

Accounting > BankAccount - View Edit

path Parameters
bankAccountId
required
integer <int32>
reconciliationId
required
integer <int32>
Request Body schema: application/json
TransactionIds
required
Array of integers <int32> [ items <int32 > ]

The transaction identifiers to clear for the reconciliation

Responses

Request samples

Content type
application/json
{
  • "TransactionIds": [
    ]
}

Response samples

Content type
application/json
{
  • "UserMessage": "string",
  • "ErrorCode": "string",
  • "Errors": [
    ]
}

Finalize a manual reconciliation

Finalizes a manual reconciliation. Reconciliations can only be finalized for bank accounts that are not linked externally.

Required permission(s):

Accounting > BankAccount - View Edit

path Parameters
bankAccountId
required
integer <int32>
reconciliationId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "UserMessage": "string",
  • "ErrorCode": "string",
  • "Errors": [
    ]
}

Retrieve all transactions for a reconciliation

Retrieves all transactions, both cleared and uncleared, up to the Statement Ending Date of the related reconciliation. This is true for pending and completed reconciliations. Transactions can only be retrieved for bank accounts that are not linked externally.

Required permission(s):

Accounting > BankAccount - View

path Parameters
bankAccountId
required
integer <int32>
reconciliationId
required
integer <int32>
query Parameters
orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Un-clear transactions for a reconciliation

Un-clears transactions for a reconciliation. Reconciliation transactions can only be un-cleared for bank accounts that are not linked externally.

Required permission(s):

Accounting > BankAccount - View Edit

path Parameters
bankAccountId
required
integer <int32>
reconciliationId
required
integer <int32>
Request Body schema: application/json
TransactionIds
required
Array of integers <int32> [ items <int32 > ]

The transaction identifiers to un-clear for the reconciliation

Responses

Request samples

Content type
application/json
{
  • "TransactionIds": [
    ]
}

Response samples

Content type
application/json
{
  • "UserMessage": "string",
  • "ErrorCode": "string",
  • "Errors": [
    ]
}

Retrieve all transactions

Retrieves all bank account transactions.

Note: When using the orderby query string parameter, the only supported parameter is EntryDate.

Required permission(s):

Accounting > Bank Accounts - View

path Parameters
bankAccountId
required
integer <int32>
query Parameters
selectionentityid
integer <int32>

Filters results to any transaction containing journal lines for an entity associated with the specified entity id value. The id must be of the type specified in SelectionEntityType.

selectionentitytype
string
Enum: "Company" "Rental" "RentalOwner" "Association"

Specifies the type of entity that SelectionEntityId refers to.

startdate
required
string <date>

Filters results to any transactions that were recorded on or after the specified date. The value must be formatted as YYYY-MM-DD.

enddate
required
string <date>

Filters results to any transactions that were recorded on or before the specified date. The value must be formatted as YYYY-MM-DD.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve a transaction

Retrieves a specific bank account transaction.

Required permission(s):

Accounting > Bank Account - View

path Parameters
bankAccountId
required
integer <int32>
transactionId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "EntryDate": "2019-08-24",
  • "TransactionType": "Bill",
  • "CheckNumber": "string",
  • "Memo": "string",
  • "Amount": 0,
  • "ReconciliationStatus": "Unknown",
  • "PaidBy": [
    ],
  • "PaidTo": [
    ],
  • "Balance": 0
}

Retrieve all transfers

Retrieves all bank account transfers.

Required permission(s):

Accounting > BankAccount - View

path Parameters
bankAccountId
required
integer <int32>
query Parameters
startdate
required
string <date>

Filters results to any transfers that were recorded on or after the specified date. The value must be formatted as YYYY-MM-DD.

enddate
required
string <date>

Filters results to any transfers that were recorded on or before the specified date. The value must be formatted as YYYY-MM-DD.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a transfer

Creates a bank account transfer.

Required permission(s):

Accounting > Bank Accounts - View Edit

path Parameters
bankAccountId
required
integer <int32>
Request Body schema: application/json
EntryDate
required
string <date>

The date the transfer was recorded.

TransferToBankAccountId
required
integer <int32>

Bank account identifier the money will be transferred to.

TotalAmount
required
number <double>

Total amount to transfer.

Memo
string

Memo associated with the transfer, if applicable.

required
object

A rental property, association or company to associate with the transfer.

Responses

Request samples

Content type
application/json
{
  • "EntryDate": "2019-08-24",
  • "TransferToBankAccountId": 0,
  • "TotalAmount": 0,
  • "Memo": "string",
  • "AccountingEntity": {
    }
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "EntryDate": "2019-08-24",
  • "Memo": "string",
  • "AccountingEntity": {
    },
  • "TotalAmount": 0,
  • "TransferToBankAccountId": 0
}

Retrieve a transfer

Retrieves a bank account transfer.

Required permission(s):

Accounting > Bank Accounts - View

path Parameters
bankAccountId
required
integer <int32>

The bank account identifier.

transferId
required
integer <int32>

The transfer identifier.

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "GLAccount": {
    },
  • "CheckPrintingInfo": {
    },
  • "ElectronicPayments": {
    },
  • "Name": "string",
  • "Description": "string",
  • "BankAccountType": "string",
  • "Country": "Afghanistan",
  • "AccountNumber": "string",
  • "RoutingNumber": "string",
  • "IsActive": true,
  • "Balance": 0,
  • "AccountNumberUnmasked": "string"
}

Update a transfer

Updates a bank account transfer.

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

Required permission(s):

Accounting > Bank Accounts - View Edit

path Parameters
bankAccountId
required
integer <int32>
transferId
required
integer <int32>
Request Body schema: application/json
EntryDate
required
string <date>

The date the transfer was recorded.

TransferToBankAccountId
required
integer <int32>

Bank account identifier the money will be transferred to.

TotalAmount
required
number <double>

Total amount to transfer.

Memo
string

Memo associated with the transfer, if applicable.

required
object

A rental property, association or company to associate with the transfer.

Responses

Request samples

Content type
application/json
{
  • "EntryDate": "2019-08-24",
  • "TransferToBankAccountId": 0,
  • "TotalAmount": 0,
  • "Memo": "string",
  • "AccountingEntity": {
    }
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "EntryDate": "2019-08-24",
  • "Memo": "string",
  • "AccountingEntity": {
    },
  • "TotalAmount": 0,
  • "TransferToBankAccountId": 0
}

Retrieve all undeposited funds

Retrieve all bank account undeposited funds.

Required permission(s):

Accounting > Bank Accounts - View

path Parameters
bankAccountId
required
integer <int32>
query Parameters
orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve all withdrawals

Retrieves all bank account withdrawals.

Required permission(s):

Accounting > BankAccounts - View

path Parameters
bankAccountId
required
integer <int32>
query Parameters
startdate
required
string <date>

Filters results to any transactions that were recorded on or after the specified date. The value must be formatted as YYYY-MM-DD.

enddate
required
string <date>

Filters results to any transactions that were recorded on or before the specified date. The value must be formatted as YYYY-MM-DD.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a withdrawal

Creates a bank account withdrawal.

Required permission(s):

Accounting > Bank Accounts - View Edit

path Parameters
bankAccountId
required
integer <int32>
Request Body schema: application/json
EntryDate
required
string <date>

Date the withdrawal was recorded.

OffsetGLAccountId
required
integer <int32>

Offsetting general ledger account identifier. The offsetting general ledger account acts as a label for this withdrawal. For instance, if you're withdrawing money due to a bank fee, you might select the "Bank fees" expense account.

Amount
required
number <double>

Withdrawal amount.

Memo
string

Memo associated with the withdrawal, if applicable.

required
object

A rental property, association or company to associate with the withdrawal.

Responses

Request samples

Content type
application/json
{
  • "EntryDate": "2019-08-24",
  • "OffsetGLAccountId": 0,
  • "Amount": 0,
  • "Memo": "string",
  • "AccountingEntity": {
    }
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "EntryDate": "2019-08-24",
  • "Memo": "string",
  • "TotalAmount": 0,
  • "AccountingEntity": {
    },
  • "OffsetGLAccountId": 0
}

Retrieve a withdrawal

Retrieves a bank account withdrawal.

Required permission(s):

Accounting > BankAccounts - View

path Parameters
bankAccountId
required
integer <int32>
withdrawalId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "EntryDate": "2019-08-24",
  • "Memo": "string",
  • "TotalAmount": 0,
  • "AccountingEntity": {
    },
  • "OffsetGLAccountId": 0
}

Update a withdrawal

Updates a bank account withdrawal.

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

Required permission(s):

Accounting > Bank Accounts - View Edit

path Parameters
bankAccountId
required
integer <int32>
withdrawalId
required
integer <int32>
Request Body schema: application/json
EntryDate
required
string <date>

Date the withdrawal was recorded.

OffsetGLAccountId
required
integer <int32>

Offsetting general ledger account identifier. The offsetting general ledger account acts as a label for this withdrawal. For instance, if you're withdrawing money due to a bank fee, you might select the "Bank fees" expense account.

Amount
required
number <double>

Withdrawal amount.

Memo
string

Memo associated with the withdrawal, if applicable.

required
object

A rental property, association or company to associate with the withdrawal.

Responses

Request samples

Content type
application/json
{
  • "EntryDate": "2019-08-24",
  • "OffsetGLAccountId": 0,
  • "Amount": 0,
  • "Memo": "string",
  • "AccountingEntity": {
    }
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "EntryDate": "2019-08-24",
  • "Memo": "string",
  • "TotalAmount": 0,
  • "AccountingEntity": {
    },
  • "OffsetGLAccountId": 0
}

Bills

Billing related resources.

Retrieve all bills

Retrieves a list of bills.

Required permission(s):

Accounting > Bills - View

query Parameters
entityid
integer <int32>

Filters results to any bill containing line items associated with the specified entity identifier. This filter is used in conjunction with the EntityType field which must be set to the type of entity this identifier references.

entitytype
string
Enum: "Rental" "RentalOwner" "Association"

Specifies the type of entity that EntityId refers to. This field is required if EntityId is specified.

vendorid
integer <int32>

Filters results to bills associated with a specific vendor.

referencenumber
string

Filters results to bills whose reference number contains the specified value.

paidstatus
string
Enum: "Paid" "Unpaid" "UncollectedMarkups"

Filters results by the bill's paid status. If no status is specified, bills with any status will be returned.

frompaiddate
string <date>

Filters results to any bill whose paid date is greater than or equal to the specified value.

topaiddate
string <date>

Filters results to any bill whose paid date is less than or equal to the specified value.

approvalstatuses
Array of strings
Items Enum: "NotNeeded" "ApprovalRequired" "Approved" "Pending" "Rejected"

Filters the results to bills matching the specified approval statuses. If no approval status is specified, bills with any status will be returned.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a bill

Creates a bill.

Required permission(s):

Accounting > Bills - View Edit

Request Body schema: application/json
Date
required
string <date>

The date that the bill was received. This date typically corresponds with a Bill Received Date, Invoice Date, or Invoice Received Date from an invoice. The date must be formatted as YYYY-MM-DD.

DueDate
required
string <date>

The date that payment is due to the vendor. The due date must be after the value in the Date field. The date must be formatted as YYYY-MM-DD.

Memo
string

A description of what the invoice was for. The value cannot exceed 245 characters.

VendorId
required
integer <int32>

The unique identifier of the vendor or supplier who sent you an invoice.

WorkOrderId
integer <int32>

Unique identifier of the work order associated with this bill.

ReferenceNumber
string

The reference or invoice number that the vendor assigned to the invoice. The value cannot exceed 40 characters.

required
Array of objects (BillLinePostMessage)

A collection of line items associated with the bill.

Responses

Request samples

Content type
application/json
{
  • "Date": "2019-08-24",
  • "DueDate": "2019-08-24",
  • "Memo": "string",
  • "VendorId": 0,
  • "WorkOrderId": 0,
  • "ReferenceNumber": "string",
  • "Lines": [
    ]
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Date": "2019-08-24",
  • "DueDate": "2019-08-24",
  • "PaidDate": "2019-08-24",
  • "Memo": "string",
  • "VendorId": 0,
  • "WorkOrderId": 0,
  • "ReferenceNumber": "string",
  • "ApprovalStatus": "NotNeeded",
  • "Lines": [
    ]
}

Retrieve a bill

Retrieves a single bill.

Required permission(s):

Accounting > Bills - View

path Parameters
billId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Date": "2019-08-24",
  • "DueDate": "2019-08-24",
  • "PaidDate": "2019-08-24",
  • "Memo": "string",
  • "VendorId": 0,
  • "WorkOrderId": 0,
  • "ReferenceNumber": "string",
  • "ApprovalStatus": "NotNeeded",
  • "Lines": [
    ]
}

Update a bill

Use this operation to update any of the writable fields of an existing bill resource. When updating this resource keep the following in mind:

  • Writable fields omitted from the request or that do not have a value in the request message are set to NULL. If you do not want to update the field, submit the original field value.
  • When a bill has an existing payment any edits to the line items that change the total bill amount must result in the new total bill amount being equal to or greater than the amount paid.
  • When adding a new line item leave the LineItem.Id field empty.
  • You cannot update a bill that has a pending EFT associated with it.


Required permission(s):

Accounting > Bills - View Edit

path Parameters
billId
required
integer <int32>
Request Body schema: application/json
Date
required
string <date>

The date that an invoice was received. This date typically corresponds with a Bill Received Date, Invoice Date, or Invoice Received Date from an invoice. The date must be formatted as YYYY-MM-DD.

DueDate
required
string <date>

The date that payment for a bill is due to the vendor. The date must be formatted as YYYY-MM-DD.

Memo
string

A description of what the invoice was for. The value cannot exceed 245 characters.

VendorId
required
integer <int32>

The unique identifier of the vendor or supplier who sent you an invoice.

ReferenceNumber
string

The reference or invoice number that the vendor assigned to the invoice. The value cannot exceed 40 characters.

Array of objects (BillLinePutMessage)

A collection of line items associated with the bill.

Responses

Request samples

Content type
application/json
{
  • "Date": "2019-08-24",
  • "DueDate": "2019-08-24",
  • "Memo": "string",
  • "VendorId": 0,
  • "ReferenceNumber": "string",
  • "Lines": [
    ]
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Date": "2019-08-24",
  • "DueDate": "2019-08-24",
  • "PaidDate": "2019-08-24",
  • "Memo": "string",
  • "VendorId": 0,
  • "WorkOrderId": 0,
  • "ReferenceNumber": "string",
  • "ApprovalStatus": "NotNeeded",
  • "Lines": [
    ]
}

Update a bill

Updates a bill.

Required permission(s):

Accounting > Bills - View Edit

path Parameters
billId
required
integer <int32>
Request Body schema:

Represents the structure of the data that can be provided to a JSON patch document as path values via JSON pointer syntax.

Date
string <date>

The date that an invoice was received. This date typically corresponds with a Bill Received Date, Invoice Date, or Invoice Received Date from an invoice. The date must be formatted as YYYY-MM-DD.

DueDate
string <date>

The date that payment for a bill is due to the vendor. The date must be formatted as YYYY-MM-DD.

Memo
string

A description of what the invoice was for. The value cannot exceed 245 characters.

VendorId
integer <int32>

The unique identifier of the vendor or supplier who sent you an invoice.

ReferenceNumber
string

The reference or invoice number that the vendor assigned to the invoice. The value cannot exceed 40 characters.

Array of objects (BillLineItemPatchMessage)

A collection of line items associated with the bill.

Responses

Request samples

Content type
[
  • {
    },
  • {
    },
  • {
    },
  • {
    }
]

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Date": "2019-08-24",
  • "DueDate": "2019-08-24",
  • "PaidDate": "2019-08-24",
  • "Memo": "string",
  • "VendorId": 0,
  • "WorkOrderId": 0,
  • "ReferenceNumber": "string",
  • "ApprovalStatus": "NotNeeded",
  • "Lines": [
    ]
}

Retrieve all files for a bill

Retrieves the metadata for all files associated to the specified bill. To download the actual file view the Download a bill file.

Required permission(s):

Accounting > Bills - View

path Parameters
billId
required
integer <int32>
query Parameters
orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve a file for a bill

Retrieves the metadata for a specific file associated with the specified bill.

Required permission(s):

Accounting > Bills - View

path Parameters
billId
required
integer <int32>
fileId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Title": "string",
  • "PhysicalFileName": "string",
  • "Size": 0,
  • "ContentType": "string",
  • "UploadedDateTime": "2019-08-24T14:15:22Z"
}

Delete a bill file

Deletes the specified file from a bill. The file will be permanently deleted from the Buildium platform and can not be recovered.

Required permission(s):

Accounting > Bills - View Edit Delete

path Parameters
billId
required
integer <int32>
fileId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "UserMessage": "string",
  • "ErrorCode": "string",
  • "Errors": [
    ]
}

Download a bill file

Downloads a specific file associated to the bill.

Required permission(s):

Accounting > Bills - View

path Parameters
billId
required
integer <int32>
fileId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "DownloadUrl": "string"
}

Upload a bill file

Uploads a file and associates it to the specified bill record.

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

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

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

Step 2 - Upload the file binary
Uploading the file binary will require using the response from step 1 to form a POST request to the Buildium file provider. Follow these steps to create the request:

  1. Form a POST request using the value of the BucketUrl property as the URL.

  2. Set the Content-Type header to multipart/form-data.

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

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

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

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

    NOTE: The file identifier is not generated in this response. To retrieve the file identifier, call /v1/files and pass the PhysicalFileName value received from the response of this endpoint into the physicalfilenames query parameter.

    Required permission(s):

    Accounting > Bills - View Edit
path Parameters
billId
required
integer <int32>
Request Body schema: application/json
FileName
required
string non-empty

Name of file being uploaded. The value can not exceed 255 characters.

Responses

Request samples

Content type
application/json
{
  • "FileName": "string"
}

Response samples

Content type
application/json
{
  • "BucketUrl": "string",
  • "FormData": {
    },
  • "PhysicalFileName": "string"
}

Retrieve all bill payments

Retrieves a list of bill payments for a specific bill.

Required permission(s):

Accounting > Bills - View

path Parameters
billId
required
integer <int32>
query Parameters
orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a bill payment

Creates a bill payment.

Required permission(s):

Accounting > Bills - View Edit Accounting > Bank Accounts - View Edit

path Parameters
billId
required
integer <int32>
Request Body schema: application/json
BankAccountId
required
integer <int32>

Unique identifier of the bank account that the payment was made from.

EntryDate
required
string <date>

Date the payment was made.

Memo
string

A high-level description of the payment. The value cannot exceed 240 characters.

CheckNumber
string

Number of the check used to make the payment. The value cannot exceed 30 characters.

required
Array of objects (BillPaymentLinePostMessage)

A collection of payment line items.

Responses

Request samples

Content type
application/json
{
  • "BankAccountId": 0,
  • "EntryDate": "2019-08-24",
  • "Memo": "string",
  • "CheckNumber": "string",
  • "Lines": [
    ]
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "BankAccountId": 0,
  • "EntryDate": "2019-08-24",
  • "Memo": "string",
  • "CheckNumber": "string",
  • "PaidBillIds": [
    ],
  • "AppliedVendorCredits": [
    ],
  • "Lines": [
    ]
}

Retrieve a bill payment

Retrieves specific bill payment.

Required permission(s):

Accounting > Bills - View

path Parameters
billId
required
integer <int32>
paymentId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "BankAccountId": 0,
  • "EntryDate": "2019-08-24",
  • "Memo": "string",
  • "CheckNumber": "string",
  • "PaidBillIds": [
    ],
  • "AppliedVendorCredits": [
    ],
  • "Lines": [
    ]
}

Create a payment for multiple bills with one check

Creates a payment for multiple bills with one check.

Required permission(s):

Accounting > Bills - View Edit Accounting > Bank Accounts - View Edit

Request Body schema: application/json
BankAccountId
required
integer <int32>

Unique identifier of the bank account that the payment was made from.

EntryDate
required
string <date>

Date the payment was made.

QueueChecksForPrinting
boolean

Indicates whether to queue local check printing. Bank account associated with the bill must have check printing enabled to be true.

BillIds
required
Array of integers <int32> [ items <int32 > ]

Unique identifiers of bills.

VendorCreditIds
Array of integers <int32> [ items <int32 > ]

Unique identifiers of the vendor credits to apply to the payment.

Responses

Request samples

Content type
application/json
{
  • "BankAccountId": 0,
  • "EntryDate": "2019-08-24",
  • "QueueChecksForPrinting": true,
  • "BillIds": [
    ],
  • "VendorCreditIds": [
    ]
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "BankAccountId": 0,
  • "EntryDate": "2019-08-24",
  • "Memo": "string",
  • "CheckNumber": "string",
  • "PaidBillIds": [
    ],
  • "AppliedVendorCredits": [
    ],
  • "Lines": [
    ]
}

Budgets

A budget is a tool to plan upcoming income and expenses. The Buildium platform allows you to manage budgets for all rental and association properties.

Retrieve all budgets

Retrieves all budgets.

Required permission(s):

Accounting > Budgets - View

query Parameters
propertyids
Array of integers <int32> [ items <int32 > ]

Filters results to any budget associated to any of the specified set of property ids.

fiscalyear
integer <int32>

Filters results to any budgets that end in the given fiscal year. FiscalYear must be a positive number.

name
string

Filters results to any budgets whose name contains the specified value.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a budget

Creates a budget.

Required permission(s):

Accounting > Budgets - View Edit

Request Body schema: application/json
Name
required
string non-empty

Name of the budget.

PropertyId
required
integer <int32>

Property unique identifier that the budget belongs to.

StartMonth
required
string
Enum: "January" "February" "March" "April" "May" "June" "July" "August" "September" "October" "November" "December"

The month the fiscal year starts for the budget.

FiscalYear
required
integer <int32>

The fiscal year for the budget. The value must be formatted as YYYY.

required
Array of objects (BudgetDetailsSaveMessage)

The financial details associated with the budget.

Responses

Request samples

Content type
application/json
{
  • "Name": "string",
  • "PropertyId": 0,
  • "StartMonth": "January",
  • "FiscalYear": 0,
  • "Details": [
    ]
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Name": "string",
  • "StartDate": "2019-08-24",
  • "EndDate": "2019-08-24",
  • "Property": {
    },
  • "Details": [
    ]
}

Retrieve a budget

Retrieves a budget.

Required permission(s):

Accounting > Budgets - View

path Parameters
budgetId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Name": "string",
  • "StartDate": "2019-08-24",
  • "EndDate": "2019-08-24",
  • "Property": {
    },
  • "Details": [
    ]
}

Update a budget

Updates a budget.

Required permission(s):

Accounting > Budgets - View Edit

path Parameters
budgetId
required
integer <int32>
Request Body schema: application/json
Name
required
string non-empty

Name of the budget.

required
Array of objects (BudgetDetailsSaveMessage)

The financial details associated with the budget.

Responses

Request samples

Content type
application/json
{
  • "Name": "string",
  • "Details": [
    ]
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Name": "string",
  • "StartDate": "2019-08-24",
  • "EndDate": "2019-08-24",
  • "Property": {
    },
  • "Details": [
    ]
}

General Ledger

The General ledger tracks all debits and credits for every financial transaction over a period of time.

Retrieve all general ledger entries

Retrieves all general ledger entries

Required permission(s):

Accounting > General Ledger Transactions - View

query Parameters
accountingbasis
required
string
Enum: "Accrual" "Cash"

The methodology in which revenues and expenses are recognized when calculating the balances. Specifying Cash calculates balances based on when money changes hands. Specifying Accrual calculates balances based on the period in which the transaction originally happened.

entitytype
string
Enum: "Company" "Rental" "RentalOwner" "Association"

Specifies the type of entity that EntityId field refers to.

entityid
integer <int32>

Filters results to any general ledger entry containing line items associated with the specified entity identifier. This filter is used in conjunction with the EntityType field which must be set to the type of entity this identifier references.

glaccountids
required
Array of integers <int32> [ items <int32 > ]

Filters results to entries whose general ledger account belongs to the specified set of general ledger account ids.

startdate
required
string <date>

Filters results to any entries whose start date is greater than or equal to the specified value.

enddate
required
string <date>

Filters results to any entries whose end date is less than or equal to the specified value.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a general journal entry

Creates a general journal entry.

Required permission(s):

Accounting > General Ledger Transactions - View Edit

Request Body schema: application/json
required
object

A rental property, association or company to associate with the general journal entry.

Date
required
string <date>

Date of the general journal entry. The date must be formatted as YYYY-MM-DD.

Memo
string

Description of the general journal entry. Must be no longer than 240 characters.

required
Array of objects (GeneralJournalEntryLineSaveMessage)

A list of general journal entry lines. At least two lines are required. The total amount of the debit PostingType lines must equal the total of the credit PostingType lines.

Responses

Request samples

Content type
application/json
{
  • "AccountingEntity": {
    },
  • "Date": "2019-08-24",
  • "Memo": "string",
  • "Lines": [
    ]
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Date": "2019-08-24",
  • "TransactionType": "Bill",
  • "TotalAmount": 0,
  • "CheckNumber": "string",
  • "UnitAgreement": {
    },
  • "UnitId": 0,
  • "UnitNumber": "string",
  • "PaymentDetail": {
    },
  • "DepositDetails": {
    },
  • "Journal": {
    },
  • "LastUpdatedDateTime": "2019-08-24T14:15:22Z"
}

Update a general journal entry

Updates a general journal entry.

Required permission(s):

Accounting > General Ledger Transactions - View Edit

path Parameters
journalEntryId
required
integer <int32>
Request Body schema: application/json
required
object

A rental property, association or company to associate with the general journal entry.

Date
required
string <date>

Date of the general journal entry. The date must be formatted as YYYY-MM-DD.

Memo
string

Description of the general journal entry. Must be no longer than 240 characters.

required
Array of objects (GeneralJournalEntryLineSaveMessage)

A list of general journal entry lines. At least two lines are required. The total amount of the debit PostingType lines must equal the total of the credit PostingType lines.

Responses

Request samples

Content type
application/json
{
  • "AccountingEntity": {
    },
  • "Date": "2019-08-24",
  • "Memo": "string",
  • "Lines": [
    ]
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Date": "2019-08-24",
  • "TransactionType": "Bill",
  • "TotalAmount": 0,
  • "CheckNumber": "string",
  • "UnitAgreement": {
    },
  • "UnitId": 0,
  • "UnitNumber": "string",
  • "PaymentDetail": {
    },
  • "DepositDetails": {
    },
  • "Journal": {
    },
  • "LastUpdatedDateTime": "2019-08-24T14:15:22Z"
}

Retrieve all general ledger transactions

Retrieves a list of general ledger transactions.

Required permission(s):

Accounting > General Ledger Transactions - View

query Parameters
selectionentityid
integer <int32>

Filters results to any transaction containing journal lines for an entity associated with the specified entity id value. The id must be of the type specified in SelectionEntityType.

selectionentitytype
string
Enum: "Rental" "RentalOwner" "Association"

Specifies the type of entity that SelectionEntityId refers to.

startdate
required
string <date>

Filters results to any transaction whose date is greater than or equal to the specified value.

enddate
required
string <date>

Filters results to any transaction whose date is less than or equal to the specified value.

glaccountids
required
Array of integers <int32> [ items <int32 > ]

Filters results to transactions whose general ledger account belongs to the specified set of general ledger account ids.

selectionentityunitid
integer <int32>

Filters results to any transaction containing journal lines for the unitId specified. Only applicable when the SelectionEntityType is Rentals or Associations.

lastupdatedfrom
string <date-time>

Filters results to any transactions that were updated on or after the specified date. The value must be formatted as YYYY-MM-DDTHH:MM:SSZ.

lastupdatedto
string <date-time>

Filters results to any transactions that were updated on or before the specified date. The value must be formatted as YYYY-MM-DDTHH:MM:SSZ.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve a general ledger transaction

Retrieves a specific general ledger transaction.

Required permission(s):

Accounting > General Ledger Transactions - View

path Parameters
transactionId
required
integer <int32>

The general ledger transaction identifier.

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Date": "2019-08-24",
  • "TransactionType": "Bill",
  • "TotalAmount": 0,
  • "CheckNumber": "string",
  • "UnitAgreement": {
    },
  • "UnitId": 0,
  • "UnitNumber": "string",
  • "PaymentDetail": {
    },
  • "DepositDetails": {
    },
  • "Journal": {
    },
  • "LastUpdatedDateTime": "2019-08-24T14:15:22Z"
}

Retrieve all general ledger accounts

Retrieves a list of general ledger accounts.

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

Required permission(s):

Accounting > General Ledger Accounts - View

query Parameters
accounttypes
Array of strings
Items Enum: "Asset" "Liability" "Equity" "Income" "Expense"

Filters results by the specified general ledger account types.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a general ledger account

Creates a general ledger account.

Required permission(s):

Accounting > General Ledger Accounts - View Edit

Request Body schema: application/json
SubType
required
string
Enum: "CurrentAsset" "FixedAsset" "CurrentLiability" "LongTermLiability" "Equity" "Income" "NonOperatingIncome" "OperatingExpenses" "NonOperatingExpenses"

Describes the subtype of the general ledger account.

IsCashAsset
boolean

Indicates if an account is a Cash Asset. Can only have a value if SubType is CurrentAsset

Name
required
string non-empty

Name of the general ledger account. The name cannot exceed 50 characters and must be unique across all general ledger accounts.

AccountNumber
required
string non-empty

General ledger account number. The account number cannot exceed 12 characters and must be unique across all general ledger accounts.

Description
string

Description of the general ledger account. The description cannot exceed 250 characters.

IsContraAccount
boolean

Indicates whether the account is a contra account. Must be null if IsCashAsset field is set to true.

CashFlowClassification
string
Enum: "OperatingActivities" "InvestingActivities" "FinancingActivities"

Describes the cash flow classification for the general ledger account. Must be null if IsCashAsset field is set to true.

ParentGLAccountId
integer <int32>

Unique identifier of the parent general ledger account. Indicates if this is a sub general ledger account.

Responses

Request samples

Content type
application/json
{
  • "SubType": "CurrentAsset",
  • "IsCashAsset": true,
  • "Name": "string",
  • "AccountNumber": "string",
  • "Description": "string",
  • "IsContraAccount": true,
  • "CashFlowClassification": "OperatingActivities",
  • "ParentGLAccountId": 0
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "AccountNumber": "string",
  • "Name": "string",
  • "Description": "string",
  • "Type": "Asset",
  • "SubType": "CurrentAsset",
  • "IsDefaultGLAccount": true,
  • "DefaultAccountName": "string",
  • "IsContraAccount": true,
  • "IsBankAccount": true,
  • "CashFlowClassification": "OperatingActivities",
  • "ExcludeFromCashBalances": true,
  • "SubAccounts": [
    ],
  • "IsActive": true,
  • "ParentGLAccountId": 0
}

Retrieve a general ledger account

Retrieves a specific general ledger account.

Required permission(s):

Accounting > General Ledger Accounts - View

path Parameters
glAccountId
required
integer <int32>

The general ledger account identifier.

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "AccountNumber": "string",
  • "Name": "string",
  • "Description": "string",
  • "Type": "Asset",
  • "SubType": "CurrentAsset",
  • "IsDefaultGLAccount": true,
  • "DefaultAccountName": "string",
  • "IsContraAccount": true,
  • "IsBankAccount": true,
  • "CashFlowClassification": "OperatingActivities",
  • "ExcludeFromCashBalances": true,
  • "SubAccounts": [
    ],
  • "IsActive": true,
  • "ParentGLAccountId": 0
}

Update a general ledger account

Updates a general ledger account.

Required permission(s):

Accounting > General Ledger Accounts - View Edit

path Parameters
glAccountId
required
integer <int32>
Request Body schema: application/json
Name
required
string non-empty

Name of the general ledger account. The name cannot exceed 50 characters and must be unique across all general ledger accounts.

SubType
required
string
Enum: "CurrentAsset" "FixedAsset" "CurrentLiability" "LongTermLiability" "Equity" "Income" "NonOperatingIncome" "OperatingExpenses" "NonOperatingExpenses"

Describes the subtype of the general ledger account.

ParentGLAccountId
integer <int32>

Unique identifier of the parent general ledger account. Indicates if this is a sub general ledger account.

IsCashAsset
boolean

Indicates if an account is a Cash Asset. Can only have a value if SubType is CurrentAsset

AccountNumber
string

General ledger account number. The account number cannot exceed 12 characters and must be unique across all general ledger accounts.

Description
string

Description of the general ledger account. The description cannot exceed 250 characters.

IsContraAccount
boolean

Indicates whether the account is a contra account. Must be null if IsCashAsset field is set to true.

CashFlowClassification
string
Enum: "OperatingActivities" "InvestingActivities" "FinancingActivities"

Describes the cash flow classification for the general ledger account. Must be null if IsCashAsset field is set to true.

Responses

Request samples

Content type
application/json
{
  • "Name": "string",
  • "SubType": "CurrentAsset",
  • "ParentGLAccountId": 0,
  • "IsCashAsset": true,
  • "AccountNumber": "string",
  • "Description": "string",
  • "IsContraAccount": true,
  • "CashFlowClassification": "OperatingActivities"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "AccountNumber": "string",
  • "Name": "string",
  • "Description": "string",
  • "Type": "Asset",
  • "SubType": "CurrentAsset",
  • "IsDefaultGLAccount": true,
  • "DefaultAccountName": "string",
  • "IsContraAccount": true,
  • "IsBankAccount": true,
  • "CashFlowClassification": "OperatingActivities",
  • "ExcludeFromCashBalances": true,
  • "SubAccounts": [
    ],
  • "IsActive": true,
  • "ParentGLAccountId": 0
}

Retrieve all general ledger account balances

Retrieves all general ledger account balances as of a given date. The response includes the total balance of each account along with the subtotals for any accounting entities (company, associations or rental properties) that have transactions assigned to the account.

Required permission(s):

Accounting > General Ledger Accounts - View

query Parameters
entitytype
string
Enum: "Association" "Rental" "RentalOwner"

Specifies the type of entity that EntityId field refers to.

entityid
integer <int32>

Filters transactions used in calculating the general ledger account balances to only those containing journal lines for with the specified entity id value. The entity id specified must be of the type specified in EntityType.

glaccountids
Array of integers <int32> [ items <int32 > ]

Filters results to the specified set of general ledger account identifiers.

accountingbasis
required
string
Enum: "Accrual" "Cash"

The methodology in which revenues and expenses are recognized when calculating the balances. Specifying Cash calculates balances based on when money changes hands. Specifying Accrual calculates balances based on the period in which the transaction originally happened.

asofdate
required
string <date>

Indicates the end date through which the balances will be calculated. This will include all transactions in your account until this specified date.

aggregatebalancesbyunitid
boolean

Indicates whether to aggregate the AccountingEntityBalances by unit identifier in the response. If the value is set to true the AccountingEntityBalances will be aggregated by AccountingEntity.Unit.Id otherwise the response will have the balances aggregated by AccountingEntity.Id.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Associations

Association property resources providing access to associations and association notes.

Retrieve all associations

Retrieves a list of associations.

Required permission(s):

Associations > Associations and units - View

query Parameters
ids
Array of integers <int32> [ items <int32 > ]

Filters results to the specified set of ids.

location
string

Filters results to any association whose city or state contains the specified value.

status
string
Enum: "Active" "InActive"

Filters results by the status of the association. If no status is specified both active and inactive associations will be returned.

lastupdatedfrom
string <date-time>

Filters results to any associations that were updated on or after the specified date. The value must be in UTC and formatted as YYYY-MM-DDTHH:MM:SSZ.

lastupdatedto
string <date-time>

Filters results to any associations that were updated on or before the specified date. The value must be in UTC and formatted as YYYY-MM-DDTHH:MM:SSZ.

operatingbankaccountids
Array of integers <int32> [ items <int32 > ]

Filters results to any associations associated to any of the specified set of operating bank account ids.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create an association

Creates an association.

Required permission(s):

Associations > Associations and units - View Edit

Request Body schema: application/json
Name
required
string non-empty

Association name. The value cannot exceed 127 characters.

OperatingBankAccountId
required
integer <int32>

The primary bank account that an association uses for its income and expenses.

required
object

Association address.

IsActive
boolean

Indicates whether the association is active within the Buildium platform. If no value is passed in the default is true.

Reserve
number <double>

A property reserve is cash that a property manager keeps on hand in case of unexpected expenses. It is available cash that isn't disbursed in an owner draw.

Description
string

Description of the association. The description cannot exceed 65,535 characters.

YearBuilt
integer <int32>

Indicates the year the association was established. If provided this value must be a four digit integer between 1000 and the current year.

PropertyManagerId
integer <int32>

Indicates the staff member identifier that acts as the property manager for this association. Note, the staff member must have permissions to this association to be assigned as the property manager. Leave this field null if you don't want to assign a staff member to the association.

object

The tax information of the association.

Responses

Request samples

Content type
application/json
{
  • "Name": "string",
  • "OperatingBankAccountId": 0,
  • "Address": {
    },
  • "IsActive": true,
  • "Reserve": 0,
  • "Description": "string",
  • "YearBuilt": 0,
  • "PropertyManagerId": 0,
  • "TaxInformation": {
    }
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Name": "string",
  • "IsActive": true,
  • "Reserve": 0,
  • "Description": "string",
  • "YearBuilt": 0,
  • "OperatingBankAccount": "string",
  • "OperatingBankAccountId": 0,
  • "Address": {
    },
  • "AssociationManager": {
    },
  • "FiscalYearEndDay": 0,
  • "FiscalYearEndMonth": 0,
  • "TaxInformation": {
    }
}

Retrieve an association

Retrieve a specific association.

Required permission(s):

Associations > Associations and units - View

path Parameters
associationId
required
integer <int32>

The association identifier.

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Name": "string",
  • "IsActive": true,
  • "Reserve": 0,
  • "Description": "string",
  • "YearBuilt": 0,
  • "OperatingBankAccount": "string",
  • "OperatingBankAccountId": 0,
  • "Address": {
    },
  • "AssociationManager": {
    },
  • "FiscalYearEndDay": 0,
  • "FiscalYearEndMonth": 0,
  • "TaxInformation": {
    }
}

Update an association

Updates an association.

NOTE: Any field not included in the update request will be set to either an empty string or null in the database depending on the field definition.

The recommended workflow to ensure no data is inadvertently overwritten is to execute a GET request for the resource you're about to update and then use this response to fill any of the fields that are not being updated.

Required permission(s):

Associations > Associations and units - View Edit

path Parameters
associationId
required
integer <int32>
Request Body schema: application/json
Name
required
string non-empty

Association name. The value cannot exceed 127 characters.

Description
string

Description of the association. The value cannot exceed 65,535 characters.

YearBuilt
integer <int32>

Indicates the year the association was established. If provided this value must be a four digit integer between 1000 and the current year.

OperatingBankAccountId
required
integer <int32>

The primary bank account that an association uses for its income and expenses.

Reserve
number <double>

A property reserve is cash that a property manager keeps on hand in case of unexpected expenses. It is available cash that isn't disbursed in an owner draw.

required
object

Association address.

PropertyManagerId
integer <int32>

Indicates the staff member identifier that acts as the property manager for this association. Note, the staff member must have permissions to this association to be assigned as the property manager. Set this field to null if you don't want to assign a staff member to the association.

FiscalYearEndDay
required
integer <int32>

The day the fiscal year ends for the association.

FiscalYearEndMonth
required
integer <int32>

The month the fiscal year ends for the association.

Responses

Request samples

Content type
application/json
{
  • "Name": "string",
  • "Description": "string",
  • "YearBuilt": 0,
  • "OperatingBankAccountId": 0,
  • "Reserve": 0,
  • "Address": {
    },
  • "PropertyManagerId": 0,
  • "FiscalYearEndDay": 0,
  • "FiscalYearEndMonth": 0
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Name": "string",
  • "IsActive": true,
  • "Reserve": 0,
  • "Description": "string",
  • "YearBuilt": 0,
  • "OperatingBankAccount": "string",
  • "OperatingBankAccountId": 0,
  • "Address": {
    },
  • "AssociationManager": {
    },
  • "FiscalYearEndDay": 0,
  • "FiscalYearEndMonth": 0,
  • "TaxInformation": {
    }
}

Retrieve ePay settings

Retrieves ePay settings for an association.

Required permission(s):

Associations > Associations and units - View

path Parameters
associationId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "EFTPayments": {
    },
  • "CreditCardPayments": {
    },
  • "OfflinePayments": {
    }
}

Update ePay settings

Updates ePay settings for an association.

Required permission(s):

Associations > Associations and units - View Edit

path Parameters
associationId
required
integer <int32>
Request Body schema: application/json
required
object

The property EFT payment settings.

required
object

The property credit card payment settings.

required
object

The property offline payment settings.

Responses

Request samples

Content type
application/json
{
  • "EFTPayments": {
    },
  • "CreditCardPayments": {
    },
  • "OfflinePayments": {
    }
}

Response samples

Content type
application/json
{
  • "EFTPayments": {
    },
  • "CreditCardPayments": {
    },
  • "OfflinePayments": {
    }
}

Inactivate an association

Inactivates an association along with associated units and ownership accounts.

Required permission(s):

Associations > Associations and units - View Edit

path Parameters
associationId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "UserMessage": "string",
  • "ErrorCode": "string",
  • "Errors": [
    ]
}

Retrieve all notes

Retrieves all notes.

Required permission(s):

Associations > Associations and units - View

path Parameters
associationId
required
integer <int32>
query Parameters
updateddatetimefrom
string <date-time>

Filters results to any note whose updated date and time are greater than or equal to the specified value. The value must be formatted as YYYY-MM-DD HH:MM:SS.

updateddatetimeto
string <date-time>

Filters results to any note whose updated date and time are less than or equal to the specified value. The value must be formatted as YYYY-MM-DD HH:MM:SS.

lastupdatedbyuserid
integer <int32>

Filters results to only notes that were last updated by the specified user identifier.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a note

Creates a note.

Required permission(s):

Associations > Associations and units - View Edit

path Parameters
associationId
required
integer <int32>
Request Body schema: application/json
Note
required
string non-empty

Note contents. The value cannot exceed 65535 characters.

Responses

Request samples

Content type
application/json
{
  • "Note": "string"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Note": "string",
  • "LastUpdatedByUser": {
    }
}

Retrieve a note

Retrieves a note.

Required permission(s):

Associations > Associations and units - View

path Parameters
associationId
required
integer <int32>
noteId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Note": "string",
  • "LastUpdatedByUser": {
    }
}

Update a note

Updates a note.

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

Required permission(s):

Associations > Associations and units - View Edit

path Parameters
associationId
required
integer <int32>
noteId
required
integer <int32>
Request Body schema: application/json
Note
required
string non-empty

Note contents. The value cannot exceed 65535 characters.

Responses

Request samples

Content type
application/json
{
  • "Note": "string"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Note": "string",
  • "LastUpdatedByUser": {
    }
}

Reactivate an association

Reactivates an association along with associated units and ownership accounts.

Required permission(s):

Associations > Associations and units - View Edit

path Parameters
associationId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "UserMessage": "string",
  • "ErrorCode": "string",
  • "Errors": [
    ]
}

Retrieve all preferred vendors

Retrieves all preferred vendors.

Required permission(s):

Associations > Associations and units - View
Maintenance > Vendors - View

path Parameters
associationId
required
integer <int32>
query Parameters
orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Update preferred vendors

Updates preferred vendors.

NOTE: Any field not included in the update request will be set to either an empty string or null in the database depending on the field definition.

The recommended workflow to ensure no data is inadvertently overwritten is to execute a GET request for the resource you're about to update and then use this response to fill any of the fields that are not being updated.

Required permission(s):

Associations > Associations and units - View Edit
Maintenance > Vendors - View Edit

path Parameters
associationId
required
integer <int32>
Request Body schema: application/json
VendorIds
required
Array of integers <int32> [ items <int32 > ]

A list of vendor identifiers that will be assigned as preferred vendors to the specified association. The submitted list of identifiers will overwrite any existing preferred vendors. Leaving the array empty will remove all vendors from the association.

Responses

Request samples

Content type
application/json
{
  • "VendorIds": [
    ]
}

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve all association bank lockbox data

Retrieves all association bank lockbox data.

Required permission(s):

Associations > Associations and units - View

query Parameters
associationids
Array of integers <int32> [ items <int32 > ]

Filters results to only include Associations with matching IDs

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Association Units

Association unit resources providing access to units and unit notes.

Retrieve all units

Retrieves a list of association units.

Required permission(s):

Associations > Associations and units - View

query Parameters
associationids
Array of integers <int32> [ items <int32 > ]

Filters results to only include Associations with matching IDs

lastupdatedfrom
string <date-time>

Filters results to any association units that were updated on or after the specified date. The value must be in UTC and formatted as YYYY-MM-DDTHH:MM:SSZ.

lastupdatedto
string <date-time>

Filters results to any association units that were updated on or before the specified date. The value must be in UTC and formatted as YYYY-MM-DDTHH:MM:SSZ.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a unit

Creates an association unit.

Required permission(s):

Associations > Associations and units - View Edit

Request Body schema: application/json
UnitNumber
required
string non-empty

Unit number. Must be unique within the association and cannot exceed 30 characters.

AssociationId
required
integer <int32>

Association unique identifier that the unit belongs to.

UnitSize
integer <int32>

Size of the unit.

required
object

Unit address.

UnitBedrooms
string
Enum: "NotSet" "Studio" "OneBed" "TwoBed" "ThreeBed" "FourBed" "FiveBed" "SixBed" "SevenBed" "EightBed" "NineBedPlus"

Number of bedrooms in the unit.

UnitBathrooms
string
Enum: "NotSet" "OneBath" "OnePointFiveBath" "TwoBath" "TwoPointFiveBath" "ThreeBath" "FourBath" "FiveBath" "FivePlusBath" "ThreePointFiveBath" "FourPointFiveBath"

Number of bathrooms in the unit.

Responses

Request samples

Content type
application/json
{
  • "UnitNumber": "string",
  • "AssociationId": 0,
  • "UnitSize": 0,
  • "Address": {
    },
  • "UnitBedrooms": "NotSet",
  • "UnitBathrooms": "NotSet"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "AssociationId": 0,
  • "AssociationName": "string",
  • "UnitNumber": "string",
  • "Address": {
    },
  • "UnitBedrooms": "NotSet",
  • "UnitBathrooms": "NotSet",
  • "UnitSize": 0
}

Retrieve a unit

Retrieve a specific association unit.

Required permission(s):

Associations > Associations and units - View

path Parameters
unitId
required
integer <int32>

The association unit identifier.

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "AssociationId": 0,
  • "AssociationName": "string",
  • "UnitNumber": "string",
  • "Address": {
    },
  • "UnitBedrooms": "NotSet",
  • "UnitBathrooms": "NotSet",
  • "UnitSize": 0
}

Update a unit

Updates an association unit.

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

Required permission(s):

Associations > Associations and units - View Edit

path Parameters
unitId
required
integer <int32>

The identifier of the unit to update.

Request Body schema: application/json
UnitNumber
required
string non-empty

Unit Number. Must be unique within the association and cannot exceed 30 characters.

UnitSize
integer <int32>

Size of the unit.

required
object

Unit address.

UnitBedrooms
string
Enum: "NotSet" "Studio" "OneBed" "TwoBed" "ThreeBed" "FourBed" "FiveBed" "SixBed" "SevenBed" "EightBed" "NineBedPlus"

Number of bedrooms in the unit.

UnitBathrooms
string
Enum: "NotSet" "OneBath" "OnePointFiveBath" "TwoBath" "TwoPointFiveBath" "ThreeBath" "FourBath" "FiveBath" "FivePlusBath" "ThreePointFiveBath" "FourPointFiveBath"

Number of bathrooms in the unit.

Responses

Request samples

Content type
application/json
{
  • "UnitNumber": "string",
  • "UnitSize": 0,
  • "Address": {
    },
  • "UnitBedrooms": "NotSet",
  • "UnitBathrooms": "NotSet"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "AssociationId": 0,
  • "AssociationName": "string",
  • "UnitNumber": "string",
  • "Address": {
    },
  • "UnitBedrooms": "NotSet",
  • "UnitBathrooms": "NotSet",
  • "UnitSize": 0
}

Retrieve all notes

Retrieves all association unit notes.

Required permission(s):

Associations > Associations and units - View

path Parameters
unitId
required
integer <int32>
query Parameters
updateddatetimefrom
string <date-time>

Filters results to any note whose updated date and time are greater than or equal to the specified value. The value must be formatted as YYYY-MM-DD HH:MM:SS.

updateddatetimeto
string <date-time>

Filters results to any note whose updated date and time are less than or equal to the specified value. The value must be formatted as YYYY-MM-DD HH:MM:SS.

lastupdatedbyuserid
integer <int32>

Filters results to only notes that were last updated by the specified user identifier.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a note

Creates a new association unit note.

Required permission(s):

Associations > Associations and units - View Edit

path Parameters
unitId
required
integer <int32>
Request Body schema: application/json
Note
required
string non-empty

Note contents. The value cannot exceed 65535 characters.

Responses

Request samples

Content type
application/json
{
  • "Note": "string"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Note": "string",
  • "LastUpdatedByUser": {
    }
}

Retrieve a note

Retrieves an association unit note.

Required permission(s):

Associations > Associations and units - View

path Parameters
unitId
required
integer <int32>
noteId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Note": "string",
  • "LastUpdatedByUser": {
    }
}

Update a note

Updates an association unit note.

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

Required permission(s):

Associations > Associations and units - View Edit

path Parameters
unitId
required
integer <int32>
noteId
required
integer <int32>
Request Body schema: application/json
Note
required
string non-empty

Note contents. The value cannot exceed 65535 characters.

Responses

Request samples

Content type
application/json
{
  • "Note": "string"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Note": "string",
  • "LastUpdatedByUser": {
    }
}

Appliances

Association appliance resources providing access to appliances and appliance history.

Retrieve all appliances

Retrieves all association appliances.

Required permission(s):

Associations > Associations and units - View

query Parameters
associationids
Array of integers <int32> [ items <int32 > ]

Filters results to appliances associated to any of the specified association identifiers.

unitids
Array of integers <int32> [ items <int32 > ]

Filters results to appliances associated to any of the specified association unit identifiers.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create an appliance

Creates an association appliance.

Required permission(s):

Associations > Associations and units - View Edit

Request Body schema: application/json
AssociationId
required
integer <int32>

Association unique identifier that the appliance belongs to.

UnitId
integer <int32>

Association unit unique identifier that the appliance belongs to.

Name
required
string non-empty

The name of the appliance. The name cannot exceed 100 characters.

Make
string

The make of the appliance. The make cannot exceed 30 characters.

Model
string

The model of the appliance. The model cannot exceed 30 characters.

Description
string

The description of the appliance. The description cannot exceed 500 characters.

InstallDate
string <date>

The install date for the appliance's warranty. Must be formatted as YYYY-MM-DD.

WarrantyEndDate
string <date>

The end date for the appliance's warranty. The warranty's end date cannot be before the installed date, if it exists. Must be formatted as YYYY-MM-DD.

Responses

Request samples

Content type
application/json
{
  • "AssociationId": 0,
  • "UnitId": 0,
  • "Name": "string",
  • "Make": "string",
  • "Model": "string",
  • "Description": "string",
  • "InstallDate": "2019-08-24",
  • "WarrantyEndDate": "2019-08-24"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "AssociationId": 0,
  • "UnitId": 0,
  • "Name": "string",
  • "Make": "string",
  • "Model": "string",
  • "Description": "string",
  • "WarrantyEndDate": "2019-08-24"
}

Retrieve an appliance

Retrieves an association appliance by id.

Required permission(s):

Associations > Associations and units - View

path Parameters
applianceId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "AssociationId": 0,
  • "UnitId": 0,
  • "Name": "string",
  • "Make": "string",
  • "Model": "string",
  • "Description": "string",
  • "WarrantyEndDate": "2019-08-24"
}

Update an appliance

Updates an association appliance.

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

Required permission(s):

Associations > Associations and units - View Edit

path Parameters
applianceId
required
integer <int32>
Request Body schema: application/json
UnitId
integer <int32>

The unit identifier the association appliance belongs to. Must be within the association property the appliance is in.

Name
required
string non-empty

The name of the association appliance. The name cannot exceed 100 characters.

Make
string

The make of the association appliance. The make cannot exceed 30 characters.

Model
string

The model of the association appliance. The model cannot exceed 30 characters.

Description
string

The description of the association appliance. The description cannot exceed 500 characters.

WarrantyEndDate
string <date>

The end date for the association appliance's warranty. The warranty's end date cannot be before the installed date, if it exists. Must be formatted as YYYY-MM-DD.

Responses

Request samples

Content type
application/json
{
  • "UnitId": 0,
  • "Name": "string",
  • "Make": "string",
  • "Model": "string",
  • "Description": "string",
  • "WarrantyEndDate": "2019-08-24"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "AssociationId": 0,
  • "UnitId": 0,
  • "Name": "string",
  • "Make": "string",
  • "Model": "string",
  • "Description": "string",
  • "WarrantyEndDate": "2019-08-24"
}

Delete an appliance

Deletes an associations appliance.

Required permission(s):

Associations > Associations and units - View Edit

path Parameters
applianceId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "UserMessage": "string",
  • "ErrorCode": "string",
  • "Errors": [
    ]
}

Retrieve all service history

Retrieves all of the service history records for an appliance.

Required permission(s):

Associations > Associations and units - View

path Parameters
applianceId
required
integer <int32>
query Parameters
orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a service history

Creates a service history for an appliance.

Required permission(s):

Associations > Associations and units - View Edit

path Parameters
applianceId
required
integer <int32>
Request Body schema: application/json
ServiceType
required
string
Enum: "Installed" "Serviced" "Uninstalled"

Specifies the type of service that occured.

Date
required
string <date>

Date the service was performed. Must be formatted as YYYY-MM-DD.

Details
string

The service history details associated with the appliance. The description cannot exceed 100 characters.

Responses

Request samples

Content type
application/json
{
  • "ServiceType": "Installed",
  • "Date": "2019-08-24",
  • "Details": "string"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "ServiceType": "Installed",
  • "Date": "2019-08-24",
  • "Details": "string"
}

Retrieve a service history

Retrieves a specific service history record for a given appliance.

Required permission(s):

Associations > Associations and units - View

path Parameters
applianceId
required
integer <int32>
serviceHistoryId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "ServiceType": "Installed",
  • "Date": "2019-08-24",
  • "Details": "string"
}

Association Owners

Association owners resources providing access to owners and owner notes.

Retrieve all owners

Retrieves a list of association owners.

Required permission(s):

Associations > Association owners and tenants - View

query Parameters
name
string

Filters results to only records whose name contains the specified value.

phone
string

Filters results to only records whose phone number contains the specified value.

email
string

Filters results to only records whose email contains the specified value.

associationids
Array of integers <int32> [ items <int32 > ]

Filters results to only records that belong to the specified set of association identifiers.

statuses
Array of strings
Items Enum: "Active" "Past" "Future"

Filters results to only records whose status is equal to the specified value.

createddatetimeto
string <date-time>

Filters results to only records that were created before this date. Must be formatted as YYYY-MM-DD.

createddatetimefrom
string <date-time>

Filters results to only records that were created after this date. Must be formatted as YYYY-MM-DD.

lastupdatedfrom
string <date-time>

Filters results to any association owners that were updated on or after the specified date. The value must be in UTC and formatted as YYYY-MM-DDTHH:MM:SSZ.

lastupdatedto
string <date-time>

Filters results to any association owners that were updated on or before the specified date. The value must be in UTC and formatted as YYYY-MM-DDTHH:MM:SSZ.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create an owner

Creates an association owner.

Required permission(s):

Associations > Association owners and tenants - View Edit
Associations > Ownership accounts - View Edit

Request Body schema: application/json
OwnershipAccountId
required
integer <int32>

Ownership account Id for the owner.

SendWelcomeEmail
required
boolean

Send a welcome email to any homeowner at the association

required
object

Address of the owner.

object

Alternate address of the owner.

FirstName
required
string non-empty

First name of the owner. The value can not exceed 127 characters.

LastName
required
string non-empty

Last name of the owner. The value can not exceed 127 characters.

object

Association board member terms for the owner.

IsOwnerOccupied
required
boolean

Indicates if the association owner occupies a unit(s) within the association.

Email
string

Email of owner.

AlternateEmail
string

Alternate email of owner.

object

Phone numbers for the owner.

DateOfBirth
string <date>

Date Of Birth for the owner. Must be formatted as YYYY-MM-DD.

object

Emergency Contact information associated with the owner.

Comment
string

Comments about the owner. The value can not exceed 65,535 characters.

MailingPreference
string
Enum: "PrimaryAddress" "AlternateAddress"

Mailing preferences for the owner. If an alternate address exists and this value is not provided then the primary address will be set as the preferred address.

TaxId
string

Taxpayer identification number of the owner. Examples of United States identification numbers are Social Security number or a Employer Identification Number. Valid formats are: 12-1234567, 123-12-1234, 123456789.

Responses

Request samples

Content type
application/json
{
  • "OwnershipAccountId": 0,
  • "SendWelcomeEmail": true,
  • "PrimaryAddress": {
    },
  • "AlternateAddress": {
    },
  • "FirstName": "string",
  • "LastName": "string",
  • "BoardMemberTerm": {
    },
  • "IsOwnerOccupied": true,
  • "Email": "string",
  • "AlternateEmail": "string",
  • "PhoneNumbers": {
    },
  • "DateOfBirth": "2019-08-24",
  • "EmergencyContact": {
    },
  • "Comment": "string",
  • "MailingPreference": "PrimaryAddress",
  • "TaxId": "string"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "FirstName": "string",
  • "LastName": "string",
  • "Email": "string",
  • "AlternateEmail": "string",
  • "PhoneNumbers": [
    ],
  • "PrimaryAddress": {
    },
  • "AlternateAddress": {
    },
  • "Comment": "string",
  • "EmergencyContact": {
    },
  • "OwnershipAccounts": [
    ],
  • "MailingPreference": "PrimaryAddress",
  • "Vehicles": [
    ],
  • "OccupiesUnit": true,
  • "BoardMemberTerms": [
    ],
  • "CreatedDateTime": "2019-08-24T14:15:22Z",
  • "TaxId": "string",
  • "DelinquencyStatus": "NoDelinquency"
}

Retrieve an owner

Retrieve a specific association owner.

Required permission(s):

Associations > Association owners and tenants - View

path Parameters
ownerId
required
integer <int32>

The association owner identifier.

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "FirstName": "string",
  • "LastName": "string",
  • "Email": "string",
  • "AlternateEmail": "string",
  • "PhoneNumbers": [
    ],
  • "PrimaryAddress": {
    },
  • "AlternateAddress": {
    },
  • "Comment": "string",
  • "EmergencyContact": {
    },
  • "OwnershipAccounts": [
    ],
  • "MailingPreference": "PrimaryAddress",
  • "Vehicles": [
    ],
  • "OccupiesUnit": true,
  • "BoardMemberTerms": [
    ],
  • "CreatedDateTime": "2019-08-24T14:15:22Z",
  • "TaxId": "string",
  • "DelinquencyStatus": "NoDelinquency"
}

Update an owner

Updates an existing association owner.

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

Required permission(s):

Associations > Association owners and tenants - View Edit

path Parameters
ownerId
required
integer <int32>

The identifier of the association owner to update.

Request Body schema: application/json
FirstName
required
string non-empty

First name of the owner. The value cannot exceed 127 characters.

LastName
required
string non-empty

Last name of the owner. The value cannot exceed 127 characters.

required
object

Address of the owner.

object

Alternate address of the owner.

Email
string

Email of the owner.

AlternateEmail
string

Alternate email of the owner.

object

Phone numbers for the association owner.

object

Emergency contact information associated with the owner.

Comment
string

Comments about the owner. The value cannot exceed 65,535 characters.

MailingPreference
string
Enum: "PrimaryAddress" "AlternateAddress"

Mailing preferences for the owner. If an alternate address exists and this value is not provided then the primary address will be set as the preferred address.

TaxId
string

Taxpayer identification number of the owner. Examples of United States identification numbers are Social Security number or a Employer Identification Number. Valid formats are: 12-1234567, 123-12-1234, 123456789.

Responses

Request samples

Content type
application/json
{
  • "FirstName": "string",
  • "LastName": "string",
  • "PrimaryAddress": {
    },
  • "AlternateAddress": {
    },
  • "Email": "string",
  • "AlternateEmail": "string",
  • "PhoneNumbers": {
    },
  • "EmergencyContact": {
    },
  • "Comment": "string",
  • "MailingPreference": "PrimaryAddress",
  • "TaxId": "string"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "FirstName": "string",
  • "LastName": "string",
  • "Email": "string",
  • "AlternateEmail": "string",
  • "PhoneNumbers": [
    ],
  • "PrimaryAddress": {
    },
  • "AlternateAddress": {
    },
  • "Comment": "string",
  • "EmergencyContact": {
    },
  • "OwnershipAccounts": [
    ],
  • "MailingPreference": "PrimaryAddress",
  • "Vehicles": [
    ],
  • "OccupiesUnit": true,
  • "BoardMemberTerms": [
    ],
  • "CreatedDateTime": "2019-08-24T14:15:22Z",
  • "TaxId": "string",
  • "DelinquencyStatus": "NoDelinquency"
}

Retrieve all notes

Retrieves all association owner notes.

Required permission(s):

Associations > Association owners and tenants - View

path Parameters
ownerId
required
integer <int32>
query Parameters
updateddatetimefrom
string <date-time>

Filters results to any note whose updated date and time are greater than or equal to the specified value. The value must be formatted as YYYY-MM-DD HH:MM:SS.

updateddatetimeto
string <date-time>

Filters results to any note whose updated date and time are less than or equal to the specified value. The value must be formatted as YYYY-MM-DD HH:MM:SS.

lastupdatedbyuserid
integer <int32>

Filters results to only notes that were last updated by the specified user identifier.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a note

Creates an association owner note.

Required permission(s):

Associations > Association owners and tenants - View Edit

path Parameters
ownerId
required
integer <int32>
Request Body schema: application/json
Note
required
string non-empty

Note contents. The value cannot exceed 65535 characters.

Responses

Request samples

Content type
application/json
{
  • "Note": "string"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Note": "string",
  • "LastUpdatedByUser": {
    }
}

Retrieve a note

Retrieves an association owner note.

Required permission(s):

Associations > Association owners and tenants - View

path Parameters
ownerId
required
integer <int32>
noteId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Note": "string",
  • "LastUpdatedByUser": {
    }
}

Update a note

Updates an association owner note.

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

Required permission(s):

Associations > Association owners and tenants - View Edit

path Parameters
ownerId
required
integer <int32>
noteId
required
integer <int32>
Request Body schema: application/json
Note
required
string non-empty

Note contents. The value cannot exceed 65535 characters.

Responses

Request samples

Content type
application/json
{
  • "Note": "string"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Note": "string",
  • "LastUpdatedByUser": {
    }
}

Retrieve all occupancy statuses

Retrieves the occupancy status for all of the units owned by the association owner.

Required permission(s):

Associations > Association owners and tenants - View
Associations > Ownership Accounts - View

path Parameters
ownerId
required
integer <int32>
query Parameters
orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve an occupancy status

Retrieves the owner occupancy status for an association unit.

Required permission(s):

Associations > Association owners and tenants - View
Associations > Ownership Accounts - View

path Parameters
ownerId
required
integer <int32>
unitId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "UnitId": 0,
  • "IsOccupied": true
}

Update occupancy status

Updates whether a unit is occupied by the association owner.

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

Required permission(s):

Associations > Association owners and tenants - View Edit
Associations > Ownership Accounts - View

path Parameters
ownerId
required
integer <int32>
unitId
required
integer <int32>
Request Body schema: application/json
IsOccupied
required
boolean

Indicates whether the unit is occupied by the association owner.

Responses

Request samples

Content type
application/json
{
  • "IsOccupied": true
}

Response samples

Content type
application/json
{
  • "UnitId": 0,
  • "IsOccupied": true
}

Ownership Accounts

Association ownership account resources providing access to ownership accounts and ownership account notes.

Retrieve all ownership accounts

Retrieves a list of ownership accounts.

Required permission(s):

Associations > Ownership accounts - View

query Parameters
ids
Array of integers <int32> [ items <int32 > ]

Filters results to the specified set of ids.

associationids
Array of integers <int32> [ items <int32 > ]

Filters results to any ownership accounts who belong to the specified set of association ids.

unitorowner
string

Filters results to any association whose unit or owner contains the specified value.

datefrom
string <date>

Filters results to any ownership account whose start date is greater than or equal to the specified value.

dateto
string <date>

Filters results to any ownership account whose start date is less than or equal to the specified value.

status
Array of strings
Items Enum: "Active" "Past" "Future"

Filters results by the status of the association. If no status is specified, active, past and future associations will be returned.

delinquencystatuses
Array of strings
Items Enum: "NoDelinquency" "InCollections" "InForeclosure" "Foreclosed"

Filters results by the delinquency status of the ownership account. If no status is specified, ownership accounts of any delinquency status will be returned.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create an ownership account

Creates an ownership account.

Required permission(s):

Associations > Ownership accounts - View Edit
Associations > Owners - View Edit

Request Body schema: application/json
UnitId
required
integer <int32>

Association unit unique identifier that the ownership account is related to.

DateOfPurchase
required
string <date>

Date the unit was purchased by the owner. Must be formatted as YYYY-MM-DD. If an existing association ownership account is being replaced then this date must be after the existing ownership accounts date of sale.

AssociationFee
number <double>

Recurring association fee charge. If provided, a recurring transaction will be created that adds a charge in the amount specified to the ownership account ledger with the frequency indicated in RecurringFrequency.

RecurringFrequency
string
Enum: "Monthly" "Weekly" "Every2Weeks" "Quarterly" "Yearly" "Every2Months" "Daily" "Every6Months" "OneTime"

Indicates the frequency of the recurring association fee. This field is required if AssociationFee has a value.

AssociationOwnerIds
Array of integers <int32> [ items <int32 > ]

Current or former association owners to assign to this ownership account. Values must be an active association owner identifiers. The request must include at least one owner in this property OR the AssociationOwners property.

Array of objects (AssociationOwnerPostMessage)

Create new association owner(s) and assigns them to this new ownership account. The request must include at least one owner in this property OR the AssociationOwnerIds property.

SendWelcomeEmail
required
boolean

Indicates whether to send an owner portal welcome email to all of the association owners assigned to this ownership account. Once the owners sign into the portal, they can make online payments, view important documents, submit requests, and more.

ReplaceExistingOwnershipAccount
required
boolean

Indicates whether to replace an ownership account if one already exists for this unit. If this value is false and an ownership account exists the request will fail.This protects against inadvertently overwriting of an existing ownership account. If the value is true and an ownership account exists then the existing ownership account will be marked as with a status of Past and the newly created ownership account will be Active for the unit.

Responses

Request samples

Content type
application/json
{
  • "UnitId": 0,
  • "DateOfPurchase": "2019-08-24",
  • "AssociationFee": 0,
  • "RecurringFrequency": "Monthly",
  • "AssociationOwnerIds": [
    ],
  • "AssociationOwners": [
    ],
  • "SendWelcomeEmail": true,
  • "ReplaceExistingOwnershipAccount": true
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "AssociationId": 0,
  • "UnitId": 0,
  • "Status": "Active",
  • "DateOfPurchase": "2019-08-24",
  • "DateOfSale": "2019-08-24",
  • "Comments": "string",
  • "AssociationOwnerIds": [
    ],
  • "DelinquencyStatus": "NoDelinquency"
}

Retrieve an ownership account

Retrieves a specific ownership account.

Required permission(s):

Associations > Ownership accounts - View

path Parameters
ownershipAccountId
required
integer <int32>

The ownership account identifier.

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "AssociationId": 0,
  • "UnitId": 0,
  • "Status": "Active",
  • "DateOfPurchase": "2019-08-24",
  • "DateOfSale": "2019-08-24",
  • "Comments": "string",
  • "AssociationOwnerIds": [
    ],
  • "DelinquencyStatus": "NoDelinquency"
}

Update an ownership account

Updates an ownership account.

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

Required permission(s):

Associations > Ownership accounts - View Edit

path Parameters
ownershipAccountId
required
integer <int32>
Request Body schema: application/json
DateOfPurchase
required
string <date>

Date the unit was purchased by the owner. Must be formatted as YYYY-MM-DD.

Responses

Request samples

Content type
application/json
{
  • "DateOfPurchase": "2019-08-24"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "AssociationId": 0,
  • "UnitId": 0,
  • "Status": "Active",
  • "DateOfPurchase": "2019-08-24",
  • "DateOfSale": "2019-08-24",
  • "Comments": "string",
  • "AssociationOwnerIds": [
    ],
  • "DelinquencyStatus": "NoDelinquency"
}

Retrieve all notes

Retrieves notes for an ownership account.

Required permission(s):

Associations > OwnershipAccounts - View

path Parameters
ownershipAccountId
required
integer <int32>
query Parameters
updateddatetimefrom
string <date-time>

Filters results to any note whose updated date and time are greater than or equal to the specified value. The value must be formatted as YYYY-MM-DD HH:MM:SS.

updateddatetimeto
string <date-time>

Filters results to any note whose updated date and time are less than or equal to the specified value. The value must be formatted as YYYY-MM-DD HH:MM:SS.

lastupdatedbyuserid
integer <int32>

Filters results to only notes that were last updated by the specified user identifier.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a note

Creates a new ownership account note.

Required permission(s):

Associations > Ownership accounts - View Edit

path Parameters
ownershipAccountId
required
integer <int32>
Request Body schema: application/json
Note
required
string non-empty

Note contents. The value cannot exceed 65535 characters.

Responses

Request samples

Content type
application/json
{
  • "Note": "string"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Note": "string",
  • "LastUpdatedByUser": {
    }
}

Retrieve a note

Retrieves an ownership account note.

Required permission(s):

Associations > OwnershipAccounts - View

path Parameters
ownershipAccountId
required
integer <int32>
noteId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Note": "string",
  • "LastUpdatedByUser": {
    }
}

Update a note

Updates an association ownership account note.

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

Required permission(s):

Associations > Ownership Accounts - View Edit

path Parameters
ownershipAccountId
required
integer <int32>
noteId
required
integer <int32>
Request Body schema: application/json
Note
required
string non-empty

Note contents. The value cannot exceed 65535 characters.

Responses

Request samples

Content type
application/json
{
  • "Note": "string"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Note": "string",
  • "LastUpdatedByUser": {
    }
}

Retrieve all partial payment settings for an ownership account

Retrieves partial payment settings for an ownership account.

Required permission(s):

Associations > OwnershipAccounts - View

path Parameters
ownershipAccountId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "RequirePaymentsInFull": true
}

Update partial payment settings for an ownership account

Updates partial payment settings for an ownership account.

Required Permission(s):

Associations > Ownership Accounts - View Edit Administration > Application Settings - View Edit

path Parameters
ownershipAccountId
required
integer <int32>
Request Body schema:

Represents the structure of the data that can be provided to a JSON patch document as path values via JSON pointer syntax.

RequirePaymentsInFull
boolean

Whether or not the ownership account payments are required in full.

Responses

Request samples

Content type
[
  • {
    },
  • {
    },
  • {
    },
  • {
    }
]

Response samples

Content type
application/json
{
  • "RequirePaymentsInFull": true
}

Ownership Account Transactions

Ownership account transaction resources that allow for recording both one-time and recurring transactions such as charges, payments and credits on the ownership account ledger.

Retrieve all transactions

Retrieves all ledger transactions for a specific ownership account.

Required permission(s):

Associations > Ownership account transactions - View

path Parameters
ownershipAccountId
required
integer <int32>

The ownership account identifier.

query Parameters
transactiondatefrom
string <date>

Filters results to any lease transaction whose start date is greater than or equal to the specified value.

transactiondateto
string <date>

Filters results to any lease transaction whose end date is less than or equal to the specified value.

transactiontypes
Array of strings
Items Enum: "Bill" "Check" "Charge" "Payment" "Credit" "Refund" "ApplyDeposit" "ElectronicFundsTransfer" "Other" "Deposit" "GeneralJournalEntry" "OwnerContribution" "ReversePayment" "ReverseElectronicFundsTransfer" "VendorCredit" "RentalApplicationFeePayment" "ReverseRentalApplicationFeePayment" "ReverseOwnerContribution" "VendorRefund" "UnreversedPayment" "UnreversedElectronicFundsTransfer" "UnreversedOwnerContribution" "UnreversedRentalApplicationFeePayment"

Filters results to any lease transaction whose lease transaction type matches the specified status. If no type is specified, lease transactions with any type will be returned.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve a transaction

Retrieves a specific ownership account ledger transaction.

Required permission(s):

Associations > Ownership account transactions - View

path Parameters
ownershipAccountId
required
integer <int32>

The ownership account identifier.

transactionId
required
integer <int32>

The transaction identifier.

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Date": "2019-08-24",
  • "TransactionType": "string",
  • "TransactionTypeEnum": "Bill",
  • "TotalAmount": 0,
  • "CheckNumber": "string",
  • "OwnershipAccountId": 0,
  • "PayeeAssociationOwnerId": 0,
  • "PaymentMethod": "string",
  • "Journal": {
    }
}

Retrieve all outstanding balances

Retrieves a list of ownership account outstanding balances.

Required permission(s):

Associations > Outstanding Balances - View

query Parameters
associationid
integer <int32>

Association unique identifier

ownershipaccountstatuses
Array of strings
Items Enum: "Active" "Past" "Future"

List of ownership account statuses

ownershipaccountids
Array of integers <int32> [ items <int32 > ]

List of ownership account ids

pastdueemail
string
Enum: "NoEmailAddress" "Sent"

Status of notification of outstanding balances

balanceduration
string
Enum: "TotalBalance" "Balance0to30Days" "Balance31to60Days" "Balance61to90Days" "BalanceOver90Days"

Duration of outstanding balances

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve all charges

Retrieves all ledger charges for a specific ownership account.

Required permission(s):

Associations > Ownership account transactions - View

path Parameters
ownershipAccountId
required
integer <int32>
query Parameters
transactiondatefrom
string <date>

Filters results to any lease transaction whose start date is greater than or equal to the specified value.

transactiondateto
string <date>

Filters results to any lease transaction whose end date is less than or equal to the specified value.

billids
Array of integers <int32> [ items <int32 > ]

Filters results to any charge that has been associated to the indicated bill ids.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a charge

Creates a ledger charge.

Required permission(s):

Associations > Ownership account transactions - View Edit
Accounting > Bills - View Edit In order to associate the charge to a bill using the BillId property, you must have this permission.

path Parameters
ownershipAccountId
required
integer <int32>

The ownership account identifier.

Request Body schema: application/json
Date
required
string <date>

Date of the charge. The date must be formatted as YYYY-MM-DD.

Memo
string

Memo associated with the charge. The value cannot exceed 65 characters.

BillId
integer <int32>

Unique identifier of the bill this charge is associated to. If provided, the property of the ownership account ledger the charge is being created in must be in at least one line item of the bill.

required
Array of objects (OwnershipAccountLedgerChargeLinesSaveMessage)

Collection of line items to be included in the charge. All existing line items will be deleted and replaced with the line items in this request. At least 1 line item is required.

Responses

Request samples

Content type
application/json
{
  • "Date": "2019-08-24",
  • "Memo": "string",
  • "BillId": 0,
  • "Lines": [
    ]
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Date": "2019-08-24",
  • "TransactionType": "string",
  • "TransactionTypeEnum": "Bill",
  • "TotalAmount": 0,
  • "CheckNumber": "string",
  • "OwnershipAccountId": 0,
  • "PayeeAssociationOwnerId": 0,
  • "PaymentMethod": "string",
  • "Journal": {
    }
}

Retrieve a charge

Retrieves a specific ownership account ledger charge.

Required permission(s):

Associations > Ownership account transactions - View

path Parameters
ownershipAccountId
required
integer <int32>

The ownership account identifier.

chargeId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Date": "2019-08-24",
  • "TotalAmount": 0,
  • "Memo": "string",
  • "BillId": 0,
  • "Lines": [
    ]
}

Update a charge

Updates a charge.

Required permission(s):

Associations > Ownership account transactions - View Edit

path Parameters
ownershipAccountId
required
integer <int32>

The ownership account identifier.

chargeId
required
integer <int32>

The charge identifier.

Request Body schema: application/json
Date
required
string <date>

Date of the charge. The date must be formatted as YYYY-MM-DD.

Memo
string

Memo associated with the charge. The value cannot exceed 65 characters.

required
Array of objects (OwnershipAccountLedgerChargeLinesPutMessage)

A collection of line items included in the charge. At least one line item is required.

Responses

Request samples

Content type
application/json
{
  • "Date": "2019-08-24",
  • "Memo": "string",
  • "Lines": [
    ]
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Date": "2019-08-24",
  • "TransactionType": "string",
  • "TransactionTypeEnum": "Bill",
  • "TotalAmount": 0,
  • "CheckNumber": "string",
  • "OwnershipAccountId": 0,
  • "PayeeAssociationOwnerId": 0,
  • "PaymentMethod": "string",
  • "Journal": {
    }
}

Create a payment

Creates a ledger payment.

Required permission(s):

Associations > Ownership account transactions - View Edit

path Parameters
ownershipAccountId
required
integer <int32>
Request Body schema: application/json
Date
required
string <date>

The date of the transaction. The date must be formatted as YYYY-MM-DD.

PaymentMethod
required
string
Enum: "Check" "Cash" "MoneyOrder" "CashierCheck" "DirectDeposit" "CreditCard" "ElectronicPayment"

The payment method used for the transaction.

PayeeUserId
integer <int32>

The payee's user unique identifier.

Memo
string

A brief note describing the reason for the payment. The value cannot exceed 65 characters.

ReferenceNumber
string

The reference Number of the transaction. The value cannot exceed 30 characters.

SendEmailReceipt
required
boolean

An indicator for whether or not to send an email receipt to the payee. If the payee does not have an email address set, no email will be sent.

required
Array of objects (OwnershipAccountLedgerPaymentLineSaveMessage)

A collection of line items included in the payment. At least one line item is required.

Responses

Request samples

Content type
application/json
{
  • "Date": "2019-08-24",
  • "PaymentMethod": "Check",
  • "PayeeUserId": 0,
  • "Memo": "string",
  • "ReferenceNumber": "string",
  • "SendEmailReceipt": true,
  • "Lines": [
    ]
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Date": "2019-08-24",
  • "TransactionType": "string",
  • "TransactionTypeEnum": "Bill",
  • "TotalAmount": 0,
  • "CheckNumber": "string",
  • "OwnershipAccountId": 0,
  • "PayeeAssociationOwnerId": 0,
  • "PaymentMethod": "string",
  • "Journal": {
    }
}

Create a payment (auto allocated)

Creates a payment on the ownership account ledger. Note that the recorded payment will be automatically allocated to the general ledger accounts based on the payment allocation settings. These settings can be found under the Settings > Application Settings > Residents page in your account. If you'd like to specify the general ledger accounts the payment should apply to, please use the Create a payment endpoint.

Required permission(s):

Associations > Ownership account transactions - View Edit

path Parameters
ownershipAccountId
required
integer <int32>
Request Body schema: application/json
Date
required
string <date>

The date of the transaction. The date must be formatted as YYYY-MM-DD.

PaymentMethod
required
string
Enum: "Check" "Cash" "MoneyOrder" "CashierCheck" "DirectDeposit" "CreditCard" "ElectronicPayment"

The payment method used for the transaction.

PayeeUserId
integer <int32>

The payee's user unique identifier.

Memo
string

A brief note describing the reason for the payment. The value cannot exceed 65 characters.

ReferenceNumber
string

The reference Number of the transaction. The value cannot exceed 30 characters.

SendEmailReceipt
required
boolean

An indicator for whether or not to send an email receipt to the payee. If the payee does not have an email address set, no email will be sent.

TotalAmount
required
number <double>

The total amount of the payment being created.

Responses

Request samples

Content type
application/json
{
  • "Date": "2019-08-24",
  • "PaymentMethod": "Check",
  • "PayeeUserId": 0,
  • "Memo": "string",
  • "ReferenceNumber": "string",
  • "SendEmailReceipt": true,
  • "TotalAmount": 0
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Date": "2019-08-24",
  • "TransactionType": "string",
  • "TransactionTypeEnum": "Bill",
  • "TotalAmount": 0,
  • "CheckNumber": "string",
  • "OwnershipAccountId": 0,
  • "PayeeAssociationOwnerId": 0,
  • "PaymentMethod": "string",
  • "Journal": {
    }
}

Update a payment

Updates a ledger payment. Each line item must have a unique general ledger account identifier. PaymentMethod, Date, Memo, and the total Amount cannot be changed for payments with a PaymentMethod of BuildiumEFT, BuildiumCC or RetailCash.

Required permission(s):

Associations > Ownership account transactions - View Edit

path Parameters
ownershipAccountId
required
integer <int32>
paymentId
required
integer <int32>
Request Body schema: application/json
Date
required
string <date>

The date of the transaction. The date must be formatted as YYYY-MM-DD.

PaymentMethod
required
string
Enum: "Check" "Cash" "MoneyOrder" "CashierCheck" "DirectDeposit" "CreditCard" "ElectronicPayment" "BuildiumEFT" "BuildiumCC" "RetailCash"

The payment method used for the transaction.

PayeeUserId
integer <int32>

The payee's user unique identifier.

Memo
string

A brief note describing the reason for the payment. The value cannot exceed 65 characters.

ReferenceNumber
string

The reference Number of the transaction. The value cannot exceed 30 characters.

required
Array of objects (OwnershipAccountLedgerPaymentLineSaveMessage)

A collection of line items included in the payment. At least one line item is required.

Responses

Request samples

Content type
application/json
{
  • "Date": "2019-08-24",
  • "PaymentMethod": "Check",
  • "PayeeUserId": 0,
  • "Memo": "string",
  • "ReferenceNumber": "string",
  • "Lines": [
    ]
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Date": "2019-08-24",
  • "TransactionType": "string",
  • "TransactionTypeEnum": "Bill",
  • "TotalAmount": 0,
  • "CheckNumber": "string",
  • "OwnershipAccountId": 0,
  • "PayeeAssociationOwnerId": 0,
  • "PaymentMethod": "string",
  • "Journal": {
    }
}

Create a credit

Creates a ledger credit.

Required permission(s):

Associations > Ownership account transactions - View Edit

path Parameters
ownershipAccountId
required
integer <int32>
Request Body schema: application/json
Date
required
string <date>

Date of the transaction. The date must be formatted as YYYY-MM-DD.

Memo
string

Description of the transaction. The value cannot exceed 65 characters.

CreditType
required
string
Enum: "WaiveUnpaid" "Exchange" "PreviouslyDeposited"

Indicates how the credit should be applied.

  • WaiveUnpaid - This credit type allows for reversing one or more charges without losing record of what has changed.
  • Exchange - This credit type allows for one of the following: 1) Reimburse a resident for a out-of-pocket expense, 2) Compensate for a service, 3) Write-off a resident balance considered uncollectable.
  • PreviouslyDeposited - This credit type allows for issuing a credit against payments that have already been deposited.
OffsettingGLAccountId
integer <int32>

Sets the offsetting general ledger account identifier for the credit.
This value must be provided when the CreditType field is set to Exchange or PreviouslyDeposited.
When the CreditType is Exchange this must be an expense general ledger account type.
When the CreditType is PreviouslyDeposited this must be an equity general ledger account type.

required
Array of objects (OwnershipAccountCreditLinePostMessage)

A collection of line items included in the credit. At least one line item is required.

Responses

Request samples

Content type
application/json
{
  • "Date": "2019-08-24",
  • "Memo": "string",
  • "CreditType": "WaiveUnpaid",
  • "OffsettingGLAccountId": 0,
  • "Lines": [
    ]
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Date": "2019-08-24",
  • "TransactionType": "string",
  • "TransactionTypeEnum": "Bill",
  • "TotalAmount": 0,
  • "CheckNumber": "string",
  • "OwnershipAccountId": 0,
  • "PayeeAssociationOwnerId": 0,
  • "PaymentMethod": "string",
  • "Journal": {
    }
}

Retrieve a refund

Retrieves a refund.

Required permission(s):

Accounting > Bank Accounts - View

path Parameters
ownershipAccountId
required
integer <int32>
refundId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Date": "2019-08-24",
  • "Payees": [
    ],
  • "Memo": "string",
  • "CheckNumber": "string",
  • "BankAccountId": 0,
  • "Address": {
    },
  • "TotalAmount": 0,
  • "Lines": [
    ]
}

Create a refund

Creates a refund.

Required permission(s):

Accounting > Bank Accounts - View Edit

path Parameters
ownershipAccountId
required
integer <int32>
Request Body schema: application/json
Date
required
string <date>

The date of the refund. The date must be formatted as YYYY-MM-DD.

PayeeUserIds
required
Array of integers <int32> [ items <int32 > ]

Unique identifiers of the users receiving the refund.

Memo
string

A brief note describing the reason for the refund. The value cannot exceed 65 characters.

CheckNumber
string

Check number associated with the refund, if applicable. The value cannot exceed 30 characters.

BankAccountId
required
integer <int32>

Unique identifier of the bank account the refund is issued from.

required
object

Address to be displayed on the refund check.

required
Array of objects (OwnershipAccountRefundLinesPostMessage)

A collection of line items included in the refund. At least one line item is required.

Responses

Request samples

Content type
application/json
{
  • "Date": "2019-08-24",
  • "PayeeUserIds": [
    ],
  • "Memo": "string",
  • "CheckNumber": "string",
  • "BankAccountId": 0,
  • "Address": {
    },
  • "Lines": [
    ]
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Date": "2019-08-24",
  • "Payees": [
    ],
  • "Memo": "string",
  • "CheckNumber": "string",
  • "BankAccountId": 0,
  • "Address": {
    },
  • "TotalAmount": 0,
  • "Lines": [
    ]
}

Create a deposit withholding

Withholds an association owner deposit by reallocating the funds from a liability account to an income account to cover an expense(s).

Required permission(s):

Associations > Ownership account transactions - View Edit Accounting > General Ledger Accounts - View

path Parameters
ownershipAccountId
required
integer <int32>
Request Body schema: application/json
EntryDate
required
string <date>

Date of the deposit withholding. The date must be formatted as YYYY-MM-DD.

DepositLiabilityGLAccountId
required
integer <int32>

The identifier of the liability general ledger account from which to withhold the funds. Note, the specified liability account must have a positive balance.

Memo
string

Memo associated with the withholding. Memo cannot exceed 65 characters.

Array of objects (OwnershipAccountDepositWithholdingLinePostMessage)

Line items specifying the income accounts the deposit will be applied to. The total amount of the line items can not exceed the balance of the liability account.

Responses

Request samples

Content type
application/json
{
  • "EntryDate": "2019-08-24",
  • "DepositLiabilityGLAccountId": 0,
  • "Memo": "string",
  • "Lines": [
    ]
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Date": "2019-08-24",
  • "TransactionType": "string",
  • "TransactionTypeEnum": "Bill",
  • "TotalAmount": 0,
  • "CheckNumber": "string",
  • "OwnershipAccountId": 0,
  • "PayeeAssociationOwnerId": 0,
  • "PaymentMethod": "string",
  • "Journal": {
    }
}

Update a deposit withholding

Updates an ownership account deposit withholding.

Required permission(s):

Associations > Ownership account transactions - View Edit Accounting > General Ledger Accounts - View

path Parameters
ownershipAccountId
required
integer <int32>
depositId
required
integer <int32>
Request Body schema: application/json
EntryDate
required
string <date>

Date of the deposit withholding. The date must be formatted as YYYY-MM-DD.

DepositLiabilityGLAccountId
required
integer <int32>

The identifier of the liability general ledger account from which to withhold the funds.

Memo
string

Memo associated with the withholding. Memo cannot exceed 65 characters.

Array of objects (OwnershipAccountDepositWithholdingLinePutMessage)

Line items specifying the income accounts the deposit will be applied to.

Responses

Request samples

Content type
application/json
{
  • "EntryDate": "2019-08-24",
  • "DepositLiabilityGLAccountId": 0,
  • "Memo": "string",
  • "Lines": [
    ]
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Date": "2019-08-24",
  • "TransactionType": "string",
  • "TransactionTypeEnum": "Bill",
  • "TotalAmount": 0,
  • "CheckNumber": "string",
  • "OwnershipAccountId": 0,
  • "PayeeAssociationOwnerId": 0,
  • "PaymentMethod": "string",
  • "Journal": {
    }
}

Retrieve all recurring transactions

Retrieves all recurring transactions for an ownership account.

Required permission(s):

Associations > Ownership account transactions - View

path Parameters
ownershipAccountId
required
integer <int32>
query Parameters
orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a recurring charge

Creates a recurring charge transaction that will post automatically on the specified ownership account ledger.

Required permission(s):

Associations > Ownership account transactions - View Edit

path Parameters
ownershipAccountId
required
integer <int32>
Request Body schema: application/json
GLAccountId
required
integer <int32>

The general ledger account unique identifier under which the charge amount will be recorded. The general ledger account can only be an income or liability account.

Amount
required
number <double>

The amount to record when applying the charge to the lease ledger.

Memo
string

Memo associated with the recurring charge. This value cannot exceed 65 characters.

FirstOccurrenceDate
required
string <date>

The date the charge will first be processed. This value along with the Frequency is also used as the basis for the date set on the transactions in future occurrences.

PostDaysInAdvance
required
integer <int32>

Specifies the number of days ahead of the transaction date the charge will post on the lease ledger. This setting can be used to add the charge to the ledger ahead of the due date for visibility. For example, if the FirstOccurrenceDate is set to 8/10/2022 and this value is set to 5 then the charge will added to the ledger on 8/5/2022, but will have transaction date of 8/10/2022. Note, the value must be between 0 to 45 or set to 60, 75 or 90.

Frequency
required
string
Enum: "Monthly" "Weekly" "Every2Weeks" "Quarterly" "Yearly" "Every2Months" "Daily" "Every6Months" "OneTime"

Specifies the frequency at which the recurring charge will be processed.

Duration
string
Enum: "UntilEndOfTerm" "SpecificNumber"

Specifies the period of time/occurrences the recurring payment will be processed. Note, if the Frequency field is set to OneTime this field should be set to NULL as any submitted value will be ignored.

NumberOfOccurrences
integer <int32>

Indicates the number of times the recurring transaction should be processed. This value is required if the Duration field is set to SpecificNumber. This value can not exceed 100.

Responses

Request samples

Content type
application/json
{
  • "GLAccountId": 0,
  • "Amount": 0,
  • "Memo": "string",
  • "FirstOccurrenceDate": "2019-08-24",
  • "PostDaysInAdvance": 0,
  • "Frequency": "Monthly",
  • "Duration": "UntilEndOfTerm",
  • "NumberOfOccurrences": 0
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "OwnershipAccountId": 0,
  • "GLAccountId": 0,
  • "RentId": 0,
  • "Amount": 0,
  • "Memo": "string",
  • "FirstOccurrenceDate": "2019-08-24",
  • "NextOccurrenceDate": "2019-08-24",
  • "PostDaysInAdvance": 0,
  • "OccurrencesRemaining": 0,
  • "Frequency": "Monthly",
  • "Duration": "Unspecified"
}

Retrieve a recurring charge

Retrieves a recurring charge.

Required permission(s):

Associations > Ownership account transactions - View

path Parameters
ownershipAccountId
required
integer <int32>
transactionId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "OwnershipAccountId": 0,
  • "GLAccountId": 0,
  • "RentId": 0,
  • "Amount": 0,
  • "Memo": "string",
  • "FirstOccurrenceDate": "2019-08-24",
  • "NextOccurrenceDate": "2019-08-24",
  • "PostDaysInAdvance": 0,
  • "OccurrencesRemaining": 0,
  • "Frequency": "Monthly",
  • "Duration": "Unspecified"
}

Create a recurring credit

Creates a recurring credit transaction that will post automatically on the specified ownership account ledger.

Required permission(s):

Associations > Ownership account transactions - View Edit

path Parameters
ownershipAccountId
required
integer <int32>
Request Body schema: application/json
CreditType
required
string
Enum: "WaiveUnpaid" "Exchange" "PreviouslyDeposited"

Indicates how the credit will be applied.

  • WaiveUnpaid - This credit type allows for reversing one or more charges without losing record of what has changed.
  • Exchange - This credit type allows for one of the following: 1) Reimburse a resident for a out-of-pocket expense, 2) Compensate for a service, 3) Write-off a resident balance considered uncollectable.
  • PreviouslyDeposited - This credit type allows for issuing a credit against payments that have already been deposited.
OffsettingGLAccountId
integer <int32>

Sets the offsetting general ledger account identifier for the credit.
This value must be provided when the CreditType field is set to Exchange or PreviouslyDeposited.
When the CreditType is Exchange this must be an expense general ledger account type.
When the CreditType is PreviouslyDeposited this must be an equity general ledger account type.

PostingRuleGlAccountId
integer <int32>

Indicates whether to apply a posting rule when processing the transaction that would only record the credit if a prior payment has been made.

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

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

Set the field value to null to always record the credit.

Array of objects (RecurringTransactionLinePostMessage)

Line items describing how the credit is to be allocated when the recurring credit is processed.

PostDaysInAdvance
required
integer <int32>

Specifies the number of days ahead of the transaction date the credit will post on the lease ledger. This setting can be used to add the credit to the ledger ahead of the due date for visibility. For example, if the FirstOccurrenceDate is set to 8/10/2022 and this value is set to 5 then the charge will added to the ledger on 8/5/2022, but will have transaction date of 8/10/2022. Note, the value must be between 0 to 45 or set to 60, 75 or 90.

Frequency
required
string
Enum: "Monthly" "Weekly" "Every2Weeks" "Quarterly" "Yearly" "Every2Months" "Daily" "Every6Months" "OneTime"

Specifies the frequency at which the recurring credit will be processed.

Duration
string
Enum: "UntilEndOfTerm" "SpecificNumber"

Specifies the period of time/occurrences the recurring credit will be processed. Note, if the Frequency field is set to OneTime this field should be set to NULL as any submitted value will be ignored.

NumberOfOccurrences
integer <int32>

Indicates the number of times the recurring credit should be processed. This value is required if the Duration field is set to SpecificNumber. This value can not exceed 100.

FirstOccurrenceDate
required
string <date>

The date the credit will first be processed. This value along with the Frequency is also used as the basis for the date set on the transactions in future occurrences.

Memo
string

Memo associated with the recurring credit. This value cannot exceed 65 characters.

Responses

Request samples

Content type
application/json
{
  • "CreditType": "WaiveUnpaid",
  • "OffsettingGLAccountId": 0,
  • "PostingRuleGlAccountId": 0,
  • "Lines": [
    ],
  • "PostDaysInAdvance": 0,
  • "Frequency": "Monthly",
  • "Duration": "UntilEndOfTerm",
  • "NumberOfOccurrences": 0,
  • "FirstOccurrenceDate": "2019-08-24",
  • "Memo": "string"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "OwnershipAccountId": 0,
  • "CreditType": "WaiveUnpaid",
  • "OffsettingGLAccountId": 0,
  • "PostingRuleGLAccountId": 0,
  • "Lines": [
    ],
  • "Amount": 0,
  • "OccurrencesRemaining": 0,
  • "FirstOccurrenceDate": "2019-08-24",
  • "NextOccurrenceDate": "2019-08-24",
  • "PostDaysInAdvance": 0,
  • "Memo": "string",
  • "Frequency": "Monthly",
  • "Duration": "Unspecified"
}

Retrieve a recurring credit

Retrieves a recurring credit.

Required permission(s):

Associations > Ownership account transactions - View

path Parameters
ownershipAccountId
required
integer <int32>
transactionId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "OwnershipAccountId": 0,
  • "CreditType": "WaiveUnpaid",
  • "OffsettingGLAccountId": 0,
  • "PostingRuleGLAccountId": 0,
  • "Lines": [
    ],
  • "Amount": 0,
  • "OccurrencesRemaining": 0,
  • "FirstOccurrenceDate": "2019-08-24",
  • "NextOccurrenceDate": "2019-08-24",
  • "PostDaysInAdvance": 0,
  • "Memo": "string",
  • "Frequency": "Monthly",
  • "Duration": "Unspecified"
}

Create a recurring payment

Creates a recurring payment that will post automatically on the specified ownership account ledger.

Required permission(s):

Associations > Ownership account transactions - View Edit

path Parameters
ownershipAccountId
required
integer <int32>
Request Body schema: application/json
PayerUserId
integer <int32>

The unique identifier of the user making the payment.

PaymentMethod
required
string
Enum: "Check" "Cash" "MoneyOrder" "CashierCheck" "DirectDeposit" "CreditCard" "ElectronicPayment"

The payment method for the transaction.

Array of objects (RecurringTransactionLinePostMessage)

Line items describing how the payment is to be allocated when the payment is processed.

Memo
string

Memo associated with the recurring payment. This value cannot exceed 65 characters.

FirstOccurrenceDate
required
string <date>

The date the payment will first be processed. This value along with the Frequency is also used as the basis for the date set on the transactions in future occurrences.

PostDaysInAdvance
required
integer <int32>

Specifies the number of days ahead of the transaction date the payment will post on the lease ledger. This setting can be used to add the payment to the ledger ahead of the due date for visibility. For example, if the FirstOccurrenceDate is set to 8/10/2022 and this value is set to 5 then the charge will added to the ledger on 8/5/2022, but will have transaction date of 8/10/2022. Note, the value must be between 0 to 45 or set to 60, 75 or 90.

Frequency
required
string
Enum: "Monthly" "Weekly" "Every2Weeks" "Quarterly" "Yearly" "Every2Months" "Daily" "Every6Months" "OneTime"

Specifies the frequency at which the recurring payment will be processed.

Duration
string
Enum: "UntilEndOfTerm" "SpecificNumber"

Specifies the period of time/occurrences the recurring payment will be processed. Note, if the Frequency field is set to OneTime this field should be set to NULL as any submitted value will be ignored.

NumberOfOccurrences
integer <int32>

Indicates the number of times the recurring payment should be processed. This value is required if the Duration field is set to SpecificNumber. This value can not exceed 100.

Responses

Request samples

Content type
application/json
{
  • "PayerUserId": 0,
  • "PaymentMethod": "Check",
  • "Lines": [
    ],
  • "Memo": "string",
  • "FirstOccurrenceDate": "2019-08-24",
  • "PostDaysInAdvance": 0,
  • "Frequency": "Monthly",
  • "Duration": "UntilEndOfTerm",
  • "NumberOfOccurrences": 0
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "OwnershipAccountId": 0,
  • "Payer": {
    },
  • "PaymentMethod": "None",
  • "Lines": [
    ],
  • "Amount": 0,
  • "FirstOccurrenceDate": "2019-08-24",
  • "NextOccurrenceDate": "2019-08-24",
  • "PostDaysInAdvance": 0,
  • "Frequency": "Monthly",
  • "Duration": "Unspecified",
  • "OccurrencesRemaining": 0,
  • "Memo": "string"
}

Retrieve a recurring payment

Retrieves a recurring payment.

Required permission(s):

Associations > Ownership account transactions - View

path Parameters
ownershipAccountId
required
integer <int32>
paymentId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "OwnershipAccountId": 0,
  • "Payer": {
    },
  • "PaymentMethod": "None",
  • "Lines": [
    ],
  • "Amount": 0,
  • "FirstOccurrenceDate": "2019-08-24",
  • "NextOccurrenceDate": "2019-08-24",
  • "PostDaysInAdvance": 0,
  • "Frequency": "Monthly",
  • "Duration": "Unspecified",
  • "OccurrencesRemaining": 0,
  • "Memo": "string"
}

Association Tenants

Association tenants resources providing access to tenants and tenant notes.

Retrieve all tenants

Retrieves a list of association tenants.



Required permission(s):

Associations > Association owners and tenants - View

query Parameters
name
string

Filters results to only records whose name contains the specified value.

phone
string

Filters results to only records whose phone number contains the specified value.

email
string

Filters results to only records whose email contains the specified value.

associationids
Array of integers <int32> [ items <int32 > ]

Filters results to only records that belong to the specified set of association identifiers.

statuses
Array of strings
Items Enum: "Active" "Past" "Future"

Filters results to only records whose status is equal to the specified value.

createddatetimeto
string <date-time>

Filters results to only records that were created before this date. Must be formatted as YYYY-MM-DD.

createddatetimefrom
string <date-time>

Filters results to only records that were created after this date. Must be formatted as YYYY-MM-DD.

lastupdatedfrom
string <date-time>

Filters results to any association owners that were updated on or after the specified date. The value must be in UTC and formatted as YYYY-MM-DDTHH:MM:SSZ.

lastupdatedto
string <date-time>

Filters results to any association owners that were updated on or before the specified date. The value must be in UTC and formatted as YYYY-MM-DDTHH:MM:SSZ.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a tenant

Creates an association tenant.



Required permission(s):

Associations > Association owners and tenants - View Edit

Request Body schema: application/json
FirstName
required
string non-empty

First name of tenant. The value cannot exceed 127 characters.

LastName
required
string non-empty

Last name of tenant. The value cannot exceed 127 characters.

Email
string

Email of tenant.

AlternateEmail
string

Alternate email of tenant.

object

Phone numbers for the tenant.

DateOfBirth
string <date>

Date of birth for the tenant. Must be formatted as YYYY-MM-DD.

Comment
string

Comments about the tenant. The value cannot exceed 65,535 characters.

object

Emergency contact information associated with the tenant.

required
object

Address of the tenant.

object

Alternate address of the tenant.

MoveInDate
string <date>

Move in date for the tenant. This date is not editable and can only be set when creating the tenant. Must be formatted as YYYY-MM-DD.

MoveOutDate
string <date>

Move out date for the tenant. Must be formatted as YYYY-MM-DD.

OwnershipAccountId
required
integer <int32>

Ownership account id for the tenant.

Responses

Request samples

Content type
application/json
{
  • "FirstName": "string",
  • "LastName": "string",
  • "Email": "string",
  • "AlternateEmail": "string",
  • "PhoneNumbers": {
    },
  • "DateOfBirth": "2019-08-24",
  • "Comment": "string",
  • "EmergencyContact": {
    },
  • "PrimaryAddress": {
    },
  • "AlternateAddress": {
    },
  • "MoveInDate": "2019-08-24",
  • "MoveOutDate": "2019-08-24",
  • "OwnershipAccountId": 0
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "FirstName": "string",
  • "LastName": "string",
  • "Email": "string",
  • "AlternateEmail": "string",
  • "PhoneNumbers": [
    ],
  • "PrimaryAddress": {
    },
  • "AlternateAddress": {
    },
  • "Comment": "string",
  • "EmergencyContact": {
    },
  • "OwnershipAccounts": [
    ],
  • "MoveInDate": "2019-08-24",
  • "MoveOutDate": "2019-08-24",
  • "CreatedDateTime": "2019-08-24T14:15:22Z"
}

Retrieve a tenant

Retrieves a specific association tenant.



Required permission(s):

Associations > Association owners and tenants - View

path Parameters
tenantId
required
integer <int32>

The tenant identifier.

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "FirstName": "string",
  • "LastName": "string",
  • "Email": "string",
  • "AlternateEmail": "string",
  • "PhoneNumbers": [
    ],
  • "PrimaryAddress": {
    },
  • "AlternateAddress": {
    },
  • "Comment": "string",
  • "EmergencyContact": {
    },
  • "OwnershipAccounts": [
    ],
  • "MoveInDate": "2019-08-24",
  • "MoveOutDate": "2019-08-24",
  • "CreatedDateTime": "2019-08-24T14:15:22Z"
}

Update a tenant

Updates an association tenant.

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

Required permission(s):

Associations > Association owners and tenants - View Edit

path Parameters
tenantId
required
integer <int32>

The identifier of the association tenant to update.

Request Body schema: application/json
FirstName
required
string non-empty

First name of tenant. The value cannot exceed 127 characters.

LastName
required
string non-empty

Last name of tenant. The value cannot exceed 127 characters.

Email
string

Email of tenant.

AlternateEmail
string

Alternate email of tenant.

object

Phone numbers for the tenant

DateOfBirth
string <date>

Date of birth for the tenant. Must be formatted as YYYY-MM-DD.

Comment
string

Comments about the tenant. The value cannot exceed 65,535 characters.

object

Emergency contact information associated with the tenant.

required
object

Address of the tenant.

object

Alternate address of the tenant.

MoveOutDate
string <date>

Move out date for the tenant. Must be formatted as YYYY-MM-DD.

Responses

Request samples

Content type
application/json
{
  • "FirstName": "string",
  • "LastName": "string",
  • "Email": "string",
  • "AlternateEmail": "string",
  • "PhoneNumbers": {
    },
  • "DateOfBirth": "2019-08-24",
  • "Comment": "string",
  • "EmergencyContact": {
    },
  • "PrimaryAddress": {
    },
  • "AlternateAddress": {
    },
  • "MoveOutDate": "2019-08-24"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "FirstName": "string",
  • "LastName": "string",
  • "Email": "string",
  • "AlternateEmail": "string",
  • "PhoneNumbers": [
    ],
  • "PrimaryAddress": {
    },
  • "AlternateAddress": {
    },
  • "Comment": "string",
  • "EmergencyContact": {
    },
  • "OwnershipAccounts": [
    ],
  • "MoveInDate": "2019-08-24",
  • "MoveOutDate": "2019-08-24",
  • "CreatedDateTime": "2019-08-24T14:15:22Z"
}

Retrieve all notes

Retrieves all association tenant notes.

Required permission(s):

Associations > Association owners and tenants - View

path Parameters
tenantId
required
integer <int32>
query Parameters
updateddatetimefrom
string <date-time>

Filters results to any note whose updated date and time are greater than or equal to the specified value. The value must be formatted as YYYY-MM-DD HH:MM:SS.

updateddatetimeto
string <date-time>

Filters results to any note whose updated date and time are less than or equal to the specified value. The value must be formatted as YYYY-MM-DD HH:MM:SS.

lastupdatedbyuserid
integer <int32>

Filters results to only notes that were last updated by the specified user identifier.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a note

Creates an association tenant note.

Required permission(s):

Associations > Association owners and tenants - View Edit

path Parameters
tenantId
required
integer <int32>
Request Body schema: application/json
Note
required
string non-empty

Note contents. The value cannot exceed 65535 characters.

Responses

Request samples

Content type
application/json
{
  • "Note": "string"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Note": "string",
  • "LastUpdatedByUser": {
    }
}

Retrieve a note

Retrieves an association tenant note.

Required permission(s):

Associations > Association owners and tenants - View

path Parameters
tenantId
required
integer <int32>
noteId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Note": "string",
  • "LastUpdatedByUser": {
    }
}

Update a note

Updates an association tenant note.

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

Required permission(s):

Associations > Association owners and tenants - View Edit

path Parameters
tenantId
required
integer <int32>
noteId
required
integer <int32>
Request Body schema: application/json
Note
required
string non-empty

Note contents. The value cannot exceed 65535 characters.

Responses

Request samples

Content type
application/json
{
  • "Note": "string"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Note": "string",
  • "LastUpdatedByUser": {
    }
}

Board Members

Board members make up a governing body that runs the association's affairs. In Buildium board members must be an Association Owner.

Retrieve all board members

Retrieves all association board members.

Required permission(s):

Associations > Association owners and tenants - View

path Parameters
associationId
required
integer <int32>
query Parameters
statuses
Array of strings
Items Enum: "Current" "Former" "Future"

Filters results to only records whose status is equal to the specified values.

boardpositiontypes
Array of strings
Items Enum: "President" "VicePresident" "Treasurer" "Secretary" "BoardMember"

Filters results to only records whose board position type is equal to the specified values.

createddatetimeto
string <date-time>

Filters results to only records that were created before this date. Must be formatted as YYYY-MM-DD.

createddatetimefrom
string <date-time>

Filters results to only records that were created after this date. Must be formatted as YYYY-MM-DD.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a board member

Creates a board member for a given association.

Required permission(s):

Associations > Association owners and tenants - View Edit

path Parameters
associationId
required
integer <int32>
Request Body schema: application/json
AssociationOwnerId
required
integer <int32>

The association owner's unique identifier.

BoardPositionType
required
string
Enum: "President" "VicePresident" "Treasurer" "Secretary" "BoardMember"

Indicates the board position held by the association owner.

StartDate
string <date>

Start date of the association owners term as a board member. Must be formatted as YYYY-MM-DD.

EndDate
string <date>

End date of the association owners term as a board member. Must be formatted as YYYY-MM-DD.

Responses

Request samples

Content type
application/json
{
  • "AssociationOwnerId": 0,
  • "BoardPositionType": "President",
  • "StartDate": "2019-08-24",
  • "EndDate": "2019-08-24"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "AssociationOwnerId": 0,
  • "FirstName": "string",
  • "LastName": "string",
  • "Email": "string",
  • "PhoneNumbers": [
    ],
  • "BoardPositionType": "President",
  • "StartDate": "2019-08-24",
  • "EndDate": "2019-08-24",
  • "CreatedDateTime": "2019-08-24T14:15:22Z"
}

Retrieve a board member

Retrieves an association board member.

Required permission(s):

Associations > Association owners and tenants - View

path Parameters
associationId
required
integer <int32>
boardMemberId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "AssociationOwnerId": 0,
  • "FirstName": "string",
  • "LastName": "string",
  • "Email": "string",
  • "PhoneNumbers": [
    ],
  • "BoardPositionType": "President",
  • "StartDate": "2019-08-24",
  • "EndDate": "2019-08-24",
  • "CreatedDateTime": "2019-08-24T14:15:22Z"
}

Update a board member

Updates a board member for a given association.

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

Required permission(s):

Associations > Association owners and tenants - View Edit

path Parameters
associationId
required
integer <int32>
boardMemberId
required
integer <int32>
Request Body schema: application/json
BoardPositionType
required
string
Enum: "President" "VicePresident" "Treasurer" "Secretary" "BoardMember"

Indicates the board position held by the association owner.

StartDate
string <date>

Start date of the association owners term as a board member. Must be formatted as YYYY-MM-DD.

EndDate
string <date>

End date of the association owners term as a board member. Must be formatted as YYYY-MM-DD.

Responses

Request samples

Content type
application/json
{
  • "BoardPositionType": "President",
  • "StartDate": "2019-08-24",
  • "EndDate": "2019-08-24"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "AssociationOwnerId": 0,
  • "FirstName": "string",
  • "LastName": "string",
  • "Email": "string",
  • "PhoneNumbers": [
    ],
  • "BoardPositionType": "President",
  • "StartDate": "2019-08-24",
  • "EndDate": "2019-08-24",
  • "CreatedDateTime": "2019-08-24T14:15:22Z"
}

Delete a board member

Deletes a board member. Note, this is a hard delete from the database and data can not be restored.

Required permission(s):

Associations > Association owners and tenants - View Edit Delete

path Parameters
associationId
required
integer <int32>
boardMemberId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "UserMessage": "string",
  • "ErrorCode": "string",
  • "Errors": [
    ]
}

Association Meter Readings

Meter reading resources for units on associations.

Retrieve all meter readings

Retrieves all meter readings for an association.

Required permission(s):

Associations > Associations and units - View

path Parameters
associationId
required
integer <int32>
query Parameters
readingdatefrom
required
string <date>

Filters results to any meter readings whose entry date that is greater than or equal to the specified value. The value must be formatted as YYYY-MM-DD. The maximum date range is 365 days.

readingdateto
required
string <date>

Filters results to any meter readings whose entry date is less than or equal to the specified value. The value must be formatted as YYYY-MM-DD. The maximum date range is 365 days.

metertypes
Array of strings
Items Enum: "Electric" "Gas" "Oil" "Water" "Sewer"

Filters results to the specified meter types.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Delete meter reading details for a given date

Delete meter reading details for an association for a given date.

Required permission(s):

Associations > Ownership account transactions - View Edit Delete

path Parameters
associationId
required
integer <int32>
query Parameters
readingdate
required
string <date>

Filters results to any meter readings whose entry date is equal to the specified value. The value must be formatted as YYYY-MM-DD.

metertype
required
string
Enum: "Electric" "Gas" "Oil" "Water" "Sewer"

Filters results to the specified meter type.

Responses

Response samples

Content type
application/json
{
  • "UserMessage": "string",
  • "ErrorCode": "string",
  • "Errors": [
    ]
}

Retrieve all meter reading details

Retrieves all meter reading details for an association.

Required permission(s):

Associations > Associations and units - View

path Parameters
associationId
required
integer <int32>
query Parameters
readingdate
required
string <date>

Filters results to any meter readings whose entry date is equal to the specified value. The value must be formatted as YYYY-MM-DD.

metertype
required
string
Enum: "Electric" "Gas" "Oil" "Water" "Sewer"

Filters results to the specified meter type.

Responses

Response samples

Content type
application/json
{
  • "ReadingDate": "2019-08-24",
  • "MeterType": "Unknown",
  • "Details": [
    ]
}

Create/Update meter reading details

This endpoint can be used to both create and update a meter reading detail for an association.

  • There can only be one meter reading detail for a given combination of MeterType and ReadingDate for an association
  • If you are updating an existing meter reading detail, use the query parameters to specify the existing meter reading detail to update.
  • If you are creating a new meter reading detail, do not pass any query parameters.
  • When adding a new item to the Details array, leave out the Id field.
  • When updating an existing item in the Details array, the Id field of the existing item must be included.


Required permission(s):

Associations > Associations and units - View Edit

path Parameters
associationId
required
integer <int32>
query Parameters
readingdate
string <date>

Filters results to any meter readings whose entry date is equal to the specified value. The value must be formatted as YYYY-MM-DD.

metertype
string
Enum: "Electric" "Gas" "Oil" "Water" "Sewer"

Filters results to the specified meter type.

Request Body schema: application/json
ReadingDate
required
string <date>

Date the meter reading occurred on. Date must be formatted as YYYY-MM-DD.

MeterType
required
string
Enum: "Electric" "Gas" "Oil" "Water" "Sewer"

Type of meter being read.

required
Array of objects (MeterReadingDetailPutMessage)

Collection of detailed meter readings. At least one item is required.

Responses

Request samples

Content type
application/json
{
  • "ReadingDate": "2019-08-24",
  • "MeterType": "Electric",
  • "Details": [
    ]
}

Response samples

Content type
application/json
{
  • "ReadingDate": "2019-08-24",
  • "MeterType": "Unknown",
  • "Details": [
    ]
}

Architectural Requests

Association architectural request resources providing access to architectural requests

Retrieve all architectural requests

Retrieves all architectural requests.

Required permission(s):

Associations > Associations and units - View
Associations > Ownership accounts - View
Associations > Association owners and tenants - View
Associations > Architectural requests - View

query Parameters
associationids
Array of integers <int32> [ items <int32 > ]

Filters results to only records that belong to the specified set of association identifiers.

ownershipaccountids
Array of integers <int32> [ items <int32 > ]

Filters results to only records that belong to the specified set of ownership account identifiers.

ids
Array of integers <int32> [ items <int32 > ]

Filters results to only records that belong to the specified set of architectural request identifiers.

statuses
Array of strings
Items Enum: "New" "InProgress" "Completed"

Filters results to only records whose status is equal to the specified value.

decisions
Array of strings
Items Enum: "Pending" "Approved" "Denied"

Filters results to only records whose decision is equal to the specified value.

createddatetimefrom
string <date-time>

Filters results to only records that were created after this date. Must be formatted as YYYY-MM-DDTHH:MM:SSZ.

createddatetimeto
string <date-time>

Filters results to only records that were created before this date. Must be formatted as YYYY-MM-DDTHH:MM:SSZ.

lastupdatedfrom
string <date-time>

Filters results to only records that were updated on or after the specified date. The value must be in UTC and formatted as YYYY-MM-DDTHH:MM:SSZ.

lastupdatedto
string <date-time>

Filters results to only records that were updated on or before the specified date. The value must be in UTC and formatted as YYYY-MM-DDTHH:MM:SSZ.

submitteddatetimefrom
string <date-time>

Filters results to only records that were submitted on or after the specified date. The value must be in UTC and formatted as YYYY-MM-DDTHH:MM:SSZ.

submitteddatetimeto
string <date-time>

Filters results to only records that were submitted on or before the specified date. The value must be in UTC and formatted as YYYY-MM-DDTHH:MM:SSZ.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create an architectural request

Creates an architectural request

Required permission(s):

Associations > Associations and units - View Edit
Associations > Ownership accounts - View Edit
Associations > Architectural requests - View Edit
Associations > Association owners and tenants - View Edit

Request Body schema: application/json
AssociationId
required
integer <int32>

The ID of the association to tie the architectural request to.

OwnershipAccountId
required
integer <int32>

The ID of the ownership account to tie the architectural request to.

Name
required
string non-empty

The name of the architectural request. Must be 30 characters or less.

SubmittedDateTime
required
string <date-time>

The date and time the architectural request was submitted. Must not be in the future.

Status
string
Enum: "New" "InProgress" "Completed"

The status of the architectural request. If no value is submitted the Status will be set to "New".

Decision
string
Enum: "Pending" "Approved" "Denied"

The decision of the architectural request. If no value is submitted the Decision will be set to "Pending".

Responses

Request samples

Content type
application/json
{
  • "AssociationId": 0,
  • "OwnershipAccountId": 0,
  • "Name": "string",
  • "SubmittedDateTime": "2019-08-24T14:15:22Z",
  • "Status": "New",
  • "Decision": "Pending"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "AssociationId": 0,
  • "OwnershipAccountId": 0,
  • "Name": "string",
  • "SubmittedDateTime": "2019-08-24T14:15:22Z",
  • "Status": "New",
  • "Decision": "Pending",
  • "CreatedDateTime": "2019-08-24T14:15:22Z",
  • "CreatedByUser": {
    },
  • "LastUpdatedDateTime": "2019-08-24T14:15:22Z",
  • "LastUpdatedByUser": {
    }
}

Retrieve an architectural request

Retrieves a specific architectural request.

Required permission(s):

Associations > Associations and units - View
Associations > Ownership accounts - View
Associations > Association owners and tenants - View
Associations > Architectural requests - View

path Parameters
architecturalRequestId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "AssociationId": 0,
  • "OwnershipAccountId": 0,
  • "Name": "string",
  • "SubmittedDateTime": "2019-08-24T14:15:22Z",
  • "Status": "New",
  • "Decision": "Pending",
  • "CreatedDateTime": "2019-08-24T14:15:22Z",
  • "CreatedByUser": {
    },
  • "LastUpdatedDateTime": "2019-08-24T14:15:22Z",
  • "LastUpdatedByUser": {
    }
}

Retrieve all files for an architectural request

Retrieves all files for an architectural request.

Required permission(s):

Associations > Associations and units - View
Associations > Ownership accounts - View
Associations > Association owners and tenants - View
Associations > Architectural requests - View

path Parameters
architecturalRequestId
required
integer <int32>
query Parameters
ids
Array of integers <int32> [ items <int32 > ]

The IDs of the architectural request files to filter by.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Title": "string",
  • "PhysicalFileName": "string",
  • "Size": 0,
  • "ContentType": "string",
  • "UploadedDateTime": "2019-08-24T14:15:22Z"
}

Upload an architectural request file

Uploads a file and associates it to the specified architectural request record.

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

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

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

Step 2 - Upload the file binary
Uploading the file binary will require using the response from step 1 to form a POST request to the Buildium file provider. Follow these steps to create the request:

  1. Form a POST request using the value of the BucketUrl property as the URL.

  2. Set the Content-Type header to multipart/form-data.

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

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

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

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

    NOTE: The file identifier is not generated in this response. To retrieve the file identifier, call /v1/files and pass the PhysicalFileName value received from the response of this endpoint into the physicalfilenames query parameter.

    Required permission(s):

    Associations > Associations and units - View Edit
    Associations > Ownership accounts - View Edit
    Associations > Architectural requests - View Edit
    Associations > Association owners and tenants - View Edit
path Parameters
architecturalRequestId
required
integer <int32>
Request Body schema: application/json
FileName
required
string non-empty

Name of file being uploaded. The value can not exceed 255 characters.

Responses

Request samples

Content type
application/json
{
  • "FileName": "string"
}

Response samples

Content type
application/json
{
  • "BucketUrl": "string",
  • "FormData": {
    },
  • "PhysicalFileName": "string"
}

Retrieve an architectural request file

Retrieves an architectural request file.

Required permission(s):

Associations > Associations and units - View
Associations > Ownership accounts - View
Associations > Association owners and tenants - View
Associations > Architectural requests - View

path Parameters
architecturalRequestId
required
integer <int32>
fileId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Title": "string",
  • "PhysicalFileName": "string",
  • "Size": 0,
  • "ContentType": "string",
  • "UploadedDateTime": "2019-08-24T14:15:22Z"
}

Download an architectural request file

Downloads a specific file associated to the architectural request.

Required permission(s):

Associations > Associations and units - View
Associations > Ownership accounts - View
Associations > Association owners and tenants - View
Associations > Architectural requests - View

path Parameters
architecturalRequestId
required
integer <int32>
fileId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "DownloadUrl": "string"
}

Rental Properties

Rental property resources providing access to properties and property notes.

Retrieve all properties

Retrieves a list of rental properties.

Required permission(s):

Rentals > Rental properties and units - View

query Parameters
location
string

Filters results to only rental properties whose city or state contains the specified value.

types
Array of strings
Items Enum: "Residential" "Commercial"

Filters results by the rental type. If no type is provided all types will be returned.

subtypes
Array of strings
Items Enum: "CondoTownhome" "MultiFamily" "SingleFamily" "Industrial" "Office" "Retail" "ShoppingCenter" "Storage" "ParkingSpace"

Filters results by the sub type of the rental property. If no sub type is specified all sub types will be returned.

status
string
Enum: "Active" "InActive"

Filters results by the status of the rental property. If no status is specified both active and inactive rental properties will be returned.

rentalownerids
Array of integers <int32> [ items <int32 > ]

Filters results to only rental properties whose RentalOwnerId matches the specified Id.

propertyids
Array of integers <int32> [ items <int32 > ]

Filters results to only rental properties units whose Rental matches the specified Id.

lastupdatedfrom
string <date-time>

Filters results to any rental properties that were updated on or after the specified date. The value must be in UTC and formatted as YYYY-MM-DDTHH:MM:SSZ.

lastupdatedto
string <date-time>

Filters results to any rental properties that were updated on or before the specified date. The value must be in UTC and formatted as YYYY-MM-DDTHH:MM:SSZ.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a property

Creates a new rental property.

Required permission(s):

Rentals > Rental properties and units - View Edit

Request Body schema: application/json
Name
required
string non-empty

Rental property name. The value cannot exceed 127 characters.

StructureDescription
string

Description of the rental property building. The description cannot exceed 65,535 characters.

required
object

Rental property address.

RentalSubType
required
string
Enum: "CondoTownhome" "MultiFamily" "SingleFamily" "Industrial" "Office" "Retail" "ShoppingCenter" "Storage" "ParkingSpace"

Subtype of the rental property.

RentalOwnerIds
Array of integers <int32> [ items <int32 > ]

List of existing rental owner ID's that are owners of this property.

OperatingBankAccountId
required
integer <int32>

The primary bank account that a rental property uses for its income and expenses.

PropertyManagerId
integer <int32>

Indicates the staff member identifier that acts as the property manager for this rental property. Note, the staff member must have permissions to this rental to be assigned as the property manager. Set this field to null if you don't want to assign a staff member to the rental property.

Reserve
number <double>

A property reserve is cash that a property manager keeps on hand in case of unexpected expenses. It is available cash that isn't disbursed in an owner draw.

YearBuilt
integer <int32>

Indicates the year the rental property was built. If provided this value must be a four digit integer between 1000 and the current year.

Array of objects (RentalPropertyUnitPostMessage)

Units of the rental property. If no values are provided, a default unit will be created for the property. The number of units cannot exceed 100. If you need to create more than 100 units for the property, use the Create a unit endpoint to create the additional units once the property has been created.

Responses

Request samples

Content type
application/json
{
  • "Name": "string",
  • "StructureDescription": "string",
  • "Address": {
    },
  • "RentalSubType": "CondoTownhome",
  • "RentalOwnerIds": [
    ],
  • "OperatingBankAccountId": 0,
  • "PropertyManagerId": 0,
  • "Reserve": 0,
  • "YearBuilt": 0,
  • "Units": [
    ]
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Name": "string",
  • "StructureDescription": "string",
  • "NumberUnits": 0,
  • "IsActive": true,
  • "OperatingBankAccountId": 0,
  • "Reserve": 0,
  • "Address": {
    },
  • "YearBuilt": 0,
  • "RentalType": "None",
  • "RentalSubType": "CondoTownhome",
  • "RentalManager": {
    }
}

Retrieve a property

Retrieve a specific rental property.

Required permission(s):

Rentals > Rental properties and units - View

path Parameters
propertyId
required
integer <int32>

The rental property identifier.

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Name": "string",
  • "StructureDescription": "string",
  • "NumberUnits": 0,
  • "IsActive": true,
  • "OperatingBankAccountId": 0,
  • "Reserve": 0,
  • "Address": {
    },
  • "YearBuilt": 0,
  • "RentalType": "None",
  • "RentalSubType": "CondoTownhome",
  • "RentalManager": {
    }
}

Update a property

Updates a rental property.

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

Required permission(s):

Rentals > Rental properties and units - View Edit

path Parameters
propertyId
required
integer <int32>
Request Body schema: application/json
Name
required
string non-empty

Rental property name. The value cannot exceed 127 characters.

StructureDescription
string

Description of the rental property building. The description cannot exceed 65,535 characters.

required
object

Rental property address

RentalSubType
required
string
Enum: "CondoTownhome" "MultiFamily" "SingleFamily" "Industrial" "Office" "Retail" "ShoppingCenter" "Storage" "ParkingSpace"

Subtype of the rental property

OperatingBankAccountId
required
integer <int32>

The primary bank account that an rental property uses for its income and expenses.

PropertyManagerId
integer <int32>

Indicates the staff member identifier that acts as the property manager for this rental property. Note, the staff member must have permissions to this rental to be assigned as the property manager. Set this field to null if you don't want to assign a staff member to the rental property.

Reserve
number <double>

A property reserve is cash that a property manager keeps on hand in case of unexpected expenses. It is available cash that isn't disbursed in an owner draw.

YearBuilt
integer <int32>

Indicates the year the rental property was built. If provided this value must be a four digit integer between 1000 and the current year.

Responses

Request samples

Content type
application/json
{
  • "Name": "string",
  • "StructureDescription": "string",
  • "Address": {
    },
  • "RentalSubType": "CondoTownhome",
  • "OperatingBankAccountId": 0,
  • "PropertyManagerId": 0,
  • "Reserve": 0,
  • "YearBuilt": 0
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Name": "string",
  • "StructureDescription": "string",
  • "NumberUnits": 0,
  • "IsActive": true,
  • "OperatingBankAccountId": 0,
  • "Reserve": 0,
  • "Address": {
    },
  • "YearBuilt": 0,
  • "RentalType": "None",
  • "RentalSubType": "CondoTownhome",
  • "RentalManager": {
    }
}

Inactivate a property

Inactivates a rental property and all associated units. Any associated property's owners that have no remaining active properties will be inactivated.

Required permission(s):

Rentals > Rental properties and units - View Edit

path Parameters
propertyId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "UserMessage": "string",
  • "ErrorCode": "string",
  • "Errors": [
    ]
}

Reactivate a property

Reactivates a rental property and all associated units. Any inactive rental owners assigned to this property will also be reactivated.

Required permission(s):

Rentals > Rental properties and units - View Edit

path Parameters
propertyId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "UserMessage": "string",
  • "ErrorCode": "string",
  • "Errors": [
    ]
}

Retrieve all preferred vendors

Retrieves all preferred vendors.

Required permission(s):

Rentals > Rental properties and units - View
Maintenance > Vendors - View

path Parameters
propertyId
required
integer <int32>
query Parameters
orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Update preferred vendors

Updates preferred vendors.

Required permission(s):

Rentals > Rental properties and units - View Edit
Maintenance > Vendors - View Edit

path Parameters
propertyId
required
integer <int32>
Request Body schema: application/json
VendorIds
required
Array of integers <int32> [ items <int32 > ]

A list of vendor identifiers that will be assigned as preferred vendors to the specified rental property. The submitted list of identifiers will overwrite any existing preferred vendors. Leaving the array empty will remove all vendors from the rental property.

Responses

Request samples

Content type
application/json
{
  • "VendorIds": [
    ]
}

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve all amenities

Retrieve all the amenities for a rental property.

Required permission(s):

Rentals > Rental properties and units - View

path Parameters
propertyId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Features": [
    ],
  • "IncludedInRent": [
    ]
}

Update amenities

Updates the amenities for a rental property.

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

Required permission(s):

Rentals > Rental properties and units - View Edit

path Parameters
propertyId
required
integer <int32>
Request Body schema: application/json
Features
Array of strings
Items Enum: "LaundryRoom" "WheelchairAccess" "DoorAttendant" "Elevator" "Parking" "StorageUnits" "Pool" "FitnessCenter" "TennisCourt" "ClubHouse" "Power" "ParkingCommercial" "SprinklerSystem" "DockHighDoorsOrLoadingAvailable" "Availability24Hours" "AccentWalls" "BasketballCourt" "Bilingual" "BoatDocks" "BusinessCenter" "CarWashArea" "ChildCare" "ClubDiscount" "ConferenceRoom" "Concierge" "FreeWeights" "FurnishedAvailable" "GamingStations" "Garage" "Gate" "GroceryService" "GroupExercise" "GuestRoom" "Housekeeping" "HouseSitting" "JoggingWalkingTrails" "LakeFront" "LakeAccess" "Library" "MealService" "MediaRoom" "MultiUseRoom" "NightPatrol" "OnSiteMaintenance" "OnSiteManagement" "PackageReceiving" "PerDiemAccepted" "PlayGround" "Racquetball" "RecRoom" "Recycling" "Sauna" "ShortTermLease" "SmokeFree" "Spa" "Sundeck" "Transportation" "TVLounge" "ValetTrash" "Vintage" "VolleyballCourt" "WirelessInternet" "HighSpeedInternet"

A list of overall property amenities. Any previously saved values that are not submitted in the update request will be deleted.

IncludedInRent
Array of strings
Items Enum: "Gas" "Electric" "Trash" "Water" "HotWater" "Telephone" "Heat" "Cable" "AirCon" "Satellite" "Sewer" "BroadbandInternet"

A list of amenities that are included in rent. Any previously saved values that are not submitted in the update request will be deleted.

Responses

Request samples

Content type
application/json
{
  • "Features": [
    ],
  • "IncludedInRent": [
    ]
}

Response samples

Content type
application/json
{
  • "Features": [
    ],
  • "IncludedInRent": [
    ]
}

Retrieve ePay settings

Retrieves ePay settings for a rental property.

Required permission(s):

Rentals > Rental properties and units - View

path Parameters
propertyId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "EFTPayments": {
    },
  • "CreditCardPayments": {
    },
  • "OfflinePayments": {
    }
}

Update ePay settings

Updates ePay settings for a rental property.

Required permission(s):

Rentals > Rental properties and units - View Edit

path Parameters
propertyId
required
integer <int32>
Request Body schema: application/json
required
object

The property EFT payment settings.

required
object

The property credit card payment settings.

required
object

The property offline payment settings.

Responses

Request samples

Content type
application/json
{
  • "EFTPayments": {
    },
  • "CreditCardPayments": {
    },
  • "OfflinePayments": {
    }
}

Response samples

Content type
application/json
{
  • "EFTPayments": {
    },
  • "CreditCardPayments": {
    },
  • "OfflinePayments": {
    }
}

Retrieve all property images

Retrieves all images for a rental property. Note this endpoint will only return file metadata such as file names and descriptions. To download files make requests to the Download File endpoint.

Required permission(s):

Rentals > Rental properties and units - View

path Parameters
propertyId
required
integer <int32>
query Parameters
orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve a property image

Retrieves a rental property image.

Required permission(s):

Rentals > Rental properties and units - View

path Parameters
propertyId
required
integer <int32>
imageId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Description": "string",
  • "PhysicalFileName": "string",
  • "Provider": "None",
  • "ShowInListing": true
}

Update a property image

Updates a rental property image.

Required permission(s):

Rentals > Rental properties and units - View Edit

path Parameters
propertyId
required
integer <int32>
imageId
required
integer <int32>
Request Body schema: application/json
Description
string

Description of the image. The description cannot exceed 100 characters.

ShowInListing
required
boolean

Indicates whether the image will be shown in listings for this rental.

Responses

Request samples

Content type
application/json
{
  • "Description": "string",
  • "ShowInListing": true
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Description": "string",
  • "PhysicalFileName": "string",
  • "Provider": "None",
  • "ShowInListing": true
}

Delete a property image

Deletes a rental property image.

Required permission(s):

Rentals > Rental properties and units - View Edit Delete

path Parameters
propertyId
required
integer <int32>
imageId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "UserMessage": "string",
  • "ErrorCode": "string",
  • "Errors": [
    ]
}

Download a property image

Use this endpoint to create a temporary URL that can be used to download a property image. This URL expires after 5 minutes.

Required permission(s):

Rentals > Rental properties and units - View

path Parameters
propertyId
required
integer <int32>
imageId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "DownloadUrl": "string"
}

Update property image order

Updates the image display order within the Buildium web application and in any associated rental listings.

Required permission(s):

Rentals > Rental properties and units - View Edit

path Parameters
propertyId
required
integer <int32>
Request Body schema: application/json
Ids
required
Array of integers <int32> [ items <int32 > ]

Unique identifiers for the images. The request must contain the ids of all images.

Responses

Request samples

Content type
application/json
{
  • "Ids": [
    ]
}

Response samples

Content type
application/json
[
  • {
    }
]

Upload a rental image

Uploads an image and associates it to the specified rental record.

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

Step 1 - Save file metadata
The first step in the file upload process is to submit the file metadata to /v1/rentals/{rentalId}/images/uploadrequests. The response of this call will contain a URL and a collection of form data that will be used in step 2 to generate the request for the file binary upload.

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

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

2. Set the Content-Type header to multipart/form-data.

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

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

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

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

NOTE: The file identifier is not generated in this response. To retrieve the file identifier, call /v1/files and pass the PhysicalFileName value received from the response of this endpoint into the physicalfilenames query parameter.

Required permission(s):

Rentals > Rental properties and units - View Edit

path Parameters
propertyId
required
integer <int32>
Request Body schema: application/json
FileName
required
string non-empty

Name of file being uploaded. The value can not exceed 255 characters.

Description
string

A description of the file. The value cannot exceed 100 characters.

ShowInListing
required
boolean

Indicates whether the image will be shown in listings.

Responses

Request samples

Content type
application/json
{
  • "FileName": "string",
  • "Description": "string",
  • "ShowInListing": true
}

Response samples

Content type
application/json
{
  • "BucketUrl": "string",
  • "FormData": {
    },
  • "PhysicalFileName": "string"
}

Create an image for a rental using a video link

Creates an image for a rental using a video link.

Required permission(s):

Rentals > Rental properties and units - View Edit

path Parameters
propertyId
required
integer <int32>
Request Body schema: application/json
VideoUrl
required
string non-empty

The URL of the video. Only Youtube and Vimeo URLs are supported. The URL cannot exceed 255 characters.

ShowInListing
required
boolean

Indicates whether the video will be shown in the listing.

Responses

Request samples

Content type
application/json
{
  • "VideoUrl": "string",
  • "ShowInListing": true
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Description": "string",
  • "PhysicalFileName": "string",
  • "Provider": "None",
  • "ShowInListing": true
}

Retrieve all notes

Retrieves all notes.

Required permission(s):

Rentals > Rental properties and units - View

path Parameters
propertyId
required
integer <int32>
query Parameters
updateddatetimefrom
string <date-time>

Filters results to any note whose updated date and time are greater than or equal to the specified value. The value must be formatted as YYYY-MM-DD HH:MM:SS.

updateddatetimeto
string <date-time>

Filters results to any note whose updated date and time are less than or equal to the specified value. The value must be formatted as YYYY-MM-DD HH:MM:SS.

lastupdatedbyuserid
integer <int32>

Filters results to only notes that were last updated by the specified user identifier.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a note

Creates a note.

Required permission(s):

Rentals > Rental properties and units - View Edit

path Parameters
propertyId
required
integer <int32>
Request Body schema: application/json
Note
required
string non-empty

Note contents. The value cannot exceed 65535 characters.

Responses

Request samples

Content type
application/json
{
  • "Note": "string"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Note": "string",
  • "LastUpdatedByUser": {
    }
}

Retrieve a note

Retrieves a note.

Required permission(s):

Rentals > Rental properties and units - View

path Parameters
propertyId
required
integer <int32>
noteId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Note": "string",
  • "LastUpdatedByUser": {
    }
}

Update a note

Updates a note.

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

Required permission(s):

Rentals > Rental properties and units - View Edit

path Parameters
propertyId
required
integer <int32>
noteId
required
integer <int32>
Request Body schema: application/json
Note
required
string non-empty

Note contents. The value cannot exceed 65535 characters.

Responses

Request samples

Content type
application/json
{
  • "Note": "string"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Note": "string",
  • "LastUpdatedByUser": {
    }
}

Retrieve all units

Retrieves a list of rental property units.

Required permission(s):

Rentals > Rental properties and units - View

query Parameters
propertyids
Array of integers <int32> [ items <int32 > ]

Filters results to rental units that belong to the specified set of property ids.

lastupdatedfrom
string <date-time>

Filters results to any rental units that were updated on or after the specified date. The value must be in UTC and formatted as YYYY-MM-DDTHH:MM:SSZ.

lastupdatedto
string <date-time>

Filters results to any rental units that were updated on or before the specified date. The value must be in UTC and formatted as YYYY-MM-DDTHH:MM:SSZ.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a unit

Creates a rental unit.

Required permission(s):

Rentals > Rental properties and units - View Edit

Request Body schema: application/json
UnitNumber
required
string non-empty

Unit number. Must be unique within the rental property and cannot exceed 30 characters.

PropertyId
required
integer <int32>

Rental property unique identifier that the unit belongs to.

UnitSize
integer <int32>

Size of the unit.

MarketRent
number <double>

Market rent of the unit. This value is separate from the lease rent and is typically used for rental listings.

required
object

Rental unit address.

UnitBedrooms
string
Enum: "NotSet" "Studio" "OneBed" "TwoBed" "ThreeBed" "FourBed" "FiveBed" "SixBed" "SevenBed" "EightBed" "NineBedPlus"

Number of bedrooms in the unit.

UnitBathrooms
string
Enum: "NotSet" "OneBath" "OnePointFiveBath" "TwoBath" "TwoPointFiveBath" "ThreeBath" "FourBath" "FiveBath" "FivePlusBath" "ThreePointFiveBath" "FourPointFiveBath"

Number of bathrooms in the unit.

Description
string

Description of the unit. The description cannot exceed 65,535 characters.

Responses

Request samples

Content type
application/json
{
  • "UnitNumber": "string",
  • "PropertyId": 0,
  • "UnitSize": 0,
  • "MarketRent": 0,
  • "Address": {
    },
  • "UnitBedrooms": "NotSet",
  • "UnitBathrooms": "NotSet",
  • "Description": "string"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "PropertyId": 0,
  • "BuildingName": "string",
  • "UnitNumber": "string",
  • "Description": "string",
  • "MarketRent": 0,
  • "Address": {
    },
  • "UnitBedrooms": "NotSet",
  • "UnitBathrooms": "NotSet",
  • "UnitSize": 0,
  • "IsUnitListed": true,
  • "IsUnitOccupied": true
}

Retrieve a unit

Retrieves a specific rental property unit.

Required permission(s):

Rentals > Rental properties and units - View

path Parameters
unitId
required
integer <int32>

The rental unit identifier.

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "PropertyId": 0,
  • "BuildingName": "string",
  • "UnitNumber": "string",
  • "Description": "string",
  • "MarketRent": 0,
  • "Address": {
    },
  • "UnitBedrooms": "NotSet",
  • "UnitBathrooms": "NotSet",
  • "UnitSize": 0,
  • "IsUnitListed": true,
  • "IsUnitOccupied": true
}

Update a unit

Updates a rental unit.

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

Required permission(s):

Rentals > Rental properties and units - View Edit

path Parameters
unitId
required
integer <int32>

The identifier of the unit to update.

Request Body schema: application/json
UnitNumber
required
string non-empty

Unit number. Must be unique within the rental property and cannot exceed 30 characters.

UnitSize
integer <int32>

Size of the unit.

MarketRent
number <double>

Market rent of the unit. This value is separate from the lease rent and is typically used for rental listings.

required
object

Rental unit address.

UnitBedrooms
string
Enum: "NotSet" "Studio" "OneBed" "TwoBed" "ThreeBed" "FourBed" "FiveBed" "SixBed" "SevenBed" "EightBed" "NineBedPlus"

Number of bedrooms in the unit.

UnitBathrooms
string
Enum: "NotSet" "OneBath" "OnePointFiveBath" "TwoBath" "TwoPointFiveBath" "ThreeBath" "FourBath" "FiveBath" "FivePlusBath" "ThreePointFiveBath" "FourPointFiveBath"

Number of bathrooms in the unit.

Description
string

Description of the unit. The description cannot exceed 65,535 characters.

Responses

Request samples

Content type
application/json
{
  • "UnitNumber": "string",
  • "UnitSize": 0,
  • "MarketRent": 0,
  • "Address": {
    },
  • "UnitBedrooms": "NotSet",
  • "UnitBathrooms": "NotSet",
  • "Description": "string"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "PropertyId": 0,
  • "BuildingName": "string",
  • "UnitNumber": "string",
  • "Description": "string",
  • "MarketRent": 0,
  • "Address": {
    },
  • "UnitBedrooms": "NotSet",
  • "UnitBathrooms": "NotSet",
  • "UnitSize": 0,
  • "IsUnitListed": true,
  • "IsUnitOccupied": true
}

Rental Units

Rental property unit resources providing access to units and unit notes.

Retrieve all amenities

Retrieves all amenities for a rental unit.

Required permission(s):

Rentals > Rental properties and units - View

path Parameters
unitId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Features": [
    ]
}

Update amenities

Updates the amenities for a rental unit.

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

Required permission(s):

Rentals > Rental properties and units - View Edit

path Parameters
unitId
required
integer <int32>
Request Body schema: application/json
Features
Array of strings
Items Enum: "CableReady" "Microwave" "HardwoodFloors" "HighSpeedInternet" "AirConditioning" "Refrigerator" "Dishwasher" "WalkinClosets" "BalconyOrDeckOrPatio" "GarageParking" "Carport" "FencedYard" "LaundryRoomOrHookups" "Fireplace" "CableReadyCommercial" "HighSpeedInternetCommercial" "AirConditioningCommercial" "Heating" "OvenOrRange" "HeatElectric" "HeatGas" "HeatOil" "PetsAllowed" "Balcony" "PrivateBalcony" "PrivatePatio" "Dryer" "Heat" "WD_Hookup" "Washer" "AdditionalStorage" "Alarm" "Carpet" "CeilingFan" "ControlledAccess" "Courtyard" "Disposal" "DoubleSinkVanity" "FramedMirrors" "Furnished" "Handrails" "IndividualClimateControl" "IslandKitchen" "LinenCloset" "Pantry" "Satellite" "Skylight" "TileFlooring" "VaultedCeiling" "View" "VinylFlooring" "WheelChair" "WindowCoverings"

A list of unit amenities. Any existing amenities associated with the unit that are not submitted in the request will be removed from the unit.

Responses

Request samples

Content type
application/json
{
  • "Features": [
    ]
}

Response samples

Content type
application/json
{
  • "Features": [
    ]
}

Retrieve all unit images

Retrieves all images for a unit. Note this endpoint will only return file metadata such as file names and descriptions. To download files make requests to the Download File endpoint.

Required permission(s):

Rentals > Rental properties and units - View

path Parameters
unitId
required
integer <int32>
query Parameters
orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve a unit image

Retrieves a unit image.

Required permission(s):

Rentals > Rental properties and units - View

path Parameters
unitId
required
integer <int32>
imageId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Description": "string",
  • "PhysicalFileName": "string",
  • "Provider": "None",
  • "ShowInListing": true
}

Update a unit image

Updates a unit image.

Required permission(s):

Rentals > Properties and units - View Edit

path Parameters
unitId
required
integer <int32>
imageId
required
integer <int32>
Request Body schema: application/json
Description
string

Description of the image. The description cannot exceed 100 characters.

ShowInListing
required
boolean

Indicates whether the image will be shown in listings for this unit.

Responses

Request samples

Content type
application/json
{
  • "Description": "string",
  • "ShowInListing": true
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Description": "string",
  • "PhysicalFileName": "string",
  • "Provider": "None",
  • "ShowInListing": true
}

Delete a unit image

Deletes a unit image.

Required permission(s):

Rentals > Rental properties and units - View Edit Delete

path Parameters
unitId
required
integer <int32>
imageId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "UserMessage": "string",
  • "ErrorCode": "string",
  • "Errors": [
    ]
}

Download a unit image

Use this endpoint to create a temporary URL that can be used to download a unit image. This URL expires after 5 minutes.

Required permission(s):

Rentals > Rental properties and units - View

path Parameters
unitId
required
integer <int32>
imageId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "DownloadUrl": "string"
}

Update unit image order

Updates the image display order within the Buildium web application and in any associated rental listings.

Required permission(s):

Rentals > Rental properties and units - View Edit

path Parameters
unitId
required
integer <int32>
Request Body schema: application/json
Ids
required
Array of integers <int32> [ items <int32 > ]

Unique identifiers for the images. The request must contain the ids of all images.

Responses

Request samples

Content type
application/json
{
  • "Ids": [
    ]
}

Response samples

Content type
application/json
[
  • {
    }
]

Upload a unit image

Uploads an image and associates it to the specified unit record.

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

Step 1 - Save file metadata
The first step in the file upload process is to submit the file metadata to /v1/rentals/units/{unitId:int}/images/uploadrequests. The response of this call will contain a URL and a collection of form data that will be used in step 2 to generate the request for the file binary upload.

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

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

2. Set the Content-Type header to multipart/form-data.

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

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

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

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

NOTE: The file identifier is not generated in this response. To retrieve the file identifier, call /v1/files and pass the PhysicalFileName value received from the response of this endpoint into the physicalfilenames query parameter.

Required permission(s):

Rentals > Rental properties and units - View Edit

path Parameters
unitId
required
integer <int32>
Request Body schema: application/json
FileName
required
string non-empty

Name of file being uploaded. The value can not exceed 255 characters.

Description
string

A description of the file. The value cannot exceed 100 characters.

ShowInListing
required
boolean

Indicates whether the image will be shown in listings.

Responses

Request samples

Content type
application/json
{
  • "FileName": "string",
  • "Description": "string",
  • "ShowInListing": true
}

Response samples

Content type
application/json
{
  • "BucketUrl": "string",
  • "FormData": {
    },
  • "PhysicalFileName": "string"
}

Create an image for a unit using a video link

Creates an image for a rental unit using a video link.

Required permission(s):

Rentals > Properties and units - View Edit

path Parameters
unitId
required
integer <int32>
Request Body schema: application/json
VideoUrl
required
string non-empty

The URL of the video. Only Youtube and Vimeo URLs are supported. The URL cannot exceed 255 characters.

ShowInListing
required
boolean

Indicates whether the video will be shown in the listing.

Responses

Request samples

Content type
application/json
{
  • "VideoUrl": "string",
  • "ShowInListing": true
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Description": "string",
  • "PhysicalFileName": "string",
  • "Provider": "None",
  • "ShowInListing": true
}

Retrieve all notes

Retrieves all rental unit notes.

Required permission(s):

Rentals > Rental properties and units - View

path Parameters
unitId
required
integer <int32>
query Parameters
updateddatetimefrom
string <date-time>

Filters results to any note whose updated date and time are greater than or equal to the specified value. The value must be formatted as YYYY-MM-DD HH:MM:SS.

updateddatetimeto
string <date-time>

Filters results to any note whose updated date and time are less than or equal to the specified value. The value must be formatted as YYYY-MM-DD HH:MM:SS.

lastupdatedbyuserid
integer <int32>

Filters results to only notes that were last updated by the specified user identifier.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a note

Creates a rental unit note.

Required permission(s):

Rentals > Rental properties and units - View Edit

path Parameters
unitId
required
integer <int32>
Request Body schema: application/json
Note
required
string non-empty

Note contents. The value cannot exceed 65535 characters.

Responses

Request samples

Content type
application/json
{
  • "Note": "string"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Note": "string",
  • "LastUpdatedByUser": {
    }
}

Retrieve a note

Retrieves a rental unit note.

Required permission(s):

Rentals > Rental properties and units - View

path Parameters
unitId
required
integer <int32>
noteId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Note": "string",
  • "LastUpdatedByUser": {
    }
}

Update a note

Updates a rental unit note.

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

Required permission(s):

Rentals > Rental properties and units - View Edit

path Parameters
unitId
required
integer <int32>
noteId
required
integer <int32>
Request Body schema: application/json
Note
required
string non-empty

Note contents. The value cannot exceed 65535 characters.

Responses

Request samples

Content type
application/json
{
  • "Note": "string"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Note": "string",
  • "LastUpdatedByUser": {
    }
}

Rental Appliances

Rental property appliance resources providing access to appliances and appliance history.

Retrieve all appliances

Retrieves all rental appliances.

Required permission(s):

Rentals > Rental properties and units - View

query Parameters
propertyids
Array of integers <int32> [ items <int32 > ]

Filters results to appliances associated to any of the specified rental property identifiers.

unitids
Array of integers <int32> [ items <int32 > ]

Filters results to appliances associated to any of the specified rental unit identifiers.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create an appliance

Creates a rental property appliance.

Required permission(s):

Rentals > Rental properties and units - View Edit

Request Body schema: application/json
PropertyId
required
integer <int32>

Rental property unique identifier that the appliance belongs to.

UnitId
integer <int32>

Rental unit unique identifier that the appliance belongs to.

Name
required
string non-empty

The name of the appliance. The name cannot exceed 100 characters.

Make
string

The make of the appliance. The make cannot exceed 30 characters.

Model
string

The model of the appliance. The model cannot exceed 30 characters.

Description
string

The description of the appliance. The description cannot exceed 500 characters.

InstallDate
string <date>

The install date for the appliance's warranty. Must be formatted as YYYY-MM-DD.

WarrantyEndDate
string <date>

The end date for the appliance's warranty. The warranty's end date cannot be before the installed date, if it exists. Must be formatted as YYYY-MM-DD.

Responses

Request samples

Content type
application/json
{
  • "PropertyId": 0,
  • "UnitId": 0,
  • "Name": "string",
  • "Make": "string",
  • "Model": "string",
  • "Description": "string",
  • "InstallDate": "2019-08-24",
  • "WarrantyEndDate": "2019-08-24"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "PropertyId": 0,
  • "UnitId": 0,
  • "Name": "string",
  • "Make": "string",
  • "Model": "string",
  • "Description": "string",
  • "WarrantyEndDate": "2019-08-24"
}

Retrieve an appliance

Retrieves a rental appliance.

Required permission(s):

Rentals > Rental properties and units - View

path Parameters
applianceId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "PropertyId": 0,
  • "UnitId": 0,
  • "Name": "string",
  • "Make": "string",
  • "Model": "string",
  • "Description": "string",
  • "WarrantyEndDate": "2019-08-24"
}

Delete an appliance

Deletes an appliance.

Required permission(s):

Rentals > Rental properties and units - View Edit

path Parameters
applianceId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "UserMessage": "string",
  • "ErrorCode": "string",
  • "Errors": [
    ]
}

Update an appliance

Updates a rental appliance.

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

Required permission(s):

Rentals > Rental properties and units - View Edit

path Parameters
applianceId
required
integer <int32>
Request Body schema: application/json
UnitId
integer <int32>

The unit identifier the rental appliance belongs to. Must be within the rental property the appliance is in.

Name
required
string non-empty

The name of the rental appliance. The name cannot exceed 100 characters.

Make
string

The make of the rental appliance. The make cannot exceed 30 characters.

Model
string

The model of the rental appliance. The model cannot exceed 30 characters.

Description
string

The description of the rental appliance. The description cannot exceed 500 characters.

WarrantyEndDate
string <date>

The end date for the rental appliance's warranty. The warranty's end date cannot be before the installed date, if it exists. Must be formatted as YYYY-MM-DD.

Responses

Request samples

Content type
application/json
{
  • "UnitId": 0,
  • "Name": "string",
  • "Make": "string",
  • "Model": "string",
  • "Description": "string",
  • "WarrantyEndDate": "2019-08-24"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "PropertyId": 0,
  • "UnitId": 0,
  • "Name": "string",
  • "Make": "string",
  • "Model": "string",
  • "Description": "string",
  • "WarrantyEndDate": "2019-08-24"
}

Retrieve all service history

Retrieves all of the service history records for an appliance.

Required permission(s):

Rentals > Rental properties and units - View

path Parameters
applianceId
required
integer <int32>
query Parameters
orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a service history

Creates a service history record for an appliance.

Required permission(s):

Rentals > Rental properties and units - View Edit

path Parameters
applianceId
required
integer <int32>
Request Body schema: application/json
ServiceType
required
string
Enum: "Installed" "Serviced" "Uninstalled"

Specifies the type of service that occured.

Date
required
string <date>

Date the service was performed. Must be formatted as YYYY-MM-DD.

Details
string

The service history details associated with the appliance. The description cannot exceed 100 characters.

Responses

Request samples

Content type
application/json
{
  • "ServiceType": "Installed",
  • "Date": "2019-08-24",
  • "Details": "string"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "ServiceType": "Installed",
  • "Date": "2019-08-24",
  • "Details": "string"
}

Retrieve a service history

Retrieves a specific service history record for a given appliance.

Required permission(s):

Rentals > Rental properties and units - View

path Parameters
applianceId
required
integer <int32>
serviceHistoryId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "ServiceType": "Installed",
  • "Date": "2019-08-24",
  • "Details": "string"
}

Rental Owners

Rental property owner resources providing access to owners and owner notes.

Retrieve all owners

Retrieves a list of rental owners.

Required permission(s):

Rentals > Property Rental Owners - View

query Parameters
propertyids
Array of integers <int32> [ items <int32 > ]

Filters results to any lease whose unit belongs to the specified set of property ids.

status
string
Enum: "Inactive" "Active"

Filters results by the status of the user. If no status is specified both active and inactive users will be returned.

agreementdaysremaining
integer <int32>

Filters results by the days remaining on their lease agreement.

ownername
string

Filters results to any owner whose name contains the specified value.

phone
string

Filters results to any owner who has a phone number that contains the specified value.

lastupdatedfrom
string <date-time>

Filters results to any rental owners that were updated on or after the specified date. The value must be in UTC and formatted as YYYY-MM-DDTHH:MM:SSZ.

lastupdatedto
string <date-time>

Filters results to any rental owners that were updated on or before the specified date. The value must be in UTC and formatted as YYYY-MM-DDTHH:MM:SSZ.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create an owner

Creates a rental owner.

Required permission(s):

Rentals > Property Rental Owners - View Edit

Request Body schema: application/json
FirstName
string

First name of the rental owner. Required if IsCompany is false. The value cannot exceed 127 characters.

LastName
string

Last name of the rental owner. Required if IsCompany is false. The value cannot exceed 127 characters.

IsCompany
required
boolean

Indicates whether the rental owner should be considered a company or person.

CompanyName
string

Company name of the rental owner. Required if IsCompany is true. The value cannot exceed 127 characters.

DateOfBirth
string <date>

Date of birth of the rental owner. Must be formatted as YYYY-MM-DD.

ManagementAgreementStartDate
string <date>

Start date of the management agreement with the rental owner. Must be formatted as YYYY-MM-DD.

ManagementAgreementEndDate
string <date>

End date of the management agreement with the rental owner. Must be formatted as YYYY-MM-DD.

Email
string

Email of the rental owner.

AlternateEmail
string

Alternate email of the rental owner.

object

Phone numbers for the rental owner.

required
object

Address of the rental owner.

Comment
string

Comments about the rental owner. The comments cannot exceed 65,535 characters.

PropertyIds
required
Array of integers <int32> [ items <int32 > ]

A list of rental property ID's to associate with this rental owner. At least one property ID must be provided.

object

The tax information of the rental owner.

Responses

Request samples

Content type
application/json
{
  • "FirstName": "string",
  • "LastName": "string",
  • "IsCompany": true,
  • "CompanyName": "string",
  • "DateOfBirth": "2019-08-24",
  • "ManagementAgreementStartDate": "2019-08-24",
  • "ManagementAgreementEndDate": "2019-08-24",
  • "Email": "string",
  • "AlternateEmail": "string",
  • "PhoneNumbers": {
    },
  • "Address": {
    },
  • "Comment": "string",
  • "PropertyIds": [
    ],
  • "TaxInformation": {
    }
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "IsCompany": true,
  • "IsActive": true,
  • "FirstName": "string",
  • "LastName": "string",
  • "PhoneNumbers": [
    ],
  • "Email": "string",
  • "AlternateEmail": "string",
  • "Comment": "string",
  • "Address": {
    },
  • "ManagementAgreementStartDate": "2019-08-24",
  • "ManagementAgreementEndDate": "2019-08-24",
  • "CompanyName": "string",
  • "PropertyIds": [
    ],
  • "TaxInformation": {
    }
}

Retrieve an owner

Retrieves a specific rental owner.

Required permission(s):

Rentals > Property Rental Owners - View

path Parameters
rentalOwnerId
required
integer <int32>

The rental owner identifier.

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "IsCompany": true,
  • "IsActive": true,
  • "FirstName": "string",
  • "LastName": "string",
  • "PhoneNumbers": [
    ],
  • "Email": "string",
  • "AlternateEmail": "string",
  • "Comment": "string",
  • "Address": {
    },
  • "ManagementAgreementStartDate": "2019-08-24",
  • "ManagementAgreementEndDate": "2019-08-24",
  • "CompanyName": "string",
  • "PropertyIds": [
    ],
  • "TaxInformation": {
    }
}

Update an owner

Updates a rental owner.

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

Required permission(s):

Rentals > Property Rental Owners - View Edit

path Parameters
rentalOwnerId
required
integer <int32>

The identifier of the rental owner to update.

Request Body schema: application/json
FirstName
string

First name of the rental owner. Required if IsCompany is false. The value cannot exceed 127 characters.

LastName
string

Last name of the rental owner. Required if IsCompany is false. The value cannot exceed 127 characters.

IsCompany
required
boolean

Indicates whether the rental owner should be considered a company or person.

CompanyName
string

Company name of the rental owner. Required if IsCompany is true. The value cannot exceed 127 characters.

DateOfBirth
string <date>

Date of birth of the rental owner. Must be formatted as YYYY-MM-DD.

ManagementAgreementStartDate
string <date>

Start date of the management agreement with the rental owner. Must be formatted as YYYY-MM-DD.

ManagementAgreementEndDate
string <date>

End date of the management agreement with the rental owner. Must be formatted as YYYY-MM-DD.

Email
string

Email of the rental owner.

AlternateEmail
string

Alternate email of the rental owner.

object

Phone numbers for the rental owner.

required
object

Address of the rental owner.

Comment
string

Comments about the rental owner. The comments cannot exceed 65,535 characters.

PropertyIds
required
Array of integers <int32> [ items <int32 > ]

A list of rental property ID's to associate with this rental owner. At least one property ID must be provided.

Responses

Request samples

Content type
application/json
{
  • "FirstName": "string",
  • "LastName": "string",
  • "IsCompany": true,
  • "CompanyName": "string",
  • "DateOfBirth": "2019-08-24",
  • "ManagementAgreementStartDate": "2019-08-24",
  • "ManagementAgreementEndDate": "2019-08-24",
  • "Email": "string",
  • "AlternateEmail": "string",
  • "PhoneNumbers": {
    },
  • "Address": {
    },
  • "Comment": "string",
  • "PropertyIds": [
    ]
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "IsCompany": true,
  • "IsActive": true,
  • "FirstName": "string",
  • "LastName": "string",
  • "PhoneNumbers": [
    ],
  • "Email": "string",
  • "AlternateEmail": "string",
  • "Comment": "string",
  • "Address": {
    },
  • "ManagementAgreementStartDate": "2019-08-24",
  • "ManagementAgreementEndDate": "2019-08-24",
  • "CompanyName": "string",
  • "PropertyIds": [
    ],
  • "TaxInformation": {
    }
}

Retrieves all notes

Retrieves all rental owner notes.

Required permission(s):

Rentals > Property Rental Owners - View

path Parameters
rentalOwnerId
required
integer <int32>
query Parameters
updateddatetimefrom
string <date-time>

Filters results to any note whose updated date and time are greater than or equal to the specified value. The value must be formatted as YYYY-MM-DD HH:MM:SS.

updateddatetimeto
string <date-time>

Filters results to any note whose updated date and time are less than or equal to the specified value. The value must be formatted as YYYY-MM-DD HH:MM:SS.

lastupdatedbyuserid
integer <int32>

Filters results to only notes that were last updated by the specified user identifier.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a note

Creates a new Rental Owner note.

Required permission(s):

Rentals > Property Rental Owners - View Edit

path Parameters
rentalOwnerId
required
integer <int32>
Request Body schema: application/json
Note
required
string non-empty

Note contents. The value cannot exceed 65535 characters.

Responses

Request samples

Content type
application/json
{
  • "Note": "string"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Note": "string",
  • "LastUpdatedByUser": {
    }
}

Retrieve a note

Retrieves a rental owner note.

Required permission(s):

Rentals > Property Rental Owners - View

path Parameters
rentalOwnerId
required
integer <int32>
noteId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Note": "string",
  • "LastUpdatedByUser": {
    }
}

Update a note

Updates a Rental Owner note.

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

Required permission(s):

Rentals > Property Rental Owners - View Edit

path Parameters
rentalOwnerId
required
integer <int32>
noteId
required
integer <int32>
Request Body schema: application/json
Note
required
string non-empty

Note contents. The value cannot exceed 65535 characters.

Responses

Request samples

Content type
application/json
{
  • "Note": "string"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Note": "string",
  • "LastUpdatedByUser": {
    }
}

Rental Tenants

Rental tenant resources providing access to tenant and tenant notes.

Retrieve all tenants

Retrieves a list of tenants.

Required permission(s):

Rentals > Tenants - View

query Parameters
buildingstatuses
Array of strings
Items Enum: "Active" "InActive"

Filters results by the status of the rental property the tenants are associated with. If no status is specified tenants in either active and inactive rental properties will be returned.

leasetermstatuses
Array of strings
Items Enum: "Active" "Past" "Future"

Filters results to any tenant whose lease term matches the specified status. If no status is specified tenants with any lease terms status will be returned.

unitnumber
string

Filters results to any tenant whose unit number contains the specified value.

name
string

Filters results to any tenant whose name contains the specified value.

phone
string

Filters results to any tenant whose phone number contains the specified value.

email
string

Filters results to any tenant whose email contains the specified value.

propertyids
Array of integers <int32> [ items <int32 > ]

Filters results to tenants whose rental unit belongs to the specified set of property ids.

rentalownerids
Array of integers <int32> [ items <int32 > ]

Filters results to tenants whose rental unit belongs to a property with a rental owner in the specified set of rental owner ids.

lastupdatedfrom
string <date-time>

Filters results to any rental tenants that were updated on or after the specified date. The value must be in UTC and formatted as YYYY-MM-DDTHH:MM:SSZ.

lastupdatedto
string <date-time>

Filters results to any rental tenants that were updated on or before the specified date. The value must be in UTC and formatted as YYYY-MM-DDTHH:MM:SSZ.

unitids
Array of integers <int32> [ items <int32 > ]

Filters results to only tenants associated with the specified set of unit ids.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a tenant

Creates a rental tenant.

Required permission(s):

Rentals > Tenants - View Edit
Rentals > Leases - View Edit

Request Body schema: application/json
LeaseId
required
integer <int32>

Lease ID to associate the tenant with.

FirstName
required
string non-empty

First name of the tenant. The value cannot exceed 127 characters.

LastName
required
string non-empty

Last name of the tenant. The value cannot exceed 127 characters.

Email
string

Email of the tenant.

AlternateEmail
string

Alternate email of the tenant.

object

Phone numbers for the tenant.

DateOfBirth
string <date>

Date of birth for the tenant. Must be formatted as YYYY-MM-DD.

Comment
string

Comments about the tenant. The value cannot exceed 65,535 characters.

TaxId
string

Tax identifier of the tenant. Valid formats are: 12-1234567, 123-12-1234, 123456789

object

Emergency contact information associated with the tenant.

required
object

Address of the tenant.

object

Alternate address of the tenant.

MailingPreference
string
Enum: "PrimaryAddress" "AlternateAddress"

Mailing preference for the tenant. If an alternate address exists and this value is not provided then the primary address will be set as the preferred address.

Responses

Request samples

Content type
application/json
{
  • "LeaseId": 0,
  • "FirstName": "string",
  • "LastName": "string",
  • "Email": "string",
  • "AlternateEmail": "string",
  • "PhoneNumbers": {
    },
  • "DateOfBirth": "2019-08-24",
  • "Comment": "string",
  • "TaxId": "string",
  • "EmergencyContact": {
    },
  • "Address": {
    },
  • "AlternateAddress": {
    },
  • "MailingPreference": "PrimaryAddress"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "FirstName": "string",
  • "LastName": "string",
  • "Email": "string",
  • "AlternateEmail": "string",
  • "PhoneNumbers": [
    ],
  • "CreatedDateTime": "2019-08-24T14:15:22Z",
  • "EmergencyContact": {
    },
  • "DateOfBirth": "2019-08-24",
  • "SMSOptInStatus": "NotSet",
  • "Address": {
    },
  • "AlternateAddress": {
    },
  • "MailingPreference": "PrimaryAddress",
  • "Leases": [
    ],
  • "Comment": "string",
  • "TaxId": "string"
}

Retrieve a tenant

Retrieve a specific tenant.

Required permission(s):

Rentals > Tenants - View

path Parameters
tenantId
required
integer <int32>

The tenant identifier.

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "FirstName": "string",
  • "LastName": "string",
  • "Email": "string",
  • "AlternateEmail": "string",
  • "PhoneNumbers": [
    ],
  • "CreatedDateTime": "2019-08-24T14:15:22Z",
  • "EmergencyContact": {
    },
  • "DateOfBirth": "2019-08-24",
  • "SMSOptInStatus": "NotSet",
  • "Address": {
    },
  • "AlternateAddress": {
    },
  • "MailingPreference": "PrimaryAddress",
  • "Leases": [
    ],
  • "Comment": "string",
  • "TaxId": "string"
}

Update a tenant

Updates a rental tenant.

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

Required permission(s):

Rentals > Tenants - View Edit

path Parameters
tenantId
required
integer <int32>
Request Body schema: application/json
FirstName
required
string non-empty

First name of the tenant. The value cannot exceed 127 characters.

LastName
required
string non-empty

Last name of the tenant. The value cannot exceed 127 characters.

Email
string

Email of the tenant.

AlternateEmail
string

Alternate email of the tenant.

object

Phone numbers for the tenant.

DateOfBirth
string <date>

Date of birth for the tenant. Must be formatted as YYYY-MM-DD.

Comment
string

Comments about the tenant. The value cannot exceed 65,535 characters.

TaxId
string

Tax identifier of the tenant. Valid formats are: 12-1234567, 123-12-1234, 123456789

object

Emergency contact information associated with the tenant.

required
object

Address of the tenant.

object

Alternate address of the tenant.

MailingPreference
string
Enum: "PrimaryAddress" "AlternateAddress"

Mailing preference for the tenant. If an alternate address exists and this value is not provided then the primary address will be set as the preferred address.

Responses

Request samples

Content type
application/json
{
  • "FirstName": "string",
  • "LastName": "string",
  • "Email": "string",
  • "AlternateEmail": "string",
  • "PhoneNumbers": {
    },
  • "DateOfBirth": "2019-08-24",
  • "Comment": "string",
  • "TaxId": "string",
  • "EmergencyContact": {
    },
  • "Address": {
    },
  • "AlternateAddress": {
    },
  • "MailingPreference": "PrimaryAddress"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "FirstName": "string",
  • "LastName": "string",
  • "Email": "string",
  • "AlternateEmail": "string",
  • "PhoneNumbers": [
    ],
  • "CreatedDateTime": "2019-08-24T14:15:22Z",
  • "EmergencyContact": {
    },
  • "DateOfBirth": "2019-08-24",
  • "SMSOptInStatus": "NotSet",
  • "Address": {
    },
  • "AlternateAddress": {
    },
  • "MailingPreference": "PrimaryAddress",
  • "Leases": [
    ],
  • "Comment": "string",
  • "TaxId": "string"
}

Retrieve all notes

Retrieves all tenant notes.

Required permission(s):

Rentals > Tenants - View

path Parameters
tenantId
required
integer <int32>

The tenant identifier.

query Parameters
updateddatetimefrom
string <date-time>

Filters results to any note whose updated date and time are greater than or equal to the specified value. The value must be formatted as YYYY-MM-DD HH:MM:SS.

updateddatetimeto
string <date-time>

Filters results to any note whose updated date and time are less than or equal to the specified value. The value must be formatted as YYYY-MM-DD HH:MM:SS.

lastupdatedbyuserid
integer <int32>

Filters results to only notes that were last updated by the specified user identifier.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a note

Creates a tenant note.

Required permission(s):

Rentals > Tenants - View Edit

path Parameters
tenantId
required
integer <int32>
Request Body schema: application/json
Note
required
string non-empty

Note contents. The value cannot exceed 65535 characters.

Responses

Request samples

Content type
application/json
{
  • "Note": "string"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Note": "string",
  • "LastUpdatedByUser": {
    }
}

Retrieve a note

Retrieves a tenant note.

Required permission(s):

Rentals > Tenants - View

path Parameters
tenantId
required
integer <int32>
noteId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Note": "string",
  • "LastUpdatedByUser": {
    }
}

Update a note

Updates a tenant note.

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

Required permission(s):

Rentals > Tenants - View Edit

path Parameters
tenantId
required
integer <int32>
noteId
required
integer <int32>
Request Body schema: application/json
Note
required
string non-empty

Note contents. The value cannot exceed 65535 characters.

Responses

Request samples

Content type
application/json
{
  • "Note": "string"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Note": "string",
  • "LastUpdatedByUser": {
    }
}

Leases

Lease resources providing access to rental property leases.

Retrieve all leases

Retrieves a list of leases.

Rentals > Leases - View

query Parameters
propertyids
Array of integers <int32> [ items <int32 > ]

Filters results to any lease whose unit belongs to the specified set of property ids.

rentalownerids
Array of integers <int32> [ items <int32 > ]

Filters results to any lease whose unit belongs to a property with a rental owner in the specified set of rental owner ids.

unitnumber
string

Filters results to any lease whose unit number contains the specified value.

tenantname
string

Filters results to any lease whose current tenants' names contain the specified value.

leasedatefrom
string <date>

Filters results to any lease whose start date is greater than or equal to the specified value.

leasedateto
string <date>

Filters results to any lease whose end date is less than or equal to the specified value.

leasetypes
Array of strings
Items Enum: "None" "Fixed" "FixedWithRollover" "AtWill"

Filters results to any lease whose lease type matches the specified status. If no type is specified, leases with any type will be returned.

leasestatuses
Array of strings
Items Enum: "Active" "Past" "Future"

Filters results to any lease whose lease term matches the specified status. If no status is specified, leases with any lease term status will be returned.

createddatetimefrom
string <date-time>

Filters results to any lease whose created date and time are greater than or equal to the specified value. The value must be formatted as YYYY-MM-DD HH:MM:SS.

createddatetimeto
string <date-time>

Filters results to any lease whose created date and time are less than or equal to the specified value. The value must be formatted as YYYY-MM-DD HH:MM:SS.

lastupdatedfrom
string <date-time>

Filters results to any leases that were updated on or after the specified date. The value must be in UTC and formatted as YYYY-MM-DDTHH:MM:SSZ.

lastupdatedto
string <date-time>

Filters results to any leases that were updated on or before the specified date. The value must be in UTC and formatted as YYYY-MM-DDTHH:MM:SSZ.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a lease

Creates a signed lease.

Rentals > Leases - View Edit
Rentals > Tenants - View Edit
Rentals > Lease transactions - View Edit

Optional Permissions:


Rentals > Applicants - View In order to add tenants to the lease using the ApplicantIds property, you must have this permission.

Request Body schema: application/json
LeaseType
required
string
Enum: "Fixed" "FixedWithRollover" "AtWill"

Describes the type of lease.

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

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

FixedWithRollover leases are similar to fixed leases, but instead of Buildium moving this lease to expired as of the end date, it will move the lease to an at will status, which tells Buildium to continue posting monthly rent charges, late fees for you until you manually end the lease.

UnitId
required
integer <int32>

Unit unique identifier associated with the lease.

LeaseFromDate
required
string <date>

Start date of the lease.

LeaseToDate
string <date>

End date of the lease.

SendWelcomeEmail
required
boolean

Indicates whether to send a welcome email to all tenants on the lease inviting them to the resident center website.

Array of objects (RentalTenantPutMessage)

List of new tenants to add to the lease. The list cannot exceed five tenants.

TenantIds
Array of integers <int32> [ items <int32 > ]

List of identifiers for existing tenants to add to the lease. The list cannot exceed five tenants.

ApplicantIds
Array of integers <int32> [ items <int32 > ]

List of identifiers for applicants to become tenants on the lease. Identifiers must refer to applicants with a Status of Approved. The list cannot exceed five applicants.

Array of objects (LeaseCosignerPostMessage)

List of the cosigners on the lease.

object

Rent charge on the post message

object

The security deposit.

ProratedFirstMonthRent
number <double>

Prorated rent charged for the first month of the lease. Must be null if the lease begins on the first day of a month.

ProratedLastMonthRent
number <double>

Prorated rent charged for the last month of the lease. Must be null if the lease ends on the last day of a month.

Responses

Request samples

Content type
application/json
{
  • "LeaseType": "Fixed",
  • "UnitId": 0,
  • "LeaseFromDate": "2019-08-24",
  • "LeaseToDate": "2019-08-24",
  • "SendWelcomeEmail": true,
  • "Tenants": [
    ],
  • "TenantIds": [
    ],
  • "ApplicantIds": [
    ],
  • "Cosigners": [
    ],
  • "Rent": {
    },
  • "SecurityDeposit": {
    },
  • "ProratedFirstMonthRent": 0,
  • "ProratedLastMonthRent": 0
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "PropertyId": 0,
  • "UnitId": 0,
  • "UnitNumber": "string",
  • "LeaseFromDate": "2019-08-24",
  • "LeaseToDate": "2019-08-24",
  • "LeaseType": "None",
  • "LeaseStatus": "Active",
  • "IsEvictionPending": true,
  • "TermType": "MonthToMonth",
  • "RenewalOfferStatus": "NotSet",
  • "CurrentTenants": [
    ],
  • "CurrentNumberOfOccupants": 0,
  • "AccountDetails": {
    },
  • "Cosigners": [
    ],
  • "AutomaticallyMoveOutTenants": true,
  • "CreatedDateTime": "2019-08-24T14:15:22Z",
  • "LastUpdatedDateTime": "2019-08-24T14:15:22Z",
  • "MoveOutData": [
    ],
  • "PaymentDueDay": 0,
  • "Tenants": [
    ]
}

Retrieve a lease

Retrieves a specific lease.

Rentals > Leases - View

path Parameters
leaseId
required
integer <int32>

The lease identifier.

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "PropertyId": 0,
  • "UnitId": 0,
  • "UnitNumber": "string",
  • "LeaseFromDate": "2019-08-24",
  • "LeaseToDate": "2019-08-24",
  • "LeaseType": "None",
  • "LeaseStatus": "Active",
  • "IsEvictionPending": true,
  • "TermType": "MonthToMonth",
  • "RenewalOfferStatus": "NotSet",
  • "CurrentTenants": [
    ],
  • "CurrentNumberOfOccupants": 0,
  • "AccountDetails": {
    },
  • "Cosigners": [
    ],
  • "AutomaticallyMoveOutTenants": true,
  • "CreatedDateTime": "2019-08-24T14:15:22Z",
  • "LastUpdatedDateTime": "2019-08-24T14:15:22Z",
  • "MoveOutData": [
    ],
  • "PaymentDueDay": 0,
  • "Tenants": [
    ]
}

Update a lease

Update a signed lease.

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

Rentals > Leases - View Edit

path Parameters
leaseId
required
integer <int32>
Request Body schema: application/json
LeaseType
required
string
Enum: "Fixed" "FixedWithRollover" "AtWill"

Describes the type of lease.

UnitId
required
integer <int32>

Unit unique identifier associated with the lease.

LeaseFromDate
required
string <date>

Start date of the lease.

LeaseToDate
string <date>

End date of the lease.

IsEvictionPending
required
boolean

Indicates whether the lease has an eviction pending.

AutomaticallyMoveOutTenants
boolean

Indicates whether to automatically move out all tenants assigned to the lease and set the lease status to past when the lease ends.

Responses

Request samples

Content type
application/json
{
  • "LeaseType": "Fixed",
  • "UnitId": 0,
  • "LeaseFromDate": "2019-08-24",
  • "LeaseToDate": "2019-08-24",
  • "IsEvictionPending": true,
  • "AutomaticallyMoveOutTenants": true
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "PropertyId": 0,
  • "UnitId": 0,
  • "UnitNumber": "string",
  • "LeaseFromDate": "2019-08-24",
  • "LeaseToDate": "2019-08-24",
  • "LeaseType": "None",
  • "LeaseStatus": "Active",
  • "IsEvictionPending": true,
  • "TermType": "MonthToMonth",
  • "RenewalOfferStatus": "NotSet",
  • "CurrentTenants": [
    ],
  • "CurrentNumberOfOccupants": 0,
  • "AccountDetails": {
    },
  • "Cosigners": [
    ],
  • "AutomaticallyMoveOutTenants": true,
  • "CreatedDateTime": "2019-08-24T14:15:22Z",
  • "LastUpdatedDateTime": "2019-08-24T14:15:22Z",
  • "MoveOutData": [
    ],
  • "PaymentDueDay": 0,
  • "Tenants": [
    ]
}

Retrieve all move outs

Retrieves a list of move out dates for a given lease.

Required permission(s):

Rentals > Leases - View
Rentals > Tenants - View

path Parameters
leaseId
required
integer <int32>
query Parameters
orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a move out

Creates move out data for a single tenant on a given lease.

Required permission(s):

Rentals > Leases - View Edit
Rentals > Tenants - View Edit

path Parameters
leaseId
required
integer <int32>
Request Body schema: application/json
TenantId
required
integer <int32>

Tenant unique identifier.

MoveOutDate
required
string <date>

Date the tenant(s) will move out of the leased unit.

NoticeGivenDate
string <date>

Date the tenant(s) gave their move out notice.

Responses

Request samples

Content type
application/json
{
  • "TenantId": 0,
  • "MoveOutDate": "2019-08-24",
  • "NoticeGivenDate": "2019-08-24"
}

Response samples

Content type
application/json
{
  • "TenantId": 0,
  • "MoveOutDate": "2019-08-24",
  • "NoticeGivenDate": "2019-08-24"
}

Retrieve a move out

Retrieves move out data for a single tenant on a given lease.

Required permission(s):

Rentals > Leases - View
Rentals > Tenants - View

path Parameters
leaseId
required
integer <int32>
tenantId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "TenantId": 0,
  • "MoveOutDate": "2019-08-24",
  • "NoticeGivenDate": "2019-08-24"
}

Delete a move out

Deletes move out data for a tenant on a given lease.

Required Permission(s):

Rentals > Leases - View Edit
Rentals > Tenants - View

path Parameters
leaseId
required
integer <int32>
tenantId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "UserMessage": "string",
  • "ErrorCode": "string",
  • "Errors": [
    ]
}

Retrieve all notes

Retrieves all lease notes.

Required permission(s):

Rentals > Leases - View

path Parameters
leaseId
required
integer <int32>
query Parameters
updateddatetimefrom
string <date-time>

Filters results to any note whose updated date and time are greater than or equal to the specified value. The value must be formatted as YYYY-MM-DD HH:MM:SS.

updateddatetimeto
string <date-time>

Filters results to any note whose updated date and time are less than or equal to the specified value. The value must be formatted as YYYY-MM-DD HH:MM:SS.

lastupdatedbyuserid
integer <int32>

Filters results to only notes that were last updated by the specified user identifier.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a note

Creates a lease note.

Required permission(s):

Rentals > Leases - View Edit

path Parameters
leaseId
required
integer <int32>
Request Body schema: application/json
Note
required
string non-empty

Note contents. The value cannot exceed 65535 characters.

Responses

Request samples

Content type
application/json
{
  • "Note": "string"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Note": "string",
  • "LastUpdatedByUser": {
    }
}

Retrieve a note

Retrieves a lease note.

Required permission(s):

Rentals > Leases - View

path Parameters
leaseId
required
integer <int32>
noteId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Note": "string",
  • "LastUpdatedByUser": {
    }
}

Update a note

Updates a lease note.

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

Required permission(s):

Rentals > Leases - View Edit

path Parameters
leaseId
required
integer <int32>
noteId
required
integer <int32>
Request Body schema: application/json
Note
required
string non-empty

Note contents. The value cannot exceed 65535 characters.

Responses

Request samples

Content type
application/json
{
  • "Note": "string"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Note": "string",
  • "LastUpdatedByUser": {
    }
}

Retrieve all upcoming renewals

Retrieves all upcoming lease renewals across all rental properties.

Required permission(s):

Rentals > Leases - View

query Parameters
propertyids
Array of integers <int32> [ items <int32 > ]

Filters results to only include leases whose unit belongs to the specified set of property ids.

rentalownerids
Array of integers <int32> [ items <int32 > ]

Filters results to any lease whose unit belongs to a property with rental owner in the specified set of rental owner ids.

esignaturestatuses
required
Array of strings
Items Enum: "Unknown" "NotSent" "ProcessingRequest" "AwaitingSignatures" "FullySigned" "PendingCancellation" "Cancelled" "Failed" "SentUsingAdobe"

Filters result to any lease renewal with an esignature status that matches the given statuses.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve all renewals

Retrieves all renewals for a specific a lease.

Required permission(s):

Rentals > Leases - View

path Parameters
leaseId
required
integer <int32>
query Parameters
orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a lease renewal

Creates a lease renewal.

Required permission(s):

Rentals > Leases - View Edit

path Parameters
leaseId
required
integer <int32>
Request Body schema: application/json
LeaseType
required
string
Enum: "Fixed" "FixedWithRollover" "AtWill"

Describes the type of lease.

LeaseToDate
string <date>

End date of the lease. This is required if LeaseType is Fixed or FixedWithRollover

AutomaticallyMoveOutTenants
boolean

Indicates whether to automatically move out all tenants assigned to the lease and set the lease status to past when the lease ends.

required
object

The rent for the lease.

Array of objects (LeaseCosignerPostMessage)

List of the cosigners to create on the lease.

TenantIds
Array of integers <int32> [ items <int32 > ]

Unique identifiers of existing tenants to include on the lease. The request must include at least one tenant in this property OR the Tenants property.

Array of objects (RentalTenantRenewalPostMessage)

List of new tenants to create on the lease. The request must include at least one tenant in this property OR the TenantIds property.

SendWelcomeEmail
required
boolean

Indicates whether to send a welcome email to all tenants on the lease inviting them to the resident center website.

RecurringChargesToStop
Array of integers <int32> [ items <int32 > ]

Unique identifiers of existing recurring charges on the lease to stop.

Array of objects (ChargeRecurringTransactionPostMessage)

List of new recurring charges to create.

Array of objects (ChargeRecurringTransactionPutMessage)

List of existing recurring charges to update.

Responses

Request samples

Content type
application/json
{
  • "LeaseType": "Fixed",
  • "LeaseToDate": "2019-08-24",
  • "AutomaticallyMoveOutTenants": true,
  • "Rent": {
    },
  • "Cosigners": [
    ],
  • "TenantIds": [
    ],
  • "Tenants": [
    ],
  • "SendWelcomeEmail": true,
  • "RecurringChargesToStop": [
    ],
  • "RecurringChargesToCreate": [
    ],
  • "RecurringChargesToUpdate": [
    ]
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "LeaseStatus": "Active",
  • "LeaseFromDate": "2019-08-24",
  • "LeaseToDate": "2019-08-24",
  • "LeaseType": "None",
  • "Rent": 0,
  • "RentId": 0,
  • "TenantIds": [
    ]
}

Retrieve a renewal

Retrieves a specific renewal for a given lease.

Required permission(s):

Rentals > Leases - View

path Parameters
leaseId
required
integer <int32>
renewalId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "LeaseStatus": "Active",
  • "LeaseFromDate": "2019-08-24",
  • "LeaseToDate": "2019-08-24",
  • "LeaseType": "None",
  • "Rent": 0,
  • "RentId": 0,
  • "TenantIds": [
    ]
}

Retrieve ePay settings

Retrieves ePay settings for a lease.

Required permission(s):

Rentals > Leases - View

path Parameters
leaseId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "EFTPayments": {
    },
  • "CreditCardPayments": {
    },
  • "OfflinePayments": {
    }
}

Update ePay settings

Updates ePay settings for a lease

Required permission(s):

Rentals > Leases - View Edit

path Parameters
leaseId
required
integer <int32>
Request Body schema: application/json
required
object

The property EFT payment settings.

required
object

The property credit card payment settings.

required
object

The property offline payment settings.

Responses

Request samples

Content type
application/json
{
  • "EFTPayments": {
    },
  • "CreditCardPayments": {
    },
  • "OfflinePayments": {
    }
}

Response samples

Content type
application/json
{
  • "EFTPayments": {
    },
  • "CreditCardPayments": {
    },
  • "OfflinePayments": {
    }
}

Retrieve all partial payment settings for a lease

Retrieves partial payment settings for a lease.

Required permission(s):

Rentals > Leases - View

path Parameters
leaseId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "RequirePaymentsInFull": true
}

Update partial payment settings for a lease

Updates partial payment settings for a lease.

Required Permission(s):

Rentals > Leases - View Edit Administration > Application Settings - View Edit

path Parameters
leaseId
required
integer <int32>
Request Body schema:

Represents the structure of the data that can be provided to a JSON patch document as path values via JSON pointer syntax.

RequirePaymentsInFull
boolean

Whether or not the ownership account payments are required in full.

Responses

Request samples

Content type
[
  • {
    },
  • {
    },
  • {
    },
  • {
    }
]

Response samples

Content type
application/json
{
  • "RequirePaymentsInFull": true
}

Retrieve all rent schedules

The rent schedule provides details (dollar amount, day of the month, etc) of the recurring charges that are applied to the lease ledger each rent cycle. A lease may have more than one rent schedule associated with it if the rent terms change within the duration of the lease.

Required permission(s):

Rentals > Lease transactions - View

path Parameters
leaseId
required
integer <int32>
query Parameters
orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a rent schedule

Creates a rent schedule.

Required permission(s):

Rentals > Lease Transactions - View Edit

path Parameters
leaseId
required
integer <int32>
Request Body schema: application/json
StartDate
string <date>

Indicates the start of the rent schedule. The date must be formatted as YYYY-MM-DD. If no rent schedules exist on a lease, this date must match the lease start date.

RentCycle
required
string
Enum: "Monthly" "Weekly" "Every2Weeks" "Quarterly" "Yearly" "Every2Months" "Daily" "Every6Months"

Indicates the cadence of when rent charges will be applied.

BackdateCharges
required
boolean

Indicates if charges that should have posted prior to the date of Rent creation should be posted immediately with the appropriate dates.

required
Array of objects (RentScheduleChargePostMessage)

List of charges to apply to the lease.

Responses

Request samples

Content type
application/json
{
  • "StartDate": "2019-08-24",
  • "RentCycle": "Monthly",
  • "BackdateCharges": true,
  • "Charges": [
    ]
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "StartDate": "2019-08-24",
  • "EndDate": "2019-08-24",
  • "TotalAmount": 0,
  • "RentCycle": "None",
  • "BackdateCharges": true,
  • "CreatedDateTime": "2019-08-24T14:15:22Z",
  • "CreatedByUserId": 0,
  • "Charges": [
    ]
}

Retrieve a rent schedule

Retrieves a specific rent schedule for a lease. The rent schedule provides details (dollar amount, day of the month, etc) of the recurring charges that are applied to the lease ledger each rent cycle.

Required permission(s):

Rentals > Lease transactions - View

path Parameters
leaseId
required
integer <int32>
rentId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "StartDate": "2019-08-24",
  • "EndDate": "2019-08-24",
  • "TotalAmount": 0,
  • "RentCycle": "None",
  • "BackdateCharges": true,
  • "CreatedDateTime": "2019-08-24T14:15:22Z",
  • "CreatedByUserId": 0,
  • "Charges": [
    ]
}

Update a rent schedule

Updates a rent schedule.

Required permission(s):

Rentals > Lease Transactions - View Edit

path Parameters
leaseId
required
integer <int32>
rentId
required
integer <int32>
Request Body schema: application/json
RentCycle
required
string
Enum: "Monthly" "Weekly" "Every2Weeks" "Quarterly" "Yearly" "Every2Months" "Daily" "Every6Months"

Indicates the cadence of when rent charges will be applied.

BackdateCharges
required
boolean

Indicates if charges that should have posted prior to the date of Rent creation should be posted immediately with the appropriate dates.

required
Array of objects (RentScheduleChargePutMessage)

List of charges to apply to the lease.

Responses

Request samples

Content type
application/json
{
  • "RentCycle": "Monthly",
  • "BackdateCharges": true,
  • "Charges": [
    ]
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "StartDate": "2019-08-24",
  • "EndDate": "2019-08-24",
  • "TotalAmount": 0,
  • "RentCycle": "None",
  • "BackdateCharges": true,
  • "CreatedDateTime": "2019-08-24T14:15:22Z",
  • "CreatedByUserId": 0,
  • "Charges": [
    ]
}

Retrieve all insurance policies

Retrieves all renters insurance policies for a lease.

Required permission(s):

Rentals > Leases - View

path Parameters
leaseId
required
integer <int32>
query Parameters
orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve an insurance policy

Retrieves a renters insurance policy.

Required permission(s):

Rentals > Leases - View

path Parameters
leaseId
required
integer <int32>
policyId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "InsuranceCompany": "string",
  • "CarrierType": "Other",
  • "PolicyIdentifier": "string",
  • "EffectiveDate": "2019-08-24",
  • "ExpirationDate": "2019-08-24",
  • "CancellationDate": "2019-08-24",
  • "InsuredTenants": [
    ]
}

Lease Transactions

Lease transaction resources that allow for recording both one-time and recurring transactions such as charges, payments and credits on the lease ledger.

Retrieve all lease transactions

Retrieves all the transactions for a specific lease.

Required permission(s):

Rentals > Lease transactions - View

path Parameters
leaseId
required
integer <int32>
query Parameters
transactiondatefrom
string <date>

Filters results to any lease transaction whose start date is greater than or equal to the specified value.

transactiondateto
string <date>

Filters results to any lease transaction whose end date is less than or equal to the specified value.

transactiontypes
Array of strings
Items Enum: "Bill" "Check" "Charge" "Payment" "Credit" "Refund" "ApplyDeposit" "ElectronicFundsTransfer" "Other" "Deposit" "GeneralJournalEntry" "OwnerContribution" "ReversePayment" "ReverseElectronicFundsTransfer" "VendorCredit" "RentalApplicationFeePayment" "ReverseRentalApplicationFeePayment" "ReverseOwnerContribution" "VendorRefund" "UnreversedPayment" "UnreversedElectronicFundsTransfer" "UnreversedOwnerContribution" "UnreversedRentalApplicationFeePayment"

Filters results to any lease transaction whose lease transaction type matches the specified status. If no type is specified, lease transactions with any type will be returned.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve a lease transaction

Retrieves a specific lease transaction.

Required permission(s):

Rentals > Lease Transactions - View

path Parameters
leaseId
required
integer <int32>
transactionId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Date": "2019-08-24",
  • "TransactionType": "string",
  • "TransactionTypeEnum": "Bill",
  • "TotalAmount": 0,
  • "CheckNumber": "string",
  • "LeaseId": 0,
  • "PayeeTenantId": 0,
  • "PaymentMethod": "string",
  • "Journal": {
    }
}

Retrieve all outstanding balances

Retrieves a list of leases that have outstanding balances. Leases with a zero or credit balance will not be returned in the results.

Required permission(s):

Rentals > Outstanding Balances - View

query Parameters
entitytype
string
Enum: "Rental" "RentalOwner"
entityid
integer <int32>
leasestatuses
Array of strings
Items Enum: "Active" "Past" "Future"
leaseids
Array of integers <int32> [ items <int32 > ]
pastdueemail
string
Enum: "NoEmailAddress" "Sent"
balanceduration
string
Enum: "TotalBalance" "Balance0to30Days" "Balance31to60Days" "Balance61to90Days" "BalanceOver90Days"
evictionstatus
string
Enum: "NotEvictionPending" "EvictionPending"
orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve all charges

Retrieves all the charges for a specific lease.

Required permissions(s):

Rentals > Lease transactions - View

path Parameters
leaseId
required
integer <int32>
query Parameters
transactiondatefrom
string <date>

Filters results to any lease transaction whose start date is greater than or equal to the specified value.

transactiondateto
string <date>

Filters results to any lease transaction whose end date is less than or equal to the specified value.

billids
Array of integers <int32> [ items <int32 > ]

Filters results to any charge that has been associated to the indicated bill ids.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a charge

Creates a charge transaction on a specific lease ledger.

Required permission(s):

Rentals > Lease transactions - View Edit
Accounting > Bills - View Edit In order to associate the charge to a bill using the BillId property, you must have this permission.

path Parameters
leaseId
required
integer <int32>
Request Body schema: application/json
Date
string <date>

Date of the charge. The date must be formatted as YYYY-MM-DD.

Memo
string

Memo associated with the charge. The value cannot exceed 65 characters.

BillId
integer <int32>

Unique identifier of the bill this charge is associated to. If provided, the property of the lease the charge is being created in must be in at least one line item of the bill.

Array of objects (LeaseChargeLineSaveMessage)

A collection of line items included in the charge. At least one line item is required.

Responses

Request samples

Content type
application/json
{
  • "Date": "2019-08-24",
  • "Memo": "string",
  • "BillId": 0,
  • "Lines": [
    ]
}

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve a charge

Retrieves a specific lease charge.

Required permissions(s):

Rentals > Lease transactions - View

path Parameters
leaseId
required
integer <int32>
chargeId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Date": "2019-08-24",
  • "TotalAmount": 0,
  • "Memo": "string",
  • "BillId": 0,
  • "Lines": [
    ]
}

Update a charge

Updates a charge.

Required permission(s):

Rentals > Lease transactions - View Edit

path Parameters
leaseId
required
integer <int32>
chargeId
required
integer <int32>
Request Body schema: application/json
Date
required
string <date>

Date of the charge. The date must be formatted as YYYY-MM-DD.

Memo
string

Memo associated with the charge. The value cannot exceed 65 characters.

required
Array of objects (LeaseChargeLineSaveMessage)

Collection of line items to be included in the charge. All existing line items will be deleted and replaced with the line items in this request. At least 1 line item is required.

Responses

Request samples

Content type
application/json
{
  • "Date": "2019-08-24",
  • "Memo": "string",
  • "Lines": [
    ]
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Date": "2019-08-24",
  • "TransactionType": "string",
  • "TransactionTypeEnum": "Bill",
  • "TotalAmount": 0,
  • "CheckNumber": "string",
  • "LeaseId": 0,
  • "PayeeTenantId": 0,
  • "PaymentMethod": "string",
  • "Journal": {
    }
}

Create a payment

Creates a lease ledger payment.

Required permission(s):

Rentals > Lease transactions - View Edit

path Parameters
leaseId
required
integer <int32>

The lease unique identifier.

Request Body schema: application/json
Date
required
string <date>

The date of the transaction. The date must be formatted as YYYY-MM-DD.

PaymentMethod
required
string
Enum: "Check" "Cash" "MoneyOrder" "CashierCheck" "DirectDeposit" "CreditCard" "ElectronicPayment"

The payment method used for the transaction.

PayeeUserId
integer <int32>

The payee's user unique identifier.

Memo
string

A brief note describing the reason for the payment. The value cannot exceed 65 characters.

ReferenceNumber
string

The reference Number of the transaction. The value cannot exceed 30 characters.

SendEmailReceipt
required
boolean

An indicator for whether or not to send an email receipt to the payee. If the payee does not have an email address set, no email will be sent.

required
Array of objects (LeaseLedgerPaymentLineSaveMessage)

A collection of line items included in the payment. At least one line item is required.

Responses

Request samples

Content type
application/json
{
  • "Date": "2019-08-24",
  • "PaymentMethod": "Check",
  • "PayeeUserId": 0,
  • "Memo": "string",
  • "ReferenceNumber": "string",
  • "SendEmailReceipt": true,
  • "Lines": [
    ]
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Date": "2019-08-24",
  • "TransactionType": "string",
  • "TransactionTypeEnum": "Bill",
  • "TotalAmount": 0,
  • "CheckNumber": "string",
  • "LeaseId": 0,
  • "PayeeTenantId": 0,
  • "PaymentMethod": "string",
  • "Journal": {
    }
}

Create a payment (auto allocated)

Creates a payment on the lease ledger. Note that the recorded payment will be automatically allocated to the general ledger accounts based on the payment allocation settings. These settings can be found under the Settings > Application Settings > Residents page in your account. If you'd like to specify the GL accounts the payment should apply to, please use the Create a payment endpoint.

Required permission(s):

Rentals > Lease transactions - View Edit

path Parameters
leaseId
required
integer <int32>
Request Body schema: application/json
Date
required
string <date>

The date of the transaction. The date must be formatted as YYYY-MM-DD.

PaymentMethod
required
string
Enum: "Check" "Cash" "MoneyOrder" "CashierCheck" "DirectDeposit" "CreditCard" "ElectronicPayment"

The payment method used for the transaction.

PayeeUserId
integer <int32>

The payee's user unique identifier.

Memo
string

A brief note describing the reason for the payment. The value cannot exceed 65 characters.

ReferenceNumber
string

The reference Number of the transaction. The value cannot exceed 30 characters.

SendEmailReceipt
required
boolean

An indicator for whether or not to send an email receipt to the payee. If the payee does not have an email address set, no email will be sent.

TotalAmount
required
number <double>

The total amount of the payment being created.

Responses

Request samples

Content type
application/json
{
  • "Date": "2019-08-24",
  • "PaymentMethod": "Check",
  • "PayeeUserId": 0,
  • "Memo": "string",
  • "ReferenceNumber": "string",
  • "SendEmailReceipt": true,
  • "TotalAmount": 0
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Date": "2019-08-24",
  • "TransactionType": "string",
  • "TransactionTypeEnum": "Bill",
  • "TotalAmount": 0,
  • "CheckNumber": "string",
  • "LeaseId": 0,
  • "PayeeTenantId": 0,
  • "PaymentMethod": "string",
  • "Journal": {
    }
}

Update a payment

Updates a ledger payment. Each line item must have a unique general ledger account identifier. PaymentMethod, Date, Memo, and the total Amount cannot be changed for payments with a PaymentMethod of BuildiumEFT, BuildiumCC or RetailCash.

Required permission(s):

Rentals > Lease transactions - View Edit

path Parameters
leaseId
required
integer <int32>
paymentId
required
integer <int32>
Request Body schema: application/json
Date
required
string <date>

The date of the transaction. The date must be formatted as YYYY-MM-DD.

PaymentMethod
required
string
Enum: "Check" "Cash" "MoneyOrder" "CashierCheck" "DirectDeposit" "CreditCard" "ElectronicPayment" "BuildiumEFT" "BuildiumCC" "RetailCash"

The payment method used for the transaction.

PayeeUserId
integer <int32>

The payee's user unique identifier.

Memo
string

A brief note describing the reason for the payment. The value cannot exceed 65 characters.

ReferenceNumber
string

The reference Number of the transaction. The value cannot exceed 30 characters.

required
Array of objects (LeaseLedgerPaymentLineSaveMessage)

A collection of line items included in the payment. At least one line item is required.

Responses

Request samples

Content type
application/json
{
  • "Date": "2019-08-24",
  • "PaymentMethod": "Check",
  • "PayeeUserId": 0,
  • "Memo": "string",
  • "ReferenceNumber": "string",
  • "Lines": [
    ]
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Date": "2019-08-24",
  • "TransactionType": "string",
  • "TransactionTypeEnum": "Bill",
  • "TotalAmount": 0,
  • "CheckNumber": "string",
  • "LeaseId": 0,
  • "PayeeTenantId": 0,
  • "PaymentMethod": "string",
  • "Journal": {
    }
}

Create a payment reversal

Reverses a lease ledger payment. Note, this action can only be taken on a payment that has been deposited.

Required permission(s):

Rentals > Lease transactions - View Edit
Accounting > Bank Accounts - View Edit

path Parameters
leaseId
required
integer <int32>

The lease unique identifier.

Request Body schema: application/json
EntryDate
required
string <date>

Date of the transaction.

PaymentTransactionId
required
integer <int32>

Transaction identifier of the payment to reverse. Note, this payment transaction must be deposited.

object

Non-sufficient funds (NSF) charge.

object

Bank for fee assessed for the reversed payment.

Responses

Request samples

Content type
application/json
{
  • "EntryDate": "2019-08-24",
  • "PaymentTransactionId": 0,
  • "NSFCharge": {
    },
  • "BankFee": {
    }
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Date": "2019-08-24",
  • "TransactionType": "string",
  • "TransactionTypeEnum": "Bill",
  • "TotalAmount": 0,
  • "CheckNumber": "string",
  • "LeaseId": 0,
  • "PayeeTenantId": 0,
  • "PaymentMethod": "string",
  • "Journal": {
    }
}

Retrieve a refund

Retrieves a refund.

Required permission(s):

Accounting > Bank Accounts - View

path Parameters
leaseId
required
integer <int32>
refundId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Date": "2019-08-24",
  • "Payees": [
    ],
  • "Memo": "string",
  • "CheckNumber": "string",
  • "BankAccountId": 0,
  • "Address": {
    },
  • "TotalAmount": 0,
  • "Lines": [
    ]
}

Create a refund

Creates a refund.

Required permission(s):

Accounting > Bank Accounts - View Edit

path Parameters
leaseId
required
integer <int32>
Request Body schema: application/json
Date
required
string <date>

The date of the refund. The date must be formatted as YYYY-MM-DD.

PayeeUserIds
required
Array of integers <int32> [ items <int32 > ]

Unique identifiers of the users receiving the refund.

Memo
string

A brief note describing the reason for the refund. The value cannot exceed 65 characters.

CheckNumber
string

Check number associated with the refund, if applicable. The value cannot exceed 30 characters.

BankAccountId
required
integer <int32>

Unique identifier of the bank account the refund is issued from.

required
object

Address to be displayed on the refund check.

required
Array of objects (LeaseLedgerRefundLinePostMessage)

A collection of line items included in the refund. At least one line item is required.

Responses

Request samples

Content type
application/json
{
  • "Date": "2019-08-24",
  • "PayeeUserIds": [
    ],
  • "Memo": "string",
  • "CheckNumber": "string",
  • "BankAccountId": 0,
  • "Address": {
    },
  • "Lines": [
    ]
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Date": "2019-08-24",
  • "Payees": [
    ],
  • "Memo": "string",
  • "CheckNumber": "string",
  • "BankAccountId": 0,
  • "Address": {
    },
  • "TotalAmount": 0,
  • "Lines": [
    ]
}

Create a credit

Creates a lease ledger credit.

Required permission(s):

Rentals > Lease transactions - View Edit

path Parameters
leaseId
required
integer <int32>

The lease unique identifier.

Request Body schema: application/json
Date
required
string <date>

Date of the transaction. The date must be formatted as YYYY-MM-DD.

Memo
string

Description of the transaction. The value cannot exceed 65 characters.

CreditType
required
string
Enum: "WaiveUnpaid" "Exchange" "PreviouslyDeposited"

Indicates how the credit should be applied.

  • WaiveUnpaid - This credit type allows for reversing one or more charges without losing record of what has changed.
  • Exchange - This credit type allows for one of the following: 1) Reimburse a resident for a out-of-pocket expense, 2) Compensate for a service, 3) Write-off a resident balance considered uncollectable.
  • PreviouslyDeposited - This credit type allows for issuing a credit against payments that have already been deposited.
OffsettingGLAccountId
integer <int32>

Sets the offsetting general ledger account identifier for the credit.
This value must be provided when the CreditType field is set to Exchange or PreviouslyDeposited.
When the CreditType is Exchange this must be an expense general ledger account type.
When the CreditType is PreviouslyDeposited this must be an equity general ledger account type.

required
Array of objects (LeaseLedgerCreditLinePostMessage)

A collection of line items included in the credit. At least one line item is required.

Responses

Request samples

Content type
application/json
{
  • "Date": "2019-08-24",
  • "Memo": "string",
  • "CreditType": "WaiveUnpaid",
  • "OffsettingGLAccountId": 0,
  • "Lines": [
    ]
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Date": "2019-08-24",
  • "TransactionType": "string",
  • "TransactionTypeEnum": "Bill",
  • "TotalAmount": 0,
  • "CheckNumber": "string",
  • "LeaseId": 0,
  • "PayeeTenantId": 0,
  • "PaymentMethod": "string",
  • "Journal": {
    }
}

Create a deposit withholding

Withholds a resident deposit by reallocating the funds from a liability account to an income account to cover an expense(s).

Required permission(s):

Rentals > Lease Ledger - View Edit
Accounting > General Ledger Accounts - View

path Parameters
leaseId
required
integer <int32>
Request Body schema: application/json
EntryDate
required
string <date>

Date of the deposit withholding. The date must be formatted as YYYY-MM-DD.

DepositLiabilityGLAccountId
required
integer <int32>

The identifier of the liability general ledger account from which to withhold the funds. Note, the specified liability account must have a positive balance.

Memo
string

Memo associated with the withholding. Memo cannot exceed 65 characters.

Array of objects (LeaseLedgerDepositWithholdingLinePostMessage)

Line items specifying the income accounts the deposit will be applied to. The total amount of the line items can not exceed the balance of the liability account.

Responses

Request samples

Content type
application/json
{
  • "EntryDate": "2019-08-24",
  • "DepositLiabilityGLAccountId": 0,
  • "Memo": "string",
  • "Lines": [
    ]
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Date": "2019-08-24",
  • "TransactionType": "string",
  • "TransactionTypeEnum": "Bill",
  • "TotalAmount": 0,
  • "CheckNumber": "string",
  • "LeaseId": 0,
  • "PayeeTenantId": 0,
  • "PaymentMethod": "string",
  • "Journal": {
    }
}

Update a deposit withholding

Updates a resident deposit withholding.

Required permission(s):

Required permission(s):

Rentals > Lease Ledger - View Edit
Accounting > General Ledger Accounts - View

path Parameters
leaseId
required
integer <int32>
depositId
required
integer <int32>
Request Body schema: application/json
EntryDate
required
string <date>

Date of the deposit withholding. The date must be formatted as YYYY-MM-DD.

DepositLiabilityGLAccountId
required
integer <int32>

The identifier of the liability general ledger account from which to withhold the funds. Note, the specified liability account must have a positive balance.

Memo
string

Memo associated with the withholding. Memo cannot exceed 65 characters.

Array of objects (LeaseLedgerDepositWithholdingLinePutMessage)

Line items specifying the income accounts the deposit will be applied to. The total amount of the line items can not exceed the balance of the liability account.

Responses

Request samples

Content type
application/json
{
  • "EntryDate": "2019-08-24",
  • "DepositLiabilityGLAccountId": 0,
  • "Memo": "string",
  • "Lines": [
    ]
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Date": "2019-08-24",
  • "TransactionType": "string",
  • "TransactionTypeEnum": "Bill",
  • "TotalAmount": 0,
  • "CheckNumber": "string",
  • "LeaseId": 0,
  • "PayeeTenantId": 0,
  • "PaymentMethod": "string",
  • "Journal": {
    }
}

Retrieve all recurring transactions

Retrieves all recurring transactions for a given lease.

Required permission(s):

Rentals > Lease transactions - View

path Parameters
leaseId
required
integer <int32>
query Parameters
orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a recurring charge

Creates a recurring charge transaction that will post automatically on the specified lease ledger.

Required permission(s):

Rentals > Lease transactions - View Edit

path Parameters
leaseId
required
integer <int32>
Request Body schema: application/json
GLAccountId
required
integer <int32>

The general ledger account unique identifier under which the charge amount will be recorded. The general ledger account can only be an income or liability account.

Amount
required
number <double>

The amount to record when applying the charge to the lease ledger.

Memo
string

Memo associated with the recurring charge. This value cannot exceed 65 characters.

FirstOccurrenceDate
required
string <date>

The date the charge will first be processed. This value along with the Frequency is also used as the basis for the date set on the transactions in future occurrences.

PostDaysInAdvance
required
integer <int32>

Specifies the number of days ahead of the transaction date the charge will post on the lease ledger. This setting can be used to add the charge to the ledger ahead of the due date for visibility. For example, if the FirstOccurrenceDate is set to 8/10/2022 and this value is set to 5 then the charge will added to the ledger on 8/5/2022, but will have transaction date of 8/10/2022. Note, the value must be between 0 to 45 or set to 60, 75 or 90.

Frequency
required
string
Enum: "Monthly" "Weekly" "Every2Weeks" "Quarterly" "Yearly" "Every2Months" "Daily" "Every6Months" "OneTime"

Specifies the frequency at which the recurring charge will be processed.

Duration
string
Enum: "UntilEndOfTerm" "SpecificNumber"

Specifies the period of time/occurrences the recurring payment will be processed. Note, if the Frequency field is set to OneTime this field should be set to NULL as any submitted value will be ignored.

NumberOfOccurrences
integer <int32>

Indicates the number of times the recurring transaction should be processed. This value is required if the Duration field is set to SpecificNumber. This value can not exceed 100.

Responses

Request samples

Content type
application/json
{
  • "GLAccountId": 0,
  • "Amount": 0,
  • "Memo": "string",
  • "FirstOccurrenceDate": "2019-08-24",
  • "PostDaysInAdvance": 0,
  • "Frequency": "Monthly",
  • "Duration": "UntilEndOfTerm",
  • "NumberOfOccurrences": 0
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "LeaseId": 0,
  • "GLAccountId": 0,
  • "RentId": 0,
  • "Amount": 0,
  • "Memo": "string",
  • "OccurrencesRemaining": 0,
  • "FirstOccurrenceDate": "2019-08-24",
  • "NextOccurrenceDate": "2019-08-24",
  • "PostDaysInAdvance": 0,
  • "Frequency": "Monthly",
  • "Duration": "Unspecified"
}

Retrieve a recurring charge

Retrieves a recurring charge.

Required permission(s):

Rentals > Lease transactions - View

path Parameters
leaseId
required
integer <int32>
transactionId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "LeaseId": 0,
  • "GLAccountId": 0,
  • "RentId": 0,
  • "Amount": 0,
  • "Memo": "string",
  • "OccurrencesRemaining": 0,
  • "FirstOccurrenceDate": "2019-08-24",
  • "NextOccurrenceDate": "2019-08-24",
  • "PostDaysInAdvance": 0,
  • "Frequency": "Monthly",
  • "Duration": "Unspecified"
}

Create a recurring credit

Creates a recurring credit transaction on the specified lease ledger.

Required permission(s):

Rentals > Lease transactions - View Edit

path Parameters
leaseId
required
integer <int32>
Request Body schema: application/json
CreditType
required
string
Enum: "WaiveUnpaid" "Exchange" "PreviouslyDeposited"

Indicates how the credit will be applied.

  • WaiveUnpaid - This credit type allows for reversing one or more charges without losing record of what has changed.
  • Exchange - This credit type allows for one of the following: 1) Reimburse a resident for a out-of-pocket expense, 2) Compensate for a service, 3) Write-off a resident balance considered uncollectable.
  • PreviouslyDeposited - This credit type allows for issuing a credit against payments that have already been deposited.
OffsettingGLAccountId
integer <int32>

Sets the offsetting general ledger account identifier for the credit.
This value must be provided when the CreditType field is set to Exchange or PreviouslyDeposited.
When the CreditType is Exchange this must be an expense general ledger account type.
When the CreditType is PreviouslyDeposited this must be an equity general ledger account type.

PostingRuleGlAccountId
integer <int32>

Indicates whether to apply a posting rule when processing the transaction that would only record the credit if a prior payment has been made.

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

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

Set the field value to null to always record the credit.

Array of objects (RecurringTransactionLinePostMessage)

Line items describing how the credit is to be allocated when the recurring credit is processed.

PostDaysInAdvance
required
integer <int32>

Specifies the number of days ahead of the transaction date the credit will post on the lease ledger. This setting can be used to add the credit to the ledger ahead of the due date for visibility. For example, if the FirstOccurrenceDate is set to 8/10/2022 and this value is set to 5 then the charge will added to the ledger on 8/5/2022, but will have transaction date of 8/10/2022. Note, the value must be between 0 to 45 or set to 60, 75 or 90.

Frequency
required
string
Enum: "Monthly" "Weekly" "Every2Weeks" "Quarterly" "Yearly" "Every2Months" "Daily" "Every6Months" "OneTime"

Specifies the frequency at which the recurring credit will be processed.

Duration
string
Enum: "UntilEndOfTerm" "SpecificNumber"

Specifies the period of time/occurrences the recurring credit will be processed. Note, if the Frequency field is set to OneTime this field should be set to NULL as any submitted value will be ignored.

NumberOfOccurrences
integer <int32>

Indicates the number of times the recurring credit should be processed. This value is required if the Duration field is set to SpecificNumber. This value can not exceed 100.

FirstOccurrenceDate
required
string <date>

The date the credit will first be processed. This value along with the Frequency is also used as the basis for the date set on the transactions in future occurrences.

Memo
string

Memo associated with the recurring credit. This value cannot exceed 65 characters.

Responses

Request samples

Content type
application/json
{
  • "CreditType": "WaiveUnpaid",
  • "OffsettingGLAccountId": 0,
  • "PostingRuleGlAccountId": 0,
  • "Lines": [
    ],
  • "PostDaysInAdvance": 0,
  • "Frequency": "Monthly",
  • "Duration": "UntilEndOfTerm",
  • "NumberOfOccurrences": 0,
  • "FirstOccurrenceDate": "2019-08-24",
  • "Memo": "string"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "LeaseId": 0,
  • "CreditType": "WaiveUnpaid",
  • "OffsettingGLAccountId": 0,
  • "PostingRuleGLAccountId": 0,
  • "Lines": [
    ],
  • "Amount": 0,
  • "OccurrencesRemaining": 0,
  • "FirstOccurrenceDate": "2019-08-24",
  • "NextOccurrenceDate": "2019-08-24",
  • "PostDaysInAdvance": 0,
  • "Memo": "string",
  • "Frequency": "Monthly",
  • "Duration": "Unspecified"
}

Retrieve a recurring credit

Retrieves a recurring credit.

Required permission(s):

Rentals > Lease transactions - View

path Parameters
leaseId
required
integer <int32>
transactionId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "LeaseId": 0,
  • "CreditType": "WaiveUnpaid",
  • "OffsettingGLAccountId": 0,
  • "PostingRuleGLAccountId": 0,
  • "Lines": [
    ],
  • "Amount": 0,
  • "OccurrencesRemaining": 0,
  • "FirstOccurrenceDate": "2019-08-24",
  • "NextOccurrenceDate": "2019-08-24",
  • "PostDaysInAdvance": 0,
  • "Memo": "string",
  • "Frequency": "Monthly",
  • "Duration": "Unspecified"
}

Create a recurring payment

Creates a recurring payment that will post automatically on the specified lease ledger.

Required permission(s):

Rentals > Lease Transactions - View Edit

path Parameters
leaseId
required
integer <int32>
Request Body schema: application/json
PayerUserId
integer <int32>

The unique identifier of the user making the payment.

PaymentMethod
required
string
Enum: "Check" "Cash" "MoneyOrder" "CashierCheck" "DirectDeposit" "CreditCard" "ElectronicPayment"

The payment method for the transaction.

Array of objects (RecurringTransactionLinePostMessage)

Line items describing how the payment is to be allocated when the payment is processed.

Memo
string

Memo associated with the recurring payment. This value cannot exceed 65 characters.

FirstOccurrenceDate
required
string <date>

The date the payment will first be processed. This value along with the Frequency is also used as the basis for the date set on the transactions in future occurrences.

PostDaysInAdvance
required
integer <int32>

Specifies the number of days ahead of the transaction date the payment will post on the lease ledger. This setting can be used to add the payment to the ledger ahead of the due date for visibility. For example, if the FirstOccurrenceDate is set to 8/10/2022 and this value is set to 5 then the charge will added to the ledger on 8/5/2022, but will have transaction date of 8/10/2022. Note, the value must be between 0 to 45 or set to 60, 75 or 90.

Frequency
required
string
Enum: "Monthly" "Weekly" "Every2Weeks" "Quarterly" "Yearly" "Every2Months" "Daily" "Every6Months" "OneTime"

Specifies the frequency at which the recurring payment will be processed.

Duration
string
Enum: "UntilEndOfTerm" "SpecificNumber"

Specifies the period of time/occurrences the recurring payment will be processed. Note, if the Frequency field is set to OneTime this field should be set to NULL as any submitted value will be ignored.

NumberOfOccurrences
integer <int32>

Indicates the number of times the recurring payment should be processed. This value is required if the Duration field is set to SpecificNumber. This value can not exceed 100.

Responses

Request samples

Content type
application/json
{
  • "PayerUserId": 0,
  • "PaymentMethod": "Check",
  • "Lines": [
    ],
  • "Memo": "string",
  • "FirstOccurrenceDate": "2019-08-24",
  • "PostDaysInAdvance": 0,
  • "Frequency": "Monthly",
  • "Duration": "UntilEndOfTerm",
  • "NumberOfOccurrences": 0
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "LeaseId": 0,
  • "Payer": {
    },
  • "PaymentMethod": "None",
  • "Lines": [
    ],
  • "Amount": 0,
  • "OccurrencesRemaining": 0,
  • "FirstOccurrenceDate": "2019-08-24",
  • "NextOccurrenceDate": "2019-08-24",
  • "PostDaysInAdvance": 0,
  • "Frequency": "Monthly",
  • "Duration": "Unspecified",
  • "Memo": "string"
}

Retrieve a recurring payment

Retrieves a recurring payment.

Required permission(s):

Rentals > Lease Transactions - View

path Parameters
leaseId
required
integer <int32>
paymentId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "LeaseId": 0,
  • "Payer": {
    },
  • "PaymentMethod": "None",
  • "Lines": [
    ],
  • "Amount": 0,
  • "OccurrencesRemaining": 0,
  • "FirstOccurrenceDate": "2019-08-24",
  • "NextOccurrenceDate": "2019-08-24",
  • "PostDaysInAdvance": 0,
  • "Frequency": "Monthly",
  • "Duration": "Unspecified",
  • "Memo": "string"
}

Listings

Rental listing resources providing access to rental listings and listing contacts.

Retrieve all listings

Retrieves all listings.

Rentals > Listings - View
Rentals > Rental properties and units - View

query Parameters
entitytype
string
Enum: "Property" "RentalOwner"

Specifies the type of entity that EntityId refers to.

entityid
integer <int32>

Filters results to only listings that are associated with the specified entity id value. The id must be of the type specified in EntityType property.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve a listing

Retrieves a specific listing.

Required permission(s):

Rentals > Listings - View
Rentals > Rental properties and units - View

path Parameters
unitId
required
integer <int32>

The rental unit identifier.

Responses

Response samples

Content type
application/json
{
  • "ListingDate": "2019-08-24",
  • "Rent": 0,
  • "Deposit": 0,
  • "LeaseTerms": "string",
  • "AvailableDate": "2019-08-24",
  • "IsManagedExternally": true,
  • "RentalApplicationUrl": "string",
  • "Contact": {
    },
  • "Property": {
    },
  • "Unit": {
    }
}

Create/Update a listing

This endpoint can be used to both create and update a listing. If no listing exists for the unit one will be created, otherwise the existing listing will be updated. A unit can only ever have one active listing.

Upon creation the listing will post immediately to your Buildium public website, and will post to the selected syndicated sites within 24-48 hours. Updates to the listing will appear immediately in your Buildium public website and propagated to syndicated sites within 24-48 hours.

Note, the listing will automatically pull in the information, features, and media that exists for the property and unit details.

Rentals > Listings - View Edit
Rentals > Rental properties and units - View Edit

path Parameters
unitId
required
integer <int32>
Request Body schema: application/json
Rent
required
number <double>

Rent for the listing.

Deposit
number <double>

Deposit for the listing.

LeaseTerms
string

The lease term for the listing.

AvailableDate
required
string <date>

The date the listing is available.

ContactId
integer <int32>

The contact Id for the listing.

IsManagedExternally
required
boolean

Responses

Request samples

Content type
application/json
{
  • "Rent": 0,
  • "Deposit": 0,
  • "LeaseTerms": "string",
  • "AvailableDate": "2019-08-24",
  • "ContactId": 0,
  • "IsManagedExternally": true
}

Response samples

Content type
application/json
{
  • "ListingDate": "2019-08-24",
  • "Rent": 0,
  • "Deposit": 0,
  • "LeaseTerms": "string",
  • "AvailableDate": "2019-08-24",
  • "IsManagedExternally": true,
  • "RentalApplicationUrl": "string",
  • "Contact": {
    },
  • "Property": {
    },
  • "Unit": {
    }
}

Delete a listing

Deleting a listing will immediately remove it from your Buildium public website. The listing will also be removed from any syndicated sites within 24-48 hours.

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

Required permission(s):

Rentals > Listings - View Edit Delete

path Parameters
unitId
required
integer <int32>

The rental property unit identifier.

Responses

Response samples

Content type
application/json
{
  • "UserMessage": "string",
  • "ErrorCode": "string",
  • "Errors": [
    ]
}

Retrieve all listing contacts

Retrieves all listing contacts.

Required permission(s):

Rentals > Listings - View

query Parameters
orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a listing contact

Create a listing contact. Note, at least one contact field (phone number, email or website) is required for the listing contact.

Required permission(s):

Rentals > Listings - View Edit

Request Body schema: application/json
Name
required
string non-empty

Name of the listing contact. This name must be unique across all listing contacts.

Email
string

Email address for the listing contact.

PhoneNumber
string

Phone number of the listing contact. The value must be between 10 and 20 characters, ideally formatted as (123) 123-1234.

Website
string

Website associated with the listing contact. The value must be a valid URL including the HTTP protocol. For example http://www.example.com.

Responses

Request samples

Content type
application/json
{
  • "Name": "string",
  • "Email": "string",
  • "PhoneNumber": "string",
  • "Website": "string"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Name": "string",
  • "Email": "string",
  • "PhoneNumber": "string",
  • "Website": "string"
}

Retrieve a listing contact

Retrieves a specific listing contact.

Required permission(s):

Rentals > Listings - View

path Parameters
listingContactId
required
integer <int32>

The listing contact identifier.

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Name": "string",
  • "Email": "string",
  • "PhoneNumber": "string",
  • "Website": "string"
}

Update a listing contact

Update a listing contact. Note, at least one contact field (phone number, email or website) is required for the listing contact.

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

Required permission(s):

Rentals > Listings - View Edit

path Parameters
listingContactId
required
integer <int32>

The listing contact identifier.

Request Body schema: application/json
Name
required
string non-empty

Name of the listing contact. This name must be unique across all listing contacts.

Email
string

Email address for the listing contact.

PhoneNumber
string

Phone number of the listing contact. The value must be between 10 and 20 characters, ideally formatted as (123) 123-1234.

Website
string

Website associated with the listing contact. The value must be a valid URL including the HTTP protocol. For example http://www.example.com.

Responses

Request samples

Content type
application/json
{
  • "Name": "string",
  • "Email": "string",
  • "PhoneNumber": "string",
  • "Website": "string"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Name": "string",
  • "Email": "string",
  • "PhoneNumber": "string",
  • "Website": "string"
}

Applicants

Rental applicant resources providing access to applicants, applications, applicant groups and applicant group notes.

Retrieve all applicants

Retrieves all applicants.

Required permission(s):

Rentals > Applicants - View

query Parameters
entityid
integer <int32>

Filters results to any applicant associated with the specified entity identifier. This filter is used in conjunction with the EntityType field which must be set to the type of entity this identifier references.

entitytype
string
Enum: "Rental" "RentalOwner"

Specifies the type of entity that EntityId refers to. This field is required if EntityId is specified.

applicationstatuses
Array of strings
Items Enum: "Undecided" "Approved" "Rejected" "AddedToLease" "Cancelled" "Deferred" "New" "Draft" "AddedToDraftLease"

Filters results by the applicant application status. If no status is specified, applicants with an application in any status will be returned.

unitids
Array of integers <int32> [ items <int32 > ]

Filters results to applicants associated to any of the specified rental property unit identifiers.

name
string

Filters results to applicants whose name contains the specified value.

email
string

Filters results to applicants whose email contains the specified value

applicationsubmittedstartdate
string <date-time>

Filters results to any applicant who submitted an application on or after the date specified.

applicationsubmittedenddate
string <date-time>

Filters results to any applicant who submitted an application on or prior to the date specified.

lastupdatedfrom
string <date-time>

Filters results to any applicants that were updated on or after the specified date and time. The value must be formatted as YYYY-MM-DDTHH:MM:SSZ.

lastupdatedto
string <date-time>

Filters results to any applicants that were updated on or before the specified date and time. The value must be formatted as YYYY-MM-DDTHH:MM:SSZ.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create an applicant

Creates an applicant.

Required permission(s):

Rentals > Applicants - View Edit

Request Body schema: application/json
UnitId
integer <int32>

The rental property unit unique identifier to associate with the applicant.

FirstName
required
string non-empty

The first name of the applicant. The value can not exceed 127 characters.

LastName
required
string non-empty

The last name of the applicant. The value can not exceed 127 characters.

Email
string

The email address of the applicant.

object

Phone numbers of the applicant.

SendRentalApplicationEmail
required
boolean

Indicates whether to send the applicant an email with a link to the online rental application form.

Responses

Request samples

Content type
application/json
{
  • "UnitId": 0,
  • "FirstName": "string",
  • "LastName": "string",
  • "Email": "string",
  • "PhoneNumbers": {
    },
  • "SendRentalApplicationEmail": true
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "ApplicantGroupId": 0,
  • "PropertyId": 0,
  • "UnitId": 0,
  • "TenantId": 0,
  • "FirstName": "string",
  • "LastName": "string",
  • "Email": "string",
  • "PhoneNumbers": [
    ],
  • "Status": "Unknown",
  • "Applications": [
    ],
  • "LastUpdatedDateTime": "2019-08-24T14:15:22Z"
}

Retrieve an applicant

Retrieves an applicant.

Required permission(s):

Rentals > Applicants - View

path Parameters
applicantId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "ApplicantGroupId": 0,
  • "PropertyId": 0,
  • "UnitId": 0,
  • "TenantId": 0,
  • "FirstName": "string",
  • "LastName": "string",
  • "Email": "string",
  • "PhoneNumbers": [
    ],
  • "Status": "Unknown",
  • "Applications": [
    ],
  • "LastUpdatedDateTime": "2019-08-24T14:15:22Z"
}

Update an applicant

Updates an applicant.

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

Required permission(s):

Rentals > Applicants - View Edit

path Parameters
applicantId
required
integer <int32>
Request Body schema: application/json
UnitId
integer <int32>

The rental property unit unique identifier to associate with the applicant.

FirstName
required
string non-empty

The first name of the applicant. The value can not exceed 127 characters.

LastName
required
string non-empty

The last name of the applicant. The value can not exceed 127 characters.

Email
string

The email address of the applicant.

object

Phone numbers for the applicant.

Responses

Request samples

Content type
application/json
{
  • "UnitId": 0,
  • "FirstName": "string",
  • "LastName": "string",
  • "Email": "string",
  • "PhoneNumbers": {
    }
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "ApplicantGroupId": 0,
  • "PropertyId": 0,
  • "UnitId": 0,
  • "TenantId": 0,
  • "FirstName": "string",
  • "LastName": "string",
  • "Email": "string",
  • "PhoneNumbers": [
    ],
  • "Status": "Unknown",
  • "Applications": [
    ],
  • "LastUpdatedDateTime": "2019-08-24T14:15:22Z"
}

Retrieve all applications

Retrieves all the applications for a given applicant.

Required permission(s):

Rentals > Applicants - View

path Parameters
applicantId
required
integer <int32>
query Parameters
orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve an application

Retrieves an application.

Required permission(s):

Rentals > Applicants - View

path Parameters
applicantId
required
integer <int32>
applicationId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "ApplicationNumber": "string",
  • "ApplicationStatus": "Unknown",
  • "ApplicationSubmittedDateTime": "2019-08-24T14:15:22Z",
  • "Application": [
    ]
}

Update an application

Updates a rental application.

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

Required permission(s):

Rentals > Applicants - View Edit

path Parameters
applicantId
required
integer <int32>
applicationId
required
integer <int32>
Request Body schema: application/json
ApplicationStatus
required
string
Enum: "Undecided" "Approved" "Rejected" "Cancelled" "Deferred"

Sets the status of the application.

Responses

Request samples

Content type
application/json
{
  • "ApplicationStatus": "Undecided"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "ApplicationNumber": "string",
  • "ApplicationStatus": "Unknown",
  • "ApplicationSubmittedDateTime": "2019-08-24T14:15:22Z",
  • "Application": [
    ]
}

Retrieve all applicant notes

Retrieves all applicant notes.

Required permission(s):

Rentals > Applicants - View

path Parameters
applicantId
required
integer <int32>
query Parameters
updateddatetimefrom
string <date-time>

Filters results to any note whose updated date and time are greater than or equal to the specified value. The value must be formatted as YYYY-MM-DD HH:MM:SS.

updateddatetimeto
string <date-time>

Filters results to any note whose updated date and time are less than or equal to the specified value. The value must be formatted as YYYY-MM-DD HH:MM:SS.

lastupdatedbyuserid
integer <int32>

Filters results to only notes that were last updated by the specified user identifier.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create an applicant note

Creates an applicant note.

Required permission(s):

Rentals > Applicants - View Edit

path Parameters
applicantId
required
integer <int32>
Request Body schema: application/json
Note
required
string non-empty

Note contents. The value cannot exceed 65535 characters.

Responses

Request samples

Content type
application/json
{
  • "Note": "string"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Note": "string",
  • "LastUpdatedByUser": {
    }
}

Retrieve an applicant note

Retrieves an applicant note.

Required permission(s):

Rentals > Applicants - View

path Parameters
applicantId
required
integer <int32>
noteId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Note": "string",
  • "LastUpdatedByUser": {
    }
}

Retrieve all applicant groups

Retrieves all applicant groups.

Required permission(s):

Rentals > Applicants - View

query Parameters
entitytype
string
Enum: "Rental" "RentalOwner"

Filters results to any applicant groups associated with the specified entity identifier. This filter is used in conjunction with the EntityType field which must be set to the type of entity this identifier references.

entityid
integer <int32>

Specifies the type of entity that EntityId refers to. This field is required if EntityId is specified.

applicationgroupstatuses
Array of strings
Items Enum: "Undecided" "Approved" "Rejected" "AddedToLease" "Cancelled" "Deferred" "New" "Draft" "AddedToDraftLease"

Filters results by the applicant group status. If no status is specified, applicant groups in any status will be returned.

unitids
Array of integers <int32> [ items <int32 > ]

Filters results to applicant groups associated to any of the specified rental property unit identifiers.

name
string

Filters results to applicant groups that includes applicants whose name contains the specified value.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create an applicant group

Creates an applicant group.

Required permission(s):

Rentals > Applicants - View Edit

Request Body schema: application/json
UnitId
integer <int32>

Rental property unit unique identifier to associate with the applicant group.

ApplicantIds
required
Array of integers <int32> [ items <int32 > ]

The applicant unique identifiers to include in the applicant group. Note, that applicants can only be included in one applicant group.

Responses

Request samples

Content type
application/json
{
  • "UnitId": 0,
  • "ApplicantIds": [
    ]
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "PropertyId": 0,
  • "UnitId": 0,
  • "ApplicationGroupStatus": "Unknown",
  • "Applicants": [
    ]
}

Retrieve an applicant group

Retrieves an applicant group.

Required permission(s):

Rentals > Applicants - View

path Parameters
applicantGroupId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "PropertyId": 0,
  • "UnitId": 0,
  • "ApplicationGroupStatus": "Unknown",
  • "Applicants": [
    ]
}

Update an applicant group

Updates an applicant group.

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

Required permission(s):

Rentals > Applicants - View Edit

path Parameters
applicantGroupId
required
integer <int32>
Request Body schema: application/json
UnitId
integer <int32>

Rental property unit unique identifier to associate with the applicant group.

ApplicantGroupStatus
required
string
Enum: "Undecided" "Approved" "Rejected" "Cancelled" "Deferred"

Sets the status of the applicant group.

ApplicantIds
required
Array of integers <int32> [ items <int32 > ]

The applicant unique identifiers to include in the applicant group. Note, that applicants can only be included in one applicant group.

Responses

Request samples

Content type
application/json
{
  • "UnitId": 0,
  • "ApplicantGroupStatus": "Undecided",
  • "ApplicantIds": [
    ]
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "PropertyId": 0,
  • "UnitId": 0,
  • "ApplicationGroupStatus": "Unknown",
  • "Applicants": [
    ]
}

Retrieve all applicant group notes

Retrieves all applicant group notes.

Required permission(s):

Rentals > Applicants - View

path Parameters
applicantGroupId
required
integer <int32>
query Parameters
updateddatetimefrom
string <date-time>

Filters results to any note whose updated date and time are greater than or equal to the specified value. The value must be formatted as YYYY-MM-DD HH:MM:SS.

updateddatetimeto
string <date-time>

Filters results to any note whose updated date and time are less than or equal to the specified value. The value must be formatted as YYYY-MM-DD HH:MM:SS.

lastupdatedbyuserid
integer <int32>

Filters results to only notes that were last updated by the specified user identifier.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create an applicant group note

Creates an applicant group note.

Required permission(s):

Rentals > Applicants - View Edit

path Parameters
applicantGroupId
required
integer <int32>
Request Body schema: application/json
Note
required
string non-empty

Note contents. The value cannot exceed 65535 characters.

Responses

Request samples

Content type
application/json
{
  • "Note": "string"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Note": "string",
  • "LastUpdatedByUser": {
    }
}

Retrieve an applicant group note

Retrieves an applicant group note.

Required permission(s):

Rentals > Applicants - View

path Parameters
applicantGroupId
required
integer <int32>
noteId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Note": "string",
  • "LastUpdatedByUser": {
    }
}

Update an applicant group note

Updates an applicant group note.

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

Required permission(s):

Rentals > Applicants - View Edit

path Parameters
applicantGroupId
required
integer <int32>
noteId
required
integer <int32>
Request Body schema: application/json
Note
required
string non-empty

Note contents. The value cannot exceed 65535 characters.

Responses

Request samples

Content type
application/json
{
  • "Note": "string"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Note": "string",
  • "LastUpdatedByUser": {
    }
}

Rental Meter Readings

Meter reading resources for units on rental properties.

Retrieve all meter readings

Retrieves all meter readings for a rental property.

Required permission(s):

Rentals > Rental properties and units - View

path Parameters
propertyId
required
integer <int32>
query Parameters
readingdatefrom
required
string <date>

Filters results to any meter readings whose entry date that is greater than or equal to the specified value. The value must be formatted as YYYY-MM-DD. The maximum date range is 365 days.

readingdateto
required
string <date>

Filters results to any meter readings whose entry date is less than or equal to the specified value. The value must be formatted as YYYY-MM-DD. The maximum date range is 365 days.

metertypes
Array of strings
Items Enum: "Electric" "Gas" "Oil" "Water" "Sewer"

Filters results to the specified meter types.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Delete meter reading details for a given date

Delete meter reading details for a property for a given date.

Required permission(s):

Rentals > Lease Transactions - View Edit Delete

path Parameters
propertyId
required
integer <int32>
query Parameters
readingdate
required
string <date>

Filters results to any meter readings whose entry date is equal to the specified value. The value must be formatted as YYYY-MM-DD.

metertype
required
string
Enum: "Electric" "Gas" "Oil" "Water" "Sewer"

Filters results to the specified meter type.

Responses

Response samples

Content type
application/json
{
  • "UserMessage": "string",
  • "ErrorCode": "string",
  • "Errors": [
    ]
}

Retrieve all meter reading details

Retrieves all meter reading details for a property.

Required permission(s):

Rentals > Rental properties and units - View

path Parameters
propertyId
required
integer <int32>
query Parameters
readingdate
required
string <date>

Filters results to any meter readings whose entry date is equal to the specified value. The value must be formatted as YYYY-MM-DD.

metertype
required
string
Enum: "Electric" "Gas" "Oil" "Water" "Sewer"

Filters results to the specified meter type.

Responses

Response samples

Content type
application/json
{
  • "ReadingDate": "2019-08-24",
  • "MeterType": "Unknown",
  • "Details": [
    ]
}

Create/Update meter reading details

This endpoint can be used to both create and update a meter reading detail for a property.

  • There can only be one meter reading detail for a given combination of MeterType and ReadingDate for a property.
  • If you are updating an existing meter reading detail, use the query parameters to specify the existing meter reading detail to update.
  • If you are creating a new meter reading detail, do not pass any query parameters.
  • When adding a new item to the Details array, leave out the Id field.
  • When updating an existing item in the Details array, the Id field of the existing item must be included.



Required permission(s):

Rentals > Rental properties and units - View Edit

path Parameters
propertyId
required
integer <int32>
query Parameters
readingdate
string <date>

Filters results to any meter readings whose entry date is equal to the specified value. The value must be formatted as YYYY-MM-DD.

metertype
string
Enum: "Electric" "Gas" "Oil" "Water" "Sewer"

Filters results to the specified meter type.

Request Body schema: application/json
ReadingDate
required
string <date>

Date the meter reading occurred on. Date must be formatted as YYYY-MM-DD.

MeterType
required
string
Enum: "Electric" "Gas" "Oil" "Water" "Sewer"

Type of meter being read.

required
Array of objects (MeterReadingDetailPutMessage)

Collection of detailed meter readings. At least one item is required.

Responses

Request samples

Content type
application/json
{
  • "ReadingDate": "2019-08-24",
  • "MeterType": "Electric",
  • "Details": [
    ]
}

Response samples

Content type
application/json
{
  • "ReadingDate": "2019-08-24",
  • "MeterType": "Unknown",
  • "Details": [
    ]
}

Resident Center

Every Buildium account comes with a free Resident Center, which is also known as the resident portal. The Resident Center allows your residents to view their financial transactions, submit maintenance requests, and make payments online.

Retrieve all resident center users

Retrieves all resident center users for both rentals and associations.

Required permission(s):

Communications > Resident Center Users - View
Rentals > Tenants - View is required to retrieve resident center users that are tenants.
Associations > Association owners and tenants - View is required to retrieve resident center users that are association owners.

query Parameters
unitagreementids
Array of integers <int32> [ items <int32 > ]

Filters results to any resident center user who is associated with the specified lease and/or association ownership account identifiers.

userids
Array of integers <int32> [ items <int32 > ]

Filters results to any resident center user with the specified tenant and/or association owner identifiers.

usertypes
Array of strings
Items Enum: "Tenant" "AssociationOwner"

Filters results to any resident center user with the specified types.

residentcenteruserstatuses
Array of strings
Items Enum: "AccountExistsButNoEmailSent" "PasswordSent" "EmailFailed" "SignedIn" "Blocked"

Filters results to any resident center user with the specified resident center user statuses.

isautopayenabled
boolean

If true, filters results to any resident center users who have automatic payments scheduled for the future. If false, filters results to any resident center users who do not have automatic payments scheduled for the future. If not provided, will not filter results based on automatic payments.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve all retail cash users

Retrieves all retail cash users.

Required permission(s):

Rentals > Tenants - View OR Associations > Association owners and tenants - View

query Parameters
entityid
integer <int32>

Filters results to any users associated with the specified entity id value. The value must be of the type specified in the EntityType field.

entitytype
string
Enum: "Rental" "RentalOwner" "Association"

Specifies the type of entity that the EntityId field refers to. This field is required if the EntityId field is provided.

statuses
Array of strings
Items Enum: "Active" "Past" "Future"

Filters results to any users whose lease is in one of the provided statuses.

name
string

Filters results to any users whose name contains the specified value.

unitaddress
string

Filters results to any users whose unit address contains the specified value.

isaccountcreated
boolean

Filters results to any users whose retail cash account is created.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve a retail cash user

Retrieves a retail cash user.

Required permission(s):

Rentals > Tenants - View OR Associations > Association owners and tenants - View

path Parameters
userId
required
integer <int32>
unitAgreementId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "UnitAgreement": {
    },
  • "User": {
    },
  • "Property": {
    },
  • "Unit": {
    },
  • "IsAccountCreated": true,
  • "IsEvictionPending": true,
  • "IsEnabled": true
}

Update a retail cash user

Updates a retail cash user.

Required permission(s):

Rentals > Tenants - View Edit OR Associations > Association owners and tenants - View Edit

path Parameters
userId
required
integer <int32>
unitAgreementId
required
integer <int32>
Request Body schema: application/json
IsEnabled
required
boolean

Whether retail cash is enabled for the user. If no retail cash account exists for the user, enabling will create one for the user. You cannot disable a user who does not have an account yet.

Responses

Request samples

Content type
application/json
{
  • "IsEnabled": true
}

Response samples

Content type
application/json
{
  • "UnitAgreement": {
    },
  • "User": {
    },
  • "Property": {
    },
  • "Unit": {
    },
  • "IsAccountCreated": true,
  • "IsEvictionPending": true,
  • "IsEnabled": true
}

Tasks

In Buildium, tasks are anything that a staff member needs to do.

Adding a task is like adding another item to a to-do list.

Some tasks, like maintenance work, are requested by residents or owners. Other tasks, like a walk-through inspection or an apartment showing, are going to be created by staff members.

Retrieve all tasks

Retrieves a list of all task/request types (Contact, Owner, Resident and To Do). Note, the response payload only contains fields common across all of the request types. To retrieve the full details of the task query the retrieve endpoint specific to the task type.

Required permission(s):

Tasks > Tasks - View

query Parameters
entitytype
string
Enum: "Rental" "RentalOwner" "Association"

Specifies the type of entity that the EntityId field refers to. This field is required if the EntityId field is populated.

entityid
integer <int32>

Filters results to any task associated with the specified entity id value. The value must be of the type specified in the EntityType field.

statuses
Array of strings
Items Enum: "New" "InProgress" "Completed" "Deferred" "Closed"

Filters results by the status of the task. If no status is specified, tasks with any status will be returned.

type
string
Enum: "ContactRequest" "ResidentRequest" "Todo" "RentalOwnerRequest"

Filters results to any task associated with the task type specified.

unitid
integer <int32>

Filters results to any task associated with the unit identifier.

unitagreementid
integer <int32>

Filters results to any task associated with the unit agreement identifier specified.

lastupdatedfrom
string <date>

Filters results to any tasks were updated on or after the specified date. The value must be formatted as YYYY-MM-DD.

lastupdatedto
string <date>

Filters results to any tasks were updated on or before the specified date. The value must be formatted as YYYY-MM-DD.

duedatefrom
string <date>

Filters results to any tasks with a due date on or after the specified date. The value must be formatted as YYYY-MM-DD.

duedateto
string <date>

Filters results to any tasks with a due date on or before the specified date. The value must be formatted as YYYY-MM-DD.

taskcategoryid
integer <int32>

Filters results to any tasks with the specified category identifier.

priorities
Array of strings
Items Enum: "Low" "Normal" "High"

Filters results to any tasks whose priority matches the specified values. If no priority is specified, tasks with any priority will be returned.

assignedtoid
integer <int32>

Filters results to any tasks that have been assigned to the specified staff user identifier.

tasktitle
string

Filters results to any task whose title contains the specified value.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve a task

Retrieves a specific task. This endpoint can be used for any task type - contact requests, rental owner requests, resident requests or to do's. Note, the response payload only contains fields common across all of the request types. To retrieve the full details of the task query the retrieve endpoint specific to the task type.

Required permission(s):

Tasks > Tasks - View

path Parameters
taskId
required
integer <int32>

The task identifier

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "TaskType": "ContactRequest",
  • "Category": {
    },
  • "Title": "string",
  • "Description": "string",
  • "Property": {
    },
  • "UnitId": 0,
  • "UnitAgreement": {
    },
  • "RequestedByUserEntity": {
    },
  • "AssignedToUserId": 0,
  • "TaskStatus": "New",
  • "Priority": "Low",
  • "DueDate": "2019-08-24",
  • "CreatedDateTime": "2019-08-24T14:15:22Z",
  • "LastUpdatedDateTime": "2019-08-24T14:15:22Z"
}

Retrieve all task history

Retrieves all task history records for a specific task.

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

Required permission(s):

Tasks > Tasks - View

path Parameters
taskId
required
integer <int32>
query Parameters
orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve a task history

Retrieves a specific task history record for a task.

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

Required permission(s):

Tasks > Tasks - View

path Parameters
taskId
required
integer <int32>
taskHistoryId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Priority": "Low",
  • "TaskStatus": "New",
  • "AssignedToUserId": 0,
  • "DueDate": "2019-08-24",
  • "Message": "string",
  • "SharedWith": [
    ],
  • "FileIds": [
    ],
  • "CreatedDateTIme": "2019-08-24T14:15:22Z",
  • "CreatedByUser": {
    },
  • "LastUpdatedDateTime": "2019-08-24T14:15:22Z",
  • "LastUpdatedByUser": {
    }
}

Update a task history

Updates a specific task history record for a task.

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

Required permission(s):

Tasks > Tasks - View Edit

path Parameters
taskId
required
integer <int32>
taskHistoryId
required
integer <int32>
Request Body schema: application/json
Message
required
string non-empty

A message to include with the task update. The value can not exceed 65500 characters.

Responses

Request samples

Content type
application/json
{
  • "Message": "string"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Priority": "Low",
  • "TaskStatus": "New",
  • "AssignedToUserId": 0,
  • "DueDate": "2019-08-24",
  • "Message": "string",
  • "SharedWith": [
    ],
  • "FileIds": [
    ],
  • "CreatedDateTIme": "2019-08-24T14:15:22Z",
  • "CreatedByUser": {
    },
  • "LastUpdatedDateTime": "2019-08-24T14:15:22Z",
  • "LastUpdatedByUser": {
    }
}

Retrieve all task history files

Retrieves the metadata for all files associated with a task history record.

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

Required permission(s):

Tasks > Tasks - View

path Parameters
taskId
required
integer <int32>
taskHistoryId
required
integer <int32>
query Parameters
orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve a task history file

Retrieves the metadata for a specific file associated with a task history record.

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

Required permission(s):

Tasks > Tasks - View

path Parameters
taskId
required
integer <int32>
taskHistoryId
required
integer <int32>
fileId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Title": "string",
  • "PhysicalFileName": "string",
  • "Size": 0,
  • "ContentType": "string",
  • "UploadedDateTime": "2019-08-24T14:15:22Z"
}

Delete task history file

Deletes a specific file from a task history record. The file will be permanently deleted from the Buildium platform an can not be recovered.

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

Required permission(s):

Tasks > Tasks - View Edit Delete

path Parameters
taskId
required
integer <int32>
taskHistoryId
required
integer <int32>
fileId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "UserMessage": "string",
  • "ErrorCode": "string",
  • "Errors": [
    ]
}

Download a task history file

Downloads a specific file associated to the task history record.

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

Required permission(s):

Tasks > Tasks - View

path Parameters
taskId
required
integer <int32>
taskHistoryId
required
integer <int32>
fileId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "DownloadUrl": "string"
}

Upload a task history file

Uploads a file and associates it to the specified task history record.

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

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

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

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

Step 2 - Upload the file binary
Uploading the file binary will require using the response from step 1 to form a POST request to the Buildium file provider. Follow these steps to create the request:

  1. Form a POST request using the value of the BucketUrl property as the URL.

  2. Set the Content-Type header to multipart/form-data.

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

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

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

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

    NOTE: The file identifier is not generated in this response. To retrieve the file identifier, call /v1/files and pass the PhysicalFileName value received from the response of this endpoint into the physicalfilenames query parameter.

    Required permission(s):

    Tasks > Tasks - View Edit
path Parameters
taskId
required
integer <int32>
taskHistoryId
required
integer <int32>
Request Body schema: application/json
FileName
required
string non-empty

Name of file being uploaded. The value can not exceed 255 characters.

Responses

Request samples

Content type
application/json
{
  • "FileName": "string"
}

Response samples

Content type
application/json
{
  • "BucketUrl": "string",
  • "FormData": {
    },
  • "PhysicalFileName": "string"
}

Retrieve all task categories

Retrieves a list of task categories.

Required permission(s):

Tasks > Tasks - View

query Parameters
orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a task category

Create a task category.

Required permission(s):

Tasks > Tasks - View Edit

Request Body schema: application/json
Name
required
string non-empty

Name of the task category.

Responses

Request samples

Content type
application/json
{
  • "Name": "string"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Name": "string",
  • "IsSystemCategory": true,
  • "SubCategories": [
    ]
}

Retrieve a task category

Retrieves a specific task category.

Required permission(s):

Tasks > Tasks - View

path Parameters
taskCategoryId
required
integer <int32>

The task category identifier.

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Name": "string",
  • "IsSystemCategory": true,
  • "SubCategories": [
    ]
}

Update a task category

Updates a task category.

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

Required permission(s):

Tasks > Tasks - View Edit

path Parameters
taskCategoryId
required
integer <int32>

The task category identifier.

Request Body schema: application/json
Name
required
string non-empty

Name of the task category.

Responses

Request samples

Content type
application/json
{
  • "Name": "string"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Name": "string",
  • "IsSystemCategory": true,
  • "SubCategories": [
    ]
}

Contact Requests

Contact requests are created by a visitor to your public website, and is typically a task that requires you to follow up with someone by phone, text or email.

Retrieve all contact requests

Retrieves a list of contact requests.

Required permission(s):

Tasks > Tasks - View

query Parameters
entitytype
string
Enum: "Rental" "RentalOwner" "Association"

Specifies the type of entity that the EntityId field refers to. This field is required if the EntityId field is populated.

entityid
integer <int32>

Filters results to any task associated with the specified entity id value. The value must be of the type specified in the EntityType field.

statuses
Array of strings
Items Enum: "New" "InProgress" "Completed" "Deferred" "Closed"

Filters results by the status of the task. If no status is specified, tasks with any status will be returned.

unitid
integer <int32>

Filters results to any task associated with the unit identifier.

lastupdatedfrom
string <date>

Filters results to any tasks were updated on or after the specified date. The value must be formatted as YYYY-MM-DD.

lastupdatedto
string <date>

Filters results to any tasks were updated on or before the specified date. The value must be formatted as YYYY-MM-DD.

duedatefrom
string <date>

Filters results to any tasks with a due date on or after the specified date. The value must be formatted as YYYY-MM-DD.

duedateto
string <date>

Filters results to any tasks with a due date on or before the specified date. The value must be formatted as YYYY-MM-DD.

taskcategoryid
integer <int32>

Filters results to any tasks with the specified category identifier.

priorities
Array of strings
Items Enum: "Low" "Normal" "High"

Filters results to any tasks whose priority matches the specified values. If no priority is specified, tasks with any priority will be returned.

assignedtoid
integer <int32>

Filters results to any tasks that have been assigned to the specified staff user identifier.

tasktitle
string

Filters results to any task whose title contains the specified value.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a contact request

Creates a contact request.

Required permission(s):

Tasks > Tasks - View Edit

Request Body schema: application/json
Title
required
string non-empty

Request title. The title can not exceed 127 characters.

Description
string

Request description. The description can not exceed 65500 characters.

CategoryId
integer <int32>

The category identifier to assign the request.

SubCategoryId
integer <int32>

The subcategory identifier to assign the request.

PropertyId
integer <int32>

The unique identifier of property associated with the request. The assigned property must be active.

UnitId
integer <int32>

The unique identifier of the unit associated with the request. The unit must be associated with the PropertyId specified.

AssignedToUserId
required
integer <int32>

The unique identifier of the staff user assigned to the request. The user must be a Staff user type.

TaskStatus
required
string
Enum: "New" "InProgress" "Completed" "Deferred" "Closed"

Request status.

Priority
required
string
Enum: "Low" "Normal" "High"

Request priority.

DueDate
string <date>

Request due date. The date must be formatted as YYYY-MM-DD.

required
object

The contact details of the person who made the request.

Responses

Request samples

Content type
application/json
{
  • "Title": "string",
  • "Description": "string",
  • "CategoryId": 0,
  • "SubCategoryId": 0,
  • "PropertyId": 0,
  • "UnitId": 0,
  • "AssignedToUserId": 0,
  • "TaskStatus": "New",
  • "Priority": "Low",
  • "DueDate": "2019-08-24",
  • "ContactDetail": {
    }
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Category": {
    },
  • "Title": "string",
  • "Description": "string",
  • "Property": {
    },
  • "UnitId": 0,
  • "ContactDetail": {
    },
  • "AssignedToUserId": 0,
  • "TaskStatus": "New",
  • "Priority": "Low",
  • "DueDate": "2019-08-24",
  • "CreatedDateTime": "2019-08-24T14:15:22Z",
  • "LastUpdatedDateTime": "2019-08-24T14:15:22Z"
}

Retrieve a contact request

Retrieves a contact request.

Required permission(s):

Tasks > Tasks - View

path Parameters
contactRequestTaskId
required
integer <int32>

The contact request identifier.

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Category": {
    },
  • "Title": "string",
  • "Description": "string",
  • "Property": {
    },
  • "UnitId": 0,
  • "ContactDetail": {
    },
  • "AssignedToUserId": 0,
  • "TaskStatus": "New",
  • "Priority": "Low",
  • "DueDate": "2019-08-24",
  • "CreatedDateTime": "2019-08-24T14:15:22Z",
  • "LastUpdatedDateTime": "2019-08-24T14:15:22Z"
}

Update a contact request

Updates a contact request.

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

Required permission(s):

Tasks > Tasks - View Edit

path Parameters
contactRequestTaskId
required
integer <int32>

The contact request identifier.

Request Body schema: application/json
Title
required
string non-empty

Request title. The title can not exceed 127 characters.

Message
string

Description of the request update. The message can not exceed 65500 characters.

CategoryId
integer <int32>

The category identifier to assign the request.

SubCategoryId
integer <int32>

The subcategory identifier to assign the request.

PropertyId
integer <int32>

The unique identifier of property associated with the request. The assigned property must be active.

UnitId
integer <int32>

The unique identifier of the unit associated with the request. The unit must be associated with the PropertyId specified.

AssignedToUserId
required
integer <int32>

The unique identifier of the staff user assigned to the request. The user must be a Staff user type.

TaskStatus
required
string
Enum: "New" "InProgress" "Completed" "Deferred" "Closed"

Request status.

Priority
required
string
Enum: "Low" "Normal" "High"

Request priority.

DueDate
string <date>

Request due date. The date must be formatted as YYYY-MM-DD.

required
object

The contact details.

Responses

Request samples

Content type
application/json
{
  • "Title": "string",
  • "Message": "string",
  • "CategoryId": 0,
  • "SubCategoryId": 0,
  • "PropertyId": 0,
  • "UnitId": 0,
  • "AssignedToUserId": 0,
  • "TaskStatus": "New",
  • "Priority": "Low",
  • "DueDate": "2019-08-24",
  • "ContactDetail": {
    }
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Category": {
    },
  • "Title": "string",
  • "Description": "string",
  • "Property": {
    },
  • "UnitId": 0,
  • "ContactDetail": {
    },
  • "AssignedToUserId": 0,
  • "TaskStatus": "New",
  • "Priority": "Low",
  • "DueDate": "2019-08-24",
  • "CreatedDateTime": "2019-08-24T14:15:22Z",
  • "LastUpdatedDateTime": "2019-08-24T14:15:22Z"
}

Rental Owner Requests

Rental owner requests are created by a rental owner through the Buildium rental owner portal. These tasks can also be created by staff within the Buildium web application. When a rental owner request is created, a notification will automatically be sent to the owner to let them know that the task has been created.

Retrieve all rental owner requests

Retrieves all rental owner requests.

Required permission(s):

Tasks > Tasks - View

query Parameters
entitytype
string
Enum: "Rental" "RentalOwner" "Association"

Specifies the type of entity that the EntityId field refers to. This field is required if the EntityId field is populated.

entityid
integer <int32>

Filters results to any task associated with the specified entity id value. The value must be of the type specified in the EntityType field.

statuses
Array of strings
Items Enum: "New" "InProgress" "Completed" "Deferred" "Closed"

Filters results by the status of the task. If no status is specified, tasks with any status will be returned.

unitid
integer <int32>

Filters results to any task associated with the unit identifier.

lastupdatedfrom
string <date>

Filters results to any tasks were updated on or after the specified date. The value must be formatted as YYYY-MM-DD.

lastupdatedto
string <date>

Filters results to any tasks were updated on or before the specified date. The value must be formatted as YYYY-MM-DD.

duedatefrom
string <date>

Filters results to any tasks with a due date on or after the specified date. The value must be formatted as YYYY-MM-DD.

duedateto
string <date>

Filters results to any tasks with a due date on or before the specified date. The value must be formatted as YYYY-MM-DD.

taskcategoryid
integer <int32>

Filters results to any tasks with the specified category identifier.

priorities
Array of strings
Items Enum: "Low" "Normal" "High"

Filters results to any tasks whose priority matches the specified values. If no priority is specified, tasks with any priority will be returned.

assignedtoid
integer <int32>

Filters results to any tasks that have been assigned to the specified staff user identifier.

tasktitle
string

Filters results to any task whose title contains the specified value.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a rental owner request

Creates a rental owner request.

Required permission(s):

Tasks > Tasks - View Edit

Request Body schema: application/json
Title
required
string non-empty

Request title. The title can not exceed 127 characters.

Description
string

Request description. The description can not exceed 65500 characters.

CategoryId
integer <int32>

The category identifier to assign the request.

SubCategoryId
integer <int32>

The subcategory identifier to assign the request.

PropertyId
integer <int32>

The unique identifier of property associated with the request. The assigned property must be active.

UnitId
integer <int32>

The unique identifier of the unit associated with the request. The unit must be associated with the PropertyId specified.

AssignedToUserId
integer <int32>

The unique identifier of the staff user assigned to the request. The user must be a Staff user type.

TaskStatus
required
string
Enum: "New" "InProgress" "Completed" "Deferred" "Closed"

Request status.

Priority
required
string
Enum: "Low" "Normal" "High"

Request priority.

DueDate
string <date>

Request due date. The date must be formatted as YYYY-MM-DD.

RequestedByRentalOwnerId
required
integer <int32>

The unique identifier of the rental owner that submitted the request.

Responses

Request samples

Content type
application/json
{
  • "Title": "string",
  • "Description": "string",
  • "CategoryId": 0,
  • "SubCategoryId": 0,
  • "PropertyId": 0,
  • "UnitId": 0,
  • "AssignedToUserId": 0,
  • "TaskStatus": "New",
  • "Priority": "Low",
  • "DueDate": "2019-08-24",
  • "RequestedByRentalOwnerId": 0
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Category": {
    },
  • "Title": "string",
  • "Description": "string",
  • "Property": {
    },
  • "UnitId": 0,
  • "RequestedByUserEntity": {
    },
  • "AssignedToUserId": 0,
  • "TaskStatus": "New",
  • "Priority": "Low",
  • "DueDate": "2019-08-24",
  • "CreatedDateTime": "2019-08-24T14:15:22Z",
  • "LastUpdatedDateTime": "2019-08-24T14:15:22Z"
}

Retrieve a rental owner request

Retrieves a specific rental owner request.

Required permission(s):

Tasks > Tasks - View

path Parameters
rentalOwnerRequestTaskId
required
integer <int32>

The rental owner request identifier.

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Category": {
    },
  • "Title": "string",
  • "Description": "string",
  • "Property": {
    },
  • "UnitId": 0,
  • "RequestedByUserEntity": {
    },
  • "AssignedToUserId": 0,
  • "TaskStatus": "New",
  • "Priority": "Low",
  • "DueDate": "2019-08-24",
  • "CreatedDateTime": "2019-08-24T14:15:22Z",
  • "LastUpdatedDateTime": "2019-08-24T14:15:22Z"
}

Update a rental owner request

Updates a rental owner request.

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

Required permission(s):

Tasks > Tasks - View Edit

path Parameters
rentalOwnerRequestTaskId
required
integer <int32>

The rental owner request identifier.

Request Body schema: application/json
Title
required
string non-empty

Request title. The title can not exceed 127 characters.

Message
string

Description of the request update. The message can not exceed 65500 characters.

CategoryId
integer <int32>

The category identifier to assign the request.

SubCategoryId
integer <int32>

The subcategory identifier to assign the request.

PropertyId
integer <int32>

The unique identifier of property associated with the request. The assigned property must be active.

UnitId
integer <int32>

The unique identifier of the unit associated with the request. The unit must be associated with the PropertyId specified.

AssignedToUserId
integer <int32>

The unique identifier of the staff user assigned to the request. The user must be a Staff user type.

TaskStatus
required
string
Enum: "New" "InProgress" "Completed" "Deferred" "Closed"

Request status.

Priority
required
string
Enum: "Low" "Normal" "High"

Request priority.

DueDate
string <date>

Request due date. The date must be formatted as YYYY-MM-DD.

Responses

Request samples

Content type
application/json
{
  • "Title": "string",
  • "Message": "string",
  • "CategoryId": 0,
  • "SubCategoryId": 0,
  • "PropertyId": 0,
  • "UnitId": 0,
  • "AssignedToUserId": 0,
  • "TaskStatus": "New",
  • "Priority": "Low",
  • "DueDate": "2019-08-24"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Category": {
    },
  • "Title": "string",
  • "Description": "string",
  • "Property": {
    },
  • "UnitId": 0,
  • "RequestedByUserEntity": {
    },
  • "AssignedToUserId": 0,
  • "TaskStatus": "New",
  • "Priority": "Low",
  • "DueDate": "2019-08-24",
  • "CreatedDateTime": "2019-08-24T14:15:22Z",
  • "LastUpdatedDateTime": "2019-08-24T14:15:22Z"
}

Retrieve rental owner contribution request

Retrieves the contribution details for a rental owner contribution request.

Required permission(s):

Tasks > Tasks - View

path Parameters
rentalOwnerRequestTaskId
required
integer <int32>

The rental owner request identifier.

Responses

Response samples

Content type
application/json
{
  • "ContributionRequests": [
    ],
  • "ReminderSettings": {
    }
}

Update a rental owner contribution request

Updates the contribution details for a rental owner contribution request.

Required permission(s):

Tasks > Tasks - View Edit

path Parameters
rentalOwnerRequestTaskId
required
integer <int32>

The rental owner request identifier.

Request Body schema: application/json
Array of objects (RentalOwnerContributionPutMessage)

The contribution request details associated with the task.

object

The contribution request reminder settings.

Responses

Request samples

Content type
application/json
{
  • "ContributionRequests": [
    ],
  • "ReminderSettings": {
    }
}

Response samples

Content type
application/json
{
  • "ContributionRequests": [
    ],
  • "ReminderSettings": {
    }
}

Resident Requests

Resident requests are created by a tenant or association owner through the resident portal site. These tasks can be created by staff within the Buildium web application. When a resident request is created, a notification will automatically be sent to the resident to let them know that the task has been created.

Retrieve all resident requests

Retrieves a list of resident requests.

Required permission(s):

Tasks > Tasks - View

query Parameters
entitytype
string
Enum: "Rental" "RentalOwner" "Association"

Specifies the type of entity that the EntityId field refers to. This field is required if the EntityId field is populated.

entityid
integer <int32>

Filters results to any task associated with the specified entity id value. The value must be of the type specified in the EntityType field.

statuses
Array of strings
Items Enum: "New" "InProgress" "Completed" "Deferred" "Closed"

Filters results by the status of the task. If no status is specified, tasks with any status will be returned.

unitid
integer <int32>

Filters results to any task associated with the unit identifier.

unitagreementid
integer <int32>

Filters results to any task associated with the unit agreement identifier specified.

lastupdatedfrom
string <date>

Filters results to any tasks were updated on or after the specified date. The value must be formatted as YYYY-MM-DD.

lastupdatedto
string <date>

Filters results to any tasks were updated on or before the specified date. The value must be formatted as YYYY-MM-DD.

duedatefrom
string <date>

Filters results to any tasks with a due date on or after the specified date. The value must be formatted as YYYY-MM-DD.

duedateto
string <date>

Filters results to any tasks with a due date on or before the specified date. The value must be formatted as YYYY-MM-DD.

taskcategoryid
integer <int32>

Filters results to any tasks with the specified category identifier.

priorities
Array of strings
Items Enum: "Low" "Normal" "High"

Filters results to any tasks whose priority matches the specified values. If no priority is specified, tasks with any priority will be returned.

assignedtoid
integer <int32>

Filters results to any tasks that have been assigned to the specified staff user identifier.

tasktitle
string

Filters results to any task whose title contains the specified value.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a resident request

Creates a resident request.

Required permission(s):

Tasks > Tasks - View Edit

Request Body schema: application/json
Title
required
string non-empty

Request title. The title can not exceed 127 characters.

Description
string

Request description. The description can not exceed 65500 characters.

CategoryId
integer <int32>

The category identifier to assign the request.

SubCategoryId
integer <int32>

The subcategory identifier to assign the request.

UnitAgreementId
required
integer <int32>

The unique identifier of the unit agreement associated with the request.

RequestedByEntityId
required
integer <int32>

The unique identifier of the resident that submitted the request.

AssignedToUserId
integer <int32>

The unique identifier of the staff user assigned to the request. The user must be a Staff user type. If not provided, assignment rules in the resident center settings (if configured) will be used for assignment.

TaskStatus
required
string
Enum: "New" "InProgress" "Completed" "Deferred" "Closed"

Request status.

Priority
required
string
Enum: "Low" "Normal" "High"

Request priority.

DueDate
string <date>

Request due date. The date must be formatted as YYYY-MM-DD.

IsEntryPermittedByResident
boolean

Indicates whether the resident has explicitly granted permission to enter the unit. Set this value to null if the resident has not provided a response.

DoesResidentHavePets
boolean

Indicates whether the resident has pets. Set this value to null if the resident has not provided a response.

ResidentEntryNotes
string

Notes provided by the resident specific to entering the premises. The value cannot exceed 65535 characters.

ShareWithRentalOwners
boolean

Indicates whether the request is shared with rental owners (applies to requests for rentals only). Defaults to False if not set or for association requests.

ShareWithBoardMembers
boolean

Indicates whether the request is shared with board members (applies to requests for associations only). Defaults to False if not set or for rental requests.

Responses

Request samples

Content type
application/json
{
  • "Title": "string",
  • "Description": "string",
  • "CategoryId": 0,
  • "SubCategoryId": 0,
  • "UnitAgreementId": 0,
  • "RequestedByEntityId": 0,
  • "AssignedToUserId": 0,
  • "TaskStatus": "New",
  • "Priority": "Low",
  • "DueDate": "2019-08-24",
  • "IsEntryPermittedByResident": true,
  • "DoesResidentHavePets": true,
  • "ResidentEntryNotes": "string",
  • "ShareWithRentalOwners": true,
  • "ShareWithBoardMembers": true
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Category": {
    },
  • "Title": "string",
  • "Description": "string",
  • "Property": {
    },
  • "UnitId": 0,
  • "UnitAgreement": {
    },
  • "RequestedByUserEntity": {
    },
  • "AssignedToUserId": 0,
  • "TaskStatus": "New",
  • "Priority": "Low",
  • "DueDate": "2019-08-24",
  • "CreatedDateTime": "2019-08-24T14:15:22Z",
  • "LastUpdatedDateTime": "2019-08-24T14:15:22Z",
  • "Appliance": {
    },
  • "IsEntryPermittedByResident": true,
  • "DoesResidentHavePets": true,
  • "ResidentEntryNotes": "string"
}

Retrieve a resident request

Retrieves a specific resident request.

Required permission(s):

Tasks > Tasks - View

path Parameters
residentRequestTaskId
required
integer <int32>

The resident request identifier.

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Category": {
    },
  • "Title": "string",
  • "Description": "string",
  • "Property": {
    },
  • "UnitId": 0,
  • "UnitAgreement": {
    },
  • "RequestedByUserEntity": {
    },
  • "AssignedToUserId": 0,
  • "TaskStatus": "New",
  • "Priority": "Low",
  • "DueDate": "2019-08-24",
  • "CreatedDateTime": "2019-08-24T14:15:22Z",
  • "LastUpdatedDateTime": "2019-08-24T14:15:22Z",
  • "Appliance": {
    },
  • "IsEntryPermittedByResident": true,
  • "DoesResidentHavePets": true,
  • "ResidentEntryNotes": "string"
}

Update a resident request

Update a resident request.

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

Required permission(s):

Tasks > Tasks - View Edit

path Parameters
residentRequestTaskId
required
integer <int32>

The resident request identifier.

Request Body schema: application/json
Title
required
string non-empty

Request title. The title can not exceed 127 characters.

Message
string

Description of the request update. The message can not exceed 65500 characters.

CategoryId
integer <int32>

The category identifier to assign the request.

SubCategoryId
integer <int32>

The subcategory identifier to assign the request.

AssignedToUserId
integer <int32>

The unique identifier of the staff user assigned to the request. The user must be a Staff user type.

TaskStatus
required
string
Enum: "New" "InProgress" "Completed" "Deferred" "Closed"

Request status.

Priority
required
string
Enum: "Low" "Normal" "High"

Request priority.

DueDate
string <date>

Request due date. The date must be formatted as YYYY-MM-DD.

Responses

Request samples

Content type
application/json
{
  • "Title": "string",
  • "Message": "string",
  • "CategoryId": 0,
  • "SubCategoryId": 0,
  • "AssignedToUserId": 0,
  • "TaskStatus": "New",
  • "Priority": "Low",
  • "DueDate": "2019-08-24"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Category": {
    },
  • "Title": "string",
  • "Description": "string",
  • "Property": {
    },
  • "UnitId": 0,
  • "UnitAgreement": {
    },
  • "RequestedByUserEntity": {
    },
  • "AssignedToUserId": 0,
  • "TaskStatus": "New",
  • "Priority": "Low",
  • "DueDate": "2019-08-24",
  • "CreatedDateTime": "2019-08-24T14:15:22Z",
  • "LastUpdatedDateTime": "2019-08-24T14:15:22Z",
  • "Appliance": {
    },
  • "IsEntryPermittedByResident": true,
  • "DoesResidentHavePets": true,
  • "ResidentEntryNotes": "string"
}

To Do Requests

A to do request is a catchall for anything that has to get done. This task type is created by and can only be viewed by staff users.

Retrieve all to do requests

Retrieves a list of to do tasks.

Required permission(s):

Tasks > Tasks - View

query Parameters
entitytype
string
Enum: "Rental" "RentalOwner" "Association"

Specifies the type of entity that the EntityId field refers to. This field is required if the EntityId field is populated.

entityid
integer <int32>

Filters results to any task associated with the specified entity id value. The value must be of the type specified in the EntityType field.

statuses
Array of strings
Items Enum: "New" "InProgress" "Completed" "Deferred" "Closed"

Filters results by the status of the task. If no status is specified, tasks with any status will be returned.

unitid
integer <int32>

Filters results to any task associated with the unit identifier.

lastupdatedfrom
string <date>

Filters results to any tasks were updated on or after the specified date. The value must be formatted as YYYY-MM-DD.

lastupdatedto
string <date>

Filters results to any tasks were updated on or before the specified date. The value must be formatted as YYYY-MM-DD.

duedatefrom
string <date>

Filters results to any tasks with a due date on or after the specified date. The value must be formatted as YYYY-MM-DD.

duedateto
string <date>

Filters results to any tasks with a due date on or before the specified date. The value must be formatted as YYYY-MM-DD.

taskcategoryid
integer <int32>

Filters results to any tasks with the specified category identifier.

priorities
Array of strings
Items Enum: "Low" "Normal" "High"

Filters results to any tasks whose priority matches the specified values. If no priority is specified, tasks with any priority will be returned.

assignedtoid
integer <int32>

Filters results to any tasks that have been assigned to the specified staff user identifier.

tasktitle
string

Filters results to any task whose title contains the specified value.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a to do request

Creates a to do task.

Required permission(s):

Tasks > Tasks - View Edit

Request Body schema: application/json
Title
required
string non-empty

Request title. The title can not exceed 127 characters.

Description
string

Request description. The description can not exceed 65500 characters.

CategoryId
integer <int32>

The category identifier to assign the request.

SubCategoryId
integer <int32>

The subcategory identifier to assign the request.

PropertyId
integer <int32>

The unique identifier of property associated with the request. The assigned property must be active.

UnitId
integer <int32>

The unique identifier of the unit associated with the request. The unit must be associated with the PropertyId specified.

AssignedToUserId
required
integer <int32>

The unique identifier of the staff user assigned to the request. The user must be a Staff user type.

TaskStatus
required
string
Enum: "New" "InProgress" "Completed" "Deferred" "Closed"

Request status.

Priority
required
string
Enum: "Low" "Normal" "High"

Request priority.

DueDate
string <date>

Request due date. The date must be formatted as YYYY-MM-DD.

Responses

Request samples

Content type
application/json
{
  • "Title": "string",
  • "Description": "string",
  • "CategoryId": 0,
  • "SubCategoryId": 0,
  • "PropertyId": 0,
  • "UnitId": 0,
  • "AssignedToUserId": 0,
  • "TaskStatus": "New",
  • "Priority": "Low",
  • "DueDate": "2019-08-24"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Category": {
    },
  • "Title": "string",
  • "Description": "string",
  • "Property": {
    },
  • "UnitId": 0,
  • "AssignedToUserId": 0,
  • "TaskStatus": "New",
  • "Priority": "Low",
  • "DueDate": "2019-08-24",
  • "CreatedDateTime": "2019-08-24T14:15:22Z",
  • "LastUpdatedDateTime": "2019-08-24T14:15:22Z"
}

Retrieve a to do request

Retrieves a to do task.

Required permission(s):

Tasks > Tasks - View

path Parameters
toDoTaskId
required
integer <int32>

The to do task identifier

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Category": {
    },
  • "Title": "string",
  • "Description": "string",
  • "Property": {
    },
  • "UnitId": 0,
  • "AssignedToUserId": 0,
  • "TaskStatus": "New",
  • "Priority": "Low",
  • "DueDate": "2019-08-24",
  • "CreatedDateTime": "2019-08-24T14:15:22Z",
  • "LastUpdatedDateTime": "2019-08-24T14:15:22Z"
}

Update a to do request

Updates a to do task

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

Required permission(s):

Tasks > Tasks - View Edit

path Parameters
toDoTaskId
required
integer <int32>

The to do task identifier.

Request Body schema: application/json
Title
required
string non-empty

Request title. The title can not exceed 127 characters.

Message
string

Description of the request update. The message can not exceed 65500 characters.

CategoryId
integer <int32>

The category identifier to assign the request.

SubCategoryId
integer <int32>

The subcategory identifier to assign the request.

PropertyId
integer <int32>

The unique identifier of property associated with the request. The assigned property must be active.

UnitId
integer <int32>

The unique identifier of the unit associated with the request. The unit must be associated with the PropertyId specified.

AssignedToUserId
required
integer <int32>

The unique identifier of the staff user assigned to the request. The user must be a Staff user type.

TaskStatus
required
string
Enum: "New" "InProgress" "Completed" "Deferred" "Closed"

Request status.

Priority
required
string
Enum: "Low" "Normal" "High"

Request priority.

DueDate
string <date>

Request due date. The date must be formatted as YYYY-MM-DD.

Responses

Request samples

Content type
application/json
{
  • "Title": "string",
  • "Message": "string",
  • "CategoryId": 0,
  • "SubCategoryId": 0,
  • "PropertyId": 0,
  • "UnitId": 0,
  • "AssignedToUserId": 0,
  • "TaskStatus": "New",
  • "Priority": "Low",
  • "DueDate": "2019-08-24"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Category": {
    },
  • "Title": "string",
  • "Description": "string",
  • "Property": {
    },
  • "UnitId": 0,
  • "AssignedToUserId": 0,
  • "TaskStatus": "New",
  • "Priority": "Low",
  • "DueDate": "2019-08-24",
  • "CreatedDateTime": "2019-08-24T14:15:22Z",
  • "LastUpdatedDateTime": "2019-08-24T14:15:22Z"
}

Work Orders

Retrieve all work orders

Retrieves a list of work orders.

Required permission(s):

Maintenance > Work Orders - View

query Parameters
entitytype
string
Enum: "Rental" "RentalOwner" "Association"

Specifies the type of entity that the EntityId field refers to. This field is required if the EntityId field is populated.

entityid
integer <int32>

Filters results to any work order associated with the specified entity id value. The value must be of the type specified in the EntityType field.

statuses
Array of strings
Items Enum: "New" "InProgress" "Completed" "Deferred" "Closed"

Filters results by the status of the task associated with the work order. If no status is specified, work orders with any status will be returned.

type
string
Enum: "ContactRequest" "ResidentRequest" "Todo" "RentalOwnerRequest"

Filters results to any work order with an associated task with the task type specified.

unitid
integer <int32>

Filters results to any work order associated with the unit identifier.

unitagreementid
integer <int32>

Filters results to any work order associated with the unit agreement identifier specified.

lastupdatedfrom
string <date>

Filters results to any work orders were updated on or after the specified date. The value must be formatted as YYYY-MM-DD.

lastupdatedto
string <date>

Filters results to any work orders were updated on or before the specified date. The value must be formatted as YYYY-MM-DD.

duedatefrom
string <date>

Filters results to any work orders with a due date on or after the specified date. The value must be formatted as YYYY-MM-DD.

duedateto
string <date>

Filters results to any work orders with a due date on or before the specified date. The value must be formatted as YYYY-MM-DD.

taskcategoryid
integer <int32>

Filters results to any work orders whose priority matches the specified values. If no priority is specified, tasks with any priority will be returned.

priorities
Array of strings
Items Enum: "Low" "Normal" "High"

Filters results to any work orders that have been assigned to the specified staff user identifier.

assignedtoid
integer <int32>

Filters results to any work orders that have been assigned to the specified staff user identifier.

vendorids
Array of integers <int32> [ items <int32 > ]

Filters results to any work orders that have been assigned to the specified vendor identifier.

amountfrom
number <double>

Filters results to any work orders whose total amounts are equal or greater than the specified amount.

amountto
number <double>

Filters results to any work orders whose total amounts are equal or less than the specified amount.

isbilled
boolean

Filters results to work orders that have an associated bill.

title
string

Filters results to any work orders whose title contains the specified value.

taskids
Array of integers <int32> [ items <int32 > ]

Filters results to work orders that have an associated to a task in the specified list.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a work order

Creates a work order.

Required permission(s):

Maintenance > Work Orders - View Edit

Request Body schema: application/json
WorkDetails
string

Description of the work order. The value cannot exceed 65,535 characters.

InvoiceNumber
string

The invoice or reference number that the vendor assigned to the work order. The value cannot exceed 50 characters.

ChargeableTo
string

A description of the entity that will be charged for the work. The value cannot exceed 100 characters.

EntryAllowed
required
string
Enum: "Unknown" "Yes" "No"

Indicates whether entry has been allowed to the unit.

EntryNotes
string

Notes specific to entering the unit. The value cannot exceed 65,535 characters.

VendorId
required
integer <int32>

Vendor unique identifier.

VendorNotes
string

Notes specific to the vendor. The value cannot exceed 65,535 characters.

EntryContactId
integer <int32>

Contact user unique identifier. The user type must be one of the following: RentalTenant, AssociationOwner, Staff, RentalOwner.

EntryContactIds
Array of integers <int32> [ items <int32 > ]

Collection of entry contact user unique identifiers for the work order. The user type of each user in the collection must be one of the following: RentalTenant, AssociationOwner, Staff, RentalOwner.

Array of objects (WorkOrderLineItemSaveMessage)

Work order line items.

TaskId
integer <int32>

Task unique identifier to associate with the work order.

object

Task information to create and associate with the work order.

Responses

Request samples

Content type
application/json
{
  • "WorkDetails": "string",
  • "InvoiceNumber": "string",
  • "ChargeableTo": "string",
  • "EntryAllowed": "Unknown",
  • "EntryNotes": "string",
  • "VendorId": 0,
  • "VendorNotes": "string",
  • "EntryContactId": 0,
  • "EntryContactIds": [
    ],
  • "LineItems": [
    ],
  • "TaskId": 0,
  • "Task": {
    }
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Task": {
    },
  • "Title": "string",
  • "DueDate": "2019-08-24",
  • "Priority": "Unknown",
  • "Status": "Unknown",
  • "WorkDetails": "string",
  • "InvoiceNumber": "string",
  • "ChargeableTo": "string",
  • "EntryAllowed": "Unknown",
  • "EntryNotes": "string",
  • "VendorId": 0,
  • "VendorNotes": "string",
  • "EntryContact": {
    },
  • "EntryContacts": [
    ],
  • "BillTransactionId": 0,
  • "Amount": 0,
  • "LineItems": [
    ]
}

Retrieve a work order

Retrieves a specific work order.

Required permission(s):

Maintenance > Work Orders - View

path Parameters
workOrderId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Task": {
    },
  • "Title": "string",
  • "DueDate": "2019-08-24",
  • "Priority": "Unknown",
  • "Status": "Unknown",
  • "WorkDetails": "string",
  • "InvoiceNumber": "string",
  • "ChargeableTo": "string",
  • "EntryAllowed": "Unknown",
  • "EntryNotes": "string",
  • "VendorId": 0,
  • "VendorNotes": "string",
  • "EntryContact": {
    },
  • "EntryContacts": [
    ],
  • "BillTransactionId": 0,
  • "Amount": 0,
  • "LineItems": [
    ]
}

Update a work order

Updates a work order.

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

Required permission(s):

Maintenance > Work Orders - View Edit

path Parameters
workOrderId
required
integer <int32>
Request Body schema: application/json
WorkDetails
string

Description of the work order. The value cannot exceed 65,535 characters.

InvoiceNumber
string

The invoice or reference number that the vendor assigned to the invoice. The value cannot exceed 50 characters.

ChargeableTo
string

A description of the entity that will be charged for the work. The value cannot exceed 100 characters.

EntryAllowed
required
string
Enum: "Unknown" "Yes" "No"

Indicates whether entry has been allowed to the unit.

EntryNotes
string

Notes specific to entering the unit. The value cannot exceed 65,535 characters.

VendorId
required
integer <int32>

Vendor unique identifier.

VendorNotes
string

Notes specific to the vendor. The value cannot exceed 65,535 characters.

EntryContactId
integer <int32>

Contact user unique identifier. The user type must be one of the following: RentalTenant, AssociationOwner, Staff, RentalOwner.

EntryContactIds
Array of integers <int32> [ items <int32 > ]

Collection of entry contact user unique identifiers for the work order. The user type of each user in the list must be one of the following: RentalTenant, AssociationOwner, Staff, RentalOwner.

Array of objects (WorkOrderLineItemSaveMessage)

Work order line items. Note that all existing work order line items will be removed and replaced with this list of line items.

Responses

Request samples

Content type
application/json
{
  • "WorkDetails": "string",
  • "InvoiceNumber": "string",
  • "ChargeableTo": "string",
  • "EntryAllowed": "Unknown",
  • "EntryNotes": "string",
  • "VendorId": 0,
  • "VendorNotes": "string",
  • "EntryContactId": 0,
  • "EntryContactIds": [
    ],
  • "LineItems": [
    ]
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Task": {
    },
  • "Title": "string",
  • "DueDate": "2019-08-24",
  • "Priority": "Unknown",
  • "Status": "Unknown",
  • "WorkDetails": "string",
  • "InvoiceNumber": "string",
  • "ChargeableTo": "string",
  • "EntryAllowed": "Unknown",
  • "EntryNotes": "string",
  • "VendorId": 0,
  • "VendorNotes": "string",
  • "EntryContact": {
    },
  • "EntryContacts": [
    ],
  • "BillTransactionId": 0,
  • "Amount": 0,
  • "LineItems": [
    ]
}

Vendors

A vendor represents a person, business, or entity that provides goods and/or services. Vendor categories can be used to organize vendors making them easy to retrieve later.

Retrieve all vendors

Retrieves a list of vendors.

Required permission(s):

Maintenance > Vendors - View

query Parameters
status
string
Enum: "Inactive" "Active"

Filters results by the status of the vendor. If no status is specified both active and inactive vendors will be returned.

email
string

Filters results to any vendor whose email contains the specified value.

website
string

Filters results to any vendor whose website contains the specified value.

name
string

Filters results to any vendor whose name contains the specified value.

insuranceexpiration
string
Enum: "Expired" "ThirtyDaysOrLess" "SixtyDaysOrLess" "NinetyDaysOrLess" "None" "Any"

Filters results to any vendor whose insurance will expire in the specified date range.

phone
string

Filters results to any vendor who has a phone number that contains the specified value.

lastupdatedfrom
string <date-time>

Filters results to any vendors that were updated on or after the specified date. The value must be in UTC and formatted as YYYY-MM-DDTHH:MM:SSZ.

lastupdatedto
string <date-time>

Filters results to any vendors that were updated on or before the specified date. The value must be in UTC and formatted as YYYY-MM-DDTHH:MM:SSZ.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a vendor

Creates a vendor.

Required permission(s):

Maintenance > Vendors - View Edit

Request Body schema: application/json
FirstName
string

First name of the vendor. Required if IsCompany is false. The value cannot exceed 127 characters.

LastName
string

Last name of the vendor. Required if IsCompany is false. The value cannot exceed 127 characters.

IsCompany
required
boolean

Indicates whether the vendor should be considered a company or person.

CompanyName
string

Company name of the vendor. Required if IsCompany is true. The value cannot exceed 127 characters.

PrimaryEmail
string

Primary email for the vendor.

AlternateEmail
string

Alternate email for the vendor.

object

Phone numbers for the vendor.

object

Address of the vendor.

CategoryId
required
integer <int32>

The unique identifier of the vendor category.

ExpenseGlAccountId
integer <int32>

The unique identifier of the default expense general ledger account to associate with the vendor.

AccountNumber
string

The account number of the vendor. The value cannot exceed 30 characters.

Website
string

The website of the vendor. The value must be a valid URL. For example http://www.example.com. The value cannot exceed 100 characters.

object

The insurance information for the vendor.

Comments
string

Comments about the vendor. The value cannot exceed 65,535 characters.

object

The tax information of the vendor.

Responses

Request samples

Content type
application/json
{
  • "FirstName": "string",
  • "LastName": "string",
  • "IsCompany": true,
  • "CompanyName": "string",
  • "PrimaryEmail": "string",
  • "AlternateEmail": "string",
  • "PhoneNumbers": {
    },
  • "Address": {
    },
  • "CategoryId": 0,
  • "ExpenseGlAccountId": 0,
  • "AccountNumber": "string",
  • "Website": "string",
  • "VendorInsurance": {
    },
  • "Comments": "string",
  • "TaxInformation": {
    }
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "IsCompany": true,
  • "IsActive": true,
  • "FirstName": "string",
  • "LastName": "string",
  • "PrimaryEmail": "string",
  • "AlternateEmail": "string",
  • "CompanyName": "string",
  • "PhoneNumbers": [
    ],
  • "Website": "string",
  • "Category": {
    },
  • "Address": {
    },
  • "VendorInsurance": {
    },
  • "Comments": "string",
  • "AccountNumber": "string",
  • "ExpenseGLAccountId": 0,
  • "TaxInformation": {
    }
}

Retrieve a vendor

Retrieve a specific vendor.

Required permission(s):

Maintenance > Vendors - View

path Parameters
vendorId
required
integer <int32>

The vendor identifier.

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "IsCompany": true,
  • "IsActive": true,
  • "FirstName": "string",
  • "LastName": "string",
  • "PrimaryEmail": "string",
  • "AlternateEmail": "string",
  • "CompanyName": "string",
  • "PhoneNumbers": [
    ],
  • "Website": "string",
  • "Category": {
    },
  • "Address": {
    },
  • "VendorInsurance": {
    },
  • "Comments": "string",
  • "AccountNumber": "string",
  • "ExpenseGLAccountId": 0,
  • "TaxInformation": {
    }
}

Update a vendor

Updates a vendor.

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

Required permission(s):

Maintenance > Vendors - View Edit

path Parameters
vendorId
required
integer <int32>
Request Body schema: application/json
FirstName
string

First name of the vendor. Required if IsCompany is false. The value cannot exceed 127 characters.

LastName
string

Last name of the vendor. Required if IsCompany is false. The value cannot exceed 127 characters.

IsCompany
required
boolean

Indicates whether the vendor should be considered a company or person.

CompanyName
string

Company name of the vendor. Required if IsCompany is true. The value cannot exceed 127 characters.

PrimaryEmail
string

Primary email for the vendor.

AlternateEmail
string

Alternate email for the vendor.

object

Phone numbers for the vendor.

object

Address of the vendor.

CategoryId
required
integer <int32>

The unique identifier of the vendor category.

ExpenseGlAccountId
integer <int32>

The unique identifier of the default expense general ledger account to associate with the vendor.

AccountNumber
string

The account number of the vendor. The value cannot exceed 30 characters.

Website
string

The website of the vendor. The value must be a valid URL. For example "http://www.example.com". The value cannot exceed 100 characters.

object

The insurance information for the vendor.

Comments
string

Comments about the vendor. The value cannot exceed 65,535 characters.

object

The tax information of the vendor.

Responses

Request samples

Content type
application/json
{
  • "FirstName": "string",
  • "LastName": "string",
  • "IsCompany": true,
  • "CompanyName": "string",
  • "PrimaryEmail": "string",
  • "AlternateEmail": "string",
  • "PhoneNumbers": {
    },
  • "Address": {
    },
  • "CategoryId": 0,
  • "ExpenseGlAccountId": 0,
  • "AccountNumber": "string",
  • "Website": "string",
  • "VendorInsurance": {
    },
  • "Comments": "string",
  • "TaxInformation": {
    }
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "IsCompany": true,
  • "IsActive": true,
  • "FirstName": "string",
  • "LastName": "string",
  • "PrimaryEmail": "string",
  • "AlternateEmail": "string",
  • "CompanyName": "string",
  • "PhoneNumbers": [
    ],
  • "Website": "string",
  • "Category": {
    },
  • "Address": {
    },
  • "VendorInsurance": {
    },
  • "Comments": "string",
  • "AccountNumber": "string",
  • "ExpenseGLAccountId": 0,
  • "TaxInformation": {
    }
}

Create a credit

Creates a credit.

Required permission(s):

Accounting > Bills - View Edit

path Parameters
vendorId
required
integer <int32>
Request Body schema: application/json
EntryDate
required
string <date>

Date the vendor credit was made. The date must be formatted as YYYY-MM-DD.

ReferenceNumber
string

The invoice or reference number that the vendor assigned to the credit. The value cannot exceed 40 characters.

Memo
string

Memo associated with the vendor credit, if applicable. The value cannot exceed 40 characters.

required
Array of objects (VendorCreditLineItemPostMessage)

A collection of line items associated with the vendor credit. At least one line item is required and cannot exceed 100 line items.

Responses

Request samples

Content type
application/json
{
  • "EntryDate": "2019-08-24",
  • "ReferenceNumber": "string",
  • "Memo": "string",
  • "Lines": [
    ]
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "EntryDate": "2019-08-24",
  • "ReferenceNumber": "string",
  • "Memo": "string",
  • "Lines": [
    ]
}

Retrieve a credit

Retrieves a credit.

Required permission(s):

Accounting > Bills - View

path Parameters
vendorId
required
integer <int32>
vendorCreditId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "EntryDate": "2019-08-24",
  • "ReferenceNumber": "string",
  • "Memo": "string",
  • "Lines": [
    ]
}

Retrieve all notes

Retrieves all vendor notes.

Required permission(s):

Maintenance > Vendors - View

path Parameters
vendorId
required
integer <int32>
query Parameters
updateddatetimefrom
string <date-time>

Filters results to any note whose updated date and time are greater than or equal to the specified value. The value must be formatted as YYYY-MM-DD HH:MM:SS.

updateddatetimeto
string <date-time>

Filters results to any note whose updated date and time are less than or equal to the specified value. The value must be formatted as YYYY-MM-DD HH:MM:SS.

lastupdatedbyuserid
integer <int32>

Filters results to only notes that were last updated by the specified user identifier.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a note

Creates a vendor note.

Required permission(s):

Maintenance > Vendors - View Edit

path Parameters
vendorId
required
integer <int32>
Request Body schema: application/json
Note
required
string non-empty

Note contents. The value cannot exceed 65535 characters.

Responses

Request samples

Content type
application/json
{
  • "Note": "string"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Note": "string",
  • "LastUpdatedByUser": {
    }
}

Retrieve a note

Retrieves a vendor note.

Required permission(s):

Maintenance > Vendors - View

path Parameters
vendorId
required
integer <int32>
noteId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Note": "string",
  • "LastUpdatedByUser": {
    }
}

Update a note

Updates a vendor note.

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

Required permission(s):

Maintenance > Vendors - View Edit

path Parameters
vendorId
required
integer <int32>
noteId
required
integer <int32>
Request Body schema: application/json
Note
required
string non-empty

Note contents. The value cannot exceed 65535 characters.

Responses

Request samples

Content type
application/json
{
  • "Note": "string"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Note": "string",
  • "LastUpdatedByUser": {
    }
}

Create a refund

Creates a refund.

Required permission(s):

Maintenance > Vendors - View Edit Accounting > Bank Accounts - View

path Parameters
vendorId
required
integer <int32>
Request Body schema: application/json
EntryDate
required
string <date>

Date the vendor refund was made.

BankAccountId
required
integer <int32>

Unique identifier of the bank account that the refund was deposited into.

PaymentMethod
required
string
Enum: "Check" "Cash" "MoneyOrder" "CashierCheck" "DirectDeposit" "CreditCard" "ElectronicPayment"

The payment method used for the refund.

ReferenceNumber
string

The invoice or reference number that the vendor assigned to the refund. Reference number cannot exceed 45 characters.

Memo
string

Memo associated with the vendor refund, if applicable. Memo cannot exceed 65 characters

required
Array of objects (VendorRefundLinePostMessage)

A collection of line items associated with the vendor refund.

Responses

Request samples

Content type
application/json
{
  • "EntryDate": "2019-08-24",
  • "BankAccountId": 0,
  • "PaymentMethod": "Check",
  • "ReferenceNumber": "string",
  • "Memo": "string",
  • "Lines": [
    ]
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "EntryDate": "2019-08-24",
  • "BankAccountId": 0,
  • "PaymentMethod": "None",
  • "ReferenceNumber": "string",
  • "Memo": "string",
  • "Lines": [
    ]
}

Retrieve a refund

Retrieves a refund.

Required permission(s):

Maintenance > Vendors - View

path Parameters
vendorId
required
integer <int32>
vendorRefundId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "EntryDate": "2019-08-24",
  • "BankAccountId": 0,
  • "PaymentMethod": "None",
  • "ReferenceNumber": "string",
  • "Memo": "string",
  • "Lines": [
    ]
}

Retrieve all transactions

Retrieves all transactions for a given vendor.

Required permission(s):

Maintenance > Vendors - View
Accounting > General Ledger Transactions - View

path Parameters
vendorId
required
integer <int32>
query Parameters
transactiondatefrom
required
string <date>

Filters results to any vendor transaction whose entry date that is greater than or equal to the specified value. The maximum date range is 365 days.

transactiondateto
required
string <date>

Filters results to any vendor transaction whose entry date is less than or equal to the specified value. The maximum date range is 365 days.

transactiontypes
Array of strings
Items Enum: "Bill" "Check" "Charge" "Payment" "Credit" "Refund" "ApplyDeposit" "ElectronicFundsTransfer" "Other" "Deposit" "GeneralJournalEntry" "OwnerContribution" "ReversePayment" "ReverseElectronicFundsTransfer" "VendorCredit" "RentalApplicationFeePayment" "ReverseRentalApplicationFeePayment" "ReverseOwnerContribution" "VendorRefund" "UnreversedPayment" "UnreversedElectronicFundsTransfer" "UnreversedOwnerContribution" "UnreversedRentalApplicationFeePayment"

Filters results to any vendor transaction whose vendor transaction type matches the specified status. If no type is specified, vendor transactions with any type will be returned.

referencenumber
string

Filters results to vendor transaction whose reference number contains the specified value. The reference number cannot exceed 40 characters.

memo
string

Filters results to vendor transaction whose memo contains the specified value. The memo cannot exceed 40 characters.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve all vendor categories

Retrieves a list of vendor categories.

Required permission(s):

Maintenance > Vendors - View

query Parameters
orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a vendor category

Creates a vendor category.

Required permission(s):

Maintenance > Vendors - View Edit

Request Body schema: application/json
Name
required
string non-empty

The category name.

Responses

Request samples

Content type
application/json
{
  • "Name": "string"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Name": "string",
  • "IsSystemCategory": true
}

Retrieve a vendor category

Retrieves a specific vendor category.

Required permission(s):

Maintenance > Vendors - View

path Parameters
vendorCategoryId
required
integer <int32>

The vendor category identifier.

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Name": "string",
  • "IsSystemCategory": true
}

Update a vendor category

Updates a vendor category.

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

Required permission(s):

Maintenance > Vendors - View Edit

path Parameters
vendorCategoryId
required
integer <int32>
Request Body schema: application/json
Name
required
string non-empty

The category name.

Responses

Request samples

Content type
application/json
{
  • "Name": "string"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Name": "string",
  • "IsSystemCategory": true
}

Communications

Communications resources providing access to announcements and phone logs.

Retrieve all announcements

Retrieves all announcements.

Required permission(s):

Communications > Announcements - View

query Parameters
announcementdatefrom
string <date>

Filters results to any announcements created on or after the specified date. The value must be formatted as YYYY-MM-DD.

announcementdateto
string <date>

Filters results to any announcements created on or before the specified date. The value must be formatted as YYYY-MM-DD.

entityid
integer <int32>

Filters results to any announcement associated with the specified entity id value. The value must be of the type specified in the EntityType field.

entitytype
string
Enum: "Rental" "RentalOwner" "Association"

Specifies the type of entity that the EntityId field refers to. This field is required if the EntityId field is provided.

senderid
integer <int32>

Unique identifier of the user that published the announcement.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create an announcement

Creates and publishes an announcement.

Required permission(s):

Communications > Announcements - View Edit

Request Body schema: application/json
Subject
required
string non-empty

The subject of the announcement. Note, this will only show up in announcements sent via email and in the Resident Center. The value cannot exceed 100 characters.

Body
required
string non-empty

The content of the announcement. The value cannot exceed 65535 characters. Note: if your message is over 140 characters, the announcement will not be sent via SMS. Announcement texts are available for US numbers only.

ExpirationDate
string <date>

Optional date that indicates when the announcement should be removed from the Resident Center. If no date is provided the announcement will appear indefinitely The date must be formatted as YYYY-MM-DD.

NotifyAssociationTenants
required
boolean

Indicates whether to include notifying the association tenants in addition to the association owners when publishing the announcement. Note this is only pertains to announcements sent to residents of Association properties.

IncludeAlternateEmail
required
boolean

Indicates whether to send the announcement to alternate emails in addition to the main email addresses when publishing the announcement.

PropertyIds
required
Array of integers <int32> [ items <int32 > ]

A list of association and/or rental property unique identifiers whose residents should receive the announcement.

Responses

Request samples

Content type
application/json
{
  • "Subject": "string",
  • "Body": "string",
  • "ExpirationDate": "2019-08-24",
  • "NotifyAssociationTenants": true,
  • "IncludeAlternateEmail": true,
  • "PropertyIds": [
    ]
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Subject": "string",
  • "Body": "string",
  • "AnnouncementDate": "2019-08-24",
  • "ExpirationDate": "2019-08-24",
  • "Channels": [
    ],
  • "Sender": {
    }
}

Retrieve an announcement

Retrieves an announcement.

Required permission(s):

Communications > Announcements - View

path Parameters
announcementId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Subject": "string",
  • "Body": "string",
  • "AnnouncementDate": "2019-08-24",
  • "ExpirationDate": "2019-08-24",
  • "Channels": [
    ],
  • "Sender": {
    }
}

Expire an announcement

Removes the announcement from the Resident Center immediately.

Required permission(s):

Communications > Announcements - View Edit

path Parameters
announcementId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "UserMessage": "string",
  • "ErrorCode": "string",
  • "Errors": [
    ]
}

Retrieve all announcement properties

Retrieves a list of association and/or rental properties whose residents received the announcement. An empty response collection indicates that the announcement was sent to all properties at the time of its creation.

Required permission(s):

Communications > Announcements - View

path Parameters
announcementId
required
integer <int32>
query Parameters
orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve all emails

Retrieves all emails.

Required permission(s):

Communication > Emails - View

query Parameters
sentdatetimefrom
required
string <date-time>

Filters results to any emails whose sent date and time are greater than or equal to the specified value. The value must be formatted as YYYY-MM-DDTHH:MM:SSZ. The maximum date range is 90 days.

sentdatetimeto
required
string <date-time>

Filters results to any emails whose sent date and time are less than or equal to the specified value. The value must be formatted as YYYY-MM-DDTHH:MM:SSZ. The maximum date range is 90 days.

subject
string

Filters results to any email whose subject contains the specified value.

recipientnameoremail
string

Filters results to any email with a recipient whose name or email address contains the specified value.

senderuserid
integer <int32>

Filters results to only emails that were sent by the specified user identifier.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Send an email

Sends an email to one or more recipients using the specified email template.

Required permission(s):

Communication > Emails - View Edit

Request Body schema: application/json
TemplateId
required
integer <int32>

Unique identifier of the email template to use for the body of the email. Any tokens present in the template will be replaced based on the recipient(s) of the email. The following email templates cannot be used:

  • 1 (Tenant Statement)
  • 2 (Homeowner Statement)
  • 3 (Rental Owner Statement)
  • 123 (Association Tenant Invoice)
  • 124 (Rental Tenant Invoice)
Subject
required
string non-empty

Email subject.

IncludeAlternateEmails
required
boolean

Indicates whether to send the email to the recipient's primary and alternate email addresses.

ExcludeDelinquentRecipients
required
boolean

Indicates whether to exclude sending emails to association owners that are flagged as delinquent. This only applies to association recipients.

IncludeAssociationTenants
required
boolean

Indicates whether to include association tenants. Only applies to association properties.

PropertyIds
Array of integers <int32> [ items <int32 > ]

A list of association and/or rental property unique identifiers to send the email to. Cannot be populated if 'RecipientIds' is present.

RecipientIds
Array of integers <int32> [ items <int32 > ]

A list of individual unique identifiers to send the email to. Cannot be populated if 'PropertyIds' is present.

Responses

Request samples

Content type
application/json
{
  • "TemplateId": 0,
  • "Subject": "string",
  • "IncludeAlternateEmails": true,
  • "ExcludeDelinquentRecipients": true,
  • "IncludeAssociationTenants": true,
  • "PropertyIds": [
    ],
  • "RecipientIds": [
    ]
}

Response samples

Content type
application/json
{
  • "UserMessage": "string",
  • "ErrorCode": "string",
  • "Errors": [
    ]
}

Retrieve an email

Retrieves the content of an email. To retrieve the recipients of the email see the Retrieve all email recipients endpoint.

Required permission(s):

Communications > Emails - View

path Parameters
emailId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "SentDateTime": "2019-08-24T14:15:22Z",
  • "Subject": "string",
  • "Sender": {
    }
}

Retrieve all email recipients

Retrieves all email recipients.

Required permission(s):

Communications > Email - View

Optional Permissions:


The following permissions are optional, but results with a missing permission will be filtered out. Maintenance > Vendors - View In order to retrieve recipients that are Vendors, you must have this permission. Administration > Users - View In order to see recipients that are Staff, you must have this permission.

path Parameters
emailId
required
integer <int32>
query Parameters
orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve all phone logs

Retrieves all phone logs.

Required permission(s):

Communications > Timelines (Phone Logs) - View

query Parameters
fromdate
string <date>

Filters results to any phone log whose call date is greater than or equal to the specified value.

todate
string <date>

Filters results to any phone log whose call date is less than or equal to the specified value.

loggedbystaffuserids
Array of integers <int32> [ items <int32 > ]

Filters results to any phone log that was logged by staff user(s).

subject
string

Filters results to any phone log whose subject contains the specified value.

participantentityid
integer <int32>

Filters results to any phone logs that match the participant identifier. Note, if a value is provided in this field the ParticipantEntityType must also be provided.

participantentitytype
string
Enum: "Vendor" "RentalOwner" "RentalTenant" "AssociationOwner"

Filters results to any phone log with the specified participant type. This field is required if a value is provided for the ParticipantEntityId field.

unitagreementid
integer <int32>

Filters results to any phone log with the specified unit agreement identifier. Note, if a value is provided in this field the UnitAgreementType must also be provided.

unitagreementtype
string
Enum: "Lease" "OwnershipAccount"

Filters results to any phone log with the specified unit agreement type. This field is required if a value is provided for the UnitAgreementId field.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a phone log

Creates a phone log.

Required permission(s):

Communications > Timelines (Phone Logs) - View Edit

Request Body schema: application/json
required
object

The participant in the phone call.

Subject
required
string non-empty

Subject of the phone call. This value is restricted to a maximum of 255 characters.

Description
required
string non-empty

Description of the phone call. This value is restricted to a maximum of 65,535 characters.

CallDateTime
required
string <date-time>

The date and time the call took place. Time of the phone call must be UTC. Example format: "2021-01-26T13:59:15Z"

Responses

Request samples

Content type
application/json
{
  • "Participant": {
    },
  • "Subject": "string",
  • "Description": "string",
  • "CallDateTime": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Participant": {
    },
  • "LoggedByStaffUser": {
    },
  • "Subject": "string",
  • "Description": "string",
  • "CallDateTime": "2019-08-24T14:15:22Z"
}

Retrieve a phone log

Retrieves a specific phone log.

Required permission(s):

Communications > Timelines (Phone Logs) - View

path Parameters
phoneLogId
required
integer <int32>

The phone log identifier

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Participant": {
    },
  • "LoggedByStaffUser": {
    },
  • "Subject": "string",
  • "Description": "string",
  • "CallDateTime": "2019-08-24T14:15:22Z"
}

Update a phone log

Update a phone log

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

Required permission(s):

Communications > Timelines (Phone Logs) - View Edit

path Parameters
phoneLogId
required
integer <int32>

The phone log identifier.

Request Body schema: application/json
Subject
required
string non-empty

Subject of the phone call. This value is restricted to a maximum of 255 characters.

Description
required
string non-empty

Description of the phone call. This value is restricted to a maximum of 65,535 characters.

CallDateTime
required
string <date-time>

The date and time the call took place. Time of the phone call must be UTC. Example format: "2021-01-26T13:59:15Z"

Responses

Request samples

Content type
application/json
{
  • "Subject": "string",
  • "Description": "string",
  • "CallDateTime": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Participant": {
    },
  • "LoggedByStaffUser": {
    },
  • "Subject": "string",
  • "Description": "string",
  • "CallDateTime": "2019-08-24T14:15:22Z"
}

Retrieve all communication templates

Retrieves all mailing and email templates. A template is a tool in Buildium that allows you to create "mail merge" templates for emails and postal mailings to easily send common messages to residents, rental owners and vendors.

Required permission(s):

Communications > Mailing Templates - View

Optional Permissions:

Rentals > Tenants - View
Rentals > Property Rental owners - View
Associations > Association owners and tenants - View
Maintenance > Vendors - View
Rentals > Applicants - View

query Parameters
orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve a communication template

Retrieves a communication template. A template is a tool in Buildium that allows you to create "mail merge" templates for emails and postal mailings to easily send common messages to residents, rental owners and vendors.

Required permission(s):

Communications > Mailing Templates - View

Optional Permissions:

Rentals > Tenants - View
Rentals > Property Rental owners - View
Associations > Association owners and tenants - View
Maintenance > Vendors - View
Rentals > Applicants - View

path Parameters
templateId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Name": "string",
  • "Description": "string",
  • "RecipientType": "Tenants"
}

Files

Buildium offers file and document storage that allows you to upload a variety of content types. Files can be associated to specific entities in Buildium such as properties, units, leases, tenants and more.

Files can be assigned categories when they are uploaded in Buildium making them easier to find later on when you want to retrieve them.

Retrieve all files

Retrieves a list of files that exist within the customer account. Note this endpoint will only return file metadata. To download files make requests to the Download File endpoint.

Required permission(s):

Documents > Files - View

query Parameters
entityid
integer <int32>

Filters results to any file associated with the specified entity identifier. This filter is used in conjunction with the EntityType field which must be set to the type of entity this identifier references.

entitytype
string
Enum: "Account" "Association" "AssociationOwner" "AssociationUnit" "Lease" "OwnershipAccount" "PublicAsset" "Rental" "RentalOwner" "RentalUnit" "Tenant" "Vendor"

Specifies the type of entity that EntityId refers to. This field is required if EntityId is specified.

categoryid
integer <int32>

Filters results to any file associated with the specified category identifier.

titleordescription
string

Filters results to files whose title or description contains the specified value.

uploadedfrom
string <date>

Filters results to any files that were updated on or after the specified date. The value must be formatted as YYYY-MM-DD.

uploadedto
string <date>

Filters results to any files that were updated on or before the specified date. The value must be formatted as YYYY-MM-DD.

physicalfilenames
Array of strings

Filters results to any files with a PhysicalFileNameexactly matching one of the provided values.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve a file

Retrieves the file metadata for a specific file. Note this endpoint will only return file metadata. To download files make requests to the Download File endpoint.

Required permission(s):

Documents > Files - View

path Parameters
fileId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "FileEntity": {
    },
  • "CategoryId": 0,
  • "Title": "string",
  • "Description": "string",
  • "PhysicalFileName": "string",
  • "Size": 0,
  • "ContentType": "string",
  • "UploadedDateTime": "2019-08-24T14:15:22Z"
}

Update a file

Updates a metadata of the file.

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

Required permission(s):

Documents > Files - View Edit

path Parameters
fileId
required
integer <int32>
Request Body schema: application/json
Title
required
string non-empty

The title of the file. The value cannot exceed 255 characters.

Description
string

A description of the file. The value cannot exceed 65000 characters.

CategoryId
required
integer <int32>

The category identifier to assign to this file.

Responses

Request samples

Content type
application/json
{
  • "Title": "string",
  • "Description": "string",
  • "CategoryId": 0
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "FileEntity": {
    },
  • "CategoryId": 0,
  • "Title": "string",
  • "Description": "string",
  • "PhysicalFileName": "string",
  • "Size": 0,
  • "ContentType": "string",
  • "UploadedDateTime": "2019-08-24T14:15:22Z"
}

Download a file

Downloading a file requires making two API requests. The first request to /v1/files/{fileId}/downloadrequest will return a secure URL that can be used to download the file contents. Note the download URL is transient and will expire after 5 minutes.

Required permission(s):

Documents > Files - View

path Parameters
fileId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "DownloadUrl": "string"
}

Upload a file

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

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

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

Step 2 - Upload the file binary
Uploading the file binary will require using the response from step 1 to form a POST request to the Buildium file provider. Follow these steps to create the request:

  1. Form a POST request using the value of the BucketUrl property as the URL.

  2. Set the Content-Type header to multipart/form-data.

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

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

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

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

    NOTE: The file identifier is not generated in this response. To retrieve the file identifier, call /v1/files and pass the PhysicalFileName value received from the response of this endpoint into the physicalfilenames query parameter.

    Required permission(s):

    Documents > Files - View Edit
Request Body schema: application/json
EntityType
required
string
Enum: "Account" "Association" "AssociationOwner" "AssociationUnit" "Lease" "OwnershipAccount" "PublicAsset" "Rental" "RentalOwner" "RentalUnit" "Tenant" "Vendor"

Specifies the type of entity that EntityId refers to.

EntityId
integer <int32>

Unique identified of the Entity Type.

FileName
required
string non-empty

Name of file being uploaded. The value can not exceed 255 characters.

Title
required
string non-empty

Title of file upload. The value can not exceed 255 characters.

Description
string

Description of file upload. The value can not exceed 1000 characters.

CategoryId
required
integer <int32>

Unique identified of file category.

Responses

Request samples

Content type
application/json
{
  • "EntityType": "Account",
  • "EntityId": 0,
  • "FileName": "string",
  • "Title": "string",
  • "Description": "string",
  • "CategoryId": 0
}

Response samples

Content type
application/json
{
  • "BucketUrl": "string",
  • "FormData": {
    },
  • "PhysicalFileName": "string"
}

Retrieve file share settings

Retrieves a file's share settings. Note, that the response JSON schema includes share setting fields for all file entity types, however only fields that pertain to the queried file entity type will be populated. For example, if a file of entity type Rental is retrieved only the fields in the Rental section of the response will have values.

Required permission(s):

Documents > Files - View

path Parameters
fileId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Account": {
    },
  • "Rental": {
    },
  • "RentalUnit": {
    },
  • "Lease": {
    },
  • "Tenant": {
    },
  • "RentalOwner": {
    },
  • "Association": {
    },
  • "AssociationUnit": {
    },
  • "OwnershipAccount": {
    },
  • "AssociationOwner": {
    },
  • "Vendor": {
    },
  • "Committee": {
    }
}

Update file share settings

Updates a file's share settings. Note, can only update a file's share settings based on the file's entity type (ie: If the file belongs to a rental property, you can only update the rental file sharing settings). The response payload contains file share setting values for all file entity types, but the relevant setting values correlate to the file's entity type.

Required permission(s):

Documents > Files - View Edit

path Parameters
fileId
required
integer <int32>
Request Body schema: application/json
object

Account file sharing settings. Note, can only update this property if the file is an account's file.

object

Rental file sharing settings. Note, can only update this property if the file is a rental's file.

object

Rental unit file sharing settings. Note, can only update this property if the file is a rental unit's file.

object

Lease file sharing settings. Note, can only update this property if the file is a lease's file.

object

Tenant file sharing settings. Note, can only update this property if the file is a tenant's file.

object

Rental owner file sharing settings. Note, can only update this property if the file is a rental owner's file.

object

Association file sharing settings. Note, can only update this property if the file is an association's file.

object

Association unit file sharing settings. Note, can only update this property if the file is an association unit's file.

object

Ownership account file sharing settings. Note, can only update this property if the file is an ownership account's file.

object

Association owner file sharing settings. Note, can only update this property if the file is an association owner's file.

object

Vendor file sharing settings. Note, can only update this property if the file is a vendor's file.

object

Committee file sharing settings. Note, can only update this property if the file is a committee's file.

Responses

Request samples

Content type
application/json
{
  • "Account": {
    },
  • "Rental": {
    },
  • "RentalUnit": {
    },
  • "Lease": {
    },
  • "Tenant": {
    },
  • "RentalOwner": {
    },
  • "Association": {
    },
  • "AssociationUnit": {
    },
  • "OwnershipAccount": {
    },
  • "AssociationOwner": {
    },
  • "Vendor": {
    },
  • "Committee": {
    }
}

Response samples

Content type
application/json
{
  • "Account": {
    },
  • "Rental": {
    },
  • "RentalUnit": {
    },
  • "Lease": {
    },
  • "Tenant": {
    },
  • "RentalOwner": {
    },
  • "Association": {
    },
  • "AssociationUnit": {
    },
  • "OwnershipAccount": {
    },
  • "AssociationOwner": {
    },
  • "Vendor": {
    },
  • "Committee": {
    }
}

Retrieve all categories

Retrieves a list of file categories.

Required permission(s):

Documents > Files - View

query Parameters
orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a category

Creates a file category.

Required permission(s):

Documents > Files - View Edit

Request Body schema: application/json
Name
required
string non-empty

Name of the file category. The value cannot exceed 100 characters.

Responses

Request samples

Content type
application/json
{
  • "Name": "string"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Name": "string",
  • "IsEditable": true
}

Retrieve a category

Retrieves a specific file category.

Required permission(s):

Documents > Files - View

path Parameters
fileCategoryId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Name": "string",
  • "IsEditable": true
}

Update a category

Updates a file category. Note that file categories where IsEditable is false can not be updated.

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

Required permission(s):

Documents > Files - View Edit

path Parameters
fileCategoryId
required
integer <int32>
Request Body schema: application/json
Name
required
string non-empty

Name of the file category. The value cannot exceed 100 characters.

Responses

Request samples

Content type
application/json
{
  • "Name": "string"
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Name": "string",
  • "IsEditable": true
}

Property Groups

A property group is a collection of associations and/or rental properties in Buildium. Property groups are typically used as filter criteria to define which properties to return in a query. Common uses include: grouping properties by a region or a business unit.

Retrieve all property groups

Retrieves all property groups.

Required permission(s):

Rentals > Rental properties and units or - View
Associations > Associations and units - View

query Parameters
propertyids
Array of integers <int32> [ items <int32 > ]

Filters results to property groups that contain any of the specified property ids.

nameordescription
string

Filters results to any property group whose name or description contains the specified value.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a property group

Creates a property group.

Required permission(s):

Rentals > Rental properties and units or - View Edit Associations > Associations and units - View Edit

Request Body schema: application/json
Name
required
string non-empty

Property group name. The name can not exceed 127 characters.

Description
string

Description of the property group. The description can not exceed 1000 characters.

PropertyIds
required
Array of integers <int32> [ items <int32 > ]

A list of association and/or rental property unique identifiers to assign to the property group. Property groups cannot be created using inactive associations and/or rental properties.

Responses

Request samples

Content type
application/json
{
  • "Name": "string",
  • "Description": "string",
  • "PropertyIds": [
    ]
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Name": "string",
  • "Description": "string",
  • "Properties": [
    ],
  • "CreatedByUser": {
    }
}

Retrieve a property group

Retrieves a property group.

Required permission(s):

Rentals > Rental properties and units or - View Associations > Associations and units - View

path Parameters
propertyGroupId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Name": "string",
  • "Description": "string",
  • "Properties": [
    ],
  • "CreatedByUser": {
    }
}

Update a property group

Updates a property group.

Required permission(s):

Rentals > Rental properties and units or - View Edit Associations > Associations and units - View Edit

path Parameters
propertyGroupId
required
integer <int32>
Request Body schema: application/json
Name
required
string non-empty

Property group name. The name can not exceed 127 characters.

Description
string

Description of the property group. The description can not exceed 1000 characters.

PropertyIds
required
Array of integers <int32> [ items <int32 > ]

A list of association and/or rental property unique identifiers to assign to the property group. Property groups cannot be updated using inactive associations and/or rental properties.

Responses

Request samples

Content type
application/json
{
  • "Name": "string",
  • "Description": "string",
  • "PropertyIds": [
    ]
}

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Name": "string",
  • "Description": "string",
  • "Properties": [
    ],
  • "CreatedByUser": {
    }
}

Administration

Administration resources that allow for user management and Buildium account level settings.

Retrieve all users

Retrieves a list of users.

Required permission(s):

Administration > Users - View

query Parameters
roleids
Array of integers <int32> [ items <int32 > ]

Describes the role of the user.

usertypes
Array of strings
Items Enum: "Staff" "RentalOwner" "Vendor"

Describes the user type of the user.

status
string
Enum: "Inactive" "Active"

Filters results by the status of the user. If no status is specified both active and inactive staff members will be returned.

name
string

Filters results to only records whose name contains the specified value.

email
string

Filters results to only records whose email contains the specified value.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve a user

Retrieve a specific user.

Required permission(s):

Administration > Users - View

path Parameters
userId
required
integer <int32>

The user identifier.

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "UserTypes": [
    ],
  • "IsActive": true,
  • "LastLogin": "2019-08-24T14:15:22Z",
  • "FirstName": "string",
  • "LastName": "string",
  • "CompanyName": "string",
  • "Email": "string",
  • "AlternateEmail": "string",
  • "PhoneNumbers": [
    ],
  • "UserRole": {
    },
  • "IsCompany": true
}

Retrieve all user roles

Retrieves a list of user roles.

Required permission(s):

Administration > User Roles - View

query Parameters
orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve a user role

Retrieve a specific user role.

Required permission(s):

Administration > User Roles - View

path Parameters
userRoleId
required
integer <int32>

The user role identifier.

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "Name": "string",
  • "Description": "string",
  • "NumberOfUsers": 0
}

Retrieve account info

Retrieves information related to the Buildium account.

Required permission(s):

Administration > Account Information - View

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "CompanyName": "string",
  • "Url": "string",
  • "Contact": {
    },
  • "AccountingSettings": {
    }
}

Retrieve accounting lock periods

Retrieves accounting lock periods.

Required permission(s):

Administration > Application Settings - View

Responses

Response samples

Content type
application/json
{
  • "Global": {
    },
  • "Overrides": [
    ],
  • "FinancialAdministratorUserIds": [
    ]
}

Retrieve the partial payment settings for residents

Retrieves the partial payment settings for residents.

Required permission(s):

Administration > Application Settings - View

Responses

Response samples

Content type
application/json
{
  • "RequirePaymentsInFull": true
}

Update the partial payment settings for residents

Updates the partial payment settings for residents.

Required permission(s):

Administration > Application Settings - View Edit

Request Body schema:

Represents the structure of the data that can be provided to a JSON patch document as path values via JSON pointer syntax.

RequirePaymentsInFull
boolean

Whether or not the ownership account payments are required in full.

Responses

Request samples

Content type
[
  • {
    },
  • {
    },
  • {
    },
  • {
    }
]

Response samples

Content type
application/json
{
  • "RequirePaymentsInFull": true
}

Client Leads

Client lead resources providing access to leads that come from All Property Management. These endpoints will only return data if your Buildium account is linked to an account in All Property Management. This data is not available in sandbox accounts.

Retrieve all client leads

Retrieves all client leads

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

Required permission(s):

Administration > All Property Management - View

query Parameters
leadstatuses
Array of strings
Items Enum: "Unknown" "New" "Contacting" "Qualifying" "Closing" "ClosedWon" "ClosedLost"

Filters results to any client leads that are in one of the given statuses.

propertytypes
Array of strings
Items Enum: "SingleHomeUpToThreeHundredThousand" "SingleHomeThreeHundredToFiveHundredThousand" "SingleHomeFiveHundredThousandToOneMillion" "SingleHomeOverOneMillion" "MultiFamilyTwoToFourUnits" "MultiFamilyFiveToNineteenUnits" "MultiFamilyTwentyToFortyNineUnits" "MultiFamilyOverOneHundredUnits" "OfficeLessThanTenThousandSqFt" "OfficeTenThousandToOneHundredThousandSqFt" "OfficeOverOneHundredThousandSqFt" "RetailLessThanTenThousandSqFt" "RetailTenThousandToOneHundredThousandSqFt" "RetailOverOneHundredThousandSqFt" "LightManufacturingUpToOneHundredThousandSqFt" "LightManufacturingOverOneHundredThousandSqFt" "WarehouseUpToOneHundredThousandSqFt" "WarehouseOverOneHundredThousandSqFt" "VacationOneToTwoUnits" "VacationOverThreeUnits" "ParkingGarage" "OtherAssociation" "BiotechMissionCritical" "HOATwoToFortyNineUnits" "HOAFiftyToNinetyNineUnits" "HOAOverOneHundredUnits" "COATwoToFortyNineUnits" "COAFiftyToNinetyNineUnits" "COAOverOneHundredUnits" "MobileHomeCommunity"

Filters results to any client leads that have a property in one of the given property types.

datereceivedfrom
string <date-time>

Filters results to any client leads that were received on or after the specified date. The value must be formatted as YYYY-MM-DD.

datereceivedto
string <date-time>

Filters results to any client leads that were received on or before the specified date. The value must be formatted as YYYY-MM-DD.

includecreditedleads
boolean

This will also return client leads that were credited. By default credited leads will not be returned.

orderby
string

orderby indicates the field(s) and direction to sort the results in the response. See Bulk Request Options for more information.

offset
integer

offset indicates the position of the first record to return. The offset is zero-based and the default is 0.

limit
integer

limit indicates the maximum number of results to be returned in the response. limit can range between 1 and 1000 and the default is 50.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve a client lead

Retrieves a specific client lead

Required permission(s):

Administration > All Property Management - View

path Parameters
clientLeadId
required
integer <int32>

Responses

Response samples

Content type
application/json
{
  • "Id": 0,
  • "DateReceived": "2019-08-24T14:15:22Z",
  • "Name": "string",
  • "Email": "string",
  • "PhoneNumber": "string",
  • "PricePaid": 0,
  • "Address": {
    },
  • "PropertyType": "SingleHomeUpToThreeHundredThousand",
  • "Comments": "string",
  • "LeadStatus": "Unknown",
  • "CreditRequest": {
    }
}