VRPlatformVRPlatform
Core Concepts

Accounting Model and Double Entry

Understand balanced journals, accounts, ledgers, and business resources

API clients create and update typed business resources. VRPlatform translates their financial consequences into balanced journals and then projects those journals into reports and statements.

Reservation, transaction, or fee -> posting buckets -> journal entries -> reports
Owner statement -> journal selection and attachment -> frozen statement projection
Bank record -> reconciliation relationship -> matched financial resource

Statements and bank records do not replace the journal. A statement selects and attaches existing eligible entries; a bank record reconciles cash activity to a financial resource.

Accounts

Accounts identify where amounts post. Type, category, system assignment, status, and banking configuration give an account meaning beyond its name. Assignments identify roles such as receivable, deferred revenue, payout, opening balance, tax, fee, or balancing accounts.

System assignments are tenant-wide roles. The same assignment cannot be active on several accounts. Treat an account's returned assignments as configuration, not as labels that a client may duplicate or infer from its name.

Reference Accounts

An account with type=nonPosting is a reference account. It preserves an external amount or classification for formulas and source detail without changing the live general ledger, guest receivable, or owner-statement totals. Related financial lines can be returned with type=referenceAccount; render them as context and do not add them back into posting totals.

Balanced Events

Every accounting event produces entries that net to zero in its posting bucket, the group of entries posted together for one event and date. Each entry carries a signed cent amount under the debit/credit convention, plus the dimensions that determine how it appears in reports.

Important dimensions include:

  • account, currency, ledger, and journal date (txnAt);
  • accounting party (owner or manager);
  • listing and effective parent-listing context;
  • ownership period when owner-side attribution applies;
  • source resource and source-line identity; and
  • active status, trigger, and other returned provenance references.

Do not collapse those dimensions into one client-side category. For example, two entries with the same account and date can still belong to different ownership periods or source lines.

Ledgers

Live general-ledger entries drive current accounting. Historical-ledger imports preserve pre-go-live detail or statements without changing live post-go-live balances. Opening balances bridge the final source position into live accounting through dedicated workflows.

Trust, Operating, and Combined Ledgers

Live entries post to one of two ledgers. The trust ledger holds client and owner funds the manager holds in trust: reservation revenue, owner balances, and payouts. The operating ledger records the manager's own operating-expense accounting, such as expenses paid from the manager's operating bank accounts. An OPEX team is a team with the operations-accounting feature enabled; it runs operating-expense accounting alongside trust accounting, and its manager-side activity can post to the operating ledger. Teams without OPEX post everything to the trust ledger. Reports accept an optional ledger filter (trust or operating); omitting it returns the combined view across both ledgers.

Trust and operating are independently balanced ledgers. When one business event affects both, VRPlatform uses the account assigned as dueToFromTrust to create the balancing relationship inside each ledger. A combined report adds the two balanced views; clients must not remove or manually eliminate these system entries.

Dated Money Flow

One reservation can participate in several events with different accounting dates:

EventDate meaning
Booking creationOperational source identity; not necessarily an accounting date
Guest chargeWhen the guest or channel receivable arises
Revenue recognitionWhen reservation income becomes recognized revenue
Cash receipt or refundWhen cash and receivable or deferred revenue change
Statement attachmentWhich owner period consumes eligible journal activity
PayoutThe later transaction date on which owner funds are paid
Bank reconciliationWhen a bank record is matched to the cash-side resource

An advance deposit is cash received before its related revenue is recognized. It normally remains a liability until recognition; accounts receivable instead represents an amount still owed. Preserve the source relationships, but use each returned journal's txnAt for accounting and as-of reporting.

Client Boundary

Render returned financial lines, totals, posting dates, and issues. Do not reimplement journal construction or use a client-computed balance to override the API.

See Revenue recognition, Banking, Reservations, Transactions, and Reports. For a finance-led overview, read the VRTrust General Ledger white paper.

On this page