Home Library Balance Adjustments Service Provider Adjustments

Service Provider Balance Adjustments

What are Service Provider Balance Adjustments?

Service Provider Balance Adjustments are a mechanism for correcting errors in settlements with utility service providers (electricity, gas, water, internet, etc.). Adjustments can be either positive (additional charge) or negative (debt reduction or compensation).

When is adjustment needed?

  • Provider mistakenly charged more
  • Underpayment discovered due to meter reading error
  • Meter was malfunctioning and recalculation is needed
  • Compensation provided for poor service quality
  • Discount or bonus negotiated with provider

Adjustment Fields

Adjustment Date

Date on which the adjustment is made

Service Provider

Service provider for which the adjustment is made

Amount

Adjustment amount: negative for debt reduction (compensation), positive for additional charge

Currency

Currency of the adjustment amount

Notes

Description of the adjustment reason (optional field)

Expense (optional)

Link to specific expense (optional field)

Contract (optional)

Link to contract (optional field)

Adjustment Confirmation

Adjustments can be confirmed by both landlord and tenant. Full confirmation is obtained only after both parties confirm.

Confirmation Statuses

Pending

Awaiting confirmation from both parties

Confirmed by Landlord

Confirmed by landlord, awaiting tenant confirmation

Confirmed by Tenant

Confirmed by tenant, awaiting landlord confirmation

Fully Confirmed

Fully confirmed by both parties

REST API

The API allows you to manage balance adjustments programmatically. Below are the available endpoints with request and response examples.

Service layer note

GET /api/v1/properties/{id}/adjustments

Get list of all balance adjustments for property

Query Parameters

  • page (optional) - <code>page</code> — Page number (default: 1)
  • limit (optional) - <code>limit</code> — Items per page (default: 20, max: 100)

Example Request

curl -X GET "https://landlordkeeper.com/api/v1/properties/1/adjustments?page=1&limit=20" \
  -H "Authorization: Bearer YOUR_TOKEN"

Example Response

{
  "items": [
    {
      "id": 1,
      "adjustment_date": "2026-01-28",
      "amount": -150.50,
      "currency": {
        "id": 1,
        "code": "EUR",
        "symbol": "€"
      },
      "service_provider": {
        "id": 3,
        "name": "Electric Company"
      },
      "notes": "Overbilling correction",
      "status": "fully_confirmed",
      "is_confirmed_by_landlord": true,
      "is_confirmed_by_tenant": true,
      "documents_count": 2,
      "created_at": "2026-01-28T10:30:00+00:00",
      "created_by": {
        "id": 5,
        "name": "John Landlord"
      }
    }
  ],
  "total": 1,
  "page": 1,
  "limit": 20
}

POST /api/v1/properties/{id}/adjustments

Create a new balance adjustment

Request Body

{
  "adjustment_date": "2026-01-28",
  "service_provider_id": 3,
  "amount": -150.50,
  "currency_id": 1,
  "notes": "Overbilling correction for January",
  "property_expense_id": 15,
  "contract_id": 5
}

Example Response

{
  "id": 1,
  "message": "Adjustment created successfully"
}

GET /api/v1/properties/{id}/adjustments/{aid}

Get detailed information about adjustment

Example Response

{
  "id": 1,
  "adjustment_date": "2026-01-28",
  "amount": -150.50,
  "currency": {
    "id": 1,
    "code": "EUR",
    "symbol": "€"
  },
  "service_provider": {
    "id": 3,
    "name": "Electric Company"
  },
  "notes": "Overbilling correction",
  "status": "fully_confirmed",
  "is_confirmed_by_landlord": true,
  "landlord_confirmed_by": {
    "id": 5,
    "name": "John Landlord"
  },
  "landlord_confirmed_at": "2026-01-28T11:00:00+00:00",
  "is_confirmed_by_tenant": true,
  "tenant_confirmed_by": {
    "id": 8,
    "name": "Jane Tenant"
  },
  "tenant_confirmed_at": "2026-01-28T12:00:00+00:00",
  "property_expense": {
    "id": 15,
    "name": "Electricity"
  },
  "contract": {
    "id": 5,
    "name": "Service Contract #5"
  },
  "documents": [
    {
      "id": 19,
      "original_name": "invoice_correction.pdf",
      "file_size": 245678,
      "comment": "Corrected invoice",
      "created_at": "2026-01-28T10:35:00+00:00"
    }
  ],
  "created_at": "2026-01-28T10:30:00+00:00",
  "created_by": {
    "id": 5,
    "name": "John Landlord"
  }
}

PUT /api/v1/properties/{id}/adjustments/{aid}

Update existing adjustment

Request Body

{
  "adjustment_date": "2026-01-29",
  "amount": -180.00,
  "notes": "Updated correction amount"
}

Example Response

{
  "message": "Adjustment updated successfully"
}

DELETE /api/v1/properties/{id}/adjustments/{aid}

Delete adjustment

Example Response

{
  "message": "Adjustment deleted successfully"
}

POST /api/v1/properties/{id}/adjustments/{aid}/documents

Attach document to adjustment

Request Body

{
  "document_id": 42,
  "comment": "Invoice copy"
}

Example Response

{
  "message": "Document attached successfully"
}

DELETE /api/v1/properties/{id}/adjustments/{aid}/documents/{did}

Detach document from adjustment

Example Response

{
  "message": "Document detached successfully"
}

POST /api/v1/properties/{id}/adjustments/{aid}/confirm-landlord

Confirm adjustment as landlord

Example Response

{
  "message": "Confirmed by landlord",
  "status": "confirmed_by_landlord"
}

POST /api/v1/properties/{id}/adjustments/{aid}/confirm-tenant

Confirm adjustment as tenant

Example Response

{
  "message": "Confirmed by tenant",
  "status": "fully_confirmed"
}

Usage Examples

Scenario 1: Electricity Overbilling

Electricity provider charged 200 EUR, but after verification it turned out it should be 150 EUR. Need to make adjustment for -50 EUR.

  1. Create adjustment with amount -50 EUR
  2. Specify provider "Electric Company" and attach supporting document
  3. Landlord confirms adjustment
  4. Tenant confirms adjustment - status becomes "Fully Confirmed"

Scenario 2: Compensation for Service Interruptions

Internet provider gave 30 EUR discount for network interruptions during the month.

  1. Create adjustment with amount -30 EUR
  2. Specify reason "Compensation for network interruptions"
  3. Confirm by both parties