Listings & Availability
Poll GET /listings only after Getting Started — Recommended Setup Sequence steps 11–13 — connect channels on Settings > Integrations, align payload fields in Integration field capability, set Tenant categories default for integrations, then finish the Listings property wizard with externalId on each unit’s Channels tab (Property & Unit Mapping). Complete steps 14–15 and Onboarding a New Property — Step 7 before you treat partial pulls as production truth. Guide pairing after go-live: Setup sequence after go-live (hub: API Reference — Setup sequence after go-live).
Start with Get All Listings and Field Reference for partial payload shapes, then Sync Strategy for polling cadence. Catalogue publishers also need Full listing feeds; calendar-only subscribers should read iCal feeds instead. Confirm externalId in Property & Unit Mapping before Creating Bookings. Non-linear operator habits (Lockout catch-up, Pending manual receipt approval, Reject/revert mistaken receipts, Portfolio segmentation by tenant category, Notification row-click navigation, Payment alert to receivables triage, Confirmation alert triage, Finance debt receivables triage, Handling a Late Payment collections, Finance Income status drill-down, Cash flow forecast drill-down) have matching Related subsections below. Full pairing matrix: Listings & Availability section cross-reference · API Reference — API guide cross-reference.
Use these endpoints to retrieve all listings associated with your integration, including real-time pricing, availability windows, and calendar blocks. This data should be polled periodically to keep your platform synchronised with Vivin.
This page documents the partial listing pull (GET /{platform}-integration/listings and GET /{platform}-integration/listings/:externalId) — the shared calendar/pricing/booking shape. For partner-shaped full publish feeds (GET /{platform}-integration/:landlordKey/listings/full), see Full listing feeds and API Reference — Partial vs full integration feeds.
Housing Anywhere partial rows extend ListingDto with a costs array — see Full listing feeds — HA partial. iCal calendar export is a separate module — iCal feeds.
Partial-only prefixes (Channex, RoomLess, Erasmus Life Lisboa, iCal, Vivin Booking Engine) are listed in API Reference — Partial-only integrations.
Use your integration’s OpenAPI page on the API host to run authenticated GET listing requests interactively — see API Reference — Try requests in Swagger.
Get All Listings
Authorize with Authentication before your first GET /listings call. Catalogue publishers contrast with Full listing feeds; calendar-only partners use iCal feeds instead. Full endpoint map: Listings & Availability section cross-reference.
Retrieve all active listings published to your integration platform.
GET /{platform}-integration/listings HTTP/1.1
Host: api.vivin.app
Authorization: Bearer YOUR_API_KEY
Response
[
{
"externalId": "abc-123",
"availableFrom": "2026-05-01T00:00:00.000Z",
"minStayPeriod": 1,
"maxStayPeriod": 12,
"isRentFixed": false,
"rent": 850.0,
"capacity": 2,
"extraPricePerTenant": 100.0,
"cleaningFeeValue": 75.0,
"billsIncluded": true,
"billsIncludedMaxValue": 50.0,
"adminFeeValue": 250.0,
"depositValue": 850.0,
"landlordEmail": "[email protected]",
"rentsPerMonth": [
{ "month": 1, "rent": 750.0 },
{ "month": 2, "rent": 750.0 },
{ "month": 3, "rent": 800.0 },
{ "month": 4, "rent": 850.0 },
{ "month": 5, "rent": 900.0 },
{ "month": 6, "rent": 950.0 },
{ "month": 7, "rent": 1000.0 },
{ "month": 8, "rent": 1000.0 },
{ "month": 9, "rent": 950.0 },
{ "month": 10, "rent": 850.0 },
{ "month": 11, "rent": 800.0 },
{ "month": 12, "rent": 750.0 }
],
"unavailabilities": [
{
"from": "2026-05-01T00:00:00.000Z",
"to": "2026-08-31T00:00:00.000Z",
"reason": "booked"
}
],
"bookingWindows": [
{
"minStartDate": "2026-09-01T00:00:00.000Z",
"maxStartDate": "2026-12-31T00:00:00.000Z",
"minEndDate": "2026-10-01T00:00:00.000Z",
"maxEndDate": "2027-08-31T00:00:00.000Z"
}
],
"createdAt": "2025-01-15T10:30:00.000Z",
"updatedAt": "2026-04-19T14:22:00.000Z"
}
]
Full pairing matrix: Listings & Availability section cross-reference.
Get Single Listing
Use Integration Swagger to exercise the path-parameter variant — see the capture below and Try requests in Swagger. Confirm the returned externalId against Property & Unit Mapping before POST /bookings. Full endpoint map: Listings & Availability section cross-reference.
Retrieve a specific listing by its external ID.
GET /{platform}-integration/listings/{externalId} HTTP/1.1
Host: api.vivin.app
Authorization: Bearer YOUR_API_KEY
In Swagger, the single-listing operation is the one that takes your platform’s externalId as a path parameter — expand it, fill the path value, and execute after you have authorized with the same key you use in HTTP.

Response
Returns a single listing object (same schema as above).
Full pairing matrix: Listings & Availability section cross-reference.
Field Reference
billsIncludedMaxValue ties to operator Listings — Step 3 Extra payments and monthly Utilities overage. unavailabilities must align before Creating Bookings enqueue. Full endpoint map: Listings & Availability section cross-reference.
Listing Object
| Field | Type | Description |
|---|---|---|
externalId | string | The unique identifier for this listing on your platform. This is the ID you provided during the mapping setup. |
availableFrom | string (ISO 8601) | The earliest date this listing is available for move-in. |
minStayPeriod | integer | Minimum stay duration in months. |
maxStayPeriod | integer | Maximum stay duration in months. |
isRentFixed | boolean | If true, the rent field contains the fixed monthly rent. If false, pricing varies by month - use rentsPerMonth. |
rent | number | Monthly rent in EUR. When isRentFixed is false, this is the base/default rent. |
capacity | integer | Maximum number of tenants the listing can accommodate. |
extraPricePerTenant | number | Additional monthly charge (EUR) for each tenant beyond the first. |
cleaningFeeValue | number | One-time cleaning fee (EUR) charged at booking. |
billsIncluded | boolean | Whether utility bills are included in the rent. |
billsIncludedMaxValue | number | Maximum monthly amount (EUR) of included bills. If actual bills exceed this, the tenant pays the difference. 0 or null means unlimited. |
adminFeeValue | number | One-time administrative fee (EUR) charged at booking confirmation. |
depositValue | number | Security deposit amount (EUR). |
landlordEmail | string | Email of the property manager managing this listing. |
rentsPerMonth | RentPerMonth[] | Month-by-month pricing (see below). Only relevant when isRentFixed is false. |
unavailabilities | Unavailability[] | Date ranges when the listing is not available (see below). |
bookingWindows | BookingWindow[] | Allowed check-in/check-out date ranges (see below). |
createdAt | string (ISO 8601) | When the listing was first created in Vivin. |
updatedAt | string (ISO 8601) | When the listing was last modified. Use this for incremental sync. |
RentPerMonth Object
Seasonal or variable pricing. Each entry specifies the rent for a specific calendar month.
| Field | Type | Description |
|---|---|---|
month | integer (1-12) | Calendar month (1 = January, 12 = December). |
rent | number | Monthly rent (EUR) for that month. |
How to calculate a stay's total rent: For a booking spanning multiple months, sum the rent value for each calendar month covered. For partial months, pro-rate based on the number of days.
Unavailability Object
Represents a date range when the listing cannot be booked.
| Field | Type | Description |
|---|---|---|
from | string (ISO 8601) | Start of unavailable period (inclusive). |
to | string (ISO 8601) | End of unavailable period (inclusive). |
reason | string | Reason for the block (e.g. "booked", "maintenance", "owner_block"). |
Always respect unavailabilities when showing availability on your platform. These reflect confirmed bookings and manual blocks across all connected channels. Ignoring them may result in double-bookings, which will cause the booking submission to fail.
BookingWindow Object
Defines the allowed date ranges for new bookings. If present, only bookings with check-in/check-out dates within these windows will be accepted.
| Field | Type | Description |
|---|---|---|
minStartDate | string (ISO 8601) | Earliest allowed check-in date. |
maxStartDate | string (ISO 8601) | Latest allowed check-in date. |
minEndDate | string (ISO 8601) | Earliest allowed check-out date. |
maxEndDate | string (ISO 8601) | Latest allowed check-out date. |
Full pairing matrix: Listings & Availability section cross-reference.
Sync Strategy
Prefer listing.updated / unavailability.* push events from Webhooks & Notifications when configured instead of aggressive polling. When blocks look stale, operators run Manual block hygiene. Full endpoint map: Listings & Availability section cross-reference.
Recommended Polling Interval
- Full sync: Every 15-30 minutes
- Incremental sync: Compare
updatedAttimestamps to detect changes since your last poll
Platform Markup
Prices returned by the API already include any platform-specific markup configured by the property manager in Vivin. The values you receive are the final prices to display to end users on your platform.
Calendar Block Extension
Vivin may automatically extend calendar blocks around bookings based on the property manager's configuration (e.g. adding a buffer day before/after each booking for cleaning). These extended blocks are included in the unavailabilities array.
Full pairing matrix: Listings & Availability section cross-reference.
Listings & Availability section cross-reference
Use this table when one endpoint group naturally leads into operator UI, another API guide, or a downstream workflow — each row links to the docs you should read before or after wiring partial listing pulls.
| API topic / section | Pair with these docs |
|---|---|
| Get All Listings | Authentication, Full listing feeds (publish catalogue contrast), Property & Unit Mapping |
| Get Single Listing | Try requests in Swagger, Property & Unit Mapping, Creating Bookings (pre-enqueue verify), Notifications — Payment overdue alerts → Handling a Late Payment — Step 1 (post-import collections), Glossary — Credit note (payment reject/revert), Glossary — Invoiced floor (rent) |
| Field Reference | Listings — Step 3 Extra payments, Utilities module, Booking Lifecycle & Validations |
| Sync Strategy | Webhooks & Notifications, iCal feeds (calendar export contrast), Manual block hygiene |
| Lockout catch-up after password recovery | Channel sync backlog after sign-in recovery | Common Workflows — Lockout catch-up, Settings > Integrations, Notification triage | | Pending manual receipt approval | OTA imports with pending confirmation receipts | Common Workflows — Pending manual receipt approval, Creating Bookings, Finance — Pending manual payments | | Reject/revert mistaken receipts | Duplicate imports affecting availability | Common Workflows — Reject/revert mistaken receipts, Manual block hygiene, Payment Allocation — Correcting mistaken receipts | | Portfolio segmentation by tenant category | Segment operator triage on imported stays | Common Workflows — Portfolio segmentation, Bookings — Other filters, Settings > Tenant categories | | Notification row-click navigation | Availability pulls vs alert triage | API Reference — Notification row-click navigation, Common Workflows — Notification row-click navigation, Notifications module — Notification row-click navigation | | Payment alert to receivables triage | Listed inventory vs overdue alerts | API Reference — Payment alert to receivables triage, Common Workflows — Payment alert to receivables triage, Handling a Late Payment — Step 1 | | Confirmation alert triage | New units vs confirmation alerts | API Reference — Confirmation alert triage, Common Workflows — Confirmation alert triage, Processing a New Booking — Step 5b | | Finance debt receivables triage | Receivables on listed units | API Reference — Finance debt receivables triage, Common Workflows — Finance debt receivables triage, Finance module — Finance debt receivables triage | | Handling a Late Payment collections | Integration surface vs operator collections Steps 1–6 | | Finance Income status drill-down | Rent fields vs Income segments | API Reference — Finance Income status drill-down, Common Workflows — Finance Income status drill-down, FAQ — Finance Income status drill-down hub | | Cash flow forecast drill-down | Listed rent vs collections bars | API Reference — Cash flow forecast drill-down, Common Workflows — Cash flow forecast drill-down, FAQ — Cash flow forecast drill-down hub |
Related
Related below links partial GET /listings pulls to setup, companion API guides, operator workflows, and escalation paths. Pair Setup sequence after go-live with Getting Started — Recommended Setup Sequence; pair Companion API guides with API Reference hub. Topic-to-guide pairing in sections above: Listings & Availability section cross-reference. Full hub matrix: API guide cross-reference.
Setup sequence after go-live
Complete Account Settings — Recommended setup order before partner traffic. Hub parity: API Reference — Setup sequence after go-live. Full pairing matrix: Listings & Availability section cross-reference · API guide cross-reference.
- Setup steps 1–10 — Complete operator workspace basics (Recommended setup order) before requesting partner Bearer keys; property managers automating outside the browser use Management session authentication after step 3 (Users)
- Setup steps 11–12 (Integrations, Integration field capability, Tenant categories default for integrations) — Channel credentials, calendar horizons, and payload field expectations before
[email protected]onboarding; operator context: Integrations & Distribution - Setup step 13 (Listings) — Property wizard,
externalIdmapping, and Channels tab before first partner listing reads or writes - Setup steps 14–15 (Bookings, Tenants) — Validate imported reservation shape and tenant segments after partner traffic
- After steps 13–15 — Onboarding a New Property — Step 7 go-live verification before escalating partner pull, webhook, or mapping defects
- After step 13 — poll
GET /listingsonly after ChannelsexternalIdmapping is saved; prefer Webhooks & Notifications (listing.updated,unavailability.*) when Vivin provisions outbound callbacks - Partner credential requests — Email
[email protected](distinct from in-app Vivin support tickets in Get Help & Support)
Documentation map & escalation
Documentation-map bullets pair with Introduction — Section cross-reference and FAQ — Section cross-reference. Full pairing matrix: Listings & Availability section cross-reference.
- Getting Started — Recommended Setup Sequence before partner HTTP traffic; hub parity: API Reference — Setup sequence after go-live
- API Reference hub — Hub pairing matrix across integration guides; hub parity: Setup sequence after go-live
- Get Help & Support — Request credentials or onboarding via
[email protected](hub: Setup sequence after go-live) - FAQ & Troubleshooting — Management-app answers distinct from partner HTTP integration retries (hub: Setup sequence after go-live)
- Glossary — Term definitions used across API and operator docs (hub: Setup sequence after go-live)
Companion API guides
Companion guides share Bearer authorization or error shapes with this page — start from API Reference hub. Full pairing matrix: Listings & Availability section cross-reference.
- Booking engine integration — White-label
PUT /listingwrites that change what partial pulls return - iCal feeds — Short-term calendar export when partners prefer
text/calendarover JSON pulls - Property & Unit Mapping — How
externalIdvalues are configured before listings appear in pulls - Creating Bookings — Submit reservations that respect
unavailabilitiesand booking windows - Full listing feeds — Rich catalogue publish when partial
ListingDtois not enough - Webhooks & Notifications — Push updates when availability or booking status changes
- Booking Lifecycle & Validations — Post-pull validation rules before
POST /bookingsaccepts a payload - Error Handling —
404/409on partial pulls and booking submission - Authentication — Bearer authorization before first
GET /listings - AI usage — Operator JWT cost ledger (integration Bearer keys return
401)
Upstream & downstream workflows
Workflow bullets pair with Common Workflows — Workflow cross-reference after partner traffic lands in the management app. Full pairing matrix: Listings & Availability section cross-reference.
- Manual block hygiene — Hygiene pass when calendar blocks suppress occupancy but partial pulls look “fully booked”
- Entering Monthly Utility Bills — Operator overage workflow after bills exceed
billsIncludedMaxValueceilings - Portfolio KPI review — Reconcile partial-pull occupancy with Analytics and Dashboard after bulk channel sync
- Notification triage — Clear booking-import alerts after verifying
externalIdmappings on Sales → Channels - Processing a New Booking — Operator checklist after partial-pull availability checks pass and a reservation is created
- Managing a Check-out & Deposit Refund — Availability released on connected channels after Ended status
Operator UI & settings
Operator UI rows validate the same inventory and permissions behind integration HTTP — pair with Account Settings — Tab cross-reference. Full pairing matrix: Listings & Availability section cross-reference.
- Sales → Channels — Operator UI for iCal linking and channel status
- Listings — Step 3 Extra payments — Bills Included ceilings configured per property (not in partial
ListingDtorent fields) - Settings > Preferences — Booking defaults — Automatic preparation buffers included in
unavailabilities - Settings > Preferences — In-app notifications — Account-wide channel alerts when availability changes trigger notifications
- Settings > Emails — Payment reminder Communication Rules after partner imports create live bookings
- Property & listing details (booking engine) — Rich marketing and partner-platform fields partial
ListingDtopulls omit
Deeper concept reads
Concept reads pair with Concepts hub subsection index and Concept cross-reference. Full pairing matrix: Listings & Availability section cross-reference · API guide cross-reference.
- Integrations concept — Channel strategy behind partial vs iCal vs full partner feeds (section cross-reference; Deeper API reads; hub)
- Booking Lifecycle — Computed Upcoming → Ongoing → Ended / Canceled status model, list filters, and Timeline (section cross-reference; Deeper API reads; hub)
- Payment Allocation — Two-layer receipts, invoiced-floor rent edits, and credit note reject/revert warnings (section cross-reference; Deeper API reads; hub)
- Tenant Portal — Partial listing
rentsand availability partners read align with tenant payment schedule visibility (section cross-reference; Deeper API reads; hub) - FAQ — Tenant contract signing blocked — No PDF yet, mandatory Your Details gates, category locks, or Lease purpose; portal signing vs paper upload on Contract Info
Deeper workflow reads
Workflow reads pair with Common Workflows hub subsection index and Workflow cross-reference. Each workflow sub-guide also has its own Deeper API reads subsection with reciprocal companion API anchors — hub parity: API Reference — Deeper workflow reads. Full pairing matrix: Listings & Availability section cross-reference · API guide cross-reference.
- Manual block hygiene — Hygiene pass when calendar blocks suppress occupancy but partial pulls look “fully booked” (section cross-reference; Deeper API reads; hub)
- Entering Monthly Utility Bills — Operator overage workflow after bills exceed
billsIncludedMaxValueceilings (section cross-reference; Deeper API reads; hub) - Portfolio KPI review — Reconcile partial-pull occupancy with Analytics and Dashboard after bulk channel sync (section cross-reference; Deeper API reads; hub)
- Notification triage — Clear booking-import alerts after verifying
externalIdmappings on Sales → Channels (section cross-reference; Deeper API reads; hub) - Processing a New Booking — Operator checklist after partial-pull availability checks pass and a reservation is created (section cross-reference; Deeper API reads; hub)
- Managing a Check-out & Deposit Refund — Availability released on connected channels after Ended status (section cross-reference; Deeper API reads; hub)
- Onboarding a New Property — Partial
GET /listingspulls paired with channel verification in Step 5 (section cross-reference; Deeper API reads; hub)
Lockout catch-up after password recovery
Partial GET /listings polling may continue during operator lockout — reconcile UI channel alerts after sign-in recovery. Hub parity: Common Workflows — Lockout catch-up after password recovery. Full pairing matrix: listings--availability-section-cross-reference · API guide cross-reference.
- Common Workflows — Lockout catch-up after password recovery — Hub matrix when import queues and channel alerts accumulated during lockout
- Getting Started — Lockout catch-up after password recovery — Canonical operational backlog mesh
- Settings > Integrations — Re-verify connected platforms after sign-in recovery
- Notification triage — Channel sync alerts before bulk listing pulls
- Sales — Channel Manager — iCal / API connections that block availability until imports settle
Pending manual receipt approval
Availability pulls do not surface receipt state — pair with Finance — Pending manual payments when OTA imports await approval. Hub parity: Common Workflows — Pending manual receipt approval. Full pairing matrix: listings--availability-section-cross-reference · API guide cross-reference.
- Common Workflows — Pending manual receipt approval — Hub matrix when channel-import confirmation receipts await Approve payments
- Creating Bookings — Partner enqueue creates schedules behind availability blocks
- Processing a New Booking — Manual confirmation path for imported Upcoming stays
- Finance — Pending manual payments — Amber Pending chip after OTA bank transfers
- Payment Allocation — Two-layer model behind pending KPI lag
Reject/revert mistaken receipts
Stale unavailabilities from duplicate imports may need operator receipt cleanup — pair with Manual block hygiene. Hub parity: Common Workflows — Reject/revert mistaken receipts. Full pairing matrix: listings--availability-section-cross-reference · API guide cross-reference.
- Common Workflows — Reject/revert mistaken receipts — Hub matrix when duplicate OTA receipts block settlement
- Manual block hygiene — Audit pass when partial pulls disagree with Sales heatmaps
- Payment Allocation — Correcting mistaken receipts — Two-layer model for imported stays
- Audit — Manual Blocks — Portfolio blocks that shape
unavailabilitiesin JSON pulls - Glossary — Credit note (payment reject/revert) — Accounting follow-up on invoiced OTA receipts
Portfolio segmentation by tenant category
Partial listing pulls are account-wide — segment operator triage with Bookings — Other filters Tenant category. Hub parity: Common Workflows — Portfolio segmentation by tenant category. Full pairing matrix: listings--availability-section-cross-reference · API guide cross-reference.
- Common Workflows — Portfolio segmentation by tenant category — Hub matrix when channel imports cluster on one segment
- Settings > Tenant categories — Default for integrations assignment on new imported bookings
- Bookings — Other filters — Scope OTA import triage by Tenant category
- Property & Unit Mapping —
externalIdkeys before segment-specific imports - Glossary — Tenant category — Definition and Finance filter parity
Notification row-click navigation
Partial GET /listings pulls do not replace /notifications row-click — operators triage import alerts after availability sync. Hub parity: API Reference — Notification row-click navigation. Full pairing matrix: Listings & Availability section cross-reference · API guide cross-reference.
- API Reference — Notification row-click navigation — Hub matrix (
notifications-module-row-click-target.png,notifications-row-navigation-flow.mp4) - Common Workflows — Notification row-click navigation — Operator procedure hub
- Notifications module — Notification row-click navigation — Canonical
/notificationsinbox pairing - FAQ — Notification row-click navigation hub — Symptom table
Payment alert to receivables triage
Listed units with unpaid imported schedules surface payment overdue — row-click from alerts into booking Transactions. Hub parity: API Reference — Payment alert to receivables triage. Full pairing matrix: Listings & Availability section cross-reference · API guide cross-reference.
- API Reference — Payment alert to receivables triage — Hub matrix (
notifications-row-navigate-to-booking-detail.png,notifications-row-navigation-flow.mp4) - Common Workflows — Payment alert to receivables triage — Operator procedure hub
- Handling a Late Payment — Step 1 — Collections follow-through after row-click
- FAQ — Payment alert to receivables triage hub — Symptom table
Confirmation alert triage
First availability on newly mapped units pairs with Upcoming Booking created alert triage after externalId verification. Hub parity: API Reference — Confirmation alert triage. Full pairing matrix: Listings & Availability section cross-reference · API guide cross-reference.
- API Reference — Confirmation alert triage — Hub matrix (
notifications-row-navigate-to-booking-detail.png,bookings-detail-transactions-approve-payment-modal.png) - Common Workflows — Confirmation alert triage — Operator procedure hub
- Processing a New Booking — Step 5b / Step 6 — Canonical confirmation gates
- FAQ — Confirmation alert triage hub — Symptom table
Finance debt receivables triage
Availability reads inform occupancy — receivables triage stays on Finance → Overview → Debt Aging after alert row-click. Hub parity: API Reference — Finance debt receivables triage. Full pairing matrix: Listings & Availability section cross-reference · API guide cross-reference.
- API Reference — Finance debt receivables triage — Hub matrix (
finance-overview-income-chart-debt-aging.png,finance-overview-debt-aging-walkthrough-flow.mp4) - Common Workflows — Finance debt receivables triage — Operator procedure hub
- Finance module — Finance debt receivables triage — Debt Aging canonical surface
- FAQ — Finance debt receivables triage hub — Symptom table
Handling a Late Payment collections
Partner integration reads on Listings Availability do not replace operator collections — payment overdue in-app rows still need Handling a Late Payment — Steps 1–6 after receivables triage. Hub parity: Common Workflows — Handling a Late Payment collections hub. Full pairing matrix: listings-availability-section-cross-reference · API guide cross-reference.
- API Reference — Handling a Late Payment collections — Hub matrix (
finance-overview-income-chart-debt-aging.png,notifications-row-navigate-to-booking-detail.png) - Common Workflows — Handling a Late Payment collections hub — Operator procedure hub
- Payment alert to receivables triage — payment overdue alert before collections
- Finance debt receivables triage — Debt Aging before tenant outreach
- Handling a Late Payment — Step 1 — Collections follow-through
- FAQ — Handling a Late Payment collections hub — Symptom table
Finance Income status drill-down
Rent and cap fields on listings shape Income → Scheduled after imports — segment-click reconcile before month-end KPI sign-off. Hub parity: API Reference — Finance Income status drill-down. Full pairing matrix: Listings & Availability section cross-reference · API guide cross-reference.
- API Reference — Finance Income status drill-down — Hub matrix (
finance-overview-income-status-in-debt-modal.png,finance-overview-income-drill-down-flow.mp4) - Common Workflows — Finance Income status drill-down — Operator procedure hub
- Finance module — Income status drill-down — Canonical Finance → Overview surface
- FAQ — Finance Income status drill-down hub — Symptom table
Cash flow forecast drill-down
Approved collections on imported stays appear on Cash flow forecast bars — distinct from availability updatedAt polling. Hub parity: API Reference — Cash flow forecast drill-down. Full pairing matrix: Listings & Availability section cross-reference · API guide cross-reference.
- API Reference — Cash flow forecast drill-down — Hub matrix (
finance-overview-cash-flow-all-payments-modal.png,finance-overview-cash-flow-day-view.png,finance-overview-cash-flow-drill-down-flow.mp4) - Common Workflows — Cash flow forecast drill-down — Operator procedure hub
- Finance module — Cash flow forecast drill-down — Canonical Finance → Overview surface
- FAQ — Cash flow forecast drill-down hub — Symptom table
Key glossary terms
Glossary rows pair with Glossary cluster cross-reference and receipt-dispute workflows. Full pairing matrix: Listings & Availability section cross-reference.
-
Glossary — Deposit dispute — Check-out deposit retention surfaced in operator follow-up from import alerts
-
Glossary — Deposit lifecycle status — Listing
extraDepositPerTenantinGET /listingsfeeds deposit amounts on partner-imported bookings -
Glossary — End-of-Booking cost split — Charge Time → End of Booking splits daily overage across every occupied unit; still-staying roommates stay in the denominator (#2111)
-
Glossary — Change history — Operator-initiated edits on Listings setup and Bookings Changelog; create-time defaults excluded (#2093)
-
FAQ — Booking Changelog scope — Operator-initiated edits only; create-time defaults excluded (#2093)
-
Glossary — Archived booking ledger visibility — Delete Booking hides manual/provider_platform rows on Finance → Transactions; vIBAN and credit card stay visible (#1897)
-
Bookings — Provider platform payment — Non-rejected provider platform in-payment blocks Delete Booking until Reject or assign (#2076)
-
FAQ — Delete Booking on integration reservation — Clear pending provider platform in-payment with Reject or assign before soft-archive (#2076)
-
Listings — Property edit sidebar pills — Setup / Full integration / Photos pills on property and unit edit sidebars; replaced the old Go to details shortcut (#2082)
-
Glossary — Finance tenant category cache refresh — Recategorizing a tenant on Tenants → Tenant Info force-refreshes Finance caches so Contract Values, Overview, and Deposits filters match within seconds (#2088)
-
FAQ — Finance tenant category filter parity — Finance Other filters drawer lists segments on cached bookings only; mirror Bookings / Tenants when a segment is missing
-
FAQ — Assign tenant category for direct booking — Add booking has no category field; assign on Tenants → Tenant Info or + Create New → Tenant before contract mail
-
Glossary — SIMAR water contract ID — SIMAR (Loures e Odivelas) water bills use Cód. Local in Connections — not Nº de Contador; leading zeros stripped (#2110)
-
FAQ — SIMAR water bill property match — Cód. Local in Connections — not Nº de Contador; strip leading zeros (#2110)
-
Glossary — Per-booking maintenance ticket opt-out — Add booking checkboxes skip automatic CI/CO tickets for one reservation only; property rule unchanged (#1140)
-
FAQ — Cancel Booking vs Delete Booking — Cancel for real stays with settlement; Delete soft-archives mistaken/test rows (#1897 / #2076)
-
Glossary — Archived property — Archive retires a building to Listings → Archived without deleting bookings; distinct from Delete Booking (reservation soft-archive) — Listings — Archived properties
-
FAQ — Archive a property — Edit property sidebar Archive / Unarchive on Listings; building-level — not Delete Booking or Cancel booking
-
FAQ — Portfolio retirement decisions — Archive property (building) vs Cancel booking vs Delete Booking (reservation soft-archive) — three-way decision table
-
Finance — Deposit lifecycle status cards — Deposit lifecycle status row on Finance → Deposits; click Partial paid for collection shortfalls (#2091)
-
FAQ — Partly collected security deposit — Paid above zero but below Amount on booking Deposit; Partial paid card on Finance → Deposits (#2090 / #2091)
-
Finance — Deposit status filter — Other filters → Deposit status multi-select on Bookings and Finance (#2090)
-
Operations — Tickets toolbar search — Paste the full sequential ticket ID (for example
S259,T27) in toolbar Search (#2074) -
FAQ — Find a ticket by its ID — Paste the full sequential ticket ID (for example
S259,T27) in Operations → Tickets toolbar Search (#2074) -
FAQ — Skip automatic check-in/out tickets for one booking — Turn off Use unit contract rents and other contract details on Add booking to reveal CI/CO ticket checkboxes (#1140)
-
FAQ — Same-day turnovers — Check-out + check-in on one unit same day: Operations → Check-in & Check-out, Timeline / Multicalendar, turnover tickets
-
FAQ — Manual payments after Delete Booking — Delete Booking hides manual/provider_platform rows on Finance → Transactions; vIBAN and credit card stay visible (#1897)
-
Glossary — Directory list load failures — First-fetch directory failures show Retry / Try again; distinct from filter-empty states and booking-sidebar tab errors
-
Glossary — Vacant Unit Preference — Include manual blocks counts operator holds as free on Dashboard / Sales vacancy surfaces (#1427)
-
FAQ — Communication or Tickets load failure — Tab-scoped Refresh (Communication) or Retry (Tickets); other booking sidebar tabs stay usable
-
Operations — Property-level ticket search — Property-name matches share the top relevance tier with unit hits; building-scoped rows float first under an active Property filter (#2089)
-
Glossary — Credit note (payment reject/revert) — Reject/revert follow-up when import confirmation receipts were already invoiced
-
FAQ — AI token usage — Poll GET /ai-usage / GET /ai-usage/summary with management JWT;
landlord_chat+utility_bill_extraction; no management UI screen yet -
FAQ — Automatic check-in email — Trigger matrix, 15-day cutoff, paper upload vs portal signing, Nuki-only toggle, Send / Resend on Contract Info
-
FAQ — WhatsApp and email per booking — Bookings → Communication tab when tenant chatbot is enabled; Inbox for portfolio-wide triage
-
FAQ — Deposit missing on Finance Deposits — Default ~3 months date range; clear or widen before triaging older move-outs or dispute row actions
-
FAQ — Pending manual in-payment on /notifications — Alert persists until Approve payments clears Finance or booking Transactions
-
FAQ — Uncovered Debt KPI — Finance Total Debt minus deposit offsets; pair with Debt Aging and In debt drill-down
-
FAQ — Dashboard Total Debt subtitle — Post-login Total Debt card headline vs >15 days subtitle; ongoing bookings only
-
FAQ — Analytics (KPI workspace) — Portfolio KPIs vs Sales/Listings/Dashboard; load-failure Try again
-
Invoiced floor (rent) — Rent edits blocked below exported invoice totals on live imported bookings
-
FAQ — Bulk Hostkit invoicing slow — Vivin paces Hostkit API calls and retries HTTP 429 during bulk Issue allocation / Invoice selected; refresh Transactions before re-issuing
-
FAQ — Bulk Hostkit invoicing hub — Symptom table + per-guide mesh
-
FAQ — Lower rent below invoiced — Change monthly rent clamps and Contract Values → Edit amount blocks net below exported invoice totals; use credit notes in accounting when you truly need a reduction
-
Glossary — Fixed invoice date — Account-wide Invoice date before bulk Issue allocation / Invoice selected; amber banner on Finance → Transactions until you turn Use today as invoice date back on
-
FAQ — Month-end invoicing (fixed date) hub — Symptom table + toggle reset after batch
-
FAQ — Reject or revert an incoming payment — Reject pending rows or Revert confirmed ones; Finance → Transactions uses Reject selected bulk-only; modals warn about credit notes when Finance already invoiced
-
FAQ — Manual receipt still pending — Operator-recorded receipts stay pending until Approve payments; triage on Finance → Transactions (Pending chip) or booking Transactions; Total Debt and Manual Payments KPI lag until approval
-
FAQ — Finance Income status drill-down hub — Symptom table for segment vs Debt Aging
-
FAQ — Finance Income status drill-down — Overview Income chart (Paid / Scheduled / In debt); click a segment for month-scoped payment-line modal; Debt Aging for booking-level receivables
-
FAQ — Cash flow forecast drill-down hub — Symptom table for collections vs Income / Dashboard
-
FAQ — Cash flow forecast drill-down — Month / Day bar-click habit
-
FAQ — Permission denied toast — Red You do not have permission to perform this action. toast when RBAC blocks a save; fix in Users → Role Permissions
-
FAQ — Phone shows Operations only — Mobile phone user agent locks operators with Operations access to
/operations; iPads and narrow desktop browsers keep the full module list -
FAQ — Notification row-click navigation — On
/notifications, row click marks unread then openslink,bookingId,tenantId,listingId, orpropertyId(first match); Dashboard bell General rows stay in-panel unlesslinkis set -
FAQ — Bookings that owe money — Top debtors and overdue buckets on Finance → Overview; Total Debt KPI is not a table
-
FAQ — Fixed rent on variable unit — Variable listing + equal rent every contract month → booking stores fixed headline Monthly rent; payment plan unchanged
Module documentation hubs
Module hubs pair with Modules — Module cross-reference for screen-by-screen operator follow-up. Full pairing matrix: Listings & Availability section cross-reference.
- Audit module — Cross-portfolio manual blocks that appear in
unavailabilitiesalongside bookings (hub) - Bookings module — Imported stays that consume
unavailabilitieswindows from partial pulls (hub) - Dashboard — Vacant Units — KPI signal when blocks in partial pulls suppress vacancy counts (hub)
- Analytics — Overview tab — KPI reconciliation after partial-pull occupancy changes (hub)
- Utilities module — Operator bill entry and tenant overage when actual supplier costs exceed
billsIncludedMaxValuefrom partial pulls (hub) - Operations module — Maintenance tickets, cash flows, check-in/out coordination, Draft ticket queues, and linked cash flows (hub)
- Dashboard module — Post-login Today, Total debt, Vacant Units, and forecast KPI snapshot with bell notification triage (hub)
- Analytics module — Month-range portfolio KPI charts (Overview, Revenue, Occupancy, ADR, RevPAR, Maintenance) with rankings and heatmaps (hub)
- Listings module — Property wizard, Channels tab, Archived inventory, and unit management (hub)
- Properties workspace — Legacy
/propertiesURL redirects into Listings (hub) - Booking engine details — Rich marketplace payload editor via the Full integration pill (hub)
- Finance module — Portfolio ledgers (Overview, Income, Contract Values, Transactions, Payouts, Deposits) with payment approval and deposit settlement (hub)
- Tenants module — Tenant directory, profile sidebars, With Debt segmentation, and table expand for linked bookings (hub)
- Sales module — Portfolio availability, monthly rent editing, and channel manager connections (hub)
- Inbox module — Portfolio-wide WhatsApp workspace with Dashboard bell Inbox sub-tab deep links (hub)
- Notifications module — Full
/notificationshistory with search, filters, and row-click navigation (hub); Payment overdue alerts when partner imports leave unpaid schedules - AI Chat module — Vivin-internal AI Assistant using Landlord MCP tools for portfolio Q&A (hub)
- Account Settings — Workspace-wide financial policies, templates, integrations, and operational defaults (hub)