The product is larger than any one integration needs. This page is the honest
map: for every entity the PMS holds, which door exposes it, how, and why the
rest is not there. It is maintained alongside the code — an entity missing from
the API is missing from this table too, never silently.
Legend: R read · W write · – not exposed to this door.
| Entity | Agency | Landlord | Cleaning | Notes |
|---|
| Units (master data, photos, sleeping arrangement, 3D tour, permit, pets) | R | R (own) | R (reduced: address, rooms, times) | Landlord sees only tenure units; cleaner sees no prices, no permit |
| Amenities & assignments | R | – | – | GET /amenities, per unit on GET /units/:slug |
| Arrival info (WiFi, door code, directions) | – | – | – | Access credentials are secrets; they stay behind the console’s access right |
| Availability (blocked nights) | R | R (own) | – (anonymous occupancy spans instead) | |
| Nightly rate calendar, seasons, holiday rules | R (resolved per night) | – | – | GET /rates (each night names its source: base, season, holiday or day price); the rule configuration itself stays in the console |
| Day prices per unit | W | – | – | PUT / DELETE /rates/day-prices with scope write:rates: by night list or date range + weekdays; a day price always wins over seasons and holiday rules |
| Length-of-stay discounts | R | – | – | On GET /rates |
| Promotions | R | – | – | Running campaigns only |
| Fee types | R | – | – | |
| Tourism Dirham templates | – | – | – | Configuration; the fee appears as a quote line |
| Quote (live engine) | R | – | – | POST /quote |
| Entity | Agency | Landlord | Cleaning | Notes |
|---|
| Bookings | R, W (create, cancel) | R (own, anonymised) | – | Landlord: dates, party size, gross; never a name |
| Own-use stays & blocks | R, W | R, W (own units, future) | – | The one thing a landlord writes |
| Booking changes / early check-out log | – | – | – | Internal history; cancellations are visible via status |
| Guests & prospects (presales) | R (read:guests) | – | – | Personal data — own scope, never pre-selected |
| Guest identity documents | – | – | – | Encrypted per stay, crypto-shredded on schedule; never through any API |
| Guest interactions (call log) | – | – | – | Audit-chained internal notes |
| Enquiries (website / lead portal) | R (contact with read:guests) | – | – | GET /requests; creation stays with the public website form |
| Price offers / negotiated adjustments | – (totals visible on enquiry and booking) | – (deviations visible on the statement) | – | The negotiation itself is office work |
| Entity | Agency | Landlord | Cleaning | Notes |
|---|
| Invoices (with lines) | R (buyer with read:guests) | R (list for own units) | – | Printing and e-invoicing stay in the console |
| Payments | R | – | – | |
| Security deposits | R | – | – | Ledger with refund due dates |
| Payment links | – | – | – | Transactional, guest-facing |
| Owner payouts | R (on statement) | R | – | |
| Landlord statement | R (GET /landlords/:id/statement) | R (GET /statement) | – | Same builder as the portal and the PDF |
| Running costs & categories | R | R, W (own rows) | – | Landlord sees visible categories; deductions always visible |
| Agency contracts (central costs) | – | – (their share shows on the statement) | – | Agency money, not a partner concern |
| Entity | Agency | Landlord | Cleaning | Notes |
|---|
| Tasks (to-do list) | R, W | – | – | Create from ticket systems, move through statuses |
| Cleaning jobs (derived turnovers, mid-stay) | R (whole portfolio, crew named) | – | R (own crew, incl. hand-overs) | Same derivation as the dispatch board |
| Cleaning reports (start/finish) | R (on jobs) | – | W | Mirrors into calendar and ops board |
| Cleaning crews | R | – | – (implicit: the key is the crew) | |
| Cleaning contracts & rate cards | – | – | – | Commercial terms between agency and partner — console only |
| Turnover rules | – (effect visible as blockDays / blockRule) | – | – (same) | |
| Day route | – (GET /housekeeping/jobs carries the windows) | – | R (GET /plan) | |
| Entity | Agency | Landlord | Cleaning | Notes |
|---|
| Landlords & tenures | R | R (self, via /me and /units) | – | |
| Landlord documents | – | R (released ones, with download) | – | Office-side filing stays in the console |
| Landlord ↔ office messages | – | R, W | – | |
| Recurring own-use rules | – (occurrences appear as bookings) | – (occurrences appear as bookings) | – | |
- Agency configuration: team logins, roles and rights, geo areas, website
design and legal pages, mail templates and SMTP, map and concierge settings,
channel connectors and iCal feeds, subscription and plan. These are the
agency’s control panel, not data a partner integrates with.
- Audit trail and archive: the revision-proof journal is read and verified in
the console; exporting it is a compliance act, not an API call.
- Platform (meta) console: tenant administration is not part of any tenant’s
API.
- Webhook configuration: endpoints are registered in the console, UI-first
(docs/30 §5). Events themselves are delivered to you — see the
webhooks guide.
PATCH /bookings/:id on the agency door for hold details, once the console’s
editor moves into the shared service layer.
- Webhook events beyond
booking.* — on demand, as each event is a promise to
keep delivering it.
- MCP tools for the landlord and cleaning doors.
If an entity you need is missing, say so — the list grows on demand, and every
addition lands here and in the changelog.