Creating Bookings
Submit POST /bookings only after Getting Started — Recommended Setup Sequence steps 11–14 — steps 11–12 set Integrations, Integration field capability, and Tenant categories default for integrations; step 13 maps each unit’s externalId (Property & Unit Mapping); step 14 validates how imported reservations appear in Bookings. Finish step 15 (Tenants) and Onboarding a New Property — Step 7 before production import volume. Guide pairing after go-live: Setup sequence after go-live (hub: API Reference — Setup sequence after go-live).
Start with Endpoint and Request Body, then Field Reference before your first POST /bookings. Send the mapped externalId from Property & Unit Mapping; read Booking Lifecycle & Validations for the enqueue pipeline after 201. Handle validation 400s with Error Handling; prefer Webhooks & Notifications over polling when callbacks are provisioned. 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: Creating Bookings section cross-reference · API Reference — API guide cross-reference.
When a tenant confirms a booking on your platform, submit it to Vivin using the booking creation endpoint. The endpoint queues the request; once the job runs successfully, Vivin creates the booking, blocks dates on connected channels, generates the payment schedule, and (if configured) triggers contract generation.
Endpoint
Authorize with Authentication before your first POST …/bookings call; inspect schemas in Try requests in Swagger. After enqueue, continue to Response and Booking Lifecycle & Validations. Full endpoint map: Creating Bookings section cross-reference.
POST /{platform}-integration/bookings HTTP/1.1
Host: api.vivin.app
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
Use Integration Swagger on your API host to expand the bookings (or your platform’s integration) group, open POST …/bookings, and use Try it out with a Bearer token. You will see the exact path prefix, required fields, and response models for your deployment. See API Reference index and Authentication.

The capture shows a typical integration document (here Housing Anywhere): expand POST /{platform}-integration/bookings, use Try it out, and inspect required booking and tenant fields before you wire your client. Your provisioned prefix and path segment follow onboarding — see API Reference index.
Full pairing matrix: Creating Bookings section cross-reference.
Request Body
Confirm externalId in Listings & Availability and Property & Unit Mapping before you send tenant fields. Field-by-field rules: Field Reference. Full endpoint map: Creating Bookings section cross-reference.
{
"checkInDate": "2026-09-01",
"checkOutDate": "2027-01-31",
"externalId": "abc-123",
"bookingId": "550e8400-e29b-41d4-a716-446655440000",
"numberOfExtraTenants": 2,
"platformProviderPaymentValue": 150.0,
"tenant": {
"firstName": "Maria",
"lastName": "Silva",
"email": "[email protected]",
"phone": "+351912345678",
"nationality": "PT",
"identificationId": "12345678",
"idDocumentType": "passport",
"idDocumentCountry": "PT",
"idDocumentExpiryDate": "2030-06-15",
"fiscalId": "123456789",
"fiscalAddress": "Rua Exemplo 123, Lisboa",
"billingName": "Maria Silva",
"billingFiscalId": "123456789",
"billingAddress": "Rua Exemplo 123",
"billingCity": "Lisboa",
"billingPostalCode": "1000-001",
"billingCountry": "PT"
}
}
Full pairing matrix: Creating Bookings section cross-reference.
Field Reference
externalId must match Property & Unit Mapping; numberOfExtraTenants feeds operator pricing on Listings — Step 3 Extra payments. Post-enqueue validation: Booking Lifecycle & Validations. Full endpoint map: Creating Bookings section cross-reference.
Booking Fields
| Field | Type | Required | Description |
|---|---|---|---|
checkInDate | string (ISO 8601) | Yes | Move-in date (format: YYYY-MM-DD). |
checkOutDate | string (ISO 8601) | Yes | Move-out date (format: YYYY-MM-DD). |
externalId | string | Yes | The external listing ID on your platform. Must match a listing mapped in Vivin (see Property & Unit Mapping). |
bookingId | string (UUID) | Recommended | Stable identifier for this reservation on your side. Must be a UUID when supplied (per request validation). On success it is stored on the Vivin booking as the external integration id (integrationId) for correlation. Retries after a successful 201 can still enqueue another job unless your client deduplicates; overlapping stays on the same listing are rejected when the worker creates the booking. |
numberOfExtraTenants | integer | No | Total number of occupants for the stay, including the lead tenant. Omit the field or send 0 for a single occupant. For n ≥ 2, Vivin stores n - 1 as internal “extra tenants”, which feeds extraPricePerTenant / extraDepositPerTenant calculations on the created booking. Sending 1 is therefore treated the same as a solo booking (0 stored). The JSON name is historical; think of it as headcount, not “extras only”. |
platformProviderPaymentValue | number | No | Amount (EUR) that your platform has already collected as commission or that the platform will pay directly. This is recorded in Vivin for reconciliation but does not affect the tenant's payment schedule. |
Tenant Fields
| Field | Type | Required | Description |
|---|---|---|---|
firstName | string | Yes | Tenant's first name (minimum 2 characters). |
lastName | string | Yes | Tenant's last name (minimum 2 characters). |
email | string | Yes | Tenant's email address. Used for communications and tenant portal access. |
phone | string | No | Phone number with country code (e.g. +351912345678). |
nationality | string | No | ISO 3166-1 alpha-2 country code (e.g. PT, BR, DE). |
identificationId | string | No | ID document number. |
idDocumentType | string | No | Type of ID document (e.g. passport, id_card, residence_permit). |
idDocumentCountry | string | No | Country that issued the ID document (ISO 3166-1 alpha-2). |
idDocumentExpiryDate | string | No | Expiry date of the ID document (YYYY-MM-DD). |
fiscalId | string | No | Tax identification number (NIF in Portugal). |
fiscalAddress | string | No | Fiscal/tax address. |
Billing Fields (Optional)
If your platform collects billing information, include it to pre-populate invoicing in Vivin.
| Field | Type | Description |
|---|---|---|
billingName | string | Name for billing/invoicing. |
billingFiscalId | string | Tax ID for billing. |
billingAddress | string | Billing street address. |
billingCity | string | Billing city. |
billingPostalCode | string | Billing postal code. |
billingCountry | string | Billing country (ISO 3166-1 alpha-2). |
useCompanyBilling | boolean | If true, billing is issued to a company rather than the individual. |
Bank Details (Optional)
If the tenant provides bank details for deposit refund or direct debit purposes.
| Field | Type | Description |
|---|---|---|
tenantIBAN | string | Tenant's IBAN. |
tenantSwiftBic | string | SWIFT/BIC code. |
tenantInterbankCode | string | Interbank code (where applicable). |
tenantBank | string | Bank name. |
tenantBranch | string | Bank branch. |
tenantBankAddress | string | Bank address. |
tenantBankCity | string | Bank city. |
tenantBankCountry | string | Bank country (ISO 3166-1 alpha-2). |
Full pairing matrix: Creating Bookings section cross-reference.
Response
Treat 201 Created as enqueue acknowledgement — not proof the booking exists yet. Async pipeline: Booking Lifecycle & Validations; prefer booking.* events in Webhooks & Notifications over blind retries. Full endpoint map: Creating Bookings section cross-reference.
Success (201 Created)
A successful call accepts the payload and inserts a scheduled create-booking job (status: "new"). The response body is not the final Booking resource. It is an enqueue acknowledgement from persistence, typically including:
identifiers— e.g.[{ "id": "<scheduled-row-uuid>" }], the id of the queued rowgeneratedMaps— driver-dependent map of generated column values (often mirrors inserted fields)raw— driver-specific payload
Exact shape can vary slightly by database driver; treat it as an acknowledgement that the request was persisted for background processing, not as the created booking’s id or lifecycle state.
Background processing
After the HTTP response:
- A worker picks up scheduled rows and runs listing/account resolution, availability, booking rules, and tenant creation.
- If validation succeeds, a real booking is created, dates are blocked, and the payment schedule is generated (and contract automation may run according to account settings).
- If validation fails, the job is marked failed internally; the HTTP client has already received
201for the enqueue step, so you should not assume success from201alone.
Request schema validation (required fields, formats) runs with the HTTP request. Business validation (availability, windows, capacity, etc.) happens in the background step above.
bookingId and retriesTreat 201 Created as “accepted into the processing queue”, not as proof the booking already exists in Vivin. For transport retries, use the same bookingId (UUID) you would have used for that reservation so any successfully created booking lines up with your id; avoid blindly retrying after a timeout without checking Vivin or deduplicating on your side, because each accepted request inserts a new scheduled job.
Full pairing matrix: Creating Bookings section cross-reference.
Minimal Example
Use this payload only when you lack billing or bank fields — expand to the full Field Reference before production traffic. Operator follow-up after success: Processing a New Booking. Full endpoint map: Creating Bookings section cross-reference.
If you only have basic information about the booking, you can submit a minimal payload:
{
"checkInDate": "2026-09-01",
"checkOutDate": "2027-01-31",
"externalId": "abc-123",
"tenant": {
"firstName": "Maria",
"lastName": "Silva",
"email": "[email protected]"
}
}
The three required tenant fields are firstName, lastName, and email. The API also enforces a minimum length of 2 characters on firstName and lastName. All other tenant fields are optional but recommended for a complete booking record.
Full pairing matrix: Creating Bookings section cross-reference.
Creating Bookings section cross-reference
Use this table when one endpoint group naturally leads into operator UI, another API guide, or a downstream workflow — each row links to the docs you should read before or after wiring POST …/bookings.
| API topic / section | Pair with these docs |
|---|---|
| Endpoint | Authentication, Error Handling (401 / 403), Try requests in Swagger |
| Request Body | Property & Unit Mapping (externalId), Listings & Availability (verify unit before enqueue) |
| Field Reference | Booking Lifecycle & Validations, Settings > Tenant categories, Listings — Step 3 Extra payments |
| Response | Booking Lifecycle & Validations, Webhooks & Notifications (booking.* events), Error Handling (async validation failures), Notifications — Payment overdue alerts → Handling a Late Payment — Step 1, Glossary — Credit note (payment reject/revert), Glossary — Invoiced floor (rent) |
| Minimal Example | Processing a New Booking, Creating Bookings — Field Reference (production payloads), Notifications — Payment overdue alerts → Handling a Late Payment — Step 1, Glossary — Credit note (payment reject/revert), Glossary — Invoiced floor (rent) |
| Lockout catch-up after password recovery | Import enqueue backlog after sign-in recovery | Common Workflows — Lockout catch-up, Webhooks & Notifications, Processing a New Booking |
| Pending manual receipt approval | Imported stays with pending confirmation receipts | Common Workflows — Pending manual receipt approval, Managing a Check-in — Step 3b, Finance — Pending manual payments |
| Reject/revert mistaken receipts | Duplicate enqueue or wrong-booking receipts | Common Workflows — Reject/revert mistaken receipts, Cancelling a Booking, Payment Allocation — Correcting mistaken receipts |
| Portfolio segmentation by tenant category | Segment triage on imported bookings | Common Workflows — Portfolio segmentation, Settings > Tenant categories, Bookings — Other filters |
| Notification row-click navigation | Enqueue creates in-app operator rows | API Reference — Notification row-click navigation, Common Workflows — Notification row-click navigation, Notifications module — Notification row-click navigation |
| Payment alert to receivables triage | payment overdue after POST /bookings | API Reference — Payment alert to receivables triage, Common Workflows — Payment alert to receivables triage, Handling a Late Payment — Step 1 |
| Confirmation alert triage | Booking created on first imports | API Reference — Confirmation alert triage, Common Workflows — Confirmation alert triage, Processing a New Booking — Step 5b |
| Finance debt receivables triage | Receivables after import alert triage | API Reference — Finance debt receivables triage, Common Workflows — Finance debt receivables triage, Finance module — Finance debt receivables triage |
| Handling a Late Payment collections | Partner import payment overdue → collections Steps 1–6 after row-click |
| Finance Income status drill-down | Scheduled skew after enqueue | 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 | Collections bars after import settlement | 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 POST /bookings enqueue 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: Creating Bookings 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: Creating Bookings 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 steps 14–15 — send
POST …/bookingsonly after Property & Unit Mapping confirms eachexternalId; follow enqueue handling in Booking Lifecycle & Validations and operator triage in Processing a New Booking - 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: Creating Bookings section cross-reference.
- Getting Started — Recommended Setup Sequence before partner HTTP traffic; hub parity: API Reference — Setup sequence after go-live
- API Reference hub — Hub pairing matrix across integration guides; hub parity: Setup sequence after go-live
- Get Help & Support — Request credentials or onboarding via
[email protected](hub: Setup sequence after go-live) - FAQ & Troubleshooting — Management-app answers distinct from partner HTTP integration retries (hub: Setup sequence after go-live)
- Glossary — Term definitions used across API and operator docs (hub: Setup sequence after go-live)
Companion API guides
Companion guides share Bearer authorization or error shapes with this page — start from API Reference hub. Full pairing matrix: Creating Bookings section cross-reference.
- Listings & Availability —
GET /listingspartial pulls to verifyexternalIdbefore enqueue - Booking Lifecycle & Validations — Step-by-step validation table after enqueue (availability, windows, stay length, duplicate
bookingIdhandling) - Webhooks & Notifications — Optional push events (
booking.created,booking.cancelled, calendar blocks) when Vivin configures callbacks for your platform - Property & Unit Mapping — How
externalIdand listing keys map beforePOST …/bookingsaccepts a payload - Error Handling —
409overlap and422business-rule responses on enqueue - Authentication — Bearer token required on every
POST …/bookingscall - Booking engine integration — White-label
POST /bookingson the same queue and validation pipeline - Full listing feeds — Rich catalogue context partners validate against before enqueue
- iCal feeds — Calendar retrofeed imports that may need a separate
POST /bookingsconfirmation after availability blocks land - Management session — Operator JWT contrast; integration Bearer keys return
401on AI usage
Upstream & downstream workflows
Workflow bullets pair with Common Workflows — Workflow cross-reference after partner traffic lands in the management app. Full pairing matrix: Creating Bookings section cross-reference.
- Onboarding a New Property — Operator setup before partner traffic targets live inventory
- Processing a New Booking — Operator workflow after your platform import (confirmation payment, portal access, contract)
- Managing a Check-in — Post-import arrival workflow after background processing creates the reservation
- Managing a Check-out & Deposit Refund — Settlement workflow for partner-imported stays whose deposits appear on Finance → Deposits
- Handling a Late Payment — Step 1 — Collections when imported stays land without confirmation payment; upstream path from Notifications — Payment overdue alerts
- Cancelling a Booking — Void duplicate or mistaken imports after
booking.createdwebhook delivery - Manual block hygiene — Audit pass when availability validation fails because stale manual holds remain on the unit
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: Creating Bookings section cross-reference.
- Listings — Step 3 Extra payments — Property Bills Included ceilings that shape overage charges on imported stays
- Settings > Tenant categories — Default segment for integration-created tenants on high-volume imports
- Settings > Invoicing & Payments — Fee labels and payment priorities on schedules enqueue creates
- Settings > Preferences — In-app notifications — Account-wide booking-created alerts when partner imports reach
/notifications - Settings > Emails — Onboarding and payment Communication Rules after
POST /bookingscreates live reservations - Finance — Contract Values — Operator reconciliation after enqueue succeeds
- Property & listing details (booking engine) — Rich marketing fields distinct from booking import payloads
Deeper concept reads
Concept reads pair with Concepts hub subsection index and Concept cross-reference. Full pairing matrix: Creating Bookings section cross-reference · API guide cross-reference.
- Booking Lifecycle — How operators see computed
bookingStatusin the management app once the booking exists (section cross-reference; Deeper API reads; hub) - Payment Allocation — How confirmation receipts allocate to the generated schedule (distinct from partner enqueue semantics) (section cross-reference; Deeper API reads; hub)
- Integrations concept — Operator channel setup before partner
POST /bookingstraffic (section cross-reference; Deeper API reads; hub) - Services Marketplace — Ancillary charge types partners may not enqueue via
POST /bookings(section cross-reference; Deeper API reads; hub) - Tenant Portal — What imported tenants see on the payment schedule and portal home after
POST /bookingssucceeds (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: Creating Bookings section cross-reference · API guide cross-reference.
- Onboarding a New Property — Operator setup before partner traffic targets live inventory (section cross-reference; Deeper API reads; hub)
- Processing a New Booking — Operator workflow after your platform import (confirmation payment, portal access, contract) (section cross-reference; Deeper API reads; hub)
- Managing a Check-in — Post-import arrival workflow after background processing creates the reservation (section cross-reference; Deeper API reads; hub)
- Managing a Check-out & Deposit Refund — Settlement workflow for partner-imported stays whose deposits appear on Finance → Deposits (section cross-reference; Deeper API reads; hub)
- Handling a Late Payment — Collections when imported stays land without confirmation payment (section cross-reference; Deeper API reads; hub)
- Cancelling a Booking — Void duplicate or mistaken imports after
booking.createdwebhook delivery (section cross-reference; Deeper API reads; hub) - Manual block hygiene — Audit pass when availability validation fails because stale manual holds remain on the unit (section cross-reference; Deeper API reads; hub)
Lockout catch-up after password recovery
Partner POST /bookings may continue during operator lockout — reconcile import alerts and status filters after sign-in recovery. Hub parity: Common Workflows — Lockout catch-up after password recovery. Full pairing matrix: creating-bookings-section-cross-reference · API guide cross-reference.
- Common Workflows — Lockout catch-up after password recovery — Hub matrix when enqueue volume accumulated during lockout
- Getting Started — Lockout catch-up after password recovery — Canonical operational backlog mesh
- Webhooks & Notifications —
booking.createdbacklog to triage after recovery - Processing a New Booking — Operator confirmation on imports that landed during lockout
- Notification triage — Clear booking alerts before re-reading import queues
Pending manual receipt approval
Partner enqueue creates Layer 1 schedules; confirmation receipts on imported Upcoming stays pair with Payment Allocation. Hub parity: Common Workflows — Pending manual receipt approval. Full pairing matrix: creating-bookings-section-cross-reference · API guide cross-reference.
- Common Workflows — Pending manual receipt approval — Hub matrix when channel-import confirmation receipts await Approve payments
- Response —
201enqueue does not clear pending receipts operators must approve - Managing a Check-in — Step 3b — Arrival-week approval habit before keys
- Finance — Pending manual payments — Amber Pending chip after OTA bank transfers
- Payment Allocation — Two-layer model behind pending KPI lag
Reject/revert mistaken receipts
Duplicate POST /bookings enqueue and mistaken OTA receipts pair with Cancelling a Booking and Reject / Revert. Hub parity: Common Workflows — Reject/revert mistaken receipts. Full pairing matrix: creating-bookings-section-cross-reference · API guide cross-reference.
- Common Workflows — Reject/revert mistaken receipts — Hub matrix when duplicate OTA receipts need Reject / Revert
- Cancelling a Booking — Void duplicate imports after
booking.createdwebhook delivery - Payment Allocation — Correcting mistaken receipts — Two-layer model for imported stays
- Finance — Row actions on in-payment rows — Portfolio Reject selected after import triage
- Glossary — Credit note (payment reject/revert) — Accounting follow-up on invoiced OTA receipts
Portfolio segmentation by tenant category
Send tenant segment context via account default for integrations — pair with Settings > Tenant categories and Field Reference. Hub parity: Common Workflows — Portfolio segmentation by tenant category. Full pairing matrix: creating-bookings-section-cross-reference · API guide cross-reference.
- Common Workflows — Portfolio segmentation by tenant category — Hub matrix when channel imports cluster on one segment
- Settings > Tenant categories — Default for integration-created tenants on high-volume imports
- Field Reference — Tenant fields partners send on
POST /bookings - Bookings — Other filters — Scope OTA import triage by Tenant category
- Tenant Portal — Portal access by tenant category — Segment gates on imported stays
Notification row-click navigation
Successful POST /bookings enqueue surfaces operator /notifications rows — row-click after 201 to validate imported reservation shape. Hub parity: API Reference — Notification row-click navigation. Full pairing matrix: Creating Bookings 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
Ongoing/Ended payment overdue in-app rows after partner imports — confirm booking balance before Finance → Overview → Debt Aging. Hub parity: API Reference — Payment alert to receivables triage. Full pairing matrix: Creating Bookings section cross-reference · API guide cross-reference.
- API Reference — Payment alert to receivables triage — Hub matrix (
notifications-row-navigate-to-booking-detail.png,notifications-row-navigation-flow.mp4) - Common Workflows — Payment alert to receivables triage — Operator procedure hub
- Handling a Late Payment — Step 1 — Collections follow-through after row-click
- FAQ — Payment alert to receivables triage hub — Symptom table
Confirmation alert triage
First POST /bookings volume often triggers Upcoming Booking created alerts — pair with Processing a New Booking — Step 5b. Hub parity: API Reference — Confirmation alert triage. Full pairing matrix: Creating Bookings 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
Partner POST /bookings imports that enqueue payment overdue rows need portfolio Top debtors after single-booking triage. Hub parity: API Reference — Finance debt receivables triage. Full pairing matrix: Creating Bookings 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 POST /bookings imports that enqueue payment overdue rows still need operator Handling a Late Payment — Steps 1–6 after receivables triage. Hub parity: Common Workflows — Handling a Late Payment collections hub. Full pairing matrix: creating-bookings-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
Partner imports may inflate Scheduled segments — reconcile Income chart segment-click with Debt Aging before high-volume traffic. Hub parity: API Reference — Finance Income status drill-down. Full pairing matrix: Creating Bookings 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
Partner-import collections may lag Cash flow forecast month bars until enqueue jobs finish and operators approve receipts. Hub parity: API Reference — Cash flow forecast drill-down. Full pairing matrix: Creating Bookings 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: Creating Bookings section cross-reference.
-
Glossary — Credit note (payment reject/revert) — Operator accounting follow-up when a mistaken import receipt is rejected after invoicing
-
Glossary — Invoiced floor (rent) — Rent edits blocked below exported invoice totals on live imported bookings
-
FAQ — Bulk Hostkit invoicing slow — Vivin paces Hostkit API calls and retries HTTP 429 during bulk Issue allocation / Invoice selected; refresh Transactions before re-issuing
-
FAQ — Bulk Hostkit invoicing hub — Symptom table + per-guide mesh
-
Glossary — Deposit lifecycle status —
numberOfExtraTenantsand deposit fields onPOST /bookingsseed collection; refunddepositStatusis operator-managed after enqueue -
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)
-
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 — Phone shows Operations only — Mobile phone user agent locks operators with Operations access to
/operations; iPads and narrow desktop browsers keep the full module list -
FAQ — Notification row-click navigation — On
/notifications, row click marks unread then openslink,bookingId,tenantId,listingId, orpropertyId(first match); Dashboard bell General rows stay in-panel unlesslinkis set -
FAQ — Bookings that owe money — Top debtors and overdue buckets on Finance → Overview; Total Debt KPI is not a table
-
FAQ — Fixed rent on variable unit — Variable listing + equal rent every contract month → booking stores fixed headline Monthly rent; payment plan unchanged
Module documentation hubs
Module hubs pair with Modules — Module cross-reference for screen-by-screen operator follow-up. Full pairing matrix: Creating Bookings section cross-reference.
- Bookings module — Operator UI for reservations created via
POST /bookings(hub) - Tenants module — Operator enrichment of imported tenant profiles (fiscal ID, categories) after enqueue succeeds (hub)
- 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)
- Finance module — Portfolio ledgers (Overview, Income, Contract Values, Transactions, Payouts, Deposits) with payment approval and deposit settlement (hub)
- Sales module — Portfolio availability, monthly rent editing, and channel manager connections (hub)
- Inbox module — Portfolio-wide WhatsApp workspace with Dashboard bell Inbox sub-tab deep links (hub)
- Notifications module — Full
/notificationshistory with search, filters, and row-click navigation (hub); Payment overdue alerts when imported schedules are overdue - 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)