*REST API › Objects › Operations*

# Repair ticket

> Repair ticket: what broke and what is quoted to fix it.

A maintenance repair ticket: what broke and what is quoted to the customer for fixing it. `unitPrice` is a sale price, not a cost, because the cost of the repair is not published. It needs the `incidence` add-on. Repair tickets are bounded to the subscription that owns the key. The detail read, [`GET /api/v1/repair-tickets/{ticketId}`](https://docs.filmo.io/rest-api/endpoint-reference/repair-tickets/get-a-repair-ticket), adds the lines, the project, the source incidents and the custom fields.

Schemas: `RepairTicketDto`, `RepairTicketDetailDto`

## Attributes

| Name | Type | Description |
| --- | --- | --- |
| `id` | string | Unique ticket identifier. |
| `number` | string | Ticket number, for example "RT-2026-0001". |
| `date` | string<date-time> | Issue date in ISO 8601 UTC. |
| `status` | string | Status of the ticket in its lifecycle. `draft`, `sent`, `partially_converted`, `fully_invoiced`, `closed` |
| `orderId` | string | Identifier of the order it comes from; null if it was created standalone. |
| `orderNumber` | string | Number of the order it comes from; null if it was created standalone. |
| `contactId` | string | Identifier of the responsible client; null if none has been assigned. |
| `contactName` | string | Name of the responsible client; null if not resolved. |
| `subTotal` | string | Sum of the lines before taxes, as a decimal string "1234.50". |
| `taxTotal` | string | Tax total, as a decimal string "1234.50". |
| `total` | string | Total including taxes, as a decimal string "1234.50". |
| `totalLines` | integer | Number of lines in the ticket. |
| `notes` | string | General remarks; null if it has none. |
| `createdAt` | string<date-time> | Creation date in ISO 8601 UTC. |
| `updatedAt` | string<date-time> | Last modification date in ISO 8601 UTC. |
| `projectId` | string | Identifier of the associated project; null if it has none. |
| `lines` | object[] | Ticket lines. |
| `lines.id` | string | Unique line identifier. |
| `lines.entityType` | string | Type of element being repaired: item, serializedItem (a specific unit), space or kit; null for a free line (a service, a charge). `item`, `serializedItem`, `space`, `kit` |
| `lines.entityId` | string | Identifier of the element being repaired; null if it is a free line. |
| `lines.entityName` | string | Name of the element being repaired; null if not resolved. |
| `lines.description` | string | What needs to be repaired. |
| `lines.diagnosis` | string | Technical diagnosis; null if none has been recorded. |
| `lines.quantity` | number | Affected units; null if not applicable. |
| `lines.unitPrice` | string | NET unit price quoted to the client, as a decimal string "1234.50". It is not the repair cost: that one is not published. null if the line has no price. |
| `lines.incidentId` | string | Identifier of the incident that originated this line; null if it does not come from one. |
| `lines.notes` | string | Line notes; null if it has none. |
| `sourceIncidentIds` | string[] | Identifiers of the incidents that originated the ticket. |
| `customFields` | object<string, any> | Custom field values by custom field identifier; the definitions are in `/api/v1/custom-fields`. |

## Values

| Field | Values |
| --- | --- |
| `status` | `draft`, `sent`, `partially_converted`, `fully_invoiced`, `closed` |

## Example

*Repair ticket · Generated from the schema*

```json
{
  "id": "id_8f2a1c",
  "number": "string",
  "date": "2026-09-01T08:00:00Z",
  "status": "draft",
  "orderId": "string",
  "orderNumber": "string",
  "contactId": "string",
  "contactName": "Example",
  "subTotal": "1234.50",
  "taxTotal": "1234.50",
  "total": "1234.50",
  "totalLines": 1,
  "notes": "string",
  "createdAt": "2026-09-01T08:00:00Z",
  "updatedAt": "2026-09-01T08:00:00Z",
  "projectId": "string",
  "lines": [
    {
      "id": "id_8f2a1c",
      "entityType": "item",
      "entityId": "string",
      "entityName": "Example",
      "description": "string",
      "diagnosis": "string",
      "quantity": 1,
      "unitPrice": "1234.50",
      "incidentId": "string",
      "notes": "string"
    }
  ],
  "sourceIncidentIds": [
    "string"
  ],
  "customFields": {
    "key": "string"
  }
}
```

## Returned by

- [`GET /api/v1/repair-tickets`](https://docs.filmo.io/rest-api/endpoint-reference/repair-tickets/list-repair-tickets) — List repair tickets
- [`GET /api/v1/repair-tickets/{ticketId}`](https://docs.filmo.io/rest-api/endpoint-reference/repair-tickets/get-a-repair-ticket) — Get a repair ticket

## Modified by

- [`POST /api/v1/repair-tickets`](https://docs.filmo.io/rest-api/endpoint-reference/repair-tickets/create-a-repair-ticket) — Create a repair ticket
- [`PATCH /api/v1/repair-tickets/{ticketId}`](https://docs.filmo.io/rest-api/endpoint-reference/repair-tickets/update-a-repair-ticket) — Update a repair ticket

---

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