---
title: "Compare entry vs exit reports"
method: GET
path: "/leases/{lease_id}/condition-reports/compare"
tags: ["Condition Reports"]
---

# Compare entry vs exit reports

`GET /leases/{lease_id}/condition-reports/compare`

## Request

- Base URL: `https://api.faireplace.com/api`
- URL: `https://api.faireplace.com/api/leases/{lease_id}/condition-reports/compare`
- Auth: HTTP bearer

Returns a structured diff between the entry and exit condition reports for the lease.
Computes element-by-element condition changes, wear coefficients (décret 2016-1104),
key diffs, and a summary indicating deposit deduction justification.

**Used by:** `POST /leases/{id}/deposit/return` to calculate justified deductions (art. 22 loi 89-462).

**Permissions required:** `leases:read`

## Path parameters

- `lease_id` string, uuid, required

## Query parameters

- `entry_report_id` string, uuid
- `exit_report_id` string, uuid

## Response `200`

Structured comparison between entry and exit reports

- ConditionReportComparison: Structured comparison between entry and exit condition reports. Includes element, meter and key diffs per room.
  - `entry_report_id` string, uuid
  - `exit_report_id` string, uuid
  - `room_diffs` object[]
    - `room_id` string, uuid
    - `element_diffs` object[]: Structural element diffs (floor, wall, ceiling, etc.)
      - `element_type` 'FLOOR' | 'WALL' | 'CEILING' | 'DOOR' | 'WINDOW' | 'ELECTRICAL' | 'PLUMBING' | 'HEATING'
      - `entry_condition` 'EXCELLENT' | 'GOOD' | 'FAIR' | 'POOR' | 'DAMAGED' | 'NEEDS_REPAIR' | 'BROKEN' | 'MISSING', nullable
      - `exit_condition` 'EXCELLENT' | 'GOOD' | 'FAIR' | 'POOR' | 'DAMAGED' | 'NEEDS_REPAIR' | 'BROKEN' | 'MISSING', nullable
      - `entry_comment` string, nullable
      - `exit_comment` string, nullable
      - `entry_wear_coefficient` number, nullable
      - `exit_wear_coefficient` number, nullable
      - `degraded` boolean: true if exit condition is worse than entry condition
  - `meter_diffs` object[]: Meter reading diffs: one entry per lease_meter_id found in either report
    - `lease_meter_id` string, uuid
    - `entry_reading` number, nullable
    - `exit_reading` number, nullable
    - `consumption` number, nullable: exit_reading - entry_reading (null if either is missing)
  - `key_diffs` object[]: Key handover diffs: one entry per estate_key_id found in either report
    - `estate_key_id` string, uuid
    - `entry_quantity` integer, nullable
    - `exit_quantity` integer, nullable
    - `difference` integer: exit_quantity - entry_quantity (negative = missing keys, justifies deposit deduction per art. 22 loi 89-462)

## Other responses

- `401`: Unauthorized
- `403`: Forbidden
- `404`: Entry or exit report not found

---

[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)
