Contract
Complete Getting Started — Recommended Setup Sequence step 8 (this tab — contract templates) after steps 5–7 Payments, Invoicing & Utilities and before step 9 Categories — full tab map: Recommended setup order. Finish steps 13–15 in Listings, Bookings, and Tenants, then Onboarding a New Property — Step 7. Guided steps 4–12: Onboarding a New Property. Lockout catch-up: Getting Started. Workflow pairing after go-live: Account Settings — Setup sequence after go-live.
Upload the account default in Uploading a template, author variables in Using dynamic variables, then add Property and unit overrides when templates differ by asset. Non-linear operator habits (Lockout catch-up, Pending manual receipt approval, Reject/revert mistaken receipts, Portfolio segmentation by tenant category, Notification row-click navigation, Payment alert to receivables triage, Confirmation alert triage, Finance debt receivables triage, Finance Income status drill-down, Cash flow forecast drill-down) have matching Related subsections below. Full pairing matrix: Contract section cross-reference · Account Settings — Tab cross-reference.
Use the Contract tab under Account Settings to upload and manage the account default Word template, optional property or unit overrides, and the in-app variable reference operators use when authoring .docx files.
Open Account Settings > Property > Contract at platform.vivin.app/settings/contract. See Deep Links for neighbouring settings routes.
Upload templates after General Information branding (logo on PDF headers) and seed Categories Lease Purpose options if contracts reference lease-type variables. Contract-generation volume does not appear on this tab — poll AI usage API only for landlord_chat / utility_bill_extraction during month-end review, not template uploads. Section-to-doc pairing: Contract section cross-reference. Hub tab matrix: Account Settings — Tab cross-reference.
How to open the Contract tab
Navigation here pairs with Deep Links — Account Settings (/settings/contract) and General Information branding before you upload the account default. Full pairing matrix: Contract section cross-reference.
- Sign in to the management frontend and open Account Settings (gear / company entry in the user area, or go to
/settings). - In the settings left sidebar, under Property, choose Contract.
- Follow the three numbered steps on the page (prepare variables → check the full list → upload), then use Upload Contract Template for the account default or manage overrides in the Properties / Units sections below.
The capture below shows the full Contract workspace: step-by-step guidance, the current account template card (preview / download), and collapsible property and unit override groups.

Uploading a template
Upload the account default before first Processing a New Booking — property/unit overrides inherit the fallback chain documented in Listings — Contract tab. Full pairing matrix: Contract section cross-reference.
Vivin uses a Word document (.docx) as the contract template. When a contract is generated for a booking, Vivin replaces placeholders in the document with booking data and produces a ready-to-sign PDF.
To upload or replace the account default:
- Prepare your contract in Microsoft Word or Google Docs (exported as
.docx). - Insert variable placeholders (see Using dynamic variables) where booking-specific information should appear.
- On the Contract tab, click Upload Contract Template, choose Account scope (unless you are replacing a property- or unit-specific file), and select your
.docx.

The modal also supports Property and Unit scopes when you need an override instead of changing the account default. Use Replace on an existing override card to open the same dialog with scope locked to that entity.
Using dynamic variables
Financial tokens reference Invoicing & Payments — Dual pricing and Categories — Lease Purpose — overlap with Emails — Dynamic variables for tenant-facing copy. Full pairing matrix: Contract section cross-reference.
Insert placeholders in your .docx using single braces around the token name, for example {TenantName} and {StartDate}. Vivin replaces them when generating the contract. Use the exact names shown below (PascalCase inside the braces).
On the Contract tab, open Check the list of available variables here to see the same catalogue in a scrollable modal (useful when authoring offline).

Tenant variables
| Variable | Output |
|---|---|
{TenantName} | Tenant's full name |
{TenantEmail} | Tenant's email address |
{TenantPhone} | Tenant's phone number |
{Nationality} | Tenant's nationality |
{FiscalId} | Tenant's tax/fiscal ID number |
{IdentificationId} | Tenant's passport or ID number |
{TenantIdDocumentType} | Tenant's ID document type (e.g. Passport, ID Card) |
{TenantIdDocumentCountry} | Country of the tenant's ID document |
{TenantIdDocumentExpiryDate} | Tenant's ID document expiry date (DD/MM/YYYY) |
{TenantFiscalAddress} | Tenant's home address (billing address if empty) |
{%TenantSignature} | Tenant's signature image — filled when the tenant signs |
{%LandlordSignature} | Landlord's signature image — filled automatically when the tenant signs (see Landlord signature) |
Owner variables
These come from the property's owner record in Settings → Owners. A property that has no owner assigned renders all of them empty.
| Variable | Output |
|---|---|
{OwnerName} | Owner's name |
{OwnerFiscalId} | Owner's tax/fiscal ID number (NIF / CIF) |
{OwnerFiscalAddress} | Owner's fiscal address |
{OwnerEmail} | Owner's email address |
{OwnerPhone} | Owner's phone number |
{OwnerIdDocumentType} | Owner's ID document type (e.g. Passport, ID Card) — set it on the owner's record |
Property and unit variables
| Variable | Output |
|---|---|
{PropertyAddress} | Full property address |
{ListingInternalName} | Unit/listing internal name |
{Floor} | Floor number |
{RoomNumber} | Room number |
{PropertyTotalRooms} | Number of units in the property (see Property rooms) |
{PropertyRoomRange} | The property's unit names as a range or list (see Property rooms) |
Booking and financial variables
| Variable | Output |
|---|---|
{StartDate} | Contract start date (DD/MM/YYYY) |
{EndDate} | Contract end date (DD/MM/YYYY) |
{ContractDurationMonths} | Contract duration in whole months, as a number (see Contract duration) |
{ContractDurationInTextEn|Pt|Es|It} | The same duration spelled out, e.g. seis [6] meses (see Contract duration) |
{CheckInDate} | Tenant's physical move-in date (DD/MM/YYYY) |
{CheckOutDate} | Tenant's physical move-out date (DD/MM/YYYY) |
{CheckInTime} | Check-in time |
{CheckOutTime} | Check-out time |
{RentValue} | Monthly rent amount |
{SecurityDeposit} | Security deposit amount |
{AdministrativeFee} | Administrative fee amount |
{CleaningFee} | Cleaning fee amount |
{RentJan}–{RentDec} | Monthly rent for each month (Jan–Dec) |
{ContractSignDate} | Contract signing date (DD/MM/YYYY) |
{TotalValuePending} | Total value pending |
{ContractTotalValue} | Total rent payable across the whole contract (distinct from Total value pending) |
{Debt} | Outstanding debt amount |
{BillsIncludedMaxValue} | Maximum bills-included value |
{vIBAN} | Tenant's virtual IBAN (bank transfer reference for this booking — not the tenant's personal IBAN) |
{DueDate} | Payment due date where applicable |
{LocalRentCap} / {RentCapDifference} | Populated when the booking uses dual pricing / local rent cap: LocalRentCap is the frozen cap in euros; RentCapDifference is rent − cap (the services slice). Empty when dual pricing does not apply. |
The in-app modal may list additional tokens (for example {LeasePurpose}). Treat the modal as the authoritative catalogue for your workspace.
Landlord signature
The {%LandlordSignature} placeholder lets Vivin apply your signature to a contract as an image — the same way {%TenantSignature} works for the tenant. This replaces the old practice of baking a signature picture into the Word template, which made every generated draft look pre-signed before anyone had actually signed.
How it works
- On a draft, the placeholder is empty. A generated contract (manual or from an OTA booking) never shows your signature until the tenant signs — so a draft is never a pre-signed document.
- When the tenant e-signs in the tenant portal, your signature is applied automatically in the same document, so the signed PDF is the finished, both-party contract. There is no extra step for you — the operator flow is exactly as before.
- If you have no signature on file, or the template does not contain
{%LandlordSignature}, the tenant can still sign normally — the contract is simply signed by the tenant only. Applying your signature never blocks or delays the tenant's signature.
Set up your signature
- Open Settings ▸ Contract.
- In the Landlord signature card, either upload a PNG (transparent background recommended) or draw it with your mouse/finger.
- Vivin trims and resizes the image automatically, and clamps it to a sensible size when rendering, so it always fits the signature block — you don't need to worry about the source image's dimensions.
- Add the
{%LandlordSignature}placeholder to your template wherever the landlord signature should appear (typically the signature block at the end), and remove any signature image that was previously baked into the document. - Use Preview to check the placement — the preview renders your real signature so you can confirm exactly where it lands.
If your current template has a signature baked in as a picture, replace that picture with the {%LandlordSignature} placeholder and re-upload the template. Until you do, generated drafts will keep showing the baked-in signature. Vivin warns you on upload when a template still contains an embedded image that might be a baked signature.
Amount-in-text variables
Amount-in-text tokens build on the euro figures in Using dynamic variables and pair with Invoicing & Payments — Dual pricing when rent changes month to month. Full pairing matrix: Contract section cross-reference.
Some legal templates must spell an amount out in words next to the figure (for example 1.500 € (mil e quinhentos euros)). Vivin provides amount-in-text tokens that render an amount as euro words, including the currency. Like every other placeholder, they use single braces and are case-sensitive — write them exactly as shown.
Each token names its own language with a suffix — …En (English), …Pt (Portuguese), …Es (Spanish), …It (Italian). Because the language lives in the token, you can mix languages in a single .docx: put a Portuguese clause and an English clause side by side and choose the language per token occurrence. This is what makes bilingual templates possible.
Open available variables on the Contract tab and scroll past {RentValue} — the catalogue lists every language-suffixed rent, deposit, and contract-total token with a one-line description and a copy control (#2254):

Available tokens
Monthly rent in words
| Variable | Renders in |
|---|---|
{RentValueInTextEn} | English (always) |
{RentValueInTextPt} | Portuguese (always) |
{RentValueInTextEs} | Spanish (always) |
{RentValueInTextIt} | Italian (always) |
Security deposit in words
| Variable | Renders in |
|---|---|
{SecurityDepositInTextEn} | English (always) |
{SecurityDepositInTextPt} | Portuguese (always) |
{SecurityDepositInTextEs} | Spanish (always) |
{SecurityDepositInTextIt} | Italian (always) |
Full contract total
| Variable | Output |
|---|---|
{ContractTotalValue} | Full-contract total as a number |
{ContractTotalValueInTextEn} | Full-contract total in words — English (always) |
{ContractTotalValueInTextPt} | Full-contract total in words — Portuguese (always) |
{ContractTotalValueInTextEs} | Full-contract total in words — Spanish (always) |
{ContractTotalValueInTextIt} | Full-contract total in words — Italian (always) |
What the contract total means
{ContractTotalValue} (and its in-text variants) is the total rent payable across the whole contract duration — the contractual obligation. Vivin sums it from the booking's payment plan: the rent for every month of the stay, including proration, first/last-month splits, and dual-pricing rent.
{ContractTotalValue} is the total the tenant is contracted to pay and does not change as payments come in. {TotalValuePending} is the outstanding balance (debt) and shrinks as the tenant pays. Use {ContractTotalValue} for the contractual sum, and reach for {TotalValuePending} only when you specifically mean the amount still owed.
{ContractTotalValue} is total rent only. It is not the same figure as the Contract Value shown in the booking-details header, which also includes cleaning, admin and exit fees (everything except the deposit) — so the two normally differ. This token deliberately renders the total rent payable; the rent-plus-fees figure is not currently exposed as a contract variable.
How amounts are rendered
Amounts render as euro words including the currency:
{RentValueInTextEs}→ochocientos cincuenta euros{RentValueInTextPt}→mil e quinhentos euros{RentValueInTextEn}→eight hundred and fifty euros
Cents are spelled out after the euros:
- Spanish →
… euros con cincuenta céntimos - Portuguese →
… euros e cinquenta cêntimos - English →
… euros and fifty cents - Italian →
… euro e cinquanta centesimi
Whole amounts omit the cents clause, and a zero amount renders as zero euros (localised).
When rent varies month to month, the token renders a localised range between the lowest and highest monthly rent:
{RentValueInTextEs}→novecientos a mil cien euros{RentValueInTextPt}→novecentos a mil e cem euros{RentValueInTextEn}→nine hundred to one thousand one hundred euros
Bilingual template examples
Because language-suffixed tokens always render in their named language, you can write one clause per language in the same .docx.
Portuguese + English
A renda mensal é de {RentValue} € ({RentValueInTextPt}).
The monthly rent is €{RentValue} ({RentValueInTextEn}).
Spanish + English
La renta mensual es de {RentValue} € ({RentValueInTextEs}).
The monthly rent is €{RentValue} ({RentValueInTextEn}).
Rent range — when the monthly rent changes across the stay:
Renda mensal: {RentValueInTextPt}.
→ Renda mensal: novecentos a mil e cem euros.
Cents — when an amount includes céntimos/cents:
Caução: {SecurityDepositInTextEn}.
→ Caução: eight hundred and fifty euros and fifty cents.
Always use the language-suffixed token (…En, …Pt, …Es, …It) that matches the language of the surrounding clause. A single-language template uses one suffix throughout; a bilingual template uses two suffixes in their respective clauses.
Contract duration
{ContractDurationMonths} prints the length of the lease in whole months, as a plain number — no "months" word, so you can phrase the clause however you like. {ContractDurationInTextEn} / …Pt / …Es / …It print the same value spelled out, in the mixed words-and-figures format contracts usually require:
Duración: {ContractDurationInTextEs}
→ Duración: seis [6] meses
| Token | Output for a 6-month lease |
|---|---|
{ContractDurationMonths} | 6 |
{ContractDurationInTextEn} | six [6] months |
{ContractDurationInTextPt} | seis [6] meses |
{ContractDurationInTextEs} | seis [6] meses |
{ContractDurationInTextIt} | sei [6] mesi |
The language suffixes work exactly like the amount-in-text variables — pick the one that matches the surrounding clause.
How the duration is counted
- It is measured between the same two dates the contract prints as
{StartDate}and{EndDate}. If the booking is set to use the check-in/check-out dates on the contract, the duration follows those instead — the three tokens can never disagree with each other. - The end date is inclusive (it is the last day of the lease), so
01/01/2026 → 30/06/2026is 6 months, not 5. - Partial months are dropped, never rounded up:
01/01/2026 → 15/07/2026is 6 months. This matches how the minimum/maximum stay period is checked when a booking is created. - A stay shorter than a month prints
0(cero [0] meses), which is a real answer — not a missing one. - If a date is missing, or the end date falls before the start date, all five tokens render empty rather than printing a wrong or negative number.
Property rooms
{PropertyTotalRooms} prints how many units the property has — the same "rooms" figure the app shows everywhere else (every non-deleted unit, whatever its type; a whole-apartment property counts as 1). A property with no units prints 0; the token is only blank when the count is genuinely unavailable.
{PropertyRoomRange} prints the property's unit names. It only collapses them into a range when the names prove that is safe:
| The property's units | {PropertyRoomRange} |
|---|---|
H.1 … H.6 (all present) | H.1 a H.6 |
H.1, H.3, H.6 | H.1, H.3, H.6 |
H.1 only | H.1 |
H.1, A.2 | A.2, H.1 |
Suite Azul, Ático | Ático, Suite Azul |
H.1, H.1, H.2 | H.1, H.1, H.2 |
A contract is a legal document, so H.1 a H.6 must never be printed for a property that does not actually have H.2, H.4 and H.5. Whenever the unit names have gaps, mix prefixes, or are not numbered, Vivin lists them instead — sorted naturally, so H.2 comes before H.10.
Two units may share a name (unit names are not forced to be unique). Both are listed, because both are real, separately-bookable units — a repeated name switches the token to the list form rather than being hidden inside a range.
Unit names come from each unit's internal name. Keep them consistently numbered (H.1, H.2, H.3, …) if you want the compact range form.
Property and unit overrides
Resolution order is unit → property → account — per-building files pair with Listings — Contract tab and mixed-inventory onboarding in Onboarding a New Property. Full pairing matrix: Contract section cross-reference.
Below the account default card, the Contract tab lists:
- Properties with custom contract — a
.docxthat applies to all units on that property unless a unit override exists. - Units with custom contract — a template for a single listing only.
Use Search to filter by property or unit name. On a property row, follow overrides links to scope the unit list to that building. Each card offers Preview, Replace, and Remove (remove restores the next fallback: unit → property → account default).
Unit-specific contract templates
Unit overrides pair with Processing a New Booking — Step 4 (generate PDF per unit), Listings — Contract tab (resolution chain), Preferences — Mandatory for contract signing (portal gates after PDF exists), and Tenant Portal — Digital contract signing (portal signing after generation). When tenants report a missing Sign contract button, confirm a PDF was generated — FAQ — Tenant contract signing blocked. Full pairing matrix: Contract section cross-reference.
When only some units need a different legal agreement (for example accommodation services vs long-term lease), assign a unit override:

- Click Upload Contract Template (or Replace on a unit card).
- Choose scope Unit, pick the property and unit, and upload the alternative
.docx. - When a contract is generated for that unit, the unit template wins over the property and account defaults.
You can also set a property-level template so every unit on that building shares one file without uploading per unit.
Contract section cross-reference
Use this table when one Contract topic naturally leads into another Account Settings tab, operator module, workflow, or concept — each row links to the docs you should read before or after uploading or replacing templates.
| Contract topic / section | Pair with these docs |
| ------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| How to open the Contract tab | Deep Links — Account Settings, General Information |
| Uploading a template | Users and roles, Onboarding a New Property |
| Using dynamic variables | Categories — Lease Purpose, Owners, Invoicing & Payments — Dual pricing |
| Amount-in-text variables | Using dynamic variables, Invoicing & Payments — Dual pricing (settings-contract-variables-amount-in-text.png, settings-contract-amount-in-text-flow.mp4) |
| Property and unit overrides | Listings — Contract tab, Listings module |
| Unit-specific contract templates | Processing a New Booking, Booking engine details |
| Preferences — Mandatory fields before contract signing | Handling a Late Payment — Step 1, Notifications — Payment overdue alerts |
| Lockout catch-up after password recovery | Resetting a Management User Password, Getting Started — Lockout catch-up after password recovery, Common Workflows — Lockout catch-up |
| Pending manual receipt approval | Processing a New Booking, Users and roles — Role permissions (Approve payments), Finance — Pending manual payments |
| Reject/revert mistaken receipts | Payment Allocation — Correcting mistaken receipts, Finance — Row actions on in-payment rows, Invoicing & Payments |
| Notification row-click navigation | /notifications row-click after template publish | Account Settings — Notification row-click navigation, Common Workflows — Notification row-click navigation, Notifications module — Notification row-click navigation |
| Payment alert to receivables triage | payment overdue unrelated to contract PDF updates | Account Settings — Payment alert to receivables triage, Common Workflows — Payment alert to receivables triage, Handling a Late Payment — Step 1 |
| Confirmation alert triage | Upcoming alerts after contract template go-live | Account Settings — Confirmation alert triage, Common Workflows — Confirmation alert triage, Processing a New Booking — Step 5b |
| Finance debt receivables triage | Portfolio Top debtors / Debt Aging after settings on this tab | Account Settings — Finance debt receivables triage, Common Workflows — Finance debt receivables triage, Finance module — Finance debt receivables triage |
| Finance Income status drill-down | Income → In debt vs Debt Aging after settings on this tab | Account Settings — Finance Income status drill-down, Common Workflows — Finance Income status drill-down, FAQ — Finance Income status drill-down hub |
| Cash flow forecast drill-down | Cash flow forecast month bars vs Income segments | Account Settings — Cash flow forecast drill-down, Common Workflows — Cash flow forecast drill-down, FAQ — Cash flow forecast drill-down hub |
| Portfolio segmentation by tenant category | Tenant categories, Common Workflows — Portfolio segmentation by tenant category, Bookings — Other filters |
Related
Related below links this Account Settings tab to modules, workflows, concepts, and escalation paths. Pair Documentation map & escalation with Account Settings hub — Documentation map & escalation; pair Upstream & downstream workflows with Account Settings — Tab cross-reference. Topic-to-section pairing in sections above: Contract section cross-reference. Full hub matrix: Account Settings — Section cross-reference.
Documentation map & escalation
Documentation-map bullets pair with Introduction — Section cross-reference and FAQ — Section cross-reference. Hub parity: Account Settings hub — Documentation map & escalation. Full pairing matrix: Contract section cross-reference · Account Settings — Section cross-reference.
- Account Settings hub — Tab pairing matrix across workspace configuration
- Deep Links — Account Settings — Bookmarkable
/settings/contract - Glossary — Term definitions used across settings and module docs
- FAQ — Lower rent below invoiced — Contract-value edits after months are exported to accounting
- Get Help & Support — Escalation when template generation or PDF attachment fails
Upstream & downstream workflows
Workflow bullets pair with Common Workflows — Workflow cross-reference for inter-guide step pairing. Full pairing matrix: Contract section cross-reference · Account Settings — Section cross-reference.
- Onboarding a New Property (section cross-reference; Deeper workflow reads; hub) — Property setup before first booking contract
- Processing a New Booking (section cross-reference; Deeper workflow reads; hub) — Generate and send the first contract after a reservation is created
- Managing a Check-out & Deposit Refund (section cross-reference; Deeper workflow reads; hub) — Contract end dates that drive Refund Due Date on Finance → Deposits
- Cancelling a Booking (section cross-reference; Deeper workflow reads; hub) — Contract and schedule handling when a stay ends early
- Handling a Late Payment — Step 1 (section cross-reference; Deeper workflow reads; hub) — Identify overdue confirmation charges when unsigned contracts delay portal gates or a payment overdue alert row-click brought you here
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](./contract-templates.md#deeper-workflow-reads) anchors on Account Settings bullets — hub parity: Account Settings hub — Deeper workflow reads. Full pairing matrix: Contract section cross-reference · Account Settings — Section cross-reference.
- Onboarding a New Property — Property setup before first booking contract (section cross-reference; Deeper API reads; hub)
- Processing a New Booking — Generate and send the first contract after a reservation is created (section cross-reference; Deeper API reads; hub)
- Managing a Check-out & Deposit Refund — Contract end dates that drive Refund Due Date on Finance → Deposits (section cross-reference; Deeper API reads; hub)
- Cancelling a Booking — Contract and schedule handling when a stay ends early (section cross-reference; Deeper API reads; hub)
- Handling a Late Payment — Step 1 — Identify overdue confirmation charges when unsigned contracts delay portal gates or a payment overdue alert row-click brought you here (section cross-reference; Deeper API reads; hub)
Related Account Settings tabs
Tab bullets pair with Account Settings — Tab cross-reference and Recommended setup order. Full pairing matrix: Contract section cross-reference · Account Settings — Section cross-reference.
- General Information — Company logo on PDF headers
- Categories — Charge-type tags and Lease Purpose values contract variables may reference
- Owners — Landlord variables referenced in generated
.docxtemplates - Tenant categories — Segment Contract portal module and field gates before generated PDFs reach tenants
- Preferences — Mandatory fields before contract signing — Portal gates before digital signature
- Preferences — In-app notifications — Account-wide booking alerts when contract signing gates delay confirmations
- Emails — Communication variables (some overlap with contract tokens)
- Users and roles — Who can edit Contract templates and upload booking PDFs
- Interface Language — Locale for operator-facing contract variable labels
Operator modules
Module bullets pair with Modules — Module cross-reference. Full pairing matrix: Contract section cross-reference · Account Settings — Section cross-reference.
- Bookings — Upload contract — Attaching or regenerating a contract on an existing booking
- Listings — Contract tab — Template resolution chain (unit → property → account) before PDF generation
- Finance — Contract Values — Scheduled charges that contract variables reference after generation
- Audit — Discounts tab — Cross-portfolio discount export when contract-linked payment schedules include mid-stay repricing
- Notifications — Payment overdue alerts (in-app) — Operator Payments category rows when scheduled charges are overdue before contract signing gates clear
Deeper concept reads
Concept reads pair with Concepts hub subsection index and Concept cross-reference. Full pairing matrix: Contract section cross-reference · Account Settings — Section cross-reference.
- Tenant Portal — Contract signing after a generated PDF is attached to the booking (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
- Automation & AI — Workflow automation that attaches generated contracts after booking confirmation (section cross-reference; hub)
- Booking Lifecycle — Computed stay status while contracts and PDFs are generated or re-uploaded (section cross-reference; hub)
- Payment Allocation — Two-layer receipts and credit note reject/revert warnings (section cross-reference; hub)
- Integrations & Distribution — Imported marketplace bookings use the same contract template workflow as direct reservations (section cross-reference; hub)
- Services Marketplace — Distinct from contract PDFs; portal add-ons use the Services catalogue (section cross-reference; hub)
Companion API guides
API bullets pair with API Reference hub. Full pairing matrix: Contract section cross-reference · Account Settings — Section cross-reference.
- API Reference — Creating Bookings — Partner imports that still need operator-side contract generation after enqueue
- AI usage API — Operator JWT ledger (distinct from contract PDF generation on this tab)
Module documentation hubs
Module hub bullets pair with Modules — Module cross-reference. Full pairing matrix: Contract section cross-reference · Account Settings — Section cross-reference.
- Bookings — Operator UI for contract generation and portal signing gates
- Listings — Property wizard and per-property contract overrides
- Finance — Portfolio ledgers and deposit refund workflow tied to contract end dates
- Booking engine details — Marketing copy separate from contract
.docxtemplates - Tenants — Tenant profile fields referenced by contract variables
- Operations — Check-in/out coordination when unsigned contracts block access
- API Reference hub — Partner HTTP contracts and partial vs full feeds
Lockout catch-up after password recovery
Operational backlog after sign-in recovery pairs with Resetting a Management User Password — Step 3 before you resume template uploads on this tab. Hub parity: Common Workflows — Lockout catch-up after password recovery. Full pairing matrix: Contract section cross-reference · Account Settings — Section cross-reference.
- Common Workflows — Lockout catch-up after password recovery — Hub matrix when sign-in was restored mid-setup before step 8 contract templates are uploaded
- Getting Started — Lockout catch-up after password recovery — Canonical operational backlog mesh (notification triage, Pending Steps 6b, portal gates)
- Onboarding a New Property — Property setup before first booking contract after recovery
- Pending manual receipt approval — Month-end Pending mesh when unsigned contracts delayed confirmation receipt approval
Pending manual receipt approval
Receipt approval pairs with Processing a New Booking contract-send timing and Users and roles (Approve payments permission). Hub parity: Common Workflows — Pending manual receipt approval. Full pairing matrix: Contract section cross-reference · Account Settings — Section cross-reference.
- Common Workflows — Pending manual receipt approval — Hub matrix when confirmation receipts stay pending until contracts are signed and Approve payments clears them
- Processing a New Booking — Generate and send the first contract before recording move-in receipts
- Preferences — Mandatory fields before contract signing — Portal gates that delay signature and downstream receipt approval
- Finance — Pending manual payments — Amber Pending chip on Finance → Transactions
- FAQ — Manual receipt still pending — Why contract signing gates can lag ledger approval
Reject/revert mistaken receipts
Receipt cleanup pairs with Payment Allocation contract-linked schedules and Invoicing & Payments export providers. Hub parity: Common Workflows — Reject/revert mistaken receipts. Full pairing matrix: Contract section cross-reference · Account Settings — Section cross-reference.
- Common Workflows — Reject/revert mistaken receipts — Hub matrix when contract-linked confirmation receipts need Reject / Revert after invoicing exports
- Payment Allocation — Correcting mistaken receipts — Two-layer model and credit note accounting follow-up
- Finance — Contract Values — Scheduled charges that contract variables reference after mistaken receipts are cleared
- Finance — Row actions on in-payment rows — Bulk Reject selected on Finance → Transactions
- FAQ — Reject or revert an incoming payment — Quick answers when modals warn about invoiced contract months
Portfolio segmentation by tenant category
Segment filters pair with Tenant categories Contract portal module gates and Portfolio KPI review — Step 6. Hub parity: Common Workflows — Portfolio segmentation by tenant category. Full pairing matrix: Contract section cross-reference · Account Settings — Section cross-reference.
- Common Workflows — Portfolio segmentation by tenant category — Hub matrix when contract signing rates differ by tenant segment
- Tenant categories — Segment Contract portal module and field gates before generated PDFs reach tenants
- Bookings — Other filters — Tenant category filters when unsigned contracts cluster on one segment
- Tenant Portal — Digital contract signing — Four-step portal flow after PDF generation
- Glossary — Tenant category — Definition, portfolio filter catalog, and Finance parity
Notification row-click navigation
Template uploads do not change /notifications routing — row-click alerts into Bookings before re-testing contract PDF generation. Hub parity: Account Settings — Notification row-click navigation. Full pairing matrix: Contract templates section cross-reference · Account Settings — Section cross-reference.
- Account Settings — Notification row-click navigation — Hub matrix (
notifications-module-row-click-target.png,notifications-row-navigation-flow.mp4) - Common Workflows — Notification row-click navigation — Operator procedure hub
- Notifications module — Notification row-click navigation — Canonical
/notificationsinbox pairing - FAQ — Notification row-click navigation hub — Symptom table
Payment alert to receivables triage
Contract wording does not clear receivables — payment overdue row-clicks still need Finance debt receivables triage after template saves. Hub parity: Account Settings — Payment alert to receivables triage. Full pairing matrix: Contract templates section cross-reference · Account Settings — Section cross-reference.
- Account Settings — Payment alert to receivables triage — Hub matrix (
notifications-row-navigate-to-booking-detail.png,notifications-row-navigation-flow.mp4) - Common Workflows — Payment alert to receivables triage — Operator procedure hub
- Handling a Late Payment — Step 1 — Collections follow-through after row-click
- FAQ — Payment alert to receivables triage hub — Symptom table
Confirmation alert triage
Upcoming Booking created alerts after template go-live still need confirmation receipt approval — new PDF templates do not auto-approve Payment received rows. Hub parity: Account Settings — Confirmation alert triage. Full pairing matrix: Contract templates section cross-reference · Account Settings — Section cross-reference.
- Account Settings — Confirmation alert triage — Hub matrix (
notifications-row-navigate-to-booking-detail.png,bookings-detail-transactions-approve-payment-modal.png) - Common Workflows — Confirmation alert triage — Operator procedure hub
- Processing a New Booking — Step 5b / Step 6 — Canonical confirmation gates
- FAQ — Confirmation alert triage hub — Symptom table
Finance debt receivables triage
Contract PDFs do not replace Debt Aging triage — unpaid confirmation charges still surface on Finance → Overview Top debtors. Hub parity: Account Settings — Finance debt receivables triage. Full pairing matrix: Contract section cross-reference · Account Settings — Section cross-reference.
- Account Settings — Finance debt receivables triage — Hub matrix (
finance-overview-income-chart-debt-aging.png,finance-overview-debt-aging-walkthrough-flow.mp4) - Common Workflows — Finance debt receivables triage — Operator procedure hub
- Finance module — Finance debt receivables triage — Canonical Finance → Overview surface
- FAQ — Finance debt receivables triage hub — Symptom table
Handling a Late Payment collections
Contract PDFs do not replace Debt Aging triage — unpaid confirmation charges still surface on Finance → Overview Top debtors Hub parity: Account Settings — Handling a Late Payment collections. Full pairing matrix: Contract section cross-reference · Account Settings — Section cross-reference.
- Account Settings — Handling a Late Payment collections — Hub matrix (
finance-overview-income-chart-debt-aging.png,notifications-row-navigate-to-booking-detail.png,finance-overview-debt-aging-walkthrough-flow.mp4) - Common Workflows — Handling a Late Payment collections hub — Operator procedure hub
- Finance debt receivables triage — Debt Aging before Step 1
- Pending manual receipt approval — Clear amber Pending before collections outreach
- FAQ — Handling a Late Payment collections hub — Symptom table
- Glossary — Handling a Late Payment collections hub — Surface table + per-guide/module mesh
Finance Income status drill-down
Template variables like {ContractTotalValue} do not open Income → In debt modals — use Finance → Overview segment drill-down for payment-line detail. Hub parity: Account Settings — Finance Income status drill-down. Full pairing matrix: Contract section cross-reference · Account Settings — Section cross-reference.
- Account Settings — Finance Income status drill-down — Hub matrix (
finance-overview-income-chart-debt-aging.png,finance-overview-debt-aging-walkthrough-flow.mp4) - Common Workflows — Finance Income status drill-down — Operator procedure hub
- Finance module — Income status drill-down — Canonical Finance → Overview surface
- FAQ — Finance Income status drill-down hub — Symptom table
Cash flow forecast drill-down
Signed contracts do not confirm bank settlement — open Cash flow forecast on Finance → Overview when you need collections history. Hub parity: Account Settings — Cash flow forecast drill-down. Full pairing matrix: Contract section cross-reference · Account Settings — Section cross-reference.
- Account Settings — Cash flow forecast drill-down — Hub matrix (
finance-overview-income-chart-debt-aging.png,finance-overview-debt-aging-walkthrough-flow.mp4) - Common Workflows — Cash flow forecast drill-down — Operator procedure hub
- Finance module — Cash flow forecast drill-down — Canonical Finance → Overview surface
- FAQ — Cash flow forecast drill-down hub — Symptom table
Key glossary terms
Glossary rows pair with Glossary cluster cross-reference. Full pairing matrix: Contract section cross-reference · Account Settings — Section cross-reference.
- Invoiced floor (rent) — Rent and contract-value edits after months are exported to accounting
- FAQ — Bulk Hostkit invoicing slow — Vivin paces Hostkit API calls and retries HTTP 429 during bulk Issue allocation / Invoice selected; refresh Transactions before re-issuing
- FAQ — Bulk Hostkit invoicing hub — Symptom table + per-guide mesh
- FAQ — Lower rent below invoiced — Change monthly rent clamps and Contract Values → Edit amount blocks net below exported invoice totals; use credit notes in accounting when you truly need a reduction
- Glossary — Fixed invoice date — Account-wide Invoice date before bulk Issue allocation / Invoice selected; amber banner on Finance → Transactions until you turn Use today as invoice date back on
- FAQ — Month-end invoicing (fixed date) hub — Symptom table + toggle reset after batch
- Glossary — End-of-Booking cost split — Charge Time → End of Booking splits daily overage across every occupied unit; still-staying roommates stay in the denominator (#2111)
- Glossary — Change history — Operator-initiated edits on Listings setup and Bookings Changelog; create-time defaults excluded (#2093)
- FAQ — Booking Changelog scope — Operator-initiated edits only; create-time defaults excluded (#2093)
- Glossary — Archived booking ledger visibility — Delete Booking hides manual/provider_platform rows on Finance → Transactions; vIBAN and credit card stay visible (#1897)
- Bookings — Provider platform payment — Non-rejected provider platform in-payment blocks Delete Booking until Reject or assign (#2076)
- FAQ — Delete Booking on integration reservation — Clear pending provider platform in-payment with Reject or assign before soft-archive (#2076)
- Listings — Property edit sidebar pills — Setup / Full integration / Photos pills on property and unit edit sidebars; replaced the old Go to details shortcut (#2082)
- Glossary — Finance tenant category cache refresh — Recategorizing a tenant on Tenants → Tenant Info force-refreshes Finance caches so Contract Values, Overview, and Deposits filters match within seconds (#2088)
- FAQ — Finance tenant category filter parity — Finance Other filters drawer lists segments on cached bookings only; mirror Bookings / Tenants when a segment is missing
- FAQ — Assign tenant category for direct booking — Add booking has no category field; assign on Tenants → Tenant Info or + Create New → Tenant before contract mail
- Glossary — SIMAR water contract ID — SIMAR (Loures e Odivelas) water bills use Cód. Local in Connections — not Nº de Contador; leading zeros stripped (#2110)
- FAQ — SIMAR water bill property match — Cód. Local in Connections — not Nº de Contador; strip leading zeros (#2110)
- Glossary — Per-booking maintenance ticket opt-out — Add booking checkboxes skip automatic CI/CO tickets for one reservation only; property rule unchanged (#1140)
- FAQ — Cancel Booking vs Delete Booking — Cancel for real stays with settlement; Delete soft-archives mistaken/test rows (#1897 / #2076)
- Glossary — Archived property — Archive retires a building to Listings → Archived without deleting bookings; distinct from Delete Booking (reservation soft-archive) — Listings — Archived properties
- FAQ — Archive a property — Edit property sidebar Archive / Unarchive on Listings; building-level — not Delete Booking or Cancel booking
- FAQ — Portfolio retirement decisions — Archive property (building) vs Cancel booking vs Delete Booking (reservation soft-archive) — three-way decision table
- Deposit lifecycle status — Contract templates may reference deposit amounts; refund workflow and
depositStatuspill live on booking Deposit tab - Finance — Deposit status filter — Other filters → Deposit status multi-select on Bookings and Finance (#2090)
- Finance — Deposit lifecycle status cards — Deposit lifecycle status row on Finance → Deposits; click Partial paid for collection shortfalls (#2091)
- FAQ — Partly collected security deposit — Paid above zero but below Amount on booking Deposit; Partial paid card on Finance → Deposits (#2090 / #2091)
- Operations — Tickets toolbar search — Paste the full sequential ticket ID (for example
S259,T27) in toolbar Search (#2074) - FAQ — Find a ticket by its ID — Paste the full sequential ticket ID (for example
S259,T27) in Operations → Tickets toolbar Search (#2074) - FAQ — Skip automatic check-in/out tickets for one booking — Turn off Use unit contract rents and other contract details on Add booking to reveal CI/CO ticket checkboxes (#1140)
- FAQ — Same-day turnovers — Check-out + check-in on one unit same day: Operations → Check-in & Check-out, Timeline / Multicalendar, turnover tickets
- FAQ — Manual payments after Delete Booking — Delete Booking hides manual/provider_platform rows on Finance → Transactions; vIBAN and credit card stay visible (#1897)
- Glossary — Directory list load failures — First-fetch directory failures show Retry / Try again; distinct from filter-empty states and booking-sidebar tab errors
- Glossary — Vacant Unit Preference — Include manual blocks counts operator holds as free on Dashboard / Sales vacancy surfaces (#1427)
- FAQ — Communication or Tickets load failure — Tab-scoped Refresh (Communication) or Retry (Tickets); other booking sidebar tabs stay usable
- Operations — Property-level ticket search — Property-name matches share the top relevance tier with unit hits; building-scoped rows float first under an active Property filter (#2089)
- Credit note (payment reject/revert) — Accounting follow-up when contract-linked payments are rejected after invoicing; concept walkthrough: Payment Allocation — Correcting mistaken receipts; workflow hub: Common Workflows — Reject/revert mistaken receipts
- FAQ — AI token usage — Poll GET /ai-usage / GET /ai-usage/summary with management JWT;
landlord_chat+utility_bill_extraction; no management UI screen yet - FAQ — Automatic check-in email — Trigger matrix, 15-day cutoff, paper upload vs portal signing, Nuki-only toggle, Send / Resend on Contract Info
- FAQ — WhatsApp and email per booking — Bookings → Communication tab when tenant chatbot is enabled; Inbox for portfolio-wide triage
- FAQ — Deposit missing on Finance Deposits — Default ~3 months date range; clear or widen before triaging older move-outs or dispute row actions
- FAQ — Pending manual in-payment on /notifications — Alert persists until Approve payments clears Finance or booking Transactions
- FAQ — Uncovered Debt KPI — Finance Total Debt minus deposit offsets; pair with Debt Aging and In debt drill-down
- FAQ — Dashboard Total Debt subtitle — Post-login Total Debt card headline vs >15 days subtitle; ongoing bookings only
- FAQ — Analytics (KPI workspace) — Portfolio KPIs vs Sales/Listings/Dashboard; load-failure Try again
- FAQ — Finance Income status drill-down hub — Symptom table for segment vs Debt Aging
- FAQ — Finance Income status drill-down — Overview Income chart (Paid / Scheduled / In debt); click a segment for month-scoped payment-line modal; Debt Aging for booking-level receivables
- FAQ — Cash flow forecast drill-down hub — Symptom table for collections vs Income / Dashboard
- FAQ — Cash flow forecast drill-down — Month / Day bar-click habit
- FAQ — Permission denied toast — Red You do not have permission to perform this action. toast when RBAC blocks a save; fix in Users → Role Permissions
- FAQ — Phone shows Operations only — Mobile phone user agent locks operators with Operations access to
/operations; iPads and narrow desktop browsers keep the full module list - FAQ — Notification row-click navigation — On
/notifications, row click marks unread then openslink,bookingId,tenantId,listingId, orpropertyId(first match); Dashboard bell General rows stay in-panel unlesslinkis set - FAQ — Bookings that owe money — Top debtors and overdue buckets on Finance → Overview; Total Debt KPI is not a table
- FAQ — Fixed rent on variable unit — Variable listing + equal rent every contract month → booking stores fixed headline Monthly rent; payment plan unchanged