---
title: "List envelopes"
method: GET
path: "/api/v1/firme"
tags: ["Signatures (app routes)"]
---

# List envelopes

`GET /api/v1/firme`

## Request

- Base URL: `https://api.custodo.ai`
- URL: `https://api.custodo.ai/api/v1/firme`
- Auth: HTTP bearer

`scope`: `all` (default), `to-sign` (waiting on the caller now) or `mine` (signed by the caller). `status`, `q` (title), `filter`, `sort`, `group`, `page`, `pageSize` as the grid sends them.

## Query parameters

- `scope` 'all' | 'to-sign' | 'mine'
- `status` 'draft' | 'sent' | 'partially_signed' | 'completed' | 'declined' | 'expired' | 'voided'
- `level` 'ses'
- `q` string
- `filter` string
- `group` string
- `sort` string
- `page` integer
- `pageSize` integer

## Headers

- `X-Tenant-Id` string, uuid

## Response `200`

One page of envelopes.

- object
  - `ok` true, required
  - `data` FirmeEnvelopePage, required
    - `items` object[], required
      - `hasCertificate` boolean
      - `certificateDocumentId` string, nullable: A UUID.
      - `id` string, required: A UUID.
      - `documentId` string, nullable, required: A UUID.
      - `title` string, required
      - `message` string, nullable, required
      - `level` 'ses', required
      - `status` 'draft' | 'sent' | 'partially_signed' | 'completed' | 'declined' | 'expired' | 'voided', required
      - `routing` 'sequential' | 'parallel', required
      - `source` object, required
        - `filename` string, required
        - `sizeBytes` number, required
        - `contentType` string, required
      - `bundle` boolean, required
      - `format` 'pades' | 'cades', required
      - `preparation` 'queued' | 'ready' | 'failed', required
      - `preparationError` string, nullable, required
      - `hasSignedArtifact` boolean, required: True once the first signature is on the PDF.
      - `validation` object, nullable, required: The ETSI verdict on the completed PDF: TOTAL_PASSED, INDETERMINATE, TOTAL_FAILED.
        - `indication` string, required
        - `subIndication` string, nullable, required
      - `archiveOnComplete` boolean, required
      - `mailAccountId` string, nullable, required: A UUID.
      - `whatsappAccountId` string, nullable, required: A UUID.
      - `expiresAt` string, nullable, required: ISO 8601, UTC.
      - `createdAt` string, required: ISO 8601, UTC.
      - `updatedAt` string, required: ISO 8601, UTC.
      - `completedAt` string, nullable, required: ISO 8601, UTC.
    - `page` number, required
    - `pageSize` number, required
    - `total` number, required
    - `totalPages` number, required
    - `hasMore` boolean, required

## Other responses

- `400`: The request did not validate: `error.details` names the fields.
- `401`: No API key, or one that is malformed, unknown, revoked or expired.
- `403`: The module is off for this organisation, the credential lacks the permission, or the tier does not cover it.
- `429`: The API key has spent its minute, or its day. See `Retry-After`.

---

[API](https://skmtc.dev/custodo/apis/custodo-integrazioni.md) · [All operations](https://skmtc.dev/custodo/apis/custodo-integrazioni/llms.txt) · [OpenAPI document](https://skmtc.dev/custodo/apis/custodo-integrazioni/revisions/16d336d3ec2a?raw)
