Skip to main content

Managing Bookings

First-time workspace setup

Complete setup step 13 Listings before step 14 — create or import reservations here after Getting Started — Recommended Setup Sequence steps 1–12. First reservation workflow: Processing a New Booking. After step 15 Tenants, run Onboarding a New Property — Step 7. Lifecycle vocabulary: Booking Lifecycle.

Finding your way in this guide

Start with Understanding the Bookings List and Filtering and Searching Bookings (Tenant categories stays open for segment scoping; Other filters for nationality, contract, deposit, and Currently in house), then open The Timeline View or drill into The Booking Detail View. New reservations: Creating a New Booking. Guide subsection map: Bookings guide subsection index (list, sidebar, and lifecycle sections + Related subsections). Habit-specific shortcuts live under Related below.

The Bookings module is your operational command center for managing all tenant reservations.

Direct access

Open the Bookings module directly at platform.vivin.app/bookings (list view) or platform.vivin.app/bookings/timeline (timeline view). See Deep Links for all management frontend routes.

Ask AI Chat where to open Bookings

Not sure which Portfolio item holds reservations and the unit timeline? Ask AI Chat “Where do I open Bookings to review reservations and the unit timeline?” — then open Portfolio → Bookings (ai-chat-product-context-bookings-reply.png, ai-chat-product-context-bookings-flow.mp4). The assistant may say left menu without naming Portfolio. Use List for row triage and Timeline for stays by unit; person-first work stays on Tenants; monthly rents stay on Sales.

Need the reservation-first workspace — list triage and unit timeline (not the person directory on Tenants, and not commercial grids on Sales)? Ask AI Chat “Where do I open Bookings to review reservations and the unit timeline?” — then open Portfolio → Bookings (ai-chat-product-context-bookings-reply.png, ai-chat-product-context-bookings-flow.mp4). The assistant typically says Bookings in the left menu (may omit the Portfolio group name). Canonical routes: /bookings (list) and /bookings/timeline.

AI Assistant — where to open Bookings for reservations and the unit timeline

Walkthrough: ask AI Assistant where to open Bookings for reservations and the unit timeline, then open Portfolio → Bookings (reply may say left menu without naming Portfolio).
Pair with other modules

Enrich tenant context in Tenants; settle charges in Finance; coordinate arrivals in Operations; check overlap on Timeline or Sales → Multicalendar. Tenant Communication threads are distinct from landlord AI Chat — landlord_chat token spend is on AI usage API (GET /ai-usage/summary), not tenant WhatsApp. When a payment overdue alert row-clicks here, continue with Handling a Late Payment — Step 1 — landing-zone pairing: Notification row-click navigation, Payment alert to receivables triage, Confirmation alert triage.

This is where you view, create, and manage every booking — from initial enquiry and booking confirmation, to check-in, stay, and check-out. It handles the full booking lifecycle with automatic tenant record creation, contract generation with digital signatures, and multi-channel booking import.

Bookings List View

Understanding the Bookings List​

Pair with other Bookings sections

The list pairs with Tenants module and Booking Lifecycle — row-click from payment overdue alerts continues with Handling a Late Payment — Step 1.

The Bookings module opens on a filterable table view. Each row represents one booking and shows:

  • Tenant Name and contact information
  • Property and Unit assigned to the booking
  • Status (Upcoming, Ongoing, Ended, Canceled)
  • Contract Start and End Dates
  • Rent Value
  • Platform (where the booking originated)
  • Contract column — teal check when a signed agreement is on file, grey document when it is not, grey dash when there is nothing to sign (see Contract column)
  • Outstanding Balance (if the tenant has unpaid charges) — the same unpaid lines that can trigger payment overdue rows on /notifications (row-click opens this sidebar; see Handling a Late Payment — Step 1)

Clicking any row opens the Booking Detail sidebar, where you can access all tabs for that booking.

Contract column​

The Contract column sits to the right of Platform. It tells you, without opening the sidebar, whether a signed agreement is on file:

IconMeaningHover tooltip
Teal document with a checkSigned agreement on fileSigned on date and time
Grey documentNo signed agreement yetContract not signed
Grey dashNothing to sign in VivinNot applicable

The grey dash appears when the tenant's tenant category has Tenant Portal Access turned off, or the Contract portal module turned off. That tenant never gets a contract to sign in Vivin, so the stay does not count as unsigned. A signed agreement on file always shows the teal check, and a tenant with no category keeps the grey document.

Narrow the list with Other filters → Contract status (Signed, Not Signed or N/A) when you are chasing paperwork for a house. After you Upload Signed Contract on Contract Info, this icon updates on the list you already loaded — see Contract mark stays on the list.

Bookings list — Casa Bolívia VIII, All bookings, Contract column with three grey unsigned icons and one teal signed check

Bookings list — Contract column hover Signed on date for a signed stay

Bookings list — Contract column hover Contract not signed for an unsigned stay

Contract mark stays on the list​

When a stay becomes signed — Upload Signed Contract on Contract Info, or the tenant signs in the Tenant Portal — Vivin writes the teal check into the All bookings rows you already have on screen. Scroll stays put. You do not jump back to the first page of the portfolio.

Work a house such as Casa Bolívia VIII: search, stay on All, open the signed stay (Sagaras Jayasinghe / Quarto 7), then close the sidebar. The same four rows are still in view, with the teal check on Quarto 7 and grey documents on the unsigned stays.

Bookings list — Casa Bolívia VIII All bookings with mixed Contract icons, before opening a stay

Bookings list — Casa Bolívia VIII still in view after closing the booking sidebar

Regenerate on Contract Info clears the mark the same way (teal check back to the grey document) without jumping the list.

If Filters → Contract status is Signed, Not Signed or N/A, Vivin reloads that filtered list instead of patching a single row — the stay may need to leave (or join) the slice, and the status-card counts have to match. Clear Contract status (or set it to All) when you want the in-place update.

The same signed mark updates on Tenants without jumping that directory: expand the person and read CT (tooltip Signed on with the date).

Tenants — table expand for Sagaras Jayasinghe, CT check with Signed on tooltip

Walkthrough: search Casa Bolivia VIII, open the signed stay, then close — All bookings stays on the same house with the Contract column still visible.

Loading more rows (list view)​

The table does not download your entire account in one request. Vivin loads the filtered portfolio in chunks from GET /bookings/portfolio:

PhaseBehaviour
First paintUp to 20 rows for the active filters, search, status card, platform cards, Sort By, and Other filters.
ScrollWhen you scroll near the bottom of the main workspace, the next chunk (5 rows) loads automatically. A short skeleton strip may appear while the request is in flight.
DoneLoading stops when every row that matches the server-side filter has been fetched. There is no End of list footer on this table (unlike Listings, Tenants, or Notifications).

If this list needs a refresh — Use Retry on the list view when rows look incomplete. This is distinct from filters that match zero bookings. See FAQ — Directory list refresh and Glossary — Directory list refresh.

Bookings list — scroll near the bottom while the next portfolio chunk loads (skeleton rows under the table)

Status card counts (All, Ongoing, Upcoming, and so on) come from portfolio metadata for your current filter set — they reflect the full matching population, not only the rows already visible in the table.

The Timeline view uses a separate, listing-based loading model — see Loading listing rows (timeline view) and Timeline refresh below.

Ongoing Bookings Tab

Filtering and Searching Bookings​

Pair with other Bookings sections

The module includes a comprehensive set of filters to help you locate specific reservations quickly.

The Search bar filters the portfolio server-side (accent-insensitive substring match after you pause typing). The API evaluates these fields together — a row appears when any column matches:

FieldWhat is matched
Tenant nameFirst name, last name, and concatenated full name (for example Tim Trompa matches across both columns)
Tenant email / phoneContact fields from the tenant profile
Unit internal nameListing label (for example AA-11-5D-R2)
Property internal name / addressBuilding label and street when the booking is tied to a listing
Source platformIntegration label (Direct, Airbnb, Uniplaces, and similar)
Tenant IBANIBAN on the tenant profile or denormalised on the booking
Internal Notes textConcatenated text from booking Internal Notes comments
Not in toolbar Search

Booking UUIDs, sequential display ids, and individual Payment plan line labels are not in this haystack. Use status cards, Other filters, or a direct /bookings/list/:id link when you already know the reservation id.

Single-character queries are ignored (the server treats them as “no search”) so accidental one-letter input does not scan the whole portfolio. Use at least two characters for meaningful narrowing.

When a search term matches multiple fields on the same booking, Vivin ranks results so unit internal name matches appear first, then tenant name or email, then rows that matched only on other columns (property, platform, IBAN, internal notes, and similar). The list order therefore surfaces the reservation you meant when you paste a room code ahead of unrelated tenant-name hits.

Bookings list — toolbar Search narrowed by unit internal name (unit matches ranked first)

When the term matches nothing, All bookings shows No bookings found in the table (status cards read 0 bookings). On Timeline, the date header stays and the Listing column clears — leftover bars from the previous query do not remain. That empty chart is a successful search, not a load problem: use Clear all or the search chip to restore units. Same toolbar Search on Sales → Multicalendar clears the listing axis the same way. See Search with no matches.

Bookmarkable search (?q=)​

The toolbar Search field hydrates from ?q= when you open Bookings with a query in the URL — for example platform.vivin.app/bookings?q=smith. Use this for bookmarks, hand-offs, or links from external tools.

Entry pointBehaviour
Direct link / bookmarkOpen /bookings?q=… — the toolbar Search is pre-filled on load; browser back and forward keep the term in sync
Toolbar Search on BookingsFilters the list in place; the URL is not updated as you type (unlike Tenants, which syncs q after a short debounce)

Bookings list — toolbar Search pre-filled from /bookings?q= with filtered rows visible after load

Status Filter Cards​

Click any status card to instantly filter the list:

UI LabelProduct Value (bookingStatus)Description
Alln/aEvery booking regardless of status
UpcomingupcomingReservations that have not yet started
OngoingcurrentActive reservations with tenants currently in residence
EndedendedCompleted reservations
CanceledcanceledReservations terminated before completion

The status cards use the same pill styling as row badges (teal All, green Ongoing, aqua Upcoming, grey Ended, red Canceled). Counts on each card reflect your other filters (search, property, platform, and Other filters) but not the status card you are selecting. Ongoing follows stay dates. When your account records arrivals, Currently in house is a separate Other filters slice (and teal In house badge) for stays with arrival stamped and departure not yet recorded.

Bookings list — Upcoming filter with reservations that have not yet started

Bookings list — Ended filter with completed stays

Bookings list — Canceled filter after explicit cancellation

For how computed lifecycle values map to these labels, see Booking Lifecycle.

Platform Filter Cards​

Platform cards and Other filters → Source platform filter by the OTA or marketplace the guest booked on (for example Direct, Airbnb, Booking.com, Uniplaces, Inlife, Idealista, Coliving, Edu Portugal, Erasmus Life Lisboa). Only platforms you have connected in Settings > Integrations appear as filter options. Stays that arrive through the channel manager show and filter as Airbnb or Booking.com — there is no separate channel-manager chip. See Platform badge and filters follow the real OTA. Edu Portugal can appear in Bookings and Finance filters even when it has no column on Sales > Channels.

Property and category filters​

Toolbar filters for property, booking tags, and tenant categories sit on one row next to Search, Filters, and Export. Selected values appear as removable chips under the toolbar (with Clear all).

Bookings list — toolbar with Booking categories, Tenant categories, and Select properties beside Search (AA-11-5D chip)

  • Select properties — multi-select toolbar control (desktop). Options come from the portfolio filter metadata returned with GET /bookings/portfolio (distinct property internal names for your account), not the paged GET /properties/search picker used on Finance → Other filters → Property, Operations → Other filters, Utilities → Select properties, and Sales → Pricing. Open the menu to tick one or more buildings from the full metadata list. When that list is long, the open control becomes a type-to-filter field (names still come from the account catalog — you are not searching the server the way Finance or Operations do). The menu stays open while you add selections, including on All bookings while the table refetches and on Timeline while the Gantt redraws; dismiss it when finished. Selected properties appear as removable chips under the toolbar (same chip row as category filters). Leave the control empty to include every property. Changing property scope resets infinite scroll from the first chunk and updates status-card counts for the narrowed set.

Bookings list — Select properties menu open showing the metadata checkbox list (example AA-11-5D)

Bookings list — Select properties toolbar filter with one property chip active (example AA-11-5D)

  • Booking categories dropdown — filter by booking tags configured under Settings > Categories > Bookings. The English placeholder is Booking categories. The menu lists every tag in your account plus a synthetic No booking category row at the bottom. Tick more than one choice; the list shows stays that match any of them. The menu stays open after each tick — see Booking categories stays open. Use Select all when you want every visible row in one click, then untick the tags you want to hide.
SelectionWhat appears in the list
One or more named tagsBookings whose bookingTags include at least one of the selected labels (OR within the tag subset).
No booking category onlyBookings with no booking tags assigned (empty tag list).
Named tags + No booking categoryBookings that match any selected tag or have no tags (useful when cleaning up segmentation before you standardize labels).

No booking category is resolved server-side: the portfolio query sends selected tag codes in tags and, when No booking category is checked, a noCategory flag that is OR-combined with those tags — so uncategorized rows are not dropped when you mix named tags with the empty case. The same rule applies to infinite scroll and Export (the download reflects the full filtered population, not only rows already loaded in the table).

Active booking-tag choices show as removable chips under the toolbar. Combine them with status cards, platform cards, property, Tenant categories, search, and Other filters as needed.

Bookings list — Booking categories menu with No booking category selected and the chip on the toolbar

When you filter by a named tag (for example Student), the chip shows the label from this catalog and the list narrows to bookings whose bookingTags include at least one selected tag (OR logic). Scoping Select properties to a clean building (for example AA-11-5D) keeps table rows publication-ready in docs captures.

Bookings list — Booking categories with the Student tag chip active and AA-11-5D property scope on the toolbar

Booking categories stays open while you pick​

Open Booking categories, then tick a tag. A chip appears under the toolbar; the menu stays open so you can tick a second tag. You do not need to open Booking categories again.

Tick Student, then No booking category (or another named tag from Settings > Categories > Bookings). Both stay checked in the open list. The table shows bookings that match any of those choices — Student stays or stays with no booking tag — not only bookings that have both. Dismiss the menu when the chips look right — same stay-open habit as Select properties.

The same menu sits on Timeline. Each tick also refetches the listing axis.

Finance → Other filters → Booking → Select categories is a different control in the drawer. Its empty-case label is No category (not No booking category). Tick boxes there also stay open while you add a second tag.

Emails → Communication Rules → Booking tags is a different audience picker: named tags only, English placeholder All tags, and Include only / Exclude modes — it does not list No booking category.

Tenant categories beside this control is a different catalog (tenant segments, not booking tags) — see Tenant categories (toolbar).

Tenant categories (toolbar)​

Tenant categories sits beside Booking categories on the list (and Timeline) toolbar — it is not in the Other filters drawer. The control appears only when Preferences → Enable tenant categories is On for the account.

Use it to filter by tenant categories assigned on the tenant profile (Tenant Info on Tenants). The menu lists every segment in your account plus No tenant category for bookings whose tenant has no category on file. You can combine named categories with No tenant category (OR logic): the server sends tenantCategoryIds plus a noTenantCategory flag when needed, so pagination and Export include every row that matches any selected segment or has no category — not only the pages you have scrolled through.

SelectionWhat appears in the list
One or more named segmentsBookings whose tenant profile carries at least one of the selected categories.
No tenant category onlyBookings whose tenant has no category on file.
Named segments + No tenant categoryBookings that match any selected segment or have no category (OR-combined).

The menu stays open after each tick — see Tenant categories stays open. Use Select all when you want every visible segment (and No tenant category) in one click. The English placeholder is Tenant categories (not All categories); the empty-case row is No tenant category (not No category).

Emails → Communication Rules → Tenant categories is a different audience picker: named segments only, English placeholder Select tenant categories…, and Include only / Exclude modes — it does not list No tenant category.

Selected segments appear as removable chips under the toolbar (same chip row as property and booking tags). Pair with Select properties when you need a building-scoped segment review — for example AA-11-5D during month-end KPI checks.

Bookings list — Tenant categories menu open beside Booking categories (AA-11-5D property chip)

Bookings list — Portal - Contract off tenant-category chip with AA-11-5D property scope

Walkthrough: on Bookings with AA-11-5D scoped, open toolbar Tenant categories, select Portal - Contract off, then review the chip under the toolbar.

Finance still filters tenant category from Other filters (Finance — Tenant category filter); Tenants keeps its own toolbar control (Tenants — Tenant category filter).

Tenant categories stays open while you pick​

Open Tenant categories, then tick a named segment. A chip appears under the toolbar; the menu stays open so you can tick a second segment. You do not need to open Tenant categories again.

Tick a named segment from Settings > Tenant categories (for example Corporate), then No tenant category. Both stay checked in the open list. The table shows bookings that match any of those choices — the named segment or stays whose tenant has no category — not only bookings that have both. Dismiss the menu when the chips look right — click the Bookings heading, or anywhere outside the list. Same stay-open habit as Booking categories and Tenants — All categories.

The same menu sits on Timeline. Each tick also refetches the listing axis.

Tenants → All categories is a different directory filter. Its English placeholder is All categories and the empty-case row is No category.

Emails → Communication Rules → Tenant categories is a different audience picker: named segments only, English placeholder Select tenant categories…, and Include only / Exclude modes — it does not list No tenant category.

Finance → Other filters → Tenant → Tenant category is a drawer control (empty-case label No tenant category). Tick boxes there stay visible because the drawer stays open — not the same toolbar dropdown.

Booking categories beside this control is a different catalog (reservation tags, not tenant segments) — see Booking categories stays open.

Select all on category filters​

On Bookings → List and Timeline, open Booking categories or Tenant categories. The top of the open menu shows Select all, Clear all, and a count — for example 6 of 22, then All 22 selected.

Use Select all when you want every visible row in one click — named tags or segments and the empty-case row (No booking category or No tenant category). Select all hides once every visible row is ticked. Clear all appears whenever anything is selected and empties the filter.

All except one: click Select all, then untick the tag or segment you want to hide. The list shows stays that match any remaining choice, including untagged stays when the empty-case row stays ticked.

If you type in the menu search first, Select all only ticks rows that match the search. Earlier ticks stay selected, so you can search again and Select all another cluster.

The open menu still lists every tag or segment in your account while the table updates — it does not shrink to the current filter.

The same Select all / Clear all strip appears in Finance → Other filters on Booking → Select categories and Tenant → Tenant category. When every option is ticked, those Finance controls read All categories or All tenant categories.

Tenants → All categories stays open while you tick; it does not include Select all. Tick rows one by one there, or run the same segment review from Tenant categories on Bookings. Emails → Communication Rules audience pickers also do not include Select all.

Sort By​

The table’s default order is Unit Name ascending — the same default Vivin applies whenever the list loads without an explicit sort (including after reload or when an older client omits the sort parameter). Click the Unit Name column header to reverse; click again to return to ascending. Unit names use natural numeric sort (AA-11-5D-R3 before AA-11-5D-R22, not alphabetic R22 before R3).

Bookings list — Ongoing, property AA-11-5D, Unit Name ascending with natural order R3 → R22 → R39

Walkthrough: on Ongoing with search AA-11-5D-R, click Unit Name to sort descending (R39 → R3), then click again to restore ascending (R3 → R39) with natural numeric order.

The Sort By dropdown offers additional server-backed sorts:

  • Debt (highest to lowest) — useful for collections follow-up
  • Creation Date
  • Move-in Date
  • Contract Start Date
  • Move-out Date

When several stays share the same sort value — a house where everyone starts on 1 June, or many Direct stays — Vivin does not scramble those rows. Unit Name (always 1 → 4 / A → Z, with the same natural numeric sort) breaks the tie, even if you reversed the date column. Click Contract Period (or Move-In & Out when your account shows check-in/out dates instead of contract dates) once for Start ↑ and again for Start ↓: BP-Quarto 1, 2, 3, and 4 at Casa Beatriz - Porto stay in that room order (Ana Ribeiro, Diogo Fernandes, Sofia Marques, Tiago Almeida). The same unit-name tie-break applies to Status, Platform, and Created when those values match.

Bookings list — Casa Beatriz, Contract Period Start ascending, rooms still Quarto 1 → 4

Bookings list — Casa Beatriz, Contract Period Start descending, rooms still Quarto 1 → 4

Walkthrough: search BP-Quarto, click Contract Period for Start ↑, then click again for Start ↓ — BP-Quarto 1 → 4 stay in unit order.

Changing the active sort (dropdown or a column header such as Created) also refreshes the portfolio filter catalog returned with GET /bookings/portfolio — see Select owners when the owner list looks empty on a fresh load.

Other filters​

Click Filters in the toolbar to open the Other filters side drawer. The header shows how many drawer filters are active (for example Balance: Debt and Source platform: Direct in the capture below). Choices apply to the current list immediately and combine with status cards, platform cards, property, and search. Advanced criteria such as Source platform, plus Comments and Currently in house when set, also appear as removable pills above the table; other drawer-only choices (for example Balance) update the list and the drawer badge count but do not add separate pills. Use Clear all on the toolbar to reset pill-backed filters without reopening the drawer.

The drawer is grouped into four sections:

Tenant​

  • Nationality — multi-select tenant nationalities (flag labels). The list includes No Nationality for bookings whose tenant profile has no ISO country code on file. You can combine No Nationality with specific countries (OR logic): the server sends nationalities plus a noNationality flag when needed, so pagination and Export include every row that matches any selected country or has a blank nationality field — not only the pages you have scrolled through.

Bookings list — Other filters drawer, Tenant section, All Nationalities multi-select with No Nationality selected

  • IBAN — All, With, or Without a tenant bank IBAN on file (the personal portal IBAN, not the booking virtual IBAN)
  • Fiscal Id — All, With, or Without a fiscal / tax ID on file. Same personal tax ID tenants enter as Fiscal number on the Tenant Portal.
Tenant category lives on the toolbar

Tenant categories is a toolbar control next to Booking categories — it is no longer listed under Other filters → Tenant. See Tenant categories (toolbar). The drawer Tenant section keeps Nationality, IBAN, and Fiscal Id only.

Bookings list — Other filters Tenant section without Tenant category (Nationality, IBAN, Fiscal Id)

Booking​

  • Contract status — All, Signed, Not Signed, or N/A. Signed keeps stays with a teal Contract check; Not Signed keeps stays that still need an agreement (grey document); N/A keeps stays with nothing to sign in Vivin (grey dash — the tenant's category has Tenant Portal Access or the Contract portal module turned off). Each stay falls in exactly one of the three. Status-card counts follow the same slice. The Filters button shows a 1 badge while this (or another drawer-only) choice is active — close the drawer to scan the Contract column on the table. See Contract column and FAQ — Find bookings that still need a signed contract.

Bookings list — Other filters, Contract status All (Signed, Not Signed, and N/A available)

Bookings list — Other filters, Contract status Signed selected (1 active filter)

Bookings list — Casa Bolívia VIII after Contract status Signed, one stay with a teal Contract check

Bookings list — Other filters, Contract status Not Signed selected (1 active filter)

Bookings list — Casa Bolívia VIII after Contract status Not Signed, three stays with grey Contract icons

Bookings list — Other filters, Contract status N/A selected for stays with nothing to sign

Walkthrough: open Filters, set Contract status to Signed, then Not Signed, then N/A for stays with nothing to sign in Vivin.

Bookings list — Other filters drawer, Booking section with Deposit status set to Ready to refund

  • Comments — All, With, or Without internal comments on the booking. When you choose With, a Search in comments… field appears under the control — see Search in comments.
  • Currently in house — All or In house. Appears only when your account has the check-in / check-out process on and Record arrival and departure on (Account Settings → System → Global Settings for the process switch; Settings → Check-in / Check-out for arrival recording). In house keeps stays where staff have recorded arrival and have not recorded departure (and the booking is not canceled). That is the physical stamp, not the calendar Ongoing status card — a stay can be Ongoing before anyone records arrival. When the filter is available, list and grid cards (and the booking sidebar) show a teal In house badge instead of the usual status pill for those stamped stays. See Currently in house.
  • Balance — All, Debt, or Overpayment (outstanding balance direction)

Currently in house​

Use Other filters → Currently in house → In house when you need everyone who has already arrived and not yet departed — for example today’s on-site guests, or handovers waiting on a recorded departure.

BehaviourDetail
When it appearsOnly while Enable check-in / check-out process and Record arrival and departure are both On. Otherwise the control is hidden.
Who matches In houseArrival recorded, departure not recorded, booking not canceled.
Vs OngoingOngoing follows contract/occupancy dates. In house follows the arrival/departure stamps your team records.
BadgeTeal In house replaces the status pill on list/grid cards and the booking sidebar while the stay matches.
Chips and badgeA removable Currently in house chip appears under the toolbar; the Filters button shows a count badge.
Bookmark/bookings?inhouse=1 pre-selects In house.
Combines withStatus cards, platform cards, property / category chips, toolbar Search, and every other Other filters choice.

Bookings list — Other filters, Currently in house All (In house available)

Bookings list — Other filters, Currently in house In house selected (1 active filter)

Bookings list — Filters badge and Currently in house chip

Walkthrough: open Filters, set Currently in house to In house, then read the chip and Filters badge on the list.

See FAQ — How do I find guests who are currently in house? and Glossary — Currently in house.

Use Other filters → Comments → With, then type in Search in comments… when you need stays whose Internal Notes text matches specific words — for example a no-show note or a discount explanation — without also matching tenant names, emails, or unit labels in the toolbar Search.

BehaviourDetail
When it appearsOnly while Comments is With. All and Without hide the field and clear any typed term.
MatchingCase- and accent-insensitive. Every word you type must appear somewhere in the booking’s internal comments (same word-gate style as toolbar Search).
ScopeComments only — a word that appears only on the tenant profile or unit name does not match.
Combines withToolbar Search (?q=), status cards, platform cards, property / category chips, and every other Other filters choice.
Bookmark/bookings?comments=with&commentsQ=… pre-fills With and the search field (for example commentsQ=No%20show).
Chips and badgeA removable Comments: With · … chip appears under the toolbar; the Filters badge counts the active drawer filter.

Toolbar Search still scans Internal Notes together with tenant, unit, property, platform, and IBAN fields (Search Bar). Prefer Search in comments when those other columns would pull in unrelated stays.

Bookings list — Other filters Comments With with Search in comments field

Bookings list — Other filters Comments With and Search in comments filled with No show

Bookings list — Filters badge and Comments: With · No show chip after comments search

Walkthrough: open Filters, set Comments to With, type in Search in comments…, then read the Comments: With · … chip and Filters badge on the list.
  • Other items categories — multi-select of Others Items Categories used on extra charges for matching bookings (shown only when your account has at least one category configured)

Advanced​

  • Source platform — multi-select booking channel (same OTA names as platform cards and Finance Select platforms; channel-manager stays are Airbnb or Booking.com, not a separate row — Platform badge and filters follow the real OTA; see Glossary — Source platform)
  • Number of rooms — optional min / max integer fields on how many units (listings) are registered under each property. When set, a removable toolbar pill shows the range (for example 3 – 20). Vivin rejects min greater than max with an inline validation message (Min rooms must be less than or equal to max.). The filter is sent to GET /bookings/portfolio as minRooms / maxRooms and applies to infinite scroll and Export — useful for triaging coliving buildings vs single-unit properties. The same min / max meaning appears as a toolbar popover on Sales → Multicalendar / Pricing.

Bookings list — Other filters Advanced with Number of rooms Min 3 and Max 20 filled

Bookings list — Number of rooms toolbar pill (3 – 20) with property scope AA-11-5D

Walkthrough: open Filters, scroll to Advanced → Number of rooms, set Min/Max, close the drawer, and read the rooms pill on the toolbar.
  • Booking created — From / To on the booking creation date
  • Move-in / contract start (or Contract start when the account uses contract dates) — date range on move-in or contract start
  • Move-out / contract end (or Contract end when the account uses contract dates) — date range on move-out or contract end

Each From / To field opens a calendar-only date picker (no free-typed dates in this dense drawer). The calendar is portalled to the page so the drawer’s scroll container cannot clip it, and it flips above the field when there is not enough room below — so the full month grid stays inside the browser viewport even on the lowest Advanced rows. The same portalled placement applies to other filter drawers that use this control (for example Operations → Other filters From / To).

Bookings list — Other filters Advanced date calendar open on Move-out From, fully inside the viewport

Walkthrough: open Filters, scroll to Advanced → Move-out / contract end, open the From calendar (stays in the viewport), pick a day, then close the drawer.

Property & Listing​

  • Select owners — multi-select property owners (from the portfolio filter catalog in meta.filterOptions.owners) to limit bookings to listings tied to those owners. The catalog is account-wide — it is not recomputed from only the rows already loaded in the table. Owner names match registered property owners. Combine with toolbar Select properties or drawer date ranges as needed. Finance uses the same owner vocabulary but narrows the Property picker server-side when owners are selected first — see Finance → Other filters → Select owners.
Empty owner list on a fresh load

On the default Unit Name sort, Select owners can show No options found even when Settings → Owners lists owners on your account. The portfolio response on that sort path does not always populate meta.filterOptions.owners (the dedicated catalog at GET /bookings/portfolio/filter-options still returns the full owner list). Workaround: click the Created column header once, or pick Creation Date from Sort By, then reopen Other filters — the owner multi-select should list every registered owner. You can switch back to Unit Name after selecting owners; the filter stays applied.

Bookings list — Other filters Select owners showing No options found on default Unit Name sort

Bookings list — Other filters drawer, Property & Listing Select owners multi-select with an owner ticked (example QA Owner Test)

Bookings list — Other filters drawer with Balance Debt and Source platform Direct, plus Direct pill on the toolbar

Deposit status filter updates while you work​

When Other filters → Deposit status is set, changing the lifecycle on the booking Deposit tab already updates All bookings. You do not re-open Filters or reload the page.

Typical path: filter Fully paid, open a stay, turn on Ready To Refund, then close the sidebar. That row leaves the Fully paid list. Switch Deposit status to Ready to refund when you want the operations-ready queue.

The same list update applies after Mark as Disputed, Resolve Dispute, Mark refunded, Revert refund, or Transfer on that tab.

This is the Bookings list. Finance → Deposits is a separate queue — after Mark refunded (or a dispute / transfer / revert) that tab already matches too; see Finance Deposits updates from this tab. Ready To Refund is the operations hand-off for this Bookings filter; it does not record the bank return.

Booking detail — Deposit tab Ready To Refund toggle in the security deposit card header (pre-refund)

See FAQ — Does Ready To Refund leave the booking on Fully paid? and Managing a Check-out — Step 5.

Exporting the list (CSV or Excel)​

On the list view (not Timeline), the toolbar includes an Export control next to Filters. Open it to download every booking that matches your current filters (search, status cards, platform cards, Other filters, and Sort By) — Vivin fetches the full filtered portfolio for the export even when the table has only loaded the first chunks. Narrow filters first when you need a smaller spreadsheet; you do not need to scroll the list to the end before exporting.

FormatFile name patternNotes
CSVvivin-bookings-YYYY-MM-DD.csvUTF-8 with BOM for Excel compatibility
Excelvivin-bookings-YYYY-MM-DD.xlsxSingle Bookings worksheet

Columns mirror the wide management export used for operational reporting (tenant and listing identifiers, contract and move dates, balances, deposit and fee fields, integration source, tags, comments, and JSON-stringified nested objects such as tenant and listing where the row carries rich data). The flat tenantCategory column carries the tenant segment name from Tenant Info (empty when the tenant has no category) — pair with toolbar Tenant categories before export when you need a segment-scoped spreadsheet. Use Export after you set toolbar filters, Other filters, or search so finance and collections teams receive the same subset they reviewed in the UI.

The first column is id — the Vivin booking UUID. Other booking-row exports use the canonical Booking ID header for the same value; only the Bookings list export keeps the shorter id label. The value is the same UUID you deep-link with (/bookings/list/<bookingId>). Pair with FAQ — Which exports include a Booking ID column?.

Two neighbouring value columns answer different questions — do not treat them as interchangeable:

ColumnWhat it measuresTypical use
bookingTotalValueSum of every payment line on the booking (rent, deposit, fees, and other charges — net of discounts on those lines).Portfolio totals that should match the full charge schedule, not rent alone.
contractTotalValueContracted rent only across the whole stay (proration, first/last-month splits, and dual-pricing rent included; deposit and fees excluded). Empty when not yet known.Owner rent reporting and joining to the contract {ContractTotalValue} token — see Contract templates — What the contract total means.
othersValueSum of Other items (extra) charges on the booking — lines beyond rent, deposit, and the standard fee fields. Empty when there are no Other items.Reconcile custom charges with Others Items Categories and Finance Others filters.
othersCategoriesJSON array of Others Items category labels used on those extra charges. Empty array ([]) when no categories are set.Segment exports by charge category after you filter Other items categories in Other filters.

Bookings list — Export menu open (CSV and Excel) with Sofia Mendes search filter

Bookings list — Export menu open (CSV / Excel) with Marco La Cecilia search filter before downloading others columns

Bookings list — CSV export column slice highlighting id (booking UUID) before listingInternalName and tenant names

Bookings list — CSV export column slice highlighting contractTotalValue beside bookingTotalValue for Sofia Mendes

Bookings list — CSV export column slice highlighting othersValue and othersCategories beside rent totals

Walkthrough: Bookings → Export → CSV — leading id is the booking UUID (other booking-row exports use Booking ID for the same value).
Walkthrough: filter to a booking → Export → CSV — the sheet includes contractTotalValue next to bookingTotalValue.
Walkthrough: search a booking with Other items charges → open Export (CSV / Excel) — the sheet includes othersValue and othersCategories.

Large portfolios can take longer to assemble. If the export does not download (network issue, timeout, or server error while building the full filtered file), Vivin shows a red inline alert under the toolbar with a clear localized operator message — narrow filters and try Export again, or retry when connectivity improves. Other directory modules use a toast for the same class of failure (also localized — not a raw timeout string). See Glossary — Export and download issues.

Timeline view

Export is available only on the table list view. Switch back from Timeline when you need a spreadsheet download.

The Timeline View​

Pair with other Bookings sections

Timeline pairs with Sales — Multicalendar and Audit — Manual Blocks — reconcile suppressed nights with Manual block hygiene.

Click Timeline in the view toggle (upper right) to switch from the table list to a Gantt-style chart at /bookings/timeline. Each row is a unit (listing); coloured bars show bookings across time. The same search, property, Booking categories, Tenant categories, and Other filters toolbar as the list view still apply — the listing axis and bars refetch when you change tags, tenant segments, or property scope. Booking categories stays open while you add a second tag — see Booking categories stays open. Tenant categories stays open while you add a second segment — see Tenant categories stays open. To download CSV/Excel, switch to All bookings — Timeline keeps the same property chips so you can export that narrowed set from the list.

Bookings Timeline — No category chip on the toolbar with AA-11-5D property scope and Gantt rows

Bookings Timeline — Student booking-tag chip on the toolbar with AA-11-5D property scope and Gantt rows

The chart’s horizontal range covers roughly six months in the past through eighteen months ahead (bookings and blocks outside that window are not drawn on the axis).

Loading listing rows (timeline view)​

Timeline does not download every listing and booking in one request. Vivin loads in two coordinated steps:

  1. Listing axis (rows) — which units appear as rows for your current filters and date window.
  • With Only bookings on: listings that have at least one non-cancelled booking overlapping the window (cancelled stays never draw as bars, so they are excluded from this booked axis).
  • With Only bookings off (default): every in-scope listing, including vacant units with no reservation bars (includeVacant on the server) — so the first view shows blocks and vacant units without clearing the pill.
  1. Booking bars — reservation spans for the listing ids already on the axis (fetched in server-sized chunks by listingIds, not by re-sending property-name gates — so bars stay aligned when you change Select properties or when a property was renamed).
PhaseBehaviour
First paintUp to 50 listing rows for the active filters, search, status card (except Canceled — see below), platform cards, Sort By, and Other filters.
Initial waitA full-chart skeleton (shimmer unit labels and placeholder bars) stays visible until both the first listing page and its booking bars have settled — avoids empty lanes while bars load.
Listing axis onlyWhen booking bars for the first page have already painted but the listing column is still fetching the next server page, you may see shimmer rows on the left axis while real bars remain on the chart — distinct from the full-chart skeleton above.
Scroll downWhen you scroll the timeline body near the bottom, the next chunk of listing rows loads automatically. A small spinner may appear at the bottom while the next page is in flight.
DoneLoading stops when every listing that matches the server-side filter for the window has been fetched. There is no End of list footer (same pattern as the list view).

Bookings Timeline — initial load with full-chart skeleton (shimmer unit labels and placeholder bars until the first listing page and booking bars settle)

Bookings Timeline — listing-axis skeleton rows while the next unit page loads (booking bars may already be visible on the chart)

Bookings Timeline — spinner at the bottom of the listing axis while the next chunk of unit rows loads

Timeline refresh​

Pair with other Bookings sections

If the Timeline axis or bars look incomplete, use Retry on the panel (or reload the page). The list view uses a separate portfolio load.

Retry on Timeline is distinct from the list-view Retry and from filters that match zero bookings. See Glossary — Directory list refresh and Search with no matches.

After you save in the booking sidebar, the matching All bookings row and Timeline bar update in place — you do not need to reload. If the edit changes status (for example Upcoming to Ongoing), the status-card counts refresh so they stay aligned with the list. Create Booking, Delete Booking, and Cancel booking update the stay bars the same way when the unit is already on the chart — see Stay bars update after create or delete. When Only bookings is on (or Search / a booking filter hides vacant rooms), Timeline also re-reads the unit list so a newly booked room can join the chart — see Unit list updates after create or delete.

Stay bars update after create or delete​

Pair with other Bookings sections

When Only bookings is off (the default), vacant rooms stay on the chart so a new stay can land on a row you already see. When Only bookings is on, the unit must join the list first — Unit list updates after create or delete. Distinct from Search with no matches (Retry does not restore a search that found nothing).

All bookings listed a new reservation immediately. Timeline draws that stay bar without a page reload when the unit row is already on the chart.

Typical path:

  1. Open Bookings → Timeline with Only bookings off so vacant rooms stay visible.
  2. Keep the unit in view (scroll the listing axis, or leave Search empty).
  3. Use + Create New → Booking and Create Booking (or Create N bookings for a multi-unit set).
  4. The stay bar appears on that unit. The month you scrolled to stays put — the chart does not jump back to today.

Delete Booking (soft-archive) and Cancel booking (canceled stays are never drawn) remove the bar the same way. You can keep working down the Gantt.

Bookings Timeline — vacant unit rows with Only bookings off, so a new stay can land on a room already on the chart

Bookings Timeline — Day scale with unit rows and stay bars after the chart has settled

See FAQ — Do I need to reload Timeline after Create Booking? and Creating a New Booking.

Unit list updates after create or delete​

Pair with other Bookings sections

This is the left-hand unit list, not the coloured stay bar. Bars still need a row to draw on — Stay bars update after create or delete. Retry is only when Timeline could not load (that path starts from the first page of units).

When Only bookings is on, Timeline lists only units that already have a stay in the visible window. Creating a booking on a room that was vacant used to leave that room off the list until you reloaded. Timeline now re-reads the unit list in place after Create Booking, Delete Booking, or Cancel booking:

  • A newly booked unit joins the list, then the stay bar can draw.
  • A unit whose last stay in the window you deleted or cancelled leaves the list.
  • The month you scrolled to stays put. The list does not jump back to the first 50 rows.

The same in-place list refresh runs when Search or a booking-attribute filter (status, tags, tenant category, and similar) is hiding vacant rooms — those views also build the list from bookings.

If you are on All bookings when you create or delete, switching back to Timeline already rebuilds the unit list.

Typical path:

  1. Open Bookings → Timeline with Only bookings on.
  2. Keep the month you care about in view.
  3. Create Booking for a room that had no stay in that window.
  4. That unit row appears and the stay bar draws on it. You do not reload.

Bookings Timeline — Day scale with unit rows and stay bars after the chart has settled

See FAQ — Do I need to reload Timeline after Create Booking? and Glossary — Timeline unit list.

Search with no matches​

Toolbar Search is the same control on Timeline and All bookings. After you pause typing (at least two characters), Timeline replaces the listing axis for the new query so units and bars from the previous search do not linger.

When nothing matches:

  • Status cards show 0 bookings
  • The Listing column is empty
  • The date header (Day / Week / Month) stays, so you can tell you are still on Timeline
  • The chart shows No bookings found — the same wording as the All bookings table

Widen the term, or click Clear all / the search chip, to bring units back. Retry on the chart is only for when Timeline could not load — not for a search that simply found no stays.

Bookings Timeline — search with no matches (Zephyr-99): empty listing axis, date header stays, No bookings found

Walkthrough: on Bookings → Timeline, start from a matching property search, then type a term with no matches — the listing column and bars clear while the date header stays.

Bookings list — All bookings table after the same empty search (No bookings found)

Day, Week, and Month scales​

Above the date axis, use Day, Week, or Month to change how time is bucketed:

ControlWhat you see
DayOne column per calendar day (default); best for turnover planning in the next few weeks.
WeekOne column per ISO week; useful for medium-range occupancy.
MonthOne column per calendar month; best for long-range portfolio scans.

Bookings Timeline — Week scale with week columns on the horizontal axis

Bookings Timeline — Month scale with month columns on the horizontal axis

A vertical today marker separates past from future on each scale. Scroll the chart body horizontally; the date header stays aligned with the grid.

Bookings vs manual and channel blocks​

Only bookings (toolbar toggle, timeline-only) defaults off: the first Timeline view already loads unavailability blocks (manual blocks, Airbnb/Booking.com calendar holds, and similar) alongside stay bars — styled separately (for example dashed Airbnb block / Booking.com block / Owner stay labels). Turn Only bookings on when you want reservation bars only. For a portfolio-wide table of operator manual holds (filter, export, column sort), use Tools → Audit or the Manual block hygiene workflow — Timeline is for visual context on one Gantt, not bulk triage.

Hover a block bar to read its label and date range. The tooltip end date is the day the unit is free again (checkout convention) — matching booking bars on this chart and the unit Calendar in Listings — not the last blocked night alone. Bar geometry still covers blocked nights only. Sales Multicalendar uses the same free-again tip: Sales → Multicalendar (sales-multicalendar-block-free-again-tooltip.png).

Bookings Timeline — Owner stay block hover tip ending on the free-again day (2026-08-20)

Walkthrough: open Bookings → Timeline, switch to Day, search a unit, scroll to an Owner stay block, and read the hover tip ending on the free-again day.

Bookings Timeline — unavailability blocks visible alongside booking bars (Only bookings off)

Canceled filter on Timeline

The Canceled status card is disabled on Timeline because canceled reservations are never drawn on the chart — the booked listing axis also excludes them, so a unit whose only stays in the window are cancelled does not appear as an empty row in Only bookings mode. Use the list view or remove other filters and open the booking from search when you need a canceled record.

Property filter and vacant units on Timeline

Select properties on Timeline uses the same name-based chips as the list view and constrains the listing axis server-side. Changing property scope refetches rows and bars together (the chart no longer freezes on the skeleton when you narrow properties mid-load). With Only bookings off, the property dropdown widens to every visible (non-archived) property so you can scope to buildings whose units are entirely vacant — switching to the Timeline tab alone does not change dropdown options; only clearing Only bookings does.

Bookings Timeline — vacant unit rows (no stay bars) after clearing Only bookings

Bookings Timeline — widened Select properties menu when Only bookings is off

Select properties stays open while you pick​

Pair with other Bookings sections

The same Select properties control sits on All bookings and Timeline. On Timeline, each tick also refetches the listing axis — see Property filter and vacant units.

Open Select properties, type a fragment of the building name (for example Casa), and tick the first house. The table or Gantt redraws to that property; the menu stays open and keeps what you typed.

Tick a second house without closing the menu. Chips under the toolbar show both buildings. Dismiss the menu when the list or axis looks right — click outside it, or click the control again.

You do not need to reopen Select properties or retype the filter between picks. That matters on All bookings (the table refetches after each tick) and on Timeline (the chart recentres after each change).

All bookings — type Casa, tick Casa Beatriz - Porto, then tick Casa Eduardo I. The menu stays open while the table updates; chips under the toolbar show both houses.

Bookings list — Select properties still open after ticking Casa Beatriz - Porto and Casa Eduardo I, with Casa typed in the control

Bookings list — Casa Beatriz - Porto and Casa Eduardo I chips, menu closed

Walkthrough: on Bookings → All bookings, open Select properties, type Casa, tick Casa Beatriz - Porto, then tick Casa Eduardo I — the menu stays open while the table refreshes.

Timeline — type Casa, tick Casa Beatriz - Porto, then tick Casa Dias. The menu stays open while the Gantt refreshes.

Bookings Timeline — Select properties still open after ticking Casa Beatriz - Porto and Casa Dias, with Casa typed in the control

Bookings Timeline — Casa Beatriz - Porto and Casa Dias chips, menu closed, Gantt showing both buildings

Walkthrough: on Bookings → Timeline, open Select properties, type Casa, tick Casa Beatriz - Porto, then tick Casa Dias — the menu stays open while the Gantt refreshes.

Open a booking from the chart​

Click an ongoing or upcoming booking bar (green or teal styling) to open the same Booking detail sidebar as on the list. The URL updates to /bookings/timeline/<bookingId> so you can bookmark or share that timeline context.

Bookings Timeline — booking detail sidebar opened from a bar click (Contract Info tab)

Click a unit label on the left to open that listing in the Listings unit sidebar when your role allows.

This view is ideal for:

Walkthrough: switch Day → Week → Month, clear Only bookings to show calendar blocks, open a booking from a bar, then close the detail sidebar.

The Booking Detail View​

Pair with other Bookings sections

Sidebar tabs pair with Finance module, Payment Allocation, and Inbox — Communication tab — contract signing via Tenant Portal.

Clicking any booking row opens a sidebar showing all information about that booking. After you save, the All bookings row and Timeline bar for this reservation update in place (status-card counts refresh when status changes) — see Timeline refresh. After Create Booking, Delete Booking, or Cancel booking, stay bars update the same way when the unit is already on the chart — see Stay bars update after create or delete. When Only bookings is on, the unit list updates in place as well — see Unit list updates after create or delete.

Booking insights bar​

Below the tenant name header, a collapsible insights strip summarizes financial health without opening Payment plan or Transactions. It is expanded by default; click the strip to collapse or expand it.

Card / badgeMeaning
Paid to DateAllocated payments recorded against scheduled charges to date
Due to DateScheduled charges that should have been collected by today
Contract ValueTotal contract value excluding deposit (tooltip on hover)
Return of valueShown when return-of-value adjustments exist — same total as the negative Return of Value rows on Transactions
Contract — Not signedAmber badge when the rental agreement is not signed yet
Overdue / OverpaymentRed or blue badge with the current financial balance when under- or over-paid
Next paymentUpcoming scheduled charge amount and due date (with days remaining or overdue)

Use the insights bar for a quick collections check; confirm amounts and allocation in Contract Values or Transactions before operational action. Opening a row from Finance → Contract Values or Finance → Transactions can land on the matching tab with that payment or transaction row highlighted (see Finance — Cross-navigation from ledger rows).

On a channel-manager (Airbnb) booking, Paid to Date, Due to Date, and Contract Value usually match the Provider platform payment (the OTA payout) as soon as the stay imports — a fast way to confirm the payout-matched plan without opening Payment Plan.

Booking detail — expanded insights bar with Paid to Date, Due to Date, Contract Value, and status badges

Booking detail insights bar — Paid to Date, Due to Date, and Contract Value all equal the Airbnb payout

Booking detail — OTA stay with insights bar showing equal Paid / Due / Contract Value

Walkthrough: Airbnb channel stay — insights bar shows equal Paid to Date, Due to Date, and Contract Value, then open Payment Plan to confirm the Paid rent line.

The detail view is organized into tabs along the top of the sidebar (left to right):

TabPurpose
Contract InfoTenant, dates, rent, platform, contract upload, virtual IBAN
Payment PlanScheduled charges and due dates
Contract ValuesHow each charge amount was calculated
TransactionsPayments received and allocation
DepositSecurity deposit status, refund, and transfer
Internal NotesInternal team thread with @mention notifications; edit your own notes in place (sidebar label; docs anchor: comments-tab)
CommunicationWhatsApp and email history with the tenant; reply on WhatsApp from the tab when chatbot is enabled
TicketsOperations tickets linked to this booking (requires Operations module permission)
FilesDocuments stored on the booking

Contract Info tab​

The first tab (Contract Info) displays the booking's core information:

  • Tenant details (name, email, phone, nationality)
  • Change tenant (reassign to another existing tenant — see below)
  • Property and unit assignment
  • Contract and occupancy dates
  • Rent value and payment frequency
  • Booking status and platform source
  • Confirmation payments and Check-in payments (per-booking overrides — see below)
  • Cleaning Fees requirement (Every Month vs one-time — see below)
  • Deposit Refund Limit — days after the refund anchor for returning the security deposit; blank inherits the account Deposit Refund Deadline (see Deposit Refund Limit)
  • Admin fee, Cleaning fee, and Exit fee euro amounts when those fees are enabled for the account (see Booking-level fee amounts)
  • Bills included — monthly utility ceiling copied from the property at create time; operators can override on an existing booking (see Bills included ceiling)
  • Booking categories — multi-select chips from Settings > Categories (empty after a marketplace import — see Booking tags)
  • Lease purpose — optional classification when the account enables it (see Lease purpose)
  • Second tenant — optional co-occupant identity accordion when Preferences → Second tenant is On (see below)
  • Guarantor — optional guarantor identity accordion when Preferences → Guarantor is On (see below)

Second tenant​

When Settings → Preferences → Booking Defaults → Second tenant is On, bookings whose Tenants number is at least 2 show a collapsible Second tenant box on Contract Info, below Billing details and Bank details. The gate is the booking’s tenant count (numberOfExtraTenants >= 1), not listing capacity — a one-person stay never shows the section. It records identity only (name, contact, ID document, fiscal ID/address) — billing, IBAN, and tenant category stay on the main tenant. Marketplace POST /bookings cannot send those identity fields — imported stays land empty until you fill this accordion — Creating Bookings — Second tenant. Contract tokens: Second tenant variables. FAQ: How do I record a second tenant on a booking?.

Booking detail — Contract Info Second tenant accordion expanded with co-occupant identity fields

Walkthrough: open Contract Info on a multi-tenant booking and expand Second tenant to review co-occupant identity fields.

Guarantor​

When Settings → Preferences → Booking Defaults → Guarantor is On, every booking shows a collapsible Guarantor box on Contract Info (near Billing / Bank details / Second tenant). The gate is the account preference alone — tenant count and unit capacity do not apply, so a single-tenant stay can still record someone who backs the rent. It records identity (name, contact, ID document, fiscal ID/address) plus an optional Guarantor amount (€), the sum the guarantor commits to cover — billing, IBAN, and tenant category stay on the main tenant. Leave the amount empty and contracts render it blank rather than 0. Independent of Second tenant: you can enable either or both. Contract tokens: Guarantor variables ({GuarantorAmount}, {%GuarantorSignature}). FAQ: How do I record a guarantor on a booking?. Marketplace POST /bookings cannot send those identity fields or Guarantor amount (€) — imported stays land empty until you fill this accordion — Creating Bookings — Guarantor.

Booking detail — Contract Info Guarantor accordion with identity fields and Guarantor amount (€)

Walkthrough: open Contract Info and expand Guarantor to review identity fields and Guarantor amount (€).

Changing contract dates and rent​

Start date, Move in, Move out, End date, and Monthly rent on Contract Info → Booking information open dedicated modals when you are in edit mode (pencil on the section header). Inline fields on the card are read-only until you enter edit mode; date and rent rows use the pencil-on-row pattern to launch the modal for that value.

FieldModal title (English UI)Typical use
Start dateChange contract start dateShift the contractual span; optional Use check in date as contract start date mirrors move-in without regenerating the payment plan.
Move inChange move-in dateOperational check-in; Update Payment Plan toggle (defaults from account preferences) controls whether scheduled rent lines are regenerated.
Move outChange move-out dateEarly or extended departure; supports Update Payment Plan and, when the plan updates, optional Rent value equal to current booking info or per-month rent entry (fixed vs varies).
End dateChange contract end dateContractual end; optional Use check out date as contract end date mirrors move-out without impact in the payments plan.
Monthly rentChange monthly rentSet fixed monthly rent or varies with a Jan–Dec grid; saves independently of the main Update on the card.

Marketplace POST /bookings cannot send Use check in date as contract start date or Use check out date as contract end date — imported stays land with both boxes off until you tick them here — Creating Bookings — Use check in date as contract start date. See Use check in date as contract start date.

Many bookings at once

For the same percentage raise across a portfolio from a chosen month, use Account Settings → Payments → Rent adjustment (permission Bulk Rent Increase) instead of opening Change monthly rent on every stay. On Step 2, Select properties and Select categories stay open while you add a second building or booking tag. The teal tenant name opens booking details on top of the preview. That tool only raises instalments — lowering exported rent still follows the invoiced-floor rules below.

Already-invoiced months (rent floor) — The Change monthly rent modal includes an info banner: when you enter a new amount below what Finance has already invoiced for a given month, Vivin clamps that month's rent line to the invoiced total instead of saving a lower value or rejecting the whole change. On a single line, Contract Values → Edit amount is different: lowering a fully invoiced line issues a credit note for the difference (then issue it from Finance → Transactions). A partly invoiced line still blocks Save. See Edit amount, Glossary — Invoiced floor (rent), and FAQ — Lower rent below invoiced.

Contract-date change warnings — After you shorten the contract span (for example move-in anticipation or an earlier move-out) with Update Payment Plan enabled, Vivin cannot rewrite already-invoiced charge lines. Any invoiced month that now falls outside the updated contract range stays on the ledger but may no longer match the new dates. On Contract Values and Payment plan, those stranded lines show an amber warning icon — hover for: The dates were changed, but already-invoiced amounts cannot be modified, so this line may be inconsistent. Reconcile with Finance (credit notes, manual adjustments, or support) before you treat the schedule as authoritative; the warning is informational, not a block on other row actions.

Booking detail — Payment Plan with amber contract-date change warnings on stranded due-date rows

Payment Plan — hover tooltip on amber warning: already-invoiced amounts cannot be modified after a date change

Booking detail — Contract Values with amber contract-date change warnings on stranded rent lines

Walkthrough: open a booking with stranded invoiced lines, review amber warnings on Payment Plan (hover tooltip), then confirm the same icons on Contract Values.

Fixed rent on a variable unit​

A unit can be configured as variable on Listings > Rent Value while an individual booking still stores fixed monthly rent. At create time (and when you inherit listing values on Add booking), Vivin inspects every contract month between Start date and End date — the same month boundaries used for rent generation. When each of those months has a configured rent in the unit's seasonal grid and every value is equal, the reservation is stored with isRentFixed = true and a single headline Monthly rent, even though the listing remains variable for future stays.

What you seeMeaning
Contract Info → Monthly rentOne € headline; Change monthly rent opens with fixed selected.
Payment plan rent linesAmounts match the common monthly value — unchanged from the per-month grid that would have applied.
Bookings list rent column / sortUses the fixed headline when isRentFixed is true.
Timeline bar labelMay still show a seasonal breakdown when the booking is stored as variable; fixed bookings use the headline rent.

If any contract month is missing from the unit's rentsPerMonth grid or the values differ, the booking stays variable with per-month rows. Operators can still switch fixed ↔ varies later via Change monthly rent.

Booking detail — Contract Info with a single Monthly rent headline on unit AA-11-5D-R7 (listing stays variable; booking stored as fixed rent)

Legacy reservations created before this inference shipped were backfilled to the same rule when their stored per-month rows already shared one constant value — payment history and invoiced lines were not regenerated. Operators can still switch fixed ↔ variable later via Change monthly rent — invoiced-floor rules apply per FAQ — Lower rent below invoiced. See Glossary — Fixed Rent, Listings — Rent Value tab, Processing a New Booking — Step 3, and FAQ — Fixed rent on variable unit.

Contract cycle guards — For Monthly or Fortnightly contract cycles, Start date and End date modals validate day-of-month rules (for example monthly contracts require day 1 for start and the last day of the month for end). Pick a valid calendar date or use the operational-date checkbox when you only need alignment with check-in / check-out.

Integration bookings — When the booking came from a marketplace (Platform is set), date modals show an informational banner naming the integration. Calendar sync and partner rules still apply after you save; confirm outbound availability separately when you shorten stays.

Channel-manager (Airbnb) bookings​

Reservations that arrive through the Channex channel manager (guests who booked on Airbnb or another connected OTA) use a dates-only Contract Info → Booking information card. Vivin mirrors the OTA stay — it does not recreate a mid-term rent schedule — and most edit controls stay locked so the two systems cannot disagree (see Edit lockdown on Airbnb bookings).

What you seeMeaning
Start / Move in / Move out / End dateStay window from Airbnb — read-only in Vivin. Change dates on Airbnb; they sync back here automatically when the channel revision applies.
PlatformShows the OTA the guest booked on (for example the Airbnb logo and name), not the channel-manager label — also read-only.
Provider platform paymentThe amount already handled on the OTA side — for reconciliation, not a mid-term rent schedule.
Booking categoriesOptional tags — the one Booking information field you can still edit on these stays.

Mid-term contract fields (Monthly rent, deposit, admin/cleaning/exit fees, bills included, due-day cycles, and related edit modals) stay hidden on this card because the guest already paid the OTA — Vivin does not recreate those mid-term charges on import. Header summary chips may still show paid / due totals from provider-platform lines; use Payment Plan and Transactions to read the payout-matched money movement, not to add mid-term charges.

An amber note under the stay dates explains the Airbnb rule: date changes made outside Airbnb are not allowed — adjust, extend, or shorten the stay on Airbnb and the new dates and amounts sync here.

Filter or search the list to find these stays — the PLATFORM column shows the same OTA badge (Airbnb or Booking.com) as Contract Info. Tick that OTA under Other filters → Source platform; you will not see a channel-manager name there. See Platform badge and filters follow the real OTA.

Bookings list — two channel-manager Airbnb stays for the same guest (Upcoming and Cancelled) with Airbnb platform badges

Booking detail — Contract Info Booking information for an Upcoming Airbnb stay: dates, Airbnb platform badge, and Provider platform payment only

Booking detail — Airbnb Booking information with amber date-change note, Platform badge, and Provider platform payment

Walkthrough: open an Upcoming channel-manager booking → Contract Info → scroll Booking information to the dates-only card with the Airbnb platform badge and Provider platform payment.

See FAQ — Why does an Airbnb booking hide rent and deposit on Contract Info?, FAQ — Why do channel-manager bookings show Airbnb or Booking.com?, FAQ — Why can’t I edit an Airbnb booking in Vivin?, FAQ — Why does a Booking.com stay show one rent line due at check-in?, and Glossary — Channel-manager (Airbnb) booking. For the OTA host↔guest thread on the same stay, open Communication and the pill named after that OTA — Airbnb guest chat.

Platform badge and filters follow the real OTA​

Channel-manager imports are labelled with the OTA the guest used, not with the channel-manager product name.

SurfaceWhat you see
Bookings list PLATFORM columnAirbnb or Booking.com logo — the same identity as Contract Info → Platform.
Other filters → Source platformTick Airbnb or Booking.com. There is no channel-manager row. Stays that predate an OTA name on the reservation count as Airbnb.
Finance → Transactions → Select platformsThe same OTA list (plus Long-stay (LS) when you reconcile rows without a booking). Tick Booking.com to include channel-manager Booking.com money movement.
CommunicationExtra chat pill named Airbnb or Booking.com. Airbnb host bubbles use a soft pink canvas; Booking.com host bubbles use a blue canvas. The composer reads Reply to the guest on Airbnb… or Reply to the guest on Booking.com…. Lockdown tooltips name that OTA too (for example This can't be edited on Booking.com bookings.).

Use Airbnb when you are triaging channel-manager Airbnb stays; use Booking.com when the guest booked on Booking.com. You do not need a second filter for the channel manager.

Bookings list — channel-manager stays for Roberto Adomnitei with Airbnb platform logos (search applied)

Bookings Other filters — Source platform list with Airbnb and Booking.com, no channel-manager row

Bookings list — Airbnb source-platform chip on the same channel-manager stays

Booking detail — Contract Info for a cancelled channel-manager stay: Airbnb platform badge, amber Airbnb date note, Provider platform payment 29.57 €

Booking detail — Communication tab with the Airbnb pill selected and Reply to the guest on Airbnb…

Finance Transactions — Select platforms list with Airbnb and Booking.com, no channel-manager row

Walkthrough: search a channel-manager guest → confirm Airbnb logos on the list → Filters → Source platform shows Airbnb and Booking.com (no channel-manager row) → tick Airbnb.

Pair with FAQ — Why do channel-manager bookings show Airbnb or Booking.com? and Finance — Select platforms.

Edit lockdown on Airbnb bookings​

Channel-manager (Airbnb) stays are read-only mirrors of the OTA reservation. Editing them in Vivin cannot reach Airbnb (the platform does not allow outside reservation changes) and would only make the two systems disagree — for example freeing a night in Vivin while the guest still holds it on Airbnb. Locked controls show the short tooltip This can't be edited on Airbnb bookings. (date-related actions use a longer Airbnb/sync explanation).

SurfaceWhat stays lockedWhat you can still do
Tenant detailsPencil / change-tenantRead guest fields; use Communication → Airbnb to reply
Booking informationStay dates, Platform, mid-term fields (already hidden)Edit Booking categories only
ContractPreview / Regenerate / Resend / Upload Signed ContractRead the Contract section; mid-term paper upload is not used on OTA stays
Method of paymentsSwitch-vIBAN pencil; Exclude this booking from penalty feesCopy IBAN; Impersonate Tenant when permitted
Check-in & Check-outPencil, onboarding / portal-access / check-in emails, Cancel Booking, Delete BookingRead times and changelog
Payment Plan / Contract Values / Transactions+ Charge, + Transaction, Apply Discount (tooltip: charges are locked — the Airbnb payout registers automatically)Read the payout-matched schedule and ledger rows. Booking.com stays keep + Transaction enabled — one rent line due at check-in.

Airbnb guests already completed their stay agreement on the OTA — Vivin does not need a separate signed PDF on these rows. Upload Signed Contract stays greyed out with the same tooltip as the other Contract actions (This can't be edited on Airbnb bookings.).

Booking detail — Contract section with Preview, Regenerate, Resend, and Upload Signed Contract locked on an Airbnb stay

Booking detail — Upload Signed Contract tooltip This can&#39;t be edited on Airbnb bookings.

Booking detail — Contract section with Preview, Regenerate, and Resend on an Airbnb stay

Booking detail — Check-in &amp; Check-out with Cancel Booking and Delete Booking on an Airbnb stay

Booking detail — Payment Plan with + Charge, + Transaction, and Apply Discount on an Airbnb stay

Walkthrough: open an Airbnb channel-manager stay → Contract Info → confirm Upload Signed Contract is locked with the Airbnb tooltip.
Walkthrough: open an Airbnb channel-manager stay — amber date note on Contract Info, locked contract and check-in actions, then Payment Plan with locked charge controls.

Need a date change, cancel, or payout correction? Make it on Airbnb. When Channex sends the revision, Vivin applies it automatically when safe — When Airbnb changes dates or the payout.

Payment plan matches the Airbnb payout​

On import, Vivin builds the Payment Plan so Paid to Date, Due to Date, and Contract Value all equal the Provider platform payment (the Airbnb / OTA payout for the stay) — not a mid-term monthly rent schedule. A matching Provider Platform in-payment lands on Transactions and is allocated to that rent line immediately, so a fresh channel stay usually opens as Paid with no extra collections work.

Where to lookWhat you should see
Insights bar (booking header)Paid to Date, Due to Date, and Contract Value all equal the same payout.
Contract Info → Booking informationProvider platform payment = the OTA payout (for example 16.9 €).
Payment PlanOne (or few) rent lines whose Total and Paid sum to that same payout.
TransactionsA Provider Platform row sourced from Airbnb for the same amount.

Booking detail insights bar — Paid to Date, Due to Date, and Contract Value all equal the Airbnb payout

Booking detail — Contract Info dates-only card with Airbnb platform badge and Provider platform payment 16.9 €

Booking detail — Payment Plan Paid rent line of € 16.9 matching the Airbnb payout

Booking detail — Transactions Provider Platform in-payment from Airbnb for € 16,90

Walkthrough: channel-manager Airbnb stay — Contract Info payout, Payment Plan Paid line equal to the payout, then Transactions Provider Platform row.
Walkthrough: insights bar equal amounts on an Airbnb stay, then confirm on Payment Plan.
Booking.com stays: one rent line due at check-in​

On a channel-manager Booking.com stay, the property collects the guest’s money (card, at check-in, or a Booking.com bank transfer). Vivin does not register an Airbnb-style payout automatically, so Paid to Date stays €0 until you record what you collected.

Payment Plan shows one rent line for the whole stay, due on check-in (Move-in Payment) — even when the stay crosses a calendar month. A stay that spans October and November still bills once, due on the move-in date. Example: 29 Oct → 5 Nov bills €339,02 as a single Move-in Payment due 29 Oct.

Where to lookWhat you should see
Insights barContract Value equals the Booking.com amount. Paid to Date is €0 until you record a collection. Next payment is due on check-in.
Payment PlanOne Scheduled rent line labelled Move-in Payment, total matching Contract Value. + Charge and Apply Discount stay locked. + Transaction stays enabled.
TransactionsNo automatic Provider Platform in-payment. Use + Transaction to open Add Payment and record what you collected (your role must allow adding payments).

Locked charge/discount controls use this tooltip: Charges and discounts are locked for Booking.com bookings — the amounts follow Booking.com. Record here the payments you collect from the guest.

Booking detail — Payment Plan on a Booking.com stay: one Move-in Payment rent line due at check-in, + Transaction enabled, + Charge and Apply Discount locked

Booking detail — Transactions on a Booking.com stay with + Transaction enabled and no automatic payout row

Booking detail — Add Payment modal opened with + Transaction on a Booking.com stay (demo does not save)

Walkthrough: Booking.com stay — one Move-in Payment rent line due at check-in, Transactions with + Transaction enabled, then Add Payment (demo cancels without saving).

See FAQ — Why does a Booking.com stay show one rent line due at check-in? and Edit lockdown on Airbnb bookings (Airbnb still locks + Transaction because that payout registers automatically).

When Airbnb changes dates or the payout​

When the guest later changes dates or the OTA payout on Airbnb, Channex sends a modified revision. Vivin acknowledges that revision and applies the new stay dates and host payout to the Vivin booking when the change is safe to take automatically:

  1. Contract Info → Booking information updates the stay dates and Provider platform payment to match the channel.
  2. The Payment Plan regenerates and the received Provider Platform in-payment follows the new payout.
  3. Contract Info → Changelog (open View all) records a line such as OTA modification applied automatically from the channel… with the before/after dates and payout.

After an automatic update, open the booking and confirm Paid to Date on the insights bar still lines up with the new Provider platform payment, then skim Payment Plan / Transactions for any remainder you still need to collect or adjust.

Booking detail — Contract Info after auto-apply: Airbnb stay dates and Provider platform payment 29.57 €

Booking detail insights bar after an Airbnb alteration — Paid to Date matches the new payout

Booking Changelog — OTA modification applied automatically with date and payout before/after

Walkthrough: after an Airbnb date/payout change — Contract Info shows the new dates and payout, insights Paid to Date matches, and Changelog records the automatic apply.

When Vivin cannot apply the change automatically (for example a date collision on the unit, or invoiced payment-plan rows that block regeneration), Changelog instead shows a review warning. You cannot fix stay dates with Change contract start/end date on these bookings — those controls stay locked (Edit lockdown). Instead:

  1. Confirm the current Contract Info dates and Provider platform payment against Airbnb.
  2. Clear the blocker on the Vivin side when you can (for example resolve an overlapping block, or finish invoiced payment-plan work that prevents regeneration).
  3. Make any further date or payout correction on Airbnb so Channex can send a fresh revision.
  4. Re-open the booking and confirm Changelog records an automatic apply (or ask Vivin support if the warning persists after the channel is correct).

Commission-only Airbnb updates that do not change stay dates or the host payout usually need no Vivin action.

Booking detail — Airbnb Contract Info with stay dates, Airbnb platform badge, and Provider platform payment

Booking detail — Airbnb Booking information amber note reminding operators to change dates on Airbnb

FAQ: Why does an Airbnb booking show Paid equal to the payout?, What happens when an Airbnb guest changes dates or the payout?, Why can’t I edit an Airbnb booking in Vivin?.

Booking Engine short stays (daily, under one month) — When a reservation comes from the Vivin Booking Engine with a Daily contract day type, a stay shorter than one month, and a positive Provider platform payment amount supplied by the engine, Vivin bills that quoted stay total on the payment plan instead of re-deriving rent from the unit’s monthly rate × nights. If the stay crosses a calendar month boundary, Vivin splits the same total across those months by billable days (the last month absorbs rounding). Changing contract dates (or editing Monthly rent) drops that preservation — Vivin regenerates rent with normal daily proration from then on. Longer Booking Engine stays and non–Booking Engine platforms keep the usual rent rules. See FAQ — Booking Engine short-stay rent and Provider platform payment.

Booking detail — Contract Info on a Vivin Booking Engine Daily short stay, Platform VIVIN and Provider platform payment matching the quoted stay total

Booking detail — Payment Plan rent line equals the Provider platform payment quoted total on a Booking Engine short stay

Walkthrough: Contract Info shows Provider platform payment as the quoted stay total, then Payment Plan bills that same amount as rent (not monthly rate × nights).

Payment plan and Finance — Turning Update Payment Plan on for move-in or move-out changes regenerates rent and related scheduled lines. If regeneration conflicts with invoiced allocations, the API returns an error — resolve Finance records first (same pattern as fee amount edits). After a successful change, open Payment plan and check Contract Info → Timeline for logged date and rent events.

Provider platform payment​

When the reservation was created through a partner with a platform-handled first payment, Booking information may show Provider platform payment (read-only in both view and edit mode). Marketplace POST /bookings records platformProviderPaymentValue as that amount — Creating Bookings — Platform commission. The amount is for reconciliation against the partner statement; it does not replace Payment plan or Finance Transactions for allocations in Vivin (except Vivin Booking Engine daily stays shorter than one month — see Booking Engine short stays). Tenants see the same channel as a platform name and logo (for example Roomless or Airbnb) on portal Payments → Transaction History. Direct stays show —. Empty shows Not set. + Create New → Booking can type First payment value (€) when Platform is a channel (not Direct). While a non-rejected provider platform in-payment row still exists on the booking, Delete Booking is blocked — Reject the payment on Transactions (or clear it via Assign to other booking when allowed) before you remove the reservation. See Delete Booking and Finance — Delete payment on the ledger.

Booking detail — Contract Info, Provider platform payment read-only field on integration booking

Walkthrough: blocked Delete Booking while a provider-platform in-payment is pending → Transactions → Reject Payment → retry Delete Booking (confirm dialog opens; clip cancels before archive).

Use check in date as contract start date​

On Change contract start date, tick Use check in date as contract start date when the contract (PDF, displayed Start date, related finance dates) should follow operational check-in instead of the billing-period start. On Change contract end date, tick Use check out date as contract end date for operational check-out. The helper text is Without impact in the payments plan — ticking the box fills the date field from check-in or check-out and does not regenerate rent lines.

Marketplace POST /bookings cannot send these flags — imported stays land with both boxes off until you tick them here — Creating Bookings — Use check in date as contract start date. + Create New → Booking has no create-time control. Property Rental payment frequency still sets stored Start date / End date at create (for example a Monthly contract starts on the 1st). Airbnb channel-manager stays keep Change contract start/end date locked — Edit lockdown on Airbnb bookings.

Booking detail — Change contract start date modal with optional Use check in date as contract start date

Booking detail — Change move-in date modal with Update Payment Plan toggle

Booking detail — Change monthly rent modal with fixed vs varies rent options and Already-invoiced months info banner

Booking detail — Change move-out date modal with Update Payment Plan toggle and rent options

Booking detail — Change contract end date modal with optional Use check out date as contract end date

Booking-level fee amounts​

When Account Settings > Fees has Admin fee, Cleaning fee, or Exit fee turned on, new bookings copy the property defaults from Listings — Contract Information. On an existing booking, operators can override each € amount on Contract Info → Booking information without changing property defaults for future reservations. Listing JSON and partner POST /bookings omit the exit fee — Vivin still copies the property amount onto imported stays — Listings & Availability — Exit fee. Marketplace POST /bookings also cannot send depositValue — listing JSON copies onto the hold — Creating Bookings — Deposit. Marketplace POST /bookings also cannot send adminFeeValue — Vivin resolves the property fixed amount or stay-duration tier — Creating Bookings — Admin fee. Marketplace POST /bookings also cannot send billsIncludedMaxValue — Vivin copies the property Bills Included ceiling — Creating Bookings — Bills included.

FieldVisibilityEdit behaviour
Cleaning feeShown when the fee is on in Account Settings or this booking already stores a non-zero cleaning fee.Enter edit mode (pencil on Booking information). Change the € input; use Cleaning Fees requirement on the same card for monthly vs one-time scheduling (see below).
Admin feeSame rule — account toggle or non-zero value on the booking.Edit the € amount in edit mode. Tiered property defaults from Per stay duration are resolved at booking create; this field is the stored amount for this reservation.
Exit feeSame rule — account toggle or non-zero value on the booking.Edit the € amount in edit mode.

Each amount is a € input beside Deposit in edit mode. Changed fields highlight with an orange border until you Update. Labels follow your custom fee names when configured.

ActionPayment plan behaviour
Raise a feeVivin syncs the matching scheduled line(s) to the new amount and may redistribute incoming payments across outstanding charges.
Lower a feeSurplus non-invoiced allocation is freed and reapplied per your payment priority order.
Set a fee to €0Removes that fee from the payment plan for this booking (disables the charge without changing property defaults).

Guards — Values must be ≥ 0. Canceled bookings cannot be updated. If a fee line is already invoiced, lowering the amount below what was invoiced fails — resolve Finance records first (same pattern as cleaning fees requirement edits).

After you Update, open Payment plan and confirm admin, cleaning, and exit lines match the new amounts. Check Contract Info → Timeline for logged fee-value changes. Changing property defaults in Listings does not retroactively change existing bookings (see Listings business rules).

Booking detail — Contract Info, Booking information with admin, cleaning, and exit fee amounts (read-only)

Booking detail — Contract Info edit mode with editable admin, cleaning, and exit fee € fields

Bills included ceiling​

Each booking stores the Bills included ceiling (maximum monthly utility cost absorbed into rent) copied from the property wizard Step 3 at create time. Vivin uses this value with Utilities overage math — when a supplier bill exceeds the ceiling, tenants pay the difference on their payment plan. This booking-level euro cap is not the same as unit All bills included (No cap), which shows as Covered on Allocations (Extra to charge € 0,00) instead of a pending overage.

ViewWhat you see
Read-onlyUp to €… when a positive ceiling is stored; Not set when the value is 0 or empty (same as clearing the field).
Edit modeOn Contract Info → Booking information, click the pencil to reveal a € number input for Bills included (beside platform and categories). Change the ceiling for this reservation only, then Update — or Cancel to discard. You can also set it at Add booking (when the property has bills included) or on the property wizard. Marketplace POST /bookings cannot send a different ceiling — Creating Bookings — Bills included. The API accepts billsIncludedMaxValue on PUT /bookings/:id.

Booking detail — Contract Info, Booking information with Bills included ceiling (read-only)

Booking detail — Contract Info edit mode with Bills included € input

Walkthrough: open Contract Info → Booking information, enter edit mode to reveal the Bills included € field, then Cancel without saving.

Payment plan behaviour — Updating Bills included on an existing booking is inert for the payment plan: Vivin saves the new ceiling on the reservation record but does not regenerate scheduled lines or recalculate past utility overages. Use it when the contractual ceiling for this tenant differs from the property default without changing Listings for future bookings.

ActionPayment plan / Utilities
Set or raise €Stored on the booking only; future overage runs use the new ceiling.
Clear to €0Persists as 0 and displays Not set; overage math treats the booking as unlimited unless property-level ceilings still apply elsewhere.
Lower €Same inert save — does not claw back overages already posted from a prior higher ceiling.

Guards — Values must be ≥ 0. Canceled bookings cannot be updated. Negative amounts are rejected at save time.

Changing property defaults in Listings does not retroactively change existing bookings — override per reservation here when needed.

Cleaning fees requirement​

Each booking stores the cleaning fee mode copied from the property at creation. Marketplace POST /bookings cannot send a different amount or frequency — Creating Bookings — Cleaning fee. On Contract Info, enter edit mode to change Cleaning Fees requirement for this reservation only:

OptionPayment plan
Every MonthMonthly cleaning fee lines across the contract span (default when the field is empty / null).
One-Time Fee at Booking ConfirmationSingle cleaning fee line at confirmation.
One-Time Fee at Move-inSingle cleaning fee line in the move-in month.

The value is read-only until you click edit on the Booking information section (pencil icon in the section header). After you Update, open Payment plan and confirm cleaning fee rows match the new mode. If regeneration cannot remove surplus monthly rows because a cleaning allocation is already invoiced, the API returns an error — adjust Finance records first or keep the prior mode.

Booking detail — Contract Info, Booking information with Cleaning Fees requirement (read-only)

Booking detail — Contract Info edit mode with Cleaning Fees requirement dropdown

Days before due (payable)​

Days before due (payable) on Contract Info → Booking information is how many days before a charge’s due date Vivin marks the line as payable for this reservation. New bookings copy the account Days before due date from Payments. Marketplace POST /bookings cannot send a different window — Creating Bookings — Days before due. + Create New → Booking also cannot pick it at create. There is no property-level Days before due date.

On an existing stay, click the pencil on Booking information and change Days before due (payable). Update saves the value on this reservation only — it does not rebuild the payment plan, and it does not change account Payments for future bookings. 0 means the line is not marked payable early. Canceled bookings cannot be updated.

This is not Due day / Due Month (the calendar day for the rent schedule). It is not Deposit Refund Limit (days after checkout to return the hold).

Booking detail — Contract Info, Days before due (10) next to Due day, Due Month, and Deposit Refund Limit

Deposit Refund Limit​

Deposit Refund Limit on Contract Info → Booking information is the number of days after the booking’s refund anchor by which your team should return the security deposit for this reservation. The account-wide default lives on Settings → Billing → Payments → Deposit Refund Deadline (English UI label on Payments). Vivin uses the effective term when deriving Refund Due Date on Finance → Deposits and when bounding due dates for post-checkout Add Charge rows on the booking. Marketplace POST /bookings cannot send a different term — imported stays inherit the account setting until you override it here — Creating Bookings — Deposit Refund Limit. + Create New → Booking also cannot pick it at create. There is no property-level Deposit Refund Limit. Changing Payments still moves every booking that shows Account default.

Read-only displayMeaning
Account default (N days)No booking override — inherits the Payments Deposit Refund Deadline (N is the account value).
Account default (no day count)Same inherit state when the account setting is not a usable number.
N days (or 1 day)This booking has an explicit override of N days.

Edit mode — click the pencil on Booking information, then use the Deposit Refund Limit number field:

What you enterResult on save
Leave blankClears any override and returns to the account Deposit Refund Deadline.
0A real override meaning the refund is due on the anchor date itself (not blank).
1–3650Override of that many days for this booking only.

The hint under the field says Leave blank to use the account setting. Blank and 0 are not interchangeable — blank inherits; 0 is an intentional same-day ceiling. After Update, check Contract Info → Timeline for a Deposit return term (days) log line when the value changed. Canceled bookings cannot be updated.

Booking detail — Contract Info, Deposit Refund Limit showing Account default (10 days)

Booking detail — Contract Info edit mode with Deposit Refund Limit set to 30 (dirty highlight)

Booking detail — Contract Info, Deposit Refund Limit showing 30 days override

Walkthrough: open Contract Info → Booking information, edit Deposit Refund Limit from account default to 30 days, then Update.

See also FAQ — Per-booking deposit refund limit and Glossary — Deposit Refund Limit.

Confirmation payments and check-in payments​

New bookings copy Confirmation payments and Check-in payments from the property’s Listings — Contract Information defaults at create time. Marketplace POST /bookings cannot send a different split — Creating Bookings — Confirmation payments. New bookings also copy Due day and Due Month from that same card (or from account Tenant Due Day / Tenant Due Month) — Creating Bookings — Due date. New bookings also copy Check-in time and Check-out time from account Booking Defaults — Creating Bookings — Check-in times. New bookings also copy Days before due (payable) from account Payments — When to show payment as due — Creating Bookings — Days before due. Marketplace POST /bookings does not set Check-in responsible or Check-out responsible — those stay empty until you assign a teammate — Creating Bookings — Check-in responsible. Marketplace POST /bookings does not set Lease purpose — imported stays show No lease purpose until you or the tenant select a chip — Creating Bookings — Lease purpose. Marketplace POST /bookings does not set Deposit Refund Limit — imported stays inherit the account Payments term until you override it — Creating Bookings — Deposit Refund Limit. On an existing reservation, operators can override Confirmation payments, Check-in payments, Due day, Due Month, Days before due (payable), Check-in / Check-out times, Check-in / Check-out responsible, Lease purpose, and Deposit Refund Limit on Contract Info without changing property or account defaults for future bookings.

FieldWhen charges are due (payment plan)
Confirmation paymentsLines flagged for booking confirmation — due on min(booking created, check-in date) so late-created reservations do not post confirmation charges after move-in.
Check-in paymentsLines flagged for move-in — due on the booking’s check-in date (deposit, first rent, last rent, and combinations).

Read-only view shows the human-readable requirement (for example Deposit and first rent). When a value was never set on the booking, the UI may display property/account defaults — First rent for confirmation and Deposit and last rent for check-in are common fallbacks in the English UI.

Edit mode — click the pencil on Booking information, then use the two dropdowns:

Option (English UI)Typical meaning
DepositSecurity deposit only
First rentFirst scheduled rent line
Last rentLast scheduled rent line
Deposit and first rentDeposit + first rent together
Deposit and last rentDeposit + last rent together

No double-charging — the product disables overlapping options across the two dropdowns. If Confirmation payments includes Deposit, Check-in payments cannot also require Deposit (same rule for First rent and Last rent). This mirrors the property wizard rule documented in Listings — Confirmation Payments.

Clear (×) — each dropdown has a clear control in edit mode. Clearing sends null for that requirement on this booking only, which can shift due dates when you Update.

Payment plan impact — saving a change calls the API to recompute due dates on requirement-flagged lines (persistDueDates). When the change moves first rent or last rent between confirmation and move-in buckets, Vivin may regenerate split rent lines on the payment plan. After Update:

  1. Open Payment plan and confirm deposit / rent due dates and requirement badges match the new split.
  2. Check Contract Info → Timeline for Move-in requirements or Booking confirmation requirements log lines.

Guards — Canceled bookings cannot be updated. If regeneration conflicts with invoiced allocations, resolve Finance records first (same pattern as cleaning fees requirement). Change unit stays disabled while confirmation payments are still outstanding on the booking.

See also Processing a new booking for the create-time flow and Payment allocation concepts for how confirmation vs move-in flags affect collections.

Booking detail — Contract Info, Confirmation payments and Check-in payments (read-only)

Booking detail — Contract Info edit mode with Confirmation payments and Check-in payments dropdowns

Booking detail — Contract Info edit mode, Confirmation payments dropdown with overlap-disabled options

Dual pricing (local rent cap)​

When the account has dual pricing enabled, the unit had a Local Rent Cap at booking create, and an Others category was configured, the booking stores useDualPricingRentSplit. On Contract Info → Booking information, you see Local Rent Cap (read-only until you enter edit mode on supported bookings). Partner listing JSON does not publish the cap — catalogues show the full advertised rent — Listings & Availability — Local rent cap.

SurfaceWhat to expect
Contract InfoLocal Rent Cap in euros when the booking uses the split.
Payment plan / Contract ValuesEach contract month shows a Rent line capped at the local rent cap plus a matching Others line for rent − cap (same category as Account Settings).
AllocationIncoming payments can satisfy Rent and Others separately per your payment priority order.

Editing the cap on an existing booking (dual-pricing bookings only): open Contract Info edit mode, change Local Rent Cap, and save. The value must stay above zero and below the booking’s rent. Vivin regenerates scheduled Rent and Others lines and logs the change on the booking Timeline. Canceled bookings cannot be updated. If regeneration conflicts with invoiced allocations, resolve Finance records first — same pattern as cleaning fees requirement edits.

Dual pricing is frozen at booking create — turning dual pricing off in Account Settings later does not remove the split from bookings that already have it.

Booking detail — Contract Info, Booking information with Local Rent Cap (read-only)

Booking detail — Contract Info edit mode with Local Rent Cap field

Booking tags​

Booking categories on Contract Info → Booking information are optional chips from Settings → Categories → Bookings. Marketplace POST /bookings cannot send these labels — imported stays show No categories until you pick chips — Creating Bookings — Booking tags.

SurfaceBehaviour
Contract Info → Booking informationRead-only chips when tags are stored; No categories when empty (the usual state after a marketplace import).
Contract Info edit modeMulti-select from the account’s configured chip list. Save with Update.
Add bookingSame multi-select when the account has chips — or leave blank.
Bookings list / TimelineUntagged marketplace stays match Booking categories → No booking category. Named tags filter stays that already carry a label.
Communication RulesInclude only named tags will not match an untagged marketplace stay — tag the reservation first, or leave Booking tags on No filter.

This card is not a default copied onto new stays. Listing Select tags (property and unit labels) is a different catalog. Tenant category is a different catalog (portal segments — allowlisted channels can assign a default). Lease purpose is a different field (why the tenant is renting).

Account Settings — Categories, Bookings chip catalog (allowed labels, not a default copied onto new stays)

Bookings list — Booking categories menu with No booking category selected (empty tag list after marketplace import)

Lease purpose​

When Settings > Categories > Lease purpose has Enable Lease Purpose field turned on, operators can record why the tenant is renting (for example Tourism, Studies, or Work). Marketplace POST /bookings cannot send this label — imported stays show No lease purpose until you or the tenant select a chip — Creating Bookings — Lease purpose.

SurfaceBehaviour
Contract Info → Booking informationRead-only Lease purpose under Booking categories when a value is stored; No lease purpose when empty (the usual state after a marketplace import).
Contract Info edit modeSearchable dropdown limited to the account’s configured chip list. When Make Lease Purpose mandatory is on, Update is blocked until a value is selected.
Add bookingSame dropdown on the tenant / platform step when the field is enabled (required asterisk when mandatory).
Tenant portal signingWhen the field is enabled, the tenant picks an allowed value on Sign contract → Your Details (Select lease purpose). When Make Lease Purpose mandatory is on, Next stays blocked until a value is selected — see Tenant Portal — Lease Purpose. Pair with Portal settings — Mandatory for contract signing (settings-sidebar-tenant-portal-portal-settings.png) for other Your Details gates. Operator troubleshooting: FAQ — Tenant contract signing blocked.

Values must match one of the allowed chips from Categories; free-text outside the list is rejected on save. Turning the field off in Settings hides the control on new edits but does not erase values already stored on bookings.

Booking detail — Contract Info, Booking information with Lease purpose read-only (example Internship on AA-11-5D-R4)

Add booking — Lease purpose searchable dropdown with account-configured options

Change tenant (reassign booking)​

When a reservation was created under the wrong existing tenant profile (duplicate fiscal ID or email in the account, or a data-entry mistake before check-in), use Change tenant on the Contract Info tab instead of editing tenant master data in place.

Who can use it

  • Requires bookings.edit_items (same permission as editing booking line items).
  • The control appears only while the booking is Upcoming in the list filters sense (the product status card Upcoming).

When it is available

ConditionResult
Booking is cancelledControl disabled — cannot change tenant.
Check-in date is today or in the pastDisabled — cannot change tenant on or after check-in.
A signed contract is on file (contractPath / upload on Contract Info)Disabled — cannot change tenant once the contract is signed.
Any allocation on the booking is paid and invoiced (or otherwise protected)Reassign booking is rejected with an error when you confirm.

Confirmation payments may still be outstanding; reassignment is allowed before the structural blocks above apply.

What it does (and does not do)

  • Updates the booking’s primary tenantId and the denormalized tenant snapshot on the booking (name, email, fiscal ID shown in the sidebar).
  • Clears an unsigned generated contract file so the regeneration job can rebuild the PDF for the new tenant — it does not regenerate the contract inline.
  • Does not rebuild the Payment Plan, move historical Transactions, or rewrite invoiced allocations; past payments and issued invoices stay tied to the original tenant for audit and legal continuity (the modal states this explicitly).

Steps

  1. Open the booking from Bookings → List (or a deep link such as /bookings/list/:bookingId).
  2. On Contract Info, in the Tenant card header, click the swap icon (Change tenant).
  3. In the modal, review Current tenant, search New tenant by name, email, or NIF, then click Reassign booking.

Booking detail — Contract Info tenant card with Change tenant control (upcoming booking)

Change tenant modal — current tenant, searchable new tenant picker, and audit warning before Reassign booking

Walkthrough: open Change tenant, search for another tenant in the account, review the audit warning, then Cancel without reassigning (demo).
Editing tenant fields vs changing tenant

The pencil on the same card edits contact fields for the current tenant on this booking. Change tenant points the whole booking at a different tenant record already in your account — use it when the wrong person was linked, not when you only need to fix a typo on the right profile.

Change unit (before check-in)​

When a confirmed booking should move to a different unit in the same account before the tenant checks in (for example a maintenance issue on the original room), use Change unit on Contract Info instead of cancelling and re-creating the reservation.

Where it lives

  • Contract Info → Property & Unit section, on the Unit internal name row — a small pencil beside the current unit opens Change unit when the booking is eligible.

Booking detail — Contract Info Property &amp; Unit section with pencil beside Unit internal name (upcoming booking)

When it is available

ConditionResult
Booking is cancelledDisabled — cannot change unit.
Booking is not confirmed (confirmation payments still outstanding)Disabled — complete confirmation first.
Check-in date is today or in the pastDisabled — cannot change unit on or after check-in.
Target unit is the same as the current unitNo-op — the API skips side effects.
Target unit is deleted, its property is archived, unavailable for the date range, or has an overlapping confirmed bookingMove booking is rejected with a specific error.

What the move does (V1)

AreaBehaviour
Booking rowUpdates listingId (and related property snapshot) to the new unit.
CalendarRemoves the block on the old unit and adds a Booked block on the new unit.
Nuki accessRegenerates door codes for the new unit when Nuki is configured (cross-property moves show stronger copy in the modal).
EmailsRe-sends check-in and onboarding emails for the new unit; refreshes scheduled reminders. Check-in email is skipped when Nuki regeneration fails — resolve access, then Resend Check-in email manually. The onboarding resend omits the contract PDF when the booking has no contractPath yet (even if Contract in onboarding email is on account-wide) so the message still delivers without a broken attachment.
Automatic CI/CO ticketsRe-points active automatic check-in/out tickets to the new unit (and property) in the same save — Operations staff are not left on the old room. Closed, cancelled, and duplicate tickets stay put. Common-area automatic tickets keep listingId null and only refresh the property snapshot. See FAQ — Change unit tickets.
ContractNot regenerated — existing contractPath / signed contract files stay as-is. If a signed contract exists, the modal warns that the PDF may still reference the original unit.
Payment planUnchanged — rent, deposit, fees, and scheduled lines still reflect the original commercial terms until you edit them separately.

After you pick a new unit, the modal lists verb-led effects (door codes, emails to the tenant, reminder refresh, calendar block move) and a teal Contract and payment plan unchanged callout — both stay tied to the original unit until you edit them separately. A separate amber alert appears when the booking already has a signed contract on file.

Steps

  1. Open the booking from Bookings → List (or a deep link such as /bookings/list/:bookingId).
  2. On Contract Info, in the Property section, click the pencil beside Unit internal name.
  3. In Change unit, review the current unit, pick a new unit from the searchable list (loaded from the lightweight account-wide listing options API — see Glossary — Listing options (management API)), and read the When you move this booking summary (door codes, emails, reminders, calendar) plus the Contract and payment plan unchanged note.
  4. Click Move booking. Partial failures (for example Nuki or email) surface as toasts — the unit change still commits; use Resend Onboarding email, Send portal access, or Resend Check-in email on the same tab when needed.

Change unit modal — Studio 12 → AA-11-5D-R6 with When you move this booking effects and Contract and payment plan unchanged callout

Walkthrough: open Change unit from Contract Info, pick a destination unit, review the effects summary and unchanged contract/payment callout, then Cancel (no Move).

The modal’s on-screen effects list covers door codes, emails, reminders, and the calendar block. Automatic check-in/out tickets still re-point to the new unit in the same save even though that bullet is not listed in the modal — confirm on Operations → Tickets (property / unit column) or the booking Tickets tab after a real move. See FAQ — Change unit tickets.

Room changes vs payment plan

Operational unit moves do not rebuild the payment schedule. After relocating a booking, open Payment Plan and Finance if rent or deposit should follow the new unit’s defaults — the same double-billing caution applies when manually editing dates on two overlapping bookings (see Room changes under Early departures).

Contract management also lives on this tab:

Automatic contract generation​

When a booking is confirmed (from any channel), Vivin can automatically generate a digital rental contract:

  • Smart data insertion — tenant name, unit details, dates, pricing, and custom clauses are populated automatically from the booking data.
  • Digital signature — signature requests are sent via email, and tenants can sign from any device.
  • Multiple contract types — support for traditional rental agreements, accommodation services contracts, and custom templates.
  • All contracts stored and searchable — access contracts by tenant, property, or date range at any time.

Manual contract management​

You can also manage contracts manually:

  • Upload a signed contract PDF by clicking Upload Signed Contract on the Contract Info tab — the Add Signed Contract modal accepts drag-and-drop or file picker (PDF, DOC, DOCX)
  • Download the generated contract to send to the tenant
  • Preview the contract with all booking variables filled in
  • Regenerate rebuilds the PDF from the current booking and template
  • Resend (on this Contract card) sends the onboarding email with the contract attached, even when Contract in onboarding email is off for the account. The tenant’s category can still block the attachment when the Contract portal module is off. If this booking has no generated contract yet, use Preview / Regenerate first — or use Resend Onboarding email on the Check-in & Check-out card, which still delivers the welcome message without a PDF.

Booking detail — Contract card with Preview, Regenerate, Resend, and Upload Signed Contract

Add Signed Contract modal — drag-and-drop upload on Contract Info

Business Rule

Uploading a file on the Contract Info tab marks the booking as contract signed. The Contract column on All bookings switches to a teal check and the hover tooltip shows Signed on with that timestamp — the list you already scrolled stays in place (it does not jump to the first page). Regenerate clears that mark the same way. If Contract status is Signed, Not Signed or N/A, that filtered list reloads so rows can leave or join the slice. See Contract mark stays on the list.

Bookings list — Contract column hover Signed on date after a signed agreement is on file

Virtual IBAN (bank transfers)​

When virtual IBAN collection is enabled for the booking, the Contract Info tab shows the tenant's dedicated transfer reference under Method of payments:

  • Copy — copy the full virtual IBAN to the clipboard for sharing with the tenant or your bank workflow.
  • Download proof — download a PDF proof of the virtual IBAN (for records or tenant instructions).
  • Switch IBAN (pencil) — open Edit Booking Virtual IBAN to swap this booking’s virtual IBAN with another reservation for the same tenant (for example after a banking or integration change, or when a rebook should inherit the prior reference).

Booking detail — Contract Info Method of payments Virtual IBAN row with copy, download proof, and Switch IBAN pencil

Switch IBAN steps

  1. On Contract Info → Method of payments, click the pencil (Switch IBAN) beside the Virtual IBAN.
  2. Read the modal copy — Vivin switches the IBAN with the booking you pick; it does not generate a brand-new IBAN by itself.
  3. Open Select a booking. Only other reservations for the same tenant appear. When the tenant has several stays (including the same unit), each row shows property — unit · contract dates · status so you can tell them apart — the same identity pattern as Transfer Refund Balance. The collapsed trigger repeats the dates after you select.
  4. Click Update IBAN only when you intend to swap. Close or cancel to leave the current IBAN unchanged.

Booking detail — Edit Booking Virtual IBAN modal with select-booking picker and Update IBAN

Booking detail — Switch IBAN destination picker open with property — unit · contract dates · status identity rows for the same tenant

Walkthrough: open Contract Info → pencil on Virtual IBAN → review Edit Booking Virtual IBAN → open the same-tenant picker (contract dates disambiguate rows) → close without updating.

Tenants use this virtual IBAN for incoming rent transfers; it is not the same as their personal bank account IBAN used for deposit refunds. See Finance > Automated Rent Collection and Tenant Portal > Online Payments.

In the same Method of payments block, Tenant Portal gives operators quick access to the booking-scoped portal URL:

  • Copy (clipboard icon) — copies the direct portal link (includes booking id and access code when configured) so you can paste it into chat, SMS, or a manual email.
  • Impersonate Tenant — opens that URL in a new browser tab so you can preview what the tenant sees on the portal home (payments, contract, and self-service areas your account allows).

The link is disabled with a short error toast when the booking has no portal URL yet (for example very early in creation before credentials are provisioned).

Booking detail — Contract Info, Method of payments with Virtual IBAN and Tenant Portal copy / Impersonate Tenant

Exclude this booking from penalty fees​

On the same Method of payments card, Exclude this booking from penalty fees is an optional checkbox. Leave it off (the default) so account Payment Delay Penalties still apply to this stay. Tick it when this reservation should skip those penalty rules and Penalty Fee scheduled emails.

Marketplace POST /bookings cannot send this flag — imported stays land with the box off until you tick it here — Creating Bookings — Exclude from penalty fees. + Create New → Booking has no create-time control. Airbnb channel-manager stays keep the box locked — Edit lockdown on Airbnb bookings. Operators can still add a one-off extra charge on Payment Plan — Handling a Late Payment — Step 5.

Booking detail — Contract Info Method of payments with Exclude this booking from penalty fees

Check-in & Check-out emails​

Lower on Contract Info, the Check-in & Check-out card holds operational timing (check-in/out times and responsible team members) and separate email actions for this booking. Marketplace imports copy account Check-in time / Check-out time — Creating Bookings — Check-in times. Marketplace imports do not set Check-in responsible or Check-out responsible — those stay empty (–) until you assign a teammate — Check-in responsible. Marketplace imports do send the onboarding welcome email at create (operators cannot skip it on the channel) — Send onboarding email & contract. Operators can still edit times and teammates on this card for that reservation only. Send Check-in email / Resend Check-in email is offered only when Settings > Emails — Booking lifecycle emails has a check-in trigger other than No trigger. Each control tracks its own last-sent time — sending one does not change the others.

ControlWhat the tenant receivesWhen the label says Resend
Send Onboarding email / Resend Onboarding emailThe welcome template from Settings > Emails — Onboarding. The contract PDF is attached only when Contract in onboarding email is on, the tenant’s category still allows the Contract portal module, and a contract file already exists. If there is no contract file yet, the email still sends without the PDF.After the first successful onboarding send. Hover for Last sent.
Send portal access / Resend portal accessOnly the tenant portal login message — the link the tenant uses to open the portal. It does not send the onboarding template or attach the contract. Use this when the tenant needs the portal link again without another copy of the welcome email.After the first successful portal-access send. Hover for Last sent.
Send Check-in email / Resend Check-in emailThe check-in template (arrival instructions; access codes when Nuki is configured). Shown only when the account check-in trigger is not No trigger.After the first successful check-in send. Hover for Last sent.

Send Onboarding email needs the edit booking items permission (bookings.edit_items). Send portal access is available to anyone who can open this tab. Send Check-in email is available to anyone who can open this tab when the account check-in trigger is not No trigger. To force the contract PDF onto the onboarding email regardless of the Preferences toggle, use Resend on the Contract card instead.

When the check-in trigger is No trigger, this card keeps Onboarding and portal access and omits the check-in button. Pick a real trigger on Booking lifecycle emails first — see Emails — Check-in trigger (settings-emails-lifecycle-check-in-trigger.png, settings-emails-check-in-trigger-gates-button-flow.mp4).

Walkthrough: on Contract Info, review the Contract card (Preview / Regenerate / Resend / Upload Signed Contract), then the Check-in & Check-out emails (Resend Onboarding email, Send portal access, Send Check-in email). Demo does not send mail.

Lifecycle triggers on Settings > Emails — Booking lifecycle emails evaluate automatically when move-in payments post or when the tenant completes digital contract signing in the Tenant Portal (signedContractPath) — not when you upload a signed PDF here. Use Send Check-in email / Resend Check-in email after manual contract upload, or when Nuki code generation blocked an earlier automatic send — the button is on this card when your check-in trigger is not No trigger. When After contract signed never fires, pair FAQ — automatic check-in email with FAQ — Tenant contract signing blocked (bookings-detail-contract-check-in-out-emails.png).

Use these buttons when a tenant did not receive automated mail, needs the portal link without another onboarding send, or you need to refresh arrival instructions after a change. For the full check-in workflow (access codes, tickets, payment plan), see Managing a Check-in. Contrast: FAQ — Onboarding vs portal access vs Contract Resend.

Booking detail — Contract Info, Check-in &amp; Check-out card with Resend Onboarding email, Send portal access, and Send Check-in email

Check-in responsible and Check-out responsible​

Check-in responsible and Check-out responsible name the teammates who own arrival and departure handover for this reservation. Marketplace POST /bookings cannot send these names — Creating Bookings — Check-in responsible. There is no account-level default on Booking Defaults and no property-level default. + Create New → Booking can pick both at create. After import, use the pencil on this card. Until you assign someone, Operations → Filters → Assigned responsible → Without lists those marketplace stays as unassigned. Toolbar Responsible only lists names already on a handover.

Booking detail — Contract Info, Check-in &amp; Check-out card with Check-in time 15:00, Check-out time 11:00, and empty Check-in / Check-out responsible

Timeline (booking change log)​

Inside the same Check-in & Check-out card, the Changelog section (subtitle: All changes made to this booking.) combines milestone dates (contract start, check-in, check-out, end) with logged field changes from entityChangeLogEntries — for example rent, dates, or status updates. Each event shows when it happened and by which team member when recorded. The timeline lists operator-initiated edits and workflow milestones — not every default or normalized value Vivin stores when the reservation is first created. When more than four events exist, use View all (N) (magnifying-glass control with the total event count) to open the full changelog in a modal. The modal lists every event in reverse chronological order and includes a Search changes… field so you can filter by field name, author, or date text without leaving the booking sidebar.

Automatic cancellations tied to move-in debt may appear with localized copy (for example a move-in debt explanation) instead of the raw system log prefix Automatically canceled:.

Use this timeline when you need to see who changed contract dates or operational fields without opening Finance or Tools → Audit. The list shows operator-initiated edits only — not every default Vivin stores at create time; see FAQ — Booking Changelog scope. This is booking-scoped audit data — not the same block as Change history on Listings property/unit setup (building and unit field edits — listings-property-edit-change-history.png) or Tools → Audit (cross-portfolio manual blocks and discounts). Month-end block triage: Manual block hygiene.

Booking detail — Contract Info, Changelog under Check-in &amp; Check-out with milestone dates and logged field changes

Booking detail — Contract Info, Changelog View all modal with search and full event list

Delete Booking (soft archive)​

At the bottom of the Check-in & Check-out card, Cancel Booking and Delete Booking are separate actions:

ControlWhat it does
Cancel BookingEnds the stay through the normal cancellation flow (refund options, payment-plan cleanup, calendar release). Disabled when canCancel is false (for example already canceled or business rules block cancel). See Cancellations and Refunds.
Delete BookingSoft-archives the reservation (archive API) — removes it from default Bookings lists and releases calendar unavailability while keeping payment and audit history for Finance. Confirm in the dialog; on success the sidebar closes. Timeline drops the stay bar without a reload when that unit is already on the chart — see Stay bars update after create or delete. With Only bookings on, a unit whose last stay in the window you deleted also leaves the unit list — see Unit list updates after create or delete.

Delete Booking guards (API returns an error toast when blocked):

GuardResolution
Any allocation is invoiced, manual, or draftResolve or revert invoice state in Finance first (same rule as cancel-with-settlement).
A provider platform in-payment is still present (not rejected)Reject the row on booking Transactions or Finance → Transactions, or assign it to another booking when invoicing rules allow — then retry Delete Booking. See Provider platform payment above.
A credit card or Virtual IBAN system in-payment is still present (not rejected)Reject the row on booking Transactions or Finance → Transactions, or assign it to another booking when allowed — then retry Delete Booking. Error toast: "The booking cannot be deleted while there is a VIVIN credit card or Virtual IBAN payment still present, please reject or reassign the payment."
vIBAN / provider platform rows on the ledgerDelete payment stays disabled on Finance for these rails; use Reject (when pending) or Revert instead — see Finance — Delete payment on the ledger.

Use Delete Booking only for mistaken or test reservations that should leave the active pipeline — not as a substitute for Cancel Booking when a real stay ended or money must be settled. Cancel booking on the same card runs policy settlement and keeps the reservation in Canceled filters with full ledger history — see FAQ — Cancel Booking vs Delete Booking (bookings-cancel-booking-modal-refund-types.png, bookings-list-canceled-tab.png, workflows-cancel-booking-refund-modal-flow.mp4). Canceled bookings remain visible in list filters; archived bookings drop from default views — Finance → Transactions keeps only System Transactions (vIBAN, credit card) for those reservations; Manual Transactions (transfer, cash, provider platform) are hidden. Delete Booking is reservation-level — distinct from Archive property (building-level on Listings → Archived). See FAQ — Manual payments after Delete Booking when ledger rows disappear after soft-archive (finance-transactions-type-summary-cards.png), FAQ — Delete Booking on integration reservation when a provider platform in-payment blocks the action, FAQ — Delete Booking on VIVIN system payment when credit card or Virtual IBAN in-payments block, FAQ — Portfolio retirement decisions for the three-way scope table, Glossary — Archived property, Finance — Archived bookings on the ledger, and Cancelling a Booking for real voids.

Payment Plan tab​

The Payment Plan tab shows the complete schedule of all expected payments for the booking lifecycle.

Payment Plan Tab

Each row in the payment schedule represents one charge:

  • Type (Rent, Security Deposit, Admin Fee, Cleaning Fee, tenant Services purchased through the Tenant Services Marketplace, etc.)
  • Due Date
  • Amount
  • Status (Pending, Paid, Overdue)

Payment Schedule Detail

A Due Date Communication Rule schedules one reminder per unpaid payment line on this plan — not one email per booking. Two unpaid charges on the same due date share one send (this table also groups by due date). Fully paid lines drop out of the queue.

Schedule table columns and fee visibility​

The main grid is one row per due date (not one row per charge type). Columns follow your account fee naming when customized:

ColumnAlways shown?Meaning
StatusYesDue-date pill (Scheduled, Paid, Overdue, Partial Paid, Partial Overdue) plus optional day context (for example days overdue).
Due dateYesCalendar due date for the grouped charges; optional subtitle when the API supplies a description.
RentYesRent due on that date.
Cleaning feeConditionalShown when Cleaning fee is enabled in Settings or this booking already has a non-zero cleaning amount on at least one due date — so disabling the account toggle does not hide columns on legacy bookings that still carry cleaning lines.
Admin feeConditionalSame rule as cleaning, using Admin fee settings and existing admin amounts on the booking.
Exit feeConditionalSame rule as cleaning, using Exit fee settings and existing exit amounts on the booking.
DepositYesSecurity deposit (and related deposit rows) due on that date. There is no hide toggle for this column.
OthersYesMarketplace Extra Services, penalties, and other non-rent/fee/deposit lines rolled into the due date.
TotalYesSum of the visible amount columns for that row (see below).
PaidYesAllocated incoming payments applied to charges due on that date.

How Total is computed — Total adds Rent, each visible fee column, Deposit, and Others for that due date. When a fee column is hidden because the account toggle is off and the booking has no amounts for that fee, its value is excluded from Total so the number matches the columns you see. Deposit is always included even when fee columns are hidden, so deposit-only due dates still show a Total that aligns with Paid and outstanding balance.

Fee visibility is controlled under Settings → Invoicing & payments → Fees. To inspect individual charge lines (discounts, services, impairments), use Contract Values or click a row to open the breakdown panel below.

When a contract-date change left an invoiced line outside the updated span, the matching due-date row may show the amber contract-date change warning icon (same copy as on Contract Values — see Contract-date change warnings under Contract Info; screenshots bookings-detail-payment-plan-contract-date-warning.png and bookings-detail-payment-plan-contract-date-warning-tooltip.png).

Due-date breakdown panel​

Click any row in the schedule table to open a slide-over breakdown for that due date. On desktop, the panel docks on the right (~400px wide) with a dimmed backdrop; on narrow viewports it expands full width so the schedule and breakdown are not squeezed side by side. Close with the × control or by clicking the backdrop.

The panel shows the due date in the header, an overall status pill (for example Paid or Overdue), a Total due figure with a progress bar when payments have started, and a Breakdown list grouped by charge category:

Section in breakdownWhat it includes
RentMonthly and prorated rent lines due on that date
Cleaning feeCleaning charges tied to the due date
Admin feeOne-time admin charges
Exit feeDeparture / exit charges when applicable
DepositSecurity deposit rows (including refund lines when present)
Extra ServicesPurchases from the Tenant Services Marketplace — lines with category: services or a linked marketplace service id on the scheduled charge
Other FeesPenalties, ad-hoc fees, and any non-standard charge types that are not marketplace services

Extra Services and Other Fees are separate sections so you can reconcile tenant marketplace purchases without mixing them with penalties or one-off operator charges. Nested lines under each section still show discount, impairment loss, and return of value adjustments when present (see Discounts and payment adjustments on Contract Values).

Deposit refund lines on the schedule​

When you record a deposit refund on the Deposit tab, Vivin adds matching deposit refund rows to the payment schedule (not only the ledger on Transactions). The same click also posts the fiscal reversal (credit note and/or return of value) on the deposit collection line:

UI signalMeaning
Green Refunded statusThe refund is processed — not Overdue / Pending, even when the due date is in the past and other charges share the same day.
Due date subtitle Deposit RefundCash return to the tenant — not a monthly rent label such as Oct 2025 payment.
Deposit column with a leading −Outgoing refund amount; nets against deposit collection on that due date.
Others (or fees) on the same due dateCharges settled from the deposit stay on the row as Fully paid; they do not inflate Total a second time (the refund line is already net of that settlement).
Teal −€… credit note / −€… return of valueFiscal reversal of the deposit collection on that due date (invoiced → credit note; not invoiced → return of value). Expand the row for Refund of security deposit.
Total for the rowSums the visible amount columns with refunds netted — other charges on the same due date reduce the deposit net instead of inflating Total incorrectly.
Breakdown → Deposit / Other FeesSame minus-prefixed deposit line plus any co-located fees when you expand the row; the panel status pill stays Refunded.
Refunded status when fees share the due date​

After Mark refunded, open Payment Plan and find the Deposit Refund due-date row:

  1. Confirm the status chip reads Refunded (green) — Vivin does not treat a completed deposit return as overdue money owed.
  2. Read Deposit (minus-prefixed net cash back) and any Others / fee columns that were settled from the deposit on the same day.
  3. Check Total equals the net deposit return — co-located paid fees appear in their columns and in Paid, but they are not added again on top of the refund.
  4. Click the row to open the due-date Breakdown panel: header status Refunded, Total due matches the schedule Total, and fee lines show Fully paid.

Booking detail — Payment Plan Deposit Refund row with green Refunded status and Others on the same due date

Booking detail — Payment Plan Deposit Refund breakdown panel showing Refunded status and Total due

Walkthrough: open Payment Plan on an ended booking → find the Deposit Refund row with Refunded status → open the due-date breakdown.

Use this schedule view together with the Deposit tab payout breakdown and Finance → Transactions Deposit Refund card when reconciling check-out refunds against bank out-payments. Issue pending deposit credit notes from Finance — Issuing credit notes.

Booking detail — Payment plan row with Deposit Refund subtitle and minus-prefixed deposit amount

Business Rule

The payment schedule is automatically generated when a booking is created, based on the property's contract settings (payment frequency, confirmation payments, check-in payments). Changes to the property settings after booking creation do not affect existing payment schedules.

Contract Values tab​

The Contract Values tab is the line-item ledger for one booking: every scheduled charge (rent, deposit, admin fee, cleaning fee, tenant Services, and other types) with status, due date, amount after discounts, paid, and invoiced totals. Use it when you need to adjust a charge, apply or remove discounts, or reconcile what the tenant owes before you open Payment plan (schedule view) or Transactions (money received).

Contract Values — category summary cards and line-item table for one booking

Category summary and filters​

At the top, category cards roll up the booking by charge type (labels follow your account’s fee naming when customized):

CardTypical types
AllEvery line on the booking
RentMonthly and prorated rent lines
DepositSecurity deposit and related deposit rows
Admin feeOne-time admin charges
Cleaning feeMonthly or one-time cleaning lines (see Cleaning Fees requirement on Contract Info)
OtherPenalties, services, and non-standard types

Each card shows the net total for that category and clickable sub-lines:

  • Paid — lines with allocation (money applied)
  • Debt — overdue or unpaid balance (red)
  • Scheduled — future charges not yet due
  • Partial lines — lines with some payment but remaining balance

Click a category pill to filter the table; click paid, debt, scheduled, or partial on a card to combine category + status filters. Click again to clear.

Line table​

ColumnMeaning
ItemCharge label (respects custom fee names). Discount and return of value counts appear as small badges when present.
StatusPaid, Partial, Debt (overdue unpaid), or Scheduled (future).
PeriodContract month for recurring rent/cleaning rows when applicable.
Due dateWhen the charge is due; overdue lines show Xd overdue under the date.
AmountNet amount after discounts. When a discount reduced the line, Original €… may show for audit.
PaidAllocated incoming payment total on this line.
InvoicedDraft + issued invoice totals tied to the line.
ActionsRow tools (see below), gated by permissions.

Rows sort by due date (earliest first). Deep links from Finance, notifications, or the internal VIVIN Auditor can highlight a specific payment id in the table — open /bookings/list/<bookingId>?tab=payment-plan&paymentId=<paymentUuid> (see Deep Links — Bookings. Lines flagged after a contract-date change show the amber warning icon described under Changing contract dates and rent on Contract Info (bookings-detail-contract-values-contract-date-warning.png).

Booking detail — Payment Plan with Auditor paymentId deep-link row highlight

Pending utility allocations​

When a utility overage is waiting for your review, it appears as an extra Pending row on this table — approve or reject it without leaving the booking. The same queue still lives on Utilities → Allocations when you need bulk Approve selected.

Pending rows are not scheduled charges yet. They do not change category totals, Paid / Debt / Scheduled counts, Payment Plan, or the booking balance until you Approve. After approval, the charge lands under Other as Extra bills value from July of 2026 (month and year of the bill).

Where they show

  • All and Other (the category the approved charge will join). The Other card shows an amber N pending approval note whenever any row is waiting.
  • Hidden when you click Rent, Deposit, a fee card, or a status drill-down (Paid, Debt, Scheduled, Partial) — those views answer money questions an unapproved estimate is not part of. Click All to bring them back.

The portfolio table on Finance → Contract Values does not list these pending rows. Open the booking (or the tenant sidebar) to act on them.

What a row looks like

ColumnMeaning
ItemExtra bills value from July of 2026 (example). Hover for Consumed, Included in rent, and To approve (or a short “calculated from utility bills” line when there is no allowance).
StatusPending
PeriodBilling month (short form, same as other Period cells)
AmountThe overage to approve
ActionsApprove allocation (one click) and Reject allocation (asks you to confirm)

Approve allocation posts the tenant charge and refreshes Contract Values, Payment Plan, and the booking balance. Reject allocation removes the row from this table after you confirm — you can still find it under Utilities → Allocations. Undo a mistaken approval from Allocations → Approved, not from this tab.

You need Approve payments (the same grant as Allocations). Approve stays disabled when the security deposit is already refunded — hover for the explanation, then Reject or record a manual charge if money is still owed. See Utilities — Deposit already refunded.

On Tenants → Contract Values, pending rows from every linked stay appear together, with the same Booking label as the charge lines. The All bookings filter narrows both.

See FAQ — Can I approve a utility overage from the booking? and Glossary — Pending utility allocations.

Row actions (permissions)​

ActionPermissionNotes
Edit amountbookings.edit_itemsOne entry: set what the line should be. Vivin routes a plain amount change, Keep as credit vs Return to tenant, or a credit note — see Edit amount. Deposit lines stay disabled.
Edit due datebookings.change_payment_due_dateMoves the due date when the line is scheduled or in debt and the due date is not system-managed (see below). Check reporting month impact.
Discountbookings.add_discountsPer-line discount — fixed € or % of net, with a reason. Remove existing discounts from the same modal.
Credit notebookings.add_credit_noteCount badge on the line opens Manage credit notes (history, issue later from Finance). Creating a new credit note happens from Edit amount when the freed cash is already invoiced.
Delete linebookings.edit_itemsRemoves a scheduled payment when allowed (confirmation modal; invoiced lines may be blocked).
Return of valuebookings.add_return_of_valueCount badge on the line opens Manage return of value (history). Creating a new return happens from Edit amount → Return to tenant when the freed cash was paid and never invoiced.
Approve allocation / Reject allocationApprove payments (finance.approve_payments)On pending utility rows only — not on scheduled charge lines. Same grant as Utilities → Allocations.

Booking-scoped discount (toolbar on the booking header when your role has bookings.add_discounts): apply a percentage or fixed total discount across the whole booking or contract values only, with a required reason. The API distributes the discount across eligible lines; paid and heavily invoiced lines may limit what can be applied.

System-managed due dates

Some scheduled lines keep a due date computed by Vivin — the calendar action is disabled and the tooltip explains that manual edits are not allowed:

Line typeWhy the due date is locked
Move-in / check-in requirementTied to the booking’s move-in payment rules (moveInRequirement).
Booking confirmation requirementTied to confirmation-payment timing (bookingConfirmationRequirement).
Split rentParent or child lines from a rent split (parentPaymentId / splittedFromPaymentId) — changing one side would break the split schedule.

For all other scheduled or in debt lines, operators with bookings.change_payment_due_date can open Edit Payment Due Date from the row calendar action or row menu. The same modal and permission apply on Finance → Contract Values at portfolio scope.

Finance Contract Values — Edit Payment Due Date modal with calendar picker (same control from booking Contract Values)

Booking Contract Values — disabled calendar icon on a move-in rent line (system-managed due date)

Invoicing and deletes

Lines with issued or draft invoices may block deletes or aggressive discounts. Resolve or revert invoice state in Finance first when the product returns an error.

Edit amount routes the reversal​

On the booking Contract Values tab, the pencil Edit amount is the one place you set what a charge line should be. Type the new amount — Paid, Invoiced, and New net update as you type, and This action will have the following effects: lists what Save will do, in order. When New net is above Paid, that list includes Leave outstanding so you do not subtract the tiles yourself.

When New net is at or above Paid…What Save does
New net is above what is already paidSets the line to the new amount, and the effects list includes Leave €X outstanding on this line (X is New net minus Paid).
New net equals PaidSets the line to the new amount (no outstanding line).
When you lower the line below what is already paid…What Save does
Cash is paid and not invoicedChoose Keep as credit (lower the line and re-apply the freed cash to the next dues) or Return to tenant (record a return of value and leave the line amount unchanged). Neither choice pays the tenant — transfer separately.
Cash is fully invoiced (or marked manual)Issues a credit note for the freed amount, frees that cash, and re-applies it to the next dues. Register the document later from Finance → Transactions. No cash moves.
Line is partly invoiced (invoiced cash mixed with the rest)Save stays blocked — one edit cannot split across a credit note and a return.

Deposit lines keep Edit amount disabled — deposit returns go through Mark refunded.

The Finance → Contract Values portfolio table still blocks editing paid or invoiced lines there. Use Open booking to reach this editor.

Booking Contract Values — Edit Rent with Keep as credit selected, Paid / Invoiced / New net, and the effects list

Booking Contract Values — Edit Rent with Return to tenant selected; effects include leave the line amount unchanged and move no money

Booking Contract Values — Edit Rent on a fully invoiced line; effects include Issue a credit note and move no money

Walkthrough: on a paid, not-invoiced rent line, type a lower amount in Edit amount, switch Keep as credit and Return to tenant, then Cancel without saving.
Return of value

Return of value corrects paid, not-invoiced cash on a Contract Values line without deleting the underlying payment. Choose it from Edit amount → Return to tenant (bookings.add_return_of_value — Admin and Finance by default). Use only when your organization’s policy allows it; verify Payment plan and the negative Return of Value row on Transactions afterward. For money already on a provider document, Edit amount issues a credit note instead.

See also Payment Allocation for how scheduled lines relate to incoming payments, and Finance → Contract Values for the portfolio-wide list — including invoice filter pills that find nested return of value and credit note rows (finance-contract-values-invoice-filter-pills-flow.mp4).

Leave outstanding on Edit amount​

The outstanding line pairs with Edit amount (the same modal’s Paid, Invoiced, and New net tiles). Symptom: FAQ — What does Leave outstanding on this line mean?. Term: Glossary — Leave outstanding (Edit amount).

When New net is higher than Paid, This action will have the following effects: includes Leave €X outstanding on this line. X is New net minus Paid — you do not subtract the three tiles yourself. That line is a standing balance the booking will keep after Save, not a cash movement and not a credit note.

Set this line to … still names the amount you typed. Leave outstanding appears only when that amount is above what is already paid. When New net equals Paid, only the set-amount line appears.

Use Cancel if you were only checking the figure. Save writes the new line amount; collect the remainder through Payment Plan or Transactions as usual.

The Finance → Contract Values portfolio table does not run this editor — use Open booking. Distinct from Keep as credit / Return to tenant (those appear when you lower a paid line) and from the invoiced floor (that path is about lowering exported rent).

Booking Contract Values — Edit Rent with New net above Paid; effects include Leave outstanding on this line

Walkthrough: on Contract Values → Edit amount, raise New net above Paid, read Leave €X outstanding on this line, then Cancel without saving.

See FAQ — What does Leave outstanding on this line mean? and Glossary — Leave outstanding (Edit amount).

Manage return of value on Contract Values​

When a Contract Values line already has a return of value, operators with bookings.add_return_of_value see a count badge on the item (return-arrow). Click it to open Manage return of value for history and fiscal follow-up. Create a new return from Edit amount → Return to tenant — deposit lines stay on Mark refunded.

Booking Contract Values — Return of value row action among line tools

When the modal opens — Vivin opens Manage return of value when the line still has something useful to show:

  • Mixed or draft lines — at least one allocation is still returnable, or a draft invoice is present. Draft parents stay visible but disabled with Draft invoice — issue it on the provider, then use a credit note, so operators learn why that cash is not selectable yet.
  • Fully invoiced lines — every positive allocation is already invoiced or manual. The row action stays disabled with tooltip All cash on this line is on an invoice. Use a credit note instead. — Vivin does not open an empty dialog when Credit note sits beside the button.

Booking Contract Values — Return of value disabled on a fully invoiced Paid rent line with All cash on this line is on an invoice tooltip

Walkthrough: on Contract Values, a fully invoiced Paid rent line keeps Return of value disabled — hover shows All cash on this line is on an invoice. Use a credit note instead. Use the neighbouring Credit note action instead of opening an empty return dialog.

Inside Manage return of value:

  1. Review any existing returns on the line (amount + reason; Remove when your role allows).
  2. Under Add return of value, pick the cash allocation to reverse. Vivin lists every positive allocation on the line:
  • Not invoiced — available to return — selectable; amount capped by remaining cash on that parent plus line headroom.
  • Invoiced… — use a credit note / Draft invoice — issue it on the provider, then use a credit note — visible but disabled. Protected statuses are invoiced, manual, and draft (a draft document still exists and later promotes to invoiced).
  • Already fully returned — no remaining headroom on that parent.
  1. Enter an Amount (see Available: €…) and optional Reason, then Apply. Vivin creates a return-of-value adjustment plus a paired negative allocation in Finance. Open Transactions on the same booking — you should see one negative Return of Value row dated the day you recorded it (for example Returned on Cleaning Fee).

On a line that only has protected parents and still opens (because a draft remains), the select can show No allocation available with the helper that return of value applies only to money that is not on an invoice — issue the draft, then use Credit note.

Booking Contract Values — Manage return of value with invoiced allocations disabled (use a credit note)

Booking Contract Values — Manage return of value select open with Draft invoice caption and Invoiced caption both disabled

Booking Contract Values — Manage return of value with a not-invoiced allocation available to return

Walkthrough: open Contract Values, choose Return of value on a mixed line (protected allocations disabled in the select), then on a pending line (available to return). Fully invoiced lines stay closed — see the disabled-tooltip walkthrough above. Escape only — no Apply on the shared docs account.
Walkthrough: open Manage return of value on a rent line and expand the allocation select — disabled Draft invoice — issue it on the provider, then use a credit note next to an invoiced sibling. Escape only — no Apply.

Manage credit notes on Contract Values​

When a Contract Values line already has a credit note, operators with bookings.add_credit_note see a count badge on the item. Click it to open Manage credit notes (status Pending / Invoiced / Manual). Create a new credit note from Edit amount when you lower a fully invoiced line.

Booking Contract Values — Credit note row action among line tools

Credit note opens Manage credit notes:

  1. Review any existing credit notes on the line (status Pending / Invoiced / Manual — lifecycle is issued from Finance, not from this modal).
  2. Under Add credit note, pick the invoiced allocation to reverse, enter an Amount (capped by remaining headroom — Available: €…), and an optional Reason.
  3. Confirm Apply. Vivin creates a pending credit-note reversal; Finance then filters Not issued credit note and uses Issue credit notes (N) or transaction-detail Issue credit note to provider — see Finance — Issuing credit notes.

Booking Contract Values — Manage credit notes modal (Add credit note form)

Walkthrough: open Contract Values, choose Credit note on an invoiced rent line, review Manage credit notes (allocation + Available €), then Close without Apply. Issue the pending reversal from Finance → Transactions (finance-issue-credit-notes-flow.mp4).
Credit note vs return of value

Credit note reverses invoiced money. Return of value reverses paid, not-invoiced allocations only — protected parents stay disabled in Manage return of value. Discounts are blocked on a line that already has a credit note or return of value. See Manage return of value.

Discounts and payment adjustments​

Contract Values is where operators change what the tenant owes on each scheduled line. Adjustments reduce the line’s net amount (what allocations compare against) without rewriting the original amount column used for audit. Glossary: Discount (booking), Credit note (payment reject/revert), Return of value, Impairment loss.

AdjustmentWhere you add itPermission / notes
Line discountRow action Discounts (percent icon) on a non-deposit linebookings.add_discounts — fixed € or % on that line only; optional Reason; deposits cannot be discounted
Booking-scoped discountPill Apply booking discount in the tab toolbar (next to + Transaction)Same permission — percentage or fixed total across the whole booking or selected scope; requires a reason
Credit noteEdit amount on a fully invoiced line, or the count badge for historybookings.add_credit_note — reverses invoiced cash; issue from Finance → Transactions afterward (Manage credit notes)
Return of valueEdit amount → Return to tenant on paid, not-invoiced cash, or the count badge for historybookings.add_return_of_value — credits not-invoiced cash only; fully invoiced / manual cash uses a credit note instead (Edit amount)
Impairment lossApplied in product data / integrations (not a separate row button in this tab)Shows on Payment plan and in transaction Type when recorded

Existing adjustments on a line appear in the Discounts modal list (with Delete when your role allows). Apply Discount / Apply booking discount persist only after you confirm.

Booking detail — Contract Values tab, Apply booking discount modal (percentage, scope, reason)

Row Discounts (percent icon) opens Manage Discounts for a single scheduled line — fixed € or %, optional Reason, and any existing line-level adjustments:

Booking detail — Contract Values tab, Manage Discounts modal on a charge line

On Payment plan, click a due-date row to open the breakdown panel. Nested lines under each charge show discount, impairment loss, and return of value adjustments (amount and reason) so you can reconcile net due dates with Contract Values:

Booking detail — Payment plan tab, due-date breakdown with discount adjustment lines under a charge

Walkthrough: Contract Values line Discounts and Apply booking discount, then Payment plan due-date Breakdown with adjustment lines.

On the Tenant Portal Payments → Payment Timeline, a Paid card whose Total is below the original scheduled amount shows that original struck through — Discounted installment.

For allocation rules and floor/invoicing limits, see Payment allocation. For a portfolio-wide table of every discounted contract value (KPI cards, export, row drill-down), use Audit — Discounts tab (/audit/discounts).

Transactions tab​

The Transactions tab shows incoming payments received from the tenant — what has actually been paid, as opposed to what is scheduled — plus return of value rows so money handed back is visible next to money received.

Transactions Tab

To record a manual in-payment while you are on this tab, click + Transaction in the tab strip (next to the sidebar pills) — the same + Transaction control also appears on Payment Plan / Contract Values. That opens the Add Payment modal — the modal title uses Add Payment even though the tab action is labeled + Transaction. Your role must allow recording payments; otherwise the control stays disabled. Airbnb channel-manager stays keep + Transaction locked (the payout registers automatically). Booking.com channel-manager stays keep it enabled so you can record what you collect — one rent line due at check-in. Fill Payment Date, Payment Value, Type, and optional Description (visible to the tenant) (or the internal-description label when portal descriptions are hidden), then Add or Cancel.

Booking detail — Add Payment modal (Payment Date, Payment Value, Type, Description)

Card (recorded manually)​

Pair with other Bookings module guide sections

When a tenant pays at a desk terminal, POS, or any card machine that is not VIVIN Tenant Portal checkout, open + Transaction and set Type to Credit Card — that is the desk/POS option on this modal (the habit this guide calls Card (recorded manually)).

On this modal, Type is only:

Type (English UI)Use it for
TransferBank transfer you record yourself
CashCash handed over at the desk
Credit CardA card tap on your terminal — not VIVIN's card rail

Vivin does not offer Credit card (VIVIN) here. That label is the automated Tenant Portal card rail under System Transactions. A desk tap recorded on that rail would look like money VIVIN collected, and it would enter card payouts.

Add Payment — Type open with Cash, Credit Card, and Transfer (no Credit card (VIVIN))

Add Payment — Type menu listing Cash, Credit Card, and Transfer

Short walkthrough: open Add Payment from Transactions, open Type to read Cash / Credit Card / Transfer, then Cancel without Add.

That Credit Card Type choice is a Manual receipt, same bucket as Transfer and Cash:

  • Booking Transactions groups it under Manual (amber), not System.
  • The type column may read Manual Card.
  • Finance → Transactions lists it as Card (manual) under Manual Transactions.
  • After Delete Booking, it hides with other manual rows. Automated Credit card (VIVIN) rows stay visible.

The row stays pending until someone with Approve payments confirms it — same habit as a typed bank transfer. While it is still pending, the pencil Edit payment amount can correct the €. After the row is confirmed on the ledger, tenants see Manual Card (plain text, no logo) on Payments → Transaction History — distinct from portal Credit Card checkout rows.

Do not Add a payment just to preview the Type list — open Type, read the three options, then Cancel.

See FAQ — When should I use Card (recorded manually)?, Glossary — Card (recorded manually), and Tenant Portal — Manual Card type label.

Each transaction entry shows:

  • Payment date (when the money was received, or when a return was recorded)
  • Amount received (negative on a return)
  • Payment method
  • Which scheduled payment(s) it was applied to (allocation)
  • Notes (if any)

The toolbar groups rows into All, System (vIBAN, card, platform payouts), and Manual (operator-recorded transfers). Return of Value rows sit in All and Manual (they are not a system rail) and subtract from those card totals. Use the Type column to spot Adjustment rows (discount-driven or automatic ledger entries) and Return of Value rows (cash handed back on a charge line). Pending system automatic adjustment in-payments show Approve and Reject actions until you confirm how the amount should apply — rejecting leaves the booking balance unchanged for that entry. After the row is on the ledger, tenants see Automatic Adjustment (plain text, no logo) on Payments → Transaction History. After you Mark refunded an overpayment, tenants see Overpayment Return (plain text, no logo) on the same table — distinct from the Deposit Refund timeline card. After Cancel booking → With refund, tenants see Cancelation With Refund on that table.

Return of value rows on Transactions​

When you record a return of value on Contract Values — or Vivin posts one from Mark refunded on paid, not-invoiced deposit cash — the booking Transactions tab lists one negative row per return.

The row is not a receipt you typed on this tab. It is the same adjustment you already made on the charge line, shown here so All and Manual match what the tenant actually paid. Without it, those cards would still add up to the original in-payments.

ColumnWhat you see
TypeReturn of Value
DescriptionReturned on Cleaning Fee, Returned on Rent, and similar — the charge the money came off, with a readable name
DateThe day you recorded the return — not the original charge due date
AmountNegative, for example -€ 5
StatusConfirmed

A €575 transfer plus a €75 return makes the All and Manual cards read € 500. The row does not appear under System.

Do not Approve, Reject, Revert, Edit amount, or Assign to other booking on this row — those actions stay off because there is no in-payment behind it. Change or remove the return from Manage return of value on Contract Values. Do not add a return from + Transaction; create it from Edit amount → Return to tenant when the cash was paid and never invoiced.

Credit notes do not appear as these rows — they stay nested on Contract Values and issue from Finance → Transactions.

Finance → Transactions is the portfolio ledger of receipts and does not list return-of-value rows. For a portfolio list of charge lines that have a nested return, use Finance → Contract Values — Return of Value. The insights bar Return of value card (when the booking has at least one return) is the same total as these rows.

See FAQ — Why does Transactions show a negative Return of Value row? and Glossary — Return of value.

Row actions on in-payment rows​

Each in-payment row exposes trailing icon actions. Return of Value rows keep every action off — see Return of value rows. For receipts, availability depends on payment status, type, allocation invoice state, and role permissions (finance.approve_payments for approve / reject / revert / Edit payment amount; finance.assign_payments_to_other_bookings for reassignment — see Users and roles > Role Permissions).

ActionWhen enabledWhat it does
Edit payment amount (pencil)Status is pending, your role includes Approve payments, and the type is a manual in-payment (not vIBAN or card)Corrects the received € before you Approve. Tooltip Edit amount. Booking sidebar opens Edit Payment Amount. See Edit payment amount.
Approve payment (check)Status is pending or processingConfirms the in-payment and applies allocations per the payment plan.
Reject payment (×)Same pending statesRemoves the payment from the booking and related financial records. The confirmation modal includes a red banner: Warning: this may require a credit note and invoice follow-up. Body copy reminds you to issue a credit note and include it in the next invoice when accounting already recorded the charge.
Revert payment (↩)Status is confirmed or rejectedRolls the payment back so allocations and booking balances update. The confirmation modal shows a blue info banner: Info: this may require invoice or credit note updates afterwards.
Assign to other booking (↔)No allocation on the row is invoicedMoves the whole in-payment to another booking in the same Vivin account — the target may belong to a different tenant. See Assign a payment to another booking.

Booking detail Transactions — Approve payment confirmation before confirming allocations

Booking detail Transactions — Reject payment confirmation with red credit-note warning banner

Booking detail Transactions — Revert payment confirmation with blue invoice follow-up info banner

Walkthrough: open Approve payment, Reject Payment, and Revert payment on booking Transactions (each modal is cancelled without saving).

Edit payment amount​

When a pending manual receipt has the wrong € — a typo, or the bank transfer differs from what you typed — use the pencil Edit amount on the row. Fix the figure, then Approve payment. Do not Approve the wrong amount first.

On booking Transactions, the pencil opens Edit Payment Amount with the line Update the amount received for this transaction. Type the amount, then Save or Cancel. Negative amounts are rejected. The tenant sidebar Transactions tab uses the same pencil; that modal title is Edit amount.

This is not Contract Values → Edit amount, which changes a scheduled charge line (rent, fee, or similar) — not the receipt.

Use Edit payment amount when…Use something else when…
The receipt is real and still pending, but the € is wrongDuplicate or wrong booking — Reject payment while still pending (Reject or revert)
You have Approve payments and the type is a bank transfer / cash / Card (recorded manually)vIBAN or Credit card (VIVIN) — those amounts stay locked to the payment rail
You need to correct the figure before allocations applyThe row is already approved — Revert payment, then record or approve the correct receipt

The new amount cannot sit below what Finance has already invoiced on that receipt. On Finance → Transactions the same pencil edits the Amount cell inline (Enter or click away to save; Escape to cancel).

Transactions Tab

Finance Transactions — All card with amber Pending chip active and filtered ledger rows

Delete payment is not available on the booking sidebar — use Finance → Transactions when you need to remove an eligible manual in-payment from the ledger (see Finance > Transactions — Delete payment).

If a tenant pays more than the scheduled amount, the system records the overpayment and carries it as a credit for future charges:

Overpayment Example

Assign a payment to another booking​

When a bank transfer or manual in-payment was matched to the wrong booking, operators with Assign payments to other bookings (finance.assign_payments_to_other_bookings) can move it without re-entering the amount.

The target booking does not have to belong to the same tenant — any booking in the same Vivin account is a valid destination. This covers the everyday case where a tenant pays for a family member: the bank transfer lands on the payer's booking, and the receipt has to move to the relative's booking, which sits under a different tenant profile.

On each eligible in-payment row, use the Assign to other booking control (arrows icon) in the row actions. The control is disabled when any allocation on that payment is already invoiced, or when your role lacks the permission. The whole in-payment moves — partial reassignment (splitting one receipt across two bookings) is not supported.

Booking detail Transactions tab — Assign to other booking modal with target booking selector

The modal explains that the payment leaves the current booking and is reapplied to the target booking. Pick the destination from Select target booking — each option shows the tenant name over property — unit · contract dates · status (and booking code when present) so you can tell similar reservations apart — then confirm Assign to other booking. Archived bookings are not offered as targets. After success, refresh Payment Plan on both bookings if allocations look stale.

Booking detail — Assign destination picker open with property — unit · contract dates · status identity rows

Check the booking code before confirming

Because the target can belong to a different tenant, the move shifts the receipt onto another tenant's ledger. Confirm the booking code and property / unit in the picker before you assign.

The same action is available on Finance → Transactions for ledger-wide triage — see Finance > Transactions (finance-transactions-assign-picker-identity.png, finance-assign-picker-identity-flow.mp4).

Deposit tab​

The Deposit tab tracks the security deposit for this booking: how much was collected, how outstanding charges affect the return, refund status, and operator actions (Mark refunded, Transfer, Revert refund). Refund actions require the bookings.refund permission.

The card header shows Expected Refund Pending before a refund is recorded and Refund Completed afterward. Portfolio-wide triage uses the same deposit lifecycle on Finance > Deposits — Balance, Est. Refund, and status summary cards there align with the figures on this tab. After you confirm an action here, that Finance queue updates on its own — see Finance Deposits updates from this tab.

Before refund (planning card)​

Row (English UI)Meaning
Initial DepositContract deposit with € collected / € configured and an optional collection badge (see below).
Current AdjustmentsShown when the booking payment-plan balance is positive (tenant has overpaid relative to amounts due to date). Adds to the refundable total.
Current DeductionsShown when the balance is negative (tenant still owes on scheduled charges). Reduces what can be returned from the deposit.
Total to refundmax(0, effective deposit collected + booking balance) — the cash payout Vivin estimates before you click Mark refunded. Uses payment-plan balance (total paid − total due to date), not overdue-only debt, so payable-but-not-yet-overdue lines are included consistently with the Payment Plan tab.
Cash back to tenantReplaces Total to refund when outstanding charges exceed the collected deposit: the amber helper explains how much is still owed after the deposit is fully offset and that €0 will be paid out.

Effective deposit collected is capped at the configured deposit amount and at what was actually allocated to deposit lines — refund math never assumes a full deposit when only part was paid.

Initial Deposit badges (when deposit > 0 and not yet refunded):

Badge (English UI)Meaning
Paid (green)Collected deposit equals or exceeds the configured amount.
Partially paid (amber)Some deposit was collected but Paid < Amount; a remaining helper shows the shortfall.
Unpaid (red)No deposit payment allocated yet. The Deposit not paid — refund unavailable helper appears only when there is also no payment-plan overpayment to return.

Ready To Refund — Toggle in the card header (pre-refund only; hidden while the deposit is Disputed) marks the booking as operationally ready for finance to process the bank transfer. It does not move money by itself. When Require "Ready to Refund" step is On at account level, this toggle is part of the required hand-off before Mark refunded — finance and the Bookings list can filter Other filters → Deposit status → Ready to refund. After you flip it, All bookings already leaves Fully paid (and joins Ready to refund when that filter is on) — see Deposit status filter updates while you work. See Finance — Deposit status filter.

Deposit lifecycle pill — When the account tracks payment-driven lifecycle, a small badge beside Security Deposit summarizes collection state: Not Paid, Partial Paid, Fully Paid, Ready to Refund, Disputed, or Refunded. Bookings with no configured deposit show No deposit instead (not a Deposit status filter value on Finance → Deposits). The pill is display-only; use the actions below for refunds and disputes. See Glossary — Deposit lifecycle status for how each state maps to refund and dispute actions.

Deposit disputes — When Enable deposit disputes is On and your role includes bookings.dispute, a Fully Paid (pre-refund) deposit can be flagged while you investigate damage claims or tenant pushback:

  1. Click Mark as Disputed (outline control beside Mark refunded). The card title becomes Refund Disputed, the lifecycle pill shows Disputed, and an amber warning explains that Mark refunded is blocked.
  2. Ready To Refund hides until the dispute is cleared.
  3. When the case is settled, click Resolve Dispute. Vivin returns the deposit to the normal pre-refund flow (Fully Paid or Ready to Refund, depending on account settings and the per-booking toggle).

Mark refunded stays disabled with tooltip Resolve the dispute before refunding. while Disputed. The same Mark disputed / Resolve dispute actions appear on Finance → Deposits row chips when the booking is in the active date range — clear or widen the Deposits toolbar filter when the move-out is older than the default three-month window.

Booking detail — Deposit tab with Mark as Disputed beside Mark refunded on a fully collected deposit

Booking detail — Deposit tab Refund Disputed with dispute warning and Resolve Dispute (refund blocked)

Walkthrough: flag a Fully Paid deposit as disputed, review the blocked refund state, check Finance → Deposits for the matching row chip, then resolve the dispute (demo restores the pre-dispute state).

Booking detail — Deposit tab Ready To Refund toggle in the security deposit card header (pre-refund)

Mark refunded — Records that you completed the bank return outside Vivin. The teal button always reads Mark refunded (it no longer shows a live Refund €… amount on the label — use Total to refund on the card for the cash estimate). The confirmation modal asks Mark this security deposit as refunded? and shows an info callout: This does not actually send any money to the tenant. Vivin updates the ledger and deposit status only; the actual bank transfer still happens outside the platform (see Managing a Check-out).

Booking detail — Deposit tab Mark refunded button on Expected Refund card with Ready To Refund on

Booking detail — Refund Security Deposit confirm modal with no-money-sent callout

Walkthrough: open a ready-to-refund Deposit tab → Mark refunded → read the confirm modal callout that Vivin does not send money (demo cancels without confirming).

Finance Deposits updates from this tab​

When you finish a refund or dispute action on this tab, Finance → Deposits already shows the new state. You do not reload the tab or change its filters.

That applies after you confirm:

Action on this tabWhat Finance → Deposits does
Mark refundedThe row leaves Ready to refund (and matching Timeline cards). Refunded counts go up.
Revert refundThe row returns to the pre-refund queue (for example Ready to refund).
Mark as Disputed / Resolve DisputeThe row moves between Fully paid and Disputed.
TransferThe source row follows the refunded-and-transferred state; finance no longer queues it as an open return.

If Finance → Deposits is already open, close the booking sidebar (or switch back to the tab): the table and the Deposit lifecycle status cards match what you just confirmed. Distinct from the date range — an older move-out can still sit outside the default three-month window until you clear or widen it.

See FAQ — Does Mark refunded on the booking leave the row on Finance Deposits? and Managing a Check-out — Step 5.

Refund an overpayment when there is no deposit​

Mark refunded is not limited to collected security deposits. When the payment-plan balance is a tenant overpayment (the Current Adjustments row), Vivin also offers the button so you can record the bank return of that surplus:

Booking stateWhat you see on DepositWhat Mark refunded returns
No deposit configured (Initial Deposit shows —, pill No deposit)Current Adjustments equals Total to refundThe overpayment only (ledger type overpayment return)
Deposit Unpaid, plus a payment-plan overpaymentRed Unpaid on Initial Deposit; the refund unavailable helper is hidden; Total to refund is the overpayment (unpaid deposit is not added)The overpayment only — collection of the configured deposit is unchanged
Deposit Paid, plus overpaymentUsual collected-deposit card plus Current AdjustmentsDeposit cash and overpayment, as before

Total to refund follows the payment-plan balance (PAID TO DATE minus DUE TO DATE), not the blue Overpayment chip on the insights bar. Those two figures can differ when some paid lines are not yet due — trust Current Adjustments / Total to refund for the bank amount.

Booking detail — Deposit tab with No deposit pill, Initial Deposit dash, Current Adjustments, and Mark refunded

Booking detail — Deposit tab Unpaid €500 deposit with Current Adjustments overpayment and Mark refunded still offered

Booking detail — Refund Security Deposit confirm modal on a no-deposit overpayment (Vivin does not send money)

Walkthrough: open an ended booking with No deposit and a payment-plan overpayment → Mark refunded → read the confirm callout (demo cancels without confirming).

After you confirm on a no-deposit booking, the Refund Completed card lists From overpayment balance (and omits From security deposit, which would invent a hold that never existed). Booking history records Tenant overpayment refunded instead of Security deposit refunded. Finance → Deposits does not list bookings with no configured deposit — stay on this tab (or Other filters → Balance → Overpayment on the Bookings list) to find them.

Pair with check-out

The same Mark refunded permission and no-money-sent confirm apply as for a collected deposit — see Managing a Check-out — Step 5 and FAQ — Refund overpayment with no deposit. Tenants then see Overpayment Return on Payments → Transaction History.

Fiscal reversal when you Mark refunded​

Mark refunded still posts a cash ledger line (and may apply the deposit to outstanding charges). For a collected deposit, that cash line is Deposit Refund; for a no-deposit overpayment it is an overpayment return and there is no deposit collection to reverse fiscally. Alongside a collected-deposit refund, Vivin also reverses the deposit fiscally so invoicing stays consistent with the money you return:

Deposit cash that was…What Vivin creates on the deposit lineWhat finance does next
Invoiced, manual, or on a draft documentA credit note (pending) with reason Refund of security depositFilter Finance → Transactions → Not issued credit note and Issue credit notes (or Set manual when accounting issues the nota de crédito outside Vivin)
Paid but not invoicedA return of value adjustment with the same refund reasonNo provider document — the return of value already corrects the paid, not-invoiced allocation
Mixed (part invoiced, part not)Both — a credit note for the invoiced slice and a return of value for the not-invoiced sliceIssue only the pending credit-note slice from Finance

Installment or multi-allocation deposits follow the same rule per cash allocation. After refund, open Payment plan: due-date rows show a teal −€… credit note and/or −€… return of value subtitle on the deposit column, plus the usual Deposit Refund out-payment row. On Contract Values, the deposit line keeps a credit-note / return-of-value badge and shows the original amount struck through once the line is fully reversed.

Booking Payment Plan — deposit column with −€ credit note after Mark refunded

Booking Payment Plan breakdown — Deposit line with Refund of security deposit after credit note

Booking Payment Plan — deposit column with −€ return of value after Mark refunded

Booking Contract Values — Deposit line after refund with credit-note badge and original amount struck through

Booking Contract Values — Deposit line after refund with return-of-value badge

Finance Transactions — Deposit Refund ledger row after Mark refunded

When the deposit slice was invoiced (or manual / on a draft), Finance also queues the pending credit note on the parent deposit in-payment — filter Not issued credit note to find that receipt, then open it to issue (or Set manual). The outbound Deposit Refund row above is the cash return; the credit-note work stays on the original collection.

Finance Transactions — Not issued credit note filter showing the parent deposit in-payment after Mark refunded

Finance transaction detail — parent in-payment with pending Deposit Credit note after Mark refunded

Walkthrough: after Mark refunded, open Finance → Transactions → Not issued credit note, find the parent deposit receipt, and review the pending Deposit credit-note allocation.
Walkthrough: after Mark refunded, review the Payment Plan credit-note subtitle and breakdown, the Contract Values deposit line, the Deposit tab Refund Completed card, then the Finance Deposit Refund ledger row.
Deposit line actions stay on the Deposit tab

On Contract Values, Edit amount stays disabled on the deposit line — deposit returns go through Mark refunded, not a line edit. Use Edit amount on rent and fee lines as usual; see Edit amount.

Booking Contract Values — Deposit row actions with Return of value disabled after the deposit refund path

Hostkit shared or partial deposit invoices

When your invoicing provider is Hostkit and the deposit sits on an invoice that cannot be reversed on its own (shared with other charges, or only partly paid), Vivin blocks the whole refund before writing anything and asks you to reverse that invoice in Hostkit first, then run Mark refunded again. InvoiceXpress allows partial credit notes on the deposit slice.

After refund (ledger card)​

When Refund Completed is shown, the planning rows are replaced by a payout breakdown from recorded transactions:

Line (English UI)Meaning
From security depositCash returned from deposit-related ledger lines. Hidden when the booking had no configured deposit and none was paid out.
From overpayment balanceAdditional cash when overpayment returns were part of the payout — the only payout row on a no-deposit refund.
Total refundedSum of bank payouts to the tenant.

When the deposit was applied to charges with no bank transfer, the post-refund card shows From security deposit / Total refunded as €0, a short line that the deposit was closed out with no payment to the tenant, and an amber No bank transfer callout. The callout states how much of the security deposit offset outstanding charges and that the tenant received €0 cash (or, when charges still exceed the deposit, how much shortfall remains on the booking balance).

Booking detail — Deposit tab Refund Completed with €0 payout and amber No bank transfer callout

Walkthrough: open a refunded booking Deposit tab where the deposit offset charges — Total refunded is €0 and the amber No bank transfer callout explains the applied amount.

Transfer refund balance — After Refund Completed, use Transfer to move refundable credit to another booking for the same tenant (for example when the tenant rebooks and you want the prior deposit applied to the new stay):

  1. Click Transfer in the card header (requires bookings.refund).
  2. In Transfer Refund Balance, read the amber warning — the action creates a credit payment on the destination booking and the source refund becomes non-reversible.
  3. Pick the target reservation from Select a target booking (only other bookings for the same tenant appear). When the tenant has several stays in the same unit, each row shows property — unit · contract dates · status so you can tell them apart — the collapsed trigger repeats the dates after you select.
  4. Click Confirm Transfer.

Booking detail — Deposit tab Transfer Refund Balance modal with amber non-reversible warning and destination booking picker

Booking detail — Transfer destination picker open with property — unit · contract dates · status identity rows for the same tenant

Walkthrough: open a refunded booking Deposit tab → Transfer → review the amber warning and open the destination picker (contract dates disambiguate same-tenant rows; do not confirm in production unless you intend to move the balance).

Revert refund — Reverts the refund record when your process allows and no transfer was logged (requires bookings.refund). The outline Revert refund control sits beside Transfer while the card shows Refund Completed. The confirmation modal asks Revert this deposit refund? and shows an info callout: This does not actually move any money. — Vivin only clears the refunded status, removes the cash Deposit Refund line, and deletes any still-Pending deposit credit notes / return-of-value adjustments created for the refund; bank movements still happen outside the platform. Once a deposit credit note has been issued to your invoicing provider, Revert refund is blocked — keep the refund final and correct accounting outside Vivin if needed. After a successful Transfer, an amber banner explains that Transfer and Revert refund are disabled because the balance already moved.

Booking detail — Deposit tab Refund Completed after Mark refunded (fiscal reversal already posted)

Booking detail — Deposit tab Revert refund beside Transfer on a Refund Completed card

Booking detail — Revert Deposit Refund confirm modal with no-money-moved callout

Walkthrough: open a refunded booking Deposit tab → Revert refund → read the confirm modal callout that Vivin does not move money (demo cancels without confirming).

Booking detail — Deposit tab with security deposit summary and refund controls

Booking detail — Deposit tab Initial Deposit row with green Paid badge and paid-of-total figure

Booking detail — Deposit tab Initial Deposit row with red Unpaid badge and refund-unavailable helper copy

Booking detail — Deposit tab Initial Deposit row with amber Partially paid badge and remaining helper

Walkthrough: triage partially collected deposits from Finance → Deposits (partial sub-filter) to this Partially paid badge on the booking Deposit tab.

Internal Notes tab​

The product labels this tab Internal Notes (formerly Comments). It is an internal chat-style thread on the booking (not visible to tenants). Messages appear in bubbles grouped by day (date separators in the centre of the thread). Your posts align to the right with a mint bubble labelled You; teammates’ messages align left with a coloured initial avatar and display name. Each bubble shows a time stamp on the same row as the text.

  • Compose — type in the bottom message field and send with Enter or the send control (Shift+Enter for a new line when the composer supports it).
  • @mention — type @ followed by a colleague’s handle (for example @JaneDoe, built from first and last name without spaces). While you type, an autocomplete list filters property managers on your account; pick a row to insert the handle. Mentioned teammates receive an email when the comment is saved. Handles are normalized the same way on the server (diacritics stripped, lowercase) and are capped at 64 characters — use autocomplete rather than typing long free-form handles.
  • Highlighted mentions — @handles in saved messages render as highlighted tokens in the thread (the product avoids treating email addresses as mentions).
  • Edit — hover your bubble to reveal a pencil; click it to change the text in place instead of deleting and retyping. See Edit your own notes in place.
  • Delete — hover a bubble to reveal a trash control; confirm in the dialog to remove that comment permanently (your own messages or teammates’ messages, depending on your role’s delete rights on the booking).

Booking detail — Internal Notes tab with team thread, day separator, and message composer

Booking detail — Internal Notes tab with @ mention autocomplete listing teammates

Booking detail — Internal Notes tab delete confirmation before removing a message

Walkthrough: open Internal Notes, type @ to open teammate autocomplete, pick a handle, finish the message, and send (internal thread only — not visible to tenants).

Edit your own notes in place​

Correct a note you already sent without deleting it. Hover a bubble labelled You — a pencil appears to the left of the bubble, next to trash. Click the pencil to open an inline textarea with Cancel and Save.

ControlWhat it does
PencilOpens the editor on your persisted notes only. Teammate bubbles have no pencil.
Save or EnterWrites the new text. Unchanged or empty text just closes the editor.
Shift+EnterInserts a new line in the editor.
Cancel or EscLeaves the original note as it was.
TrashStill deletes the note after you confirm — including a teammate’s note when your role allows.

After a successful save, the bubble shows an italic edited marker next to the original time. The day grouping does not change.

You cannot rewrite a teammate’s words under their name. Use trash when the thread should not keep that message and your role allows delete.

If you add a new @mention when you save the edit, that teammate gets an email (the time in the email is when you saved the edit). Teammates already mentioned on the original note are not emailed again. The teammate picker list stays on the composer at the bottom of the tab; in the inline editor, type the @handle yourself.

A note that has not finished sending yet cannot be edited until it appears as a persisted bubble.

See FAQ — How do I correct an internal note without deleting it? and Glossary — Edit internal notes.

Booking sidebar tab refresh​

Each tab in booking detail loads on its own. When Communication or Tickets needs a refresh, you can keep working in Contract Info, Payment Plan, Deposit, and other tabs.

TabWhat to do
CommunicationRefresh in the booking sidebar header
TicketsRetry on the banner inside the tab

If the tab still looks incomplete after that control, close the booking and open it again from the list. Whole-module Bookings list refresh is Directory list refresh.

See FAQ — Communication or Tickets won't open and Glossary — Booking detail sidebar tab refresh.

Booking detail — Communication tab with Refresh in the sidebar header while WhatsApp is active

Communication tab​

The Communication tab shows WhatsApp and email exchanged with the booking’s tenant on your configured support channels (the same automation backend as the tenant chatbot), plus an AI Summary report of that history. On channel-manager stays it also adds a pill named Airbnb or Booking.com (the OTA the guest booked on) that mirrors the host↔guest thread and lets you reply from Vivin — see Airbnb guest chat and Platform badge and filters follow the real OTA. On the WhatsApp filter you can read the thread, apply conversation labels, Pause bot (when configured), and send outbound messages from the management UI. Email remains read-only in the tab — reply from your mail client; Vivin ingests events and shows them here for context on this reservation. Summary replaces the timeline with a persisted Communication report (or an empty Generate summary prompt). Quick orientation: FAQ — WhatsApp and email per booking (bookings-detail-communication-tab-whatsapp-thread.png, bookings-detail-communication-tab-summary-report.png); OTA chat: FAQ — Airbnb guest chat (bookings-detail-communication-tab-ota-real-ota.png, bookings-detail-communication-tab-airbnb-thread.png, bookings-communication-airbnb-reply-flow.mp4); portfolio-wide triage: Inbox module (inbox-module-overview.png); hub matrix: Common Workflows — WhatsApp per-booking messaging.

Under the hood, Vivin merges WhatsApp and email events for the booking into one chronological timeline (oldest → newest) for whichever channel filter is active. When data first loads, the feed scrolls to the latest message so you land on recent traffic. While email events are still fetching and nothing is on screen yet, skeleton rows appear instead of an empty state. The Summary panel does not use that timeline — it loads the last stored AI report (free GET) or prompts you to generate one. The Airbnb / Booking.com panel loads its own live OTA thread (separate from WhatsApp/email history).

Channel filters

At the top of the tab, WhatsApp, Email, optional Airbnb or Booking.com, and Summary pills switch the panel (one at a time — there is no combined “all channels” timeline view):

FilterLayout
WhatsAppChat-style bubbles on a muted background. Day separators (Today, Yesterday, or a formatted date) appear between message groups. Each bubble shows a small WA badge beside the sender label.
EmailGmail-style inbox rows (sender, subject, snippet, time, paperclip when attachments exist). Click a row to expand To / Cc / Bcc, the message body (plain text or a sandboxed HTML iframe), and an Attachments (N) section when non-inline files were ingested with the message. Expanding a row scrolls it into view.
Airbnb / Booking.comShown only on channel-manager bookings. Pill label matches the OTA: Airbnb (soft pink canvas, Reply to the guest on Airbnb…) or Booking.com (blue host bubbles, Reply to the guest on Booking.com…). Independent of the tenant chatbot flag. See Airbnb guest chat and Platform badge and filters follow the real OTA.
SummaryAI Communication report for this booking’s WhatsApp + email history (sparkles pill). Empty state until the first paid generate; afterwards shows the stored report with Copy / Regenerate. See AI conversation summary.

On first load, the product picks WhatsApp or Email with the more stored messages (WhatsApp wins ties) — it does not open on Summary or the OTA pill by default. Outbound email rows may show a Sent badge in the expanded header.

Airbnb guest chat​

When the stay arrived through the channel manager, Communication adds a pill named after the OTA the guest booked on — Airbnb or Booking.com. Open it to mirror the live host↔guest conversation and reply without leaving Vivin. See Platform badge and filters follow the real OTA.

Control / stateBehaviour
When the pill appearsOnly on channel-manager bookings. The label is Airbnb or Booking.com. Mid-term Direct / marketplace stays keep WhatsApp / Email / Summary only.
Chatbot independenceThe OTA panel loads even when the tenant chatbot is off — it does not use WhatsApp pairing or the unlock empty state.
Guest / Host bubblesGuest messages align left (white). Host messages align right — soft pink on Airbnb, blue on Booking.com. Each bubble shows Guest or Host plus the sent time; attachment counts appear when the OTA message includes files.
ComposerReply to the guest on Airbnb… or Reply to the guest on Booking.com… when a thread is available. Enter sends; Shift+Enter inserts a new line. Sent replies appear as Host bubbles on the right after refresh.
Empty threadNo Airbnb guest messages yet for this reservation. (Booking.com stays use the same sentence with Booking.com.) The composer stays available once the thread exists.
Messages app missingCopy asks you to install the Messages application on your channel-manager Applications page so Vivin can mirror and send on the thread.

Pair with Channel-manager (Airbnb) bookings for the dates-only Contract Info card on the same stay, and Settings → Integrations — Channex for channel-manager enablement.

Booking detail — Communication tab with the Airbnb pill selected and Reply to the guest on Airbnb…

Booking detail — Communication tab Airbnb filter with host welcome thread and Reply composer

Booking detail — Communication Airbnb guest and host bubbles with Reply composer

Booking detail — Communication Airbnb composer with a drafted host reply

Walkthrough: open Communication on a channel-manager booking → select Airbnb → review guest/host bubbles → draft a reply in Reply to the guest on Airbnb….

AI conversation summary​

Use Summary when you need a fast narrative of the tenant conversation — overview, key topics, and pending items — without scrolling the full WhatsApp/email timelines.

Control / stateBehaviour
Empty stateSparkles icon, AI conversation summary title, short copy that each run consumes AI tokens, and Generate summary.
Generate / RegenerateOpens the AI conversation summary modal: choose Sonnet 4.6 or Opus 4.8, read the free estimate (message/email counts + token/cost range), then confirm. Generate is disabled when there is nothing to summarize. Each run replaces the previous stored report for this booking.
Communication reportCard with source counts (N WhatsApp · M emails), tokens used, Generated timestamp, sectioned bullets (overview / key topics / pending), plus Copy (clipboard) and Regenerate.
Tenant visibilityInternal only — tenants never see the report (modal copy spells this out).
MeteringEvery generate is recorded in ai_usage under booking_communication_summary — see AI usage API and FAQ — AI token usage. Reopening the tab loads the last report without a new LLM call.

The chatbot must be enabled on the account (isTenantChatBotEnabled) for history to load; when it is off, channel pills (including Summary) still show but the unlock empty state replaces the panel.

Booking detail — Communication tab, Summary empty state with Generate summary

Booking detail — AI conversation summary modal with Sonnet/Opus model choice and cost estimate

Booking detail — Communication report with overview, key topics, and pending items

Walkthrough: open Communication → Summary, confirm the estimate modal, and review the generated Communication report.

Per-channel empty state

Emptiness is evaluated per active filter, not across both channels combined. If WhatsApp has stored messages but Email has none, switching to Email shows No messages yet (channel pills and the Labels row on WhatsApp still behave independently). The same applies when only email traffic exists and you open WhatsApp. This avoids a blank panel when one channel has history and the other does not.

Booking detail — Communication tab, Email filter with No messages yet while WhatsApp history exists on the same booking

Email attachments

When Vivin ingests an email with downloadable files, the collapsed inbox row shows a paperclip beside the timestamp. Expand the row to see an Attachments (N) block below the body (inline parts embedded in HTML — for example signature logos referenced as cid: — are hidden from this list).

ControlBehaviour
Attachment chipShows filename and file size (for example 4.3 KB). Click a chip when preview data is available.
Preview modalOpens for images and PDFs with the filename, size, and a Download attachment action in the header. Other file types show copy that preview is unavailable — use Download attachment to save the file.
Chip without previewWhen content was not stored with the event, the chip is read-only (filename and size still visible).

Attachments are read-only on this tab — download for your records; replying with files still happens from your email client.

WhatsApp labels

On the WhatsApp filter, a Labels row sits below the channel pills. Labels are the same tags configured on your connected WhatsApp business line. Use them to classify the conversation for your team — for example Urgent, Payment, or Maintenance.

ControlBehaviour
Applied chipColoured pill with the label name. Click × on a chip to remove the label from this booking’s conversation.
No labels yetShown when nothing is applied; history and composer still work.
Add labelDashed + Add label opens a popover listing labels not yet applied. Pick one to attach it; the list reconciles with the server after a short delay.

Labels apply to the WhatsApp conversation for this booking’s tenant phone number, not to individual messages or to email.

Pause bot toggle

When your Vivin account has a pause label configured on the WhatsApp business line (set by the Vivin team in internal admin as chatBotPauseLabelId), the Labels row on the WhatsApp filter includes a Pause bot switch to the left of the Labels heading. Turning it on applies that pause label to the conversation so automated bot replies stop for this booking until you turn it off or remove the label. The toggle only appears when the pause label is configured for the account; it does not replace manual Add label chips for other tags.

Booking detail — Communication tab, WhatsApp filter with Pause bot toggle beside the Labels row

Ticket markers in the WhatsApp thread

On the WhatsApp filter only, maintenance tickets linked to this booking can appear as inline timeline markers between chat bubbles — a centred pill such as Ticket #T45 — Radiator not working - room cold at night. Vivin inserts a marker only when the ticket’s created time falls strictly between the first and last WhatsApp message already on screen (not before the opening message or after the latest one). Markers are chronological with the rest of the thread; they do not appear on the Email filter.

Use markers to see when a tenant escalated into a formal ticket during an active chat. Open the full ticket from the booking’s separate Tickets tab or from Operations > Tickets.

Booking detail — Communication WhatsApp thread with inline Ticket #T45 marker after the bot opened a maintenance request

Walkthrough: open Communication → WhatsApp on a booking and scroll to mid-thread Ticket pills (WiFi / radiator) interleaved with chat bubbles.

New messages while the tab is open

Inbound WhatsApp and email arrive through integrations (there is no live websocket push). While Communication stays open, the tab polls in the background about every 15 seconds and compares message counts to what is already rendered.

SignalBehaviour
Floating pillWhen either channel has unread traffic, a sticky pill appears above the bottom of the thread (for example 3 new messages). Click it to refetch both channels, clear the counter, and scroll smoothly to the newest item.
Sidebar RefreshThe header Refresh control (visible while Communication is active) forces an immediate reload without waiting for the next poll — use after you send from the composer or when the pill does not appear.

Booking detail — Communication WhatsApp thread with floating 3 new messages pill above the composer

Walkthrough: keep Communication → WhatsApp open until the floating new messages pill appears, then click it to refetch and scroll to the newest item.

WhatsApp composer

When the WhatsApp filter is active, the tenant chatbot integration is enabled, and Vivin has wired outbound WhatsApp for your account (tenant WhatsApp connection Connected on Bot Status), a message composer appears at the bottom of the tab (muted grey bar with a text field and Send button).

Control / shortcutBehaviour
Type a message…Multi-line text field. Enter sends; Shift+Enter inserts a new line.
SendPaper-plane button; disabled while the field is empty or a send is in progress. Outbound messages appear as You bubbles on the right.
Send failureCould not send the message. Please retry. — your draft stays in the field so you can retry.

Sent messages go through your business WhatsApp number (same channel as bot and human replies). Use Refresh in the sidebar header if a just-sent message does not appear immediately. If failures persist, open Account Settings → ChatBot → Bot Status and confirm the tenant WhatsApp connection is Connected — scan a new QR when Disconnected (Status Bot pairing).

Bot reasoning (audit)

When the tenant chatbot is enabled on your account and Vivin stored reasoning text with an automated Bot reply, the bubble shows a compact Reasoning control under the message body. Click it to expand the internal explanation Vivin used before sending (italic text in parentheses). Only Bot messages include this toggle; tenant and operator bubbles do not. Use it to audit automated answers without opening server logs.

Booking detail — Communication tab, Bot message with expanded Reasoning audit text under the reply

Walkthrough: expand Reasoning on a Bot bubble, then open ChatBot → Special Rules to adjust matching IF/THEN rows.

Booking detail — Communication tab, WhatsApp filter with Labels row and message composer at the bottom

Booking detail — Communication tab, Add label popover listing available WhatsApp conversation tags

When the tab is available

StateWhat you see
Chatbot enabled on the account (isTenantChatBotEnabled)Tab loads WhatsApp and email events for the booking. When Vivin has ingested traffic, threads appear under WhatsApp or Email; when nothing is stored yet, you see No messages yet (channel pills and the Labels row still show). With outbound WhatsApp configured, the composer appears at the bottom.
Chatbot on, WhatsApp send not provisionedHistory and Labels still load on WhatsApp, but the composer area shows WhatsApp replies aren't available yet — contact Vivin to connect your business line for replies from management (distinct from chatbot-off unlock below).

Booking detail — Communication tab, WhatsApp filter with thread history and WhatsApp replies aren&#39;t available yet notice instead of composer

| Chatbot disabled | Tab is still clickable; the panel shows Unlock your communication history with copy to contact your account manager — channel filters remain visible but history does not load. | | No phone or email on the tenant profile | With chatbot on, matching cannot run — you still see No messages yet until contact fields exist on the tenant profile linked to the booking. | | Refresh | Use Refresh in the sidebar header toolbar to reload messages. See Sidebar tab refresh. | WhatsApp bubbles

  • Tenant messages align left (white bubble) with the tenant’s name from the booking.
  • Outbound messages align right: Bot (mint bubble) when the tenant chatbot sent the reply (wasSentByApi), or You (blue bubble) when a human replied from your business WhatsApp number — including messages sent from the tab composer or from the WhatsApp Business app.
  • When the agent’s display name is stored on the message, You may show that name instead of the generic label.
Bubble positionLabel in the UIMeaning
LeftTenant nameInbound message from the tenant’s WhatsApp line
RightBotOutbound reply sent by the tenant chatbot (wasSentByApi)
RightYou (or name)Outbound reply sent by a human from your business number

Use Refresh in the booking sidebar header toolbar (visible while Communication is active) to re-fetch both WhatsApp and email after new traffic.

Booking detail — Communication tab, WhatsApp filter with tenant / Bot / You bubbles and channel pills

Booking detail — Communication tab, Email filter with inbox-style rows (subject, snippet, attachment icon)

Booking detail — Communication tab, expanded email with recipients and message body

Booking detail — Communication tab, expanded email with Attachments chips below the message body

Booking detail — Communication tab, attachment preview modal for a PDF or image with download control

When the chatbot is enabled but the tenant profile has no email or phone, or no stored events match the booking, the tab still loads channel filters and shows No messages yet:

Booking detail — Communication tab with WhatsApp and Email filters but no stored messages yet

When isTenantChatBotEnabled is false, the tab stays clickable but history does not load — channel pills and (on WhatsApp) the Labels row remain visible while the panel shows Unlock your communication history:

Booking detail — Communication tab with chatbot off — unlock empty state and channel filters visible

Distinct from Comments and from ChatBot settings

Comments (Internal Notes) is an internal team thread on the booking. Communication is tenant-facing channel history. Persona and IF/THEN rules for the bot are edited under Account Settings → ChatBot (persona / IF/THEN subtab); WhatsApp line pairing (Connected / Disconnected, QR scan) lives on the same screen under Status Bot — not on this booking tab. Enabling the integration itself is an account-level flag (Vivin provisions tenant chatbot on the workspace).

Tickets tab​

When your role includes the Operations module (operations.module), a Tickets tab appears on the booking sidebar. It is a read-only table of maintenance and operations tickets scoped to this reservation — tenant portal requests, chatbot escalations, team-created tickets, automatic check-in/out jobs, and recurring maintenance rules. Closed and cancelled tickets stay visible so you can audit history without leaving the booking.

The tab subtitle in English reads: Tickets linked to this booking (tenant app, chatbot, team, check-in/out, etc.).

Users without Operations access do not see this tab; triage still happens from Operations > Tickets.

Column (English UI)Content
TicketSequential ticket id (for example T27) or a short internal id fallback.
TitleTicket subject line.
StatusWorkflow status with underscores shown as spaces (for example unassigned → Unassigned).
SourceHow the ticket was opened — see source labels below.
CategoryMaintenance category when set (underscores shown as spaces).
CreatedTicket creation date.

Source labels (English UI):

Source valueLabel in UI
tenantTenant
tenant_portalTenant portal
chatbotChatbot
pmTeam
automatic_check_in_outCheck-in / Check-out
automatic_recurringRecurring

Navigation — Table rows are not clickable. Use Open Operations — Tickets in the tab header (also shown on the empty state) to jump to the full Operations workspace for assignment, notes, resolution, and Cost allocation (link operational cash flows to the ticket). Far-future Schedule date values may show Draft (display status) in Operations even when this read-only table lists the underlying workflow status. The Communication tab can show a ticket marker on the WhatsApp timeline when a linked ticket was created between the first and last messages in view.

If tickets need a refresh — Use Retry on the tab if the ticket list does not appear. Your other booking tabs stay available.

Empty state — When no ticket exists yet for this booking, the tab shows No tickets yet, the helper line When the tenant or your team opens a ticket for this booking, it will appear here., and the same Open Operations — Tickets header link as the populated table.

Booking detail — Tickets tab with linked maintenance rows, source column, and Open Operations — Tickets header link

Booking detail — Tickets tab empty state with No tickets yet helper and Open Operations — Tickets link (example booking AA-11-5D-R7)

Walkthrough: open booking detail → Tickets tab → read-only linked rows (source column) and Open Operations — Tickets header link.

Files tab​

Files is a per-booking document workspace (grid layout, not a simple attachment list). Use it for IDs, signed contracts, receipts, and other PDFs or images that should stay with the booking for audit and handoffs.

  • Upload — click Upload (multi-file picker) or drag files onto the tab. While uploads run, an Uploading… spinner appears in the header. New files sort newest first in the grid.
  • Empty state — when no documents exist yet, the tab shows a circle icon and No files uploaded yet with the same drag-and-drop hint as the header Upload control.
  • Drag overlay — dragging files over the tab shows a dashed Drop files here to upload banner until you release or leave the drop zone.
  • Grid — each tile shows a type badge (PDF, IMG, XLS, DOC, or FILE), filename, and a row menu (Preview, Download, Delete when your role includes bookings.delete_files). Image tiles show a thumbnail; PDF tiles embed a small preview in the card.
  • Open / preview — clicking a PDF or image tile (or Preview in the row menu) opens an in-tab overlay with the filename, Download, and Close. Excel, Word, and other types open in a new browser tab instead of the overlay.
  • Delete — Delete in the row menu opens a confirmation dialog naming the file; confirm to remove it permanently from the booking.
  • Contract tags — when multiple contract PDFs exist, the newest non-superseded contract upload shows a Current badge and older signed contracts an Old badge (tooltips explain which file tenants and exports treat as active).
  • Hostkit invoices (read-only) — when Hostkit is your active invoicing provider and chargeable allocations have been invoiced, Vivin synthesises PDF tiles in the grid (filename pattern Invoice_<ref>.pdf, for example Invoice_2025/42.pdf for Hostkit {series}/{id}) so operators can open the Hostkit document from the booking without hunting Finance. These tiles are not uploads: clicking opens the Hostkit permalink in a new browser tab (Hostkit’s public link refuses in-app iframe preview), the row menu keeps Download and omits Preview / Delete, and the tiles disappear if you upload a real invoice-receipt file for the same booking. Tenants see the same tiles on Tenant Portal — Documents (new tab, Download). See Finance — Hostkit invoice links.

Booking detail — Files tab with synthesised Hostkit Invoice_2025/42.pdf tile and Download menu (no Delete)

Walkthrough: Finance see invoice on a Draft Hostkit allocation, then booking Files synthesised invoice tile with Download only.

Uploading on Contract Info can still mark the booking as contract-signed; general attachments added here do not change that status unless you use the contract upload flow on Contract Info.

Booking detail — Files tab empty state with Upload and drag-and-drop hint

Booking detail — Files tab with document grid, Current contract badge, and Upload

Booking detail — Files tab PDF preview overlay opened from a grid tile

Booking detail — Files tab delete confirmation naming the selected file

Tenant Management​

The Bookings module centralises all tenant information and interactions:

  • Centralised tenant profiles — contact details, documents, booking history, and payment records all accessible from the booking detail view.
  • Team notes — internal booking threads with @mention email alerts; edit your own notes in place (see Internal Notes tab / Edit your own notes in place).
  • Communication — when the account tenant chatbot is enabled, the Communication tab shows WhatsApp (with labels and composer) and read-only email with the tenant; on channel-manager stays it also mirrors Airbnb or Booking.com guest chat with a host reply composer (see Communication tab / Airbnb guest chat / Platform badge and filters follow the real OTA). Configure bot behaviour under ChatBot settings.
  • Other tenant channels — SMS rules, communication templates, and portal flows are documented under Automation & AI and Tenant Portal.
  • Document storage — store ID copies, contracts, receipts, and other documents per tenant.
  • Automatic record creation — tenant records are created automatically from booking data, whether the booking comes from a marketplace, the white label booking engine, or manual entry. No duplicate data entry needed.

For a tenant-first workspace (cross-booking tenant segmentation, debt filtering, profile updates, and history across bookings), use Tenants.

Creating a New Booking​

Pair with other Bookings sections

To create a booking manually (for direct reservations not coming from an external platform), click + Create New in the left sidebar and select Booking. This wizard enforces unit Capacity, Minimum / Maximum Stay Period, and listing available from. Marketplace imports honour listing JSON instead — Creating Bookings — Honour listing. Occupied nights still reject on both paths. Marketplace POST /bookings does not set rent — advertised listing JSON amounts become the payment plan — Creating Bookings — Rent. That POST also does not set Extra Charge or Extra Deposit euros — unit rates copy from occupant headcount — Creating Bookings — Extra Charge. That POST also does not set Second tenant identity — occupant headcount can open the accordion; identity stays empty until you fill Contract Info — Creating Bookings — Second tenant. That POST also does not set Guarantor identity or amount — the accordion can appear when Preferences Guarantor is On; identity and Guarantor amount (€) stay empty until you fill Contract Info — Creating Bookings — Guarantor. That POST does record platform commission as Provider platform payment — it does not change tenant rent (except Vivin Booking Engine Daily stays shorter than one month) — Creating Bookings — Platform commission. That POST also does not set cleaning fee — the property amount and Frequency copy onto the payment plan — Creating Bookings — Cleaning fee. That POST also does not set deposit — listing JSON depositValue copies onto the hold and Extra Deposit is added from occupant headcount — Creating Bookings — Deposit. That POST also does not set admin fee — Vivin resolves the property fixed amount or stay-duration tier — Creating Bookings — Admin fee. That POST also does not set bills included — the property Bills Included ceiling copies onto the stay — Creating Bookings — Bills included. That POST also does not set contract type — the property Rental payment frequency and Contract type copy onto the stay — Creating Bookings — Contract type. That POST also does not set confirmation or check-in payments — the property Confirmation payments and Check-in payments copy onto the stay — Creating Bookings — Confirmation payments. That POST also does not set due day or due month — the property Due date and Due Month copy onto the stay (or account Tenant Due Day / Tenant Due Month when the property has no override) — Creating Bookings — Due date. That POST also does not set check-in or check-out times — account Check-in time and Check-out time copy onto the stay — Creating Bookings — Check-in times. That POST also does not set days before due — account Days before due date copies onto the stay — Creating Bookings — Days before due. That POST also does not set check-in or check-out responsible — Check-in responsible and Check-out responsible stay empty until you assign a teammate — Creating Bookings — Check-in responsible. That POST also does not set lease purpose — Lease purpose stays empty until you or the tenant select a chip — Creating Bookings — Lease purpose. That POST also does not set Deposit Refund Limit — imported stays inherit the account Payments term until you override it on Contract Info — Creating Bookings — Deposit Refund Limit. That POST also does not set booking tags — Booking categories stay empty until you pick chips — Creating Bookings — Booking tags. That POST also does not set check-in/out maintenance tickets — automatic tickets follow the property Maintenances tab — Creating Bookings — Maintenance tickets. That POST also does not set Ignore unit preparation days — occupied nights including the Mid-term Prep / Short-term Prep buffer still reject — Creating Bookings — Ignore unit preparation days. That POST also does not set Allow check-in date in the past — honour listing JSON availableFrom on the channel — Creating Bookings — Allow check-in date in the past. That POST also does not set Exclude this booking from penalty fees — imported stays land with the box off until you tick it on Contract Info — Creating Bookings — Exclude from penalty fees. That POST also does not set Use check in date as contract start date — imported stays land with the box off until you tick it on Change contract start date — Creating Bookings — Use check in date as contract start date. That POST also always sends the onboarding email and generates the contract — you cannot skip Send onboarding email & contract on the channel — Creating Bookings — Send onboarding. That POST also always uses Use unit contract rents and other contract details — you cannot type custom rent, fees, or contract details on the channel — Creating Bookings — Use unit contract rents. That POST also does not set tenant category — allowlisted channels assign Default for integration-created tenants when the person is new or uncategorized — Creating Bookings — Tenant category.

Add Booking Modal

The Tenant field uses a server-driven picker: opening the list prefetches a small batch, search hits the server with a short debounce, and scrolling near the bottom of the dropdown loads more tenants — useful on large accounts without loading the full directory into the browser at once.

Add booking — tenant picker open with search and scrollable results

The booking creation form captures:

  1. Tenant — pick an existing tenant with the Tenant name server-driven search picker: open the control, type to search names and emails on the server, and scroll the menu for more matches. Contact details come from the tenant profile you select (create or update tenants first in Tenants when someone is not in the list yet). Tenant category is assigned on Tenant Info, not in this wizard — see Processing a New Booking — Step 2 and FAQ — Assign tenant category for direct booking.
  2. Property and Unit — choose House first, then Unit. Both fields use the same server-driven search picker pattern: a small first page when you open the menu, debounced server search as you type, and infinite scroll for more rows. When you type a search term, internalName matches rank above address-only or tag-only hits (exact → prefix → substring → other fields) before pagination — see Glossary — Picker search ranking. The Unit menu is scoped to the selected property — changing property after you picked a unit clears the unit and reloads the listing list for the new building so a room from another property cannot stay selected by mistake. To create several bookings in one house for the same tenant and dates, use Book several units at once instead of repeating this wizard per room.

Add booking — Property picker open after server search (internalName matches ranked above address-only hits, example António)

  1. Dates — Check-in & Check-out date (required operational range) plus contract start / end when your account shows those fields. On a single unit, the calendar treats check-in and check-out differently for availability: a night occupied by another stay is blocked as a check-in, but that stay’s arrival day stays selectable as your check-out so you can book a same-day turnover (departing guest leaves the morning the next guest arrives). Real overlaps (your check-out after their check-in, or your check-in before their check-out) stay blocked. Nights after checkout that belong to Mid-term Prep / Short-term Prep stay grey unless you tick Ignore unit preparation days. Tick Allow check-in date in the past when a manual stay should start before the listing’s Available from month. When Book several units at once is on, occupancy greying is off — see Date calendar stays clear. Clock Check-in time / Check-out time sit below the date range — leave blank to use Preferences — Booking Defaults, or pick a time for this reservation. Marketplace POST /bookings cannot send those times — Creating Bookings — Check-in times. Check-in responsible / Check-out responsible sit beside those times — pick a teammate, or leave blank. Marketplace POST /bookings cannot send those names — Creating Bookings — Check-in responsible.
  2. Platform — select "Direct" for direct bookings, or the relevant external platform. When Platform is a channel (not Direct), First payment value (€) records the same amount as marketplace platformProviderPaymentValue — Provider platform payment. Booking categories — optional multi-select tags when configured under Categories. Marketplace imports cannot send this field — Creating Bookings — Booking tags.
  3. Lease purpose — optional or required searchable dropdown when Lease purpose is enabled on the account. Marketplace imports cannot send this field — Creating Bookings — Lease purpose.
  4. Deposit Refund Limit is not on this wizard. New stays inherit Payments — Deposit Refund Limit until you override it on Contract Info. Marketplace imports inherit the same way — Creating Bookings — Deposit Refund Limit.
  5. Send onboarding email & contract — optional; defaults off. Tick it when this direct reservation should generate the contract and send the welcome email at create. Marketplace imports always send — Creating Bookings — Send onboarding. See Send onboarding email & contract.
  6. Use unit contract rents and other contract details — defaults on. Leave it on to copy the unit. Turn it off to type custom rent, fees, and contract details for this direct stay. Marketplace imports always copy — Creating Bookings — Use unit contract rents. See Use unit contract rents.

Add booking — Tenant name picker open with server search results

Add booking — Check-in phase: next booking’s arrival day (1 Dec) is disabled so you cannot check in on an occupied night

Add booking — Check-out phase after Nov 1 check-in: 1 Dec is enabled as check-out for a same-day turnover against the next stay

Walkthrough: Create New → Booking, pick property AA-11-5D / unit Studio 12, open dates — December check-in blocks day 1, then after choosing Nov 1 check-in the same day is enabled as check-out. Demo ends on Cancel.

Ignore unit preparation days​

After a stay, Vivin keeps the unit closed for your Mid-term Prep or Short-term Prep window so cleaning can finish. On + Create New → Booking for one unit, those extra nights are grey on the date calendar — even though the previous guest already left.

Tick Ignore unit preparation days when this new reservation should start in that buffer (the nights after the previous checkout, before the prep window ends). Default is off. Use it only when your team can turn the unit around in that shorter window.

SituationWhat the checkbox does
Previous guest still occupying the unitNothing — occupied nights stay blocked.
Nights after their checkout (prep buffer)Become selectable for check-in. Calendar dots still mark the buffer so you can see why the unit was closed.
Manual, owner, maintenance, or channel blocksStay blocked. The checkbox only affects a previous booking’s prep window.
Same-day turnover (your checkout = their check-in)Not needed — see Dates and FAQ — Same-day turnovers.

After Create Booking, Vivin shortens the previous stay’s unit block to end at checkout, so leftover prep nights are no longer held for that previous reservation.

The neighbouring control Allow check-in date in the past is different: it lets the stay start before the listing’s available-from month. It does not open a previous stay’s prep buffer.

When Book several units at once is on, the calendar does not grey occupancy. The same checkbox still applies on create for every selected room — tick it only if you intend those rooms to start in a previous stay’s buffer.

Marketplace imports are not this checkbox — partner stays follow the channel dates and honour listing unavailabilities including prep nights. Marketplace POST /bookings cannot send this skip — Creating Bookings — Ignore unit preparation days. The control appears only on Add booking, not when you later change dates on Contract Info.

See FAQ — Why are the days after checkout grey on Add Booking? and Glossary — Ignore unit preparation days.

Allow check-in date in the past​

On + Create New → Booking, Allow check-in date in the past sits next to Ignore unit preparation days. Tick it when a manual reservation should start before the unit’s Available from month. Default is off.

SituationWhat the checkbox does
Check-in before listing Available fromCreate is allowed for this reservation.
Occupied nights, prep buffer, or manual/channel holdsStill reject on create. Use Ignore unit preparation days for a previous stay’s prep tail.
Same-day turnover (your checkout = their check-in)Not needed — see Dates and FAQ — Same-day turnovers.

The control appears only on Add booking, not when you later change dates on Contract Info.

Marketplace imports are not this checkbox — partner stays honour listing JSON availableFrom. Marketplace POST /bookings cannot send this skip — Creating Bookings — Allow check-in date in the past.

See FAQ — Marketplace booking Allow check-in date in the past and Glossary — Allow check-in date in the past.

Send onboarding email & contract​

On + Create New → Booking for one unit, Send onboarding email & contract sits on the Contract step next to Use unit contract rents and other contract details. Default is off. Leave it off to create the reservation without generating the contract or sending the welcome email; send later from Contract Info when the occupant is ready. Tick it only when this direct stay should generate the contract and send the Onboarding email at create.

SituationWhat the checkbox does
Left off (default)No automatic contract file and no welcome email at create. Use Send Onboarding email or Contract-card Resend later.
TickedGenerates the contract when a template exists, then queues the welcome email. Account Onboarding No trigger still skips the email.
Book several units at onceStays off and cannot be turned on. Create the set first, then send from each reservation.

Marketplace POST /bookings cannot skip this send — imported stays always generate the contract (when a template exists) and queue the welcome email — Creating Bookings — Send onboarding. Contract in onboarding email and the tenant’s category still control whether the PDF attaches.

See FAQ — Marketplace booking onboarding email and Glossary — Send onboarding email & contract.

Use unit contract rents and other contract details​

On + Create New → Booking for one unit, Use unit contract rents and other contract details sits on the Contract step next to Send onboarding email & contract. Default is on. Leave it on so this reservation copies the unit’s monthly rent, deposit, Extra Charge / Extra Deposit, Confirmation payments, Check-in payments, and the property fees already on that listing.

Turn it off when this direct stay should use custom contract details: Fixed rent (€) (including a rent-free €0 stay), fees, Contract day type / Contract type, payment requirements, Extra Charge / Extra Deposit, and (when the property has auto-create) Create check-in ticket / Create check-out ticket. See Empty fixed rent reads as €0.

SituationWhat the checkbox does
Left on (default)Copies today’s unit and property contract values. Custom rent, fee, and contract-type fields stay hidden.
Turned offShows Custom contract details so you can type amounts and pick contract options for this reservation only. Later bookings on the unit still copy unless you turn the box off again.
No unit selected yetThe checkbox stays dimmed until you pick a Unit.

Marketplace POST /bookings cannot turn this off — imported stays always copy unit and property contract values — Creating Bookings — Use unit contract rents. After import, change euro amounts on Contract Info for that reservation.

Add Booking — Custom contract details after turning off Use unit contract rents and other contract details

See FAQ — Marketplace booking unit contract rents and Glossary — Use unit contract rents.

Extra price per tenant and Extra deposit per tenant​

On + Create New → Booking for one unit, turn Use unit contract rents and other contract details off to show Fees & extras. Tick Extra price per tenant or Extra deposit per tenant and type a custom euro amount for this reservation only. Leave Use unit contract rents on (default) so this reservation copies the unit Extra Charge / Extra Deposit from occupant headcount.

Marketplace POST /bookings cannot send those euro rates — imported stays copy the unit rates using occupant headcount — Creating Bookings — Extra Charge. After import, change Extra Charge on Contract Info for that reservation. Occupant headcount does not fill Second tenant identity — Creating Bookings — Second tenant. Occupant headcount does not fill Guarantor identity or amount — Creating Bookings — Guarantor. Marketplace POST /bookings does record platform commission as Provider platform payment — Creating Bookings — Platform commission.

This is not Adding Extra Charges (one-off Payment Plan lines after the stay exists).

Add Booking — Custom contract details after turning off Use unit contract rents and other contract details

See FAQ — Marketplace booking Extra Charge and Glossary — Extra Charge not on partner POST.

Book several units at once​

When one tenant should occupy several rooms in the same house for the same dates, turn on Book several units at once. Vivin creates a separate booking for each selected unit, all with the same tenant, dates, and details.

The toggle stays available only when that tenant’s tenant category has Multiple concurrent bookings enabled. Assign the category on Tenant Info first — this wizard has no category field (FAQ — Assign tenant category for a direct booking). When the category does not allow concurrent stays, the control stays dimmed with the hint that it is available only for tenants whose category has Multiple concurrent bookings enabled.

  1. Pick the tenant, then the House.
  2. Turn on Book several units at once. The Unit field becomes Units.
  3. Open Units, search if needed, and tick the rooms (or Select all units). You can book at most 30 units in one run — deselect one to add another, or finish this set and start a second Add booking.
  4. Set Check-in & Check-out and the rest of the form as usual. Those values apply to every booking in the set. The date calendar stays clear (no grey nights) — after Create N bookings, Vivin names any room that cannot take those dates. See Date calendar stays clear.
  5. Confirm with Create N bookings (the label follows how many units you selected). While Vivin works, the button shows Creating… X of Y.

Send onboarding email & contract stays off for a multi-unit set and cannot be turned on here — see Send onboarding email & contract. Create the bookings first, then send onboarding or the contract from each reservation when the occupant is ready.

Add booking — Book several units at once on, with House selected and Units empty

Add booking — Units picker open with Select all units and rooms for the selected house

Add booking — three unit chips selected and Create 3 bookings in the footer

Walkthrough: Create New → Booking, pick tenant Sofia Mendes and house AA-11-5D, turn on Book several units at once, select three rooms, then stop on Create 3 bookings (demo does not save).

Date calendar stays clear for several units​

When Book several units at once is on, the Check-in & Check-out calendar does not grey occupied days or show occupancy dots. Shading a union of many rooms would block a day without saying which room is busy. Occupancy greying and same-day-turnover adjacency stay on the single-unit calendar — see Dates above.

Typical path:

  1. Turn on Book several units at once, pick the rooms, and set dates as usual. Every day in the range stays selectable.
  2. Click Create N bookings. Vivin checks every selected room before it writes anything.
  3. If a room cannot take those dates, Vivin creates none of the set. A list names each room, the clash, and the occupied window (for example occupied 1 Nov → 1 Dec). The heading reads N selected units cannot be booked. Nothing was created.
  4. Click Remove these units from the selection to drop the clashes, or change dates and create the remaining rooms.

When some bookings are already created and others cannot (for example another operator took a room while you were working), the created rows stay on the list. The rooms that did not save remain selected so a second submit creates only those.

For occupancy on one room, turn Book several units at once off, or use Timeline / Sales → Multicalendar. If Create takes longer than expected, open Bookings for that house before you submit the same set again so you do not double-book.

See FAQ — Why doesn’t the Add Booking calendar grey occupied days for several units? and Glossary — Book several units at once.

After selecting the unit and dates, the rent details step shows the financial configuration:

Properties with tiered admin fees

When the property uses Per stay duration admin fees (Listings > Admin fee), the Admin fee amount on this step may stay blank — Vivin resolves the tier from the booking’s stay length when you create the reservation. Enter a manual € amount only when you intend to override that default.

Variable units with equal monthly rent

When the unit uses variable seasonal pricing but every contract month in the selected Start date–End date span shares the same configured € amount, Vivin stores the new booking as fixed rent at reservation level. The Add booking form still reflects unit defaults; after Create booking, open Contract Info to confirm the collapsed headline. See Fixed rent on a variable unit.

Empty fixed rent reads as €0​

Turn off Use unit contract rents and other contract details when this reservation should not copy the unit’s rent. Fixed rent (€) can then be left blank: Vivin reads that as €0 (a rent-free stay). Click away or tab out of the field and it settles to a visible 0 so you can confirm before you save. You can still type €0 yourself. Negative amounts are rejected. Marketplace imports cannot do this — they always copy unit contract rents — Creating Bookings — Use unit contract rents.

Use this for staff accommodation, promotional stays, or placeholder contracts where charges live only in fees. The same blank-as-zero read applies on + Create New → Unit for Monthly Rent Value. On an existing stay, Change monthly rent on Contract Info also accepts €0.

Add booking — Custom contract details with Fixed rent left blank

Add booking — Fixed rent settles to 0 after leaving the blank field

Walkthrough: on Add booking, turn off Use unit contract rents and other contract details, clear Fixed rent (€), then leave the field — it settles to 0. Demo ends before Create Booking.
Rent-free bookings (€0 monthly rent)

A blank Fixed rent (€) on Add booking is enough for a rent-free reservation — you do not have to type 0 first. See Empty fixed rent reads as €0.

Per-booking check-in/out ticket opt-out

When the selected property has automatic check-in or check-out maintenance tickets configured on Listings — Maintenances tab, and you turn off Use unit contract rents and other contract details on the rent step, Vivin shows Maintenance tickets with Create check-in ticket and/or Create check-out ticket (only the event types enabled on the property). Both default checked — same as the property. Uncheck to skip automatic ticket creation for this reservation only; later bookings on the property still follow the property rule unless you opt out again. If neither auto-create is configured on the property, the subsection stays hidden. Marketplace POST /bookings cannot send this skip — imported stays follow the property Maintenances tab — Creating Bookings — Maintenance tickets. Troubleshooting: FAQ — Skip automatic check-in/out tickets for one booking.

Add booking — Maintenance tickets checkboxes after turning off Use unit contract (property AA-11-5D example)

Booking Rent Details

The system previews the full payment structure before you confirm:

Booking Rent Details Expanded

Walkthrough: Create New → Booking, choose property AA-11-5D and unit AA-11-5D-R1, scroll to the rent preview, then Cancel (example portfolio).

Click Create Booking (or Create N bookings for a multi-unit set) to save. The payment schedule is automatically generated based on the property's contract settings. If Timeline is open with Only bookings off and that unit already on the chart, the stay bar appears without a reload — see Stay bars update after create or delete. If Only bookings is on (or Search is hiding vacant rooms), Timeline also adds the unit row in place — see Unit list updates after create or delete.

Business Rule

If you select a single unit that already has an active booking for the same date range, the calendar greys the overlap and Vivin blocks create. Overlapping bookings on the same unit are not permitted. Adjacent stays that share only the turnover calendar day (your check-out = their check-in) are allowed — see Dates above and FAQ — Same-day turnovers. Nights after checkout that are preparation days stay grey unless you tick Ignore unit preparation days. For Book several units at once, the calendar stays clear; Vivin names clashing rooms after Create N bookings and creates none of the set until you drop those rooms or change dates — see Date calendar stays clear.

Adding Extra Charges to a Booking​

To add a one-off charge to an existing booking (for example, a damage fee, a room change surcharge, or a guest fee), open the booking detail → Payment Plan or Contract Values, then click + Charge in the tab toolbar. Your role needs bookings.add_charges; otherwise the control stays disabled.

Booking detail — Payment Plan tab with + Charge, + Transaction, and Apply Discount

The modal title is Add Charge:

Add Charge modal — Value, Due Date, Category, and Reason (Enter reason placeholder)

FieldRequired?Notes
ValueAlwaysAmount in €
Due DateAlwaysMust fall within the booking’s allowed charge window (from creation through the effective Deposit Refund Limit — booking override when set, otherwise the account Deposit Refund Deadline)
CategoryWhen Require charge category is OnLabels from Others Items Categories
ReasonWhen Require charge description is OnFree-text note (placeholder Enter reason). Preferences still label the toggle “description”; the modal field is Reason
Walkthrough: open Payment Plan → + Charge → review Value, Due Date, Category, and Reason → Cancel without saving.

Confirm with Add (or Cancel to discard). The new line appears on Payment Plan and Contract Values alongside the rest of the schedule. To record money received instead of a new charge, use + Transaction (modal title Add Payment) — Payment Date, Payment Value, Type, and optional Comments (placeholder Add a note).

Cancellations and Refunds​

Pair with other Bookings sections

Cancel flows pair with Cancelling a Booking and Payment Allocation for refund allocation.

When a booking is canceled, Vivin automatically handles the payment schedule cleanup based on the refund type. English choices on Cancel booking step 1 are Full refund, No refund, and Partial refund. Three amount cells under those choices — Paid, Deposit, and Refund — show the money on the reservation today; see Paid, Deposit, and Refund on Cancel booking.

Full Refund​

All remaining payment items are removed from the payment schedule. Any payments already received are marked for refund. The unit becomes immediately available for new bookings. Tenants then see Cancelation With Refund (plain text, no logo) on Payments → Transaction History.

No Refund​

Only unpaid future items are removed from the payment schedule. Already-paid items are retained. The unit becomes available for new bookings from the cancellation date forward.

Partial Refund​

Partial refunds require manual processing — the system does not automatically calculate partial amounts because the split depends on your specific cancellation terms and negotiation with the tenant. On Cancel booking step 1, Partial refund starts Refund at € 0 until you set return amounts on the payment lines in the cancel flow. You will typically need to:

  1. Adjust the payment schedule manually
  2. Record the partial refund amount
  3. Document the agreed terms

Tenants then see Cancelation With Partial Refund (plain text, no logo) on Payments → Transaction History.

For the full step-by-step cancellation workflow, see Cancelling a Booking.

On Contract Info → Cancel booking step 1, Paid is the total already paid, Deposit is the deposit already collected, and Refund is the amount this choice would return (Full refund is the cancel-path return — often Paid minus deposit kept for the deposit flow; No refund is € 0; Partial refund starts at € 0 until payment-line amounts are set). Use Cancel if you were only checking the figures; Next continues the multi-step flow.

Bookings — Cancel booking step 1 with Full refund and Paid / Deposit / Refund cells

Walkthrough: switch refund choices, read Paid / Deposit / Refund, leave with Cancel.

See Cancelling a Booking — Paid, Deposit, and Refund and FAQ — What do Paid, Deposit, and Refund mean on Cancel booking?.

Cancel booking wizard steps 2–4​

After Next on step 1, review Settle the deposit before cancelling (step 2), Payment lines this cancellation acts on (step 3), then Confirm the cancellation (step 4). Nothing is written until Confirm Cancellation. Use Close to leave without cancelling. On Partial refund, step 2 may be skipped when the deposit needs no decision.

Bookings — Cancel booking step 2 Settle the deposit before cancelling

Bookings — Cancel booking step 3 Payment lines this cancellation acts on

Bookings — Cancel booking step 4 Confirm the cancellation

Walkthrough: Next through deposit, payment lines, and confirm — leave with Close.

See Cancelling a Booking — Cancel booking wizard steps 2–4 and FAQ — What happens after Next on Cancel booking?.

Early Departures​

When a tenant leaves before their contract end date, adjust dates from Contract Info so the payment plan and reporting match reality.

Change move-out date (physical departure)​

Use this when the tenant actually leaves earlier than planned:

  1. Open the booking → Contract Info → Booking information → click the pencil to enter edit mode.
  2. On Move out, click Change move-out date.
  3. Pick the New Move-out Date and leave Update Payment Plan enabled (default) so Vivin recalculates the schedule and drops future unpaid charges after the new departure.
  4. For move-outs that shorten the stay, review optional rent controls in the modal (keep current rent vs adjust monthly amounts) before you confirm.

Booking detail — Change move-out date modal with new date and Update Payment Plan enabled

Use End date → Change contract end date when you need to move the contract boundary without necessarily changing operational check-in/out — for example aligning the legal end to a signed amendment while move-out stays unchanged. The modal can mirror check-out to contract end when your account uses that pattern.

Booking detail — Change contract end date modal with new end date picker

Move-out vs contract end

Move out drives operational departure and payment-plan span for most early-leave cases. End date is the contract boundary on the booking record; Finance and partner exports may treat them differently when check-in/out and contract dates diverge. When in doubt, update move-out for an early physical leave and confirm the Payment Plan tab afterward.

Important

Room changes: If a tenant is moving from one unit to another within your portfolio, be careful when adjusting dates. Overlapping charges between the old and new unit can result in double billing. Always verify the payment schedules on both bookings after making changes.

Invoiced items: Charges that have already been invoiced through the accounting integration (e.g., Invoice-xpress) cannot be automatically removed from the payment schedule. These must be handled as credit notes or manual adjustments in your accounting system.

Key Business Rules for Bookings​

Summary
  1. Payment schedules are fixed at creation. Charges and due dates are generated at the time of booking creation based on the property settings in effect at that moment. Changing property settings afterward does not affect existing bookings.

  2. Contract signed status is set by file upload or portal signature. Uploading a PDF on Contract Info (or a tenant completing digital signing) marks the stay signed. The Contract column on All bookings shows a teal check and Signed on on hover — the list updates without a full page reload.

  3. Platform filter options reflect your integrations. Only platforms enabled in Settings > Integrations appear as filter options in the bookings list.

  4. Overpayments are tracked as credits. If a tenant pays more than a scheduled charge, the excess is recorded and automatically applied to the next charge.

  5. Overlapping bookings are blocked. You cannot create a booking for a unit that is already occupied during the requested dates.

  6. Bookings automatically generate tenant portal access. Once a booking is created, the tenant can access the Tenant Portal through an emailed access-link flow (default) or a direct URL containing booking credentials (id, and usually code) to view their payment schedule and make payments (if the property's payment settings allow it).

  7. Cancellation automatically cleans up the payment schedule. Full refund removes all items; no refund removes only unpaid future items. Partial refunds require manual handling.

  8. Invoiced items cannot be auto-removed. Once a charge has been invoiced through the accounting integration, it remains in the system and must be handled via credit notes.

Bookings guide subsection index​

Pair with other Bookings module guide sections

This index pairs Bookings list, sidebar, and lifecycle sections with Related subsections — use it when a reservation row disagrees with Finance ledgers, Tenants profiles, or Sales availability.

SubsectionWhen to open itPair with
Understanding the Bookings ListPortfolio table, infinite scroll, refreshContract column (bookings-list-contract-column-mixed.png, bookings-list-contract-signed-tooltip.png, bookings-list-contract-not-signed-tooltip.png), Contract mark stays on the list (bookings-list-contract-mark-keeps-scroll-before.png, bookings-list-contract-mark-keeps-scroll.png, tenants-table-ct-signed-check.png, bookings-list-contract-mark-keeps-scroll-flow.mp4), Tenants module, Booking Lifecycle, Notifications — Payment overdue alerts
Booking categories stays open while you pickBooking categories stays open while you add another booking tag or No booking categoryProperty and category filters, FAQ — Does picking a second booking category close the menu?, Settings > Categories — Bookings
Tenant categories stays open while you pickTenant categories stays open while you add another named segment or No tenant categoryTenant categories (toolbar), FAQ — Does picking a second tenant category close the Bookings menu?, Tenants — All categories stays open, Emails — Tenant categories stays open
Select all on category filtersSelect all / Clear all on Booking categories and Tenant categories (and Finance Other filters)Booking categories stays open, Tenant categories stays open, FAQ — How do I show every category except one?, Finance — Tenant category filter
Filtering and Searching BookingsStatus cards, search, toolbar categories, Other filtersSearch in comments (bookings-other-filters-comments-with-search.png, bookings-other-filters-comments-search-filled.png, bookings-list-comments-search-chip.png, bookings-comments-search-flow.mp4), Deposit status filter updates while you work, Booking categories stays open, Tenant categories stays open, Select properties stays open (bookings-list-select-properties-stays-open.png, bookings-list-select-properties-two-buildings.png, bookings-list-select-properties-stays-open-flow.mp4), Contract status (bookings-list-other-filters-contract-status-all.png, bookings-list-other-filters-contract-status-signed.png, bookings-list-contract-status-signed.png, bookings-list-other-filters-contract-status-not-signed.png, bookings-list-contract-status-not-signed.png, bookings-list-other-filters-contract-status-not-applicable.png, bookings-list-contract-status-filter-flow.mp4), Sort By (bookings-list-contract-period-sort-unit-name-tiebreak.png, bookings-list-contract-period-sort-unit-name-tiebreak-reversed.png, bookings-list-contract-period-sort-unit-name-tiebreak-flow.mp4), Tenant categories (toolbar), Finance guide subsection index, Tenants — Tenant category filter, Portfolio KPI review — Step 6
Search in commentsComments → With plus Search in comments… (comments-only word search)FAQ — How do I search bookings by words in Internal Notes?, Glossary — Comments search (Bookings), Internal Notes tab, Search Bar (bookings-other-filters-comments-with-search.png, bookings-other-filters-comments-search-filled.png, bookings-list-comments-search-chip.png, bookings-comments-search-flow.mp4)
The Timeline ViewGantt-style overlap and blocksStay bars update after create or delete (bookings-timeline-vacant-unit-rows.png, bookings-timeline-view.png), Unit list updates after create or delete, Booking categories stays open, Tenant categories stays open, Select properties stays open (bookings-timeline-select-properties-stays-open.png, bookings-timeline-select-properties-two-buildings.png, bookings-timeline-select-properties-stays-open-flow.mp4), Search with no matches (bookings-timeline-search-empty.png, bookings-timeline-search-empty-flow.mp4, bookings-list-search-empty.png), Sales — Multicalendar, Audit — Manual Blocks, Manual block hygiene
Stay bars update after create or deleteNew stay bar without reload when the unit is already on the chartFAQ — Do I need to reload Timeline after Create Booking? (bookings-timeline-vacant-unit-rows.png, bookings-timeline-view.png), Unit list updates after create or delete, Creating a New Booking, Delete Booking (soft archive)
Unit list updates after create or deleteNewly booked rooms join the left-hand list in place when Only bookings is onFAQ — Do I need to reload Timeline after Create Booking? (bookings-timeline-view.png, bookings-timeline-vacant-unit-rows.png), Stay bars update after create or delete, Glossary — Timeline unit list, Creating a New Booking, Delete Booking (soft archive)
The Booking Detail ViewSidebar tabs for one reservationPlatform badge and filters follow the real OTA (bookings-list-ota-real-ota-airbnb-search.png, bookings-other-filters-source-platform-real-ota.png, bookings-list-airbnb-filter-channel-manager.png, bookings-detail-ota-real-ota-contract-info.png, bookings-detail-communication-tab-ota-real-ota.png, finance-transactions-select-platforms-real-ota.png, bookings-ota-real-ota-identity-flow.mp4), Channel-manager (Airbnb) bookings, Edit lockdown on Airbnb bookings, Payment plan matches the Airbnb payout, Booking.com stays: one rent line due at check-in (bookings-detail-ota-bookingcom-payment-plan-one-rent-line.png, bookings-detail-ota-bookingcom-transactions-record-payment.png, bookings-detail-ota-bookingcom-add-payment-modal.png, bookings-ota-bookingcom-collect-at-check-in-flow.mp4), When Airbnb changes dates or the payout, Finance module, Payment Allocation, Inbox — Communication tab (bookings-detail-ota-insights-bar-payout-matched-crop.png, bookings-detail-ota-contract-info-dates-only.png, bookings-detail-ota-airbnb-lockdown-dates-note.png, bookings-detail-ota-airbnb-lockdown-check-in-out.png, bookings-detail-ota-airbnb-lockdown-upload-signed-locked.png, bookings-detail-ota-airbnb-lockdown-upload-signed-tooltip.png, bookings-ota-airbnb-upload-signed-lock-flow.mp4, bookings-detail-ota-airbnb-lockdown-payment-plan.png, bookings-detail-ota-payment-plan-payout-matched.png, bookings-ota-insights-bar-payout-matched-flow.mp4, bookings-ota-payout-matched-plan-flow.mp4, bookings-ota-airbnb-edit-lockdown-flow.mp4, bookings-detail-ota-alteration-contract-info.png, bookings-ota-reservation-alteration-flow.mp4)

| Contract Info tab | Dates, rent, contract signing, onboarding / portal-access / check-in emails, delete vs cancel | Contract mark stays on the list (bookings-list-contract-mark-keeps-scroll.png, tenants-table-ct-signed-check.png, bookings-list-contract-mark-keeps-scroll-flow.mp4), Check-in & Check-out emails (bookings-detail-contract-check-in-out-emails.png, bookings-detail-contract-section-resend.png, bookings-contract-onboarding-portal-access-flow.mp4), Second tenant, Use check in date as contract start date, Exclude this booking from penalty fees, Check-in responsible, Deposit Refund Limit, Settings > Contract, Tenant Portal — Contract signing, Delete Booking (soft archive) | | Payment Plan tab | Scheduled charges and overages | Due Date Communication Rule (one reminder per unpaid line), Deposit refund lines / Refunded status (bookings-detail-payment-plan-deposit-refund-refunded-status.png, bookings-payment-plan-deposit-refund-refunded-flow.mp4), Finance — Contract Values tab, Utilities — tenant overages, Manage return of value | | Contract Values tab | Line-item ledger, discounts, reversals | Pending utility allocations, Edit amount routes the reversal (bookings-detail-contract-values-edit-amount-keep-as-credit.png, bookings-detail-contract-values-edit-amount-return-to-tenant.png, bookings-detail-contract-values-edit-amount-credit-note.png, bookings-detail-contract-values-edit-amount-flow.mp4), Leave outstanding on Edit amount (bookings-detail-contract-values-edit-amount-leave-outstanding.png, bookings-detail-contract-values-edit-amount-leave-outstanding-flow.mp4), Manage return of value, Return of value rows on Transactions, Manage credit notes, Finance — Contract Values tab | | Leave outstanding on Edit amount | Leave €X outstanding on this line when New net is above Paid | FAQ — What does Leave outstanding on this line mean?, Glossary — Leave outstanding (Edit amount), Edit amount routes the reversal (bookings-detail-contract-values-edit-amount-leave-outstanding.png, bookings-detail-contract-values-edit-amount-leave-outstanding-flow.mp4) | | Pending utility allocations | Approve or reject a utility overage on the booking Contract Values table | FAQ — Can I approve a utility overage from the booking?, Utilities — Allocations tab, Tenants — Consolidated finance tabs, Entering Monthly Utility Bills — Step 4 | | Transactions tab | Per-booking receipts and return-of-value rows | Card (recorded manually), Return of value rows on Transactions, Edit payment amount (pencil on a pending manual in-payment), Finance — Transactions tab, Glossary — Return of value, Glossary — Credit note (payment reject/revert) | | Card (recorded manually) | Desk / POS card tap recorded from + Transaction — not the VIVIN card rail | FAQ — When should I use Card (recorded manually)?, Finance — Type summary cards, Glossary — Card (recorded manually) | | Return of value rows on Transactions | Negative Return of Value row next to receipts so All / Manual match paid cash | FAQ — Why does Transactions show a negative Return of Value row?, Manage return of value, Finance — Contract Values invoice pills | | Deposit tab | Hold amount, dispute, and overpayment return with no deposit | Deposit status filter updates while you work, Finance Deposits updates from this tab, Refund an overpayment when there is no deposit (bookings-detail-deposit-tab-overpayment-no-deposit.png, bookings-deposit-overpayment-no-deposit-flow.mp4), Finance — Deposits tab, Managing a Check-out | | Internal Notes tab | Internal team thread on the booking | Edit your own notes in place, FAQ — How do I correct an internal note without deleting it?, Glossary — Edit internal notes, Settings > User profile (bookings-detail-comments-tab.png, bookings-detail-comments-mention-flow.mp4) | | Edit your own notes in place | Pencil on your bubbles; italic edited marker | FAQ — How do I correct an internal note without deleting it?, Glossary — Edit internal notes, Internal Notes tab | | Communication tab | Email, WhatsApp, and OTA guest chat | Platform badge and filters follow the real OTA, Airbnb guest chat (bookings-detail-communication-tab-ota-real-ota.png), Inbox module, Settings > Emails | | Tickets tab | Maintenance linked to booking | Operations — Tickets tab, Tenant Portal | | Tenant Management | Profile linkage from booking | Tenants module, Settings > Tenant categories | | Creating a New Booking | Manual reservation entry | Ignore unit preparation days, Allow check-in date in the past, Send onboarding email & contract, Use unit contract rents, Extra price per tenant, Stay bars update after create or delete, Unit list updates after create or delete, Processing a New Booking, Create New menu — Booking, Creating Bookings — Honour listing | | Ignore unit preparation days | Start a stay in the previous booking’s prep buffer | FAQ — Why are the days after checkout grey on Add Booking?, Creating Bookings — Ignore unit preparation days, Preferences — Booking Defaults (times and preparation), FAQ — Same-day turnovers | | Allow check-in date in the past | Start a manual stay before listing Available from | Creating Bookings — Allow check-in date in the past, FAQ — Marketplace booking Allow check-in date in the past, Listings — Availability Date | | Send onboarding email & contract | Skip or send the welcome email at create | Creating Bookings — Send onboarding, FAQ — Marketplace booking onboarding email, Check-in & Check-out emails | | Use unit contract rents | Copy unit contract values or type custom details | Creating Bookings — Use unit contract rents, FAQ — Marketplace booking unit contract rents, Empty fixed rent reads as €0 | | Extra price per tenant | Custom Extra Charge / Extra Deposit euros on Add Booking | Creating Bookings — Extra Charge, FAQ — Marketplace booking Extra Charge, Listings — Extra Charge per Tenant | | Second tenant | Co-occupant identity on Contract Info | Creating Bookings — Second tenant, FAQ — Marketplace booking Second tenant, Preferences — Second tenant | | Guarantor | Rent-backer identity and amount on Contract Info | Creating Bookings — Guarantor, FAQ — Marketplace booking Guarantor, Preferences — Guarantor | | Provider platform payment | Channel commission on Contract Info | Creating Bookings — Platform commission, FAQ — Marketplace platform commission, Delete Booking (soft archive) | | Use check in date as contract start date | Show operational check-in / check-out on the contract | Creating Bookings — Use check in date as contract start date, FAQ — Marketplace booking Use check in date as contract start date, Changing contract dates and rent | | Exclude this booking from penalty fees | Skip account penalty rules for one reservation | Creating Bookings — Exclude from penalty fees, FAQ — Marketplace booking penalty exclusion, Payments — Payment Delay Penalties | | Book several units at once | One tenant, several rooms in the same house | Date calendar stays clear, Settings > Tenant categories, FAQ — Book several units at once | | Date calendar stays clear for several units | No grey nights on the multi-unit date calendar; named clashes after Create | FAQ — Why doesn’t the Add Booking calendar grey occupied days for several units?, Creating a New Booking (single-unit occupancy greying) | | Empty fixed rent reads as €0 | Rent-free stay when Fixed rent (€) is left blank | FAQ — Rent-free booking, Listings — Rent and availability (bookings-add-booking-empty-fixed-rent.png, bookings-add-booking-empty-fixed-rent-flow.mp4) | | Cancellations and Refunds | Cancel flow and allocation | Paid, Deposit, and Refund on Cancel booking, Cancelling a Booking, Payment Allocation | | Paid, Deposit, and Refund on Cancel booking | Paid / Deposit / Refund cells on the cancel dialog | FAQ — What do Paid, Deposit, and Refund mean on Cancel booking?, Glossary — Cancel booking Paid / Deposit / Refund, Cancelling a Booking — Paid, Deposit, and Refund | | Delete Booking (soft archive) | Remove mistaken stays; provider-platform guard | FAQ — Delete Booking fails on integration reservation, Finance — Delete payment on the ledger, Provider platform payment | | Early Departures | Shortened stay and deposit | Managing a Check-out, Bookings — Contract Info tab | | Deeper workflow reads | Step-by-step procedures in this module | Common Workflows hub subsection index, Processing a New Booking | | Lockout catch-up after password recovery | Sign-in restored; module backlog accumulated | Common Workflows — Lockout catch-up, Getting Started — Lockout catch-up, Resetting a Management User Password — Step 3 | | Pending manual receipt approval | Recorded bank transfers still pending until Approve payments | Common Workflows — Pending manual receipt approval, Finance — Pending manual payments, FAQ — Manual receipt still pending | | Notification row-click navigation | /notifications row-click opens booking detail sidebar | Common Workflows — Notification row-click navigation, Notifications module — Notification row-click navigation, FAQ — Notification row-click navigation (notifications-row-navigate-to-booking-detail.png, notifications-row-navigation-flow.mp4) | | Payment alert to receivables triage | Ongoing/Ended payment overdue on opened booking | Common Workflows — Payment alert to receivables triage, Handling a Late Payment — Step 1, Payment Plan tab, Transactions tab (notifications-row-navigate-to-booking-detail.png) | | Confirmation alert triage | Upcoming Booking created / Payment received row-click | Common Workflows — Confirmation alert triage, Processing a New Booking — Step 5b, Transactions tab (notifications-row-navigation-flow.mp4) | | Reject/revert mistaken receipts | Duplicate or wrong-booking receipts after Approve | Common Workflows — Reject/revert mistaken receipts, Payment Allocation — Correcting mistaken receipts, Glossary — Credit note (payment reject/revert) | | Wrong tenant on a booking | Change tenant vs Delete when profile link is wrong | Common Workflows — Wrong tenant on a booking, Change tenant (reassign booking), FAQ — Wrong tenant on a booking (bookings-detail-change-tenant-control.png, bookings-detail-change-tenant-flow.mp4) | | Portfolio retirement decisions | Delete Booking vs Archive property vs Cancel booking scope | Common Workflows — Portfolio retirement decisions, Delete Booking (soft archive), FAQ — Portfolio retirement decisions (bookings-cancel-booking-modal-refund-types.png, listings-archived-populated-table.png) | | Portfolio segmentation by tenant category | Review one tenant segment across modules | Common Workflows — Portfolio segmentation, Settings > Tenant categories, Finance — Tenant category filter, Tenants — Tenant category filter | | Finance debt receivables triage | After alert row-click, review Payment Plan / Contract Values before portfolio Top debtors | Common Workflows — Finance debt receivables triage, Finance — Finance debt receivables triage, FAQ — Finance debt receivables triage hub, Payment Plan tab, Contract Values tab (finance-overview-debt-aging-expanded-bucket.png, finance-overview-debt-aging-walkthrough-flow.mp4) | | Finance Income status drill-down | After alert row-click, confirm Payment Plan / Contract Values before Income → In debt payment lines | Common Workflows — Finance Income status drill-down, Finance — Income status drill-down, FAQ — Finance Income status drill-down hub, Payment Plan tab, Contract Values tab (finance-overview-income-status-in-debt-modal.png, finance-overview-income-drill-down-flow.mp4) | | Cash flow forecast drill-down | After alert row-click, Approve on Transactions before Cash flow forecast month bars update | Common Workflows — Cash flow forecast drill-down, Finance Income status drill-down, Finance — Income chart and cash flow forecast, FAQ — Cash flow forecast drill-down hub, Transactions tab, Payment Plan tab (finance-overview-cash-flow-all-payments-modal.png, finance-overview-cash-flow-day-view.png, finance-overview-cash-flow-drill-down-flow.mp4) | | Bookings section cross-reference | Per-section pairing matrix | Module cross-reference, Finance guide subsection index |

Bookings section cross-reference​

Use the sections above for this module. Related pages are linked from Related below when present, or from Modules.

Pair with other Bookings module guide sections

Related below links this module to settings, concepts, workflows, and escalation paths.

Documentation map & escalation​

  • Modules hub — Hub pairing matrix across operator workspaces
  • Using in-app support — Escalate contract, deposit, or communication issues to Vivin support with booking context
  • Glossary — Term definitions used across booking lifecycle workflows

Upstream & downstream workflows​

Deeper workflow reads​

See Upstream & downstream workflows above for the same guides.

Settings that shape Bookings​

Deeper concept reads​

Operator modules (pairing surfaces)​

Operator habit hubs​

Day-to-day operator habits (lockout catch-up, pending receipts, payment triage, handoffs, and related playbooks) live on the Common Workflows habit hub.

Deep-link anchors for habit hubs

Lockout catch-up after password recovery​

Pending manual receipt approval​

Notification row-click navigation​

Payment alert to receivables triage​

Finance debt receivables triage​

Finance Income status drill-down​

Cash flow forecast drill-down​

Confirmation alert triage​

New inventory to first booking handoff​

Property setup to first arrival handoff​

Confirmation to check-in handoff​

Check-in to check-out handoff​

Check-out final utilities handoff​

WhatsApp per-booking messaging​

Bot reasoning (audit)​

ChatBot settings​

Reject/revert mistaken receipts​

Check-out ledger cleanup before refund​

Utility overage collections​

Cancellation collections before void​

Check-out collections before refund​

Handling a Late Payment collections​

Check-out vs cancellation​

Bulk Hostkit invoicing​

Rent reduction after invoicing​

Deposit missing on Finance Deposits​

Same-day turnover coordination​

Occupancy KPI to block hygiene handoff​

Partly collected security deposit​

Month-end invoicing (fixed date)​

Wrong tenant on a booking​

Cancel Booking vs Delete Booking​

Provider platform Delete Booking guard​

Archived booking ledger visibility​

Portfolio retirement decisions​

Portfolio segmentation by tenant category​

Directory list refresh​

When a list needs a refresh instead of showing rows, use Retry or reload the page. Zero rows after a successful load means your filters matched nothing — widen filters or clear search. On Timeline, that empty result clears the listing column while the date header stays (No bookings found) — not the same as Retry on the chart. See Search with no matches.

See FAQ — Directory list refresh and Glossary — Directory list refresh.

Key glossary terms​

API & companion guides​

Module documentation hubs​

  • Bookings module — Full reservation lifecycle with sidebar tabs and Timeline Gantt (this page)
  • Utilities module — Bills Included ceiling model, Connections, AI bill upload, and tenant overage charges on payment plans (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 /properties URL 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 /notifications history with search, filters, and row-click navigation (hub)
  • AI Chat module — AI Assistant using Landlord MCP tools for portfolio Q&A (hub)
  • Audit module — Portfolio-wide Manual Blocks and Discounts contract-value review (hub)
  • Account Settings — Workspace-wide financial policies, templates, integrations, and operational defaults (hub)
  • API Reference hub — Partner HTTP contracts, Swagger onboarding, and partial vs full feeds (hub)