New Incomes & Expenses section, with full read/write coverage of income and expense entries (transactions):
GET /transactions for querying entries. Supports filtering by date range (start_date / end_date), property_id, stay_code, direction, item_id, payment_method_id, currency and keyword. Each entry exposes direction (income / expense), link_type (property / reservation / operator) and status (paid / outstanding) as readable string enums, and resolves item_name / payment_method_name from the dictionaries below.
POST /transactions to record a new entry. The link target is inferred from the request: provide stay_code to record against a specific stay, property_id to record against a property, or neither for an operator-level entry (master operator only). amount is always positive — sign is derived from direction. currency is required unless stay_code is provided, in which case it is inherited from the reservation order.
PATCH /transactions/{id} to update an entry's amount, item_id, payment_method_id, action_at or note. Direction, link target and currency are immutable.
DELETE /transactions/{id} to permanently delete an entry.
New dictionary endpoints GET /income_items, GET /expense_items, GET /income_methods and GET /expense_methods decode the item_id / payment_method_id returned by GET /transactions.
New Task write endpoints:
POST /tasks to create a schedule task. Optional property_id and staff_id link the task to a property and assign a staff; level is only meaningful for cleaning tasks. expected_date / expected_time are interpreted in the operator's configured timezone. Returns the new task_id.
PATCH /tasks/{id} to update an existing task. All fields are optional; pass property_id=0 or staff_id=0 to detach. The full status lifecycle (pending / in_progress / completed / cancelled) can be set here. expected_date / expected_time are interpreted in the operator's configured timezone.
DELETE /tasks/{id} to delete a task.
New Staff write endpoints:
POST /staffs to create a schedule staff (created as active). Use property_ids to scope the staff to specific properties. International operators must provide mobile in +<country code> <number> format.
PATCH /staffs/{id} to update an existing staff. Passing property_ids replaces the full assignment list; pass an empty array to clear. is_active toggles enable/disable.
DELETE /staffs/{id} to delete a staff (and remove their property assignments).
Changed
PATCH /reservations/{stay_code} (Update Reservation Basic Info): the path parameter is now stay_code instead of reservation_code, since the endpoint updates a specific stay's attributes rather than the order. The URL pattern itself is unchanged. DELETE /reservations/{reservation_code} (Cancel) and the channel-facing POST /reservations/{reservation_code}/approve|decline keep reservation_code since they operate at the order level.
Fixed
GET /reservations: the custom_channel.id field now returns the same id used by GET /custom_channels (previously returned an internal table primary key that could not be matched against the dictionary).
[3.1.2] - 2026-04-28
Added
New Task endpoints GET /tasks and GET /staffs for querying schedule tasks and staffs.
GET /tasks supports filtering by date range (start_date / end_date), staff_id, property_id, type and status.
Task type, status and level are returned as readable string enums (e.g. cleaning, pending, standard).
[3.1.1] - 2026-03-10
Added
New Property endpoint GET /tags returning all tags with their associated property and room type ids.
GET /properties supports tag_id filter and now returns a tags array on each property.
GET /room_types supports id and tag_id filters and now returns a tags array on each room type.
[3.1.0] - 2026-01-21
Added
New Property endpoint GET /groups returning all property groups with their associated property ids.
GET /properties supports group_id filter and now returns a groups array on each property.
[3.0.0]
Added
Initial release of the Hostex OpenAPI v3, with endpoints covering Properties, Room Types, Reservations, Availabilities, Listing Calendar, Messaging, Reviews, Automation and Webhooks.