Home › Library › Expense Configuration › One-time Charges

One-time Charges

Ad-hoc charges for non-recurring expenses: repairs, emergency services, one-off fees.

Overview

One-time charges allow landlords to create ad-hoc expense charges without configuring a separate PropertyExpense. Each property has a hidden "one-time" expense type that is auto-created.

Quick creation

No need to create PropertyExpense — just set date, amount, and description.

Auto-created expense type

The system automatically creates and manages the hidden one-time expense type per property.

Multi-currency

Each charge can use any currency. Automatic conversion on display.

Grouped view

All one-time charges are visible in a dedicated page, separate from recurring charges.

How it works

OneTimeChargeControllerUI for creating/viewing
↓
OneTimeExpenseServiceAuto-creates hidden expense type
↓
ExpenseChargeStandard charge record

Form Fields

Field Type Required Description
charge_datedate*Date when expense was incurred
period_startdate*Billing period start
period_enddate*Billing period end
amountdecimal*Charge amount (positive number)
currency_idinteger*Currency ID
notestextDescription visible to tenant

Access Control

Role Create View
PROPERTY_LANDLORD
PROPERTY_LANDLORD_AGENT
PROPERTY_TENANT
PROPERTY_TENANT_AGENT

API Endpoints

Service layer note

GET  /properties/{propertyId}/one-time-charges        - List one-time charges
POST /properties/{propertyId}/one-time-charges/new    - Create one-time charge

This route is a web-session form (requires login and a CSRF token) — not a JSON bearer-token API call.

One-time charges are also accessible via the standard ExpenseCharge API endpoints.

Swagger / OpenAPI

Full API documentation available in Swagger UI: /api/v1/doc