Finance
Configure Invoicing & Payments (setup steps 5–6) and Listings / Bookings (steps 13–14) before you approve receipts or export invoices here. Payment vocabulary: Payment Allocation. After go-live: Handling a Late Payment and Managing a Check-out & Deposit Refund. Workflow pairing: Modules — Setup sequence after go-live.
Open Access, tabs, and toolbar first, then triage Overview Tab KPIs and debt before Contract Values Tab or Transactions Tab. Deposit returns: Deposits Tab. Segment filters: Tenant category filter. Guide subsection map: Finance guide subsection index (tab sections + Related subsections). Non-linear operator habits (Lockout catch-up, Notification row-click navigation, Payment alert to receivables triage, Confirmation alert triage, Finance debt receivables triage, Finance Income status drill-down, Cash flow forecast drill-down, Pending manual receipt approval, Reject/revert mistaken receipts, Partly collected security deposit, Wrong tenant on a booking, Cancel Booking vs Delete Booking, Portfolio retirement decisions, Portfolio segmentation by tenant category) have matching Related subsections below. Full pairing matrix: Finance section cross-reference · Modules — Module cross-reference.
The Finance module is your central hub for all financial tracking. It consolidates income, expenses, deposits, and payment activity across every booking and property — giving you a complete picture of your portfolio's financial health. With automated rent collection, invoice generation, and payment allocation, the Finance module eliminates manual work and reduces errors to near zero.
Open the Finance module at platform.vivin.app/finance. Tab routes include /finance/income, /finance/contractValues, /finance/transactions, /finance/payouts, and /finance/deposits. See Deep Links for all routes.
Unknown Finance tab slugs (for example /finance/bookings) redirect to /finance (Overview) so the URL matches the tab on screen. Open a transaction from the ledger with /finance/transactions/<transactionId>; if that id is missing from the loaded result set, you see Transaction not found. and return to /finance/transactions. Details: Deep Links — Invalid, legacy, and mistyped URLs.
Drill down from booking rows in Bookings; segment debtors in Tenants With Debt; tie operational costs in Operations Cash Flows. When payment overdue alerts row-click into a booking, reconcile balances here on Contract Values — see Handling a Late Payment — Step 1. Month-end utility spend from Utilities — Bills AI Invoice Reader is visible on AI usage API (utility_bill_extraction on GET /ai-usage/summary) — pair with Entering Monthly Utility Bills — Step 2. Section-to-doc pairing: Finance section cross-reference. Hub tab matrix: Modules — Module cross-reference.
Access, tabs, and toolbar
Tab visibility pairs with Settings > Users and roles — Approve payments; bookmark routes in Deep Links — Finance. Full pairing matrix: Finance section cross-reference.
Which Finance tabs appear
Anyone with access to the Finance module can use Overview, Income, and Contract Values — portfolio summaries, scheduled charges, and income reporting.
The Transactions, Payouts, and Deposits tabs require the Approve payments permission (finance.approve_payments). Without it, those tabs are not shown in the Finance toolbar, and deep links such as /finance/transactions show a standard permission message instead of the ledger. In the default role matrix, Super Admin includes this permission; other roles receive it only when an account admin enables it in Settings > Users > Role Permissions.
Month range vs date range
- Month picker (one or more months in the toolbar): applies to Overview, Income, and Contract Values.
- Date range (from–to picker): applies to Transactions, Payouts, and Deposits.
A small refresh indicator may appear next to the active control while the current tab is loading data.
Large tables and infinite scroll
Contract Values, Transactions, Payouts, and Deposits load ledger rows from the server in chunks instead of downloading the entire account on first paint. This matches the infinite scroll (directory loading) pattern used on Bookings, Listings, and other large tables. On Transactions, every Other filters combination stays server-paginated (#3178) — the tab no longer falls back to loading the whole account when deposit, invoice, platform, category, or related drawer filters are active.
| Phase | Behaviour |
|---|---|
| First paint | Up to 20 rows for the active tab, date range (or month picker on Contract Values), Other filters, search, and status pills. |
| Scroll | When you scroll near the bottom of the table, the next chunk (5 rows) loads automatically. Compact skeleton rows may appear under the last visible row while the request is in flight. |
| Done | Loading stops when every row that matches the server-side filter has been fetched. There is no End of list footer on these Finance tables (unlike Notifications or Listings). |
Export on Contract Values and Transactions still downloads the full filtered set — you do not need to scroll the table to the end before exporting. Changing the month picker, date range, Other filters, or search clears the accumulated pages and starts again from the first chunk.

Overview and Income use server aggregation for KPI cards and property roll-ups; they do not use this table-style infinite scroll pattern.
Other filters
The Other filters button in the Finance toolbar opens a sidebar (the same pattern as Bookings and Listings). Use it to narrow by property, booking, owner, categories, IBAN or fiscal filters, payment plan, deposit status, invoice status, and more. On Contract Values and Transactions, active filters appear as removable pills above the table, with Clear all to reset without reopening the sidebar.
The drawer reuses the word categories in three places — each maps to a different field:
| Section in drawer | Control placeholder | What it filters |
|---|---|---|
| Booking | Select categories | Booking tags (bookingTags) — same labels as Settings > Categories > Bookings and the Bookings list Select categories menu |
| Property & Listing | Select categories (second) | Listing tags on units (listingTags / listing tags) |
| Finance | Select "others" categories | Miscellaneous charge categories for non-standard payment lines (Settings Others Items Categories) |
The rest of this subsection focuses on tenant segments under Tenant → Tenant category and booking tags under Booking → Select categories.
Tenant category filter
Under Tenant → Tenant category, Finance narrows every tab that honours Other filters — Overview, Income, Contract Values, Transactions, Deposits, and Payouts — to rows whose linked booking’s tenant profile carries the selected tenant categories segment(s). The control mirrors Bookings — Other filters tenant category and Tenants — Tenant category filter: same OR-combined server filter, including No tenant category for bookings whose tenant has no segment on file.
| Selection | What appears |
|---|---|
| One or more named segments | Rows for bookings whose tenant profile is assigned at least one of the selected categories. |
| No tenant category only | Rows for bookings whose tenant has no category assigned. |
| Named segments + No tenant category | Rows that match any selected segment or have no category — useful when reconciling mixed onboarding before you standardize assignments. |
No tenant category is resolved server-side: the client sends real category ids in tenantCategoryIds and, when No tenant category is checked, a separate noTenantCategory flag that is OR-combined with those ids (the UI sentinel is never sent as a category id). Active choices show as removable pills above the table on Contract Values and Transactions; combine them with the month picker or date range, property, owner, booking tags, and the other drawer sections. Export on Contract Values and Transactions reflects the full filtered population.
Finance Other filters vocabularies load from lightweight catalog endpoints — not from a whole-account bookings cache preload:
| Drawer control | Catalog source |
|---|---|
| Tenant → Tenant category | Full account list from GET /tenant-categories (every segment defined under Settings → Tenant categories) |
| Booking → Select categories | Tag vocabulary from GET /bookings/tags |
| Booking → Select bookings | Paged async picker (GET /bookings/search) — not a full GET /bookings/cache download |
| Property & Listing → Select categories | Listing tags from GET /listings/tags |
Bookings — Other filters still uses the portfolio filter catalog (GET /bookings/portfolio/filter-options) for some controls — Finance drawer parity for tenant category and booking tags now matches the account-wide definitions above.
Saving a new Category on Tenants → Tenant Info back-syncs booking.tenantCategoryId and force-refreshes Finance caches in the background. Tenant category filter results on Contract Values, Overview, and Deposits typically reflect the segment within seconds instead of waiting for the ~30-minute cron. The drawer option list already lists every segment from GET /tenant-categories (#2314) — this refresh updates which rows match, not which segments appear in the menu. See Glossary — Finance tenant category cache refresh and FAQ — Finance tenant category filter parity.
During month-end review when Analytics Ranking or Occupancy suggests one segment underperforms, scope Select properties to the building in question, then add Tenant category before you change rates account-wide — same habit as Portfolio KPI review — Step 6. Cross-check profile counts on Tenants before you adjust portal modules or communication rules for the whole account.

Named segments also appear as removable toolbar pills after you close the drawer:

Tenant category filter captures added 2026-06-28 02:08 UTC (VIVIN_DOCS_BASE_URL=http://localhost:5173 VIVIN_DOCS_RECORD_API=$VITE_API_BASE_URL VIVIN_DOCS_PROPERTY_SEARCH=AA-11-5D VIVIN_DOCS_TENANT_CATEGORY_SEARCH="Teste Jorge" npx tsx tools/capture-finance-other-filters-tenant-category-screenshot.ts).
Booking tags
Under Booking → Select categories, Finance filters ledger and roll-up rows by the same booking tags configured under Settings > Categories > Bookings. Options come from the account tag vocabulary (GET /bookings/tags) — not from listing tags or payment-type categories (#2314).
The menu lists every tag in use plus a synthetic No category row at the bottom (parity with the Bookings list):
| Selection | What appears |
|---|---|
| One or more named tags | Rows whose linked booking has at least one of the selected tags (OR within the tag subset). |
| No category only | Rows for bookings with no booking tags assigned (empty bookingTags list). |
| Named tags + No category | Rows that match any selected tag or have no tags — useful when reconciling mixed segmentation before you standardize labels. |
No category is resolved server-side: the client sends real tag codes in categories and, when No category is checked, a separate noCategory flag that is OR-combined with those tags (the UI sentinel is never sent as a tag string). The same rule applies across Finance tabs that honour Other filters — Overview, Income, Contract Values, Transactions, Deposits, and Payouts — including Export on Contract Values, Transactions, and Payouts (the download reflects the full filtered population, not only rows already loaded in the table). On Payouts, booking tags resolve through grouped tenant in-payments (bookingInPayments[].booking.bookingTags); the All, Credit Card, and IBAN summary cards at the top of the tab use the same drawer filters as the table (#2352).
Active choices show as removable pills above the table (the pill label reads No category for the uncategorized slice). Combine them with month or date range, property, booking, owner, and the other drawer sections as needed.

Named tags use the same drawer control; active choices appear as removable pills above the table (example Student):

Booking category filter captures refreshed 2026-06-13 12:30 UTC (VIVIN_DOCS_BASE_URL=http://localhost:5173 VIVIN_DOCS_RECORD_API=$VITE_API_BASE_URL VIVIN_DOCS_BOOKING_TAG=Student npx tsx tools/capture-finance-booking-categories-filter-screenshot.ts).
Property & Listing filters
The Property & Listing section sits below the Booking block in the same drawer. Use it when you need portfolio slices that are not tied to a single booking id:
| Control | What it does |
|---|---|
| Select owners | Multi-select from registered property owners (same owner registry as Bookings → Select owners; Finance loads options from the account-wide portfolio filter catalog). Choosing one or more owners narrows the Property picker below — the server only returns buildings linked to those owners. You cannot widen beyond an owner selection from the property menu alone; clear owners to search the full account again. |
| Property | Multi-select buildings with the same server-driven search picker pattern as Sales → Pricing: opening the menu prefetches about 10 rows, typing runs debounced server search, and scrolling near the bottom loads the next page. Selected properties render as chips on the control. With an active query, internalName matches rank above address-only hits before pagination — see Glossary — Picker search ranking. Current builds (June 2026 performance pass) query the paged property search endpoint instead of downloading every property when the drawer opens — important on large portfolios. |
| Select categories | Multi-select listing tags on units (listingTags). Options are the distinct tag strings already in use across live listings (sorted), not a dump of every listing row. Configure the vocabulary under Settings > Categories. |

After you pick one or more listing tags, removable toolbar pills above the table mirror the selection (same pattern as booking tags and property chips):

Property & Listing Select categories captures refreshed 2026-06-13 07:12 UTC (VIVIN_DOCS_BASE_URL=http://localhost:5173 VIVIN_DOCS_RECORD_API=$VITE_API_BASE_URL npx tsx tools/capture-finance-listing-categories-filter-screenshot.ts).


Property picker search-ranking capture refreshed 2026-06-17 15:10 UTC (VIVIN_DOCS_BASE_URL=http://localhost:5173 VIVIN_DOCS_RECORD_API=$VITE_API_BASE_URL VIVIN_DOCS_PROPERTY_SEARCH=António npx tsx tools/capture-finance-other-filters-property-picker-search-rank-screenshot.ts).

Pick owners first when you reconcile one landlord’s slice, then open Property — the menu respects the owner filter server-side. Clearing an owner chip widens the property search again. Property chips stay labelled even when the typed search scrolls those rows off the visible page.
Owner-scoped property picker capture refreshed 2026-06-13 05:12 UTC (VIVIN_DOCS_BASE_URL=http://localhost:5173 VIVIN_DOCS_RECORD_API=$VITE_API_BASE_URL VIVIN_DOCS_OWNER_SEARCH="QA Owner Test" VIVIN_DOCS_PROPERTY_SEARCH=AA-11-5D-Bh npx tsx tools/capture-finance-other-filters-owner-scoped-property-picker-screenshot.ts).
Deposit status filter
The Booking section of the Finance drawer mirrors the Bookings list Other filters drawer for Discounts and Deposit status (same API fields, server-side on every Finance tab that honours Other filters). Lifecycle vocabulary (Not paid, Partial paid, Fully paid, Ready to refund, Disputed, Refunded) is defined in Glossary — Deposit lifecycle status.
| Control | Options | What it filters |
|---|---|---|
| Discounts | All, With, Without | Bookings whose scheduled charges include at least one line-level or booking-scoped discount (paymentsPlan). |
| Deposit status | Multi-select: Not paid, Partial paid, Fully paid, Disputed, Ready to refund, Refunded (empty = all statuses) | Operational depositStatus on the linked booking (depositStatuses) — any-of match within your selection. Aligns list slices with the lifecycle pill on the booking Deposit tab and Finance → Deposits rows. |
Use Deposit status → Ready to refund together with the Deposits tab Pending refund / Overdue status cards when finance is processing bank returns after check-out — operators flip Ready To Refund on each booking once inspection and deductions are settled; finance then filters the portfolio queue without relying on ad-hoc notes. Omit Refunded from the selection when you only want open refund queues.

Deposit status filter capture added 2026-07-09 00:08 UTC (VIVIN_DOCS_BASE_URL=http://localhost:5173 VIVIN_DOCS_RECORD_API=$VITE_API_BASE_URL npx tsx tools/capture-deposit-status-filter-screenshots.ts).
On the Transactions tab only, the drawer adds a Transactions section at the top with Select platforms — a multi-select of booking source platforms. The product lists Uniplaces, Inlife, RoomLess (Spacest), Housing Anywhere, Spotahome, Airbnb, Booking.com, Vivin booking engine, Direct, Edu Portugal, Erasmus Life Lisboa, Channex, and Long-stay (LS) when enabled or applicable. That filter matches each row’s booking integrationPlatform (or treats standalone finance rows without a booking as LS). Use it with the date range when reconciling one channel’s bank inflows. Other Finance tabs do not show this block.
The module is organized into several tabs, each focused on a specific financial area.
Transactions, Payouts, and Deposits are shown only to users who have payment-approval permission for Finance. If those tabs are missing for your account, ask an administrator to grant the appropriate role or permission.

Overview Other filters capture refreshed 2026-06-20 01:06 UTC (VIVIN_DOCS_BASE_URL=http://localhost:5173 VIVIN_DOCS_RECORD_API=$VITE_API_BASE_URL npx tsx tools/capture-finance-overview-redesign-screenshots.ts — FilterDrawer uses [role="dialog"], not aside).
Overview Tab
Overview KPIs pair with Dashboard — KPI cards and Analytics — Revenue tab; triage debt with Handling a Late Payment and Notifications — Payment overdue alerts. AI Chat, WhatsApp Genius, and Landlord MCP get-finance-overview / get-revenue-summary read these same Finance figures (#3183) — see Landlord MCP — Finance-sourced portfolio metrics. Full pairing matrix: Finance section cross-reference.
The Overview tab is a portfolio financial dashboard: KPI cards for the month you pick in the toolbar, stacked Income and Cash flow forecast charts, and a Debt Aging panel for receivables triage. Use the month picker and Other filters in the Finance toolbar to narrow by property, owner, booking tags, and related dimensions.
Overview KPIs, charts, and aging load from a lightweight server aggregation (one request for the always-visible strip). Drill-down lists load only when you open a modal — System / Manual Payments rows and realized cash-flow lines come from the same filtered SQL the cards and bars use (#2363), so the list foots to the figure you clicked. A normal visit does not download a whole-account transactions cache.
After you record, edit, approve, reject, or revert a payment, debt and income aggregates typically reflect the change within seconds on your next visit or when the toolbar refresh indicator finishes — you do not need to wait for a scheduled cron. Large accounts coalesce bulk refreshes so one portfolio sweep does not trigger a storm of per-booking recomputes. Pending manual receipts still exclude their amounts from debt totals until Approve payments confirms them — see Pending manual payments.
KPI strip (seven cards)
The top row shows seven compact KPI cards. Cards tagged with the selected month in the title follow the month picker; cards tagged All time ignore it and reflect current portfolio balances. Cards with a non-zero count are clickable and open a scoped drill-down modal (#2127).
| Card | Scope | What it shows |
|---|---|---|
| Income | Selected month | Total income expected for the period — Paid, Scheduled, and In debt payment lines combined. Year-over-year comparison may appear when prior-year data exists. |
| Invoiced | Selected month | Amount collected in the period (paid lines). Subtitle shows % collected against scheduled + debt for the same month. |
| System Payments | Selected month | Total of automated in-payments in the window (virtual IBAN, credit card, and other non-manual rails), excluding rejected rows. Click to open the System/Manual drill-down. |
| Manual Payments | Selected month | Total of manually recorded in-payments in the window (transfer, cash, deposit refund, platform, etc.), excluding rejected rows — includes pending manual receipts still awaiting approval. Click to open the System/Manual drill-down. This is not the approval queue — see Pending manual payments. |
| Overdue Deposits | All time | Security deposits past their refund due date (per-deposit display caps apply when values look corrupted). |
| Total Debt | All time | Sum of tenant underpayment across bookings. Amounts far above rent or contract value are capped for display when they look like bad data. Dashboard Total Debt uses the same balance rule but only for ongoing bookings — hover its info icon for the >15 days overdue subtitle on live stays. See Glossary — Dashboard KPI cards and Handling a Late Payment — Step 1. |
| Uncovered Debt | All time | Portion of Total Debt not covered by held security deposits — highlights receivables where deposit offsets are insufficient. See Glossary — Uncovered Debt and FAQ — Uncovered Debt KPI. |

Overview KPI + chart + In debt drill-down modal re-verified 2026-06-20 07:06 UTC (VIVIN_DOCS_BASE_URL=http://localhost:5173 VIVIN_DOCS_RECORD_API=$VITE_API_BASE_URL VIVIN_DOCS_PROPERTY_SEARCH=AA-11-5D npx tsx tools/capture-finance-overview-redesign-screenshots.ts) — seven-card strip, stacked Income chart with 6M–24M pills, Cash flow forecast (Day toggle), Debt Aging expanded bucket, Other filters drawer, All payments cash-flow modal, and In debt payment-line modal scoped to property AA-11-5D. System / Manual Payments drill-down modals + walkthrough MP4 added 2026-07-27 19:25 UTC (tools/capture-finance-overview-system-manual-drilldown.ts, tools/record-finance-overview-system-manual-drilldown-mp4.ts).
System and Manual Payments drill-down
Card totals pair with Transactions — Type summary cards and soft-archive visibility in Archived bookings on the ledger (#1897). Approval work still belongs on Transactions, not this modal — Pending manual payments. Full pairing matrix: Finance section cross-reference.
Click System Payments or Manual Payments on the KPI strip to open a transaction list for the same month picker and Other filters as the card (#2127 / #2363):
- Open Finance → Overview.
- Click System Payments (green dot) or Manual Payments (amber/yellow dot) when the card shows a non-zero count.
- Review tenant, unit, type, date, status, and amount. Use the modal search to narrow by tenant, unit, or type — the header total € stays the unfiltered card total so the list always foots to the KPI.
- Click the open-booking control on a row to jump into that reservation’s sidebar.
- Close the modal and continue on Transactions when you need Pending approval, bulk actions, or export.


The SQL-backed Manual Payments card applies the same soft-archive gate as Finance → Transactions (#1897 / #2363): after Delete Booking, manual / provider-platform rows for that reservation drop out of the card and its drill-down, while vIBAN / credit card System rows stay. Card and modal stay consistent because both read the same filtered base.
Pending manual payments
The Manual Payments KPI totals every non-rejected manual in-payment in the selected month — including pending rows — so a high number does not by itself mean the approval queue is clear. Clicking the card opens the month drill-down of all manual rails; it does not isolate pending-only rows. When operators record receipts that need confirmation, triage from Transactions (amber Pending chip), not the Overview modal alone. Illustrated behaviour: Glossary — Pending manual in-payment (Finance). (Pre-#1739 Overview exposed a Pending Payments card for the approval queue only; the redesigned KPI is a monthly manual total — workflow cross-links aligned 2026-06-20.)
- Open Finance → Transactions (
/finance/transactions). - Widen the date range if the receipt was recorded outside the default window (use Clear date range selection when older pending rows are hidden).
- Click the amber Pending chip on the All type-summary card (or use the Pending status filter) to isolate manual rows — see Notification triage — Step 4, FAQ — Pending manual in-payment on
/notifications, FAQ — Manual receipt still pending, Payment Allocation — Pending manual approval (month-end habit), Processing a New Booking — Step 5b, Handling a Late Payment — Step 4b, Managing a Check-in — Step 3b, Entering Monthly Utility Bills — Step 4b, Cancelling a Booking — Step 2a, and Portfolio KPI review — Step 7 for the same habit after payment alerts, move-in receipts, utility overages, settlement receipts, or month-end reconciliation.

Pending-pill capture added 2026-06-27 14:08 UTC (VIVIN_DOCS_BASE_URL=http://localhost:5173 VIVIN_DOCS_RECORD_API=$VITE_API_BASE_URL npx tsx tools/capture-finance-transactions-pending-pill-screenshot.ts — clears date range, clicks amber Pending on All card). Pending-approve walkthrough MP4 added 2026-06-27 15:08 UTC (tools/record-finance-transactions-pending-approve-flow-mp4.ts).
- Approve each row with the per-row icon, or tick multiple rows and use Approve selected / Reject selected from the floating bulk bar. On the ledger, Reject is bulk-only (no per-row reject icon) — the same Reject Payment modal as booking Transactions applies. See Row actions on in-payment rows and Payment Allocation — Correcting mistaken receipts for reject/revert semantics; overage and settlement variants: Entering Monthly Utility Bills — Step 4b, Cancelling a Booking — Step 2a.
- After approval, booking balances, Contract Values, Total Debt, and Debt Aging refresh; clear related payment notifications when the balance is correct.
Until a manual in-payment is approved, it does not reduce In debt scheduled lines or Total Debt the way a confirmed receipt would. Record the payment when the bank deposit arrives, then approve (or reject mistaken duplicates) before closing a collections case.
Income chart and cash flow forecast
Illustrated collections history chart (distinct from Dashboard Cash Flow Forecast rent-due timing): Glossary — Cash flow forecast (Finance Overview).
Below the KPI strip, the left column (about five sevenths of the width on desktop) stacks two charts that share the same range selector (6M, 9M, 12M, 18M, 24M):
Income (stacked bar chart) — Scheduled income per month, split into Paid (dark teal), Scheduled (light teal), and In debt (red). Each bar shows a € total above the stack. Hover a column for a tooltip with per-status amounts; click a segment or a tooltip row to open the payment-line drill-down for that month and status. Large Y-axis values abbreviate as €Nk, €NM, or €NB; tooltips and modals keep full precision. Illustrated Income status behaviour (distinct from the Cash flow forecast chart below): Glossary — Finance income status.
Cash flow forecast — Net cash received per period (actual collections only — no scheduled or overdue amounts). Toggle Month vs Day on the chart header. Click a month or day bar to open a drill-down listing all payments collected in that period (same modal shell as the Income chart, status filter set to All payments).

Cash flow Day view capture re-verified 2026-06-20 07:06 UTC (capture-finance-overview-redesign-screenshots.ts — toggle Day on the Cash flow forecast chart after property filter AA-11-5D).

Debt Aging is the booking-level receivables surface — expand overdue buckets or pick Top debtors to open a booking (FAQ — Bookings that owe money). The Total Debt KPI above summarizes underpayment but does not open a table.
Income chart + Debt Aging PNGs and the In debt drill-down modal re-verified 2026-06-20 07:06 UTC (same script — property filter AA-11-5D, bar-segment click on Income chart, month bar on Cash flow forecast).
Cash flow drill-down video added 2026-06-20 08:08 UTC (tools/record-finance-overview-cash-flow-drill-down-mp4.ts — property filter AA-11-5D when needed).
Debt Aging panel
The right column shows Debt Aging — receivables triage aligned with the Total Debt and Uncovered Debt KPIs:
| Element | Behaviour |
|---|---|
| Aging buckets | Horizontal bars for 0–15 d, 16–30 d, 31–60 d, and +60 d overdue. Each overdue charge is aged by its own due date, so one booking can appear in several bands at once — an old arrear in +60 d and a recent one in 0–15 d — and every band shows the exact amount owed at that age. Click a bucket with debt to expand inline tenant · unit rows showing that band's amount and its Overdue since date. The number on a bucket counts distinct bookings with debt in that band, so it is intentionally not additive across bands. |
| Top debtors | Ranked list of bookings in debt with lifecycle badge and amount. Each debtor's coloured dot reflects the age of its oldest unpaid overdue charge. Click a row to open the booking in the Finance context sidebar. When more than five debtors exist, +N more expands the list. |
| Empty state | When no bookings owe-al, the panel shows No outstanding debts. |

Debt Aging walkthrough video added 2026-06-20 11:08 UTC (tools/record-finance-overview-debt-aging-walkthrough-mp4.ts — property filter AA-11-5D when expanded rows need clean data).
Use Debt Aging (or the In debt segment on the Income chart) for booking-level receivables context. After a payment alert on /notifications, row-click navigation often lands here via Notification triage — Step 4 — see Common Workflows — Finance debt receivables triage, Glossary — Finance Debt Aging, FAQ — Bookings that owe money, FAQ — Uncovered Debt KPI, and FAQ — Finance Income status drill-down (finance-overview-debt-aging-expanded-bucket.png, finance-overview-debt-aging-walkthrough-flow.mp4). The legacy full-table Total Debt modal from the pre-#1739 layout is no longer shown in the product.
Income status drill-down
Click a coloured segment on the Income chart, a row in its hover tooltip, or a Cash flow forecast bar to open a modal scoped to that month (and day when you clicked a daily bar). Pick Paid, Scheduled, In debt, or All payments depending on what you clicked.
The modal header shows the status colour, the month label, a count of lines, and the total € for that slice. Columns include Tenant, Unit, Type, Date, and Amount; use View booking on a row to jump to that booking (the modal closes when you navigate away). Search filters tenant or unit names inside the modal.

Payment-line drill-down is month- and status-scoped — for booking-level receivables, use Debt Aging instead (FAQ — Finance Income status drill-down — illustrated Income chart + In debt modal, FAQ — Bookings that owe money — Top debtors panel).

Income In debt drill-down video added 2026-06-20 10:08 UTC (tools/record-finance-overview-income-drill-down-mp4.ts — property filter AA-11-5D when modal rows need clean data).
Cash flow All payments modal capture added 2026-06-20 03:06 UTC (capture-finance-overview-redesign-screenshots.ts — click month bar on Cash flow forecast chart).
Use Overview as your daily health check: scan Income vs Invoiced for the month, watch Uncovered Debt, then open In debt lines or Debt Aging top debtors before calling tenants or opening Transactions.
Income Tab
The Income tab (/finance/income) is the portfolio revenue drill-down for the month (or months) you pick in the Finance toolbar. It complements Overview (high-level health) and Contract Values (scheduled charges) by showing what was actually received, split by payment category and rolled up by property and unit.
Toolbar and filters
- Month picker — Shared with Overview and Contract Values. The selected month drives the summary card on the right and highlights that month in the six-month trend chart (other months render at reduced opacity).
- Other filters — Opens the same Finance drawer used on Overview and Contract Values (tenant, booking, property & listing, owner, and related dimensions). It does not include the Select platforms block that appears only on Transactions — use Transactions when you need to isolate channel-sourced payments.

Monthly income trend (stacked chart)
The top-left card shows a six-month stacked bar chart whose window ends at the toolbar month (six calendar months inclusive, not a rolling “last six months from today”):
| Stack segment | Colour role | Meaning in the product |
|---|---|---|
| Rent | Primary teal | Collected rent for the month |
| Admin fee | Aqua | Admin-fee income |
| Cleaning fee | Light green | Cleaning-fee income |
| Others | Pale teal | Other received payment types in the income roll-up |
Hover a bar for a dark-teal tooltip with per-category amounts and a total for that month. An information icon beside the chart title explains how the trend window is computed. A compact legend on the right of the chart header matches the stack colours.
Visual emphasis — bars for months other than the toolbar selection render at 50% opacity so the selected month stands out at full strength. Large Y-axis ticks abbreviate as €Nk or €NM; tooltips and the summary card keep full precision.
Data loading — the trend chart, summary card, and Income by property list load from a single server request per month-picker or Other filters change (no infinite scroll on this tab). While the first fetch runs, skeleton placeholders appear in the chart and summary card; when no collections exist in the window, the chart shows an empty-state message instead of a blank frame.

Income trend + summary + expanded property PNGs added 2026-06-20 08:08 UTC (tools/capture-finance-income-tab-screenshots.ts — dirty checks scoped to chart row / property cards, not full-page clone rows behind filters).
Summary card (selected month)
Beside the chart, the summary card titles itself with the selected month (for example June 2026 Summary) and shows:
- Total income — Grand total received across all properties in scope for that month (large headline under a TOTAL INCOME label)
- Property count — How many properties contributed rows below (for example 3 properties)
- Category breakdown — Rent, admin fee, cleaning fee, and others with € amounts and thin progress bars proportional to the month total (legend colours match the trend chart)
Use this card for a quick “how much landed this month?” answer before you expand individual properties.

Income by property (expandable rows)
Below the chart row, Income by property lists one card per property in the filtered set. Each collapsed row shows:
- Property name and address line
- Rent, Admin fee, Cleaning fee, and Others totals for the month, each with a per-unit average beneath the total
- A highlighted Income badge with the property’s all-in total for the month
Click a row (or its chevron) to expand and reveal unit-level lines: each listing’s rent, fees, and income for the same month. Expand multiple properties at once; collapse with a second click. Expanded property headers use a light mint tint; unit rows sit on a pale grey panel beneath. When a unit row has a linked tenant, the right column shows a coloured initial avatar and tenant name with the unit’s income in parentheses.
Expanded state persistence — if you change filters but the same properties remain in the result set, rows you already expanded stay open (Vivin preserves expansion by property id).
Empty state — when Other filters or the month picker match zero properties, the list is replaced by a centred No income for this period message (distinct from the chart’s empty trend).


Income month-and-expand video added 2026-06-20 09:08 UTC (tools/record-finance-income-month-and-expand-mp4.ts — property filter AA-11-5D when chart row needs clean data).
Use this tab to:
- Verify that monthly rent is being collected for all active bookings
- Compare properties and units within one month before owner reporting
- Spot a weak month in the six-month trend, then expand the property rows that drove the dip
- Identify months with lower-than-expected income (change the toolbar month picker and watch the summary card + chart highlight move together)
Contract Values Tab
Scheduled charges pair with Bookings — Contract Values tab — rent edits below the invoiced floor happen on the booking sidebar, not here. Full pairing matrix: Finance section cross-reference.
The Contract Values tab shows a summary of all scheduled charges across all bookings — the "expected" side of your financial picture. This is the complete list of what tenants are contractually obligated to pay.

Each payment-type summary card (Rent, Admin fee, Deposit, and so on) breaks the portfolio into clickable status chips:
| Chip colour | Meaning | Click behaviour |
|---|---|---|
Green (paid) | Fully collected for that type in the selected month range | Filters the table to paid lines for that payment type |
Red (debt) | Past-due or unpaid scheduled charges | Filters to in debt lines — use this for late-payment triage |
Grey (scheduled) | Future or not-yet-due charges | Filters to scheduled lines |
Amber (partial) | Partially allocated payments | Filters to partially paid lines |
Click the same chip again to clear that status filter. Combine chips with the month picker, Other filters, and Search to narrow a receivables list before export or before opening individual bookings.

Use Export on the Contract Values toolbar to download the currently filtered table as CSV or Excel (.xls). Filenames are vivin-contract-values-YYYY-MM-DD.csv or vivin-contract-values-YYYY-MM-DD.xls. The file respects the month picker, Other filters, search, and any type/status pills active on the tab. If nothing matches, the export action does not produce a file.

Use this tab alongside the Transactions tab to identify discrepancies: if a charge appears in Contract Values but has no matching transaction, the payment has not been received.
Editing due dates
Each row includes a Due date column and a trailing calendar action (permission: bookings.change_payment_due_date). Edit Payment Due Date opens a modal to pick a new date when the line is scheduled or in debt.
System-managed due dates — Vivin locks the calendar control (disabled icon + explanatory tooltip) when the due date is computed automatically:
| Line type | Why manual edits are blocked |
|---|---|
| Move-in / check-in requirement | Due date follows move-in payment rules. |
| Booking confirmation requirement | Due date follows confirmation-payment timing. |
| Split rent | Parent or child lines from a rent split — editing one side would break the paired schedule. |
The API rejects manual due-date changes on these lines even if an older client attempted the request. For editable lines, confirm the reporting month impact before saving — the same modal exists on the booking Contract Values tab.


Cross-navigation from Finance to bookings
When your role includes Bookings sidebar access, opening a booking from Finance keeps context on the correct payment line:
| You start on | Row action | Booking sidebar opens on | Highlight |
|---|---|---|---|
| Contract Values | Open booking (row or row action) | Contract Values tab | The scheduled charge row you clicked is ring-highlighted and scrolled into view |
| Transactions | Open booking | Transactions tab | The ledger row you clicked is ring-highlighted and scrolled into view |
The highlight uses a teal ring on the matching table row so you can reconcile Finance figures with the booking workspace without hunting the line manually. Closing the booking sidebar clears the highlight.


Transactions highlight capture refreshed 2026-06-12 01:02 UTC (VIVIN_DOCS_BASE_URL=http://localhost:5173 VIVIN_DOCS_RECORD_API=$VITE_API_BASE_URL npx tsx tools/capture-finance-transactions-booking-highlight-screenshot.ts).
Invoiced floor and rent edits (#1738)
When a rent line is already invoiced, lowering its net below the invoiced total is blocked in the booking workspace — not on this Finance table. Use Open booking here, then on the booking sidebar go to Contract Info → Change monthly rent (months clamp to the exported total — blue info banner) or Contract Values → Edit amount (Save disabled under the invoiced floor). Illustrated modals: FAQ — Lower rent below invoiced; hub: Common Workflows — Rent reduction after invoicing (bookings-detail-change-monthly-rent-modal.png, bookings-detail-contract-values-invoiced-floor-edit-amount.png). Per-guide mesh: Cancelling a Booking — Rent reduction after invoicing, Onboarding a New Property — Rent reduction after invoicing, Managing a Check-in — Rent reduction after invoicing, Managing a Check-out — Rent reduction after invoicing, Notification triage — Rent reduction after invoicing, Entering Monthly Utility Bills — Rent reduction after invoicing, Manual block hygiene — Rent reduction after invoicing, Using in-app support — Rent reduction after invoicing, Resetting a Management User Password — Rent reduction after invoicing. See Bookings — Changing contract dates and rent, Contract Values tab, and Glossary — Invoiced floor (rent).

Transactions Tab
Receipts pair with Payment Allocation and Bookings — Transactions tab — reject/revert mistaken receipts per FAQ — Reject or revert an incoming payment. Full pairing matrix: Finance section cross-reference.
The Transactions tab is a detailed ledger of every individual payment received. It shows each payment event individually for reconciliation.
When Account Settings → Invoicing has Use today as invoice date turned off and a fixed Invoice date saved, an amber role="status" banner appears directly above the Transactions search bar and invoice filter pills (before you select rows). It reminds you that invoices issued from Finance will use that date until you change it under Invoicing (VAT rates & Hostkit series) (see the toggle and date picker screenshot there). The banner copy references the saved date (for example “A custom invoice date is set in Settings (1 Jun 2026)…”).

| Where you see it | Layout | When it appears |
|---|---|---|
| Finance → Transactions tab | Full-width inline strip above search and invoice filter pills | Fixed date is saved and the tab has finished loading (not the initial skeleton) |
| Finance → Transactions — bulk toolbar | Compact toolbar chip in the floating action row (beside Invoice selected, Issue allocation, and related controls) | Fixed date is saved and you have selected ledger rows with at least one pending or failed allocation ready to invoice |
| Transaction detail sidebar | Full-width inline strip above the Allocations section | Fixed date is saved and the open payment has one or more allocation rows |
The toolbar layout uses smaller type and a max-width cap so the reminder fits beside Issue allocation and Invoice selected without wrapping the whole ledger. The inline layouts use the full content width above search or above Allocations.


Month-end invoicing with a fixed date
Use this when every Fatura or Invoice-xpress document in a batch should share one posting date (for example the last calendar day of the month):
- Open Account Settings → Invoicing, turn Use today as invoice date off, set Invoice date, and Save.
- Open Finance → Transactions. Confirm the amber inline banner above search references your saved date (see screenshot above).
- Narrow the ledger with the date range control, invoice status pills, or Search so only payments you plan to invoice remain visible.
- Select one or more rows. The floating toolbar appears when at least one selected payment has allocations in Pending or Failed invoicing state — that is when the compact toolbar banner copy also appears beside bulk Issue allocation / Invoice selected (see bulk-toolbar screenshot above).
- Run your bulk invoicing actions, then spot-check rows in transaction detail (click a row): the same reminder sits above Allocations when the payment still has allocation lines (see detail screenshot above).
- When the batch is complete, return to Invoicing and turn Use today as invoice date back on if day-of-issue dating should apply again.
Month-end fixed-date batches pair with Common Workflows — Month-end invoicing (fixed date), Bulk Hostkit invoicing (amber toolbar beside Issue allocation — finance-transactions-bulk-toolbar-fixed-invoice-date-banner.png), Portfolio KPI review — Month-end invoicing (fixed date), Onboarding a New Property — Month-end invoicing (fixed date), Cancelling a Booking — Month-end invoicing (fixed date), Processing a New Booking — Month-end invoicing (fixed date), Handling a Late Payment — Month-end invoicing (fixed date), Managing a Check-in — Month-end invoicing (fixed date), Notification triage — Month-end invoicing (fixed date), Managing a Check-out — Month-end invoicing (fixed date), Entering Monthly Utility Bills — Month-end invoicing (fixed date), and Manual block hygiene — Month-end invoicing (fixed date). Hub parity: FAQ — Month-end invoicing (fixed date) hub.

Ledger table capture refreshed 2026-07-07 02:12 UTC (VIVIN_DOCS_BASE_URL=http://localhost:5173 VIVIN_DOCS_RECORD_API=$VITE_API_BASE_URL npx tsx tools/capture-finance-transactions-tab-list-screenshot.ts — replaces a legacy Retool editor leak).
Type summary cards (System vs Manual)
Above the search bar and invoice-status pills, a card row summarizes every in-payment in the active date range (and any Other filters / search you applied). Use it to scope the ledger before you scroll or export.
| Card group | Sub-cards | What it includes |
|---|---|---|
| All | (single tile) | Every payment type in the filtered set, with optional Confirmed (green), Pending (amber), and Rejected (red) sub-totals you can click to filter status. |
| System Transactions | Virtual Iban, Credit Card | Automated tenant pay-in rails (vIBAN transfers, card captures). |
| Manual Transactions | Transfer, Cash, Deposit Refund, Platform, Others | Operator-recorded or integration-labelled payments — including security-deposit refunds posted from a booking’s Deposit tab. |
Click a group header (System Transactions or Manual Transactions) to limit the table to that bucket. Click an individual sub-card (for example Deposit Refund) to filter by payment type; click again to clear. Each sub-card shows a count, total amount, and the same status breakdown chips as All.
During check-out and deposit settlement, use Deposit Refund to isolate outbound deposit returns without mixing them with rent vIBAN inflows. The booking Payment plan tab shows the matching scheduled Deposit Refund line with a minus-prefixed deposit amount on the same due date.

Type-summary cards capture refreshed 2026-06-19 00:45 UTC (VIVIN_DOCS_BASE_URL=http://localhost:5173 VIVIN_DOCS_RECORD_API=$VITE_API_BASE_URL npx tsx tools/capture-finance-transactions-type-summary-cards-screenshot.ts).

Archived bookings on the ledger (#1897)
When you Delete Booking (soft-archive), the reservation disappears from default Bookings lists but some payment rows may remain on Finance → Transactions:
| Visibility on archived booking | Payment types |
|---|---|
| Still shown | vIBAN and credit card — automated money-movement rails Vivin preserves for bank/card reconciliation |
| Hidden | Manual operator entries — transfer, cash, deposit refund, provider platform (partner-recorded payments that appear as Provider platform payment / Manual payment in detail), and other non-automated types |
Canceled bookings that are not archived keep every transaction type visible. Ledger rows with no booking link (platform-level movements) are never hidden by this gate. The type summary cards above the ledger separate System Transactions (Virtual Iban, Credit Card) from Manual Transactions (Transfer, Cash, Deposit Refund, Platform) — the same buckets affected by archived-booking visibility (#1897). When manual rows seem to vanish after Delete Booking, see FAQ — Manual payments after Delete Booking (finance-transactions-type-summary-cards.png). When you are unsure whether to Cancel or Delete, use the FAQ — Cancel Booking vs Delete Booking decision table (#1897 / #2076). Before you archive an integration booking, clear any pending provider platform in-payment — see Bookings — Provider platform payment (#2076).

Archived-booking ledger capture added 2026-07-27 22:15 UTC (VIVIN_DOCS_BASE_URL=http://localhost:5173 VIVIN_DOCS_RECORD_API=$VITE_API_BASE_URL VIVIN_DOCS_TENANT_SEARCH="Iiro Kohal" npx tsx tools/capture-finance-transactions-archived-booking-ledger-screenshot.ts) — search scoped to a soft-archived AA-11-5D-A reservation; only Virtual Iban rows remain (in-range Transfer hidden by #1897). Walkthrough MP4: archived-booking-ledger-visibility-flow.mp4.
Each ledger row shows:
- Booking — tenant name, unit, and booking status pill
- Date
- Type
- Payment — Rent, Deposit, Deposit Refund, Virtual Iban, Transfer, Platform, etc.
- Status
- Source
- Amount
- Invoiced — payment-level invoicing state
Click a row to open transaction detail. The Allocations section lists which scheduled charge each portion of the payment was applied to (month, charge type, paid amount, invoicing status, and per-allocation actions).

Allocations grid capture refreshed 2026-07-07 02:12 UTC (VIVIN_DOCS_BASE_URL=http://localhost:5173 VIVIN_DOCS_RECORD_API=$VITE_API_BASE_URL npx tsx tools/capture-finance-transaction-detail-allocations-screenshot.ts — replaces a legacy Retool “Mapped value” editor leak; filename kept for link stability).
Export
Use Export on the Transactions toolbar to download whatever is currently in the ledger — the same date range, Other filters, Select platforms pills, and search you see on screen are what the file contains.
Open Export, then choose CSV or Excel (.xls). Downloads use dated filenames: vivin-transactions-YYYY-MM-DD.csv or vivin-transactions-YYYY-MM-DD.xls. If nothing matches the current filters, the export action does not produce a file.

Export columns — Each downloaded row represents one payment allocation (payments with multiple allocations repeat the payment-level fields on several lines; payments with no allocations export a single row with blank allocation columns). Besides booking dates, payment type, status, and allocation amounts, the file now includes portfolio and invoicing identity fields operators asked for in accounting exports:
| Column | What it contains |
|---|---|
| Booking ID | Vivin booking UUID |
| Unit Name | Listing internal name for the reservation |
| Guest Name | Tenant display name on the booking |
| Guest Email | Tenant email |
| Billing Name | Invoice billing name (company name when Use company billing is on) |
| Fiscal ID | Tenant fiscal identifier used on invoices |
| Billing Fiscal ID | Company billing fiscal id when company billing is enabled |
| Use Company Billing | Yes / No |
| Home Address | Tenant home address when set |
| Billing Address, Billing City, Billing Postal Code, Billing Country | Company billing address fields when company billing is enabled |
| Date, Type, Payment Type, Description | Ledger row metadata |
| Start Date, End Date, Check-in Date, Check-out Date | Booking window context |
| Status, Total Transfer Amount | Payment status and received amount |
| Year, Month, Allocation Payment Type, Item Net Amount, Invoice Status, Paid Allocation Amount | Per-allocation slice when the payment is split across scheduled charges |
This tab is useful for reconciliation — cross-checking received payments against your bank records and feeding accounting tools without re-joining tenant profile data manually.
Row actions on in-payment rows
Each in-payment row in the ledger table exposes trailing icon actions (same confirmation modals as the booking Transactions tab). Permissions: finance.approve_payments for approve / reject / revert; bookings.delete_others for delete; finance.assign_payments_to_other_bookings for reassignment — configure them under Users and roles > Role Permissions.
| Action | When enabled | What it does |
|---|---|---|
| Approve payment | Status pending or processing | Confirms the in-payment and applies allocations. |
| Reject payment | Same pending states | Removes the payment from the booking and ledger. Confirmation includes a red banner: Warning: this may require a credit note and invoice follow-up. |
| Revert payment | Status confirmed or rejected | Rolls allocations and balances back; blue info banner: Info: this may require invoice or credit note updates afterwards. |
| Assign to other booking | No allocation is invoiced | Same move as on the booking sidebar — see Assign a payment to another booking. |
On the ledger, Revert and Delete use per-row icon actions. Reject for pending manual in-payments is available from the bulk Reject selected control when you tick row checkboxes (there is no per-row reject icon on Finance). Approve selected and Reject selected share the same confirmation modals as the per-row actions on booking Transactions — the bulk bar appears above the table when at least one row is checked:
The Approve Payment and Reject Payment confirmation modals match booking Transactions — screenshots from the booking sidebar below:



Delete payment on the ledger
Delete payment (trash icon) removes an in-payment entirely when Vivin allows it. The confirmation modal warns that the action cannot be undone.
Delete stays disabled when:
- The payment type is vIBAN or provider platform (system-matched rails Vivin must preserve on the ledger).
- Any allocation has invoice status invoiced, manual, or draft — resolve Finance / accounting records first.
A rejected provider-platform in-payment no longer blocks Delete Booking on the reservation — the guard only applies while a non-rejected row remains. See Bookings — Delete Booking (soft archive) (#2076).

Booking-side Transactions does not expose delete; triage mistaken manual entries from this ledger tab when your role includes bookings.delete_others.
Reject (credit-note banner), revert (info banner), delete, and approve confirmation captures refreshed 2026-06-16 01:15 UTC (VIVIN_DOCS_BASE_URL=http://localhost:5173 VIVIN_DOCS_RECORD_API=$VITE_API_BASE_URL npx tsx tools/capture-finance-bookings-payment-action-modals.ts — approve/reject modals from booking Transactions; revert/delete from Finance ledger).
Assign a payment to another booking
Users with Assign payments to other bookings (finance.assign_payments_to_other_bookings) can move an in-payment from one booking to another when the money landed on the wrong reservation.
The target booking can belong to a different tenant. The one hard boundary is the Vivin account: source and target must both sit in the account you are signed in to, and that isolation is enforced server-side. The common driver is a tenant paying for a family member — the bank transfer is matched to the payer's booking, and the receipt has to move to the relative's booking under a different tenant profile.
On each eligible row, use Assign to other booking (arrows icon) in the trailing action group. The control is disabled when the payment has an allocation already marked invoiced, or when your role lacks the permission (configure it in Users and roles > Role Permissions, Finance group). Archived bookings are not offered as targets.
Reassignment transfers the entire in-payment. Vivin does not split one receipt across two bookings, so there is no partial reassignment.

The modal warns that the payment is removed from the current booking and reapplied to the selection. Choose Select target booking, then Assign to other booking. Each option in the picker shows the property / unit, booking dates, and booking code next to the tenant name — check them before confirming, since a cross-tenant move puts the receipt on someone else's ledger.
Transaction detail sidebar — Click any ledger row to open the right-hand transaction detail drawer. When the payment is linked to a booking, scroll to Assign to other booking: pick the target from the searchable dropdown, then Reassign (same permission, account-isolation, and invoicing rules as the row action).
You can run the same move from a booking’s Transactions tab — see Bookings > Transactions.
Financial Reconciliation
Reconciliation is the process of aligning bank or channel payouts with the payment rows and allocations Vivin already recorded. The Transactions tab is your ledger — use the date range, Other filters, Select platforms, and Export together when comparing against a bank statement or OTA payout file.
Bulk actions on the Transactions ledger
Users with Approve payments can select multiple rows with the checkboxes (or the header checkbox for every row on the current filtered page). A floating N selected bar appears above the table with bulk actions:
- Approve selected / Reject selected — confirm or reject pending manual payments in one step. Reject selected opens the same Reject Payment modal (red credit-note warning) as booking Transactions; use it when several mistaken manual entries need clearing without opening each booking sidebar.
- Invoice selected — move eligible allocations toward invoicing where your account uses integrated invoicing.
- Issue allocation — issue invoice lines for pending or failed allocations on the selected rows (button counts reflect how many allocations qualify).
- Set manual — mark qualifying allocations as manually handled without issuing through the integration.
- Revert invoice — undo draft or issued invoice state on eligible allocations when you need to correct a batch mistake.

Bulk Approve selected / Reject selected close-up refreshed 2026-06-16 02:06 UTC (VIVIN_DOCS_BASE_URL=http://localhost:5173 VIVIN_DOCS_RECORD_API=$VITE_API_BASE_URL npx tsx tools/capture-finance-transactions-bulk-reject-bar.ts). Full-table bulk bar (finance-transactions-bulk-selection-bar.png) from prior capture.
Filter with Select platforms and the date range before multi-select when you reconcile one channel's payout. Open a single row to review allocation mapping, overpayments, and Paid At when a payment appears in the wrong reporting month.
Issuing credit notes (integrated invoicing)
When you reject or revert an in-payment that was already invoiced through Hostkit or Invoice-xpress, Vivin rolls back allocations in-product and creates credit-note reversal rows on the affected allocations. Those reversals stay not issued until finance pushes them to your invoicing provider or marks them handled externally.
On Finance → Transactions, use the invoice filter pills beside Export:
| Pill | What it shows |
|---|---|
| All | Every ledger row in the current date range and filters |
| Invoiced | Rows with at least one invoiced positive allocation |
| Not Invoiced | Rows with allocations still pending invoice issuance |
| Not issued credit note | Rows with a credit-note reversal that has not been sent to the provider yet |
| Issued credit note | Rows where the credit note was issued or manually registered |
Bulk issue — Tick rows that include pending credit-note reversals. The floating selection bar shows Issue credit notes (N) when at least one selected row has an eligible not-issued reversal. Confirm to queue issuance through your integration (same dedicated path as per-allocation actions — credit-note reversals are excluded from Invoice selected / Issue allocation sweeps for positive invoices).

Transaction detail — Click a ledger row to open the right-hand drawer. On each credit-note reversal allocation that is still pending, use Issue credit note to provider (teal document-upload icon; tooltip label) to push the document to Hostkit or Invoice-xpress, Set manual (wrench) when accounting handles the nota de crédito outside Vivin, or attach a PDF reference when you registered the document manually (paperclip control). Issued credit notes expose their document for download the same way positive invoices do.

Credit-note queue stills refreshed 2026-07-27 14:22 UTC (VIVIN_DOCS_BASE_URL=http://localhost:5173 VIVIN_DOCS_RECORD_API=$VITE_API_BASE_URL VIVIN_DOCS_CREDIT_NOTE_SEARCH='Joana Rushiti' npx tsx tools/capture-finance-transactions-credit-note-screenshots.ts). Walkthrough MP4 recorded 2026-07-27 15:10 UTC (npx tsx tools/record-finance-issue-credit-notes-flow-mp4.ts — same search; no bulk issue / provider push confirmed).
The red Reject and blue Revert modals warn that accounting follow-up may be required — that follow-up is this Not issued credit note queue, not a separate spreadsheet. Hub matrix: Common Workflows — Reject/revert mistaken receipts. Modal screenshots and a booking Transactions walkthrough: FAQ — Reject or revert an incoming payment (bookings-detail-transactions-reject-modal-credit-note-banner.png, bookings-detail-transactions-revert-modal-info-banner.png, finance-transactions-bulk-reject-selected-bar.png, bookings-payment-row-actions-flow.mp4). Pair with Payment Allocation — Correcting mistaken receipts, Common Workflows — Pending manual receipt approval (duplicate still pending → Reject), Portfolio KPI review — Step 7 (month-end duplicate cleanup), and Glossary — Credit note (payment reject/revert). To create a credit-note reversal on an invoiced Contract Values line (before this queue fills), use Bookings → Contract Values → Credit note — see Bookings — Manage credit notes.
Platform Reconciliation
Different rental platforms have different commission structures and VAT rules. When reconciling platform payouts:
- Each platform deducts its own commission before paying you, so the received amount may differ from the booking value in Vivin.
- Vivin tracks the gross booking value (what the tenant pays) and the net amount received separately.
- Open Other filters on the Transactions tab and use Select platforms (top Transactions section) to isolate payments from one or more channels; active choices appear as pills above the table.
Ensure the Paid At date is set correctly when recording payments. An incorrectly set date causes the payment to appear in the wrong period in financial reports. If you notice a payment is showing up in the wrong month, this is the field to check in the Transactions tab.
Payouts Tab
The Payouts tab tracks outgoing payments from your company to property owners and, where configured, tenants. Use it to review scheduled transfers, confirm what landed in the bank, and export payout batches for accounting.
Account-wide approval and payout destination rules are configured under Account Settings → Payments → Out Payments (Approval type and Payout type): Skip approval lets the scheduler auto-approve new batches; Approval required leaves them in To approve until an operator with Approve payments permission acts. Payout type chooses Account (company IBAN) vs Owners (per-owner IBAN batches).

Use Export on the Payouts toolbar the same way as on Transactions: pick CSV or Excel to download the filtered payout list (vivin-payouts-YYYY-MM-DD.csv / .xls). The date range and Other filters on the tab apply before download.
The three summary cards above the table (All, Credit Card, IBAN) count and total payouts over the active date range and honour every Other filters drawer choice that the payouts API supports — including Booking → Select categories (booking tags), Tenant → Tenant category, property, owner, and IBAN/fiscal filters (#2352). Toolbar Search scopes the table only; the cards do not change when you type in search.

Table columns
Each row is one payout (or a schedule summary row for upcoming windows — see selection rules below). Sortable columns include:
| Column | What it shows |
|---|---|
| Method | IBAN Payment or Credit Card icon for the payout rail. |
| Destination IBAN | Bank account the payout is sent to (owner IBAN, company IBAN, or tenant refund account). Credit card payouts and rows with missing banking details show —; open the Payout details sidebar for recipient name, Owner / Tenant subtype, and Set recipient when banking is incomplete. Sorting orders by IBAN string. |
| Description | Operator-facing note for the batch (for example how many tenant payments are grouped). |
| Date | Scheduled or recorded payout date. |
| Tenant Payments | Count of incoming tenant payments rolled into this payout. |
| Contract lines | Count of rent or fee allocations tied to scheduled contract charges in this payout. Zero usually means payments are not allocated against those charges (for example direct tenant transfers). Hover the column header for the full definition; hover a 0 cell for a short “no contract charge allocations” hint. |
| Amount | Payout total in EUR. |
| Status | Workflow badge — To approve, Pending, or Completed. |
| Received | Whether the transfer is recorded as received in Vivin (Yes / No). |
Use the toolbar Search box to filter by description, payout type, destination IBAN, or tenant name on any booking grouped into the payout (server-side match on grouped in-payments).

Confirm received (bulk)
When bank transfers have cleared, mark payouts as received without opening each row:
- Select one or more eligible rows with the left checkboxes. The header checkbox selects every eligible payout in the current view (the Upcoming — Next 7 days block plus the filtered table below). When only some eligible rows are checked, the header control shows an indeterminate state (dash) instead of a full check.
- A floating bar shows
N selected · Total €…(count and summed Amount for the selection) with Clear selection and Confirm received. While work is in progress, the bar also showsConfirming X of Y…and both actions are disabled.

- Confirm received opens a dialog that restates how many payouts you are about to mark and the total € for that batch. Confirm to run the updates, or cancel to return without changes.
Outcomes
| Result | What you see |
|---|---|
| All succeed | Success toast (for example “3 payouts confirmed as received.”); selection clears and the table refetches. |
| Some fail | Error-style toast with confirmed and failed counts (for example “2 confirmed, 1 failed.”). Rows that failed stay selected so you can fix the issue and retry; succeeded rows drop out of the selection. |
| All fail | Error toast (“Failed to confirm payouts as received.”); your selection is kept. |
If another user already marked a payout received while you had it selected, the product treats that as success for that row (the end state matches Confirm received) and continues with the rest of the batch.
When no payout in the current date range and filters is eligible, checkboxes stay disabled and bulk confirm is unavailable — widen the range or clear filters, or use the row sidebar Mark received for a single payout.

Upcoming — Next 7 days rows appear in a highlighted block at the top when payouts fall in the next week. Click any data row (outside the checkbox) to open the Payout details sidebar: recipient name, Destination IBAN, status, Received, and an In payment breakdown table of grouped tenant payments. When the table shows — in the IBAN column, use the sidebar to confirm payee identity and fix missing banking via Set recipient (Settings > Owners or the booking sidebar).
Selection rules
| Row type | Checkbox |
|---|---|
| Stored payout not yet Received (real payout id) | Selectable — use bulk Confirm received or the sidebar Mark received control. |
| Already Received | Disabled — tooltip Already received. |
| Schedule summary row (non-UUID id) | Disabled — tooltip Schedule summary rows cannot be selected. |
After a refetch, any selected id that is no longer eligible (for example it flipped to Received) is removed from the selection automatically.
Bulk confirm requires Approve payments permission (finance.approve_payments), same as viewing this tab.
Payout processing (background)
Vivin calculates owner shares from configured revenue-split rules and management-fee deductions. Scheduled jobs create outgoing payout batches from finalized tenant vIBAN in-payments; whether new batches need a manual approve step or are auto-approved is configured under Account Settings → Payments → Out Payments (Approval type and Payout Type).
Operators still reconcile against bank statements using Export, Contract lines, and the In payment breakdown in the detail sidebar before marking payouts received.
Deposits Tab
Deposit rows pair with Bookings — Deposit tab and Managing a Check-out — widen the date range before searching older move-outs (Glossary — Finance Deposits date range). Full pairing matrix: Finance section cross-reference.
The Deposits tab tracks security deposits across bookings in the selected date range (same range control as Transactions and Payouts). Use it to see who still owes the deposit, what is ready to refund, and what is already closed out.
The default window is roughly the last three months through today. A deposit row stays visible when any of these dates fall inside that window: check-in / contract start, check-out / contract end, or Refund Due Date (derived from your account’s refund-limit setting). Move-out refunds for older ended bookings often sit outside the default slice — click Clear date range selection on the toolbar (or widen from / to) before you search for a tenant or expect Mark disputed / Resolve dispute row chips to appear. Hub matrix: Common Workflows — Deposit missing on Finance Deposits. Step-by-step: FAQ — Deposit missing on Finance Deposits (finance-deposits-date-range-toolbar-default.png, finance-deposits-date-range-toolbar-cleared.png, finance-deposits-date-range-clear-flow.mp4). See Glossary — Finance Deposits date range for the intersection rule.

Date-range toolbar captures refreshed 2026-06-21 00:12 UTC (VIVIN_DOCS_BASE_URL=http://localhost:5173 VIVIN_DOCS_RECORD_API=$VITE_API_BASE_URL npx tsx tools/capture-finance-deposits-date-range-screenshot.ts).

Deposits tab overview capture refreshed 2026-07-08 00:15 UTC (VIVIN_DOCS_BASE_URL=http://localhost:5173 VIVIN_DOCS_RECORD_API=$VITE_API_BASE_URL npx tsx tools/capture-finance-deposits-status-cards-screenshots.ts).
Table columns
Each row is one deposit record. Sortable columns include:
| Column | What it shows |
|---|---|
| Unit Name | Listing or unit the booking belongs to (click to open the listing sidebar). |
| Booking | Tenant name plus a small booking lifecycle chip — Ongoing, Upcoming, Ended, or Canceled — so you can tell move-out refund work from mid-stay context at a glance. |
| Amount | Security deposit amount on the contract. |
| Paid | Amount already collected toward the deposit. |
| Balance | Current booking financial balance (negative values mean the tenant still owes money on the booking, which affects how much can be returned). |
| Est. Refund | Estimated refund amount derived from the deposit and booking balance. |
| Refund Due Date | Target date for processing the return (when applicable). |
| Status | Deposit workflow status (see below). |
| Tenant IBAN | Whether the tenant has supplied bank details needed for a refund. |
| Actions | Mark refunded or Revert refund when your process allows (permission-gated). |
Click a row (outside the unit link) to open the booking sidebar for full context.
Deposits overview panel
Above the table, a bordered Deposits overview panel groups two filter dimensions (#2091). Both respect the active date range and Other filters (except lifecycle card counts, which stay stable while you toggle lifecycle cards — only the table narrows).
Timeline row
The Timeline row answers when refund work is due relative to booking dates:
| Card | What it shows when selected |
|---|---|
| Total | Every deposit in the current slice (default). |
| Upcoming | Deposits tied to bookings that have not started yet. |
| Ongoing | Deposits held during active stays. |
| Pending refund | Deposits ready for refund processing (pending / legacy toRefund). |
| Overdue | Deposits past Refund Due Date that still need action. |
Each card shows a row count (top-right) and the total deposit amount (€) for that queue. Click a card to filter the table; click the same card again to return to Total. Refunded rows are no longer a Timeline card — use the Deposit lifecycle status row below.
Deposit lifecycle status cards
The Deposit lifecycle status row answers where each deposit sits in the payment/refund lifecycle (depositStatus on the booking — see Glossary — Deposit lifecycle status). Click Partial paid to narrow collection shortfalls portfolio-wide — hub matrix: Common Workflows — Partly collected security deposit; step-by-step: FAQ — Partly collected security deposit (finance-deposits-lifecycle-partial-paid-card.png, finance-deposits-partial-collection-walkthrough.mp4). All six cards always render; counts are scoped to the selected Timeline bucket (for example “of Overdue deposits, how many are Ready to refund?”).
| Card | What it filters when selected |
|---|---|
| Not paid | No deposit allocation recorded yet. |
| Partial paid | Some deposit collected but below Amount — portfolio triage for confirmation shortfalls. |
| Fully paid | Deposit collected in full; pre-refund. |
| Disputed | Deposit dispute freeze — refund actions blocked. |
| Ready to refund | Operations marked Ready To Refund — finance can queue the bank return. |
| Refunded | Outbound deposit return recorded in Vivin. |
Click a lifecycle card to toggle it into the table filter (multi-select supported). Click an active card again to remove it. Lifecycle cards pair with Other filters → Deposit status on Bookings and Finance — same option set, different surface.


Deposits overview captures refreshed 2026-07-09 04:01 UTC (VIVIN_DOCS_BASE_URL=http://localhost:5174 VIVIN_DOCS_RECORD_API=$VITE_API_BASE_URL npx tsx tools/capture-finance-deposits-status-cards-screenshots.ts — develop frontend with #2091 lifecycle cards). Row-click from a Partial paid row opens the booking Deposit tab — see the amber Partially paid Initial Deposit badge on Bookings — Deposit tab.
Partial collection walkthrough re-recorded 2026-07-09 05:01 UTC (VIVIN_DOCS_BASE_URL=http://localhost:5174 VIVIN_DOCS_RECORD_API=$VITE_API_BASE_URL npx tsx tools/record-finance-deposits-partial-collection-walkthrough-mp4.ts — develop frontend with #2091 lifecycle cards).
Deposit lifecycle status walkthrough recorded 2026-07-26 16:15 UTC (VIVIN_DOCS_BASE_URL=http://localhost:5173 VIVIN_DOCS_RECORD_API=$VITE_API_BASE_URL npx tsx tools/record-deposit-lifecycle-status-flow-mp4.ts — Partial paid / Fully paid cards skipped when visible rows had clone/test markers).
Loading more rows (Deposits table)
The Deposits table loads from the server in chunks (first batch, then 5 rows per scroll) like Transactions and Payouts. Scroll near the bottom of the workspace to fetch the next batch; skeleton rows may appear at the bottom while a request is in flight. Changing date range, a Timeline card, a Deposit lifecycle status card, Search, or Other filters resets the list from the first batch. Overview card counts and € totals always reflect the full filtered population for their dimension, not only rows already on screen.
Status badges (what each label means)
Row Status values map to the date-driven deposit queue (DepositStatus in the API). Timeline cards (Upcoming, Ongoing, Pending refund, Overdue) are subsets of these badges — they do not add separate backend states. Deposit lifecycle status cards filter on operational depositStatus instead (see Deposit lifecycle status cards).
| Badge (English UI) | Typical meaning |
|---|---|
| Received | Deposit has been collected (received). |
| Upcoming | Booking has not started yet; refund work is usually still in the future (upcoming). |
| Ongoing | Active booking; deposit is held during the stay (ongoing). |
| Pending refund | Refund is expected — matches quick-filter chip Pending refund (pending or legacy toRefund; both render the same badge text). |
| To Refund | Same queue as Pending refund on older rows (toRefund). |
| Overdue | Past Refund Due Date — prioritize for compliance (overdue). |
| Refunded | Recorded as returned in Vivin after your bank transfer (refunded). |
| Not Refunded | Deposit retained (damages, unpaid balance, or policy) — not returned to the tenant (notRefunded). |
Row-level lifecycle pills (Fully Paid, Ready to Refund, Disputed, and similar) mirror the booking Deposit tab when payment-driven lifecycle is enabled.
Deposit disputes (portfolio actions)
When Enable deposit disputes is On, users with bookings.dispute see extra row chips on deposits whose lifecycle is Fully Paid:
| Row chip (English UI) | When it appears | Effect |
|---|---|---|
| Mark disputed | Collected deposit is Fully Paid, not yet refunded | Freezes Refund / Mark refunded until the dispute is resolved |
| Resolve dispute | Row lifecycle is Disputed | Clears the dispute and restores the normal refund queue |
Use disputes for portfolio triage the same way as Mark as Disputed on the booking Deposit tab — for example when a tenant challenges deductions before you initiate the bank transfer. Document the reason in Internal Notes or a linked maintenance ticket so finance knows when to Resolve dispute and proceed.


Finance deposit dispute row captures refreshed 2026-06-19 12:00 UTC (VIVIN_DOCS_BASE_URL=http://localhost:5173 VIVIN_DOCS_RECORD_API=$VITE_API_BASE_URL npx tsx tools/capture-deposit-disputes-screenshots.ts — clears the default three-month date range before row scans; resolve row uses a portfolio-wide fallback when tenant search misses the disputed row).
Deposit dispute walkthrough video added 2026-06-20 12:08 UTC (tools/record-deposit-dispute-walkthrough-mp4.ts — clears Finance → Deposits date range before the portfolio row shot).
Use the badge on the row as the source of truth when a label does not appear in the table above.
Search, export, and filters
- Search — filter by unit, tenant name, or IBAN substring.
- Export — open Export on the toolbar and choose CSV or Excel (
.xls) to download the current slice (vivin-deposits-YYYY-MM-DD.csv/.xls). The date range, Timeline cards, Deposit lifecycle status cards, search, and Other filters all apply before download — same split-button pattern as on the Transactions tab.

- Use Other filters (Finance drawer) together with Deposits when you need the same cross-cutting filters as on Overview and Income (properties, bookings, nationalities, and other finance dimensions your workspace exposes).
Deposit Return Workflow
When a tenant moves out, use this tab to:
- Confirm Balance and Est. Refund against the booking’s final charges.
- Ensure Tenant IBAN is present before you initiate an external bank transfer.
- Use Mark refunded when the return is complete in the bank (or Revert refund if you recorded it too early).
The Finance module records the decision on deposit deductions and returns, but the actual bank transfer to the tenant is handled outside the platform. Vivin tracks what was decided, not the bank transfer itself. Ensure tenants have provided their IBAN before initiating a return.
Automated Rent Collection
Vivin provides multiple automated payment channels to streamline rent collection:
Virtual IBANs
Each tenant receives a unique virtual IBAN for bank transfers:
- Zero commissions — no fees on bank transfer payments.
- Automatic matching — payments received on a tenant's virtual IBAN are automatically matched to their booking.
- Unique per tenant — eliminates the need to manually identify which tenant sent which transfer.
Credit Card Payments
Tenants can optionally pay by credit card through the Tenant Portal:
- Commission charged to tenant — the processing fee is passed to the tenant, not the operator.
- No cost for operators — credit card payments do not reduce your revenue.
- Instant processing — payments are recorded and allocated immediately.
Automated Reminders
The system automatically sends payment communications:
- Upcoming payment notifications — email and push notifications before a payment is due.
- Overdue payment reminders — automated escalation when a payment is past due.
- Configurable timing — set how many days before/after the due date reminders are sent.
Invoice Automation
Vivin automates invoice generation across your entire billing workflow:
- Automated generation — invoices are created automatically for rent, utilities, cleaning, repairs, and other services.
- Customisable templates — brand your invoices with your company logo, colours, and formatting.
- Tenant receipt email (optional) — after a final invoice is issued, Vivin can email the PDF to the tenant and/or a copy to the account email when enabled under Preferences → Final invoice receipt emails. Issuance and Files/transaction links work even when both toggles are off.
- Accounting integration — integrates with invoicing providers such as Invoice-xpress or Hostkit (configure under Settings > Integrations). Hostkit issues Fatura-Recibo documents per listing API key; Finance Transactions can link to the Hostkit invoice URL when the allocation is invoiced. Bulk Hostkit runs pace API calls and retry HTTP 429 automatically — large Issue allocation / Invoice selected batches may take several minutes (FAQ — Why is bulk Hostkit invoicing slow?).
Tenant invoice receipt email
Final invoice issuance from Transactions (row Issue allocation, bulk Invoice selected, or provider sync) persists the PDF on the booking and updates allocation Invoiced state. Whether the tenant (or your account inbox) also receives an automatic email is controlled account-wide on Preferences → Notifications & Emails → Final invoices (receipts):
| Preference toggle | Effect after issue |
|---|---|
| Send invoice receipt email to tenant | Branded email to the booking tenant with the invoice PDF attached (requires tenant email on file). |
| Send invoice receipt copy to account | Copy to the workspace account email only, or CC on the tenant message when both toggles are on. |
Proforma documents follow the parallel Proforma invoices toggles on the same card. Operators still open issued PDFs from transaction detail, Bookings → Files, or provider see invoice links regardless of email settings.
When Issue allocation or Invoice selected leaves rows Pending or Failed for several minutes, Vivin is usually pacing Hostkit per listing key and retrying HTTP 429 — leave the batch running, then refresh Transactions before clicking Issue allocation again on the same rows (FAQ — Bulk Hostkit invoicing slow; hub: Common Workflows — Bulk Hostkit invoicing). Persistent failures: confirm Listing keys and Hostkit invoice series (finance-transactions-bulk-selection-bar.png, settings-invoicing-hostkit-series.png).
When Send invoice receipt email to tenant (or the account-copy toggle) is on but the tenant reports no email, open Bookings → Files or Transactions first — if the PDF is already there, invoicing succeeded and only delivery failed. Confirm the booking tenant email, account toggles on Preferences → Final invoice receipt emails, and the recipient’s spam folder. Vivin does not undo Invoiced state when outbound mail fails; avoid duplicate Issue allocation runs unless finance intentionally needs a new document.
Hostkit invoice links (Transactions & booking files)
When Hostkit is your active invoicing provider and a chargeable allocation has been invoiced, Vivin can surface a Hostkit invoice link in two places operators reconcile from:
| Surface | What you see |
|---|---|
| Finance → Transactions | Transaction detail for an invoiced allocation may include an external link to the Hostkit document (open in a new tab). |
| Bookings → booking detail → Files | Invoiced allocations appear as synthesised PDF tiles (Invoice_<ref>.pdf) merged into the file grid — Preview / Download only; Delete is hidden because they are not persisted uploads. See Bookings — Files tab. |
Opening a Hostkit invoice from transaction detail
- Open Finance → Transactions and click a payment row to open the transaction detail sidebar.
- Scroll to the allocation rows for that payment. Each row shows an invoice status (for example Pending, Draft, or Invoiced).
- When the status is Draft or Invoiced, the trailing action group includes an external-link control with tooltip see invoice (English UI). Click it to open the stored Hostkit document URL in a new browser tab.
- The see invoice control stays disabled until Vivin has a stored
invoiceDocumentUrlfor that allocation — hover shows No stored invoice link yet for this allocation (e.g. refresh after invoicing). Close and reopen the sidebar, or use Refresh on the ledger, after batch Issue allocation / Invoice selected actions finish. - To undo a mistaken issue, use Revert invoice on the same allocation row (dark icon beside see invoice) before re-issuing. This is separate from ledger bulk Revert invoice — both operate on allocation invoice state.
The same see invoice pattern applies when Invoice-xpress is your invoicing provider; only the destination URL differs.
If the link opens but the PDF is still generating in Hostkit, wait a short interval and retry, or open the URL in a desktop browser — server-side PDF fetch can lag Hostkit’s UI. If no link appears, confirm the listing’s Listing keys entry and a non-empty Hostkit invoice series are configured (Integrations — Hostkit, Invoicing — Hostkit series) and that the allocation is eligible for invoicing. Vivin blocks Issue allocation when the series field is blank — you will see Hostkit invoice series is not configured rather than a silent Hostkit default-series document.
If Hostkit shows the right invoice but Vivin attached the wrong PDF (or see invoice opened an unexpected document), verify Hostkit invoice series matches the FR series you issue from in Hostkit. Hostkit sequence numbers repeat across series; Vivin resolves documents by {series}/{id} and downloads PDFs from Hostkit’s permalink for that pair — a series mismatch in Settings can block links or point at the wrong row until the series field is corrected for new issues.
Set up Hostkit keys and series before you expect links on Transactions — see the full checklist in Settings > Integrations — Hostkit (invoicing).
Configure your invoice templates and VAT rates in Settings > Invoicing before generating your first invoices to ensure consistent formatting and compliance.
Financial Dashboards & Reporting
The Finance module provides comprehensive dashboards for financial oversight:
Revenue Tracking
- Paid vs. unpaid — real-time visibility into collected versus outstanding revenue.
- By property — compare revenue across properties to identify top performers.
- By unit — drill down to individual unit profitability.
- By time period — track revenue trends over custom date ranges.
Outstanding Debt Overview
- Ageing analysis — see how long payments have been overdue, segmented by 30/60/90+ days.
- Priority list — surface the largest outstanding amounts for immediate follow-up.
- Trend tracking — monitor whether total outstanding debt is increasing or decreasing.
Cash Flow Statements
- Account-level summaries — overall cash flow across your entire portfolio.
- Property-level detail — income and expenses broken down by property.
- Exportable reports — generate reports for accounting, tax purposes, and stakeholder sharing.
Adding Payments
To manually record a payment received from a tenant, click Add Payment within the Finance module or use + Transaction on a booking's Transactions tab (opens the same Add Payment modal). See Bookings > Transactions tab for the booking-sidebar entry point.

In the modal, specify:
- Booking — which booking this payment is for
- Amount received
- Payment date
- Payment method
- Notes (optional)
The system automatically allocates the payment to the oldest outstanding scheduled charge. You can adjust the allocation if needed.
Key Business Rules for Finance
-
Payments are allocated automatically. When a payment is recorded, the system applies it to the oldest outstanding charge first. Overpayments become credits toward future charges.
-
Virtual IBANs enable zero-commission collection. Each tenant's unique IBAN ensures payments are automatically matched without manual reconciliation.
-
Credit card fees are tenant-side. When tenants pay by card, the processing commission is charged to them — operators pay nothing.
-
Deposit status is tracked, not transferred. The Finance module records deduction and return decisions, but the actual bank transfer to the tenant is handled externally.
-
Contract values are fixed at booking creation. Scheduled charges reflect the terms in place when the booking was created. Property setting changes do not retroactively alter existing schedules.
-
A scheduled charge is only "Paid" once allocated. A charge in the Contract Values tab remains outstanding until a matching incoming payment has been recorded and allocated to it.
-
Invoices are generated automatically. Once configured, the system handles invoice creation and delivery without manual intervention.
Finance guide subsection index
This index pairs Finance tab sections and Related subsections — use it when ledger figures disagree with Dashboard KPI cards, Analytics trends, or Bookings sidebar tabs. Full pairing matrix: Finance section cross-reference.
Finance section cross-reference
Use this table when one Finance tab or control naturally leads into another module, workflow, or concept — each row links to the docs you should read before or after acting in that section.
Related
Related below links this module to settings, concepts, workflows, and escalation paths. Pair Documentation map & escalation with Modules hub — Documentation map & escalation; pair Upstream & downstream workflows with Common Workflows — Workflow cross-reference. Topic-to-section pairing in sections above: Finance guide subsection index · Finance section cross-reference. Full hub matrix: Module cross-reference · Modules hub subsection index.
Documentation map & escalation
Documentation-map bullets pair with Introduction — Section cross-reference and FAQ — Section cross-reference. Hub parity: Modules hub — Documentation map & escalation. Full pairing matrix: Finance section cross-reference · Module cross-reference.
- Modules hub — Hub pairing matrix across operator workspaces
- Introduction — Platform overview when Finance exports disagree with partner booking imports
- Glossary — Term definitions used across finance and booking workflows
- FAQ — Lower rent below invoiced — Why edits happen on the booking sidebar, not Finance Contract Values
Upstream & downstream workflows
Workflow bullets pair with Common Workflows — Workflow cross-reference. Full pairing matrix: Finance section cross-reference · Module cross-reference.
- Handling a Late Payment (section cross-reference; Deeper workflow reads; hub) — Workflow for overdue payments
- Managing a Check-out & Deposit Refund (section cross-reference; Deeper workflow reads; hub) — End-to-end departure-week settlement that uses this Deposits tab
- Managing a Check-out (section cross-reference; Deeper workflow reads; hub) — Deposit refund queue and Contract Values In Debt / Deposit status during departure week
- Cancelling a Booking (section cross-reference; Deeper workflow reads; hub) — Refund types and deposit handling during void workflows
- Entering Monthly Utility Bills (section cross-reference; Deeper workflow reads; hub) — Utility overage receipts that land on Transactions and Contract Values
- Portfolio KPI review (section cross-reference; Deeper workflow reads; hub) — Month-end walkthrough when Debt Aging, Income drill-downs, or Transactions pending rows disagree with Analytics
- Notification triage (section cross-reference; Deeper workflow reads; hub) — Clear payment alerts after settlement; row-click opens the booking Transactions tab for approve/reject
- Notifications — Payment overdue alerts — Operator Payments category rows that row-click into booking Contract Values or Payment Plan
Deeper workflow reads
Workflow reads pair with Common Workflows hub subsection index and Workflow cross-reference. Each workflow sub-guide reciprocates with [Deeper workflow reads](../modules/finance/index.md#deeper-workflow-reads) anchors on Module documentation hubs bullets — hub parity: Modules hub — Deeper workflow reads. Full pairing matrix: Finance section cross-reference · Module cross-reference.
- Handling a Late Payment — Overview, Contract Values, and Transactions collections triage (section cross-reference; Deeper API reads; hub)
- Managing a Check-out & Deposit Refund — Deposits tab settlement and Contract Values In Debt / Deposit status (section cross-reference; Deeper API reads; hub)
- Cancelling a Booking — Refund types, deposit handling, and settlement receipts during void (section cross-reference; Deeper API reads; hub)
- Processing a New Booking — Confirmation payment approval on Transactions and month-end Pending mesh (section cross-reference; Deeper API reads; hub)
- Portfolio KPI review — Month-end Debt Aging, Income drill-downs, and Pending pill reconciliation (section cross-reference; Deeper API reads; hub)
- Entering Monthly Utility Bills — Utility overage receipts on Transactions and Contract Values (section cross-reference; Deeper API reads; hub)
- Notification triage — Payment alert row-click into booking Transactions for approve/reject (section cross-reference; Deeper API reads; hub)
- Onboarding a New Property — First Contract Values rows after live bookings accumulate (section cross-reference; Deeper API reads; hub)
Settings that shape Finance
Settings bullets pair with Account Settings — Tab cross-reference. Full pairing matrix: Finance section cross-reference · Module cross-reference.
- Settings > Contract — Template variables and upload flow before generated invoices reference booking contracts
- Settings > Payments — Configure payment rules and priorities
- Settings > Invoicing — Configure VAT for invoiced line items
- Settings > Integrations — Hostkit (invoicing) — Per-listing API keys and listing-keys modal behaviour
- Settings > Utilities — Configure utility overage billing options
- Settings > Tenant categories — Segment VIVIN payments and portal modules tenants use when settling Transactions online
- Settings > Preferences — In-app notifications — Account-wide Payments alert masters before Transactions triage from
/notifications - Settings > Interface Language — Your in-app notifications — Per-user payment opt-outs during collections follow-up
- Settings > Emails — Communication Rules — Payment reminders, Communication schedule audit, and lifecycle templates tied to Finance alerts
Deeper concept reads
Concept reads pair with Concepts hub subsection index and Concept cross-reference. Full pairing matrix: Finance section cross-reference · Module cross-reference.
- Payment Allocation — Two-layer receipts, invoiced-floor rent edits, and reject/revert warnings for Transactions and Contract Values (section cross-reference; hub)
- Booking Lifecycle — Computed Upcoming → Ongoing → Ended / Canceled status model, list filters, and Timeline (section cross-reference; hub)
- Tenant Portal — Where tenants make online payments (section cross-reference; hub)
- FAQ — Tenant contract signing blocked — No PDF yet, mandatory Your Details gates, category locks, or Lease purpose; portal signing vs paper upload on Contract Info
- Services Marketplace — Portal service charges on Contract Values and Transactions after tenants confirm Request Service (section cross-reference; hub)
- Integrations & Distribution — Hostkit and Invoice-xpress invoicing providers enabled under Account Settings → Integrations (section cross-reference; hub)
- Landlord MCP — External automation that queries Transactions, Deposits, and Contract Values with the same JWT permissions as this module; portfolio cards via
get-finance-overview/get-revenue-summary(Finance-sourced portfolio metrics; section cross-reference; hub)
Operator modules (pairing surfaces)
Module hub bullets pair with Modules — Module cross-reference. Full pairing matrix: Finance section cross-reference · Module cross-reference.
- Bookings Module — View payment plans and transactions per booking
- Bookings > Discounts and payment adjustments — Line-level and booking-scoped reductions on Contract Values
- Audit Module — Manual blocks that can suppress occupancy signals you reconcile against Overview KPIs
- Audit — Discounts tab — Cross-portfolio discounted Contract Values with the same amounts and export as Finance filters
- Utilities module — Supplier bills that create pending overage allocations before they reach Transactions
- Inbox module — WhatsApp context when payment alerts need tenant thread review before approve/reject
- Analytics — Overview tab — Portfolio revenue and occupancy trends over a month range (complements Overview KPI cards here)
- AI Chat — Internal assistant for portfolio summaries that should be verified against Transactions and Deposits
Lockout catch-up after password recovery
Operational backlog after sign-in recovery pairs with Resetting a Management User Password — Step 3. Hub parity: Common Workflows — Lockout catch-up after password recovery. Full pairing matrix: Finance section cross-reference · Module cross-reference.
- Common Workflows — Lockout catch-up after password recovery — Hub matrix when sign-in was restored mid month-end before Transactions approval clears
- Getting Started — Lockout catch-up after password recovery — Canonical operational backlog mesh
- Pending manual payments — Amber Pending chip catch-up on Finance → Transactions after lockout-delayed receipt recording
- Portfolio KPI review — Step 7 — Overview KPI reconciliation lag after lockout
- Notification triage — Clear payment alerts before bulk Mark all as read
Notification row-click navigation
/notifications row-click with bookingId opens the booking detail sidebar first — reconcile Overview KPIs and Transactions only after single-booking triage on the opened reservation. Hub parity: Common Workflows — Notification row-click navigation. Full pairing matrix: Finance section cross-reference · Module cross-reference.
- Common Workflows — Notification row-click navigation — Hub matrix (
notifications-module-row-click-target.png,notifications-row-navigate-to-booking-detail.png,notifications-row-navigation-flow.mp4) - Notifications module — Notification row-click navigation — Canonical inbox pairing
- Bookings — Notification row-click navigation — Booking sidebar landing zone after row-click
- Tenants — Notification row-click navigation — Tenant profile sidebar when alert carries
tenantId - Inbox — Notification row-click navigation — Bell Inbox
linkdeep-link vs General row-click - Operations — Notification row-click navigation — Turnover-week alerts that row-click into Bookings first
- Listings — Notification row-click navigation — Property or unit sidebar when alert carries
listingIdorpropertyId - Utilities — Notification row-click navigation — Overage payment overdue alerts after bill cycle
- Sales — Notification row-click navigation — Channel-import alerts before Multicalendar review
- Analytics — Notification row-click navigation — Month-range KPI charts after row-click opens booking context
- AI Chat — Notification row-click navigation — Verify assistant-cited alerts by row-click before operational follow-up
- Audit — Notification row-click navigation — Discounts / Manual Blocks month-end review after row-click
- Legacy
/propertiesURLs — Notification row-click navigation — Legacy bookmarks that land in Listings during alert triage - Booking engine details — Notification row-click navigation — Engine-sourced alerts before Full integration payload edits
- Dashboard — Notification row-click navigation — Bell General vs full
/notificationsrow-click - Notification triage — Step 4 — Row-click before Step 5
- Payment alert to receivables triage — Ongoing/Ended payment overdue row-click
- Confirmation alert triage — Upcoming Booking created / Payment received row-click
- Overview Tab — Total Debt KPI after row-click opens booking Transactions
- Transactions Tab — Approve payment when Pending manual in-payment row-click lands
- Pending manual receipt approval — Amber Pending chip before Debt Aging sign-off
- Portfolio KPI review — Notification row-click navigation — Month-end alert batch on Step 7
- Handling a Late Payment — Notification row-click navigation — payment overdue on Step 1 after alert row-click
- Processing a New Booking — Notification row-click navigation — Booking created / Payment received on Step 6
- FAQ — Notification row-click navigation — Target field order (
link,bookingId,tenantId,listingId,propertyId)
Payment alert to receivables triage
Ongoing/Ended payment overdue alerts on /notifications row-click into Bookings — finish single-booking triage on Payment Plan / Transactions before you trust Overview → Debt Aging or Total Debt KPIs here. Hub parity: Common Workflows — Payment alert to receivables triage. Full pairing matrix: Finance section cross-reference · Module cross-reference.
- Common Workflows — Payment alert to receivables triage — Hub matrix (
notifications-row-navigate-to-booking-detail.png,notifications-row-navigation-flow.mp4,finance-overview-debt-aging-walkthrough-flow.mp4) - Notifications module — Payment alert to receivables triage — Payments category row-click entry
- Bookings — Payment alert to receivables triage — Payment Plan / Transactions on opened booking
- Tenants — Payment alert to receivables triage — With Debt cross-check on tenant profile
- Inbox — Payment alert to receivables triage — payment overdue on General before WhatsApp chase
- Operations — Payment alert to receivables triage — Unpaid move-in lines before key handover on Check-in & Check-out
- Listings — Payment alert to receivables triage — Property Payments Active portal charges on listing bookings
- Utilities — Payment alert to receivables triage — Utility overage lines behind overdue alerts
- Sales — Payment alert to receivables triage — Channel-import schedules behind overdue alerts
- Analytics — Payment alert to receivables triage — Revenue trend may lag until receivables clear
- AI Chat — Payment alert to receivables triage — Validate assistant debt answers after receivables triage
- Audit — Payment alert to receivables triage — Discounts review when receivables lag behind goodwill lines
- Legacy
/propertiesURLs — Payment alert to receivables triage — Collections on bookings tied to redirected properties - Booking engine details — Payment alert to receivables triage — Engine-sourced schedules behind overdue alerts
- Dashboard — Payment alert to receivables triage — Total Debt KPI after alert row-click
- Notification row-click navigation — Row-click on
/notificationsbefore portfolio KPI read - Finance debt receivables triage — Top debtors when alert batch needs rank
- Debt Aging panel — Overdue buckets and Top debtors (
finance-overview-debt-aging-expanded-bucket.png) - Overview Tab — Total Debt and Uncovered Debt KPI strip
- Pending manual receipt approval — Amber Pending before Debt Aging sign-off
- Confirmation alert triage — Contrast Upcoming vs Ongoing/Ended alerts
- Handling a Late Payment — Payment alert to receivables triage — payment overdue on Step 1 after alert row-click
- Portfolio KPI review — Payment alert to receivables triage — Month-end alert batch on Step 7
- Notification triage — Payment alert to receivables triage — Payments row-click on Step 4
- FAQ — Payment alert to receivables triage — Alert-type contrast table
- FAQ — Payment alert to receivables triage hub — Top debtors when alert batch needs rank symptom table
Confirmation alert triage
Upcoming Booking created / Payment received / Pending manual in-payment rows on /notifications row-click into Bookings — finish Processing a New Booking — Step 5b on Transactions (or Finance → Transactions bulk Approve selected) before bulk-clear and before Overview debt KPIs refresh. Hub parity: Common Workflows — Confirmation alert triage. Full pairing matrix: Finance section cross-reference · Module cross-reference.
- Common Workflows — Confirmation alert triage — Hub matrix (
notifications-row-navigate-to-booking-detail.png,notifications-row-navigation-flow.mp4) - Notifications module — Confirmation alert triage — Canonical inbox pairing
- Bookings — Confirmation alert triage — Transactions / Contract Info on Upcoming imports
- Tenants — Confirmation alert triage — Tenant Info / Category on confirmation-week clusters
- Dashboard — Confirmation alert triage — Post-login Upcoming alert backlog on bell
- Operations — Confirmation alert triage — Turnover prep after confirmation receipts approved
- Listings — Confirmation alert triage — Channel import bookings on go-live properties
- Utilities — Confirmation alert triage — First bill cycle after go-live alerts
- Sales — Confirmation alert triage — Channel-import Upcoming alerts before Channels linking
- Analytics — Confirmation alert triage — Upcoming alerts during month-end KPI review
- AI Chat — Confirmation alert triage — Assistant-cited confirmation backlog before bulk mark-read
- Audit — Confirmation alert triage — Month-end Discounts review after confirmation receipts approved
- Legacy
/propertiesURLs — Confirmation alert triage — First alerts after legacy redirects land in Listings - Booking engine details — Confirmation alert triage — White-label Upcoming alerts before payload sync
- Notification row-click navigation — Row-click on
/notificationsbefore mark-read - Payment alert to receivables triage — Contrast Upcoming vs Ongoing/Ended payment overdue
- Pending manual receipt approval — Payment received alert until Approve payments
- Transactions Tab — Amber Pending chip and bulk Approve selected
- Pending manual payments — Overview Manual Payments KPI until queue clears
- Processing a New Booking — Step 5b / Step 6 — Canonical confirmation gates
- Notification triage — Confirmation alert triage — Steps 4 / 5 path
- Portfolio KPI review — Confirmation alert triage — Month-end alert cleanup on Step 7
- Onboarding a New Property — Confirmation alert triage — First confirmation alerts on go-live (Step 7)
- FAQ — Confirmation alert triage — Alert-type table and bulk mark-read guard
- FAQ — Confirmation alert triage hub — Transactions amber Pending before Overview KPI symptom table
New inventory to first booking handoff
First confirmation Pending receipts on go-live inventory pair with Processing a New Booking — Steps 5b / 6 after Onboarding — Step 7. Hub parity: Common Workflows — New inventory to first booking handoff. Full pairing matrix: Finance section cross-reference · Module cross-reference.
- Pending manual payments (Overview KPI) — First confirmation Pending after go-live
- Bookings — New inventory to first booking handoff — Transactions on first Upcoming stay
- Onboarding a New Property — Step 7 — Upstream inventory verify before first charges
- Processing a New Booking — Step 5b — First import receipt approval
- Common Workflows — New inventory to first booking handoff — Hub matrix (
finance-transactions-pending-pill.png,bookings-add-booking-modal.png) - Pending manual receipt approval — Step 5b on first imports
- Portfolio KPI review — Step 7 — Month-end first-import Pending mesh
- Property setup to first arrival handoff — Downstream move-in charges
- FAQ — New inventory to first booking handoff — Symptom table for property wizard → first reservation
Property setup to first arrival handoff
First move-in Pending receipts and unpaid confirmation charges on go-live inventory pair with Processing a New Booking — Step 6 before Managing a Check-in — Step 3. Hub parity: Common Workflows — Property setup to first arrival handoff. Full pairing matrix: Finance section cross-reference · Module cross-reference.
- Pending manual payments (Overview KPI) — First confirmation/move-in Pending receipts after go-live
- Bookings — Property setup to first arrival handoff — Transactions on first Upcoming stay
- Onboarding a New Property — Step 7 — Upstream inventory verify before first charges
- Managing a Check-in — Step 3 — Move-in charges before key handover
- Common Workflows — Property setup to first arrival handoff — Hub matrix (
finance-transactions-pending-pill.png,workflows-operations-check-in-out-planning-view.png) - Pending manual receipt approval — Step 3b / Step 5b on first imports
- Confirmation to check-in handoff — Upstream Upcoming portal gates
- FAQ — Property setup to first arrival handoff — Symptom table for go-live → first arrival week
Confirmation to check-in handoff
Amber Pending confirmation receipts on Finance → Transactions must clear before Upcoming reservations hand off to arrival-week planning. Hub parity: Common Workflows — Confirmation to check-in handoff. Full pairing matrix: Finance section cross-reference · Module cross-reference.
- Pending manual payments (Overview KPI) — Amber Pending before arrival-week handoff
- Confirmation alert triage — Transactions amber Pending before Overview KPI refresh
- Bookings — Confirmation to check-in handoff — Contract Info portal gates on Upcoming imports
- Processing a New Booking — Step 5b — Canonical confirmation receipt approval
- Common Workflows — Confirmation to check-in handoff — Hub matrix (
bookings-detail-contract-method-of-payments.png,workflows-operations-check-in-out-planning-view.png,booking-lifecycle-status-tabs-flow.mp4) - Managing a Check-in — Step 1 — Downstream arrival-week entry (~7 days out)
- Pending manual receipt approval — Step 5b confirmation receipts before handoff
- FAQ — Confirmation to check-in handoff — Symptom table for Upcoming → arrival week
Check-in to check-out handoff
Departure-week Contract Values and Transactions on Ongoing stays should be reviewed before Finance → Deposits refund planning ~7 days out. Hub parity: Common Workflows — Check-in to check-out handoff. Full pairing matrix: finance-section-cross-reference · Module cross-reference.
- Contract Values tab — In Debt on Ongoing stays entering departure week
- Transactions tab — Departure-week receipt approval (Step 6b mesh)
- Bookings — Check-in to check-out handoff — Payment Plan / Deposit tab settlement path
- Operations — Check-in to check-out handoff — Check-outs planning surface
- Managing a Check-out — Step 6 — Settlement before deposit release
- Common Workflows — Check-in to check-out handoff — Hub matrix (
operations-check-in-out-check-outs-next-7-days.png,bookings-timeline-view.png) - Check-out collections before refund — Rent/fee arrears mesh (distinct from handoff timing)
- FAQ — Check-in to check-out handoff — Symptom table for Ongoing → departure week
Check-out final utilities handoff
Departure-week utility overage In Debt on Contract Values should clear via Entering Monthly Utility Bills — Step 4 before Finance → Deposits refund planning. Hub parity: Common Workflows — Check-out final utilities handoff. Distinct from Check-out collections before refund (rent/fee arrears). Full pairing matrix: finance-section-cross-reference · Module cross-reference.
- Contract Values tab — Utility overage In Debt on departure-week stays
- Transactions tab — Step 4b / Step 6b overage receipt approval mesh
- Bookings — Check-out final utilities handoff — Payment Plan / Deposit tab after portfolio triage
- Utilities — Check-out final utilities handoff — Canonical bill posting upstream
- Entering Monthly Utility Bills — Step 4 — Upstream overage posting verification
- Managing a Check-out — Step 6 — Settlement before Ready To Refund
- Pending manual receipt approval — Overage Pending before refund queue
- Common Workflows — Check-out final utilities handoff — Hub matrix (
finance-contract-values-in-debt-filter.png,utilities-allocations-review-flow.mp4,bookings-detail-payment-plan-tab-schedule.png) - FAQ — Check-out final utilities handoff — Symptom table for final utility overage blocking refund
Same-day turnover coordination
Outgoing In Debt on Contract Values blocks incoming move-in key handover when both stays share one unit the same calendar day — pair hub Common Workflows — Same-day turnover coordination with Check-out collections before refund. Full pairing matrix: finance-section-cross-reference · Module cross-reference.
- Common Workflows — Same-day turnover coordination — Hub matrix (
finance-contract-values-in-debt-filter.png,bookings-timeline-day-week-month-and-sidebar.mp4) - Contract Values tab — Outgoing In Debt vs incoming move-in on turnover day
- Transactions tab — Departure-week receipt mesh before incoming handover
- Bookings — Same-day turnover coordination — Payment Plan overlap on shared units
- Operations — Same-day turnover coordination — Check-outs / Check-ins week lists
- Handling a Late Payment — Same-day turnover coordination — Outgoing In Debt on Step 1 before incoming Step 4
- Check-out collections before refund — Rent/fee arrears mesh (distinct from turnover timing)
- FAQ — Same-day turnovers — Four-step operator habit
- Glossary — Same-day turnover — Shared-unit vocabulary
WhatsApp per-booking messaging
Collections outreach during Transactions triage pairs with Bookings → Communication when operators need Payment Plan visible while replying. Hub parity: Glossary — WhatsApp per-booking messaging hub · Common Workflows — WhatsApp per-booking messaging. Full pairing matrix: Finance section cross-reference · Module cross-reference.
- Common Workflows — WhatsApp per-booking messaging — Hub matrix (
bookings-detail-communication-tab-whatsapp-thread.png,inbox-module-overview.png,inbox-module-triage-flow.mp4) - Glossary — WhatsApp per-booking messaging hub — Surface table + per-guide/module mesh reciprocal hub
- Dashboard — WhatsApp per-booking messaging — Bell Inbox sub-tab vs General on post-login scan
- Notifications — WhatsApp per-booking messaging — Canonical
/notificationsmessage alert rows - Bookings — WhatsApp per-booking messaging — Communication tab composer with Payment Plan context
- Inbox — WhatsApp per-booking messaging — Cross-booking triage and bell Inbox sub-tab
- Tenants — WhatsApp per-booking messaging — Tenant profile after Inbox name click
- Operations — WhatsApp per-booking messaging — Maintenance ticket threads on Communication
- Listings — WhatsApp per-booking messaging — Go-live property tenant threads after channel import
- Utilities — WhatsApp per-booking messaging — Utility overage bill questions on Communication
- Sales — WhatsApp per-booking messaging — Channel-import message backlog during Multicalendar review
- Analytics — WhatsApp per-booking messaging — Month-end message backlog during KPI review
- AI Chat — WhatsApp per-booking messaging — Assistant-cited threads before operational follow-up
- Audit — WhatsApp per-booking messaging — Month-end communication review after Discounts audit
- Legacy
/propertiesURLs — WhatsApp per-booking messaging — Legacy bookmarks during message triage - Booking engine details — WhatsApp per-booking messaging — Engine-sourced tenant threads before payload sync
- Notification row-click navigation — payment overdue row-click before collections outreach
- Payment alert to receivables triage — Debt triage before Communication reply
- Common Workflows — Notification row-click navigation —
New WhatsApp message from …on/notificationsvs bell Inbox - Notification triage — WhatsApp per-booking messaging — Message pings on bell Inbox /
/notifications - Handling a Late Payment — WhatsApp per-booking messaging — Collections outreach on Step 3
- Managing a Check-in — WhatsApp per-booking messaging — Arrival-week threads before Step 4
- Managing a Check-out — WhatsApp per-booking messaging — Departure settlement on Step 6
- Processing a New Booking — WhatsApp per-booking messaging — Confirmation follow-up on Step 6
- Cancelling a Booking — WhatsApp per-booking messaging — Void outreach before Step 4
- Entering Monthly Utility Bills — WhatsApp per-booking messaging — Overage bill questions on Step 4
- Portfolio KPI review — WhatsApp per-booking messaging — Month-end message backlog on Step 7
- Manual block hygiene — WhatsApp per-booking messaging — Blocked-date questions on Step 3
- Onboarding a New Property — WhatsApp per-booking messaging — First tenant threads on Step 7 go-live
- Using in-app support — WhatsApp per-booking messaging — Self-serve Inbox / Communication before filing
- Resetting a Management User Password — WhatsApp per-booking messaging — Lockout-delayed bell Inbox after Step 3
- FAQ — WhatsApp per-booking messaging hub — Collections outreach with Transactions / Payment Plan context symptom table
Bot reasoning (audit)
Collections bot replies with Transactions visible. Hub parity: Glossary — Bot reasoning (audit) hub · Common Workflows — Bot reasoning (audit). Full pairing matrix: Finance section cross-reference · Module cross-reference.
- Common Workflows — Bot reasoning (audit) — Hub matrix (
bookings-detail-communication-tab-bot-reasoning-expanded.png) - Glossary — Bot reasoning (audit) hub — Surface table + per-guide/module mesh reciprocal hub
- Bookings — Bot reasoning (audit) — Canonical Communication Reasoning control
- ChatBot settings — Read-only audit vs editable persona / IF/THEN
ChatBot settings
Account Settings → ChatBot pairs with Communication thread review — collections bot replies with transactions visible. Hub parity: Glossary — ChatBot settings hub · Common Workflows — ChatBot settings. Full pairing matrix: Finance section cross-reference · Module cross-reference.
- Common Workflows — ChatBot settings — Hub matrix (
settings-chatbot-tab-overview.png,settings-chatbot-status-bot-connected.png,settings-chatbot-save-rule-flow.mp4) - Glossary — ChatBot settings hub — Surface table + per-guide/module mesh reciprocal hub
- ChatBot settings — Persona, IF/THEN rules, Status Bot pairing
- Glossary — Bot reasoning (audit) hub — Thread audit after rule changes
Finance debt receivables triage
Receivables triage pairs with Debt Aging panel, Income status drill-down, Finance Income status drill-down, Cash flow forecast drill-down, and Pending manual receipt approval (amber Pending chip before Top debtors sign-off). Hub parity: Common Workflows — Finance debt receivables triage. Full pairing matrix: Finance section cross-reference · Module cross-reference.
- Common Workflows — Finance debt receivables triage — Hub matrix when Dashboard Total Debt, Debt Aging, and Income → In debt disagree (
finance-overview-income-chart-debt-aging.png,finance-overview-debt-aging-walkthrough-flow.mp4) - Payment alert to receivables triage — Single-booking alert triage before portfolio surfaces (
notifications-row-navigate-to-booking-detail.png,notifications-row-navigation-flow.mp4) - Common Workflows — Payment alert to receivables triage — Hub matrix when alert batch precedes Debt Aging
- Debt Aging panel — Top debtors and overdue buckets (
finance-overview-debt-aging-expanded-bucket.png) - FAQ — Bookings that owe money — Surface choice symptom table
- FAQ — Dashboard Total Debt subtitle — Post-login headline vs Finance drill-down (
dashboard-kpi-total-debt-tooltip.png) - Pending manual receipt approval — Clear amber Pending before Top debtors month-end sign-off
- Processing a New Booking — Finance debt receivables triage — Unpaid confirmation on Step 5 / Step 6
- Cancelling a Booking — Finance debt receivables triage — Pre-cancel arrears on Step 2
- Managing a Check-in — Finance debt receivables triage — Move-in shortfall on Step 3
- Managing a Check-out — Finance debt receivables triage — Departure arrears on Step 6
- Entering Monthly Utility Bills — Finance debt receivables triage — Utility overage In Debt on Step 4
- Handling a Late Payment — Finance debt receivables triage — Debt Aging on Step 1 before outreach
- Portfolio KPI review — Finance debt receivables triage — Month-end Top debtors on Step 7
- Notification triage — Finance debt receivables triage — Alert-driven entry on Step 4
- Manual block hygiene — Finance debt receivables triage — Phantom debt on Step 5 after holds cleared
- Onboarding a New Property — Finance debt receivables triage — First Top debtors after go-live on Step 7
- Using in-app support — Finance debt receivables triage — Self-serve Total Debt triage before filing
- Resetting a Management User Password — Finance debt receivables triage — Lockout-delayed receivables after Step 3
- FAQ — Finance debt receivables triage hub — Symptom table for four-surface triage
Finance Income status drill-down
Income chart segment clicks open month-scoped payment-line modals — pair with Debt Aging for booking-level receivables. Hub parity: Common Workflows — Finance Income status drill-down. Full pairing matrix: Finance section cross-reference · Module cross-reference.
- Common Workflows — Finance Income status drill-down — Hub matrix (
finance-overview-income-status-in-debt-modal.png,finance-overview-income-drill-down-flow.mp4) - Finance debt receivables triage — Debt Aging Top debtors when payment-line modal is not enough
- Income status drill-down — Stacked Income chart canonical surface (within Overview tab)
- Income chart and cash flow forecast — Side-by-side Income vs Cash flow forecast charts
- FAQ — Finance Income status drill-down hub — Symptom table for segment vs Debt Aging
- FAQ — Finance Income status drill-down — Paid / Scheduled / In debt segment-click habit
- Portfolio KPI review — Finance Income status drill-down — Month-end Income reconciliation on Step 7
- Contract Values Tab — In Debt lines vs portfolio Debt Aging
- Transactions Tab — Amber Pending before Scheduled / In debt segments update
- Processing a New Booking — Finance Income status drill-down — Confirmation month In debt on Step 5 / Step 6
- Handling a Late Payment — Finance Income status drill-down — Collections segment triage on Step 1
Cash flow forecast drill-down
Cash flow forecast bar clicks list confirmed collections — not scheduled or In debt amounts. Contrast with Dashboard Cash Flow Forecast rent-due timing. Hub parity: Common Workflows — Cash flow forecast drill-down. Full pairing matrix: Finance section cross-reference · Module cross-reference.
- Common Workflows — Cash flow forecast drill-down — Hub matrix (
finance-overview-cash-flow-all-payments-modal.png,finance-overview-cash-flow-day-view.png,finance-overview-cash-flow-drill-down-flow.mp4) - Finance Income status drill-down — Paid / Scheduled / In debt segments — not collections history
- Income chart and cash flow forecast — Canonical Cash flow forecast chart surface
- FAQ — Cash flow forecast drill-down hub — Symptom table for collections vs Income / Dashboard
- FAQ — Cash flow forecast drill-down — Month / Day bar-click habit
- Portfolio KPI review — Cash flow forecast drill-down — Month-end collections reconciliation on Step 7
- Transactions Tab — Amber Pending before Cash flow forecast month bars update
- Dashboard — Cash Flow Forecast — Rent due chart on
/— not Finance collections - Processing a New Booking — Cash flow forecast drill-down — Confirmation collections on Step 5
- Handling a Late Payment — Cash flow forecast drill-down — Collections month bars on Step 4
Pending manual receipt approval
Receipt approval pairs with Finance — Pending manual payments, Bookings — Transactions tab, and Common Workflows — Reject/revert mistaken receipts (Reject duplicate while pending). Hub parity: Common Workflows — Pending manual receipt approval. Full pairing matrix: Finance section cross-reference · Module cross-reference.
-
Common Workflows — Pending manual receipt approval — Hub matrix when recorded bank transfers still show pending and Total Debt or
/notificationslag until Approve payments -
Pending manual payments — Amber Pending chip, bulk Approve selected, and KPI impact on Finance → Transactions
-
Bookings — Transactions tab — Per-row Approve payment on booking sidebar receipts
-
Users and roles — Role permissions — Approve payments gates bulk approval after portfolio triage
-
FAQ — Manual receipt still pending — Why Overview debt may not update until approval
-
FAQ — Pending manual in-payment on
/notifications— In-app alert until ledger approval -
FAQ — Dashboard Total Debt subtitle — Post-login Total Debt card until pending receipts clear
-
Common Workflows — Reject/revert mistaken receipts — Reject while pending (
finance-transactions-bulk-reject-selected-bar.png) -
FAQ — Reject or revert an incoming payment — Duplicate cleanup after approval — Reject selected bulk bar
-
Processing a New Booking — Pending manual receipt approval — Confirmation receipts on Step 5b / Step 6b
-
Handling a Late Payment — Pending manual receipt approval — Collections receipts on Step 4b / Step 6b
-
Cancelling a Booking — Pending manual receipt approval — Settlement receipts on Step 2a / Step 6b
-
Managing a Check-in — Pending manual receipt approval — Move-in receipts on Step 3b / Step 6b
-
Portfolio KPI review — Pending manual receipt approval — Month-end Pending mesh on Step 7
-
Managing a Check-out — Pending manual receipt approval — Departure receipts on Step 6b
-
Entering Monthly Utility Bills — Pending manual receipt approval — Overage receipts on Step 4b
-
Notification triage — Pending manual receipt approval — Pending manual in-payment alert triage on Step 4
-
Manual block hygiene — Pending manual receipt approval — Pending mesh during Step 5
-
Onboarding a New Property — Pending manual receipt approval — First confirmation receipts after go-live
-
Using in-app support — Pending manual receipt approval — Approve payments permission defects
-
Resetting a Management User Password — Pending manual receipt approval — Lockout catch-up after Step 3
-
FAQ — Pending manual receipt approval hub — Symptom table for Approve payments / amber Pending
Reject/revert mistaken receipts
Receipt cleanup pairs with Finance — Row actions on in-payment rows, Bookings — Row actions on in-payment rows, and Common Workflows — Pending manual receipt approval (approve legitimate pending rows before Revert). Hub parity: Common Workflows — Reject/revert mistaken receipts. Full pairing matrix: Finance section cross-reference · Module cross-reference.
-
Common Workflows — Reject/revert mistaken receipts — Hub matrix when duplicate bank transfers or wrong-booking receipts need Reject / Revert after Approve
-
Row actions on in-payment rows — Bulk Reject selected and per-row Revert payment on Finance → Transactions
-
Issuing credit notes (integrated invoicing) — Not issued credit note queue after reject/revert on invoiced charges
-
Payment Allocation — Correcting mistaken receipts — Two-layer model and modal copy
-
Common Workflows — Pending manual receipt approval — Amber Pending chip before month-end Reject selected (
finance-transactions-pending-pill.png,finance-transactions-pending-approve-flow.mp4) -
Bookings — Row actions on in-payment rows — Per-booking reject/revert when Finance ledger row links to one reservation (
bookings-payment-row-actions-flow.mp4) -
Processing a New Booking — Reject/revert mistaken receipts — Duplicate confirmation on Step 5b
-
Handling a Late Payment — Reject/revert mistaken receipts — Collections duplicate on Step 4b
-
Cancelling a Booking — Reject/revert mistaken receipts — Settlement duplicate on Step 2a
-
Managing a Check-in — Reject/revert mistaken receipts — Move-in duplicate on Step 3b
-
Portfolio KPI review — Reject/revert mistaken receipts — Month-end Revert during Step 7
-
Managing a Check-out — Reject/revert mistaken receipts — Departure duplicate on Step 6b
-
Entering Monthly Utility Bills — Reject/revert mistaken receipts — Overage duplicate on Step 4b
-
Notification triage — Reject/revert mistaken receipts — Duplicate alert triage on Step 4
-
Manual block hygiene — Reject/revert mistaken receipts — Repricing duplicate during Step 5
-
Onboarding a New Property — Reject/revert mistaken receipts — First confirmation duplicate after go-live
-
Using in-app support — Reject/revert mistaken receipts — Credit-note disputes on tickets
-
Resetting a Management User Password — Reject/revert mistaken receipts — Lockout catch-up after Step 3
-
FAQ — Reject/revert mistaken receipts hub — Symptom table for Reject / Revert / Issue credit notes
Check-out ledger cleanup before refund
Duplicate-transfer cleanup pairs with Reject/revert mistaken receipts and Managing a Check-out. Hub parity: Common Workflows — Check-out ledger cleanup before refund. Full pairing matrix: Finance section cross-reference · Module cross-reference.
-
Common Workflows — Check-out ledger cleanup before refund — Hub matrix when portfolio Transactions holds duplicate departure transfers blocking Ready To Refund
-
Reject/revert mistaken receipts — Reject / Revert duplicate before Ready To Refund
-
Managing a Check-out — Step 6 — Canonical departure-week duplicate cleanup before refund
-
Common Workflows — Check-out collections before refund — Real arrears contrast (tenant did not pay)
-
Row actions on in-payment rows — Bulk Reject selected / Revert payment
-
Bookings — Deposit tab — Ready To Refund after ledger cleanup
-
Deposits Tab — Deposit release queue after duplicate Revert
-
Managing a Check-out — Step 6 — Departure-week mesh before Step 5
-
FAQ — Check-out ledger cleanup before refund hub — Symptom table for phantom In Debt / Ready To Refund blocked when tenant paid once
Utility overage collections
Utility overage In Debt rows pair with Utilities bill posting and Handling a Late Payment. Hub parity: Common Workflows — Utility overage collections. Full pairing matrix: Finance section cross-reference · Module cross-reference.
-
Common Workflows — Utility overage collections — Hub matrix when portfolio Contract Values In Debt filter surfaces utility overage arrears (
finance-contract-values-in-debt-filter.png) -
Contract Values Tab — In Debt filter for overage lines after bill posting
-
Entering Monthly Utility Bills — Step 4 — Upstream posting before collections
-
Handling a Late Payment — Steps 1–4 — Collections mesh after overage posts
-
Pending manual receipt approval — Step 4b / Step 6b overage receipt mesh
-
Utilities — Allocations tab — Overage charge review upstream
-
FAQ — Utility overage collections hub — Symptom table for unpaid utility overage on Payment Plan after bill posting
Cancellation collections before void
Pre-cancel arrears pair with Cancelling a Booking and Handling a Late Payment. Hub parity: Common Workflows — Cancellation collections before void. Full pairing matrix: Finance section cross-reference · Module cross-reference.
-
Common Workflows — Cancellation collections before void — Hub matrix when portfolio Contract Values In Debt filter surfaces pre-cancel arrears before policy void
-
Contract Values tab — In Debt filter before Cancel booking on linked reservations
-
Cancelling a Booking — Step 2 — Canonical pre-cancel settlement before void
-
Handling a Late Payment — Steps 1–4 — Collections when scheduled charges stay unpaid
-
Common Workflows — Check-out collections before refund — Departure-week arrears contrast (not pre-cancel void)
-
Adding payments — Record settlement before Step 4
-
Deposits Tab — Partial paid deposit shortfall — not rent pre-cancel mesh
-
FAQ — Cancellation collections before void hub — Symptom table for In Debt blocking Cancel booking until Payment Plan settles
Check-out collections before refund
Departure-week rent/fee In Debt rows pair with Managing a Check-out and Handling a Late Payment. Hub parity: Common Workflows — Check-out collections before refund. Full pairing matrix: Finance section cross-reference · Module cross-reference.
-
Common Workflows — Check-out collections before refund — Hub matrix when portfolio Contract Values In Debt filter surfaces departure-week rent arrears (
finance-contract-values-in-debt-filter.png,bookings-detail-payment-plan-tab-schedule.png) -
Contract Values Tab — In Debt filter for rent/fee lines blocking refund queue
-
Managing a Check-out — Step 6 — Canonical settlement before Ready To Refund
-
Handling a Late Payment — Steps 1–4 — Collections mesh after KPI triage
-
Adding payments — Record departure-week settlement before refund
-
Pending manual receipt approval — Step 6b departure receipt mesh
-
Common Workflows — Check-out ledger cleanup before refund — Duplicate transfer contrast (tenant paid once)
-
Common Workflows — Utility overage collections — Utility overage lines — distinct mesh
-
FAQ — Check-out collections before refund hub — Symptom table for rent/fee In Debt blocking Ready To Refund before deposit release
Handling a Late Payment collections
Receivables triage surfaces on Finance → Overview pair with Handling a Late Payment Steps 1–6 after Finance debt receivables triage and Pending manual receipt approval. Hub parity: Common Workflows — Handling a Late Payment collections hub · Glossary — Handling a Late Payment collections hub. Full pairing matrix: Finance section cross-reference · Module cross-reference.
- Common Workflows — Handling a Late Payment collections hub — Hub matrix when Debt Aging / Top debtors triage surfaces need collections follow-through (
finance-overview-income-chart-debt-aging.png,finance-overview-debt-aging-walkthrough-flow.mp4,finance-transactions-pending-pill.png) - Finance debt receivables triage — Debt Aging Top debtors before Step 1
- Payment alert to receivables triage — Single-booking alert triage before portfolio surfaces
- Pending manual receipt approval — Clear amber Pending before Step 3 outreach
- Reject/revert mistaken receipts — Revert duplicates before Top debtors collections
- Adding payments — Step 4 settlement recording
- Handling a Late Payment — Canonical collections workflow (Steps 1–6)
- Common Workflows — Utility overage collections — Utility In Debt contrast (not rent Top debtors alone)
- Common Workflows — Check-out collections before refund — Departure-week arrears contrast
- FAQ — Handling a Late Payment collections hub — Symptom table for triage surface → collections step pairing
- Glossary — Handling a Late Payment collections hub — Surface table + per-guide/module mesh reciprocal hub
Check-out vs cancellation
Deposit settlement on Finance → Deposits pairs with completed stay → Ended (Managing a Check-out Step 5) vs policy void → Canceled (Cancelling a Booking Step 3). Hub parity: Common Workflows — Check-out vs cancellation. Full pairing matrix: Finance section cross-reference · Module cross-reference.
- Common Workflows — Check-out vs cancellation — Hub matrix: deposit release on both lifecycle exits (
bookings-detail-deposit-tab-ready-to-refund-toggle.png,bookings-cancel-booking-modal-refund-types.png) - Deposits tab — Portfolio refund queue for both Ended and Canceled stays
- Managing a Check-out — Step 5 — Completed stay deposit release
- Cancelling a Booking — Step 3 — Policy void deposit settlement
- Contract Values tab — In Debt before either path's settlement mesh
- Common Workflows — Check-out collections before refund — Departure-week rent arrears on Ended path
- Common Workflows — Cancellation collections before void — Pre-cancel rent arrears on Canceled path
- FAQ — Check-out vs cancellation — Symptom table for lifecycle exit routing
Month-end invoicing (fixed date)
The six-step habit in Month-end invoicing with a fixed date pairs with Bulk Hostkit invoicing on the amber bulk toolbar and Reject/revert mistaken receipts when month-end cleanup surfaces Not issued credit note rows. Hub parity: Common Workflows — Month-end invoicing (fixed date). Full pairing matrix: Finance section cross-reference · Module cross-reference.
- Common Workflows — Month-end invoicing (fixed date) — Hub matrix (
settings-invoicing-invoice-date-toggle.png,finance-transactions-fixed-invoice-date-banner.png,finance-transactions-bulk-toolbar-fixed-invoice-date-banner.png) - Month-end invoicing with a fixed date — Operator steps 1–6 on Transactions
- Invoicing — Default invoice date — Account-wide toggle + Save
- Bulk Hostkit invoicing — Issue allocation / Invoice selected after fixed date is set
- Portfolio KPI review — Month-end invoicing (fixed date) — Step 7 sign-off mesh
- Onboarding a New Property — Month-end invoicing (fixed date) — First month-end on new inventory
- Cancelling a Booking — Month-end invoicing (fixed date) — Settlement batch during Step 6b
- Processing a New Booking — Month-end invoicing (fixed date) — First-month bulk export after confirmation (Step 6b)
- Handling a Late Payment — Month-end invoicing (fixed date) — Collections batch during Step 6b
- Managing a Check-in — Month-end invoicing (fixed date) — Move-in Pending mesh during Step 6b
- Notification triage — Month-end invoicing (fixed date) — Alert cleanup before bulk Issue allocation (Step 5)
- Managing a Check-out — Month-end invoicing (fixed date) — Departure-week Pending mesh during Step 6b
- Entering Monthly Utility Bills — Month-end invoicing (fixed date) — Finish Missing data + overage Pending before bulk export (Steps 4b–5)
- Manual block hygiene — Month-end invoicing (fixed date) — Clear stale holds before Issue allocation unmasks receivables (Step 5)
- Using in-app support — Month-end invoicing (fixed date) — Self-serve before filing wrong-date tickets
- Resetting a Management User Password — Month-end invoicing (fixed date) — Lockout-delayed month-end export after Step 3
- FAQ — Month-end invoicing (fixed date) hub — Symptom table + toggle reset after batch on Transactions
Bulk Hostkit invoicing
Bulk Issue allocation / Invoice selected on Transactions pairs with Month-end invoicing with a fixed date and Rent reduction after invoicing when Not issued credit note rows need Issue credit notes (N). Hub parity: Common Workflows — Bulk Hostkit invoicing. Full pairing matrix: Finance section cross-reference · Module cross-reference.
-
Common Workflows — Bulk Hostkit invoicing — Hub matrix (
finance-transactions-bulk-selection-bar.png,settings-invoicing-hostkit-series.png) -
Invoice automation — Bulk Issue allocation / Invoice selected toolbar
-
Month-end invoicing with a fixed date — Amber toolbar banner before Hostkit batch (
finance-transactions-bulk-toolbar-fixed-invoice-date-banner.png) -
Issuing credit notes (integrated invoicing) — Issue credit notes (N) after invoiced Reject / Revert
-
FAQ — Bulk Hostkit invoicing slow — HTTP 429 pacing
-
Notification triage — Bulk Hostkit invoicing — Alert cleanup before bulk Issue allocation (Step 5)
-
Entering Monthly Utility Bills — Bulk Hostkit invoicing — Finish Missing data + overage Pending before bulk export (Steps 4b–5)
-
Manual block hygiene — Bulk Hostkit invoicing — Clear stale holds before Issue allocation unmasks receivables (Step 5)
-
Using in-app support — Bulk Hostkit invoicing — Self-serve Hostkit pacing before filing tickets
-
Resetting a Management User Password — Bulk Hostkit invoicing — Lockout-delayed month-end Issue allocation after Step 3
-
Managing a Check-in — Bulk Hostkit invoicing — Move-in Pending mesh before bulk Issue allocation (Step 6b)
-
Managing a Check-out — Bulk Hostkit invoicing — Departure-week Pending mesh before bulk export (Step 6b)
-
Onboarding a New Property — Bulk Hostkit invoicing — First month-end Issue allocation after go-live
-
Cancelling a Booking — Bulk Hostkit invoicing — Settlement bulk export on Step 6b
-
FAQ — Bulk Hostkit invoicing hub — Symptom table + HTTP 429 pacing on Transactions
Rent reduction after invoicing
Invoiced floor and rent edits happen on the booking sidebar — pair Bulk Hostkit invoicing when external rent relief surfaces Not issued credit note rows. Hub parity: Common Workflows — Rent reduction after invoicing. Full pairing matrix: Finance section cross-reference · Module cross-reference.
- Common Workflows — Rent reduction after invoicing — Hub matrix (
bookings-detail-change-monthly-rent-modal.png,bookings-rent-reduction-invoiced-floor-flow.mp4) - Processing a New Booking — Rent reduction after invoicing — Confirmation month already invoiced on Step 3
- Handling a Late Payment — Rent reduction after invoicing — Collections goodwill after Step 4
- Portfolio KPI review — Rent reduction after invoicing — Month-end repricing sign-off on Step 7
- Invoiced floor and rent edits — Why Open booking precedes Change monthly rent
- Bulk Hostkit invoicing — Issue credit notes Hostkit pacing after external relief
- Bookings — Contract Values tab — Per-line Edit amount under the same floor
- FAQ — Lower rent below invoiced — Modal walkthrough
- Cancelling a Booking — Rent reduction after invoicing — Settlement Step 2b mesh
- Onboarding a New Property — Rent reduction after invoicing — First month-end on new inventory
- Managing a Check-in — Rent reduction after invoicing — Pre-move-in goodwill
- Managing a Check-out — Rent reduction after invoicing — Departure-week goodwill
- Notification triage — Rent reduction after invoicing — Row-click to invoiced booking on Step 4
- Entering Monthly Utility Bills — Rent reduction after invoicing — Month-end bill cycle on Step 5
- Manual block hygiene — Rent reduction after invoicing — Hold cleanup on Step 5
- Using in-app support — Rent reduction after invoicing — Self-serve before filing tickets
- Resetting a Management User Password — Rent reduction after invoicing — Lockout-delayed repricing after Step 3
- FAQ — Rent reduction after invoicing hub — Invoiced-floor modal walkthrough and Issue credit notes pacing
Directory list load failures
Transactions, Deposits, Contract Values, and Payouts use chunked directory loading — a first-fetch failure on any tab shows Failed to load … + Retry, not an empty ledger from tight filters alone. Pair Handling a Late Payment — Step 1 when collections triage needs Transactions before Retry persists. Hub parity: Common Workflows — Directory list load failures. Full pairing matrix: Finance section cross-reference · Module cross-reference.
- Common Workflows — Directory list load failures — Hub matrix (
notifications-module-load-failure.png,dashboard-partial-data-load-failure.png) - Transactions Tab — Chunked ledger load + toolbar filters after data arrives
- Deposits Tab — Date-range intersection vs failed first fetch
- Handling a Late Payment — Directory list load failures — Receivables directory Retry on collections triage (Step 1)
- Portfolio KPI review — Directory list load failures — Month-end sign-off when Finance lists fail (Step 7)
- FAQ — Directory list load failures — Whole-module vs filter-empty ledger
- FAQ — Directory list load failures hub — Transactions / Deposits tab Retry vs tight date-range empty state symptom table
- Glossary — Directory list load failures hub — Surface table + per-guide/module mesh reciprocal hub
Deposit missing on Finance Deposits
Deposits tab rows key off check-in, check-out, or Refund Due Date intersecting the toolbar date range — not booking creation date. Hub parity: Common Workflows — Deposit missing on Finance Deposits. Full pairing matrix: Finance section cross-reference · Module cross-reference.
- Common Workflows — Deposit missing on Finance Deposits — Hub matrix (
finance-deposits-date-range-toolbar-default.png,finance-deposits-date-range-toolbar-cleared.png,finance-deposits-date-range-clear-flow.mp4) - Deposits Tab — Toolbar Clear date range selection before portfolio triage
- Glossary — Finance Deposits date range — Default ~3 months intersection rule
- FAQ — Deposit missing on Finance Deposits — Symptom table and dispute row chips
- Managing a Check-out — Deposit missing on Finance Deposits — Clear toolbar range before Step 5 refund triage
- Cancelling a Booking — Deposit missing on Finance Deposits — Widen range before Step 3 dispute freeze
- Portfolio KPI review — Deposit missing on Finance Deposits — Month-end sign-off at Step 7
- Resetting a Management User Password — Deposit missing on Finance Deposits — Lockout-delayed older move-out catch-up
- Processing a New Booking — Deposit missing on Finance Deposits — Clear Finance toolbar range when confirmation Deposit tab shows data but portfolio row is missing
- Handling a Late Payment — Deposit missing on Finance Deposits — Widen range before deposit shortfall vs rent Partial Paid triage (Step 1)
- Managing a Check-in — Deposit missing on Finance Deposits — Clear range before move-in deposit triage (Step 3)
- Notification triage — Deposit missing on Finance Deposits — Row-click deposit alerts when Finance row is filtered out (Step 4)
- Onboarding a New Property — Deposit missing on Finance Deposits — Clear toolbar range on first check-out deposit triage (Step 7)
- Entering Monthly Utility Bills — Deposit missing on Finance Deposits — Widen range before departure deposit release (Step 5)
- Manual block hygiene — Deposit missing on Finance Deposits — Clear range when debt KPIs stay high after holds cleared (Step 5)
- Using in-app support — Deposit missing on Finance Deposits — Self-serve date-range triage before filing tickets
Occupancy KPI to block hygiene handoff
Month-end Overview debt or segment KPIs that look hold-suppressed pair with hub Common Workflows — Occupancy KPI to block hygiene handoff before account-wide rate or category edits — clear Tools → Audit holds first. Hub parity: Common Workflows — Occupancy KPI to block hygiene handoff. Full pairing matrix: Finance section cross-reference · Module cross-reference.
- Common Workflows — Occupancy KPI to block hygiene handoff — Hub matrix (
analytics-kpi-occupancy-tab.png,audit-manual-blocks-workspace.png,audit-manual-blocks-filter-scroll.mp4) - Analytics module — Occupancy / RevPAR dip signal
- Audit — Occupancy KPI to block hygiene handoff — Manual Blocks cleanup workspace
- Portfolio KPI review — Step 3 — Upstream heatmap before repricing
- Manual block hygiene — Downstream hold cleanup Steps 1–5
- FAQ — Occupancy KPI to block hygiene handoff hub — Symptom table for KPI dip vs holds
- Managing a Check-in — Occupancy KPI to block hygiene handoff — Timeline overlap from stale holds on Step 1
- Managing a Check-out — Occupancy KPI to block hygiene handoff — Calendar bars persist after Step 7
- Cancelling a Booking — Occupancy KPI to block hygiene handoff — Availability not restored on Step 5
- Entering Monthly Utility Bills — Occupancy KPI to block hygiene handoff — Dashboard vs Analytics vacancy mismatch on Step 5
- Notification triage — Occupancy KPI to block hygiene handoff — Vacant Units vs Analytics on Step 1
- Resetting a Management User Password — Occupancy KPI to block hygiene handoff — Lockout-delayed KPI review after Step 3
- Using in-app support — Occupancy KPI to block hygiene handoff — Calendar edit blocked after block hygiene
- Handling a Late Payment — Occupancy KPI to block hygiene handoff — Vacant Units vs Multicalendar holds on Step 1
Partly collected security deposit
Deposits tab shortfalls pair with Bookings — Deposit tab and the Partial paid card on Deposit lifecycle status cards. Hub parity: Common Workflows — Partly collected security deposit. Full pairing matrix: Finance section cross-reference · Module cross-reference.
- Common Workflows — Partly collected security deposit — Hub matrix when Paid on the deposit is above zero but below Amount
- Finance — Deposit lifecycle status cards — Partial paid card for portfolio triage (#2091)
- Bookings — Deposit tab — Partially paid badge and remaining helper on a single reservation
- FAQ — Partly collected security deposit — Distinct from Partial Paid rent on Payment Plan
- Managing a Check-in — Step 3 — Chase deposit shortfalls before key handover
- Processing a New Booking — Partly collected security deposit — Confirmation deposit shortfall after Step 5
- Managing a Check-in — Partly collected security deposit — Chase remaining before key handover
- Handling a Late Payment — Partly collected security deposit — Deposit vs rent Partial Paid at Step 1
- Cancelling a Booking — Partly collected security deposit — Settlement math on shortfall deposits
- Portfolio KPI review — Partly collected security deposit — Month-end deposit sign-off (Step 7)
- Managing a Check-out — Partly collected security deposit — Inspection shortfall before Ready to Refund (Steps 3–5)
- Entering Monthly Utility Bills — Partly collected security deposit — Month-end Partial paid card alongside utility close
- Notification triage — Partly collected security deposit — Deposit alert row-click opens Deposit tab (Step 4)
- Onboarding a New Property — Partly collected security deposit — First confirmation deposit shortfall after go-live
- Manual block hygiene — Partly collected security deposit — Partial paid card when debt KPIs stay high after holds cleared (Step 5)
- Resetting a Management User Password — Partly collected security deposit — Lockout-delayed deposit triage after Step 3
- Using in-app support — Partly collected security deposit — File Finance module tickets when partial filter or badge behaviour is wrong
- Glossary — Deposit lifecycle status —
depositStatuspill vocabulary
Wrong tenant on a booking
Change tenant reassigns the reservation without rebuilding the payment plan — past paid + invoiced allocations stay on the original tenant for audit and may block Reassign booking on confirm. Contrast Delete Booking, which hides Manual Transactions on Finance → Transactions (#1897). Hub parity: Common Workflows — Wrong tenant on a booking. Full pairing matrix: Finance section cross-reference · Module cross-reference.
- Common Workflows — Wrong tenant on a booking — Hub matrix (
bookings-detail-change-tenant-modal.png,finance-transactions-type-summary-cards.png) - Bookings — Change tenant — Control location and eligibility guards
- Archived bookings on the ledger — Delete vs Change tenant ledger impact (#1897)
- Handling a Late Payment — Wrong tenant on a booking — Collections triage on Step 1
- Portfolio KPI review — Wrong tenant on a booking — Month-end sign-off on Step 7
- FAQ — Wrong tenant on a booking — Symptom table
Cancel Booking vs Delete Booking
Delete Booking hides Manual Transactions on Finance → Transactions for soft-archived reservations (#1897) while Cancel booking keeps every payment type visible under Canceled filters. Month-end sign-off pairs with Archived bookings on the ledger. Hub parity: Common Workflows — Cancel Booking vs Delete Booking. Full pairing matrix: Finance section cross-reference · Module cross-reference.
- Common Workflows — Cancel Booking vs Delete Booking — Hub matrix (
finance-transactions-type-summary-cards.png,bookings-list-canceled-tab.png) - Glossary — Cancel Booking vs Delete Booking hub — Surface table + per-guide/module mesh reciprocal hub
- Archived bookings on the ledger — System vs Manual buckets (#1897)
- Type summary cards (System vs Manual) — Month-end reconciliation surface
- Portfolio KPI review — Cancel Booking vs Delete Booking — Step 7 ledger gap mesh
- Manual block hygiene — Cancel Booking vs Delete Booking — Step 5 reconciliation after soft-archive
- FAQ — Manual payments after Delete Booking — Expected behaviour (#1897)
Provider platform Delete Booking guard
Reject or assign pending provider platform in-payment rows on Finance → Transactions before Delete Booking on the reservation (#2076). Delete payment stays disabled on provider-platform rails. Hub parity: Common Workflows — Provider platform Delete Booking guard. Full pairing matrix: Finance section cross-reference · Module cross-reference.
- Common Workflows — Provider platform Delete Booking guard — Hub matrix (
bookings-detail-delete-booking-provider-platform-error-toast.png,bookings-provider-platform-reject-delete-flow.mp4) - Glossary — Provider platform Delete Booking guard hub — Surface table + per-guide/module mesh reciprocal hub
- Row actions on in-payment rows — Reject selected / bulk Reject on pending provider platform rows
- Assign a payment to another booking — Alternative to Reject when invoicing rules allow
- Delete payment on the ledger — Stays disabled on provider platform rails (#2076)
- Bookings — Provider platform payment — Read-only field on integration bookings
- FAQ — Delete Booking on integration reservation — Symptom table (#2076)
Archived booking ledger visibility
After Delete Booking, Finance → Transactions hides Manual Transactions for soft-archived reservations while System Transactions (vIBAN, credit card) stay (#1897). Month-end sign-off pairs with Archived bookings on the ledger. Hub parity: Common Workflows — Archived booking ledger visibility. Full pairing matrix: Finance section cross-reference · Module cross-reference.
- Common Workflows — Archived booking ledger visibility — Hub matrix (
finance-transactions-type-summary-cards.png) - Glossary — Archived booking ledger visibility hub — Surface table + per-guide/module mesh reciprocal hub
- Archived bookings on the ledger — System vs Manual Transactions visibility table (#1897)
- Type summary cards (System vs Manual) — Bucket cards on Finance → Transactions
- Cancel Booking vs Delete Booking — Delete hides manual rows; Cancel keeps full ledger (#1897)
- FAQ — Manual payments after Delete Booking — Expected behaviour (#1897)
- Portfolio KPI review — Archived booking ledger visibility — Step 7 month-end ledger gaps
Portfolio retirement decisions
After Delete Booking, Finance → Transactions may hide Manual Transactions while System Transactions stay (#1897) — building Archive does not remove ledger rows. Hub parity: Common Workflows — Portfolio retirement decisions. Full pairing matrix: Finance section cross-reference · Module cross-reference.
- Common Workflows — Portfolio retirement decisions — Hub matrix (
finance-transactions-type-summary-cards.png,listings-archived-populated-table.png) - Glossary — Portfolio retirement decisions hub — Surface table + per-guide/module mesh reciprocal hub
- Archived bookings on the ledger — System vs Manual buckets after soft-archive (#1897)
- Type summary cards — Manual Transactions hidden after Delete Booking
- FAQ — Manual payments after Delete Booking — Month-end reconciliation when rows vanish
- Portfolio KPI review — Portfolio retirement decisions — Step 7 sign-off after cleanup
- Glossary — Archived property — Building Archive — distinct from reservation soft-archive
Portfolio segmentation by tenant category
Segment filters pair with Settings > Tenant categories and Portfolio KPI review — Step 6. Hub parity: Common Workflows — Portfolio segmentation by tenant category. Full pairing matrix: Finance section cross-reference · Module cross-reference.
- Common Workflows — Portfolio segmentation by tenant category — Hub matrix when segment filters must align across reservations, receivables, and tenant profiles
- Tenant category filter — Other filters → Tenant → Tenant category on every Finance tab that honours Other filters
- Bookings — Other filters — Mirror segment filter on reservation list Other filters
- Tenants — Tenant category filter — Profile-count cross-check before account-wide policy changes
- Portfolio KPI review — Step 6 — Segment In Debt or income roll-ups during month-end review
- FAQ — Finance tenant category filter parity — Cache-built option list may omit segments not yet in bookings cache
- Onboarding a New Property — Portfolio segmentation by tenant category — Define segments before channel imports
- Processing a New Booking — Portfolio segmentation by tenant category — Assign Category before contract mail (Step 2)
- Managing a Check-in — Portfolio segmentation by tenant category — Re-verify portal gates on arrival week
- Notification triage — Portfolio segmentation by tenant category — Alert clusters on one segment
- Handling a Late Payment — Portfolio segmentation by tenant category — Segment-scoped collections
- Portfolio KPI review — Portfolio segmentation by tenant category — Month-end segment pass (Step 6)
- Managing a Check-out — Portfolio segmentation by tenant category — Departure-week In Debt clusters (Step 6)
- Cancelling a Booking — Portfolio segmentation by tenant category — Settlement backlog on one segment (Step 2)
Key glossary terms
Glossary rows pair with Glossary cluster cross-reference. Full pairing matrix: Finance section cross-reference · Module cross-reference.
-
Glossary — Cash flow forecast (Finance Overview) — Collections history chart vs Dashboard rent-due forecast
-
Invoiced floor (rent) — Rent clamps when Finance has already invoiced a month
-
Discount (booking) — Portfolio Discounts filter and Contract Values adjustments
-
Deposit dispute — Deposits tab and booking Deposit workflows when retention is contested
-
Glossary — End-of-Booking cost split — Charge Time → End of Booking splits daily overage across every occupied unit; still-staying roommates stay in the denominator (#2111)
-
Glossary — Change history — Operator-initiated edits on Listings setup and Bookings Changelog; create-time defaults excluded (#2093)
-
FAQ — Booking Changelog scope — Operator-initiated edits only; create-time defaults excluded (#2093)
-
Glossary — Archived booking ledger visibility — Delete Booking hides manual/provider_platform rows on Finance → Transactions; vIBAN and credit card stay visible (#1897)
-
Bookings — Provider platform payment — Non-rejected provider platform in-payment blocks Delete Booking until Reject or assign (#2076)
-
FAQ — Delete Booking on integration reservation — Clear pending provider platform in-payment with Reject or assign before soft-archive (#2076)
-
Listings — Property edit sidebar pills — Setup / Full integration / Photos pills on property and unit edit sidebars; replaced the old Go to details shortcut (#2082)
-
Glossary — Finance tenant category cache refresh — Recategorizing a tenant on Tenants → Tenant Info force-refreshes Finance caches so Contract Values, Overview, and Deposits filters match within seconds (#2088)
-
FAQ — Assign tenant category for direct booking — Add booking has no category field; assign on Tenants → Tenant Info or + Create New → Tenant before contract mail
-
Glossary — SIMAR water contract ID — SIMAR (Loures e Odivelas) water bills use Cód. Local in Connections — not Nº de Contador; leading zeros stripped (#2110)
-
FAQ — SIMAR water bill property match — Cód. Local in Connections — not Nº de Contador; strip leading zeros (#2110)
-
Glossary — Per-booking maintenance ticket opt-out — Add booking checkboxes skip automatic CI/CO tickets for one reservation only; property rule unchanged (#1140)
-
FAQ — Cancel Booking vs Delete Booking — Cancel for real stays with settlement; Delete soft-archives mistaken/test rows (#1897 / #2076)
-
Glossary — Archived property — Archive retires a building to Listings → Archived without deleting bookings; distinct from Delete Booking (reservation soft-archive) — Listings — Archived properties
-
FAQ — Archive a property — Edit property sidebar Archive / Unarchive on Listings; building-level — not Delete Booking or Cancel booking
-
FAQ — Portfolio retirement decisions — Archive property (building) vs Cancel booking vs Delete Booking (reservation soft-archive) — three-way decision table
-
Deposit lifecycle status cards — Deposit lifecycle status row on this tab (#2091)
-
Operations — Tickets toolbar search — Paste the full sequential ticket ID (for example
S259,T27) when damage or turnover tickets block deposit settlement (#2074) -
FAQ — Find a ticket by its ID — Paste the full sequential ticket ID (for example
S259,T27) in Operations → Tickets toolbar Search (#2074) -
FAQ — Skip automatic check-in/out tickets for one booking — Turn off Use unit contract rents and other contract details on Add booking to reveal CI/CO ticket checkboxes (#1140)
-
FAQ — Same-day turnovers — Check-out + check-in on one unit same day: Operations → Check-in & Check-out, Timeline / Multicalendar, turnover tickets
-
FAQ — Manual payments after Delete Booking — Delete Booking hides manual/provider_platform rows on Finance → Transactions; vIBAN and credit card stay visible (#1897)
-
Glossary — Directory list load failures — First-fetch directory failures show Retry / Try again; distinct from filter-empty states and booking-sidebar tab errors
-
Glossary — Vacant Unit Preference — Include manual blocks counts operator holds as free on Dashboard / Sales vacancy surfaces (#1427)
-
FAQ — Communication or Tickets load failure — Tab-scoped Refresh (Communication) or Retry (Tickets); other booking sidebar tabs stay usable
-
Operations — Property-level ticket search — Property-name matches share the top relevance tier with unit hits; building-scoped rows float first under an active Property filter (#2089)
-
Notification row navigation — Bell and
/notificationsrows that deep-link into Transactions or Deposits -
FAQ — Notification row-click navigation — On
/notifications, row click marks unread then openslink,bookingId,tenantId,listingId, orpropertyId(first match); Dashboard bell General rows stay in-panel unlesslinkis set -
FAQ — Phone shows Operations only — Mobile phone user agent locks operators with Operations access to
/operations; iPads and narrow desktop browsers keep the full module list -
FAQ — AI token usage — Poll GET /ai-usage / GET /ai-usage/summary with management JWT;
landlord_chat+utility_bill_extraction; no management UI screen yet -
FAQ — Automatic check-in email — Trigger matrix, 15-day cutoff, paper upload vs portal signing, Nuki-only toggle, Send / Resend on Contract Info
-
FAQ — WhatsApp and email per booking — Bookings → Communication tab when tenant chatbot is enabled; Inbox for portfolio-wide triage
-
FAQ — Deposit missing on Finance Deposits — Default ~3 months date range; clear or widen before triaging older move-outs or dispute row actions
-
FAQ — Pending manual in-payment on /notifications — Alert persists until Approve payments clears Finance or booking Transactions
-
FAQ — Uncovered Debt KPI — Finance Total Debt minus deposit offsets; pair with Debt Aging and In debt drill-down
-
FAQ — Finance Income status drill-down hub — Symptom table for segment vs Debt Aging
-
FAQ — Finance Income status drill-down — Overview Income chart (Paid / Scheduled / In debt); click a segment for month-scoped payment-line modal; Debt Aging for booking-level receivables
-
FAQ — Cash flow forecast drill-down hub — Symptom table for collections vs Income / Dashboard
-
FAQ — Cash flow forecast drill-down — Month / Day bar-click habit on Cash flow forecast
-
FAQ — Finance tenant category filter parity — Drawer lists segments on cached bookings only; mirror Bookings / Tenants
-
Glossary — Finance tenant category cache refresh — Filter results after Tenants → Tenant Info recategorization (#2088)
-
FAQ — Bookings that owe money — Top debtors and overdue buckets; Total Debt KPI is not a table
-
FAQ — Dashboard Total Debt subtitle — Post-login Total Debt card headline vs >15 days subtitle; ongoing bookings only
-
FAQ — Analytics (KPI workspace) — Portfolio KPIs vs Sales/Listings/Dashboard; load-failure Try again
-
FAQ — Permission denied toast — Red You do not have permission to perform this action. toast when RBAC blocks a save; fix in Users → Role Permissions
-
FAQ — Fixed rent on variable unit — Variable listing + equal rent every contract month → booking stores fixed headline Monthly rent; payment plan unchanged
API & companion guides
API bullets pair with API Reference hub. Full pairing matrix: Finance section cross-reference · Module cross-reference.
- API Reference — Creating Bookings — Partner
POST …/bookingsimports whose payment schedules land on Contract Values and Transactions - API Reference — Webhooks & Notifications — Partner HTTP callbacks when imports change booking or payment state
- API Reference — Management session — Operator JWT routes for scripted Transactions, Deposits, and Contract Values reconciliation
Module documentation hubs
Module hub bullets pair with Modules — Module cross-reference. Full pairing matrix: Finance section cross-reference · Module cross-reference.
- Finance module — Portfolio ledgers (Overview, Income, Contract Values, Transactions, Payouts, Deposits) with payment approval and deposit settlement (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
/propertiesURL redirects into Listings (hub) - Booking engine details — Rich marketplace payload editor via the Full integration pill (hub)
- Tenants module — Tenant directory, profile sidebars, With Debt segmentation, and table expand for linked bookings (hub)
- Sales module — Portfolio availability, monthly rent editing, and channel manager connections (hub)
- Inbox module — Portfolio-wide WhatsApp workspace with Dashboard bell Inbox sub-tab deep links (hub)
- Notifications module — Full
/notificationshistory with search, filters, and row-click navigation (hub) - AI Chat module — Vivin-internal 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)