# res:harmonics API

The Res:Harmonics Public API provides seamless access to powerful tools for managing and automating property operations. Designed for developers and businesses, the API enables integration with Res:Harmonics’ platform to manage bookings, availability, rates, and guest experiences in real-time. With comprehensive documentation and robust endpoints, users can customise workflows, synchronise systems, and build tailored solutions to enhance operational efficiency. Whether you’re running serviced apartments, Build-to-Rent schemes, or co-living spaces, the Res:Harmonics API is your gateway to streamlined property management.

Version: 3.0.16
License: License of API

## Servers

Testing API
```
https://apiv3.resharmonics-dev.com
```

Production API
```
https://apiv3.rerumapp.uk
```

## Security

### OAuth2

Testing API - OAuth2 security scheme for API access. Use client credentials to obtain a token.

Type: oauth2

### X-Auth-Token

Type: apiKey
In: header
Name: X-Auth-Token

## Download OpenAPI description

[res:harmonics API](https://apidocs.resharmonics.com/_bundle/apis/resharmonics-pms.yaml)

## Access Groups

Access Group entities from the Property Management System (PMS), used to map access groups from integrated access control systems, providing detailed information and management capabilities for access control within buildings and facilities.

### Retrieve list of Access Groups

 - [GET /api/v3/accessGroups](https://apidocs.resharmonics.com/apis/resharmonics-pms/access-groups/listallaccessgroups.md): Retrieve list of Access Groups based on search parameters such as building ID and name. Supports pagination.

### Create Access Group

 - [POST /api/v3/accessGroups](https://apidocs.resharmonics.com/apis/resharmonics-pms/access-groups/createaccessgroup.md): Create a new Access Group within the Property Management System (PMS). This endpoint allows you to add a new access group, which can be used to manage access control within buildings and facilities.

### Retrieve Access Group

 - [GET /api/v3/accessGroups/{id}](https://apidocs.resharmonics.com/apis/resharmonics-pms/access-groups/getunitaccessgroupbyid_1.md): Retrieve an Access Group by Id. This endpoint allows you to fetch detailed information about a specific Access Group using its unique identifier. The response includes all relevant details of the Access Group.

### Update Access Group

 - [PUT /api/v3/accessGroups/{id}](https://apidocs.resharmonics.com/apis/resharmonics-pms/access-groups/updateaccessgroup.md): Update an Access Group within the Property Management System (PMS). The Access Group must exist to be updated. This endpoint allows you to modify the details of an existing access group, ensuring that access control information is kept up-to-date.

## Activities

Activities are tasks created in the PMS

### Retrieve a list of all activities.

 - [GET /api/v3/activities](https://apidocs.resharmonics.com/apis/resharmonics-pms/activities/getnewactivities.md)

### Retrieve the specified activity note

 - [GET /api/v3/activities/notes/{id}](https://apidocs.resharmonics.com/apis/resharmonics-pms/activities/getactivitynote.md)

### Retrieve an activity specified by activity id.

 - [GET /api/v3/activities/{id}](https://apidocs.resharmonics.com/apis/resharmonics-pms/activities/retrieveactivity.md)

### Retrieve the notes for an activity specified by activity identifier.

 - [GET /api/v3/activities/{id}/notes](https://apidocs.resharmonics.com/apis/resharmonics-pms/activities/getactivitynotes.md)

### Create a note on an activity specified by activity identifier.

 - [POST /api/v3/activities/{id}/notes](https://apidocs.resharmonics.com/apis/resharmonics-pms/activities/createactivitynotes.md)

### Update the status of an activity specified by activity id.

 - [PATCH /api/v3/activities/{id}/status](https://apidocs.resharmonics.com/apis/resharmonics-pms/activities/updateactivitystatus_1.md)

## Area

Area Entity from the Property Management System (PMS). Areas are part of the geography of the PMS and are used to define the location of properties, including their hierarchical structure within cities and regions.

### Retrieve list of areas

 - [GET /api/v3/areas](https://apidocs.resharmonics.com/apis/resharmonics-pms/area/listallareas.md): Retrieve a list of areas within the Property Management System (PMS). This endpoint allows you to fetch details about various geographical areas, including their hierarchical structure within cities and regions. Areas are used to define the location of properties and are essential for organizing and managing properties effectively within the PMS.

### Create a new area

 - [POST /api/v3/areas](https://apidocs.resharmonics.com/apis/resharmonics-pms/area/createarea.md): Creates a new area within the Property Management System (PMS) with the provided details. Areas help in organizing properties, defining operational zones, and generating location-based insights. This endpoint is useful for adding new areas to the system for better management and reporting. The request body should contain the necessary details for the new area. If the creation is successful, the newly created area's details will be returned. In case of an unexpected system error, a 500 Internal Server Error will be triggered.

### Retrieve an area by Id

 - [GET /api/v3/areas/{id}](https://apidocs.resharmonics.com/apis/resharmonics-pms/area/getareabyid.md): Retrieve the details of a specific area within the Property Management System (PMS) using its unique identifier. This endpoint allows you to fetch comprehensive information about a particular geographical area, including its hierarchical structure within cities and regions. Areas are essential for organizing and managing properties effectively within the PMS.

### Update an existing area

 - [PUT /api/v3/areas/{id}](https://apidocs.resharmonics.com/apis/resharmonics-pms/area/updatearea.md): Updates an existing area within the Property Management System (PMS) with the provided details. Areas help in organizing properties, defining operational zones, and generating location-based insights. This endpoint is useful for modifying existing areas to reflect changes in geographical areas or operational zones. The request body should contain the updated details for the area. If the specified city ID does not exist, a 404 Not Found error will be returned. In case of an unexpected system error, a 500 Internal Server Error will be triggered.

### Delete a area by Id

 - [DELETE /api/v3/areas/{id}](https://apidocs.resharmonics.com/apis/resharmonics-pms/area/deleteareabyid.md): Deletes a specific area within the Property Management System (PMS) using its unique ID. Areas help in organizing properties, defining operational zones, and generating location-based insights. This endpoint is useful for removing areas that are no longer relevant or needed in the system. The area will be marked as deleted rather than permanently removed to maintain historical data integrity. If the specified area ID does not exist, a 404 Not Found error will be returned. In case of an unexpected system error, a 500 Internal Server Error will be triggered.

## Availabilities

Used to search for availability and pricing, including chargeable for specific dates. This endpoint allows users to query the availability of properties within the property management system (PMS), taking into account various parameters such as date ranges, unit types, guest counts, and promotional codes. It provides detailed information on available units, their rates, and any applicable restrictions or conditions.

### Retrieve real-time room availability

 - [GET /api/v3/availabilities](https://apidocs.resharmonics.com/apis/resharmonics-pms/availabilities/availabilitysearch.md): Retrieve real-time room availability and corresponding pricing based on specified criteria such as date range, room type, occupancy, and applicable rate plans

### Retrieve intervals of availability

 - [GET /api/v3/availabilities/unit/{unitId}/intervals](https://apidocs.resharmonics.com/apis/resharmonics-pms/availabilities/findavailabilityintervalsperunit.md): Retrieve intervals of availability for a unit specified by unit id for a given date range. If no date range is specified, the next 365 days will be used. This endpoint is designed to provide a summary of availability over a period,

## Billing Frequencies

Billing Frequency entity from the Property Management System (PMS), used to define the intervals at which billing occurs. This helps in organizing and managing financial operations efficiently within the PMS. Billing frequencies are essential for ensuring timely and accurate billing processes, which are crucial for maintaining financial stability and customer satisfaction within the PMS.

### Retrieve all billing frequencies

 - [GET /api/v3/billingFrequencies](https://apidocs.resharmonics.com/apis/resharmonics-pms/billing-frequencies/getbillingfrequencies.md): Retrieve a list of all billing frequencies within the Property Management System (PMS). This endpoint allows you to fetch details about different billing intervals, which help in organizing and managing various financial operations efficiently within the PMS.

### Retrieve billing frequency with specified id

 - [GET /api/v3/billingFrequencies/{id}](https://apidocs.resharmonics.com/apis/resharmonics-pms/billing-frequencies/getbillingfrequencybyid.md): Retrieve the details of a specific billing frequency within the Property Management System (PMS) using its unique identifier. This endpoint allows you to fetch comprehensive information about a particular billing interval, including its characteristics and associated behaviors. Billing frequencies are essential for organizing and managing various financial operations efficiently within the PMS.

## Booking Terms

Booking Terms entity from the Property Management System (PMS), used to define the payment and settlement conditions associated with bookings. Booking terms help in establishing clear guidelines for payment schedules, deposit requirements, and settlement processes, ensuring smooth financial transactions and management of reservations within the PMS.

### Retrieve all booking terms

 - [GET /api/v3/bookingTerms](https://apidocs.resharmonics.com/apis/resharmonics-pms/booking-terms/getbookingterms.md): Retrieve a list of all booking terms within the Property Management System (PMS). This endpoint allows you to fetch details about different booking terms, which help in defining payment and settlement conditions associated with bookings, ensuring smooth financial transactions and management of reservations within the PMS.

### Retrieve booking terms with specified id

 - [GET /api/v3/bookingTerms/{id}](https://apidocs.resharmonics.com/apis/resharmonics-pms/booking-terms/getbookingtermsbyid.md): Retrieve the details of specific booking terms within the Property Management System (PMS) using its unique identifier. This endpoint allows you to fetch comprehensive information about a particular set of payment and settlement conditions, including their characteristics and associated behaviors. Booking terms are essential for defining how payments, deposits, and settlements are handled for reservations within the PMS.

## Booking Types

Booking Type entity from the Property Management System (PMS), used to categorize bookings and define different behaviors. Booking types help in organizing and managing various booking categories within the PMS, ensuring efficient handling of reservations and associated operations.

### Retrieve all booking types

 - [GET /api/v3/bookingTypes](https://apidocs.resharmonics.com/apis/resharmonics-pms/booking-types/getbookingtypes.md): Retrieve a list of all booking types within the Property Management System (PMS). This endpoint allows you to fetch details about different booking categories, which help in organizing and managing various reservations and associated operations efficiently within the PMS.

### Retrieve booking type with specified id

 - [GET /api/v3/bookingTypes/{id}](https://apidocs.resharmonics.com/apis/resharmonics-pms/booking-types/getbookingtypebyid.md): Retrieve the details of a specific booking type within the Property Management System (PMS) using its unique identifier. This endpoint allows you to fetch comprehensive information about a particular booking category, including its characteristics and associated behaviors. Booking types are essential for organizing and managing various reservations and operations efficiently within the PMS.

## Bookings

Bookings entity from the PMS, the booking is the main entity for a reservation, it contains all the information about the reservation, combined with a list of room stays which represent the individual stays in the units

### Search for bookings

 - [GET /api/v3/bookings](https://apidocs.resharmonics.com/apis/resharmonics-pms/bookings/listallbookings.md): Search for bookings via a variety of optional filters within the Property Management System (PMS). This endpoint allows you to filter bookings based on date ranges, statuses, unit IDs, booking contact IDs, and other criteria, providing a flexible way to retrieve specific booking information as needed.

### Create a booking/enquiry

 - [POST /api/v3/bookings](https://apidocs.resharmonics.com/apis/resharmonics-pms/bookings/createbooking.md): This endpoint is used to create a new booking with room stays in a ENQUIRY status. If 'reserveForMinutes' is specified the availability will be held for the number of minutes specified. Once the booking is created use the 'updateStatuses' endpoint to change the status to PENDING, CONFIRMED or CHECKED_IN.

### Create a payment record against a booking.

 - [POST /api/v3/bookings/{bookingId}/payments](https://apidocs.resharmonics.com/apis/resharmonics-pms/bookings/reconcilebookingpayments.md): Creates a payment record against a booking. The payment record will be reconciled against any outstanding invoices. Where necessary invoices will be auto posted. The payDueBefore parameter can be used to specify invoices up to a certain date to be paid. If there is insufficient outstanding on invoices, the payment is rejected.

### Update fields on a booking. Please check BookingUpdateDTO for list of fields which can be updated

 - [PATCH /api/v3/bookings/{bookingId}/update](https://apidocs.resharmonics.com/apis/resharmonics-pms/bookings/updatebookinggeneral.md): This endpoint allows update of various fields associated with a specific booking within the Property Management System (PMS).

### Update roomstay statuses on a specified booking.

 - [PATCH /api/v3/bookings/{bookingId}/updateStatuses](https://apidocs.resharmonics.com/apis/resharmonics-pms/bookings/updatebookingstatus.md): This endpoint allows you to update the statuses of room stays associated with a specific booking within the Property Management System (PMS). Room stay statuses can include various states such as CONFIRMED, CHECKED_IN, CHECKED_OUT, etc. Updating these statuses helps in managing the booking lifecycle and ensuring accurate tracking of room occupancy and availability.

### Retrieve a booking and its associated data.

 - [GET /api/v3/bookings/{id}](https://apidocs.resharmonics.com/apis/resharmonics-pms/bookings/getbookingdtobyidentifier.md): Retrieve detailed information about a specific booking within the Property Management System (PMS). This includes all associated data such as room stays, invoices, notes, and tags. This endpoint ensures comprehensive access to all relevant booking details, facilitating efficient management and tracking of reservations.

### Get custom fields for a booking

 - [GET /api/v3/bookings/{id}/customFields](https://apidocs.resharmonics.com/apis/resharmonics-pms/bookings/getcustomfieldsforbooking.md): Retrieve all custom fields associated with a specific booking record in the booking module of the PMS. The response includes a list of custom fields, each containing details such as field name, type, and value. This endpoint is useful for accessing additional information stored in custom fields that are not part of the standard booking attributes.

### Retrieve the financial summary for a specified booking

 - [GET /api/v3/bookings/{id}/financialSummary](https://apidocs.resharmonics.com/apis/resharmonics-pms/bookings/getbookingpricebreakdown.md): Retrieve a detailed financial summary for a specific booking within the Property Management System (PMS). This includes all charges, payments, and adjustments related to the booking, providing a comprehensive overview of the booking's financial status. This endpoint ensures that all financial transactions linked to the booking are accessible, facilitating efficient financial management and tracking.

### Retrieve list of all notes or a specific note for specified booking

 - [GET /api/v3/bookings/{id}/notes](https://apidocs.resharmonics.com/apis/resharmonics-pms/bookings/getnotesbybookingid.md): Retrieve a comprehensive list of all notes or a specific note associated with a specified booking within the Property Management System (PMS). Notes provide detailed information about the booking, including comments, updates, and additional context. This endpoint ensures that all notes linked to the booking are accessible, facilitating efficient management and tracking of reservations.

### Record a note against a specified booking

 - [POST /api/v3/bookings/{id}/notes](https://apidocs.resharmonics.com/apis/resharmonics-pms/bookings/createbookingnote.md): Record a note against a specified booking within the Property Management System (PMS). This endpoint allows you to add comments, updates, or additional information related to a booking. Notes provide detailed context and history for the booking, ensuring comprehensive tracking and management of reservations.

### Retrieve the prices for a booking

 - [GET /api/v3/bookings/{id}/pricing](https://apidocs.resharmonics.com/apis/resharmonics-pms/bookings/retrievepricing.md): Retrieve price information about a specific booking within the Property Management System (PMS). This will provide the booking total and due prices with Gross, Net and Vat.

### Retrieve list of all room stays for specified booking

 - [GET /api/v3/bookings/{id}/roomStays](https://apidocs.resharmonics.com/apis/resharmonics-pms/bookings/getroomstaysbybookingid.md): Retrieve a comprehensive list of all room stays associated with a specific booking within the Property Management System (PMS). This endpoint provides detailed information about each room stay, including the status, duration, and associated unit. It ensures that all room stays linked to the booking are accessible, facilitating efficient management and tracking of reservations.

### Retrieve list of all invoices for specified booking

 - [GET /api/v3/bookings/{id}/salesInvoices](https://apidocs.resharmonics.com/apis/resharmonics-pms/bookings/getinvoicesbybookingid.md): Retrieve a comprehensive list of all invoices associated with a specific booking within the Property Management System (PMS). This endpoint provides detailed financial information related to the booking, including all charges, payments, and adjustments. It ensures that all financial transactions linked to the booking are accessible, facilitating efficient financial management and tracking.

### Retrieve list of all tags for specified booking

 - [GET /api/v3/bookings/{id}/tags](https://apidocs.resharmonics.com/apis/resharmonics-pms/bookings/gettagsbybookingid.md): Retrieve a comprehensive list of all tags associated with a specific booking within the Property Management System (PMS). Tags provide additional metadata and categorization for bookings, allowing for better organization and filtering. This endpoint ensures that all tags linked to the booking are accessible, facilitating efficient management and tracking of reservations.

## Building

Represents the Building entity within the Property Management System (PMS). This includes comprehensive property details such as the building's name, address, facilities, operational attributes, and any associated metadata. The Building entity is essential for managing and integrating property data, ensuring accurate and up-to-date information for operational and administrative purposes.

### Retrieve list of buildings

 - [GET /api/v3/buildings](https://apidocs.resharmonics.com/apis/resharmonics-pms/building/listallbuildings.md): Retrieve a list of all buildings managed within the PMS. The response includes essential information for each building, such as its unique ID, name, address, facilities, and operational status. Optional query parameters can be included to refine the results, such as filtering by city, operational status, or specific attributes. This endpoint is particularly useful for displaying a catalogue of properties, managing building records, or integrating building data with external systems.

### Create a new building

 - [POST /api/v3/buildings](https://apidocs.resharmonics.com/apis/resharmonics-pms/building/createbuilding.md): Create a new building record in the property module of the PMS. The request body should contain the necessary details for the building, such as name, address, facilities, and operational attributes. Upon successful creation, the response will include the newly created building's details.

### Retrieve a building by ID

 - [GET /api/v3/buildings/{id}](https://apidocs.resharmonics.com/apis/resharmonics-pms/building/getbuildingbyid.md): Fetch detailed information about a specific building within the PMS using its unique identifier. The response includes details such as the building's name, address, facilities, operational status, and any associated metadata. This endpoint is typically used to view or manage property-specific information.

### Update an existing building

 - [PUT /api/v3/buildings/{id}](https://apidocs.resharmonics.com/apis/resharmonics-pms/building/updatebuilding.md): Update an existing building record in the property module of the PMS. The request body should contain the updated details for the building, such as name, address, facilities, and operational attributes. Upon successful update, the response will include the updated building's details.

### Delete a building by ID

 - [DELETE /api/v3/buildings/{id}](https://apidocs.resharmonics.com/apis/resharmonics-pms/building/deletebuildingbyid.md): Delete a specific building record from the property module of the PMS using its unique identifier. This operation will remove the building and all associated data from the system. If the specified building ID does not exist, a not found error will be returned.

### Get access Codes for a building

 - [GET /api/v3/buildings/{id}/accessCodes](https://apidocs.resharmonics.com/apis/resharmonics-pms/building/getaccesscodeforbuilding.md): Retrieve all access codes associated with a specific building record in the property module of the PMS.

### Get custom fields for a building

 - [GET /api/v3/buildings/{id}/customFields](https://apidocs.resharmonics.com/apis/resharmonics-pms/building/getcustomfieldsforbuilding.md): Retrieve all custom fields associated with a specific building record in the property module of the PMS. The response includes a list of custom fields, each containing details such as field name, type, and value. This endpoint is useful for accessing additional information stored in custom fields that are not part of the standard building attributes.

## Channels

Represents sales channels within the Property Management System (PMS), allowing users to categorize different sales channels or booking mediums. Sales channels capture details such as the channel operator, commission, and other criteria. This functionality enhances searchability, reporting, and segmentation by enabling property managers to create and manage custom channels tailored to their operational needs. Channels can be used for filtering, grouping, and applying business logic to different entities across the PMS, supporting improved organization and data management.

### Retrieve all Channels

 - [GET /api/v3/channels](https://apidocs.resharmonics.com/apis/resharmonics-pms/channels/listchannels.md): Fetch a list of all channels within the Property Management System (PMS). This endpoint is useful for retrieving detailed information about channels, including their names and descriptions. The response includes a list of channels, which can be used for categorizing and organizing various system entities. If no channels are found, an empty list will be returned. In case of an unexpected system error, a 500 Internal Server Error will be triggered.

### Retrieve a specific Channel

 - [GET /api/v3/channels/{id}](https://apidocs.resharmonics.com/apis/resharmonics-pms/channels/getchannelbyid.md): Fetch a specific channel within the Property Management System (PMS). This endpoint is useful for retrieving detailed information about a specific channel, including its name and description. If the channel is not found, a 404 Not Found response will be triggered. In case of an unexpected system error, a 500 Internal Server Error will be triggered.

## City

Represents the City entity within the PMS, including details such as the city's name, geographic location, and any associated properties or operational data. This entity is used to categorise and manage properties by location, enabling filtering and reporting based on city-level information.

### Retrieve list of cities

 - [GET /api/v3/cities](https://apidocs.resharmonics.com/apis/resharmonics-pms/city/listallcities.md): Fetch a comprehensive list of cities available within the PMS. The response includes details for each city, such as its name, unique identifier, address, facilities, and operational status. Optional query parameters can be used to filter the results by criteria such as location, status, or associated city. This endpoint is useful for managing property inventories and facilitating searches across multiple cities.

### Create a new city

 - [POST /api/v3/cities](https://apidocs.resharmonics.com/apis/resharmonics-pms/city/createcity.md): Creates a new city within the Property Management System (PMS) with the provided details. Cities help in organizing properties, defining operational zones, and generating location-based insights. This endpoint is useful for adding new regions to the system for better management and reporting. The request body should contain the necessary details for the new city. If the creation is successful, the newly created city's details will be returned. In case of an unexpected system error, a 500 Internal Server Error will be triggered.

### Retrieve a city by id

 - [GET /api/v3/cities/{id}](https://apidocs.resharmonics.com/apis/resharmonics-pms/city/getcitybyid.md): Fetch detailed information about a specific city within the PMS using its unique identifier. The response includes the city's name, associated properties, and any relevant metadata. This endpoint is commonly used to retrieve location-specific data to support property management and reporting functions.

### Update an existing city

 - [PUT /api/v3/cities/{id}](https://apidocs.resharmonics.com/apis/resharmonics-pms/city/updatecity.md): Updates an existing city within the Property Management System (PMS) with the provided details. Cities help in organizing properties, defining operational zones, and generating location-based insights. This endpoint is useful for modifying existing citys to reflect changes in geographical areas or operational zones. The request body should contain the updated details for the city. If the specified city ID does not exist, a 404 Not Found error will be returned. In case of an unexpected system error, a 500 Internal Server Error will be triggered.

### Delete a city by Id

 - [DELETE /api/v3/cities/{id}](https://apidocs.resharmonics.com/apis/resharmonics-pms/city/deletecitybyid.md): Deletes a specific city within the Property Management System (PMS) using its unique ID. Cities help in organizing properties, defining operational zones, and generating location-based insights. This endpoint is useful for removing cities that are no longer relevant or needed in the system. The city will be marked as deleted rather than permanently removed to maintain historical data integrity. If the specified city ID does not exist, a 404 Not Found error will be returned. In case of an unexpected system error, a 500 Internal Server Error will be triggered.

## Companies

Represents the Company entities within the PMS, which include detailed information about organisations associated with properties, bookings, or other business operations. The Company entity contains attributes such as the company name, contact information, address, industry type, and relationships with contacts or accounts. It is used to manage corporate accounts, track business partnerships, and enable streamlined handling of organisation-level interactions within the system.

### Retrieve list of companies by search filters

 - [GET /api/v3/companies](https://apidocs.resharmonics.com/apis/resharmonics-pms/companies/listcompanies.md): Retrieve a paginated list of companies from the PMS based on specified search filters. Optional query parameters include company name, email address, telephone number, referrer, industry, market segment, and account ID. Each filter allows partial matches using wildcards for greater flexibility in searching. If no filters are provided, the endpoint returns all available companies. The response contains key details for each company, such as name, contact information, and industry, presented in a paginated format to facilitate navigation. This endpoint is ideal for managing corporate accounts, identifying business partnerships, and integrating company information with other systems. Pagination controls can be used to manage the size and order of results.

### Create a new company

 - [POST /api/v3/companies](https://apidocs.resharmonics.com/apis/resharmonics-pms/companies/createcompany.md): Create a new company record in the PMS by providing the company details in the request body. The input JSON payload should include information such as the company's name, contact details, industry, and other relevant attributes. The authenticated user is associated with the creation for audit purposes. Upon successful creation, the response returns the full details of the newly created company, including its unique identifier. This endpoint is essential for adding new organisations to the system for management and operational purposes.

### Merge two companies

 - [POST /api/v3/companies/merge](https://apidocs.resharmonics.com/apis/resharmonics-pms/companies/mergecompanies.md): Merge the secondary company into the primary contact. Related records (e.g., activities, bookings, notes) are reassigned to the primary entity. Noop if any of the companies are null. Returns a success flag with a human-readable message.

### Retrieve company specified by company ID

 - [GET /api/v3/companies/{id}](https://apidocs.resharmonics.com/apis/resharmonics-pms/companies/getcompanybyid.md): Retrieve detailed information about a specific company in the PMS by providing its unique company ID. The response includes comprehensive data such as the company's name, contact information, address, industry, and any associated metadata. If the specified company ID does not exist, a 'Not Found' error will be returned. This endpoint is useful for viewing and managing individual company records, enabling efficient retrieval of corporate account details.

### Update a company record

 - [PUT /api/v3/companies/{id}](https://apidocs.resharmonics.com/apis/resharmonics-pms/companies/updatecompany.md): Update an existing company record in the PMS by providing the company's unique ID and updated details in the request body. The input JSON payload should include the fields to be updated, such as the company's name, contact information, industry, or other attributes. The system verifies the existence of the company before applying the updates, and any attempt to update a non-existent company will result in a 'Not Found' error. Upon successful update, the response returns the full details of the updated company. This endpoint ensures efficient management of company records while maintaining data integrity.

### deleteById

 - [DELETE /api/v3/companies/{id}](https://apidocs.resharmonics.com/apis/resharmonics-pms/companies/deletebyid.md)

### Get contacts for a company

 - [GET /api/v3/companies/{id}/contacts](https://apidocs.resharmonics.com/apis/resharmonics-pms/companies/getcontactsforcompany.md): Retrieve all contacts associated with a specific company record in the CRM module of the PMS. The response includes a list of contact summary records, each containing details such as id, first name and last name. This endpoint is useful for accessing all company related contacts where only basic contact information is required.

### Get custom fields for a company

 - [GET /api/v3/companies/{id}/customFields](https://apidocs.resharmonics.com/apis/resharmonics-pms/companies/getcustomfieldsforcompany.md): Retrieve all custom fields associated with a specific company record in the CRM module of the PMS. The response includes a list of custom fields, each containing details such as field name, type, and value. This endpoint is useful for accessing additional information stored in custom fields that are not part of the standard company attributes.

## Contacts

Represents the Contacts entity within the PMS CRM module, encompassing information about individuals or organisations associated with properties. This entity includes details such as names, contact information (e.g., phone numbers, email addresses), roles, and relationship to specific properties or bookings. It is used for managing customer relationships, tracking communication history, and facilitating operations such as guest management or corporate account handling.

### Returns a list of contacts

 - [GET /api/v3/contacts](https://apidocs.resharmonics.com/apis/resharmonics-pms/contacts/retrievecontacts.md): Retrieve a paginated list of contacts from the CRM module of the PMS. This endpoint supports optional query parameters to filter the results, including email address, first name, last name, telephone number, and account ID. If no filters are provided, the endpoint returns all available contacts in the system. The response includes a paginated list of contact records with key details, such as names and contact information, making it suitable for displaying contact directories or integrating with external systems. Pagination parameters can also be used to control the size and order of the result set.

### Create a contact

 - [POST /api/v3/contacts](https://apidocs.resharmonics.com/apis/resharmonics-pms/contacts/createcontact.md): Create a new contact record in the CRM module of the PMS. This endpoint accepts a JSON payload containing the contact's details, such as name, contact information (e.g., email, phone), role, and any related metadata. The authenticated user's details are used to associate the creation with an authorised account. Upon successful creation, the response returns the newly created contact's data, including its unique identifier. This endpoint is essential for adding new individuals or organisations to the contact database for guest management or operational purposes.

### Merge two contacts

 - [POST /api/v3/contacts/merge](https://apidocs.resharmonics.com/apis/resharmonics-pms/contacts/mergecontacts.md): Merge the secondary contact into the primary contact. Related records (e.g., activities, bookings, notes, attachments, keys) are reassigned to the primary contact. Noop if any of the contacts are null. Returns a success flag with a human-readable message.

### Retrieve contact using contact ID

 - [GET /api/v3/contacts/{id}](https://apidocs.resharmonics.com/apis/resharmonics-pms/contacts/getcontactbyid.md): Fetch detailed information about a specific contact in the CRM module of the PMS using their unique contact ID. The response includes key details such as the contact's name, contact information (e.g., email, phone), role, associated organisation, and any linked properties or bookings. This endpoint is essential for accessing and managing individual contact records for guest management, corporate accounts, or operational purposes.

### Update a contact record

 - [PUT /api/v3/contacts/{id}](https://apidocs.resharmonics.com/apis/resharmonics-pms/contacts/updatecontact.md): Update an existing contact record in the CRM module of the PMS. This endpoint requires the contact's unique ID as a path variable and a JSON payload containing the updated contact details, such as name, contact information, role, or related metadata. The system verifies the existence of the contact and applies locking mechanisms to prevent concurrent modifications during the update process. Upon successful completion, the updated contact record is saved, and the response includes the latest contact details. This endpoint is essential for maintaining up-to-date contact information and ensuring data integrity in the CRM module.

### deleteContactById

 - [DELETE /api/v3/contacts/{id}](https://apidocs.resharmonics.com/apis/resharmonics-pms/contacts/deletecontactbyid.md)

### Add an address to a contact

 - [POST /api/v3/contacts/{id}/addresses](https://apidocs.resharmonics.com/apis/resharmonics-pms/contacts/addaddress.md): Creates a new address and associates it with the specified contact.

### Update an address for a contact

 - [PUT /api/v3/contacts/{id}/addresses/{addressId}](https://apidocs.resharmonics.com/apis/resharmonics-pms/contacts/updateaddress.md): Updates an existing address associated with the specified contact.

### Delete an address from a contact

 - [DELETE /api/v3/contacts/{id}/addresses/{addressId}](https://apidocs.resharmonics.com/apis/resharmonics-pms/contacts/deleteaddress.md)

### Set an address as Primary

 - [PUT /api/v3/contacts/{id}/addresses/{addressId}/primary](https://apidocs.resharmonics.com/apis/resharmonics-pms/contacts/setprimaryaddress.md)

### Get custom fields for a contact

 - [GET /api/v3/contacts/{id}/customFields](https://apidocs.resharmonics.com/apis/resharmonics-pms/contacts/getcustomfieldsforcontact.md): Retrieve all custom fields associated with a specific contact record in the CRM module of the PMS. The response includes a list of custom fields, each containing details such as field name, type, and value. This endpoint is useful for accessing additional information stored in custom fields that are not part of the standard contact attributes.

### Add an email address to a contact

 - [POST /api/v3/contacts/{id}/emailAddresses](https://apidocs.resharmonics.com/apis/resharmonics-pms/contacts/addemailaddress.md): Creates a new email address and associates it with the specified contact.

### Update an email address for a contact

 - [PUT /api/v3/contacts/{id}/emailAddresses/{emailId}](https://apidocs.resharmonics.com/apis/resharmonics-pms/contacts/updateemail.md): Updates an existing email address associated with the specified contact.

### Delete an email address from a contact

 - [DELETE /api/v3/contacts/{id}/emailAddresses/{emailId}](https://apidocs.resharmonics.com/apis/resharmonics-pms/contacts/deleteemail.md)

### Set an email as Primary

 - [PUT /api/v3/contacts/{id}/emailAddresses/{emailId}/primary](https://apidocs.resharmonics.com/apis/resharmonics-pms/contacts/setprimaryemail.md)

### Get all or a specific note from a contact record

 - [GET /api/v3/contacts/{id}/notes](https://apidocs.resharmonics.com/apis/resharmonics-pms/contacts/getcontactnotes.md): Retrieve all or a specified note associated with a specific contact record in the CRM module of the PMS. The response includes a list of notes, each containing details such as the note's content, creation date, author, and any associated tags or categories. This endpoint is useful for tracking communication history, documenting interactions, and maintaining a comprehensive record of engagements with contacts.

### Record a note against a specified contact

 - [POST /api/v3/contacts/{id}/notes](https://apidocs.resharmonics.com/apis/resharmonics-pms/contacts/createnote.md): Record a note against a specified contact within the Property Management System (PMS). This endpoint allows you to add comments, updates, or additional information related to a booking. Notes provide detailed context and history for the booking, ensuring comprehensive tracking and management of reservations.

### Add a telephone number to a contact

 - [POST /api/v3/contacts/{id}/telephones](https://apidocs.resharmonics.com/apis/resharmonics-pms/contacts/addtelephonenumber.md): Creates a new telephone number and associates it with the specified contact.

### Update a telephone number for a contact

 - [PUT /api/v3/contacts/{id}/telephones/{phoneId}](https://apidocs.resharmonics.com/apis/resharmonics-pms/contacts/updatetelephone.md): Updates an existing telephone number associated with the specified contact.

### Delete a telephone number from a contact

 - [DELETE /api/v3/contacts/{id}/telephones/{phoneId}](https://apidocs.resharmonics.com/apis/resharmonics-pms/contacts/deletetelephone.md)

### Set a telephone number as Primary

 - [PUT /api/v3/contacts/{id}/telephones/{phoneId}/primary](https://apidocs.resharmonics.com/apis/resharmonics-pms/contacts/setprimarytelephone.md)

## Cost Centres

Cost Centres API for managing financial products and services.

### Retrieve list of all cost centres

 - [GET /api/v3/costCentres](https://apidocs.resharmonics.com/apis/resharmonics-pms/cost-centres/listallproducts_1.md): Fetch a comprehensive list of cost centres available within the PMS. The response includes details for each cost centre, such as its name, unique identifier, and operational status. This endpoint is useful for managing financial products and services.

### Retrieve cost centre by id

 - [GET /api/v3/costCentres/{id}](https://apidocs.resharmonics.com/apis/resharmonics-pms/cost-centres/getbyid_1.md): Fetch a specific cost centre by its unique identifier. The response includes details such as the name, code, and export name of the cost centre. This endpoint is useful for retrieving detailed information about a specific cost centre.

## Country

Provides endpoints for managing Country entities within the Property Management System (PMS). These operations include retrieving country details, creating new country records, and updating existing country information. Country entities store essential geographical and regulatory data, such as country names, ISO codes, and associated regional settings. This functionality supports property localisation, tax configurations, currency settings, and compliance with international regulations.

### Retrieve list of countries

 - [GET /api/v3/countries](https://apidocs.resharmonics.com/apis/resharmonics-pms/country/listallcountries.md): Retrieve a paginated list of countries stored within the Property Management System (PMS). This endpoint supports optional filtering by country name using the countryName query parameter, which allows partial matching for flexible searches. The response includes key country details such as country name, ISO codes, and other relevant metadata. This endpoint is useful for managing country-specific configurations, including localisation, tax settings, and currency associations. If no search criteria are provided, all available country records will be returned in a paginated format.

### Retrieve a country by ID

 - [GET /api/v3/countries/{id}](https://apidocs.resharmonics.com/apis/resharmonics-pms/country/getcountrybyid.md): Fetch detailed information about a specific country within the Property Management System (PMS) by providing its unique ID. The response includes essential country details such as the country's name, ISO codes, and any associated metadata. This endpoint is commonly used for retrieving country-specific settings related to localisation, tax regulations, and currency configurations. If the specified country ID does not exist, a 404 Not Found error will be returned. In case of an unexpected system error, a 500 Internal Server Error will be triggered.

## Currencies

Operations related to Currency entities from the Property Management System (PMS), including retrieval and management of currencies used in financial transactions. Currencies define the monetary units used for invoices, payments, rates, and financial reporting across the system. This API provides endpoints to list and retrieve currency information, which is essential for multi-currency operations, international bookings, accurate exchange rate conversions, and financial reporting in different currencies. Currency data includes the currency code (e.g., GBP, EUR, USD), symbol, exchange rate relative to the base reporting currency, and primary currency designation. Exchange rates are stored with 4 decimal precision and use RoundingMode.HALF_UP for conversions. These functionalities support accurate multi-currency financial tracking and international business operations within the PMS.

### Retrieve a paginated list of all currencies

 - [GET /api/v3/currencies](https://apidocs.resharmonics.com/apis/resharmonics-pms/currencies/listallcurrencies.md): Fetch a paginated list of all currencies configured in the Property Management System (PMS). Currencies represent the monetary units supported for financial transactions, including invoicing, payments, room rates, and financial reporting. This endpoint is essential for systems handling international bookings or operating across multiple countries with different currencies. This endpoint is useful for retrieving the complete currency catalog to understand available monetary units, populate currency selection dropdowns in booking and invoice interfaces, display exchange rates to users, or integrate with external payment gateways and accounting systems that require currency information. The response includes paginated results with currency details including ID, currency code (ISO 4217 format like GBP, EUR, USD), currency name, symbol (e.g., £, €, $), exchange rate relative to the base reporting currency, and a flag indicating if this is the primary/base currency for the organization. Exchange rates are stored with 4 decimal precision (e.g., 1.2345) to ensure accurate conversions. When performing currency conversions in calculations, the system uses RoundingMode.HALF_UP to maintain consistency and accuracy across all financial operations. Currencies are returned in the order specified by the pageable parameter. The system supports both transactional currency (used for guest-facing amounts) and base currency (used for internal reporting) to accommodate international operations. If no currencies exist in the system, an empty list will be returned. In case of an unexpected system error, a 500 Internal Server Error will be triggered.

## CustomFieldTemplates

APIs for managing custom field templates.

### Retrieve custom field template by ID.

 - [GET /api/v3/customFieldTemplates/{id}](https://apidocs.resharmonics.com/apis/resharmonics-pms/customfieldtemplates/getcustomfieldtemplatebyid.md): Retrieve information about a specific custom field template for an entity type within the Property Management System (PMS). This includes reference to the associated entity the custom field template is linked to, i.e., BOOKING, BUILDING, CONTACT, COMPANY, UNIT, SALES_INVOICE, SALES_CREDIT, ROOM_STAY

### Update specific values of a specific custom field template.

 - [PATCH /api/v3/customFieldTemplates/{id}/updateCustomFieldTemplate](https://apidocs.resharmonics.com/apis/resharmonics-pms/customfieldtemplates/updatecustomfieldtemplate.md): This allows update of a specified custom field template within the Property Management System (PMS) identified by reference ID. NOTE: see request body for fields which may be updated.

## CustomFields

APIs for managing custom fields. Create / Retrieve of custom fields is provided on the relevant entities, e.g. Units, Buildings etc.

### Retrieve custom field by ID.

 - [GET /api/v3/customFields/{id}](https://apidocs.resharmonics.com/apis/resharmonics-pms/customfields/getcustomfieldbyid.md): Retrieve information about a specific custom field for an entity type within the Property Management System (PMS). This includes reference to the associated entity the custom field is linked to, i.e., BOOKING, BUILDING, CONTACT, COMPANY, UNIT, SALES_INVOICE, SALES_CREDIT, ROOM_STAY

### Update the value of a specific custom field.

 - [PATCH /api/v3/customFields/{id}/updateCustomField](https://apidocs.resharmonics.com/apis/resharmonics-pms/customfields/updatecustomfield.md): This allows update of a specified custom field within the Property Management System (PMS) identified by reference ID.

## Developments

Represents the Developments entity within the Property Management System (PMS), which is used to manage real estate developments, property projects, or grouped property assets. A development typically consists of multiple buildings or units and includes key details such as location, associated properties, construction status, and project timelines. This entity supports large-scale property management by enabling structured organisation, tracking of development progress, and integration with booking, pricing, and operational workflows.

### Retrieve list of developments

 - [GET /api/v3/developments](https://apidocs.resharmonics.com/apis/resharmonics-pms/developments/listalldevelopments.md): Retrieve a paginated list of developments within the Property Management System (PMS). This endpoint supports optional filtering by development name, area ID, or area name, allowing flexible search criteria. Each development represents a property project or a group of buildings and includes key details such as name, location, and associated properties. The response provides a structured list of developments, which is useful for managing large-scale property assets, tracking project status, and integrating with booking and operational workflows. If no filters are applied, all available developments will be returned in a paginated format.

### Create a new development

 - [POST /api/v3/developments](https://apidocs.resharmonics.com/apis/resharmonics-pms/developments/createdevelopment.md): Create a new development within the Property Management System (PMS). This endpoint allows you to add a new development with its associated properties, location, and other relevant details. The request body should contain the development information in the form of a DevelopmentDTO. If the creation is successful, the response will include the newly created development's details. In case of validation errors or system issues, appropriate error responses will be returned.

### Retrieve a development by ID

 - [GET /api/v3/developments/{id}](https://apidocs.resharmonics.com/apis/resharmonics-pms/developments/getdevelopmentbyid.md): Fetch detailed information about a specific development within the Property Management System (PMS) using its unique ID. The response includes key details such as the development's name, associated buildings, location, status, and other relevant metadata. This endpoint is useful for retrieving structured property development data, supporting asset management, and integrating with booking and operational workflows. If the specified development ID does not exist, a 404 Not Found error will be returned. In case of an unexpected system error, a 500 Internal Server Error will be triggered.

### Update an existing development

 - [PUT /api/v3/developments/{id}](https://apidocs.resharmonics.com/apis/resharmonics-pms/developments/updatedevelopment.md): Update the details of an existing development within the Property Management System (PMS). This endpoint allows you to modify the development's properties, location, and other relevant details. The request body should contain the updated information in the form of a DevelopmentDTO. If the specified development ID does not exist, a 404 Not Found error will be returned. In case of validation errors or system issues, appropriate error responses will be returned.

### Delete a development by ID

 - [DELETE /api/v3/developments/{id}](https://apidocs.resharmonics.com/apis/resharmonics-pms/developments/deletedevelopmentbyid.md): Delete an existing development within the Property Management System (PMS) using its unique ID. This endpoint allows you to remove a development and all its associated data from the system. If the specified development ID does not exist, a 404 Not Found error will be returned. In case of system errors during the deletion process, a 500 Internal Server Error will be triggered.

### Retrieve features and facilities for a development

 - [GET /api/v3/developments/{id}/featuresFacilities](https://apidocs.resharmonics.com/apis/resharmonics-pms/developments/getfeaturefacilities_1.md): Fetch a list of features and facilities associated with a specific development using its unique ID. This endpoint returns detailed information about amenities, facilities, and special features available within the development. The response is paginated and includes both standard and custom features that characterize the development. If the specified development ID does not exist, a 404 Not Found error will be returned. In case of system errors during retrieval, a 500 Internal Server Error will be triggered.

### Update (replace) feature facilities for a development

 - [PUT /api/v3/developments/{id}/featuresFacilities](https://apidocs.resharmonics.com/apis/resharmonics-pms/developments/updatefeaturefacilities_1.md): Update the list of feature facilities associated with a specific development using its unique ID. This endpoint allows you to replace the existing feature facilities with a new set of facilities, updating the development's amenities and services. The request body should contain a list of feature facility IDs to be linked. If the specified development ID does not exist, a 404 Not Found error will be returned. In case of system errors during the update process, a 500 Internal Server Error will be triggered.

### Link (add) feature facilities to a development

 - [POST /api/v3/developments/{id}/featuresFacilities/link](https://apidocs.resharmonics.com/apis/resharmonics-pms/developments/linkfacilitiestodevelopment.md): Link existing feature facilities to a specific development using its unique ID. This endpoint allows you to associate multiple feature facilities with a development, enhancing its amenities and services. The request body should contain a list of feature facility IDs to be linked. If the specified development ID does not exist, a 404 Not Found error will be returned. In case of system errors during the linking process, a 500 Internal Server Error will be triggered.

### Unlink (remove) feature facilities from a development

 - [POST /api/v3/developments/{id}/featuresFacilities/unlink](https://apidocs.resharmonics.com/apis/resharmonics-pms/developments/deletefeaturefacilities_1.md): Unlink existing feature facilities from a specific development using its unique ID. This endpoint allows you to remove multiple feature facilities from a development, updating its amenities and services. The request body should contain a list of feature facility IDs to be unlinked. If the specified development ID does not exist, a 404 Not Found error will be returned. In case of system errors during the unlinking process, a 500 Internal Server Error will be triggered.

### Retrieve development images

 - [GET /api/v3/developments/{id}/images](https://apidocs.resharmonics.com/apis/resharmonics-pms/developments/getdevelopmentimages.md): Fetch a paginated list of images associated with a specific development using its unique ID. This endpoint allows you to retrieve images that are linked to the development, which can include photos of the property, architectural designs, or other relevant visuals. The response includes image details such as file name, size, and type. If the specified development ID does not exist, a 404 Not Found error will be returned. In case of system errors during retrieval, a 500 Internal Server Error will be triggered.

### Upload a new development image

 - [POST /api/v3/developments/{id}/images/upload](https://apidocs.resharmonics.com/apis/resharmonics-pms/developments/createnewdevelopmentimage.md): Upload a new image for a specific development using its unique ID. This endpoint allows you to add images that are linked to the development, which can include photos of the property, architectural designs, or other relevant visuals. The uploaded file should be provided as a multipart file in the request. If the specified development ID does not exist, a 404 Not Found error will be returned. In case of system errors during the upload process, a 500 Internal Server Error will be triggered.

### Delete a development image by ID

 - [DELETE /api/v3/developments/{id}/images/{imageId}](https://apidocs.resharmonics.com/apis/resharmonics-pms/developments/deletedevelopmentimage.md): Delete an existing image associated with a specific development using its unique ID. This endpoint allows you to remove an image that is linked to the development. If the specified development or image ID does not exist, a 404 Not Found error will be returned. In case of system errors during the deletion process, a 500 Internal Server Error will be triggered.

## Extras

Represents Extras within the Property Management System (PMS), which are additional services or products that can be added to a booking. Extras may include amenities such as parking, breakfast, airport transfers, housekeeping services, or any custom add-ons offered by the property. These entities are used to enhance guest experiences, provide personalised services, and generate additional revenue streams. Extras can be configured with pricing, availability rules, and booking conditions to ensure seamless integration with reservation workflows.

### Search for chargeable extras

 - [GET /api/v3/extras](https://apidocs.resharmonics.com/apis/resharmonics-pms/extras/searchallextras.md): Retrieve a paginated list of chargeable extras within the Property Management System (PMS). Chargeable extras represent additional services or products that can be added to bookings, such as parking, meals, or cleaning services. This endpoint allows filtering by billing frequency, building ID, and whether the extra is available through the Internet Booking Engine (IBE). The response includes details about each extra, such as pricing, availability, and applicable billing rules. If an invalid billing frequency is provided, a 400 Bad Request error will be returned. If no filters are applied, all available chargeable extras will be returned in a paginated format, making it easier to manage and integrate additional services into property operations.

### Retrieve compulsory chargeable extras for a rate ID

 - [GET /api/v3/extras/{rateId}](https://apidocs.resharmonics.com/apis/resharmonics-pms/extras/retrievecompulsoryextrasforrateid.md): Fetch a list of compulsory chargeable extras associated with a specific rate code within the Property Management System (PMS). Compulsory extras are additional services or fees that must be included when booking a rate, such as cleaning fees, resort fees, or mandatory meal plans. This endpoint requires the rateCode as a path variable and a date range (startDate and endDate) as query parameters to determine the applicable extras for the specified period. The response includes details about each extra, including pricing, validity dates, and availability. This functionality is useful for ensuring that mandatory add-ons are applied correctly in booking workflows and pricing calculations. If the rate code does not exist or is invalid, an appropriate error response will be returned.

### Record a payment against an extra attached to a room stay

 - [POST /api/v3/extras/{roomStayExtraId}/payment](https://apidocs.resharmonics.com/apis/resharmonics-pms/extras/updateextrapayment.md): Registers a payment for a chargeable extra linked to a specific room stay within the Property Management System (PMS). This endpoint requires the roomStayExtraId as a path variable to identify the extra and a payment request body containing the payment details. It verifies the existence of the room stay extra and checks for any associated sales invoices. If an outstanding balance remains, the payment is processed and recorded. The response includes financial details related to the transaction, such as the payment reference and updated invoice status. If the extra does not exist, the invoice is already paid, or there are no invoices to process, a 400 Bad Request error will be returned.

## Feature Facility

Represents Feature Facility entities within the Property Management System (PMS). Feature Facilities are used to categorize and manage various facilities associated with properties, such as amenities, services, and operational features. This functionality helps in organizing properties, defining operational capabilities, and generating facility-based insights. Feature Facilities can be used to enhance guest experiences, optimize resource allocation, and support strategic decision-making.

### Retrieve list of feature facilities

 - [GET /api/v3/featureFacilities](https://apidocs.resharmonics.com/apis/resharmonics-pms/feature-facility/retrievefeaturefacilities.md): Fetch a comprehensive list of feature facilities available within the PMS. The response includes details for each feature facility, such as its name, unique identifier, and operational status. This endpoint is useful for managing property inventories and facilitating searches across multiple feature facilities.

## Fees

API endpoints for managing fees and fee types

### Retrieve Fee Types

 - [GET /api/v3/fees/feeTypes](https://apidocs.resharmonics.com/apis/resharmonics-pms/fees/feetypes.md): Retrieves a paginated list of all available fee types in the system

## Finance Accounts

Finance Accounts API for managing Property Management System (PMS) finance accounts. 

### Retrieve a list of all finance accounts.

 - [GET /api/v3/financeAccounts](https://apidocs.resharmonics.com/apis/resharmonics-pms/finance-accounts/findfinanceaccountlistitems.md): Fetch a list of all finance accounts within the Property Management System (PMS). This endpoint is useful for retrieving basic information about finance accounts, including relation type (company or contact), export information related to integrated external financial systems. The response includes paginated results of sales invoices, which can be filtered by export status.

### Retrieve a finance account from within the Property Management System (PMS) using its unique ID.

 - [GET /api/v3/financeAccounts/{id}](https://apidocs.resharmonics.com/apis/resharmonics-pms/finance-accounts/findfinanceaccountlistitem.md): Fetch a list of all finance accounts within the Property Management System (PMS). If the specified sales invoice ID does not exist, a 404 Not Found error will be returned. In case of an unexpected system error, a 500 Internal Server Error will be triggered.

### Update a finance account export status to a given value.

 - [PATCH /api/v3/financeAccounts/{id}/exportStatus](https://apidocs.resharmonics.com/apis/resharmonics-pms/finance-accounts/updatefinanceaccountexportstatus.md): Update the external identifier record linked to a specific finance account; the updatable fields are export status, external ID and exported date time. This operation is essential for synchronizing the finance account export status with external financial systems, ensuring that the finance account export status is maintained in line with the integrated external system. The request body should include the external ID, export status and the exported date.

## Financial Allocations

Collection of API endpoints to manage Financial Allocations within the Property Management System (PMS). These Allocations are reconciliations between Sales Credits and Sales Invoices. 

### Retrieve financials allocations for Sales Credit allocations against Sales Invoices.

 - [GET /api/v3/financialAllocations/salesInvoices](https://apidocs.resharmonics.com/apis/resharmonics-pms/financial-allocations/listallocationlistitems.md): Filtering can be performed by allocation created date range (inclusive), Organisation ID, Finance Account ID and export status of financial allocations.

### Create a Financial Allocation between a Sales Credit and a Sales Invoice.

 - [POST /api/v3/financialAllocations/salesInvoices](https://apidocs.resharmonics.com/apis/resharmonics-pms/financial-allocations/performsalescreditallocation.md): This effectively reconciles a sales credit against a sales invoice.

### Retrieve payment allocations with basic filtering.

 - [GET /api/v3/financialAllocations/salesPayments](https://apidocs.resharmonics.com/apis/resharmonics-pms/financial-allocations/listpaymentallocations.md): In the PMS, these will be allocations for financials of types, sales receipts against sales invoices and sales refund against sales credits. Filtering can be performed by payment allocation date range, Organisation ID, Finance Account ID and export status of financial allocationss.

### Update a Financial Allocation export status to a given status.

 - [PATCH /api/v3/financialAllocations/{id}/exportStatus](https://apidocs.resharmonics.com/apis/resharmonics-pms/financial-allocations/updateallocationexportstatus.md): Update the external identifier record linked to a specific financial allocation; the updatable fields are export status, external ID and exported date time. The request body should include the external ID, export status and the exported date. Note: if the export status is already EXPORTED, then no update will be performed, instead, an exception will be thrown.

## Financials

Financials API for managing Property Management System (PMS) financials. Financialsare created when sales and purchase invoices are posted to the ledgers or when receipts and refunds are created

### Retrieve a list of all financials matching search criteria.

 - [GET /api/v3/financials](https://apidocs.resharmonics.com/apis/resharmonics-pms/financials/findfinancials.md): Fetch a list of all financials within the Property Management System (PMS). This endpoint is useful for retrieving basic information about financials, The response includes paginated results of financials, which can be filtered by specific fields

### Retrieve a financial from within the Property Management System (PMS) using its unique ID.

 - [GET /api/v3/financials/{id}](https://apidocs.resharmonics.com/apis/resharmonics-pms/financials/findbyid.md): Fetch a financial within the Property Management System (PMS). If the specified financial does not exist, a 404 Not Found error will be returned. In case of an unexpected system error, a 500 Internal Server Error will be triggered.

## Guest Stays

Represents Guest Stay entities within the Property Management System (PMS), which track individual guest stays associated with a room stay. A Guest Stay captures key details such as guest information, check-in and check-out dates, separate to the booked room, and stay status. This entity is essential for managing guest experiences, tracking physical occupancy, and facilitating seamless accommodation operations. 

### Retrieve Guest Stays from defined parameters.

 - [GET /api/v3/guestStays](https://apidocs.resharmonics.com/apis/resharmonics-pms/guest-stays/listallgueststays.md): Retrieve a paginated list of guest stays within the Property Management System (PMS) based on specified search criteria. This endpoint allows filtering by date range (dateFrom and dateTo), unit ID, contact ID, guest details (email, first name, last name), status (CONFIRMED, CHECKED_IN, CHECKED_OUT by default), and booking reference. Guest Stays represent individual guest reservations linked to a room stay and include key details such as guest identity, booking status, and associated property information. The response provides a paginated list of Guest Stay records, making it useful for tracking occupancy, managing guest check-ins and check-outs, and retrieving stay details for reporting or operational purposes. If no filters are provided, all guest stays within the default parameters will be returned.

### Create a Guest Stay for a Room Stay

 - [POST /api/v3/guestStays](https://apidocs.resharmonics.com/apis/resharmonics-pms/guest-stays/creategueststay.md): This endpoint is used to create a new guest stay on a room stay.

### Retrieve Guest Stay by ID

 - [GET /api/v3/guestStays/{id}](https://apidocs.resharmonics.com/apis/resharmonics-pms/guest-stays/getgueststaybyid.md): Fetch detailed information about a specific Guest Stay within the Property Management System (PMS) using its unique ID. A Guest Stay represents an individual guest's reservation linked to a room stay and includes key details such as check-in and check-out dates, assigned unit, guest information, booking reference, and stay status. This endpoint is useful for retrieving stay-specific data for guest management, reporting, or operational workflows. If the specified Guest Stay ID does not exist, a 404 Not Found error will be returned. In case of an unexpected system error, a 500 Internal Server Error will be triggered.

### Update a Guest Stay for a Room Stay

 - [PUT /api/v3/guestStays/{id}](https://apidocs.resharmonics.com/apis/resharmonics-pms/guest-stays/updategueststay.md): This endpoint is used to update a guest stay on a room stay.

### Delete a Guest Stay

 - [DELETE /api/v3/guestStays/{id}](https://apidocs.resharmonics.com/apis/resharmonics-pms/guest-stays/deletegueststay.md): This endpoint is used to delete a guest stay on a room stay.

### Update a Guest Stay status

 - [PATCH /api/v3/guestStays/{id}/updateStatus](https://apidocs.resharmonics.com/apis/resharmonics-pms/guest-stays/updategueststaystatus.md): This endpoint is used to update a guest stay status

## Industries

Represents Industry entities within the Property Management System (PMS), which categorise businesses, corporate clients, and organisations based on their industry sector. Industry entities are used to segment accounts, track market trends, and apply industry-specific pricing, policies, or reporting structures. This functionality supports better organisation, enhanced analytics, and streamlined management of corporate bookings and partnerships.

### Retrieve all industries

 - [GET /api/v3/industries](https://apidocs.resharmonics.com/apis/resharmonics-pms/industries/listindustries.md): Fetch a list of all industries stored within the Property Management System (PMS). Industries represent business sectors and are used for categorising corporate clients, segmenting accounts, and applying industry-specific pricing, policies, or reporting structures. The response includes details of each industry, providing a structured way to organise and manage business relationships within the PMS. This endpoint is useful for analytics, market segmentation, and corporate account management. If an unexpected system error occurs, a 500 Internal Server Error will be triggered.

### Retrieve industry by ID

 - [GET /api/v3/industries/{id}](https://apidocs.resharmonics.com/apis/resharmonics-pms/industries/getindustrybyid.md): Fetch detailed information about a specific industry within the Property Management System (PMS) using its unique ID. Industries are used to categorise corporate clients, segment accounts, and manage industry-specific pricing, policies, or reporting structures. The response includes key details about the industry, making it useful for analytics, business segmentation, and corporate account management. If the specified industry ID does not exist, a 404 Not Found error will be returned. In case of an unexpected system error, a 500 Internal Server Error will be triggered.

## Issues

Represents Issues within the Property Management System (PMS), which track and manage property-related concerns, maintenance requests, and guest service requests. Issues can include general maintenance tasks, housekeeping requests, guest complaints, or operational incidents that require resolution. This functionality supports efficient task assignment, workflow automation, and real-time issue tracking to ensure prompt resolution and enhance guest satisfaction. Issues can be associated with properties, units, bookings, or specific guest stays, enabling seamless communication between staff and management.

### Retrieve a list of issues

 - [GET /api/v3/issues](https://apidocs.resharmonics.com/apis/resharmonics-pms/issues/retrieveissues.md): Fetch a paginated list of issues within the Property Management System (PMS), representing property management tasks, maintenance requests, or guest service concerns. This endpoint allows filtering by multiple parameters, including issue details (ID, subject, status, type, priority), assignment details (assignee user or team), date ranges (reported date, response target date, resolution target date, last updated date), and related entities (booking, unit, or building). The response includes key issue details, making it useful for tracking operational tasks, managing maintenance workflows, and ensuring efficient resolution. If no filters are applied, all available issues will be returned in a paginated format. In case of an unexpected system error, a 500 Internal Server Error will be triggered.

### Create new issue

 - [POST /api/v3/issues](https://apidocs.resharmonics.com/apis/resharmonics-pms/issues/createentity.md): Create a new issue within the Property Management System (PMS) to track property-related concerns, maintenance requests, or guest service requests. This endpoint accepts a JSON payload containing issue details, including description, priority, category, associated property or unit, and reporter information. The created issue is linked to relevant entities such as a property, unit, booking, or guest stay to facilitate efficient resolution. The response returns the newly created issue with a unique identifier. If any referenced object IDs do not exist in the PMS, a 400 Bad Request error will be returned due to data integrity violations. In case of an unexpected error, a 500 Internal Server Error will be triggered.

### Retrieve a list of all issue priorities

 - [GET /api/v3/issues/issuePriorities](https://apidocs.resharmonics.com/apis/resharmonics-pms/issues/getissuepriority.md): Fetch a list of all available issue priorities within the Property Management System (PMS). Issue priorities help classify and manage the urgency of property-related concerns, maintenance requests, or guest service issues. Priorities can include different levels, such as 'Low', 'Medium', 'High', or custom-defined priority levels, ensuring that critical issues are addressed promptly. This endpoint provides structured priority data to facilitate efficient issue management, resource allocation, and response time tracking. The response includes a list of issue priorities along with relevant metadata. If an unexpected system error occurs, a 500 Internal Server Error will be triggered.

### Retrieve an issue priority by ID

 - [GET /api/v3/issues/issuePriorities/{id}](https://apidocs.resharmonics.com/apis/resharmonics-pms/issues/getissuepriority_1.md): Fetch detailed information about a specific issue priority within the Property Management System (PMS) using its unique ID. Issue priorities define the urgency of property-related concerns, maintenance requests, or guest service issues, ensuring efficient task management and resolution. The response includes key details such as the priority level and its associated metadata. If the specified priority ID does not exist, a 404 Not Found error will be returned. In case of an unexpected system error, a 500 Internal Server Error will be triggered.

### Retrieve a list of all issue statuses

 - [GET /api/v3/issues/issueStatuses](https://apidocs.resharmonics.com/apis/resharmonics-pms/issues/getissuestatuses.md): Fetch a list of all possible issue statuses within the Property Management System (PMS). Issue statuses indicate the current progress of property-related concerns, maintenance requests, or guest service issues. Common statuses include OPEN, STARTED, RESOLVED, and CLOSED, ensuring clear tracking of an issue's lifecycle. This endpoint provides structured status data to help streamline issue management, prioritisation, and resolution workflows. The response includes a list of predefined issue statuses. If an unexpected system error occurs, a 500 Internal Server Error will be triggered.

### Retrieve a list of all issue types

 - [GET /api/v3/issues/issueTypes](https://apidocs.resharmonics.com/apis/resharmonics-pms/issues/getissuetypes.md): Fetch a list of all available issue types within the Property Management System (PMS). Issue types categorise different kinds of property-related concerns, maintenance requests, or guest service issues, such as housekeeping, technical repairs, complaints, or general inquiries. This endpoint provides a structured way to classify and manage operational issues, ensuring efficient tracking and resolution. The response includes a list of issue types, each containing relevant metadata. If an unexpected system error occurs, a 500 Internal Server Error will be triggered.

### Retrieve issue entity by ID

 - [GET /api/v3/issues/{id}](https://apidocs.resharmonics.com/apis/resharmonics-pms/issues/retrieveentity.md): Fetch detailed information about a specific issue within the Property Management System (PMS) using its unique ID. Issues represent property management concerns, maintenance requests, or guest service requests. The response includes key details such as issue type, description, status, priority, associated property or unit, and reporting details. This endpoint is useful for tracking ongoing issues, managing maintenance workflows, and ensuring timely resolution. If the specified issue ID does not exist, a 404 Not Found error will be returned.

### Update issue entity

 - [PUT /api/v3/issues/{id}](https://apidocs.resharmonics.com/apis/resharmonics-pms/issues/updateentity.md): Modify an existing issue within the Property Management System (PMS) by providing updated details in the request body. The update process requires a valid issue ID and allows modifications to fields such as issue status, priority, category, or resolution notes. Issues are typically associated with properties, units, bookings, or guest stays, ensuring efficient tracking and management. To prevent data conflicts, a locking mechanism is applied during updates. The response includes the updated issue details. If the issue ID does not exist, a 404 Not Found error will be returned. In case of an unexpected error, a 500 Internal Server Error will be triggered.

### Retrieve a list of notes on an issue

 - [GET /api/v3/issues/{id}/notes](https://apidocs.resharmonics.com/apis/resharmonics-pms/issues/getissuenotes.md): Fetch all notes associated with a specific issue within the Property Management System (PMS) using its unique ID. Issue notes provide a historical record of updates, comments, and actions taken on maintenance requests, guest concerns, or operational issues. The response includes details such as note content, author, timestamp, and any relevant metadata. This endpoint is useful for tracking communication, ensuring accountability, and maintaining an audit trail for issue resolution. If the issue ID does not exist, a 404 Not Found error will be returned. In case of an unexpected system error, a 500 Internal Server Error will be triggered.

### Create an issue note

 - [POST /api/v3/issues/{id}/notes](https://apidocs.resharmonics.com/apis/resharmonics-pms/issues/createissuenote.md): Add a new note to a specific issue within the Property Management System (PMS) using the issue's unique ID. Issue notes serve as a communication log, allowing users to document updates, comments, or actions taken on maintenance requests, guest concerns, or operational issues. The request body must contain the note details, including its content and any relevant metadata. If the specified issue ID does not exist, a 404 Not Found error will be returned. Upon successful creation, the response includes the newly added note. This endpoint ensures proper documentation of issue progress and facilitates collaboration between team members.

### Update the status of an issue by ID

 - [PATCH /api/v3/issues/{id}/status](https://apidocs.resharmonics.com/apis/resharmonics-pms/issues/updateactivitystatus.md): Modify the status of a specific issue within the Property Management System (PMS) using its unique issue ID. The request body must include a valid status update (OPEN, STARTED, RESOLVED, or CLOSED). This endpoint ensures proper issue tracking and workflow management by allowing users to update the issue's progress. 

- OPEN: Marks the issue as newly created and pending action. 
- STARTED: Indicates work has begun on resolving the issue. 
- RESOLVED: Confirms the issue has been addressed but not yet closed. 
- CLOSED: Marks the issue as fully completed and closed. 

The response includes the updated issue details. If the issue ID does not exist, a 404 Not Found error will be returned. In case of an unexpected system error, a 500 Internal Server Error will be triggered.

## Leads

APIs for creating Leads, leads are used to create basic opportunities in the system which can be converted to enquiries or bookings.

### Create a full lead

 - [POST /api/v3/leads](https://apidocs.resharmonics.com/apis/resharmonics-pms/leads/createfulllead.md): Creates a lead with all details provided in the request body. Returns a BookingSummaryDTO containing the ID and reference of the created lead.

## Market Segments

Represents Market Segment entities within the Property Management System (PMS), which categorise customer groups based on booking patterns, demographics, or business classifications. Market segments help in defining pricing strategies, targeted marketing campaigns, and reporting insights. They are commonly used to differentiate corporate clients, leisure travelers, government bookings, wholesalers, and other key customer groups. This functionality enables property managers to optimise revenue, personalise guest experiences, and improve operational decision-making.

### Retrieve all market segments

 - [GET /api/v3/marketSegments](https://apidocs.resharmonics.com/apis/resharmonics-pms/market-segments/listmarketsegments.md): Fetch a list of all available market segments within the Property Management System (PMS). Market segments categorise customer groups based on booking patterns, demographics, or business classifications such as corporate, leisure, government, or wholesale. This segmentation helps optimise pricing strategies, personalise guest experiences, and generate meaningful reports for revenue management and marketing. The response includes a list of all defined market segments, each with relevant metadata. If an unexpected system error occurs, a 500 Internal Server Error will be triggered.

### Retrieve market segment by ID

 - [GET /api/v3/marketSegments/{id}](https://apidocs.resharmonics.com/apis/resharmonics-pms/market-segments/getmarketsegmentbyid.md): Fetch detailed information about a specific market segment within the Property Management System (PMS) using its unique ID. Market segments categorise customer groups based on booking behaviors, demographics, or business classifications such as corporate, leisure, government, or wholesale. This endpoint is useful for retrieving segment-specific data for reporting, pricing strategies, and targeted marketing efforts. The response includes details about the market segment, including its classification and associated metadata. If the specified market segment ID does not exist, a 404 Not Found error will be returned. In case of an unexpected system error, a 500 Internal Server Error will be triggered.

## Nationalities

Represents Nationality entities within the Property Management System (PMS), used to categorise guests, customers, or corporate clients based on their country of nationality. Nationality data supports compliance with regulatory requirements, enhances reporting and analytics, and enables targeted marketing or pricing strategies. This functionality helps property managers track guest demographics, improve customer segmentation, and personalise services based on nationality-specific preferences.

### Retrieve all nationalities

 - [GET /api/v3/nationalities](https://apidocs.resharmonics.com/apis/resharmonics-pms/nationalities/getnationalities.md): Fetch a list of all available nationalities within the Property Management System (PMS). Nationality entities help categorise guests, customers, or corporate clients based on their country of nationality. This data is useful for compliance with regulatory requirements, demographic reporting, targeted marketing, and personalised service offerings. The response includes a list of all defined nationalities along with relevant metadata. If an unexpected system error occurs, a 500 Internal Server Error will be triggered.

### Retrieve nationality by ID

 - [GET /api/v3/nationalities/{id}](https://apidocs.resharmonics.com/apis/resharmonics-pms/nationalities/getnationalitybyid.md): Fetch detailed information about a specific nationality within the Property Management System (PMS) using its unique ID. Nationality entities help categorise guests, customers, or corporate clients based on their country of nationality, supporting compliance, reporting, and personalised services. The response includes relevant metadata such as country name and ISO codes. If the specified nationality ID does not exist, a 404 Not Found error will be returned. In case of an unexpected system error, a 500 Internal Server Error will be triggered.

## Notes

APIs for managing notes and note categories. Create / Retrieve of notes are provided on the relevant entities, e.g. Bookings, Customers etc.

### Retrieve a paginated list of notes and its associated entity reference.

 - [GET /api/v3/notes](https://apidocs.resharmonics.com/apis/resharmonics-pms/notes/getnotes.md): Retrieve information about a specific note or list of notes for an entity type within the Property Management System (PMS). This includes reference to the associated entities the note is linked to, i.e. ACTIVITY, BOOKING, CONTACT, COMPANY, ISSUE

### List Note Categories

 - [GET /api/v3/notes/categories](https://apidocs.resharmonics.com/apis/resharmonics-pms/notes/list.md): Retrieves a paginated list of all note categories available in the system

### Retrieve a note and its associated entity reference.

 - [GET /api/v3/notes/{id}](https://apidocs.resharmonics.com/apis/resharmonics-pms/notes/getnotebyid.md): Retrieve information about a specific note for an entity type within the Property Management System (PMS). This includes reference to the associated entity the note is linked to.

## Organisations

Organisations API for managing different financial entities.

### Retrieve list of all organisations

 - [GET /api/v3/organisations](https://apidocs.resharmonics.com/apis/resharmonics-pms/organisations/listallorganisations.md): Fetch a comprehensive list of organisations available within the PMS. The response includes details for each cost centre, such as its name, unique identifier, and operational status. This endpoint is useful for managing organations to different financial elements in the system.

### Retrieve organisation by id

 - [GET /api/v3/organisations/{id}](https://apidocs.resharmonics.com/apis/resharmonics-pms/organisations/getbyid.md): Fetch a specific organisation by its unique identifier. The response includes details such as the name, other details. This endpoint is useful for retrieving detailed information about a specific cost centre.

## Payments

Collection of API endpoints to manage Payments within the Property Management System (PMS). Payments are financials including both payment receipts and payment refunds.

### Retrieve payments with basic filtering.

 - [GET /api/v3/payments/](https://apidocs.resharmonics.com/apis/resharmonics-pms/payments/listreceiptsandrefunds.md): In the PMS, these will be financials of types, sales receipts paid against sales invoices and sales refunds paid against sales credits. Filtering can be performed by payment allocation date range, Finance Account ID and export status of financial allocationss.

### Create a payment record against a specified collection of sales invoices.

 - [POST /api/v3/payments/salesInvoices](https://apidocs.resharmonics.com/apis/resharmonics-pms/payments/createsalesinvoicespayments.md): Creates a payment record against a specified collection of sales invoices. The payment record will be reconciled against any outstanding invoices. Where necessary invoices will be auto posted. If there is insufficient outstanding on invoices, the payment is rejected. NOTE: The invoices should all belong to the same organisation and they should use the same finance account.

### Retrieve list of all financial allocations for a payment financial using Financial ID.

 - [GET /api/v3/payments/{id}/allocations](https://apidocs.resharmonics.com/apis/resharmonics-pms/payments/listallocationlistitemsbypaymentid.md): This will give a list of all financial allocations of type SALES RECEIPT against a specific sales invoice financial.

### Retrieve a payment Receipt PDF for a payment

 - [GET /api/v3/payments/{id}/download](https://apidocs.resharmonics.com/apis/resharmonics-pms/payments/extractreceiptdocument.md): Fetch a Receipt PDF for a payment referenceThe request will specify the financial id to extract the PDF required

### Update a Payment export status to a given status.

 - [PATCH /api/v3/payments/{id}/exportStatus](https://apidocs.resharmonics.com/apis/resharmonics-pms/payments/updatefinancialexportstatus.md): Update the external identifier record linked to a specific payment financial (Sales Receipt); the updatable fields are export status, external ID and exported date time. The request body should include the external ID, export status and the exported date.

## Products

Operations related to Product entities from the Property Management System (PMS), including retrieval and management of products used in financial transactions. Products represent billable items such as accommodation, extras, fees, deposits, and services that can be added to invoices. This API provides endpoints to list and retrieve product information, which is essential for creating invoice line items, understanding available billing categories, and maintaining consistent product catalogs across the system. These functionalities support accurate financial tracking and reporting within the PMS.

### Retrieve a paginated list of all products

 - [GET /api/v3/products](https://apidocs.resharmonics.com/apis/resharmonics-pms/products/listallproducts.md): Fetch a paginated list of all products available in the Property Management System (PMS). Products are billable items that can be included on sales invoices, such as accommodation charges, extras (parking, breakfast, etc.), fees, deposits, and other services. This endpoint is useful for retrieving the complete product catalog to understand available billing categories, populate dropdown selections in invoice creation interfaces, or integrate with external systems. The response includes paginated results with product details including ID, name, product code, type (sales/purchase), nominal code, tax code, and other relevant attributes. Products are returned in the order specified by the pageable parameter. If no products exist in the system, an empty list will be returned. In case of an unexpected system error, a 500 Internal Server Error will be triggered.

## Rates

Endpoints for managing and querying rates and pricing within the PMS. These endpoints enable the creation, updating, retrieval, and deletion of rate records associated with properties, room types, and booking policies. Rate management functionality includes support for dynamic pricing, seasonal adjustments, promotional offers, and rate plans (e.g., refundable, non-refundable). Additionally, these endpoints facilitate integration with revenue management systems, allowing for real-time updates and querying of rates based on availability, occupancy, and other parameters. This suite of endpoints is essential for optimising pricing strategies and ensuring accurate and efficient rate handling.

### Search for rates by specified criteria

 - [GET /api/v3/rates](https://apidocs.resharmonics.com/apis/resharmonics-pms/rates/getallratesindaterange.md): Retrieve a list of rates that match the specified criteria, such as date range, unit type, rate ID, company ID, or rate code. The optional parameters dateFrom and dateTo allow for filtering rates within a specific date range, while unitTypeId, rateId, companyId, and rateCode can further narrow the search. Results are returned in a paginated format, making it easier to navigate through large datasets. This endpoint is useful for querying rates for specific units, validating pricing for bookings, or integrating rate information with external systems. If no filters are provided, the endpoint returns all rates within the default date range.

### Get rate by ID

 - [GET /api/v3/rates/{id}](https://apidocs.resharmonics.com/apis/resharmonics-pms/rates/getrate.md): Retrieves a specific rate by its unique identifier. Returns basic rate information including rate code, type, and name.

### Get rate segments for a rate

 - [GET /api/v3/rates/{id}/rateSegments](https://apidocs.resharmonics.com/apis/resharmonics-pms/rates/getratesegments.md): Retrieves a paginated list of rate segments for a specific rate within the given date range. Returns detailed information about each rate segment including pricing and availability.

### Get unit types for a rate

 - [GET /api/v3/rates/{id}/unitTypes](https://apidocs.resharmonics.com/apis/resharmonics-pms/rates/getunittypes.md): Retrieves a paginated list of unit types associated with a specific rate. Returns summary information for each unit type including ID and name.

### Retrieve rate segments for a specified rate ID and date range

 - [GET /api/v3/rates/{rateId}/segments](https://apidocs.resharmonics.com/apis/resharmonics-pms/rates/getsnapshotofrate.md): Retrieve list of rate summaries for a rate specified by rate ID between two dates. This groupstogether rates with similar names and returns the rate segments for the specified date range. Allowing for easy comparison of rates with different lengths of stay and amounts.

## Referrers

Represents Referrer entities within the Property Management System (PMS), which track sources of referrals for guests, bookings, or corporate clients. Referrers help identify the origin of reservations, whether from marketing campaigns, travel agencies, corporate partnerships, or other sources. This functionality enables property managers to analyse booking trends, measure the effectiveness of referral channels, and optimise marketing strategies. Referrer data can also be used for loyalty programs, commission tracking, and targeted promotions.

### Retrieve list of all referrers

 - [GET /api/v3/referrers](https://apidocs.resharmonics.com/apis/resharmonics-pms/referrers/listreferrers.md): Fetch a list of all available referrers within the Property Management System (PMS). Referrers track sources of referrals for guests, bookings, or corporate clients, helping to identify the origin of reservations. This data is useful for analysing booking trends, measuring the effectiveness of referral channels, and optimising marketing strategies. The response includes a list of all defined referrers, each with relevant metadata. If an unexpected system error occurs, a 500 Internal Server Error will be triggered.

### Retrieve a specific referrer by its ID

 - [GET /api/v3/referrers/{id}](https://apidocs.resharmonics.com/apis/resharmonics-pms/referrers/getreferrerbyid.md): Fetch details of a specific referrer within the Property Management System (PMS) using its unique ID. This endpoint returns the referrer information, which includes metadata about the source of referrals. If the referrer is not found, a 404 Not Found error will be returned. In case of an unexpected system error, a 500 Internal Server Error will be triggered.

## Region

Represents Region entities within the Property Management System (PMS). Regions are used to categorize geographical areas for better management and reporting. This functionality helps in organizing properties, defining operational zones, and generating location-based insights. Regions can be used to optimize resource allocation, enhance guest experiences, and support strategic decision-making.

### Retrieve list of regions

 - [GET /api/v3/regions](https://apidocs.resharmonics.com/apis/resharmonics-pms/region/listallregions.md): Fetch a paginated list of regions within the Property Management System (PMS). Regions help in organizing properties, defining operational zones, and generating location-based insights. The response includes a list of regions with relevant metadata. If an unexpected system error occurs, a 500 Internal Server Error will be triggered.

### Create a new region

 - [POST /api/v3/regions](https://apidocs.resharmonics.com/apis/resharmonics-pms/region/createregion.md): Creates a new region within the Property Management System (PMS) with the provided details. Regions help in organizing properties, defining operational zones, and generating location-based insights. This endpoint is useful for adding new regions to the system for better management and reporting. The request body should contain the necessary details for the new region. If the creation is successful, the newly created region's details will be returned. In case of an unexpected system error, a 500 Internal Server Error will be triggered.

### Retrieve a region by Id

 - [GET /api/v3/regions/{id}](https://apidocs.resharmonics.com/apis/resharmonics-pms/region/getregionbyid.md): Fetch detailed information about a specific region within the Property Management System (PMS) using its unique ID. Regions help in organizing properties, defining operational zones, and generating location-based insights. This endpoint is useful for retrieving region-specific data for reporting, resource allocation, and strategic decision-making. The response includes details about the region, including its classification and associated metadata. If the specified region ID does not exist, a 404 Not Found error will be returned. In case of an unexpected system error, a 500 Internal Server Error will be triggered.

### Update an existing region

 - [PUT /api/v3/regions/{id}](https://apidocs.resharmonics.com/apis/resharmonics-pms/region/updateregion.md): Updates an existing region within the Property Management System (PMS) with the provided details. Regions help in organizing properties, defining operational zones, and generating location-based insights. This endpoint is useful for modifying existing regions to reflect changes in geographical areas or operational zones. The request body should contain the updated details for the region. If the specified region ID does not exist, a 404 Not Found error will be returned. In case of an unexpected system error, a 500 Internal Server Error will be triggered.

### Delete a region by Id

 - [DELETE /api/v3/regions/{id}](https://apidocs.resharmonics.com/apis/resharmonics-pms/region/deleteregionbyid.md): Deletes a specific region within the Property Management System (PMS) using its unique ID. Regions help in organizing properties, defining operational zones, and generating location-based insights. This endpoint is useful for removing regions that are no longer relevant or needed in the system. The region will be marked as deleted rather than permanently removed to maintain historical data integrity. If the specified region ID does not exist, a 404 Not Found error will be returned. In case of an unexpected system error, a 500 Internal Server Error will be triggered.

## Room Stays

Room stays are the specific stays in rooms under a booking, linking pricing, room, guests, and rates. This entity is part of the Property Management System (PMS) and is used to manage and track the details of each stay, including the duration, associated guests, and any additional services or charges. Room stays help in organizing bookings, ensuring accurate billing, and enhancing the overall guest experience.

### Retrieve Room Stays from defined parameters.

 - [GET /api/v3/roomStays](https://apidocs.resharmonics.com/apis/resharmonics-pms/room-stays/listallroomstays.md): Fetch a paginated list of room stays based on various filters such as date, status, and booking details. The response includes a list of room stays with relevant metadata. If an unexpected system error occurs, a 500 Internal Server Error will be triggered.

### Lock a specified roomstay

 - [PATCH /api/v3/roomStays/roomStays/{id}/lock](https://apidocs.resharmonics.com/apis/resharmonics-pms/room-stays/roomstayapilockroomstay.md): Locks the room stay identified by the given ID, preventing further modifications. This operation is useful for ensuring that the details of a room stay are finalized and cannot be altered. If the specified room stay ID does not exist, a 404 Not Found error will be returned. In case of an unexpected system error, a 500 Internal Server Error will be triggered.

### Retrieve Room Stay by id

 - [GET /api/v3/roomStays/{id}](https://apidocs.resharmonics.com/apis/resharmonics-pms/room-stays/getroomstaybyid.md): Fetch detailed information about a specific room stay within the Property Management System (PMS) using its unique ID. Room stays help in organizing bookings, ensuring accurate billing, and enhancing the overall guest experience. This endpoint is useful for retrieving room stay-specific data for reporting, resource allocation, and strategic decision-making. The response includes details about the room stay, including its duration, associated guests, and any additional services or charges. If the specified room stay ID does not exist, a 404 Not Found error will be returned. In case of an unexpected system error, a 500 Internal Server Error will be triggered.

### Update a room stay

 - [PUT /api/v3/roomStays/{id}](https://apidocs.resharmonics.com/apis/resharmonics-pms/room-stays/updateroomstay.md): This endpoint is used to update a room stay with amended dates

### Retrieve activities for specified room stay

 - [GET /api/v3/roomStays/{id}/activities](https://apidocs.resharmonics.com/apis/resharmonics-pms/room-stays/getactivitiesbyroomstayid.md): Fetch a list of all activities associated with a specific room stay. This endpoint is useful for retrieving detailed information about activities related to a room stay. If the specified room stay ID does not exist, a 404 Not Found error will be returned. In case of an unexpected system error, a 500 Internal Server Error will be triggered.

### Retrieve extras for specified room stay

 - [GET /api/v3/roomStays/{id}/chargeableExtras](https://apidocs.resharmonics.com/apis/resharmonics-pms/room-stays/getroomstayextrasbyroomstayid.md): Fetch a list of all chargeable extras associated with a specific room stay. This endpoint is useful for retrieving detailed information about additional services or charges applied to a room stay. If the specified room stay ID does not exist, a 404 Not Found error will be returned. In case of an unexpected system error, a 500 Internal Server Error will be triggered.

### Create a room stay extra

 - [POST /api/v3/roomStays/{id}/chargeableExtras](https://apidocs.resharmonics.com/apis/resharmonics-pms/room-stays/createroomstayextra.md): This endpoint is used to create a new room stay extra.

### Get custom fields for a room stay

 - [GET /api/v3/roomStays/{id}/customFields](https://apidocs.resharmonics.com/apis/resharmonics-pms/room-stays/getcustomfieldsforroomstay.md): Retrieve all custom fields associated with a specific room stay record. The response includes a list of custom fields, each containing details such as field name, type, and value. This endpoint is useful for accessing additional information stored in custom fields that are not part of the standard room stay attributes.

### Create a fee invoice item for a room stay

 - [POST /api/v3/roomStays/{id}/fees](https://apidocs.resharmonics.com/apis/resharmonics-pms/room-stays/createroomstayfee.md): Creates a new fee invoice item associated with a specific room stay. This endpoint allows you to apply various fees (such as late checkout fees, damage fees, etc.) to a room stay. The fee will be added as a sales invoice item on the room stay's billing account. If the specified room stay ID does not exist, a 404 Not Found error will be returned. In case of an unexpected system error, a 500 Internal Server Error will be triggered.

### Retrieve guest stays for specified room stay

 - [GET /api/v3/roomStays/{id}/guestStays](https://apidocs.resharmonics.com/apis/resharmonics-pms/room-stays/getgueststaysbyroomstayid.md): Fetch a list of all guest stays associated with a specific room stay. This endpoint is useful for retrieving detailed information about guests staying in a room. If the specified room stay ID does not exist, a 404 Not Found error will be returned. In case of an unexpected system error, a 500 Internal Server Error will be triggered.

### Retrieve guests for specified room stay

 - [GET /api/v3/roomStays/{id}/guests](https://apidocs.resharmonics.com/apis/resharmonics-pms/room-stays/getguestsbyroomstayid.md): Fetch a list of all guests associated with a specific room stay. This endpoint is useful for retrieving detailed information about guests staying in a room. If the specified room stay ID does not exist, a 404 Not Found error will be returned. In case of an unexpected system error, a 500 Internal Server Error will be triggered.

### Retrieve list of all invoice items for specified room stay

 - [GET /api/v3/roomStays/{id}/salesInvoiceItems](https://apidocs.resharmonics.com/apis/resharmonics-pms/room-stays/getinvoicesbyroomstayid.md): Fetch a list of all invoice items associated with a specific room stay. This endpoint is useful for retrieving detailed billing information for a room stay, including charges for services and any additional fees. If the specified room stay ID does not exist, a 404 Not Found error will be returned. In case of an unexpected system error, a 500 Internal Server Error will be triggered.

## Sales Invoices

Operations related to Sales Invoice entity from the Property Management System (PMS), including retrieval, creation, updating, and deletion of sales invoices. This API provides endpoints to manage sales invoices, which are essential for tracking sales transactions, generating financial reports, and ensuring accurate billing. The operations include retrieving a list of all sales invoices, fetching details of a specific invoice, creating new invoices, updating existing invoices, and marking invoices as posted or exported to external finance systems. These functionalities help in maintaining the financial integrity and operational efficiency of the PMS.

### Retrieve a list of all invoices

 - [GET /api/v3/salesInvoices](https://apidocs.resharmonics.com/apis/resharmonics-pms/sales-invoices/findsalesinvoices.md): Fetch a list of all sales invoices within the Property Management System (PMS). This endpoint is useful for retrieving detailed information about sales transactions, including invoice dates, associated organizations, and statuses. The response includes paginated results of sales invoices, which can be filtered by date range, organization ID, and status. If no invoices match the specified criteria, an empty list will be returned. In case of an unexpected system error, a 500 Internal Server Error will be triggered.

### Create a single invoice

 - [POST /api/v3/salesInvoices](https://apidocs.resharmonics.com/apis/resharmonics-pms/sales-invoices/createsalesinvoice.md): Create a new sales invoice within the Property Management System (PMS). This endpoint allows you to create a new sales invoice by providing the necessary invoice details in the request body. The invoice will be created with a 'DRAFT' status by default and can be updated or posted later. This operation requires authentication and will associate the created invoice with the authenticated user. The request body should include invoice details such as organization ID, invoice date, line items, and other relevant information. Upon successful creation, the response will contain the complete invoice details including the assigned invoice ID. In case of an unexpected system error during creation, a 500 Internal Server Error will be triggered.

### Retrieve a single invoice item

 - [GET /api/v3/salesInvoices/salesInvoiceItems/{id}](https://apidocs.resharmonics.com/apis/resharmonics-pms/sales-invoices/findinvoiceitem.md): Fetch detailed information about a specific sales invoice item within the Property Management System (PMS) using its unique ID. Sales invoice items are essential for tracking individual components of sales transactions, including item descriptions, quantities, and prices. This endpoint is useful for retrieving item-specific data for reporting, auditing, and financial analysis. If the specified sales invoice item ID does not exist, a 404 Not Found error will be returned. In case of an unexpected system error, a 500 Internal Server Error will be triggered.

### Retrieve a single invoice

 - [GET /api/v3/salesInvoices/{id}](https://apidocs.resharmonics.com/apis/resharmonics-pms/sales-invoices/findinvoice.md): Fetch detailed information about a specific sales invoice within the Property Management System (PMS) using its unique ID. Sales invoices are essential for tracking sales transactions, generating financial reports, and ensuring accurate billing. This endpoint is useful for retrieving invoice-specific data for reporting, auditing, and financial analysis. The response includes details about the sales invoice, including its date, associated organization, status, and line items. If the specified sales invoice ID does not exist, a 404 Not Found error will be returned. In case of an unexpected system error, a 500 Internal Server Error will be triggered.

### Get custom fields for a sales invoices

 - [GET /api/v3/salesInvoices/{id}/customFields](https://apidocs.resharmonics.com/apis/resharmonics-pms/sales-invoices/getcustomfieldsforsalesinvoice.md): Retrieve all custom fields associated with a specific sales invoice record in the finance module of the PMS. The response includes a list of custom fields, each containing details such as field name, type, and value. This endpoint is useful for accessing additional information stored in custom fields that are not part of the standard sales invoice attributes.

### Retrieve a Invoice PDF for a single invoice

 - [GET /api/v3/salesInvoices/{id}/download](https://apidocs.resharmonics.com/apis/resharmonics-pms/sales-invoices/extractinvoicedocument.md): Fetch a PDF for the Invoice for a sales invoice. The request will specify the invoice id to extract PDF required

### Update an invoice to a given status in relation to an external finance system

 - [PATCH /api/v3/salesInvoices/{id}/exportStatus](https://apidocs.resharmonics.com/apis/resharmonics-pms/sales-invoices/updatesalesinvoiceexportstatus.md): Update the external identifier record linked to a specific sales invoice; the updateable fields are export status, external ID and exported date time. This operation is essential for synchronizing the invoice export status with external financial systems, ensuring that the invoice export status is maintained in line with the integrated external system. The request body should include the external ID, export status and the exported date. Note: if the export status is already EXPORTED, then no update will be performed, instead, an exception will be thrown. If the specified sales invoice ID does not exist, a 404 Not Found error will be returned. If the invoice is not in the 'POSTED' status, a 400 Bad Request error will be returned. In case of an unexpected system error, a 500 Internal Server Error will be triggered.

### Update an invoice as Exported to an external finance system

 - [PATCH /api/v3/salesInvoices/{id}/exported](https://apidocs.resharmonics.com/apis/resharmonics-pms/sales-invoices/markasexported.md): Mark a specific sales invoice as exported to an external finance system using its unique ID. This operation is essential for synchronizing the invoice status with external financial systems, ensuring that the invoice is recognized as exported. The request body should include the external ID and the exported date. If the specified sales invoice ID does not exist, a 404 Not Found error will be returned. If the invoice is not in the 'POSTED' status, a 400 Bad Request error will be returned. In case of an unexpected system error, a 500 Internal Server Error will be triggered.

### Post invoice to ledgers

 - [POST /api/v3/salesInvoices/{id}/post](https://apidocs.resharmonics.com/apis/resharmonics-pms/sales-invoices/marksalesinvoiceposted.md): Mark a specific sales invoice as posted using its unique ID. This operation is essential for updating the invoice status to 'POSTED', indicating that the invoice has been finalized and is ready for further processing. If the specified sales invoice ID does not exist, a 404 Not Found error will be returned. If the invoice is already in the 'POSTED' status, a 400 Bad Request error will be returned. In case of an unexpected system error, a 500 Internal Server Error will be triggered.

### Retrieve all sales invoice items for a specific invoice

 - [GET /api/v3/salesInvoices/{id}/salesInvoiceItems](https://apidocs.resharmonics.com/apis/resharmonics-pms/sales-invoices/findinvoiceitems.md): Fetch all sales invoice items associated with a specific sales invoice using its unique ID. This endpoint is useful for retrieving detailed information about the items within a sales invoice, including item descriptions, quantities, and prices. If the specified sales invoice ID does not exist, a 404 Not Found error will be returned. In case of an unexpected system error, a 500 Internal Server Error will be triggered.

## Tags

Represents Tag entities within the Property Management System (PMS), allowing users to categorise and organise various system entities with custom tag information. Tags provide a flexible way to label and classify properties, bookings, guests, accounts, and other records based on specific criteria. This functionality enhances searchability, reporting, and segmentation by enabling property managers to create and manage custom tags tailored to their operational needs. Tags can be used for filtering, grouping, and applying business logic to different entities across the PMS, supporting improved organisation and data management.

### Retrieve all Tags

 - [GET /api/v3/tags](https://apidocs.resharmonics.com/apis/resharmonics-pms/tags/listtags.md): Fetch a list of all tags within the Property Management System (PMS). This endpoint is useful for retrieving detailed information about tags, including their names and descriptions. The response includes a list of tags, which can be used for categorizing and organizing various system entities. If no tags are found, an empty list will be returned. In case of an unexpected system error, a 500 Internal Server Error will be triggered.

### Retrieve tags using specified ID

 - [GET /api/v3/tags/{id}](https://apidocs.resharmonics.com/apis/resharmonics-pms/tags/gettagtbyid.md): Fetch detailed information about a specific tag within the Property Management System (PMS) using its unique ID. Tags are essential for categorizing and organizing various system entities, such as properties, bookings, guests, accounts, and other records. This endpoint is useful for retrieving tag-specific data for reporting, auditing, and data management purposes. The response includes details about the tag, including its name and description. If the specified tag ID does not exist, a 404 Not Found error will be returned. In case of an unexpected system error, a 500 Internal Server Error will be triggered.

## Tax Codes

Operations related to Tax Code entities from the Property Management System (PMS), including retrieval and management of tax codes used in financial transactions. Tax codes define the tax rates and types applied to invoice line items, such as standard VAT, reduced VAT, zero-rated, or exempt. This API provides endpoints to list and retrieve tax code information, which is essential for creating accurate invoices, ensuring proper tax calculations, maintaining compliance with tax regulations, and integrating with external accounting systems. Tax codes include details such as the tax rate percentage, tax code identifier, name, type (sales/purchase), and mappings to external systems like Xero. These functionalities support accurate tax reporting and financial integrity within the PMS.

### Retrieve a paginated list of all tax codes

 - [GET /api/v3/taxCodes](https://apidocs.resharmonics.com/apis/resharmonics-pms/tax-codes/listalltaxcodes.md): Fetch a paginated list of all tax codes configured in the Property Management System (PMS). Tax codes represent different tax rates and classifications that can be applied to invoice line items, such as standard VAT (e.g., 20%), reduced VAT (e.g., 5%), zero-rated (0%), or tax-exempt items. This endpoint is useful for retrieving the complete tax code catalog to understand available tax classifications, populate dropdown selections in invoice creation and product configuration interfaces, ensure accurate tax calculations on invoices, or integrate with external accounting systems. The response includes paginated results with tax code details including ID, code identifier, name, tax rate percentage (stored with 2 decimal precision), type (SALES or PURCHASE), Xero tax type mapping for external system integration, and export name for accounting purposes. Tax codes are returned in the order specified by the pageable parameter. Tax rates are stored as decimal values (e.g., 20.00 for 20% VAT) and should be rounded to 2 decimal places when used in calculations to maintain consistency with database precision. If no tax codes exist in the system, an empty list will be returned. In case of an unexpected system error, a 500 Internal Server Error will be triggered.

## Teams

Represents the Team entity within the Property Management System (PMS), which is used to manage groups of users or staff members associated with specific roles, responsibilities, or properties. The Team entity includes details such as team name, members, assigned tasks, and permissions. This functionality is essential for organising operational workflows, assigning responsibilities across properties, and ensuring efficient collaboration between staff members. Teams can be linked to specific properties, bookings, or tasks, enabling streamlined management and accountability in day-to-day operations.

### Search for Team entities

 - [GET /api/v3/teams](https://apidocs.resharmonics.com/apis/resharmonics-pms/teams/searchteams.md): Retrieve a paginated list of teams within the Property Management System (PMS) based on optional search criteria. You can filter the results by team name using a query parameter (teamName), which supports partial matches with wildcards. The response includes a paginated list of team records, each containing basic details such as the team's name and key attributes. This endpoint is useful for browsing and managing multiple teams, enabling efficient search and navigation across large datasets. If no search criteria are provided, all teams will be returned in the response.

### Retrieve team entity by ID

 - [GET /api/v3/teams/{id}](https://apidocs.resharmonics.com/apis/resharmonics-pms/teams/findteam.md): Fetch detailed information about a specific team within the Property Management System (PMS) by providing its unique ID. The response includes information such as the team's name, members, assigned roles, permissions, and any associated properties or tasks. This endpoint is useful for managing team configurations, reviewing responsibilities, or retrieving team-specific details for operational purposes. If the team ID does not exist, an appropriate error response will be returned.

## Unit Access Groups

Represents Unit Access Groups within the Property Management System (PMS), allowing access control and permission management for unit entities. Unit Access Groups link units to Access Groups which are the access control groups defined in external acces control systems. Contacts are linked to Access Groups for the duration of their stay based on unit they are staying in

### Retrieve list of Unit Access Groups

 - [GET /api/v3/unitAccessGroups](https://apidocs.resharmonics.com/apis/resharmonics-pms/unit-access-groups/listallunitaccessgroups.md): Fetch a list of all unit access groups within the Property Management System (PMS). This endpoint is useful for retrieving detailed information about unit access groups, including their associated units and access group names. The response includes a paginated list of unit access groups, which can be used for managing access control and permissions. If no unit access groups are found, an empty list will be returned. In case of an unexpected system error, a 500 Internal Server Error will be triggered.

### Update a unit access group

 - [PUT /api/v3/unitAccessGroups](https://apidocs.resharmonics.com/apis/resharmonics-pms/unit-access-groups/updateunitaccessgroup.md): Update an existing unit access group within the Property Management System (PMS). This endpoint allows the modification of details for a specific unit access group, including its associated unit and access group information. The request body must include the updated details of the unit access group. The response includes the updated unit access group details. If the specified unit access group ID does not exist, a 404 Not Found error will be returned. In case of validation errors, a 400 Bad Request error will be returned. In case of an unexpected system error, a 500 Internal Server Error will be triggered.

### Create a new Access Group

 - [POST /api/v3/unitAccessGroups](https://apidocs.resharmonics.com/apis/resharmonics-pms/unit-access-groups/createunitaccessgroup.md): Create a new unit access group within the Property Management System (PMS). This endpoint allows the creation of a new unit access group, which links a unit to an access group. The request body must include details of the unit and the access group. The response includes the newly created unit access group details. In case of validation errors, a 400 Bad Request error will be returned. In case of an unexpected system error, a 500 Internal Server Error will be triggered.

### Retrieve an Unit Access Group by Id

 - [GET /api/v3/unitAccessGroups/{id}](https://apidocs.resharmonics.com/apis/resharmonics-pms/unit-access-groups/getunitaccessgroupbyid.md): Fetch detailed information about a specific unit access group within the Property Management System (PMS) using its unique ID. Unit access groups are essential for managing access control and permissions for unit entities. This endpoint is useful for retrieving unit access group-specific data for reporting, auditing, and data management purposes. The response includes details about the unit access group, including its associated unit and access group names. If the specified unit access group ID does not exist, a 404 Not Found error will be returned. In case of an unexpected system error, a 500 Internal Server Error will be triggered.

## Unit Contracts

Manages unit contracts which define the relationship between property units and their contractual agreements. Provides endpoints for searching contracts, retrieving contract details, and accessing associated units. Used for managing lease agreements, rental terms, and property assignments within the system.

### Search unit contracts

 - [GET /api/v3/unitContracts](https://apidocs.resharmonics.com/apis/resharmonics-pms/unit-contracts/searchunitcontracts.md): Search for unit contracts with optional filtering by unit ID and building ID

### Get unit contract by ID

 - [GET /api/v3/unitContracts/{id}](https://apidocs.resharmonics.com/apis/resharmonics-pms/unit-contracts/getunitcontract.md): Retrieve detailed information about a specific unit contract

### Get units for contract

 - [GET /api/v3/unitContracts/{id}/units](https://apidocs.resharmonics.com/apis/resharmonics-pms/unit-contracts/getunits.md): Retrieve all units associated with a specific unit contract

## Unit Locations

Represents Unit Location entities within the Property Management System (PMS), each location is associated with a specific unit which and can have multiple internal locations such as bathrooms, living spaces etcThis API allows for the management of unit locations, including retrieval, creation, and updates.

### Retrieve unit locations

 - [GET /api/v3/unitLocations](https://apidocs.resharmonics.com/apis/resharmonics-pms/unit-locations/getunitlocations.md): Fetches a paginated list of unit locations within the Property Management System (PMS). This endpoint allows filtering by unit ID, building ID to retrieve specific unit locations and also, unit location last updated date time. Unit locations represent different areas or spaces within a unit (e.g., bathrooms, living spaces). The response includes location details such as type, description, and associated metadata. If no locations are found for the specified filters, an empty page will be returned. Results are paginated to handle large datasets efficiently.

### Retrieve unit location by ID

 - [GET /api/v3/unitLocations/{id}](https://apidocs.resharmonics.com/apis/resharmonics-pms/unit-locations/getunitlocationbyid.md): Fetches a specific unit location by its unique identifier. This endpoint provides detailed information about a particular unit location, including its type, associated unit, and other relevant metadata. If the specified unit location ID does not exist, a not found error will be returned.

## Unit Types

Represents Unit Type entities within the Property Management System (PMS), defining the classification and characteristics of different units within a property. Unit Types help categorise accommodations based on factors such as size, layout, amenities, and occupancy capacity (e.g., studio, one-bedroom apartment, deluxe suite). This functionality is essential for inventory management, pricing strategies, availability searches, and reporting. Unit Types enable property managers to streamline booking processes, optimise revenue, and ensure accurate property listings across platforms.

### Get all unit types

 - [GET /api/v3/unitTypes](https://apidocs.resharmonics.com/apis/resharmonics-pms/unit-types/getallunittypes.md): Fetch a list of all unit types within the Property Management System (PMS). This endpoint is useful for retrieving detailed information about unit types, including their classification and characteristics such as size, layout, amenities, and occupancy capacity. The response includes a paginated list of unit types, which can be used for inventory management, pricing strategies, availability searches, and reporting. If no unit types are found, an empty list will be returned. In case of an unexpected system error, a 500 Internal Server Error will be triggered.

### Create a new unit type

 - [POST /api/v3/unitTypes](https://apidocs.resharmonics.com/apis/resharmonics-pms/unit-types/createunittype.md): Create a new unit type within the Property Management System (PMS). This endpoint allows you to define a new unit type with its classification and characteristics such as size, layout, amenities, and occupancy capacity. The request body should contain the details of the unit type to be created. If the creation is successful, the newly created unit type will be returned. In case of validation errors or unexpected system errors, appropriate error responses will be triggered.

### Retrieve a unit type by Id

 - [GET /api/v3/unitTypes/{id}](https://apidocs.resharmonics.com/apis/resharmonics-pms/unit-types/getunittypebyid.md): Fetch detailed information about a specific unit type within the Property Management System (PMS) using its unique ID. Unit types are essential for categorizing accommodations based on factors such as size, layout, amenities, and occupancy capacity. This endpoint is useful for retrieving unit type-specific data for inventory management, pricing strategies, availability searches, and reporting. The response includes details about the unit type, including its classification and characteristics. If the specified unit type ID does not exist, a 404 Not Found error will be returned. In case of an unexpected system error, a 500 Internal Server Error will be triggered.

### Update an existing unit type

 - [PUT /api/v3/unitTypes/{id}](https://apidocs.resharmonics.com/apis/resharmonics-pms/unit-types/updateunittype.md): Update an existing unit type within the Property Management System (PMS). This endpoint allows you to modify the details of a unit type, including its classification and characteristics such as size, layout, amenities, and occupancy capacity. The request body should contain the updated details of the unit type. If the update is successful, the updated unit type will be returned. In case of validation errors or unexpected system errors, appropriate error responses will be triggered.

### Delete a unit type by ID

 - [DELETE /api/v3/unitTypes/{id}](https://apidocs.resharmonics.com/apis/resharmonics-pms/unit-types/deleteunittypebyid.md): Delete a specific unit type within the Property Management System (PMS) using its unique ID. This endpoint allows you to remove a unit type, including all associated data. If the deletion is successful, a 204 No Content response will be returned. If the specified unit type ID does not exist, a 404 Not Found error will be returned. In case of unexpected system errors during the deletion process, a 500 Internal Server Error will be triggered.

### Retrieve features and facilities for a unit type

 - [GET /api/v3/unitTypes/{id}/featuresFacilities](https://apidocs.resharmonics.com/apis/resharmonics-pms/unit-types/getfeaturefacilities.md): Fetch the list of features and facilities associated with a specific unit type within the Property Management System (PMS). This endpoint provides detailed information about the amenities and characteristics available for a particular unit type. The response includes a comprehensive list of features and facilities that help define the unit type's offerings. If the specified unit type ID does not exist, a 404 Not Found error will be returned. In case of an unexpected system error, a 500 Internal Server Error will be triggered.

### Update (replace) feature facilities for a unit type

 - [PUT /api/v3/unitTypes/{id}/featuresFacilities](https://apidocs.resharmonics.com/apis/resharmonics-pms/unit-types/updatefeaturefacilities.md): Update the list of feature facilities associated with a specific unit type using its unique ID. This endpoint allows you to replace the existing feature facilities with a new set of facilities, updating the unit type's amenities and services. The request body should contain a list of feature facility IDs to be linked. If the specified unit type ID does not exist, a 404 Not Found error will be returned. In case of system errors during the update process, a 500 Internal Server Error will be triggered.

### Link (add) feature facilities to a unit type

 - [POST /api/v3/unitTypes/{id}/featuresFacilities/link](https://apidocs.resharmonics.com/apis/resharmonics-pms/unit-types/linkfacilitiestounittype.md): Link existing feature facilities to a specific unit type using its unique ID. This endpoint allows you to associate multiple feature facilities with a unit type, enhancing its amenities and services. The request body should contain a list of feature facility IDs to be linked. If the specified unit type ID does not exist, a 404 Not Found error will be returned. In case of system errors during the linking process, a 500 Internal Server Error will be triggered.

### Unlink (remove) feature facilities from a unit type

 - [POST /api/v3/unitTypes/{id}/featuresFacilities/unlink](https://apidocs.resharmonics.com/apis/resharmonics-pms/unit-types/deletefeaturefacilities.md): Unlink existing feature facilities from a specific unit type using its unique ID. This endpoint allows you to remove multiple feature facilities from a unit type, updating its amenities and services. The request body should contain a list of feature facility IDs to be unlinked. If the specified unit type ID does not exist, a 404 Not Found error will be returned. In case of system errors during the unlinking process, a 500 Internal Server Error will be triggered.

### Retrieve unit type images

 - [GET /api/v3/unitTypes/{id}/images](https://apidocs.resharmonics.com/apis/resharmonics-pms/unit-types/getimages.md): Fetch a paginated list of images associated with a specific unit type using its unique ID. This endpoint allows you to retrieve images that are linked to the unit type, which can include photos of the property, architectural designs, or other relevant visuals. The response includes image details such as file name, size, and type. If the specified development ID does not exist, a 404 Not Found error will be returned. In case of system errors during retrieval, a 500 Internal Server Error will be triggered.

### Upload a new unit type image

 - [POST /api/v3/unitTypes/{id}/images/upload](https://apidocs.resharmonics.com/apis/resharmonics-pms/unit-types/createnewimage.md): Upload a new image for a specific unit type using its unique ID. This endpoint allows you to add images that are linked to the unit type, which can include photos of the property, architectural designs, or other relevant visuals. The uploaded file should be provided as a multipart file in the request. If the specified development ID does not exist, a 404 Not Found error will be returned. In case of system errors during the upload process, a 500 Internal Server Error will be triggered.

### Delete a unit type image by ID

 - [DELETE /api/v3/unitTypes/{id}/images/{imageId}](https://apidocs.resharmonics.com/apis/resharmonics-pms/unit-types/deleteimage.md): Delete an existing image associated with a specific unit type using its unique ID. This endpoint allows you to remove an image that is linked to the unit type. If the specified development or image ID does not exist, a 404 Not Found error will be returned. In case of system errors during the deletion process, a 500 Internal Server Error will be triggered.

## Units

Represents Unit entities within the Property Management System (PMS), which are individual accommodations available for booking within a property. Units can include apartments, hotel rooms, serviced residences, or other types of rentable spaces. Each Unit is associated with a Unit Type, property, and relevant metadata such as availability, capacity, amenities, and pricing. This functionality supports efficient inventory management, booking operations, and property administration, enabling property managers to track occupancy, apply pricing strategies, and manage unit-specific details. Units are integral to availability searches, booking workflows, and reporting analytics within the PMS.

### Retrieve list of units

 - [GET /api/v3/units](https://apidocs.resharmonics.com/apis/resharmonics-pms/units/listallproperties.md): Fetch a list of all units within the Property Management System (PMS). This endpoint is useful for retrieving detailed information about units, including their availability, capacity, amenities, and pricing. The response includes a paginated list of units, which can be used for inventory management, booking operations, and property administration. If no units are found, an empty list will be returned. In case of an unexpected system error, a 500 Internal Server Error will be triggered.

### Create a new unit

 - [POST /api/v3/units](https://apidocs.resharmonics.com/apis/resharmonics-pms/units/createunit.md): Create a new unit within the Property Management System (PMS). This endpoint allows property managers to add new units, which can include apartments, hotel rooms, or other types of rentable spaces. The request body should contain the necessary details for the unit, such as its type, capacity, amenities, and pricing. Upon successful creation, the response will include the details of the newly created unit. In case of an unexpected system error, a 500 Internal Server Error will be triggered.

### Retrieve a unit by Id

 - [GET /api/v3/units/{id}](https://apidocs.resharmonics.com/apis/resharmonics-pms/units/getunitbyid.md): Fetch detailed information about a specific unit within the Property Management System (PMS) using its unique ID. Units are essential for categorizing accommodations based on factors such as availability, capacity, amenities, and pricing. This endpoint is useful for retrieving unit-specific data for inventory management, booking operations, and property administration. The response includes details about the unit, including its classification and characteristics. If the specified unit ID does not exist, a 404 Not Found error will be returned. In case of an unexpected system error, a 500 Internal Server Error will be triggered.

### Update a unit by Id

 - [PUT /api/v3/units/{id}](https://apidocs.resharmonics.com/apis/resharmonics-pms/units/updateunit.md): Update the details of a specific unit within the Property Management System (PMS) using its unique ID. This endpoint allows property managers to modify unit attributes such as availability, capacity, amenities, and pricing. The request body should contain the updated details for the unit. Upon successful update, the response will include the updated unit information. If the specified unit ID does not exist, a 404 Not Found error will be returned. In case of an unexpected system error, a 500 Internal Server Error will be triggered.

### Delete a unit by Id

 - [DELETE /api/v3/units/{id}](https://apidocs.resharmonics.com/apis/resharmonics-pms/units/deleteunitbyid.md): Delete a specific unit within the Property Management System (PMS) using its unique ID. This endpoint allows property managers to remove units that are no longer needed, such as apartments, hotel rooms, or other types of rentable spaces. Upon successful deletion, a 204 No Content response will be returned. If the specified unit ID does not exist, a 404 Not Found error will be returned. In case of an unexpected system error, a 500 Internal Server Error will be triggered.

### Retrieve list of unit access groups

 - [GET /api/v3/units/{id}/accessGroups](https://apidocs.resharmonics.com/apis/resharmonics-pms/units/getunitunitaccessgroups.md): Fetch a list of all access groups associated with a specific unit within the Property Management System (PMS) using its unique ID. Access groups define the permissions and access levels for different users or roles within the unit. This endpoint is useful for retrieving detailed information about the access groups assigned to a unit, including their names, descriptions, and associated permissions. The response includes a list of access groups, which can be used for managing user access, security settings, and role-based permissions. If no access groups are found for the specified unit ID, an empty list will be returned. In case of an unexpected system error, a 500 Internal Server Error will be triggered.

### Get custom fields for a unit

 - [GET /api/v3/units/{id}/customFields](https://apidocs.resharmonics.com/apis/resharmonics-pms/units/getcustomfieldsforunt.md): Retrieve all custom fields associated with a specific unit record in the property module of the PMS. The response includes a list of custom fields, each containing details such as field name, type, and value. This endpoint is useful for accessing additional information stored in custom fields that are not part of the standard unit attributes.

### Retrieve contracts for a specific unit

 - [GET /api/v3/units/{unitId}/unitContracts](https://apidocs.resharmonics.com/apis/resharmonics-pms/units/getunitcontracts.md): Fetch a paginated list of contracts associated with a specific unit within the Property Management System (PMS). This endpoint allows property managers to retrieve detailed information about the contracts related to a unit, including contract terms, start and end dates, and associated parties. If no contracts are found for the specified unit ID, an empty page will be returned. Results are paginated to handle large datasets efficiently.

### Retrieve internal locations for a specific unit

 - [GET /api/v3/units/{unitId}/unitLocations](https://apidocs.resharmonics.com/apis/resharmonics-pms/units/getunitinternallocations.md): Fetch a paginated list of internal locations associated with a specific unit within the Property Management System (PMS). Internal locations represent different areas or spaces within a unit, such as bathrooms, living spaces, etc. This endpoint allows property managers to retrieve detailed information about the internal locations of a unit, including their types, descriptions, and associated metadata. If no internal locations are found for the specified unit ID, an empty page will be returned. Results are paginated to handle large datasets efficiently.

## Users

Represents User entities within the Property Management System (PMS), managing authentication, authorisation, and role-based access control. Users can include property managers, front desk staff, housekeeping teams, administrators, and external partners, each with specific permissions and roles. This functionality enables secure access management, user activity tracking, and assignment of responsibilities within the PMS. User entities store essential details such as usernames, roles, contact information, and access privileges, ensuring proper security measures and operational control. The Users API facilitates user creation, role management, authentication, and administrative oversight.

### Search for User entities

 - [GET /api/v3/users](https://apidocs.resharmonics.com/apis/resharmonics-pms/users/searchusers.md): This endpoint allows searching for user entities based on various criteria such as username, first name, and last name. It returns a paginated list of user projections in JSON format. The search parameters are optional and can be combined to narrow down the search results.

### Retrieve user entity by id

 - [GET /api/v3/users/{id}](https://apidocs.resharmonics.com/apis/resharmonics-pms/users/finduser.md): This endpoint retrieves a user entity based on the provided user ID. It returns the user details in JSON format. The user ID must be specified in the URL path.

## VAT Profiles

Operations related to VAT Profile entities from the Property Management System (PMS), including retrieval and management of VAT/tax profiles used for complex tax calculations. VAT Profiles define tax rate structures that can vary based on time periods, accommodation types, or regional requirements. For example, serviced apartment accommodations may have high and low VAT rates that change at specific points during a stay, typically transitioning from standard VAT to reduced VAT after a certain number of nights. This API provides endpoints to list and retrieve VAT profile configurations, which is essential for accurate tax calculations on long-term stays, managing seasonal tax rate changes, ensuring compliance with complex tax regulations, and integrating with tax reporting systems. VAT Profiles contain tax seasons with effective date ranges and associated tax codes, allowing the system to automatically apply the correct tax rate based on stay duration and dates. These functionalities support sophisticated tax management and regulatory compliance within the PMS.

### Retrieve a paginated list of all VAT profiles

 - [GET /api/v3/vatProfiles](https://apidocs.resharmonics.com/apis/resharmonics-pms/vat-profiles/listallvatprofiles.md): Fetch a paginated list of all VAT profiles configured in the Property Management System (PMS). VAT Profiles are sophisticated tax configuration structures that define how tax rates are applied based on various factors such as stay duration, dates, accommodation types, and regional requirements. This endpoint is particularly important for properties with complex tax requirements, such as serviced apartments where VAT rates may change from standard (e.g., 20%) to reduced rates (e.g., 5%) after a certain number of nights, or properties operating in jurisdictions with seasonal tax variations. This endpoint is useful for retrieving VAT profile configurations to understand tax rate structures, support tax calculation logic in booking and invoicing systems, ensure compliance with tax regulations, integrate with tax reporting and accounting systems, or configure new properties with appropriate tax profiles. The response includes paginated results with VAT profile details including ID, profile name, description, standard rate indicator, and associated tax seasons. Each tax season contains effective date ranges, high and low tax codes (for accommodations with variable rates), and rate change thresholds. For example, a serviced apartment VAT profile might specify that stays under 28 nights use standard VAT (20%), while longer stays qualify for reduced VAT (5%). The system automatically determines which tax code to apply based on the stay dates and duration by evaluating the active tax season and applicable rate tier. VAT Profiles are returned in the order specified by the pageable parameter. Tax rates within VAT profiles follow the same 2 decimal precision standard as tax codes (e.g., 20.00, 5.00) and use RoundingMode.HALF_UP for calculations to maintain consistency across the system. If no VAT profiles exist in the system, an empty list will be returned. In case of an unexpected system error, a 500 Internal Server Error will be triggered.

