*REST API › Objects › Rentals*

# Contract

> Rental contract.

A rental contract with its document status (`status`) and its signature status (`operativeStatus`), which move separately: validating a contract does not sign it. It points to the order, the contact and the project it belongs to. The legal clauses and the tax snapshot of the customer are not published. Contracts are bounded to the subscription that owns the key.

Schemas: `ContractDto`

## Attributes

| Name | Type | Description |
| --- | --- | --- |
| `id` | string | Unique contract identifier. |
| `contractNumber` | string | Contract number, for example "C260001"; null while it is a draft. |
| `status` | string | Document status. `draft`, `validated`, `voided` |
| `operativeStatus` | string | Signature status. `pending`, `signed`, `cancelled` |
| `signed` | boolean | true if the contract is recorded as signed. This is what decides whether the equipment can go out. |
| `signedAt` | string<date-time> | Signature date in ISO 8601 UTC; null if not signed. |
| `contactId` | string | Customer identifier; null in drafts without a customer. |
| `orderId` | string | Associated order; null if it has none. |
| `orderNumber` | string | Number of the associated order; null if it has none. |
| `projectId` | string | Associated project; null if it has none. |
| `contractDate` | string<date-time> | Contract date in ISO 8601 UTC; null if not set. |
| `startDate` | string<date-time> | Start of validity in ISO 8601 UTC; null if not applicable. |
| `endDate` | string<date-time> | End of validity in ISO 8601 UTC; null if not applicable. |
| `grossPrice` | string | Total amount including taxes as a decimal string "1234.50"; null if not applicable. |
| `createdAt` | string<date-time> | Creation date in ISO 8601 UTC; null if not recorded. |
| `updatedAt` | string<date-time> | Last modification date in ISO 8601 UTC; null if not recorded. |

## Values

| Field | Values |
| --- | --- |
| `status` | `draft`, `validated`, `voided` |
| `operativeStatus` | `pending`, `signed`, `cancelled` |

## Example

*Contract · Generated from the schema*

```json
{
  "id": "id_8f2a1c",
  "contractNumber": "string",
  "status": "draft",
  "operativeStatus": "pending",
  "signed": true,
  "signedAt": "2026-09-01T08:00:00Z",
  "contactId": "string",
  "orderId": "string",
  "orderNumber": "string",
  "projectId": "string",
  "contractDate": "2026-09-01T08:00:00Z",
  "startDate": "2026-09-01T08:00:00Z",
  "endDate": "2026-09-01T08:00:00Z",
  "grossPrice": "1234.50",
  "createdAt": "2026-09-01T08:00:00Z",
  "updatedAt": "2026-09-01T08:00:00Z"
}
```

## Returned by

- [`GET /api/v1/contracts`](https://docs.filmo.io/rest-api/endpoint-reference/contracts/list-contracts) — List contracts
- [`GET /api/v1/contracts/{contractId}`](https://docs.filmo.io/rest-api/endpoint-reference/contracts/get-a-contract) — Get a contract

## Modified by

- [`POST /api/v1/contracts/{contractId}/validate`](https://docs.filmo.io/rest-api/endpoint-reference/contracts/validate-a-contract) — Validate a contract
- [`POST /api/v1/contracts/{contractId}/sign`](https://docs.filmo.io/rest-api/endpoint-reference/contracts/record-the-signature-of-a-contract) — Record the signature of a contract
- [`POST /api/v1/contracts/{contractId}/void`](https://docs.filmo.io/rest-api/endpoint-reference/contracts/void-a-contract) — Void a contract
- [`POST /api/v1/contracts/{contractId}/cancel`](https://docs.filmo.io/rest-api/endpoint-reference/contracts/cancel-a-contract-operatively) — Cancel a contract operatively

---

Canonical URL: https://docs.filmo.io/rest-api/objects/contract  
Last updated: 2026-10-25