---
title: "Update lease charge"
method: PUT
path: "/leases/{lease_id}/charges/{charge_id}"
tags: ["Leases"]
---

# Update lease charge

`PUT /leases/{lease_id}/charges/{charge_id}`

## Request

- Base URL: `https://api.faireplace.com/api`
- URL: `https://api.faireplace.com/api/leases/{lease_id}/charges/{charge_id}`
- Auth: HTTP bearer

Update the information of an existing charge.

**Validations performed:**
- service_place / lease compatibility: The service must be attached to the same place as the lease's estate
- Automatic resolution of the distribution key: If `distribution_key_id` is not provided, uses `default_distribution_key_id` from the `service_place` or the existing value
- Distribution / billing consistency: Checks that the distribution is compatible with the billing method
- Method / basis consistency: Checks that the billing method is compatible with the calculation basis
- Lease type compatibility: Checks that the category and billing method are allowed for this lease type
- Period validation: Checks that billing periods are within the lease boundaries and respect `max_provisional_months` if applicable
- Category x basis compatibility: Checks that personnel calculation bases are only used with the EMPLOYEE category

## Path parameters

- `lease_id` string, uuid, required
- `charge_id` string, uuid, required

## Request body

- UpdateLeaseCharge: Data for updating a rental charge. **Validation rules:** - The same validations as for creation apply to modified fields - Values not provided retain their existing values - If `service_place_id` is modified, service_place / lease compatibility validations apply - If `calculation_method` or `calculation_basis` are modified, consistency validations apply
  - `service_place_id` string, uuid, nullable: Service ID. If modified, the service must be attached to the same place as the lease's estate and must be chargeable
  - `category_id` string, uuid, nullable: Category ID. If modified, the category must be allowed for the lease type
  - `calculation_method` 'FORFAIT' | 'PROVISION' | 'DEPENSE_REELLE' | 'RELEVE_DIRECT': Charge billing mode to the tenant (provision/fixed/actual expense). **Compatibility rules:** - `CONSOMMATION_MESUREE` (distribution) requires `RELEVE_DIRECT` or `PROVISION` - `FORFAIT` requires `FORFAIT` as calculation basis - `DEPENSE_REELLE` requires `DEPENSE_REELLE` or a staff basis as calculation basis - `PROVISION` can be used with all calculation bases - The mode must be allowed for the lease type (`allow_provisional`, `allow_fixed`)
  - `calculation_basis` 'DEPENSE_REELLE' | 'FORFAIT' | 'PERSONNEL_75_POURCENT' | 'PERSONNEL_40_POURCENT' | 'PERSONNEL_100_POURCENT': Base de calcul d'une charge récupérable (art. 23-1). Les trois valeurs `PERSONNEL_…` s'écrivent avec un underscore après `PERSONNEL`, exactement comme en base: c'est la même orthographe partout.
  - `amount` number, nullable
  - `billing_period_start` string, date, nullable: Billing period start date. If modified, must respect the lease boundaries
  - `billing_period_end` string, date, nullable: Billing period end date. If modified, must respect the lease boundaries and `max_provisional_months` if applicable
  - `last_regularization_date` string, date, nullable: Last regularization date
  - `distribution_key_id` string, uuid, nullable: Distribution key ID. If modified, must be compatible with `calculation_method`
  - `notes` string, nullable
  - `energy_efficiency` UpdateEnergyEfficiency: Data for updating an energy efficiency contribution
    - `baseline_consumption` number, nullable: Consumption before works
    - `target_savings_percentage` number, nullable: Targeted savings percentage (0-100)
    - `monthly_contribution_amount` number, nullable: Monthly contribution amount
    - `remaining_months` integer, nullable: Remaining duration in months
    - `work_description` string, nullable: Description of the completed works
    - `work_cost` number, nullable: Cost of works
    - `energy_audit_reference` string, nullable: Energy audit reference
    - `start_date` string, date, nullable: Contribution start date
    - `end_date` string, date, nullable: Contribution end date
    - `notes` string, nullable: Notes
  - `insurance` UpdateColocatationInsurance: Data for updating a co-tenancy insurance
    - `contract_number` string, nullable: Insurance contract number
    - `insurance_company` string, nullable: Insurance company
    - `annual_premium` number, nullable: Annual premium
    - `recoverable_amount` number, nullable: Amount recoverable from tenants
    - `coverage_details` string, nullable: Coverage details
    - `policy_start_date` string, date, nullable: Policy start date
    - `policy_end_date` string, date, nullable: Policy end date
    - `deductible_amount` number, nullable: Deductible amount
    - `coverage_limits` object, nullable: Coverage limits (JSON)
    - `exclusions` string, nullable: Coverage exclusions
    - `notes` string, nullable: Notes

## Response `200`

Charge updated successfully

- LeaseCharge: Rental charge
  - `id` string, uuid, required: Unique identifier of the charge
  - `lease_id` string, uuid, required: Lease ID
  - `service_place_id` string, uuid, nullable: Place service ID
  - `category_id` string, uuid, nullable: Charge category ID
  - `calculation_method` 'FORFAIT' | 'PROVISION' | 'DEPENSE_REELLE' | 'RELEVE_DIRECT', required: Charge billing mode to the tenant (provision/fixed/actual expense). **Compatibility rules:** - `CONSOMMATION_MESUREE` (distribution) requires `RELEVE_DIRECT` or `PROVISION` - `FORFAIT` requires `FORFAIT` as calculation basis - `DEPENSE_REELLE` requires `DEPENSE_REELLE` or a staff basis as calculation basis - `PROVISION` can be used with all calculation bases - The mode must be allowed for the lease type (`allow_provisional`, `allow_fixed`)
  - `calculation_basis` 'DEPENSE_REELLE' | 'FORFAIT' | 'PERSONNEL_75_POURCENT' | 'PERSONNEL_40_POURCENT' | 'PERSONNEL_100_POURCENT', required: Base de calcul d'une charge récupérable (art. 23-1). Les trois valeurs `PERSONNEL_…` s'écrivent avec un underscore après `PERSONNEL`, exactement comme en base: c'est la même orthographe partout.
  - `amount` number, required: Charge amount
  - `billing_period_start` string, date, nullable: Billing period start date
  - `billing_period_end` string, date, nullable: Billing period end date
  - `last_regularization_date` string, date, nullable: Last regularization date
  - `distribution_key_id` string, uuid, nullable: Distribution key ID
  - `notes` string, nullable: Notes about the charge
  - `created_at` string, date-time, required: Creation date
  - `updated_at` string, date-time, required: Last modification date
  - `energy_efficiency` EnergyEfficiencyContribution: Contribution for sharing energy savings (Energy Transition Act)
    - `id` string, uuid, required: Unique identifier
    - `lease_charge_id` string, uuid, required: Associated charge ID
    - `baseline_consumption` number, required: Consumption before works
    - `target_savings_percentage` number, required: Targeted savings percentage
    - `monthly_contribution_amount` number, required: Monthly contribution amount
    - `remaining_months` integer, required: Remaining duration in months
    - `work_description` string, required: Description of the completed works
    - `work_cost` number, nullable: Cost of works
    - `energy_audit_reference` string, nullable: Energy audit reference
    - `start_date` string, date, required: Contribution start date
    - `end_date` string, date, required: Contribution end date
    - `notes` string, nullable: Notes
    - `created_at` string, date-time, required: Creation date
    - `updated_at` string, date-time, required: Last modification date
  - `insurance` ColocatationInsurance: Insurance taken out by the landlord on behalf of co-tenants
    - `id` string, uuid, required: Unique identifier
    - `lease_charge_id` string, uuid, required: Associated charge ID
    - `contract_number` string, required: Insurance contract number
    - `insurance_company` string, required: Insurance company
    - `annual_premium` number, required: Annual premium
    - `recoverable_amount` number, required: Amount recoverable from tenants
    - `coverage_details` string, required: Coverage details
    - `policy_start_date` string, date, required: Policy start date
    - `policy_end_date` string, date, required: Policy end date
    - `deductible_amount` number, nullable: Deductible amount
    - `coverage_limits` object, nullable: Coverage limits (JSON)
    - `exclusions` string, nullable: Coverage exclusions
    - `notes` string, nullable: Notes
    - `created_at` string, date-time, required: Creation date
    - `updated_at` string, date-time, required: Last modification date

## Other responses

- `400`: Bad request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not found
- `422`: Unprocessable Entity
- `500`: Internal Server Error

---

[API](https://skmtc.dev/faireplace/apis/faireplace-property-management-api.md) · [All operations](https://skmtc.dev/faireplace/apis/faireplace-property-management-api/llms.txt) · [OpenAPI document](https://skmtc.dev/faireplace/apis/faireplace-property-management-api/revisions/69de39762919?raw)
