Download OpenAPI specification:
homeit is a property management system, designed for short-term rentals. The homeit platform allows you to manage all your properties from a single place.
The homeit PMS API allows you to manage PMS resources such as properties, room types, rate plans, bookings, message templates, and OTA channel integrations.
If you have any suggestions or questions regarding this API, please send us an email.
These documentation pages were automatically generated from an OpenAPI file, and are intended to be used by developers as detailed descriptions of our API.
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC 2119] [RFC 8174] when, and only when, they appear in all capitals, as shown here.
What this API does for partners
The homeit PMS API allows partners to integrate with the homeit network.
Our API is REST-compliant and uses resource-oriented URLs and common HTTP response codes to indicate API errors.
This document is entirely written in English. Similarly, all enumerated values used in this API are also written in English.
The API is available at https://api.homeit.io/v2.
This API consists of several resource routes. Each resource route allows a user to find, create, update or remove a specific resource type.
All resource routes follow the same structure and offer similar high-level functionality. When applicable, resource routes include the following endpoints:
GET /{{resource}}: Find all available resources the authenticated user is allowed to access. Search query parameters may be used to filter results.POST /{{resource}}: Create a new resource.GET /{{resource}}/{{id}}: Get a specific resource by its ID.PUT /{{resource}}/{{id}}: Update a specific resource.DELETE /{{resource}}/{{id}}: Remove a specific resource.For example, to update the name of a Key resource with ID 123456 to "HOMEIT", an HTTP PUT request should be sent to https://api.homeit.io/v2/keys/123456 with the body {"name":"HOMEIT"}.
This document's first sections provide details on how to use the API, including security considerations, data formats, and testing instructions.
Then, all resource routes are listed. In this section, you will find request and response formats for each resource type, as well as example responses and code snippets.
Finally, we include the data model for each resource type, along with data type requirements and example values. Fields present in a resource document but not included in the resource's data model should not be used, as they are subject to change at any moment without prior notice. Deprecated fields will be marked as such and should also not be used.
Most API routes require authentication using an API Key or a Bearer token. Requests made without authentication will fail with a 401 Unauthorized error.
When applicable, requests may be authenticated using one of the following methods:
https://api.homeit.io/v2/resource?apikey={{apikey}}Authorization HTTP header. Example: Authorization: Bearer {{token}}You can find additional information in the Authentication section.
If too many requests are sent in a short amount of time, a 429 Too Many Requests error is returned until request rates return to normal. Client applications should honour the following request rate limits:
All operations are automatically paginated in the following way:
{ docs: [], total: 120, limit: 10, skip: 0 }
Operations which return a single resource are still paginated, but will show total and limit values of 1.
You can define a limit on the number of documents to be returned which can range between 1 and 100 items. The default is 10 items.
Similarly, you can skip any number of documents, effectively setting the starting position by providing an index. This index should not exceed the total amount of available documents.
For example, https://api.homeit.io/v2/keys?limit=100&skip=10 returns at most 100 items, skipping the first 10 documents.
All list operations can be sorted by any of the document's fields, as long as its assigned value is a number, a string or a date.
The sortBy parameter provides the key you want to sort by, while the order parameter tells the API in which order you want your results: asc for ascending and desc for descending.
For example, https://api.homeit.io/v2/keys?sortBy=id&order=desc returns items sorted by ID, in descending order.
All operations return a collection of hypermedia links to other pages of the same request or other related requests. This collection follows the HAL format.
This behavior can be disabled by setting the hypermedia query parameter to false.
For example, https://api.homeit.io/v2/keys?hypermedia=false returns a response without hypermedia information.
All API responses are given in JSON format. All request bodies should also be provided as JSON.
Request body content type should be application/json. Response body content type will always be application/json+hal unless otherwise specified.
All dates follow the ISO 8601 format standard.
In case of internal or external error, the following HTTP error codes will be returned:
Other 4XX and 5XX error codes may be returned upon malformed request payload or gateway errors.
During normal operation, the following HTTP codes will be returned:
All operations accept a dry boolean query parameter. When testing, you can enable dry-run mode by setting this parameter to true.
In this mode, side-effects such as database writes are disabled, but responses are still returned as normal.
For example, an update request to https://api.homeit.io/v2/keys/123?dry=true would return the updated document, but no changes would be persisted.
If you would like to report an error or have any suggestions or questions regarding this API, please send us an email to api@homeit.io. Any feedback is greatly appreciated. Please use English for all communications.
Get all PMS Properties you have access to. You may use filters to narrow your search.
| id | Array of strings[ items^[a-fA-F0-9]{24}$ ] Example: id=64f8f1a4c4e2b977f7b4d001 A list of PMS resource MongoDB ObjectIds. |
| name | string Example: name=Example The resource name, or part of it. Case-insensitive. |
| description | string Example: description=Example The resource description, or part of it. Case-insensitive. |
| property | Array of integers <int64> [ items <int64 > ] A list of Core Property numeric IDs. |
| door | Array of integers <int64> [ items <int64 > ] A list of Core Door numeric IDs. |
| currency | Array of strings Filter by currency. |
| type | Array of strings Filter by property type. |
| isCreateKey | boolean Filter by automatic key creation status. |
| provider | Array of strings Items Enum: "homeit" "channex" Example: provider=channex Filter by provider. |
| isActive | boolean Example: isActive=true Filter by active status. |
| createdBefore | string <date-time> Example: createdBefore=2026-01-01T00:00:00.000Z Filter by creation date. Format MUST comply with ISO 8601. |
| createdAfter | string <date-time> Example: createdAfter=2025-01-01T00:00:00.000Z Filter by creation date. Format MUST comply with ISO 8601. |
| updatedBefore | string <date-time> Example: updatedBefore=2026-01-01T00:00:00.000Z Filter by last update date. Format MUST comply with ISO 8601. |
| updatedAfter | string <date-time> Example: updatedAfter=2025-01-01T00:00:00.000Z Filter by last update date. Format MUST comply with ISO 8601. |
| limit | integer [ 1 .. 100 ] Default: 10 Example: limit=25 Maximum number of resources to return. |
| skip | integer >= 0 Default: 0 Example: skip=10 Number of resources to skip. |
| sortBy | string Example: sortBy=dateCreated Field used for sorting. |
| order | string Default: "asc" Enum: "asc" "desc" Example: order=desc Sort order. |
| dry | boolean Default: false Example: dry=true Enable dry-run mode, for testing. |
| hypermedia | boolean Default: true Disable hypermedia links in response. |
curl -XGET "https://api.homeit.io/v2/properties?name=Lisbon&provider=channex" \ -H "Content-type: application/json" \ -H "Authorization: Bearer {{token}}"
{- "docs": [
- {
- "id": "64f8f1a4c4e2b977f7b4d001",
- "name": "Lisbon Downtown Apartment",
- "description": "Primary PMS property for downtown reservations.",
- "organization": 42,
- "property": 1201,
- "doors": [
- 3001,
- 3002
], - "currency": "EUR",
- "type": "apartment",
- "isCreateKey": true,
- "template": "64f8f1a4c4e2b977f7b4d501",
- "provider": "channex",
- "providerId": "chx_property_123",
- "isActive": true,
- "dateCreated": "2026-01-10T09:00:00.000Z",
- "createdBy": 7,
- "dateUpdated": "2026-02-11T10:30:00.000Z",
- "updatedBy": 7,
- "deleted": false
}, - {
- "id": "64f8f1a4c4e2b977f7b4d002",
- "name": "Porto Riverside House",
- "description": "Secondary PMS property.",
- "organization": 42,
- "property": 1202,
- "doors": [
- 3010
], - "currency": "EUR",
- "type": "holiday_home",
- "isCreateKey": true,
- "template": "64f8f1a4c4e2b977f7b4d502",
- "provider": "homeit",
- "providerId": null,
- "isActive": true,
- "dateCreated": "2026-01-12T11:00:00.000Z",
- "createdBy": 7,
- "dateUpdated": "2026-02-12T11:15:00.000Z",
- "updatedBy": 9,
- "deleted": false
}
], - "total": 2,
- "limit": 10,
- "skip": 0,
- "success": true
}Create a new PMS Property.
Property object.
| name required | string |
| description | string Default: "" |
| property required | integer <int64> Core Property numeric ID. |
| doors | Array of integers <int64> <= 100 items [ items <int64 > ] |
| currency | string |
| type | string Enum: "apart_hotel" "apartment" "boat" "camping" "capsule_hotel" "chalet" "country_house" "farm_stay" "guest_house" "holiday_home" "holiday_park" "homestay" "hostel" "hotel" "inn" "lodge" "motel" "resort" "riad" "ryokan" "tent" "villa" |
| isCreateKey | boolean Default: true |
| template | string |
| provider | string Enum: "homeit" "channex" |
| isActive | boolean Default: true |
{- "name": "Lisbon Downtown Apartment",
- "description": "Primary PMS property for downtown reservations.",
- "property": 1201,
- "doors": [
- 3001,
- 3002
], - "currency": "EUR",
- "type": "apartment",
- "isCreateKey": true,
- "template": "64f8f1a4c4e2b977f7b4d501",
- "provider": "channex",
- "isActive": true
}{- "docs": [
- {
- "id": "64f8f1a4c4e2b977f7b4d001",
- "name": "Lisbon Downtown Apartment",
- "description": "Primary PMS property for downtown reservations.",
- "organization": 42,
- "property": 1201,
- "doors": [
- 3001,
- 3002
], - "currency": "EUR",
- "type": "apartment",
- "isCreateKey": true,
- "template": "64f8f1a4c4e2b977f7b4d501",
- "provider": "channex",
- "providerId": "chx_property_123",
- "isActive": true,
- "dateCreated": "2026-01-10T09:00:00.000Z",
- "createdBy": 7,
- "dateUpdated": "2026-02-11T10:30:00.000Z",
- "updatedBy": 7,
- "deleted": false
}
], - "total": 1,
- "limit": 1,
- "skip": 0,
- "success": true
}Get a single PMS Property by ID.
| id required | string^[a-fA-F0-9]{24}$ Example: 64f8f1a4c4e2b977f7b4d001 A PMS resource MongoDB ObjectId. |
{- "docs": [
- {
- "id": "64f8f1a4c4e2b977f7b4d001",
- "name": "Lisbon Downtown Apartment",
- "description": "Primary PMS property for downtown reservations.",
- "organization": 42,
- "property": 1201,
- "doors": [
- 3001,
- 3002
], - "currency": "EUR",
- "type": "apartment",
- "isCreateKey": true,
- "template": "64f8f1a4c4e2b977f7b4d501",
- "provider": "channex",
- "providerId": "chx_property_123",
- "isActive": true,
- "dateCreated": "2026-01-10T09:00:00.000Z",
- "createdBy": 7,
- "dateUpdated": "2026-02-11T10:30:00.000Z",
- "updatedBy": 7,
- "deleted": false
}
], - "total": 1,
- "limit": 1,
- "skip": 0,
- "success": true
}Update a PMS Property you have access to.
| id required | string^[a-fA-F0-9]{24}$ Example: 64f8f1a4c4e2b977f7b4d001 A PMS resource MongoDB ObjectId. |
Property object.
| name | string |
| description | string |
| property | integer <int64> Core Property numeric ID. |
| doors | Array of integers <int64> <= 100 items [ items <int64 > ] |
| currency | string |
| type | string Enum: "apart_hotel" "apartment" "boat" "camping" "capsule_hotel" "chalet" "country_house" "farm_stay" "guest_house" "holiday_home" "holiday_park" "homestay" "hostel" "hotel" "inn" "lodge" "motel" "resort" "riad" "ryokan" "tent" "villa" |
| isCreateKey | boolean |
| template | string |
| isActive | boolean |
{- "name": "Lisbon Downtown Apartment Updated",
- "doors": [
- 3001
], - "isCreateKey": false
}{- "docs": [
- {
- "id": "64f8f1a4c4e2b977f7b4d001",
- "name": "Lisbon Downtown Apartment",
- "description": "Primary PMS property for downtown reservations.",
- "organization": 42,
- "property": 1201,
- "doors": [
- 3001,
- 3002
], - "currency": "EUR",
- "type": "apartment",
- "isCreateKey": true,
- "template": "64f8f1a4c4e2b977f7b4d501",
- "provider": "channex",
- "providerId": "chx_property_123",
- "isActive": true,
- "dateCreated": "2026-01-10T09:00:00.000Z",
- "createdBy": 7,
- "dateUpdated": "2026-02-11T10:30:00.000Z",
- "updatedBy": 7,
- "deleted": false
}
], - "total": 1,
- "limit": 1,
- "skip": 0,
- "success": true
}Delete a PMS Property you have access to.
| id required | string^[a-fA-F0-9]{24}$ Example: 64f8f1a4c4e2b977f7b4d001 A PMS resource MongoDB ObjectId. |
{- "docs": [
- {
- "id": "64f8f1a4c4e2b977f7b4d001",
- "name": "Lisbon Downtown Apartment",
- "description": "Primary PMS property for downtown reservations.",
- "organization": 42,
- "property": 1201,
- "doors": [
- 3001,
- 3002
], - "currency": "EUR",
- "type": "apartment",
- "isCreateKey": true,
- "template": "64f8f1a4c4e2b977f7b4d501",
- "provider": "channex",
- "providerId": "chx_property_123",
- "isActive": false,
- "dateCreated": "2026-01-10T09:00:00.000Z",
- "createdBy": 7,
- "dateUpdated": "2026-02-11T10:30:00.000Z",
- "updatedBy": 7,
- "deleted": true,
- "deletedAt": "2026-03-01T08:00:00.000Z",
- "deletedBy": 7
}
], - "total": 1,
- "limit": 1,
- "skip": 0,
- "success": true
}Get all PMS Room Types you have access to.
| id | Array of strings[ items^[a-fA-F0-9]{24}$ ] Example: id=64f8f1a4c4e2b977f7b4d001 A list of PMS resource MongoDB ObjectIds. |
| name | string Example: name=Example The resource name, or part of it. Case-insensitive. |
| description | string Example: description=Example The resource description, or part of it. Case-insensitive. |
| property | Array of strings A list of Property ObjectIds. |
| maxAvailabilityLower | integer >= 0 |
| maxAvailabilityHigher | integer >= 0 |
| maxAdultsLower | integer >= 0 |
| maxAdultsHigher | integer >= 0 |
| maxChildrenLower | integer >= 0 |
| maxChildrenHigher | integer >= 0 |
| provider | Array of strings Items Enum: "homeit" "channex" Example: provider=channex Filter by provider. |
| isActive | boolean Example: isActive=true Filter by active status. |
| createdBefore | string <date-time> Example: createdBefore=2026-01-01T00:00:00.000Z Filter by creation date. Format MUST comply with ISO 8601. |
| createdAfter | string <date-time> Example: createdAfter=2025-01-01T00:00:00.000Z Filter by creation date. Format MUST comply with ISO 8601. |
| updatedBefore | string <date-time> Example: updatedBefore=2026-01-01T00:00:00.000Z Filter by last update date. Format MUST comply with ISO 8601. |
| updatedAfter | string <date-time> Example: updatedAfter=2025-01-01T00:00:00.000Z Filter by last update date. Format MUST comply with ISO 8601. |
| limit | integer [ 1 .. 100 ] Default: 10 Example: limit=25 Maximum number of resources to return. |
| skip | integer >= 0 Default: 0 Example: skip=10 Number of resources to skip. |
| sortBy | string Example: sortBy=dateCreated Field used for sorting. |
| order | string Default: "asc" Enum: "asc" "desc" Example: order=desc Sort order. |
| dry | boolean Default: false Example: dry=true Enable dry-run mode, for testing. |
| hypermedia | boolean Default: true Disable hypermedia links in response. |
{- "docs": [
- {
- "id": "64f8f1a4c4e2b977f7b4d101",
- "name": "Deluxe Suite",
- "description": "Main suite category.",
- "property": "64f8f1a4c4e2b977f7b4d001",
- "maxAvailability": 3,
- "maxAdults": 2,
- "maxChildren": 1,
- "provider": "channex",
- "providerId": "chx_room_456",
- "isActive": true,
- "dateCreated": "2026-01-10T09:10:00.000Z",
- "createdBy": 7,
- "dateUpdated": "2026-02-11T10:35:00.000Z",
- "updatedBy": 7,
- "deleted": false
}, - {
- "id": "64f8f1a4c4e2b977f7b4d102",
- "name": "Studio",
- "description": "Compact room type.",
- "property": "64f8f1a4c4e2b977f7b4d001",
- "maxAvailability": 5,
- "maxAdults": 2,
- "maxChildren": 0,
- "provider": "homeit",
- "providerId": null,
- "isActive": true,
- "dateCreated": "2026-01-11T08:00:00.000Z",
- "createdBy": 7,
- "dateUpdated": "2026-02-01T08:00:00.000Z",
- "updatedBy": 8,
- "deleted": false
}
], - "total": 2,
- "limit": 10,
- "skip": 0,
- "success": true
}Create a new PMS Room Type.
| name required | string |
| description | string Default: "" |
| property required | string |
| maxAvailability | integer >= 0 Default: 1 |
| maxAdults required | integer >= 0 |
| maxChildren | integer >= 0 |
| provider | string Enum: "homeit" "channex" |
| isActive | boolean Default: true |
{- "name": "Deluxe Suite",
- "description": "Main suite category.",
- "property": "64f8f1a4c4e2b977f7b4d001",
- "maxAvailability": 3,
- "maxAdults": 2,
- "maxChildren": 1,
- "provider": "channex",
- "isActive": true
}{- "docs": [
- {
- "id": "64f8f1a4c4e2b977f7b4d101",
- "name": "Deluxe Suite",
- "description": "Main suite category.",
- "property": "64f8f1a4c4e2b977f7b4d001",
- "maxAvailability": 3,
- "maxAdults": 2,
- "maxChildren": 1,
- "provider": "channex",
- "providerId": "chx_room_456",
- "isActive": true,
- "dateCreated": "2026-01-10T09:10:00.000Z",
- "createdBy": 7,
- "dateUpdated": "2026-02-11T10:35:00.000Z",
- "updatedBy": 7,
- "deleted": false
}
], - "total": 1,
- "limit": 1,
- "skip": 0,
- "success": true
}Get a single PMS Room Type by ID.
| id required | string^[a-fA-F0-9]{24}$ Example: 64f8f1a4c4e2b977f7b4d001 A PMS resource MongoDB ObjectId. |
{- "docs": [
- {
- "id": "64f8f1a4c4e2b977f7b4d101",
- "name": "Deluxe Suite",
- "description": "Main suite category.",
- "property": "64f8f1a4c4e2b977f7b4d001",
- "maxAvailability": 3,
- "maxAdults": 2,
- "maxChildren": 1,
- "provider": "channex",
- "providerId": "chx_room_456",
- "isActive": true,
- "dateCreated": "2026-01-10T09:10:00.000Z",
- "createdBy": 7,
- "dateUpdated": "2026-02-11T10:35:00.000Z",
- "updatedBy": 7,
- "deleted": false
}
], - "total": 1,
- "limit": 1,
- "skip": 0,
- "success": true
}Update a PMS Room Type.
| id required | string^[a-fA-F0-9]{24}$ Example: 64f8f1a4c4e2b977f7b4d001 A PMS resource MongoDB ObjectId. |
| name | string |
| description | string |
| property | string |
| maxAvailability | integer >= 0 |
| maxAdults | integer >= 0 |
| maxChildren | integer >= 0 |
| isActive | boolean |
{- "maxAvailability": 4,
- "maxChildren": 2
}{- "docs": [
- {
- "id": "64f8f1a4c4e2b977f7b4d101",
- "name": "Deluxe Suite",
- "description": "Main suite category.",
- "property": "64f8f1a4c4e2b977f7b4d001",
- "maxAvailability": 3,
- "maxAdults": 2,
- "maxChildren": 1,
- "provider": "channex",
- "providerId": "chx_room_456",
- "isActive": true,
- "dateCreated": "2026-01-10T09:10:00.000Z",
- "createdBy": 7,
- "dateUpdated": "2026-02-11T10:35:00.000Z",
- "updatedBy": 7,
- "deleted": false
}
], - "total": 1,
- "limit": 1,
- "skip": 0,
- "success": true
}Delete a PMS Room Type.
| id required | string^[a-fA-F0-9]{24}$ Example: 64f8f1a4c4e2b977f7b4d001 A PMS resource MongoDB ObjectId. |
{- "docs": [
- {
- "id": "64f8f1a4c4e2b977f7b4d101",
- "name": "Deluxe Suite",
- "description": "Main suite category.",
- "property": "64f8f1a4c4e2b977f7b4d001",
- "maxAvailability": 3,
- "maxAdults": 2,
- "maxChildren": 1,
- "provider": "channex",
- "providerId": "chx_room_456",
- "isActive": false,
- "dateCreated": "2026-01-10T09:10:00.000Z",
- "createdBy": 7,
- "dateUpdated": "2026-02-11T10:35:00.000Z",
- "updatedBy": 7,
- "deleted": true,
- "deletedAt": "2026-03-01T08:10:00.000Z",
- "deletedBy": 7
}
], - "total": 1,
- "limit": 1,
- "skip": 0,
- "success": true
}Get all PMS Rate Plans you have access to.
| id | Array of strings[ items^[a-fA-F0-9]{24}$ ] Example: id=64f8f1a4c4e2b977f7b4d001 A list of PMS resource MongoDB ObjectIds. |
| name | string Example: name=Example The resource name, or part of it. Case-insensitive. |
| description | string Example: description=Example The resource description, or part of it. Case-insensitive. |
| room | Array of strings A list of Room Type ObjectIds. |
| rateLower | integer |
| rateHigher | integer |
| currency | Array of strings |
| meal | Array of strings |
| provider | Array of strings Items Enum: "homeit" "channex" Example: provider=channex Filter by provider. |
| isActive | boolean Example: isActive=true Filter by active status. |
| createdBefore | string <date-time> Example: createdBefore=2026-01-01T00:00:00.000Z Filter by creation date. Format MUST comply with ISO 8601. |
| createdAfter | string <date-time> Example: createdAfter=2025-01-01T00:00:00.000Z Filter by creation date. Format MUST comply with ISO 8601. |
| updatedBefore | string <date-time> Example: updatedBefore=2026-01-01T00:00:00.000Z Filter by last update date. Format MUST comply with ISO 8601. |
| updatedAfter | string <date-time> Example: updatedAfter=2025-01-01T00:00:00.000Z Filter by last update date. Format MUST comply with ISO 8601. |
| limit | integer [ 1 .. 100 ] Default: 10 Example: limit=25 Maximum number of resources to return. |
| skip | integer >= 0 Default: 0 Example: skip=10 Number of resources to skip. |
| sortBy | string Example: sortBy=dateCreated Field used for sorting. |
| order | string Default: "asc" Enum: "asc" "desc" Example: order=desc Sort order. |
| dry | boolean Default: false Example: dry=true Enable dry-run mode, for testing. |
| hypermedia | boolean Default: true Disable hypermedia links in response. |
{- "docs": [
- {
- "id": "64f8f1a4c4e2b977f7b4d201",
- "name": "Standard Flexible",
- "description": "Main public rate.",
- "room": "64f8f1a4c4e2b977f7b4d101",
- "rate": 12000,
- "rules": [
- {
- "type": "weekly",
- "percent": -0.1,
- "weekday": 0
}
], - "currency": "EUR",
- "meal": "breakfast",
- "provider": "channex",
- "providerId": "chx_rate_789",
- "isActive": true,
- "dateCreated": "2026-01-10T09:20:00.000Z",
- "createdBy": 7,
- "dateUpdated": "2026-02-11T10:40:00.000Z",
- "updatedBy": 7,
- "deleted": false
}, - {
- "id": "64f8f1a4c4e2b977f7b4d202",
- "name": "Non Refundable",
- "description": "Discounted non-refundable plan.",
- "room": "64f8f1a4c4e2b977f7b4d101",
- "rate": 10500,
- "rules": [ ],
- "currency": "EUR",
- "meal": "none",
- "provider": "homeit",
- "providerId": null,
- "isActive": true,
- "dateCreated": "2026-01-11T09:20:00.000Z",
- "createdBy": 7,
- "dateUpdated": "2026-02-11T10:45:00.000Z",
- "updatedBy": 8,
- "deleted": false
}
], - "total": 2,
- "limit": 10,
- "skip": 0,
- "success": true
}Create a new PMS Rate Plan.
| name required | string |
| description | string |
| room required | string |
| rate required | integer |
| rules | Array of objects |
| currency | string |
| meal | string |
| provider | string Enum: "homeit" "channex" |
| isActive | boolean |
{- "name": "Standard Flexible",
- "description": "Main public rate.",
- "room": "64f8f1a4c4e2b977f7b4d101",
- "rate": 12000,
- "currency": "EUR",
- "meal": "breakfast",
- "provider": "channex",
- "isActive": true
}{- "docs": [
- {
- "id": "64f8f1a4c4e2b977f7b4d201",
- "name": "Standard Flexible",
- "description": "Main public rate.",
- "room": "64f8f1a4c4e2b977f7b4d101",
- "rate": 12000,
- "rules": [
- {
- "type": "weekly",
- "percent": -0.1,
- "weekday": 0
}
], - "currency": "EUR",
- "meal": "breakfast",
- "provider": "channex",
- "providerId": "chx_rate_789",
- "isActive": true,
- "dateCreated": "2026-01-10T09:20:00.000Z",
- "createdBy": 7,
- "dateUpdated": "2026-02-11T10:40:00.000Z",
- "updatedBy": 7,
- "deleted": false
}
], - "total": 1,
- "limit": 1,
- "skip": 0,
- "success": true
}Get a single PMS Rate Plan by ID.
| id required | string^[a-fA-F0-9]{24}$ Example: 64f8f1a4c4e2b977f7b4d001 A PMS resource MongoDB ObjectId. |
{- "docs": [
- {
- "id": "64f8f1a4c4e2b977f7b4d201",
- "name": "Standard Flexible",
- "description": "Main public rate.",
- "room": "64f8f1a4c4e2b977f7b4d101",
- "rate": 12000,
- "rules": [
- {
- "type": "weekly",
- "percent": -0.1,
- "weekday": 0
}
], - "currency": "EUR",
- "meal": "breakfast",
- "provider": "channex",
- "providerId": "chx_rate_789",
- "isActive": true,
- "dateCreated": "2026-01-10T09:20:00.000Z",
- "createdBy": 7,
- "dateUpdated": "2026-02-11T10:40:00.000Z",
- "updatedBy": 7,
- "deleted": false
}
], - "total": 1,
- "limit": 1,
- "skip": 0,
- "success": true
}Update a PMS Rate Plan.
| id required | string^[a-fA-F0-9]{24}$ Example: 64f8f1a4c4e2b977f7b4d001 A PMS resource MongoDB ObjectId. |
| name | string |
| description | string |
| room | string |
| rate | integer |
| rules | Array of objects |
| currency | string |
| meal | string |
| isActive | boolean |
{- "rate": 12500,
- "meal": "none"
}{- "docs": [
- {
- "id": "64f8f1a4c4e2b977f7b4d201",
- "name": "Standard Flexible",
- "description": "Main public rate.",
- "room": "64f8f1a4c4e2b977f7b4d101",
- "rate": 12000,
- "rules": [
- {
- "type": "weekly",
- "percent": -0.1,
- "weekday": 0
}
], - "currency": "EUR",
- "meal": "breakfast",
- "provider": "channex",
- "providerId": "chx_rate_789",
- "isActive": true,
- "dateCreated": "2026-01-10T09:20:00.000Z",
- "createdBy": 7,
- "dateUpdated": "2026-02-11T10:40:00.000Z",
- "updatedBy": 7,
- "deleted": false
}
], - "total": 1,
- "limit": 1,
- "skip": 0,
- "success": true
}Delete a PMS Rate Plan.
| id required | string^[a-fA-F0-9]{24}$ Example: 64f8f1a4c4e2b977f7b4d001 A PMS resource MongoDB ObjectId. |
{- "docs": [
- {
- "id": "64f8f1a4c4e2b977f7b4d201",
- "name": "Standard Flexible",
- "description": "Main public rate.",
- "room": "64f8f1a4c4e2b977f7b4d101",
- "rate": 12000,
- "rules": [ ],
- "currency": "EUR",
- "meal": "breakfast",
- "provider": "channex",
- "providerId": "chx_rate_789",
- "isActive": false,
- "dateCreated": "2026-01-10T09:20:00.000Z",
- "createdBy": 7,
- "dateUpdated": "2026-02-11T10:40:00.000Z",
- "updatedBy": 7,
- "deleted": true,
- "deletedAt": "2026-03-01T08:20:00.000Z",
- "deletedBy": 7
}
], - "total": 1,
- "limit": 1,
- "skip": 0,
- "success": true
}Get all PMS OTA Channels you have access to.
| id | Array of strings[ items^[a-fA-F0-9]{24}$ ] Example: id=64f8f1a4c4e2b977f7b4d001 A list of PMS resource MongoDB ObjectIds. |
| name | string Example: name=Example The resource name, or part of it. Case-insensitive. |
| organization | Array of integers <int64> [ items <int64 > ] |
| ota | Array of strings Items Enum: "airbnb" "bookingcom" |
| otaUrl | Array of strings |
| isSync | boolean |
| provider | Array of strings Items Enum: "homeit" "channex" Example: provider=channex Filter by provider. |
| isActive | boolean Example: isActive=true Filter by active status. |
| createdBefore | string <date-time> Example: createdBefore=2026-01-01T00:00:00.000Z Filter by creation date. Format MUST comply with ISO 8601. |
| createdAfter | string <date-time> Example: createdAfter=2025-01-01T00:00:00.000Z Filter by creation date. Format MUST comply with ISO 8601. |
| updatedBefore | string <date-time> Example: updatedBefore=2026-01-01T00:00:00.000Z Filter by last update date. Format MUST comply with ISO 8601. |
| updatedAfter | string <date-time> Example: updatedAfter=2025-01-01T00:00:00.000Z Filter by last update date. Format MUST comply with ISO 8601. |
| limit | integer [ 1 .. 100 ] Default: 10 Example: limit=25 Maximum number of resources to return. |
| skip | integer >= 0 Default: 0 Example: skip=10 Number of resources to skip. |
| sortBy | string Example: sortBy=dateCreated Field used for sorting. |
| order | string Default: "asc" Enum: "asc" "desc" Example: order=desc Sort order. |
| dry | boolean Default: false Example: dry=true Enable dry-run mode, for testing. |
| hypermedia | boolean Default: true Disable hypermedia links in response. |
{- "docs": [
- {
- "id": "64f8f1a4c4e2b977f7b4d601",
- "name": "Airbnb Main Account",
- "organization": 42,
- "ota": "airbnb",
- "otaToken": null,
- "otaListing": null,
- "mapping": [
- {
- "providerId": "airbnb_mapping_1",
- "property": "64f8f1a4c4e2b977f7b4d001",
- "room": "64f8f1a4c4e2b977f7b4d101",
- "rate": "64f8f1a4c4e2b977f7b4d201",
- "otaProperty": "airbnb_listing_999",
- "otaRoom": null,
- "otaRate": null
}
], - "isSync": true,
- "provider": "channex",
- "providerId": "chx_channel_321",
- "isActive": true,
- "dateCreated": "2026-01-15T09:00:00.000Z",
- "createdBy": 7,
- "dateUpdated": "2026-02-15T09:30:00.000Z",
- "updatedBy": 7,
- "deleted": false
}, - {
- "id": "64f8f1a4c4e2b977f7b4d602",
- "name": "Booking.com Hotel 1201",
- "organization": 42,
- "ota": "bookingcom",
- "otaUrl": null,
- "otaToken": null,
- "otaListing": "hotel_1201",
- "mapping": [ ],
- "isSync": false,
- "provider": "channex",
- "providerId": null,
- "isActive": true,
- "dateCreated": "2026-01-16T09:00:00.000Z",
- "createdBy": 7,
- "dateUpdated": "2026-02-16T09:30:00.000Z",
- "updatedBy": 7,
- "deleted": false
}
], - "total": 2,
- "limit": 10,
- "skip": 0,
- "success": true
}Create a new PMS OTA Channel.
| name required | string |
| ota required | string Enum: "airbnb" "bookingcom" |
| otaListing | string Required for Booking.com channel creation. |
| isSync | boolean Default: false |
| provider | string Enum: "homeit" "channex" |
| isActive | boolean Default: true |
{- "name": "Airbnb Main Account",
- "ota": "airbnb",
- "isSync": true,
- "provider": "channex",
- "isActive": true
}{- "docs": [
- {
- "id": "64f8f1a4c4e2b977f7b4d601",
- "name": "Airbnb Main Account",
- "organization": 42,
- "ota": "airbnb",
- "otaToken": null,
- "otaListing": null,
- "mapping": [
- {
- "providerId": "airbnb_mapping_1",
- "property": "64f8f1a4c4e2b977f7b4d001",
- "room": "64f8f1a4c4e2b977f7b4d101",
- "rate": "64f8f1a4c4e2b977f7b4d201",
- "otaProperty": "airbnb_listing_999",
- "otaRoom": null,
- "otaRate": null
}
], - "isSync": true,
- "provider": "channex",
- "providerId": "chx_channel_321",
- "isActive": true,
- "dateCreated": "2026-01-15T09:00:00.000Z",
- "createdBy": 7,
- "dateUpdated": "2026-02-15T09:30:00.000Z",
- "updatedBy": 7,
- "deleted": false
}
], - "total": 1,
- "limit": 1,
- "skip": 0,
- "success": true
}Get a single PMS OTA Channel by ID.
| id required | string^[a-fA-F0-9]{24}$ Example: 64f8f1a4c4e2b977f7b4d001 A PMS resource MongoDB ObjectId. |
{- "docs": [
- {
- "id": "64f8f1a4c4e2b977f7b4d601",
- "name": "Airbnb Main Account",
- "organization": 42,
- "ota": "airbnb",
- "otaToken": null,
- "otaListing": null,
- "mapping": [
- {
- "providerId": "airbnb_mapping_1",
- "property": "64f8f1a4c4e2b977f7b4d001",
- "room": "64f8f1a4c4e2b977f7b4d101",
- "rate": "64f8f1a4c4e2b977f7b4d201",
- "otaProperty": "airbnb_listing_999",
- "otaRoom": null,
- "otaRate": null
}
], - "isSync": true,
- "provider": "channex",
- "providerId": "chx_channel_321",
- "isActive": true,
- "dateCreated": "2026-01-15T09:00:00.000Z",
- "createdBy": 7,
- "dateUpdated": "2026-02-15T09:30:00.000Z",
- "updatedBy": 7,
- "deleted": false
}
], - "total": 1,
- "limit": 1,
- "skip": 0,
- "success": true
}Update a PMS OTA Channel.
| id required | string^[a-fA-F0-9]{24}$ Example: 64f8f1a4c4e2b977f7b4d001 A PMS resource MongoDB ObjectId. |
| name | string |
| isSync | boolean |
| isActive | boolean |
{- "isSync": false,
- "isActive": false
}{- "docs": [
- {
- "id": "64f8f1a4c4e2b977f7b4d601",
- "name": "Airbnb Main Account",
- "organization": 42,
- "ota": "airbnb",
- "otaToken": null,
- "otaListing": null,
- "mapping": [
- {
- "providerId": "airbnb_mapping_1",
- "property": "64f8f1a4c4e2b977f7b4d001",
- "room": "64f8f1a4c4e2b977f7b4d101",
- "rate": "64f8f1a4c4e2b977f7b4d201",
- "otaProperty": "airbnb_listing_999",
- "otaRoom": null,
- "otaRate": null
}
], - "isSync": true,
- "provider": "channex",
- "providerId": "chx_channel_321",
- "isActive": true,
- "dateCreated": "2026-01-15T09:00:00.000Z",
- "createdBy": 7,
- "dateUpdated": "2026-02-15T09:30:00.000Z",
- "updatedBy": 7,
- "deleted": false
}
], - "total": 1,
- "limit": 1,
- "skip": 0,
- "success": true
}Delete a PMS OTA Channel.
| id required | string^[a-fA-F0-9]{24}$ Example: 64f8f1a4c4e2b977f7b4d001 A PMS resource MongoDB ObjectId. |
{- "docs": [
- {
- "id": "64f8f1a4c4e2b977f7b4d601",
- "name": "Airbnb Main Account",
- "organization": 42,
- "ota": "airbnb",
- "otaUrl": null,
- "otaToken": null,
- "otaListing": null,
- "mapping": [ ],
- "isSync": true,
- "provider": "channex",
- "providerId": "chx_channel_321",
- "isActive": false,
- "dateCreated": "2026-01-15T09:00:00.000Z",
- "createdBy": 7,
- "dateUpdated": "2026-02-15T09:30:00.000Z",
- "updatedBy": 7,
- "deleted": true,
- "deletedAt": "2026-03-01T10:00:00.000Z",
- "deletedBy": 7
}
], - "total": 1,
- "limit": 1,
- "skip": 0,
- "success": true
}Get all PMS Bookings you have access to.
| id | Array of strings[ items^[a-fA-F0-9]{24}$ ] Example: id=64f8f1a4c4e2b977f7b4d001 A list of PMS resource MongoDB ObjectIds. |
| name | string Example: name=Example The resource name, or part of it. Case-insensitive. |
| property | Array of strings |
| room | Array of strings |
| rate | Array of strings |
| isBlockedPeriod | boolean |
| checkInBefore | string <date-time> |
| checkInAfter | string <date-time> |
| checkOutBefore | string <date-time> |
| checkOutAfter | string <date-time> |
| ota | Array of strings |
| key | Array of integers <int64> [ items <int64 > ] A list of Core Key numeric IDs. |
| isPaid | boolean |
| isSendMessage | boolean |
| isMessageSent | boolean |
| status | Array of strings Items Enum: "confirmed" "canceled" |
| provider | Array of strings Items Enum: "homeit" "channex" Example: provider=channex Filter by provider. |
| isActive | boolean Example: isActive=true Filter by active status. |
| createdBefore | string <date-time> Example: createdBefore=2026-01-01T00:00:00.000Z Filter by creation date. Format MUST comply with ISO 8601. |
| createdAfter | string <date-time> Example: createdAfter=2025-01-01T00:00:00.000Z Filter by creation date. Format MUST comply with ISO 8601. |
| updatedBefore | string <date-time> Example: updatedBefore=2026-01-01T00:00:00.000Z Filter by last update date. Format MUST comply with ISO 8601. |
| updatedAfter | string <date-time> Example: updatedAfter=2025-01-01T00:00:00.000Z Filter by last update date. Format MUST comply with ISO 8601. |
| limit | integer [ 1 .. 100 ] Default: 10 Example: limit=25 Maximum number of resources to return. |
| skip | integer >= 0 Default: 0 Example: skip=10 Number of resources to skip. |
| sortBy | string Example: sortBy=dateCreated Field used for sorting. |
| order | string Default: "asc" Enum: "asc" "desc" Example: order=desc Sort order. |
| dry | boolean Default: false Example: dry=true Enable dry-run mode, for testing. |
| hypermedia | boolean Default: true Disable hypermedia links in response. |
{- "docs": [
- {
- "id": "64f8f1a4c4e2b977f7b4d301",
- "name": "John Doe Reservation",
- "property": "64f8f1a4c4e2b977f7b4d001",
- "room": "64f8f1a4c4e2b977f7b4d101",
- "rate": "64f8f1a4c4e2b977f7b4d201",
- "isBlockedPeriod": false,
- "checkIn": "2026-08-15T15:00:00.000Z",
- "checkOut": "2026-08-18T11:00:00.000Z",
- "ota": "airbnb",
- "adults": 2,
- "children": 1,
- "key": 5001,
- "isPaid": true,
- "isSendMessage": true,
- "isMessageSent": false,
- "status": "confirmed",
- "provider": "channex",
- "providerId": "chx_booking_555",
- "isActive": true,
- "dateCreated": "2026-02-10T12:00:00.000Z",
- "createdBy": 7,
- "dateUpdated": "2026-02-10T12:05:00.000Z",
- "updatedBy": 7,
- "deleted": false
}, - {
- "id": "64f8f1a4c4e2b977f7b4d302",
- "name": "Maintenance Block",
- "property": "64f8f1a4c4e2b977f7b4d001",
- "room": "64f8f1a4c4e2b977f7b4d102",
- "rate": null,
- "isBlockedPeriod": true,
- "checkIn": "2026-08-20T00:00:00.000Z",
- "checkOut": "2026-08-22T00:00:00.000Z",
- "ota": null,
- "adults": 0,
- "children": 0,
- "key": null,
- "isPaid": true,
- "isSendMessage": false,
- "isMessageSent": false,
- "status": "confirmed",
- "provider": "homeit",
- "providerId": null,
- "isActive": true,
- "dateCreated": "2026-02-12T12:00:00.000Z",
- "createdBy": 7,
- "dateUpdated": "2026-02-12T12:05:00.000Z",
- "updatedBy": 7,
- "deleted": false
}
], - "total": 2,
- "limit": 10,
- "skip": 0,
- "success": true
}Create a new PMS Booking.
| name required | string |
| property required | string |
| room | string Optional room. When omitted, the service resolves a room from the property and rate data. |
| rate | string Optional rate. When omitted, the service resolves one for the selected room. |
| isBlockedPeriod | boolean Default: false |
| checkIn required | string <date-time> |
| checkOut required | string <date-time> |
| adults | integer |
| children | integer Default: 0 |
| isCreateKey | boolean Default: true Create a linked Core Key automatically when possible. |
| isPaid | boolean Default: true |
| isSendMessage | boolean Default: true |
| isMessageSent | boolean Default: false |
| status | string Default: "confirmed" Enum: "confirmed" "canceled" |
| provider | string Default: "homeit" Value: "homeit" |
| isActive | boolean Default: true |
{- "name": "John Doe Reservation",
- "property": "64f8f1a4c4e2b977f7b4d001",
- "room": "64f8f1a4c4e2b977f7b4d101",
- "rate": "64f8f1a4c4e2b977f7b4d201",
- "checkIn": "2026-08-15T15:00:00.000Z",
- "checkOut": "2026-08-18T11:00:00.000Z",
- "adults": 2,
- "children": 1,
- "isCreateKey": true,
- "isPaid": true,
- "isSendMessage": true,
- "status": "confirmed"
}{- "docs": [
- {
- "id": "64f8f1a4c4e2b977f7b4d301",
- "name": "John Doe Reservation",
- "property": "64f8f1a4c4e2b977f7b4d001",
- "room": "64f8f1a4c4e2b977f7b4d101",
- "rate": "64f8f1a4c4e2b977f7b4d201",
- "isBlockedPeriod": false,
- "checkIn": "2026-08-15T15:00:00.000Z",
- "checkOut": "2026-08-18T11:00:00.000Z",
- "ota": "airbnb",
- "adults": 2,
- "children": 1,
- "key": 5001,
- "isPaid": true,
- "isSendMessage": true,
- "isMessageSent": false,
- "status": "confirmed",
- "provider": "channex",
- "providerId": "chx_booking_555",
- "isActive": true,
- "dateCreated": "2026-02-10T12:00:00.000Z",
- "createdBy": 7,
- "dateUpdated": "2026-02-10T12:05:00.000Z",
- "updatedBy": 7,
- "deleted": false
}
], - "total": 1,
- "limit": 1,
- "skip": 0,
- "success": true
}Get a single PMS Booking by ID.
| id required | string^[a-fA-F0-9]{24}$ Example: 64f8f1a4c4e2b977f7b4d001 A PMS resource MongoDB ObjectId. |
{- "docs": [
- {
- "id": "64f8f1a4c4e2b977f7b4d301",
- "name": "John Doe Reservation",
- "property": "64f8f1a4c4e2b977f7b4d001",
- "room": "64f8f1a4c4e2b977f7b4d101",
- "rate": "64f8f1a4c4e2b977f7b4d201",
- "isBlockedPeriod": false,
- "checkIn": "2026-08-15T15:00:00.000Z",
- "checkOut": "2026-08-18T11:00:00.000Z",
- "ota": "airbnb",
- "adults": 2,
- "children": 1,
- "key": 5001,
- "isPaid": true,
- "isSendMessage": true,
- "isMessageSent": false,
- "status": "confirmed",
- "provider": "channex",
- "providerId": "chx_booking_555",
- "isActive": true,
- "dateCreated": "2026-02-10T12:00:00.000Z",
- "createdBy": 7,
- "dateUpdated": "2026-02-10T12:05:00.000Z",
- "updatedBy": 7,
- "deleted": false
}
], - "total": 1,
- "limit": 1,
- "skip": 0,
- "success": true
}Update a PMS Booking.
| id required | string^[a-fA-F0-9]{24}$ Example: 64f8f1a4c4e2b977f7b4d001 A PMS resource MongoDB ObjectId. |
| name | string |
| checkIn | string <date-time> |
| checkOut | string <date-time> |
| adults | integer |
| children | integer |
| isPaid | boolean |
| isSendMessage | boolean |
| isMessageSent | boolean |
| status | string Value: "canceled" |
| isActive | boolean |
{- "status": "canceled"
}{- "docs": [
- {
- "id": "64f8f1a4c4e2b977f7b4d301",
- "name": "John Doe Reservation",
- "property": "64f8f1a4c4e2b977f7b4d001",
- "room": "64f8f1a4c4e2b977f7b4d101",
- "rate": "64f8f1a4c4e2b977f7b4d201",
- "isBlockedPeriod": false,
- "checkIn": "2026-08-15T15:00:00.000Z",
- "checkOut": "2026-08-18T11:00:00.000Z",
- "ota": "airbnb",
- "adults": 2,
- "children": 1,
- "key": 5001,
- "isPaid": true,
- "isSendMessage": true,
- "isMessageSent": false,
- "status": "confirmed",
- "provider": "channex",
- "providerId": "chx_booking_555",
- "isActive": true,
- "dateCreated": "2026-02-10T12:00:00.000Z",
- "createdBy": 7,
- "dateUpdated": "2026-02-10T12:05:00.000Z",
- "updatedBy": 7,
- "deleted": false
}
], - "total": 1,
- "limit": 1,
- "skip": 0,
- "success": true
}Delete a PMS Booking.
| id required | string^[a-fA-F0-9]{24}$ Example: 64f8f1a4c4e2b977f7b4d001 A PMS resource MongoDB ObjectId. |
{- "docs": [
- {
- "id": "64f8f1a4c4e2b977f7b4d301",
- "name": "John Doe Reservation",
- "property": "64f8f1a4c4e2b977f7b4d001",
- "room": "64f8f1a4c4e2b977f7b4d101",
- "rate": "64f8f1a4c4e2b977f7b4d201",
- "isBlockedPeriod": false,
- "checkIn": "2026-08-15T15:00:00.000Z",
- "checkOut": "2026-08-18T11:00:00.000Z",
- "ota": "airbnb",
- "adults": 2,
- "children": 1,
- "key": 5001,
- "isPaid": true,
- "isSendMessage": true,
- "isMessageSent": false,
- "status": "canceled",
- "provider": "channex",
- "providerId": "chx_booking_555",
- "isActive": false,
- "dateCreated": "2026-02-10T12:00:00.000Z",
- "createdBy": 7,
- "dateUpdated": "2026-02-11T12:05:00.000Z",
- "updatedBy": 7,
- "deleted": true,
- "deletedAt": "2026-02-11T12:10:00.000Z",
- "deletedBy": 7
}
], - "total": 1,
- "limit": 1,
- "skip": 0,
- "success": true
}Get all PMS Message Templates you have access to.
| id | Array of strings[ items^[a-fA-F0-9]{24}$ ] Example: id=64f8f1a4c4e2b977f7b4d001 A list of PMS resource MongoDB ObjectIds. |
| name | string Example: name=Example The resource name, or part of it. Case-insensitive. |
| description | string Example: description=Example The resource description, or part of it. Case-insensitive. |
| organization | Array of integers <int64> [ items <int64 > ] |
| isWaitPayment | boolean |
| isActive | boolean Example: isActive=true Filter by active status. |
| createdBefore | string <date-time> Example: createdBefore=2026-01-01T00:00:00.000Z Filter by creation date. Format MUST comply with ISO 8601. |
| createdAfter | string <date-time> Example: createdAfter=2025-01-01T00:00:00.000Z Filter by creation date. Format MUST comply with ISO 8601. |
| updatedBefore | string <date-time> Example: updatedBefore=2026-01-01T00:00:00.000Z Filter by last update date. Format MUST comply with ISO 8601. |
| updatedAfter | string <date-time> Example: updatedAfter=2025-01-01T00:00:00.000Z Filter by last update date. Format MUST comply with ISO 8601. |
| limit | integer [ 1 .. 100 ] Default: 10 Example: limit=25 Maximum number of resources to return. |
| skip | integer >= 0 Default: 0 Example: skip=10 Number of resources to skip. |
| sortBy | string Example: sortBy=dateCreated Field used for sorting. |
| order | string Default: "asc" Enum: "asc" "desc" Example: order=desc Sort order. |
| dry | boolean Default: false Example: dry=true Enable dry-run mode, for testing. |
| hypermedia | boolean Default: true Disable hypermedia links in response. |
{- "docs": [
- {
- "id": "64f8f1a4c4e2b977f7b4d501",
- "name": "Check-in Instructions",
- "description": "Sent before guest arrival.",
- "organization": 42,
- "message": "<p>Hello {{guestName}}, your access details will be sent shortly.</p>",
- "isWaitPayment": false,
- "sendBeforeMinutes": 1440,
- "isActive": true,
- "dateCreated": "2026-01-09T08:00:00.000Z",
- "createdBy": 7,
- "dateUpdated": "2026-02-09T08:15:00.000Z",
- "updatedBy": 7,
- "deleted": false
}, - {
- "id": "64f8f1a4c4e2b977f7b4d502",
- "name": "Payment Reminder",
- "description": "Used for unpaid bookings.",
- "organization": 42,
- "message": "<p>Please complete payment before arrival.</p>",
- "isWaitPayment": true,
- "sendBeforeMinutes": 2880,
- "isActive": true,
- "dateCreated": "2026-01-10T08:00:00.000Z",
- "createdBy": 7,
- "dateUpdated": "2026-02-10T08:15:00.000Z",
- "updatedBy": 7,
- "deleted": false
}
], - "total": 2,
- "limit": 10,
- "skip": 0,
- "success": true
}Create a new PMS Message Template.
| name required | string |
| description | string |
| message required | string <= 10000 characters |
| isWaitPayment | boolean |
| sendBeforeMinutes | integer >= 0 |
| isActive | boolean |
{- "name": "Check-in Instructions",
- "description": "Sent before guest arrival.",
- "message": "<p>Hello {{guestName}}, your access details will be sent shortly.</p>",
- "isWaitPayment": false,
- "sendBeforeMinutes": 1440,
- "isActive": true
}{- "docs": [
- {
- "id": "64f8f1a4c4e2b977f7b4d501",
- "name": "Check-in Instructions",
- "description": "Sent before guest arrival.",
- "organization": 42,
- "message": "<p>Hello {{guestName}}, your access details will be sent shortly.</p>",
- "isWaitPayment": false,
- "sendBeforeMinutes": 1440,
- "isActive": true,
- "dateCreated": "2026-01-09T08:00:00.000Z",
- "createdBy": 7,
- "dateUpdated": "2026-02-09T08:15:00.000Z",
- "updatedBy": 7,
- "deleted": false
}
], - "total": 1,
- "limit": 1,
- "skip": 0,
- "success": true
}Get a single PMS Message Template by ID.
| id required | string^[a-fA-F0-9]{24}$ Example: 64f8f1a4c4e2b977f7b4d001 A PMS resource MongoDB ObjectId. |
{- "docs": [
- {
- "id": "64f8f1a4c4e2b977f7b4d501",
- "name": "Check-in Instructions",
- "description": "Sent before guest arrival.",
- "organization": 42,
- "message": "<p>Hello {{guestName}}, your access details will be sent shortly.</p>",
- "isWaitPayment": false,
- "sendBeforeMinutes": 1440,
- "isActive": true,
- "dateCreated": "2026-01-09T08:00:00.000Z",
- "createdBy": 7,
- "dateUpdated": "2026-02-09T08:15:00.000Z",
- "updatedBy": 7,
- "deleted": false
}
], - "total": 1,
- "limit": 1,
- "skip": 0,
- "success": true
}Update a PMS Message Template.
| id required | string^[a-fA-F0-9]{24}$ Example: 64f8f1a4c4e2b977f7b4d001 A PMS resource MongoDB ObjectId. |
| name | string |
| description | string |
| message | string <= 10000 characters |
| isWaitPayment | boolean |
| sendBeforeMinutes | integer >= 0 |
| isActive | boolean |
{- "sendBeforeMinutes": 720
}{- "docs": [
- {
- "id": "64f8f1a4c4e2b977f7b4d501",
- "name": "Check-in Instructions",
- "description": "Sent before guest arrival.",
- "organization": 42,
- "message": "<p>Hello {{guestName}}, your access details will be sent shortly.</p>",
- "isWaitPayment": false,
- "sendBeforeMinutes": 1440,
- "isActive": true,
- "dateCreated": "2026-01-09T08:00:00.000Z",
- "createdBy": 7,
- "dateUpdated": "2026-02-09T08:15:00.000Z",
- "updatedBy": 7,
- "deleted": false
}
], - "total": 1,
- "limit": 1,
- "skip": 0,
- "success": true
}Delete a PMS Message Template.
| id required | string^[a-fA-F0-9]{24}$ Example: 64f8f1a4c4e2b977f7b4d001 A PMS resource MongoDB ObjectId. |
{- "docs": [
- {
- "id": "64f8f1a4c4e2b977f7b4d501",
- "name": "Check-in Instructions",
- "description": "Sent before guest arrival.",
- "organization": 42,
- "message": "<p>Hello {{guestName}}, your access details will be sent shortly.</p>",
- "isWaitPayment": false,
- "sendBeforeMinutes": 1440,
- "isActive": false,
- "dateCreated": "2026-01-09T08:00:00.000Z",
- "createdBy": 7,
- "dateUpdated": "2026-02-09T08:15:00.000Z",
- "updatedBy": 7,
- "deleted": true,
- "deletedAt": "2026-03-01T09:00:00.000Z",
- "deletedBy": 7
}
], - "total": 1,
- "limit": 1,
- "skip": 0,
- "success": true
}| id | string The Property MongoDB ObjectId. |
| name | string The Property name. |
| description | string The Property description. |
| organization | integer <int64> The owning organization numeric ID. |
| property | integer <int64> The related Core Property numeric ID. |
| doors | Array of integers <int64> [ items <int64 > ] Core Door numeric IDs used when creating booking keys automatically. |
| currency | string Property currency in ISO 4217 format. |
| type | string Enum: "apart_hotel" "apartment" "boat" "camping" "capsule_hotel" "chalet" "country_house" "farm_stay" "guest_house" "holiday_home" "holiday_park" "homestay" "hostel" "hotel" "inn" "lodge" "motel" "resort" "riad" "ryokan" "tent" "villa" Property type used for channel-manager synchronization. |
| isCreateKey | boolean Should new bookings create homeit keys automatically? |
| template | string or null Linked Message Template ObjectId. |
| provider | string Enum: "homeit" "channex" Synchronization provider. |
| providerId | string or null External provider identifier used by the synchronization provider. |
| isActive | boolean (isActive) Is the resource active? |
| dateCreated | string <date-time> (dateCreated) Creation date and time. Format MUST comply with ISO 8601. |
| createdBy | integer <int64> Numeric ID of the user who created the resource. |
| dateUpdated | string <date-time> (dateUpdated) Last update date and time. Format MUST comply with ISO 8601. |
| updatedBy | integer <int64> Numeric ID of the user who last updated the resource. |
| deleted | boolean (deleted) Is the resource deleted? |
| deletedAt | string <date-time> (deletedAt) Deletion date and time. Format MUST comply with ISO 8601. |
| deletedBy | integer or null <int64> Numeric ID of the user who deleted the resource. |
PMS Property example
{- "id": "64f8f1a4c4e2b977f7b4d001",
- "name": "Lisbon Downtown Apartment",
- "description": "Primary PMS property for downtown reservations.",
- "organization": 42,
- "property": 1201,
- "doors": [
- 3001,
- 3002
], - "currency": "EUR",
- "type": "apartment",
- "isCreateKey": true,
- "template": "64f8f1a4c4e2b977f7b4d501",
- "provider": "channex",
- "providerId": "chx_property_123",
- "isActive": true,
- "dateCreated": "2026-01-10T09:00:00.000Z",
- "createdBy": 7,
- "dateUpdated": "2026-02-11T10:30:00.000Z",
- "updatedBy": 7,
- "deleted": false
}| id | string The Room Type MongoDB ObjectId. |
| name | string The Room Type name. |
| description | string The Room Type description. |
| property | string Parent Property ObjectId. |
| maxAvailability | integer Number of units available for sale. |
| maxAdults | integer Maximum number of adults. |
| maxChildren | integer Maximum number of children. |
| provider | string Enum: "homeit" "channex" Synchronization provider. |
| providerId | string or null External provider identifier. |
| isActive | boolean (isActive) Is the resource active? |
| dateCreated | string <date-time> (dateCreated) Creation date and time. Format MUST comply with ISO 8601. |
| createdBy | integer <int64> |
| dateUpdated | string <date-time> (dateUpdated) Last update date and time. Format MUST comply with ISO 8601. |
| updatedBy | integer <int64> |
| deleted | boolean (deleted) Is the resource deleted? |
| deletedAt | string <date-time> (deletedAt) Deletion date and time. Format MUST comply with ISO 8601. |
| deletedBy | integer or null <int64> |
PMS Room Type example
{- "id": "64f8f1a4c4e2b977f7b4d101",
- "name": "Deluxe Suite",
- "description": "Main suite category.",
- "property": "64f8f1a4c4e2b977f7b4d001",
- "maxAvailability": 3,
- "maxAdults": 2,
- "maxChildren": 1,
- "provider": "channex",
- "providerId": "chx_room_456",
- "isActive": true,
- "dateCreated": "2026-01-10T09:10:00.000Z",
- "createdBy": 7,
- "dateUpdated": "2026-02-11T10:35:00.000Z",
- "updatedBy": 7,
- "deleted": false
}| id | string The Rate Plan MongoDB ObjectId. |
| name | string |
| description | string |
| room | string Parent Room Type ObjectId. |
| rate | integer Base rate amount in the configured currency minor units. |
Array of objects or objects or objects or objects Optional rate adjustment rules. | |
| currency | string |
| meal | string or null Enum: "none" "all_inclusive" "breakfast" "lunch" "dinner" "american" "bed_and_breakfast" "buffet_breakfast" "carribean_breakfast" "continental_breakfast" "english_breakfast" "european_plan" "family_plan" "full_board" "full_breakfast" "half_board" "room_only" "self_catering" "bermuda" "dinner_bed_and_breakfast_plan" "family_american" "breakfast_and_lunch" "lunch_and_dinner" |
| provider | string Enum: "homeit" "channex" |
| providerId | string or null |
| isActive | boolean (isActive) Is the resource active? |
| dateCreated | string <date-time> (dateCreated) Creation date and time. Format MUST comply with ISO 8601. |
| createdBy | integer <int64> |
| dateUpdated | string <date-time> (dateUpdated) Last update date and time. Format MUST comply with ISO 8601. |
| updatedBy | integer <int64> |
| deleted | boolean (deleted) Is the resource deleted? |
| deletedAt | string <date-time> (deletedAt) Deletion date and time. Format MUST comply with ISO 8601. |
| deletedBy | integer or null <int64> |
PMS Rate Plan example
{- "id": "64f8f1a4c4e2b977f7b4d201",
- "name": "Standard Flexible",
- "description": "Main public rate.",
- "room": "64f8f1a4c4e2b977f7b4d101",
- "rate": 12000,
- "rules": [
- {
- "type": "weekly",
- "percent": -0.1,
- "weekday": 0
}
], - "currency": "EUR",
- "meal": "breakfast",
- "provider": "channex",
- "providerId": "chx_rate_789",
- "isActive": true,
- "dateCreated": "2026-01-10T09:20:00.000Z",
- "createdBy": 7,
- "dateUpdated": "2026-02-11T10:40:00.000Z",
- "updatedBy": 7,
- "deleted": false
}| id | string The Channel MongoDB ObjectId. |
| name | string |
| organization | integer <int64> |
| ota | string Enum: "airbnb" "bookingcom" |
| otaUrl | string or null External URL used to complete channel connection when applicable. |
| otaToken | string or null Temporary token used during external connection flows. |
| otaListing | string or null OTA listing or hotel identifier used by the provider. |
Array of objects | |
| isSync | boolean Whether future reservations should be loaded automatically after mapping. |
| provider | string Enum: "homeit" "channex" |
| providerId | string or null |
| isActive | boolean (isActive) Is the resource active? |
| dateCreated | string <date-time> (dateCreated) Creation date and time. Format MUST comply with ISO 8601. |
| createdBy | integer <int64> |
| dateUpdated | string <date-time> (dateUpdated) Last update date and time. Format MUST comply with ISO 8601. |
| updatedBy | integer <int64> |
| deleted | boolean (deleted) Is the resource deleted? |
| deletedAt | string <date-time> (deletedAt) Deletion date and time. Format MUST comply with ISO 8601. |
| deletedBy | integer or null <int64> |
PMS Channel example
{- "id": "64f8f1a4c4e2b977f7b4d601",
- "name": "Airbnb Main Account",
- "organization": 42,
- "ota": "airbnb",
- "otaToken": null,
- "otaListing": null,
- "mapping": [
- {
- "providerId": "airbnb_mapping_1",
- "property": "64f8f1a4c4e2b977f7b4d001",
- "room": "64f8f1a4c4e2b977f7b4d101",
- "rate": "64f8f1a4c4e2b977f7b4d201",
- "otaProperty": "airbnb_listing_999",
- "otaRoom": null,
- "otaRate": null
}
], - "isSync": true,
- "provider": "channex",
- "providerId": "chx_channel_321",
- "isActive": true,
- "dateCreated": "2026-01-15T09:00:00.000Z",
- "createdBy": 7,
- "dateUpdated": "2026-02-15T09:30:00.000Z",
- "updatedBy": 7,
- "deleted": false
}| id | string The Booking MongoDB ObjectId. |
| name | string Booking or guest-facing label. |
| property | string Property ObjectId. |
| room | string Room Type ObjectId. |
| rate | string or null Rate Plan ObjectId. |
| isBlockedPeriod | boolean Whether this booking represents a blocked calendar period. |
| checkIn | string <date-time> |
| checkOut | string <date-time> |
| ota | string or null OTA source identifier. |
| adults | integer |
| children | integer |
| key | integer or null <int64> Linked Core Key numeric ID. |
| isPaid | boolean |
| isSendMessage | boolean |
| isMessageSent | boolean |
| status | string Enum: "confirmed" "canceled" |
| provider | string Enum: "homeit" "channex" |
| providerId | string or null |
| isActive | boolean (isActive) Is the resource active? |
| dateCreated | string <date-time> (dateCreated) Creation date and time. Format MUST comply with ISO 8601. |
| createdBy | integer <int64> |
| dateUpdated | string <date-time> (dateUpdated) Last update date and time. Format MUST comply with ISO 8601. |
| updatedBy | integer <int64> |
| deleted | boolean (deleted) Is the resource deleted? |
| deletedAt | string <date-time> (deletedAt) Deletion date and time. Format MUST comply with ISO 8601. |
| deletedBy | integer or null <int64> |
PMS Booking example
{- "id": "64f8f1a4c4e2b977f7b4d301",
- "name": "John Doe Reservation",
- "property": "64f8f1a4c4e2b977f7b4d001",
- "room": "64f8f1a4c4e2b977f7b4d101",
- "rate": "64f8f1a4c4e2b977f7b4d201",
- "isBlockedPeriod": false,
- "checkIn": "2026-08-15T15:00:00.000Z",
- "checkOut": "2026-08-18T11:00:00.000Z",
- "ota": "airbnb",
- "adults": 2,
- "children": 1,
- "key": 5001,
- "isPaid": true,
- "isSendMessage": true,
- "isMessageSent": false,
- "status": "confirmed",
- "provider": "channex",
- "providerId": "chx_booking_555",
- "isActive": true,
- "dateCreated": "2026-02-10T12:00:00.000Z",
- "createdBy": 7,
- "dateUpdated": "2026-02-10T12:05:00.000Z",
- "updatedBy": 7,
- "deleted": false
}| id | string The Message Template MongoDB ObjectId. |
| name | string |
| description | string |
| organization | integer <int64> |
| message | string Sanitized template body used when sending guest messages. |
| isWaitPayment | boolean Whether the message should wait for payment confirmation. |
| sendBeforeMinutes | integer Minimum number of minutes before check-in required to send the message. |
| isActive | boolean (isActive) Is the resource active? |
| dateCreated | string <date-time> (dateCreated) Creation date and time. Format MUST comply with ISO 8601. |
| createdBy | integer <int64> |
| dateUpdated | string <date-time> (dateUpdated) Last update date and time. Format MUST comply with ISO 8601. |
| updatedBy | integer <int64> |
| deleted | boolean (deleted) Is the resource deleted? |
| deletedAt | string <date-time> (deletedAt) Deletion date and time. Format MUST comply with ISO 8601. |
| deletedBy | integer or null <int64> |
PMS Message Template example
{- "id": "64f8f1a4c4e2b977f7b4d501",
- "name": "Check-in Instructions",
- "description": "Sent before guest arrival.",
- "organization": 42,
- "message": "<p>Hello {{guestName}}, your access details will be sent shortly.</p>",
- "isWaitPayment": false,
- "sendBeforeMinutes": 1440,
- "isActive": true,
- "dateCreated": "2026-01-09T08:00:00.000Z",
- "createdBy": 7,
- "dateUpdated": "2026-02-09T08:15:00.000Z",
- "updatedBy": 7,
- "deleted": false
}