---
title: "Initiate signature for a specific lease"
method: POST
path: "/leases/{lease_id}/signature/initiate"
tags: ["Leases", "Signatures"]
---

# Initiate signature for a specific lease

`POST /leases/{lease_id}/signature/initiate`

## Request

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

Initiates the electronic signature process directly from the context of a lease.

## Signer identification
The system automatically identifies the initiating signer via:
- The `auth_user_id` extracted from the JWT (claim `sub`)
- Matching with an `owner_id` or `lessee_id` in the database
- The signer type (owner or tenant) is determined automatically

## Verification at individual signer level
The system now verifies at the individual signer level rather than at the global document level:
- If **you have already signed**: you cannot restart (error 409)
- If **the document is fully signed**: you cannot restart (error 409)
- If **a signature is in progress for you**: you must wait (error 409)
- If **another signer has signed**: you can continue the process (partial restart allowed)

## Partial restart
If only one signer has signed, the other signer can initiate a new signature.
This allows continuing the process even if one signer has already completed their signature.

## PDF generation
Generates the PDF, creates signature requests for all signers (owner + tenants).

## Path parameters

- `lease_id` string, uuid, required

## Request body

- object

## Response `201`

Signature initiated successfully

- InitiateSignatureResponse: Response after initiating a signature
  - `document_signature_id` string, uuid, required: Unique ID of the signature process
  - `event_id` string, required: Unique event ID for traceability
  - `pdf_url` string, uri, required: Absolute URL of the PDF document to sign
  - `media_id` string, uuid, required: Reference to the media table (PDF document)
  - `signature_requests` SignatureRequestSummary[], required: List of created signature requests
    - `id` string, uuid, required: Signature request ID
    - `signer_type` 'proprietaire' | 'locataire' | 'agent_immobilier' | 'caution', required: Who is signing. **Always lowercase** on the wire. `caution` is deliberately distinct from `locataire`: a surety does not sign the lease, they sign their own surety deed, on which they must themselves write the mention required by article 2297 of the Civil Code: without it their undertaking is void.
    - `signer_email` string, email, required: Signer email
    - `status` 'PENDING' | 'OTP_SENT' | 'SIGNING' | 'COMPLETED' | 'FAILED' | 'EXPIRED', required: Status of an individual signature request
    - `expires_at` string, date-time, required: Request expiration date
  - `status` 'READY' | 'SIGNING' | 'COMPLETED' | 'FAILED' | 'ARCHIVED', required: Status of the document signature process

## Other responses

- `400`: Bad request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Lease not found
- `409`: Conflict - Unable to initiate signature
- `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)
