---
title: "Create a condition report"
method: POST
path: "/leases/{lease_id}/condition-reports"
tags: ["Condition Reports"]
---

# Create a condition report

`POST /leases/{lease_id}/condition-reports`

## Request

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

Create a new condition report (état des lieux) for a lease: either entry or exit.

**French law context:**
- **Loi ALUR art. 3-2**: Mandatory at entry and exit, established contradictorily.
- **Décret 2016-382**: Defines required content: room-by-room description, structural elements, equipment, meters, keys.
- **Art. 22 loi 89-462**: Without exit report, deposit deductions cannot be justified.

The report is created with `DRAFT` status and rooms are pre-populated from the estate's existing rooms.

**Permissions required:** `leases:write`

## Path parameters

- `lease_id` string, uuid, required

## Request body

- object
  - `report_type` 'ENTRY' | 'EXIT', required: Type of condition report
  - `report_date` string, date, required: Date the report is conducted
  - `conducted_by` string, required: Name of the person conducting the report
  - `conducted_by_type` 'OWNER' | 'AGENT' | 'BAILIFF', required: Role of the person conducting the report
  - `general_notes` string, nullable: General observations about the property

## Response `201`

Condition report created with pre-populated rooms

- ConditionReportResponse
  - `id` string, uuid
  - `lease_id` string, uuid
  - `report_type` 'ENTRY' | 'EXIT'
  - `report_date` string, date
  - `status` 'DRAFT' | 'COMPLETED' | 'SIGNED' | 'DISPUTED'
  - `conducted_by` string
  - `conducted_by_type` 'OWNER' | 'AGENT' | 'BAILIFF'
  - `general_notes` string, nullable
  - `document_url` string, nullable: Filled PDF URL (from generate-pdf)
  - `document_signature_id` string, uuid, nullable: FK to document_signatures (from initiate-signature)
  - `signed_document_url` string, nullable: Signed PDF URL (from finalize-signature)
  - `rooms` RoomConditionResponse[]
    - `id` string, uuid
    - `room_id` string, uuid
    - `general_notes` string, nullable
    - `elements` ElementConditionResponse[]
      - `id` string, uuid
      - `element_type` 'FLOOR' | 'WALL' | 'CEILING' | 'DOOR' | 'WINDOW' | 'ELECTRICAL' | 'PLUMBING' | 'HEATING'
      - `condition` 'EXCELLENT' | 'GOOD' | 'FAIR' | 'POOR' | 'DAMAGED' | 'NEEDS_REPAIR' | 'BROKEN' | 'MISSING': Reuses existing InventoryConditionStatus enum (8 states)
      - `comment` string, nullable
      - `photos` string[]: Media IDs (uploaded via POST /media/upload/condition_report/{id}). Resolve URLs via GET /media/serve/{media_id}
      - `wear_coefficient` number, nullable: Wear coefficient (0.0–1.0) per décret 2016-1104
      - `created_at` string, date-time
      - `updated_at` string, date-time
    - `created_at` string, date-time
    - `updated_at` string, date-time
  - `meters` MeterSnapshotResponse[]
    - `id` string, uuid
    - `lease_meter_id` string, uuid
    - `reading_value` number
    - `photo_media_id` string, uuid, nullable: Media ID of meter reading photo
    - `notes` string, nullable
    - `created_at` string, date-time
  - `keys` KeySnapshotResponse[]
    - `id` string, uuid
    - `estate_key_id` string, uuid
    - `quantity_delivered` integer
    - `condition_notes` string, nullable
    - `created_at` string, date-time
  - `created_at` string, date-time
  - `updated_at` string, date-time

## Other responses

- `401`: Unauthorized
- `403`: Forbidden

---

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