Payment & invoice wrapper
A single layer that wraps the building's payment processor and accounting system so resident charges, refunds, and reconciliation behave the same regardless of vendor.
Money flows through buildings in many shapes — recurring rent, one-off charges, amenity fees, utility passthroughs, deposit holds, refunds, late fees, partial credits. Each of those shapes typically lives in a different vendor. The payment wrapper is the engine that lets the operating layer treat payment as a behavior of the building rather than a feature of a vendor.
The wrapper exposes a single set of operations — charge, hold, release, refund, reconcile — that the booking engine, the issue engine, and the move-in / move-out flow consume without knowing whether the underlying processor is Stripe, Adyen, or a regional alternative. Idempotency, retry policy, and failure semantics are normalized at the wrapper, not at every consumer. When the building swaps payment processors, the consumers are unaffected.
The wrapper also normalizes the path into accounting. Each financial event flows into the accounting integration with consistent metadata — building, unit, resident, category, period, behavioral context — so the building's books reflect the operational reality without manual reconciliation. The behavioral specification can then score whether the financial side of the resident experience meets the standard: refunds happen within a defined window, holds release on schedule, and statements arrive when the standard says they should.