> ## Documentation Index
> Fetch the complete documentation index at: https://exsited.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Timesheets

> Manage timesheets in Exsited: record time worked against booked order lines, then list, read, update or delete it.

Timesheets record the time a labour worked on a booked order line. You can list, create, retrieve, update and delete them. This area has 5 endpoints, each available in all seven SDKs.

> [!WARNING]
>
> **Deleting a timesheet cannot be undone.** After a delete, reading the timesheet returns `404`.

## At a glance

| Endpoint | Method | Path | What it does |
| - | - | - | - |
| [List timesheets](https://exsited.mintlify.site/api-reference/timesheets/list-timesheets.md) | GET | `/timesheets` | Lists timesheets, one page at a time. |
| [Create a timesheet](https://exsited.mintlify.site/api-reference/timesheets/create-a-timesheet.md) | POST | `/timesheets` | Records time worked against a booked order line and returns the timesheet under `timesheet`. |
| [Delete a timesheet](https://exsited.mintlify.site/api-reference/timesheets/delete-a-timesheet.md) | DELETE | `/timesheets/{timesheet_id}` | Deletes a timesheet; the response has no body. |
| [Update a timesheet](https://exsited.mintlify.site/api-reference/timesheets/update-a-timesheet.md) | PATCH | `/timesheets/{timesheet_id}` | Changes a timesheet's times and returns it under `timesheet`. |
| [Retrieve a timesheet](https://exsited.mintlify.site/api-reference/timesheets/retrieve-a-timesheet.md) | GET | `/timesheets/{timesheet_id}` | Retrieves one timesheet by its `ts_` id. |

## Before you call

Register your API credentials once when your app starts, as shown in
[Authentication](https://exsited.mintlify.site/authentication.md). Every SDK sample on these pages then gets its client in one line.
With cURL, send the access token in an `Authorization` header: `Authorization: Bearer $ACCESS_TOKEN`.

## Things to know

* **Request bodies go under `timesheet`.** The create and the update wrap their fields in a `timesheet` object, and every single-timesheet response returns it under `timesheet`.
* **A timesheet belongs to a booked order line.** `sale_order_item` is the line's `ln_` id with the prefix changed to `soi_`, on a line that books a labour.
* **Times are ISO 8601 in UTC.** Send `start_time` and `end_time` as values such as `2026-11-09T09:00:00Z`.
* **Timesheet ids start with `ts_`.** The `created_timesheet_id` path parameter takes that `id`, as the create and the listing return it.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.