Full listing feeds
Full publish pulls (GET …/:landlordKey/listings/full) need rich catalogue data operators edit in Property & listing details (booking engine) — finish Getting Started — Recommended Setup Sequence steps 11–13 (Integrations, Integration field capability, Listings wizard + Full integration pill) before partners ingest. Resolve landlordKey and externalId per Property & Unit Mapping; pair ongoing sync with partial Listings & Availability and Onboarding a New Property — Step 7. Guide pairing after go-live: Setup sequence after go-live (hub: API Reference — Setup sequence after go-live).
Start with landlordKey and Platform matrix to pick the right full-feed prefix, then Example requests and Choosing partial vs full. Pair publish pulls with Listings & Availability (partial sync and booking import). Resolve externalId in Property & Unit Mapping; subscribe to listing.updated via Webhooks & Notifications when configured. Non-linear operator habits (Lockout catch-up, Pending manual receipt approval, Reject/revert mistaken receipts, Portfolio segmentation by tenant category, Notification row-click navigation, Payment alert to receivables triage, Confirmation alert triage, Finance debt receivables triage, Handling a Late Payment collections, Finance Income status drill-down, Cash flow forecast drill-down) have matching Related subsections below. Full pairing matrix: Full listing feeds section cross-reference · API Reference — API guide cross-reference.
Major marketplace integrations expose a second listing pull beyond the shared partial contract in Listings & Availability. Full feeds return publish-ready JSON shaped for each partner’s catalogue ingest — descriptions, amenities, photos, location blocks, and partner-specific sections — not just calendar, pricing, and availability windows.
- Partial —
GET /{platform}-integration/listingsandGET /{platform}-integration/listings/:externalId— sharedListingDto(or platform extension) for sync and booking import. See Listings & Availability and API Reference — Partial vs full integration feeds. - Full —
GET /{platform}-integration/:landlordKey/listings/full(+ single-listing variants) — partner schema for listing create/update on the channel.
Field names, nested objects, and required blocks follow each integration’s OpenAPI models (for example UniplacesFullFeedListingDto, SpotahomeFullFeedListingDto). Open your provisioned prefix on the API host — see Try requests in Swagger.
landlordKey
Resolve landlordKey against account integration email or stored key — see Property & Unit Mapping. Inbound webhooks require stored landlordKey only — Webhooks & Notifications — Uniplaces. Full endpoint map: Full listing feeds section cross-reference.
Full-feed paths include a landlordKey path segment. Vivin resolves it to the account whose listings you may export:
| Value in the path | Resolves to |
|---|---|
The account’s stored landlordKey | That Vivin account’s listings (whole-account feed) |
| The account’s integration email for that platform | The same account when the email matches the platform card under Account Settings → Integrations (accountIntegration.integrationEmail, compared case-insensitively) |
Both forms scope the feed to the same account’s enabled listings. Use whichever identifier your onboarding contract names.
landlordKey onlyInbound partner webhooks (POST …/{landlordKey}/webhook) still require the account’s stored landlordKey in the path — not the integration email. See Webhooks & Notifications — Uniplaces.
Single-listing full routes use the same resolution rules plus the listing’s externalId (the integration reference you mapped in Listings).
Platform matrix
Inspect live schemas in Try requests in Swagger — models such as UniplacesFullFeedListingDto and HousingAnywhereFullFeedListingDto. Partial contrast: Listings & Availability. Full endpoint map: Full listing feeds section cross-reference.
| Platform | Route prefix | Full bulk path | Single full path | Response wrapper |
|---|---|---|---|---|
| Uniplaces | uniplaces-integration | GET /:landlordKey/listings/full | GET /:landlordKey/listings/:externalId/full | JSON array of Uniplaces-shaped listings (snake_case) |
| Spotahome | spotahome-integration | GET /:landlordKey/listings/full | GET /:landlordKey/listings/:externalId/full | { "properties": [ … ] } matching Spotahome JSON Feed |
| Housing Anywhere | housinganywhere-integration | GET /:landlordKey/listings/full | GET /:landlordKey/listings/:externalId/full | JSON array of HA-shaped listings |
| Inlife | inlife-integration | GET /:landlordKey/listings/full | GET /:landlordKey/listings/:externalId/full | JSON array of Inlife-shaped listings |
All full routes use the same Bearer secret as the partial routes on that prefix (for example UNIPLACES_INTEGRATION_SECRET, SPOTAHOME_INTEGRATION_SECRET). Webhook endpoints, where provisioned, are documented in each integration’s Swagger group.
Overlapping unavailabilities in full feeds
When multiple manual blocks or calendar holds overlap or touch on the same unit, Vivin merges them into a single closed date range before exporting to full feeds — Uniplaces blocked_periods, Spotahome occupancies, Housing Anywhere blockedPeriods, and Inlife unavailability. This matches the coalescing already applied on partial GET /listings exports, so partners do not receive duplicate or fragmented blocks for the same unavailable window. Open-ended blocks (no end date) pass through without merging.
Placeholder image URLs (full feeds)
Partner channels fetch every image URL Vivin publishes. Known placeholder or stock-image hosts (for example picsum.photos, placehold.co, via.placeholder.com, dummyimage.com, loremflickr.com) are stripped from full-feed exports across Uniplaces, Spotahome, Housing Anywhere, and Inlife — even when those URLs remain on listing or property image rows inside Vivin. This keeps partners from rejecting or silently skipping listings when a placeholder URL is unreachable on their side. Replace placeholders with real photo URLs before expecting a catalogue row to pass partner image minimums.
Inlife — date fields as epoch milliseconds
On the Inlife full feed, every calendar date field is serialized as a number — Unix epoch milliseconds (JavaScript Date.getTime() / ES long), not an ISO-8601 string or YYYY-MM-DD text value.
Inlife’s landlord and room Elasticsearch mappings store these properties as long. Because the Vivin (ams) integration is marked same_structure: true on their side, Inlife indexes the payload as-is. A string date causes indexing failures such as failed to parse field [availableFrom] of type [long].
| Field (room / listing object) | Meaning |
|---|---|
availableFrom | First day the room can be booked |
firstAvailability | First available day after active unavailabilities (when Vivin computes it) |
creationDate / modificationDate / updated | Listing lifecycle timestamps on the property or room block |
unavailability[].from / unavailability[].to | Block window bounds on each unavailability row |
Example fragment (values are illustrative):
{
"availableFrom": 1735689600000,
"firstAvailability": 1736294400000,
"updated": 1717242896000,
"unavailability": [{ "from": 1738368000000, "to": 1738972800000 }]
}
Convert in your consumer with new Date(value) when you need human-readable dates. Other Inlife full-feed scalars (rent amounts, booleans, photo URL strings) follow the OpenAPI models on the inlife-integration Swagger group — see InlifeFullFeedListingDto and nested DTOs.
Try requests in Swagger
Open your provisioned prefix on the API host, authorize with Bearer, and expand the listings (or partner-named) group — full routes appear alongside partial GET /listings where your contract includes them:

Step-by-step UI flow: API Reference — Try requests in Swagger. Operator-maintained fields that populate full-feed blocks are mapped in Integration field capabilities.
Housing Anywhere — partial feed uses costs
The Housing Anywhere partial pull does not return the generic ListingDto alone — each row is ListingHousingAnywhereDto, which extends the shared listing fields with a costs array (deposit, admin fee, utility lines, and so on). Amounts in the partial HA contract are in EUR (same as other partial feeds).
The full HA feed uses a separate schema (HousingAnywhereFullFeedListingDto) with amounts in cents and richer facility/image blocks. Do not assume partial and full rows are byte-identical — poll the feed your integration contract specifies.
Cost field (partial costs[]) | Typical meaning |
|---|---|
type | security-deposit, administration-fee, cleaning-fee, utility bill types, etc. |
value | Amount in EUR (nullable when not applicable) |
payableAt / payableBy | When and who pays (move-in, monthly, tenant, landlord, included-in-rent, …) |
refundable / estimated / mandatory | Partner semantics for display and validation |
Spotahome — legacy feed vs partial vs full
Spotahome exposes three listing surfaces:
| Feed | Path | Use |
|---|---|---|
| Legacy JSON feed | GET /spotahome-integration/listings/feed or GET /spotahome-integration/listings/feed/:landlordKey | Older SpotAHomeFeed shape ({ "properties": [ … ] }). Prefer full feed for new work unless your contract still references /listings/feed. |
| Partial | GET /spotahome-integration/listings (+ /:externalId) | Shared ListingDto calendar/pricing contract — same as Listings & Availability. |
| Full | GET /spotahome-integration/:landlordKey/listings/full (+ single listing) | Spotahome JSON Feed rules (location fields, image minimums when URLs exist, etc.). Compare with Spotahome’s public example.json in their partner docs. |
Example requests
Authorize with Authentication before your first full-feed GET. Spotahome legacy /listings/feed contrast: Spotahome — legacy feed vs partial vs full. Full endpoint map: Full listing feeds section cross-reference.
Replace {base}, {landlordKey}, and {externalId} with values from onboarding.
GET /uniplaces-integration/{landlordKey}/listings/full HTTP/1.1
Host: api.vivin.app
Authorization: Bearer YOUR_API_KEY
GET /housinganywhere-integration/{landlordKey}/listings/{externalId}/full HTTP/1.1
Host: api.vivin.app
Authorization: Bearer YOUR_API_KEY
GET /spotahome-integration/listings/feed/{landlordKey} HTTP/1.1
Host: api.vivin.app
Authorization: Bearer YOUR_API_KEY
GET /inlife-integration/{landlordKey}/listings/full HTTP/1.1
Host: api.vivin.app
Authorization: Bearer YOUR_API_KEY
Choosing partial vs full
Calendar-only subscribers should read iCal feeds instead of JSON pulls. Booking import always uses POST /bookings — Creating Bookings. Full endpoint map: Full listing feeds section cross-reference.
| Your integration needs… | Poll |
|---|---|
| Calendar, pricing, availability windows, booking import | Partial — Listings & Availability |
| Rich catalogue publish (photos, amenities, partner blocks) | Full — this page |
| Short-term calendar blocks only | iCal — iCal feeds (not JSON) |
Many partners poll both: full feed on a slower cadence for listing create/update, partial feed every 15–30 minutes for availability and rates.
Operator field mapping
Full feeds serialize from the same Listings / Full integration pill content operators maintain in the management app. Which Vivin fields populate each partner block — and which are required before publish — is summarised in Integration field capabilities and Property & listing details (booking engine).
Sync strategy
Partial poll cadence and updatedAt diffing: Listings & Availability — Sync Strategy. Push updates: Webhooks & Notifications (listing.updated). Full endpoint map: Full listing feeds section cross-reference.
| Feed type | Typical poll interval | Change detection |
|---|---|---|
| Full catalogue | Every few hours to daily (per partner SLA) | Re-pull entire array or diff by partner listing id + updatedAt when the schema exposes it |
| Partial calendar | Every 15–30 minutes | updatedAt on ListingDto rows — see Listings & Availability — Sync Strategy |
Import bookings through POST /{platform}-integration/bookings regardless of which listing feed you poll — see Creating Bookings.
Full listing feeds section cross-reference
Use this table when one full-feed topic naturally leads into another API guide, operator UI, or downstream workflow — each row links to the docs you should read before or after wiring publish pulls.
| API topic / section | Pair with these docs |
|---|---|
landlordKey | Property & Unit Mapping, Webhooks & Notifications — Uniplaces (inbound path segment) |
| Platform matrix | Try requests in Swagger, Listings & Availability (partial contrast) |
| Example requests | Authentication, Error Handling (404 on unknown externalId) |
| Choosing partial vs full | iCal feeds, Creating Bookings, Notifications — Payment overdue alerts → Handling a Late Payment — Step 1 (full-feed partner imports), Glossary — Credit note (payment reject/revert), Glossary — Invoiced floor (rent) |
| Sync strategy | Webhooks & Notifications, Listings & Availability — Sync Strategy |
| Lockout catch-up after password recovery | Publish backlog after sign-in recovery | Common Workflows — Lockout catch-up, Webhooks & Notifications, Listings — Channels tab | | Pending manual receipt approval | Catalogue imports with pending receipts | Common Workflows — Pending manual receipt approval, Creating Bookings, Finance — Pending manual payments | | Reject/revert mistaken receipts | Duplicate publish imports | Common Workflows — Reject/revert mistaken receipts, Cancelling a Booking, Payment Allocation — Correcting mistaken receipts | | Portfolio segmentation by tenant category | Segment triage on full-feed imports | Common Workflows — Portfolio segmentation, Settings > Tenant categories, Bookings — Other filters | | Notification row-click navigation | Catalog sync vs operator alert triage | API Reference — Notification row-click navigation, Common Workflows — Notification row-click navigation, Notifications module — Notification row-click navigation | | Payment alert to receivables triage | Feed traffic vs payment overdue | API Reference — Payment alert to receivables triage, Common Workflows — Payment alert to receivables triage, Handling a Late Payment — Step 1 | | Confirmation alert triage | New inventory vs confirmation alerts | API Reference — Confirmation alert triage, Common Workflows — Confirmation alert triage, Processing a New Booking — Step 5b | | Finance debt receivables triage | Portfolio rank after feed-driven imports | API Reference — Finance debt receivables triage, Common Workflows — Finance debt receivables triage, Finance module — Finance debt receivables triage | | Handling a Late Payment collections | Integration surface vs operator collections Steps 1–6 | | Finance Income status drill-down | Rent caps vs Income segments | API Reference — Finance Income status drill-down, Common Workflows — Finance Income status drill-down, FAQ — Finance Income status drill-down hub | | Cash flow forecast drill-down | Feed pricing vs collections bars | API Reference — Cash flow forecast drill-down, Common Workflows — Cash flow forecast drill-down, FAQ — Cash flow forecast drill-down hub |
Related
Related below links catalogue publish payloads to setup, companion API guides, operator workflows, and escalation paths. Pair Setup sequence after go-live with Getting Started — Recommended Setup Sequence; pair Companion API guides with API Reference hub. Topic-to-guide pairing in sections above: Full listing feeds section cross-reference. Full hub matrix: API guide cross-reference.
Setup sequence after go-live
Complete Account Settings — Recommended setup order before partner traffic. Hub parity: API Reference — Setup sequence after go-live. Full pairing matrix: Full listing feeds section cross-reference · API guide cross-reference.
- Setup steps 1–10 — Complete operator workspace basics (Recommended setup order) before requesting partner Bearer keys; property managers automating outside the browser use Management session authentication after step 3 (Users)
- Setup steps 11–12 (Integrations, Integration field capability, Tenant categories default for integrations) — Channel credentials, calendar horizons, and payload field expectations before
[email protected]onboarding; operator context: Integrations & Distribution - Setup step 13 (Listings) — Property wizard,
externalIdmapping, and Channels tab before first partner listing reads or writes - Setup steps 14–15 (Bookings, Tenants) — Validate imported reservation shape and tenant segments after partner traffic
- After steps 13–15 — Onboarding a New Property — Step 7 go-live verification before escalating partner pull, webhook, or mapping defects
- After step 13 — poll
GET …/:landlordKey/listings/fullonly after Property & listing details (booking engine) fields are publication-ready; contrast partial pulls in Listings & Availability - Partner credential requests — Email
[email protected](distinct from in-app Vivin support tickets in Get Help & Support)
Documentation map & escalation
Documentation-map bullets pair with Introduction — Section cross-reference and FAQ — Section cross-reference. Full pairing matrix: Full listing feeds section cross-reference.
- Getting Started — Recommended Setup Sequence before partner HTTP traffic; hub parity: API Reference — Setup sequence after go-live
- API Reference hub — Hub pairing matrix and partial vs full integration feeds; hub parity: Setup sequence after go-live
- Get Help & Support — Request credentials or full-feed onboarding via
[email protected](hub: Setup sequence after go-live) - FAQ & Troubleshooting — Partner publish and sync questions (hub: Setup sequence after go-live)
- Settings > Integration field capability — Read-only matrix of fields each full-feed partner ingests
Companion API guides
Companion guides share Bearer authorization or error shapes with this page — start from API Reference hub. Full pairing matrix: Full listing feeds section cross-reference.
- Listings & Availability — Partial
ListingDtocontract for calendar and booking import - Property & Unit Mapping —
externalIdkeys that tie partial and full catalogue rows to the same unit - Webhooks & Notifications — Inbound booking events and outbound
listing.updatedwhere webhooks are provisioned - Creating Bookings — Inbound reservations after catalogue listings go live
- iCal feeds — Calendar export alternative when partners do not poll full JSON catalogues
- Booking engine integration — White-label writes that complement full-feed publish payloads
- Booking Lifecycle & Validations — Server rules partner imports must satisfy after full-feed bookings land
- Error Handling — Rich catalogue errors when partial
ListingDtois insufficient - Authentication — Bearer token on full and partial routes
- AI usage — Operator JWT ledger when reconciling catalogue publish volume with internal LLM spend
Upstream & downstream workflows
Workflow bullets pair with Common Workflows — Workflow cross-reference after partner traffic lands in the management app. Full pairing matrix: Full listing feeds section cross-reference.
- Processing a New Booking — Operator workflow after catalogue listings start receiving partner bookings
- Portfolio KPI review — Reconcile publish cadence with occupancy and revenue KPIs
- Manual block hygiene — Hygiene pass when full-feed occupancy disagrees with Analytics or Dashboard
- Managing a Check-out & Deposit Refund — Calendar release after departure ends stays imported via partner feeds
- Onboarding a New Property — Operator setup before full-feed partners poll catalogue rows
- Notification triage — Clear channel sync alerts after full-feed publishes change availability
Operator UI & settings
Operator UI rows validate the same inventory and permissions behind integration HTTP — pair with Account Settings — Tab cross-reference. Full pairing matrix: Full listing feeds section cross-reference.
- Property & listing details (booking engine) — Operator Full integration pill source for full-feed payloads
- Listings — Channels tab — Per-unit linkage operators complete before full-feed polling succeeds
- Sales > Channels — Operator linkage before full-feed polling succeeds
- Settings > Contract templates — Contract PDF generation for partner-created tenants
- Settings > Preferences — In-app notifications — Channel sync alerts when full-feed publishes change availability
- Settings > Emails — Lifecycle and payment Communication Rules for full-feed and engine reservations
- Create New — Inlife Full Import — Bulk rich import before full-feed partners poll catalogue rows
Deeper concept reads
Concept reads pair with Concepts hub subsection index and Concept cross-reference. Full pairing matrix: Full listing feeds section cross-reference · API guide cross-reference.
- Integrations & Distribution — Operator-facing channel setup (section cross-reference; Deeper API reads; hub)
- Payment Allocation — Two-layer receipts, invoiced-floor rent edits, and credit note reject/revert warnings (section cross-reference; Deeper API reads; hub)
- Booking Lifecycle — Computed Upcoming → Ongoing → Ended / Canceled status model, list filters, and Timeline (section cross-reference; Deeper API reads; hub)
- Tenant Portal — White-label engine bookings share the same portal branding and payment flows as marketplace imports (section cross-reference; Deeper API reads; hub)
- FAQ — Tenant contract signing blocked — No PDF yet, mandatory Your Details gates, category locks, or Lease purpose; portal signing vs paper upload on Contract Info
Deeper workflow reads
Workflow reads pair with Common Workflows hub subsection index and Workflow cross-reference. Each workflow sub-guide also has its own Deeper API reads subsection with reciprocal companion API anchors — hub parity: API Reference — Deeper workflow reads. Full pairing matrix: Full listing feeds section cross-reference · API guide cross-reference.
- Processing a New Booking — Operator workflow after catalogue listings start receiving partner bookings (section cross-reference; Deeper API reads; hub)
- Portfolio KPI review — Reconcile publish cadence with occupancy and revenue KPIs (section cross-reference; Deeper API reads; hub)
- Manual block hygiene — Hygiene pass when full-feed occupancy disagrees with Analytics or Dashboard (section cross-reference; Deeper API reads; hub)
- Managing a Check-out & Deposit Refund — Calendar release after departure ends stays imported via partner feeds (section cross-reference; Deeper API reads; hub)
- Onboarding a New Property — Operator setup before full-feed partners poll catalogue rows (section cross-reference; Deeper API reads; hub)
- Notification triage — Clear channel sync alerts after full-feed publishes change availability (section cross-reference; Deeper API reads; hub)
Lockout catch-up after password recovery
Full-feed catalogue polls may continue during operator lockout — reconcile Channels tab and webhook backlog after sign-in recovery. Hub parity: Common Workflows — Lockout catch-up after password recovery. Full pairing matrix: full-listing-feeds-section-cross-reference · API guide cross-reference.
- Common Workflows — Lockout catch-up after password recovery — Hub matrix when publish queues accumulated during lockout
- Getting Started — Lockout catch-up after password recovery — Canonical operational backlog mesh
- Webhooks & Notifications —
listing.updatedbacklog after sign-in recovery - Listings — Channels tab — Operator UI validation of
landlordKeymapping - Notification triage — Channel sync alerts before bulk full-feed pulls
Pending manual receipt approval
Publish feeds do not encode receipt state — pair with Creating Bookings enqueue and Finance pending approval on imported stays. Hub parity: Common Workflows — Pending manual receipt approval. Full pairing matrix: full-listing-feeds-section-cross-reference · API guide cross-reference.
- Common Workflows — Pending manual receipt approval — Hub matrix when catalogue imports precede confirmation receipt approval
- Creating Bookings — Partner enqueue after full-feed listing creation
- Finance — Pending manual payments — Amber Pending chip on imported schedules
- Processing a New Booking — Operator confirmation on new catalogue bookings
- Payment Allocation — Two-layer model behind approval lag
Reject/revert mistaken receipts
Duplicate catalogue bookings from re-publish cycles pair with Cancelling a Booking and receipt Reject / Revert. Hub parity: Common Workflows — Reject/revert mistaken receipts. Full pairing matrix: full-listing-feeds-section-cross-reference · API guide cross-reference.
- Common Workflows — Reject/revert mistaken receipts — Hub matrix when duplicate publish imports need receipt cleanup
- Cancelling a Booking — Void duplicate imports after
listing.updatedstorms - Payment Allocation — Correcting mistaken receipts — Two-layer model for imported stays
- Finance — Row actions on in-payment rows — Portfolio Reject selected
- Glossary — Credit note (payment reject/revert) — Accounting follow-up on invoiced receipts
Portfolio segmentation by tenant category
Full-feed landlordKey scoping is account-wide — segment imported tenants via Settings > Tenant categories. Hub parity: Common Workflows — Portfolio segmentation by tenant category. Full pairing matrix: full-listing-feeds-section-cross-reference · API guide cross-reference.
- Common Workflows — Portfolio segmentation by tenant category — Hub matrix when publish partners cluster on one segment
- Settings > Tenant categories — Default for integration-created tenants
- Property & Unit Mapping —
landlordKeyandexternalIdbefore segment-specific imports - Bookings — Other filters — Tenant category on reservation list
- Glossary — Tenant category — Definition and Finance filter parity
Notification row-click navigation
Full-feed catalogue pulls do not clear /notifications — operators row-click booking-import alerts after feed-driven reservations land. Hub parity: API Reference — Notification row-click navigation. Full pairing matrix: Full listing feeds section cross-reference · API guide cross-reference.
- API Reference — Notification row-click navigation — Hub matrix (
notifications-module-row-click-target.png,notifications-row-navigation-flow.mp4) - Common Workflows — Notification row-click navigation — Operator procedure hub
- Notifications module — Notification row-click navigation — Canonical
/notificationsinbox pairing - FAQ — Notification row-click navigation hub — Symptom table
Payment alert to receivables triage
Rich feed imports that create unpaid schedules surface payment overdue rows — row-click before Debt Aging collections. Hub parity: API Reference — Payment alert to receivables triage. Full pairing matrix: Full listing feeds section cross-reference · API guide cross-reference.
- API Reference — Payment alert to receivables triage — Hub matrix (
notifications-row-navigate-to-booking-detail.png,notifications-row-navigation-flow.mp4) - Common Workflows — Payment alert to receivables triage — Operator procedure hub
- Handling a Late Payment — Step 1 — Collections follow-through after row-click
- FAQ — Payment alert to receivables triage hub — Symptom table
Confirmation alert triage
New full-feed inventory often triggers Upcoming Booking created alerts — pair feed go-live with Onboarding — Step 7. Hub parity: API Reference — Confirmation alert triage. Full pairing matrix: Full listing feeds section cross-reference · API guide cross-reference.
- API Reference — Confirmation alert triage — Hub matrix (
notifications-row-navigate-to-booking-detail.png,bookings-detail-transactions-approve-payment-modal.png) - Common Workflows — Confirmation alert triage — Operator procedure hub
- Processing a New Booking — Step 5b / Step 6 — Canonical confirmation gates
- FAQ — Confirmation alert triage hub — Symptom table
Finance debt receivables triage
High-volume full-feed partners inflate receivables — triage Top debtors after alert row-click on imported stays. Hub parity: API Reference — Finance debt receivables triage. Full pairing matrix: Full listing feeds section cross-reference · API guide cross-reference.
- API Reference — Finance debt receivables triage — Hub matrix (
finance-overview-income-chart-debt-aging.png,finance-overview-debt-aging-walkthrough-flow.mp4) - Common Workflows — Finance debt receivables triage — Operator procedure hub
- Finance module — Finance debt receivables triage — Debt Aging canonical surface
- FAQ — Finance debt receivables triage hub — Symptom table
Handling a Late Payment collections
Partner integration reads on Full Listing Feeds do not replace operator collections — payment overdue in-app rows still need Handling a Late Payment — Steps 1–6 after receivables triage. Hub parity: Common Workflows — Handling a Late Payment collections hub. Full pairing matrix: full-listing-feeds-section-cross-reference · API guide cross-reference.
- API Reference — Handling a Late Payment collections — Hub matrix (
finance-overview-income-chart-debt-aging.png,notifications-row-navigate-to-booking-detail.png) - Common Workflows — Handling a Late Payment collections hub — Operator procedure hub
- Payment alert to receivables triage — payment overdue alert before collections
- Finance debt receivables triage — Debt Aging before tenant outreach
- Handling a Late Payment — Step 1 — Collections follow-through
- FAQ — Handling a Late Payment collections hub — Symptom table
Finance Income status drill-down
Dual-pricing feed fields may skew Income → Scheduled — segment-click reconcile on Finance → Overview after first feed bookings. Hub parity: API Reference — Finance Income status drill-down. Full pairing matrix: Full listing feeds section cross-reference · API guide cross-reference.
- API Reference — Finance Income status drill-down — Hub matrix (
finance-overview-income-status-in-debt-modal.png,finance-overview-income-drill-down-flow.mp4) - Common Workflows — Finance Income status drill-down — Operator procedure hub
- Finance module — Income status drill-down — Canonical Finance → Overview surface
- FAQ — Finance Income status drill-down hub — Symptom table
Cash flow forecast drill-down
Feed-driven booking payments settle on Cash flow forecast bars separately from catalogue GET traffic timing. Hub parity: API Reference — Cash flow forecast drill-down. Full pairing matrix: Full listing feeds section cross-reference · API guide cross-reference.
- API Reference — Cash flow forecast drill-down — Hub matrix (
finance-overview-cash-flow-all-payments-modal.png,finance-overview-cash-flow-day-view.png,finance-overview-cash-flow-drill-down-flow.mp4) - Common Workflows — Cash flow forecast drill-down — Operator procedure hub
- Finance module — Cash flow forecast drill-down — Canonical Finance → Overview surface
- FAQ — Cash flow forecast drill-down hub — Symptom table
Key glossary terms
Glossary rows pair with Glossary cluster cross-reference and receipt-dispute workflows. Full pairing matrix: Full listing feeds section cross-reference.
-
Glossary — Notification row navigation — Operator alerts after partner imports create payment or booking-created notifications
-
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 -
Glossary — Deposit lifecycle status — Full-feed catalogue updates do not expose deposit refund API; operators manage
depositStatusafter bookings import -
Glossary — End-of-Booking cost split — Charge Time → End of Booking splits daily overage across every occupied unit; still-staying roommates stay in the denominator (#2111)
-
Glossary — Change history — Operator-initiated edits on Listings setup and Bookings Changelog; create-time defaults excluded (#2093)
-
FAQ — Booking Changelog scope — Operator-initiated edits only; create-time defaults excluded (#2093)
-
Glossary — Archived booking ledger visibility — Delete Booking hides manual/provider_platform rows on Finance → Transactions; vIBAN and credit card stay visible (#1897)
-
Bookings — Provider platform payment — Non-rejected provider platform in-payment blocks Delete Booking until Reject or assign (#2076)
-
FAQ — Delete Booking on integration reservation — Clear pending provider platform in-payment with Reject or assign before soft-archive (#2076)
-
Listings — Property edit sidebar pills — Setup / Full integration / Photos pills on property and unit edit sidebars; replaced the old Go to details shortcut (#2082)
-
Glossary — Finance tenant category cache refresh — Recategorizing a tenant on Tenants → Tenant Info force-refreshes Finance caches so Contract Values, Overview, and Deposits filters match within seconds (#2088)
-
FAQ — Finance tenant category filter parity — Finance Other filters drawer lists segments on cached bookings only; mirror Bookings / Tenants when a segment is missing
-
FAQ — Assign tenant category for direct booking — Add booking has no category field; assign on Tenants → Tenant Info or + Create New → Tenant before contract mail
-
Glossary — SIMAR water contract ID — SIMAR (Loures e Odivelas) water bills use Cód. Local in Connections — not Nº de Contador; leading zeros stripped (#2110)
-
FAQ — SIMAR water bill property match — Cód. Local in Connections — not Nº de Contador; strip leading zeros (#2110)
-
Glossary — Per-booking maintenance ticket opt-out — Add booking checkboxes skip automatic CI/CO tickets for one reservation only; property rule unchanged (#1140)
-
FAQ — Cancel Booking vs Delete Booking — Cancel for real stays with settlement; Delete soft-archives mistaken/test rows (#1897 / #2076)
-
Glossary — Archived property — Archive retires a building to Listings → Archived without deleting bookings; distinct from Delete Booking (reservation soft-archive) — Listings — Archived properties
-
FAQ — Archive a property — Edit property sidebar Archive / Unarchive on Listings; building-level — not Delete Booking or Cancel booking
-
FAQ — Portfolio retirement decisions — Archive property (building) vs Cancel booking vs Delete Booking (reservation soft-archive) — three-way decision table
-
Finance — Deposit lifecycle status cards — Deposit lifecycle status row on Finance → Deposits; click Partial paid for collection shortfalls (#2091)
-
FAQ — Partly collected security deposit — Paid above zero but below Amount on booking Deposit; Partial paid card on Finance → Deposits (#2090 / #2091)
-
Finance — Deposit status filter — Other filters → Deposit status multi-select on Bookings and Finance (#2090)
-
Operations — Tickets toolbar search — Paste the full sequential ticket ID (for example
S259,T27) in toolbar Search (#2074) -
FAQ — Find a ticket by its ID — Paste the full sequential ticket ID (for example
S259,T27) in Operations → Tickets toolbar Search (#2074) -
FAQ — Skip automatic check-in/out tickets for one booking — Turn off Use unit contract rents and other contract details on Add booking to reveal CI/CO ticket checkboxes (#1140)
-
FAQ — Same-day turnovers — Check-out + check-in on one unit same day: Operations → Check-in & Check-out, Timeline / Multicalendar, turnover tickets
-
FAQ — Manual payments after Delete Booking — Delete Booking hides manual/provider_platform rows on Finance → Transactions; vIBAN and credit card stay visible (#1897)
-
Glossary — Directory list load failures — First-fetch directory failures show Retry / Try again; distinct from filter-empty states and booking-sidebar tab errors
-
Glossary — Vacant Unit Preference — Include manual blocks counts operator holds as free on Dashboard / Sales vacancy surfaces (#1427)
-
FAQ — Communication or Tickets load failure — Tab-scoped Refresh (Communication) or Retry (Tickets); other booking sidebar tabs stay usable
-
Operations — Property-level ticket search — Property-name matches share the top relevance tier with unit hits; building-scoped rows float first under an active Property filter (#2089)
-
Glossary — Credit note (payment reject/revert) — Reject/revert follow-up when partner confirmation receipts were already invoiced
-
Glossary — Deposit dispute — Check-out deposit retention after full-feed bookings end
-
Glossary — Invoiced floor (rent) — Rent edits blocked below exported invoice totals on published listings with live stays
-
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 — 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 — Lower rent below invoiced — Change monthly rent clamps and Contract Values → Edit amount blocks net below exported invoice totals; use credit notes in accounting when you truly need a reduction
-
Glossary — Fixed invoice date — Account-wide Invoice date before bulk Issue allocation / Invoice selected; amber banner on Finance → Transactions until you turn Use today as invoice date back on
-
FAQ — Month-end invoicing (fixed date) hub — Symptom table + toggle reset after batch
-
FAQ — Reject or revert an incoming payment — Reject pending rows or Revert confirmed ones; Finance → Transactions uses Reject selected bulk-only; modals warn about credit notes when Finance already invoiced
-
FAQ — Manual receipt still pending — Operator-recorded receipts stay pending until Approve payments; triage on Finance → Transactions (Pending chip) or booking Transactions; Total Debt and Manual Payments KPI lag until approval
-
FAQ — Finance Income status drill-down hub — Symptom table for segment vs Debt Aging
-
FAQ — Finance Income status drill-down — Overview Income chart (Paid / Scheduled / In debt); click a segment for month-scoped payment-line modal; Debt Aging for booking-level receivables
-
FAQ — Cash flow forecast drill-down hub — Symptom table for collections vs Income / Dashboard
-
FAQ — Cash flow forecast drill-down — Month / Day bar-click habit
-
FAQ — Permission denied toast — Red You do not have permission to perform this action. toast when RBAC blocks a save; fix in Users → Role Permissions
-
FAQ — Bookings that owe money — Top debtors and overdue buckets on Finance → Overview; Total Debt KPI is not a table
-
FAQ — Fixed rent on variable unit — Variable listing + equal rent every contract month → booking stores fixed headline Monthly rent; payment plan unchanged
Module documentation hubs
Module hubs pair with Modules — Module cross-reference for screen-by-screen operator follow-up. Full pairing matrix: Full listing feeds section cross-reference.
- Listings module — Inventory source for publish payloads partners ingest (hub)
- Audit module — Manual blocks on published units that still appear in partner availability pulls (hub)
- Dashboard module — Post-login KPI snapshot with bell notification triage (hub)
- Analytics module — Month-range portfolio KPI charts with rankings and heatmaps (hub)
- Properties workspace — Legacy
/propertiesURL redirects into Listings (hub) - Booking engine details — Rich marketplace payload editor via the Full integration pill (hub)
- Finance module — Portfolio ledgers with payment approval and deposit settlement (hub)
- Tenants module — Tenant directory and profile sidebars for imported stays (hub)
- Sales module — Portfolio availability, monthly rent editing, and channel manager connections (hub)
- Utilities module — Bills Included ceiling model and tenant overage when actual costs exceed
billsIncludedMaxValue(hub) - Operations module — Maintenance tickets, cash flows, and check-in/out coordination (hub)
- Inbox module — Portfolio-wide WhatsApp workspace (hub)
- Notifications module — Full
/notificationshistory with search and filters (hub); Payment overdue alerts when full-feed partner imports leave unpaid schedules - AI Chat module — Vivin-internal AI Assistant using Landlord MCP tools (hub)
- Account Settings — Workspace-wide financial policies, templates, integrations, and operational defaults (hub)