*Overview › Core concepts*

# Data model

> Orders connect a contact, an optional project and the equipment rented; documents, payments, planning and the catalog hang from them.

Each resource has its own page in the REST API reference (43 object pages), with its fields and the operations that read and write it. Start from the [REST API overview](https://docs.filmo.io/rest-api/overview). The app side of the same model is described in [Data model overview](https://www.filmo.io/help/reference/get-started/understanding-filmos-data-model).

**The data model**
- contract → contact · order · project (contactId · orderId · projectId)
- credit note → contact · invoice (contactId · invoiceId)
- document line → item · order (itemId · orderId)
- incident → item · serialized item · space · vehicle · order · project (itemId · serializedItemId · spaceId · vehicleId · orderId · projectId)
- internal service → project (projectId)
- invoice → order · project (orderId · projectId)
- item → collection (collectionId)
- kit → collection (collectionId)
- opportunity → pipeline (pipelineId)
- order → project (projectId)
- order line → order · item · space (orderId · itemId · spaceId)
- payment → treasury account · contact (treasuryAccountId · contactId)
- planner service → order · project · service · staff member · vehicle · task (orderId · projectId · serviceId · staffMemberId · vehicleId · taskId)
- proforma → order · project (orderId · projectId)
- project → project type · order (projectTypeId · orderIds)
- purchase order → order · project · repair ticket (orderId · projectId · repairTicketId)
- quote → order · project (orderId · projectId)
- repair ticket → order · contact (orderId · contactId)
- serialized item → item · project · contact (itemId · projectId · contactId)
- space → collection (collectionId)
- staff member → collection (collectionId)
- subrent → item · serialized item · order · project · purchase order · space (itemId · serializedItemId · orderId · projectId · purchaseOrderId · spaceId)
- task → project (projectId)
- user → staff member (staffMemberId)
- vehicle → collection (collectionId)
- Generated from the …Id and …Ids fields of the contract's objects: each row lists which other resources an object points to and through which fields.

## Rentals

- A contact is a customer or a supplier. A project groups orders and work for a contact, and an order can belong to a project or stand alone.
- An order carries a contact, a rental period and lines. Lines belong to the order and are read with [`GET /api/v1/orders/{orderId}/lines`](https://docs.filmo.io/rest-api/endpoint-reference/orders/list-the-lines-of-an-order); there is no independent collection of lines.
- [`POST /api/v1/projects/{projectId}/orders/{orderId}`](https://docs.filmo.io/rest-api/endpoint-reference/projects/link-an-order-to-a-project) and [`DELETE /api/v1/projects/{projectId}/orders/{orderId}`](https://docs.filmo.io/rest-api/endpoint-reference/projects/unlink-an-order-from-a-project) attach an order to a project and detach it.
- The order lifecycle (reserve, unreserve, cancel, archive and return of line items) is a set of actions on the order. See Statuses.

## Catalog and stock

- An item is a catalog entry, with variants, accessories and alternatives. Each physical unit is a serialized item of an item.
- A kit is a named group of items that go out together.
- Collections are the tree the catalog is organized by: items, spaces, vehicles, staff and services hang from a collection.
- A space is a warehouse that manages stock or a rentable space, told apart by `isWarehouse`.
- Availability queries check items, staff and vehicles in a date range, and unavailabilities block a resource.

## Documents and money

- Quotes, proformas, contracts, invoices and credit notes are the documents. Their lifecycles are in Statuses.
- Treasury payments go through treasury accounts and are linked to documents with [`POST /api/v1/treasury/payments/{paymentId}/links`](https://docs.filmo.io/rest-api/endpoint-reference/treasury/link-a-payment-to-a-document).
- Purchase orders, supplier invoices and subrents are the buying side; a subrent can link to its purchase order.

## People, fleet and planning

- Staff and vehicles are the resources of the company. Tasks, internal services and the planner use them.
- The planner shows the staff and fleet services to cover in a date range and the assignments that fill them. [`GET /api/v1/schedule`](https://docs.filmo.io/rest-api/endpoint-reference/schedule/get-the-schedule-for-a-range) is a read-only projection of projects, orders, tasks, internal assignments and order services.
- Repair tickets and incidents track what broke and what is quoted for fixing it.

## Sales and automation

- CRM opportunities move through the stages of a pipeline and can be linked to the quote, order or project that came out of them with [`POST /api/v1/crm/opportunities/{opportunityId}/links`](https://docs.filmo.io/rest-api/endpoint-reference/crm/link-a-document-to-an-opportunity). They need the CRM add-on.
- Workflows are listed with [`GET /api/v1/workflows`](https://docs.filmo.io/rest-api/endpoint-reference/workflows/list-workflows). [`POST /api/v1/workflows/{workflowId}/runs`](https://docs.filmo.io/rest-api/endpoint-reference/workflows/run-a-workflow) starts a run, not a workflow: definitions are neither read nor written through the API.

---

Canonical URL: https://docs.filmo.io/concepts/data-model  
Last updated: 2026-10-09