---
title: "Get the eIDAS proof of a designated signed document"
method: GET
path: "/leases/{lease_id}/signature/documents/{document_signature_id}/proof"
tags: ["Signatures", "Leases"]
---

# Get the eIDAS proof of a designated signed document

`GET /leases/{lease_id}/signature/documents/{document_signature_id}/proof`

## Request

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

Returns the eIDAS proof bundle for **one named document** of the lease.

Use this rather than `/leases/{lease_id}/signature/proof` whenever the
lease produced more than one signed document. The unqualified route
resolves "the latest document of the lease", which never designates a
surety deed (acte de cautionnement): those deeds were produced and
archived but unreachable through it. Pass the
`document_signature_id` and you get the proof of exactly that document.

You obtain the identifier from `GET /leases/{lease_id}/signature/status`
or from the response of `initiate`.

Same payload and same statuses as the unqualified proof route:
`NOT_AVAILABLE`, `GENERATING`, `AVAILABLE`, `ERROR`.

## Path parameters

- `lease_id` string, uuid, required
- `document_signature_id` string, uuid, required

## Response `200`

Proof envelope. An unknown `document_signature_id` also answers
`200` with `status: NOT_AVAILABLE` rather than a `404`.

- SignatureProofResponse
  - `status` 'NOT_AVAILABLE' | 'GENERATING' | 'AVAILABLE' | 'ERROR': Status of the signature proof generation
  - `proof` SignatureProofDto
    - `version` string
    - `proof_id` string
    - `generated_at` string, date-time
    - `document` ProofDocumentDto
      - `document_signature_id` string
      - `lease_id` string, nullable
      - `original_document_hash` string, nullable
      - `signed_document_hash` string, nullable
      - `original_media_id` string, nullable
      - `signed_media_id` string, nullable
      - `page_count` integer, nullable
      - `created_at` string, nullable
      - `completed_at` string, nullable
    - `signers` SignerEvidenceDto[]
      - `signer_type` string
      - `identity` object
        - `email` string
        - `phone` string
        - `first_name` string, nullable
        - `last_name` string, nullable
      - `process` object
        - `notification_sent_at` string, nullable
        - `otp_requested_at` string, nullable
        - `otp_sent_at` string, nullable
        - `otp_validated_at` string, nullable
        - `signature_completed_at` string, nullable
        - `ip_address` string, nullable
        - `user_agent` string, nullable
        - `country_code` string, nullable
      - `cryptographic` object
        - `signature_hash` string, nullable
        - `dss_session_id` string, nullable
        - `dss_signature_id` string, nullable
        - `certificate_issuer` string, nullable
    - `audit_trail` AuditEventDto[]
      - `timestamp` string, date-time
      - `event_type` string
      - `actor_type` string
      - `description` string
      - `ip_address` string, nullable
    - `compliance` ComplianceInfoDto: What the signed file actually carries. Neither field is a constant: both are derived from the file at the moment the proof is generated, so the proof states what it can defend rather than what was aimed for.
      - `eidas_level` 'ADVANCED' | 'SIMPLE': Derived from the four conditions of eIDAS Article 26. `ADVANCED` requires every signer to have validated their one-time code and to carry their own signature hash, plus a sealed document whose later modification is detectable. Anything short of that is `SIMPLE`, which Article 25.1 still recognises as legally effective.
      - `signature_format` 'PAdES-B-LTA' | 'PAdES-B-T' | 'PAdES-B-B': The PAdES level the file really carries, per ETSI EN 319 142-1. Note that `PAdES-B-LTV` is Adobe vocabulary and is not a level of the standard: it is never returned. The nominal outcome is `PAdES-B-LTA`. It degrades when a dependency is unavailable at signing time, and the proof says so rather than over-promising.
      - `etsi_standard` string: ETSI standard reference
      - `hash_algorithm` string: Hash algorithm used (e.g., SHA-256)
      - `retention_years` integer: Document retention period in years
  - `message` string, nullable
  - `pdf_url` string, nullable: URL to download the proof as PDF
  - `json_url` string, nullable: URL to download the proof as JSON

## Other responses

- `401`: Unauthorized
- `403`: Forbidden
- `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)
