Skip to main content

9. Activate & configure a rental folder

Observed — activate an existing folder, then configure auto-invoicing, rent items, balance offset, and rent revision.

Why

Move a folder to active, wire automatic invoicing, align rent line items, set an opening balance, and configure rent revision.

Prerequisites

  • Existing rental folder (id)
  • Associated rental account (rentalAccountId)
  • Operations / units for rentItems
  • VAT codes: vatCodeId and vatExemptionCodeId on each rent item (RentalAccountRentItemsInput — optional today, expected to become required; resolve via listVatCodes / listVatExemptionCodes)
  • Optional: effectiveEntryDate for changeStateToActive

9.1 Activate the folder (changeStateToActive)

mutation changeStateToActive($id: UUID!, $effectiveEntryDate: Date) {
changeStateToActive(id: $id, effectiveEntryDate: $effectiveEntryDate) {
id
reference
}
}
{
"id": "00000000-0000-4000-8000-000000000093",
"effectiveEntryDate": null
}

9.2 Auto-invoicing (updateAutoInvoicingConfig)

mutation updateAutoInvoicingConfig($rentalAccountId: UUID!, $autoInvoicingConfig: AutoInvoicingConfigInput!) {
updateAutoInvoicingConfig(
rentalAccountId: $rentalAccountId
autoInvoicingConfig: $autoInvoicingConfig
) {
id
isActive
invoicingFrequency
}
}
{
"rentalAccountId": "00000000-0000-4000-8000-000000000094",
"autoInvoicingConfig": {
"invoicingStartDate": "2026-07-13",
"invoicingEndDate": null,
"invoicingFrequency": "monthly",
"invoicingTimeWindow": "calendar",
"dueDateMethod": "paid_in_advance",
"dueDatePositioning": "start_of_month",
"paymentDueDay": 5,
"automationStartDate": "2026-08-03",
"automationEndDate": null,
"accountingInvoiceConfigId": "00000000-0000-4000-8000-000000000095",
"invoicingOffset": 10,
"autoSendTime": "06:30:00",
"isActive": true
}
}
# payload.json = query + variables above
curl -sS -X POST "$UBLO_GRAPHQL_URL" \
-H "Authorization: Bearer $UBLO_API_TOKEN" \
-H 'Content-Type: application/json' \
-d @payload.json

9.3 Rent items (updateRentalAccountRentItems)

Observed amount: 60000 (€600.00).

mutation updateRentalAccountRentItems(
$rentalAccountId: UUID!
$rentalAccountRentItems: [RentalAccountRentItemsInput!]!
$vatTerm: String
) {
updateRentalAccountRentItems(
rentalAccountId: $rentalAccountId
rentalAccountRentItems: $rentalAccountRentItems
vatTerm: $vatTerm
) {
rentalAccountId
}
}
{
"rentalAccountId": "00000000-0000-4000-8000-000000000094",
"rentalAccountRentItems": [
{
"amount": 60000,
"id": "00000000-0000-4000-8000-000000000096",
"operationId": "00000000-0000-4000-8000-000000000003",
"unitId": "00000000-0000-4000-8000-000000000097",
"vatCodeId": "00000000-0000-4000-8000-000000000201",
"vatExemptionCodeId": "00000000-0000-4000-8000-000000000202",
"vatMention": "not_applicable",
"vatRate": 0,
"vatSpecific": "accounting"
}
],
"vatTerm": null
}

9.4 Opening balance (setBalanceOffset)

Observed example: -40000 (−€400.00).

mutation setBalanceOffset($rentalAccountId: UUID!, $setBalanceOffsetInput: SetBalanceOffsetInput!) {
setBalanceOffset(
rentalAccountId: $rentalAccountId
setBalanceOffsetInput: $setBalanceOffsetInput
) {
rentalAccountId
}
}
{
"rentalAccountId": "00000000-0000-4000-8000-000000000094",
"setBalanceOffsetInput": {
"balanceOffset": -40000
}
}

9.5 Rent revision (updateRentRevision)

mutation updateRentRevision($rentalAccountId: UUID!, $rentRevision: RentalAccountRentRevisionInput!) {
updateRentRevision(rentalAccountId: $rentalAccountId, rentRevision: $rentRevision) {
rentalAccountId
}
}
{
"rentalAccountId": "00000000-0000-4000-8000-000000000094",
"rentRevision": {
"currentRevisionId": "00000000-0000-4000-8000-000000000103",
"isAnnualRevisionActive": true,
"isAutomatic": true,
"revisionFrequency": "on_anniversary"
}
}

Note — folder patch (updateRentalFolder)

updateRentalFolder can update contractDetails, profiles, units, and rentalInsurances. Minimal insurance item observed:

{
"rentalInsurances": [
{
"startDate": "2026-01-01",
"endDate": "2026-12-31",
"insurerName": "Example Insurer",
"policyNumber": "34565677",
"isAutoRenewal": true
}
]
}

Inspect body.contractDetails / body.rentalInsurances as needed; the full UI payload is large.

Next

Create a rental folder · Generate & send a rental contract