---
title: "Mettre en place une location déjà en cours"
method: POST
path: "/leases/quick-setup"
tags: ["Leases"]
---

# Mettre en place une location déjà en cours

`POST /leases/quick-setup`

## Request

- Base URL: `https://api.faireplace.com/api`
- URL: `https://api.faireplace.com/api/leases/quick-setup`
- Auth: HTTP bearer

Crée d'un coup le propriétaire, le bien, le locataire et le bail, pour
une location **qui a déjà commencé**: bail papier, ou signé ailleurs.

C'est le second parcours d'accueil (ADR-003). Le bailleur a déjà son
locataire : il ne doit pas rejouer chez nous une signature qui a eu
lieu. Le bail créé est directement actif, sans passer par la signature
électronique.

## Validation
Les règles légales sont appliquées **côté serveur**, dans le domaine.
Ce n'est pas une redondance avec la validation du formulaire : un
formulaire se contourne, pas une erreur de validation. C'est ce qui rend
« obligatoire sur tout ce qui est légal » effectif, et non déclaratif:
d'autant que les colonnes correspondantes ont été rendues nullables en
base pour lever la friction de l'autre parcours.

## Réutiliser un propriétaire existant
Renseignez `bailleur.existant_id` quand le compte a déjà un
propriétaire : il est réutilisé au lieu d'en créer un doublon. Les
autres champs de `bailleur` sont alors ignorés.

Requiert la permission `leases:write`.

## Request body

- QuickSetupRequest
  - `bailleur` QuickSetupBailleur, required: Le propriétaire. Renseignez `existant_id` pour réutiliser un propriétaire déjà présent sur le compte: les autres champs sont alors ignorés.
    - `existant_id` string, uuid, nullable: Propriétaire existant à réutiliser, au lieu d'en créer un.
    - `qualite` 'PARTICULIER' | 'SOCIETE': Qualité du bailleur. `PARTICULIER` par défaut si le champ est absent.
    - `title` string
    - `first_name` string, nullable
    - `last_name` string
    - `legal_name` string, nullable: Raison sociale, quand `qualite` vaut `SOCIETE`.
    - `registration_number` string, nullable: SIRET ou équivalent, quand `qualite` vaut `SOCIETE`.
    - `email` string, email
    - `mobile_phone` string
    - `adresse` QuickSetupAdresse
      - `street_number` string, nullable
      - `street_name` string, required
      - `postal_code` string, required
      - `city` string, required
  - `locataire` QuickSetupLocataire, required
    - `title` string, nullable
    - `first_name` string
    - `last_name` string, required
    - `email` string, email, required
    - `mobile_phone` string, required
  - `logement` QuickSetupLogement, required
    - `type_logement` 'APPARTEMENT' | 'MAISON', required
    - `nom` string, required: Libellé du bien, tel qu'il apparaîtra dans les listes.
    - `adresse` QuickSetupAdresse, required
      - `street_number` string, nullable
      - `street_name` string, required
      - `postal_code` string, required
      - `city` string, required
    - `surface` number, float, required: Surface habitable en m².
  - `location` QuickSetupLocation, required
    - `regime` 'VIDE' | 'MEUBLE', required: Régime du bail : logement vide ou meublé.
    - `start_date` string, date, required: Date de début du bail: dans le passé, puisque la location est en cours.
    - `rent_amount` number, required: Loyer hors charges.
    - `charges_amount` number: Provision pour charges. `0` si le champ est absent.
    - `payment_day` integer, required: Jour d'échéance dans le mois.

## Response `201`

Location mise en place. Les quatre entités créées sont renvoyées.

- QuickSetupResult: Les quatre entités créées, dans l'ordre où on les enchaîne ensuite.
  - `lease_id` string, uuid, required
  - `estate_id` string, uuid, required
  - `owner_id` string, uuid, required
  - `lessee_id` string, uuid, required

## Other responses

- `400`: Bad request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not found
- `422`: Unprocessable Entity
- `429`: Rate limit exceeded. Every endpoint sits behind a plan-aware limiter, and the public tools carry an additional per-endpoint one. `error.details.retry_after_seconds` says how long to wait; the `Retry-After`, `X-RateLimit-Limit` and `X-RateLimit-Remaining` headers carry the same information.
- `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)
