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

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

Create Request Example

{
  "charge_date": "2026-03-15",
  "period_start": "2026-03-01",
  "period_end": "2026-03-31",
  "amount": "450.00",
  "currency_id": 3,
  "notes": "Заміна замка вхідних дверей"
}

Swagger / OpenAPI

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