> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.yunojuno.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.yunojuno.com/_mcp/server.

# Timesheeting

## What is a Timesheet?

A timesheet represents a single billing period on a contract — one calendar week, running Monday to Sunday. Timesheets are generated automatically by the platform for every week within a contract's active period; neither you nor the contractor needs to create them manually.

The contractor fills in what they worked during that week and submits it. You then review and approve or reject it. Once approved, the timesheet triggers invoicing and payroll.

---

## Actors

| Actor                       | Role                                                                                                             |
| --------------------------- | ---------------------------------------------------------------------------------------------------------------- |
| **Contractor**              | Fills in time entries and expenses, submits the timesheet, and can recall or skip it if needed.                  |
| **Hirer**                   | Reviews submitted timesheets and approves or rejects them.                                                       |
| **Platform (automated)**    | Generates timesheets at the start of each week, and auto-approves timesheets where your configuration allows it. |
| **Third party integration** | Third party integrations can generate and submit approved timesheets directly into the YunoJuno platform.        |

---

## Timesheet States

| State         | What it means                                                                                                                                    |
| ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| `DRAFT`       | The timesheet has been generated but the contractor has not yet submitted it. Entries can be added and edited freely.                            |
| `SUBMITTED`   | The contractor has submitted the timesheet. It is awaiting approval or rejection.                                                                |
| `RESUBMITTED` | The hirer rejected the timesheet and the contractor has submitted a corrected version. Treated identically to `SUBMITTED` for approval purposes. |
| `APPROVED`    | The timesheet has been fully approved. Invoicing and payroll are triggered.                                                                      |
| `ZERO_TIME`   | The contractor indicated they did no billable work this period (a "skip").                                                                       |
| `REJECTED`    | The hirer rejected the timesheet. The contractor must edit and resubmit.                                                                         |
| `VOID`        | The timesheet has been administratively cancelled. No billing occurs.                                                                            |

---

## Lifecycle Overview

```mermaid
flowchart TD
    Gen["Auto-generated"]
    Draft["DRAFT"]
    Zero["ZERO_TIME"]
    Submitted["SUBMITTED"]
    Resubmitted["RESUBMITTED"]
    Rejected["REJECTED"]
    Approved["APPROVED"]
    Invoice["Invoicing & payroll"]

    Gen --> Draft
    Draft -->|skip| Zero
    Draft -->|submit| Submitted
    Zero -.->|recall| Draft
    Submitted -.->|recall| Draft
    Submitted -->|approve| Approved
    Submitted -->|reject| Rejected
    Rejected -->|contractor resubmits| Resubmitted
    Resubmitted -->|approve| Approved
    Resubmitted -->|reject| Rejected
    Approved --> Invoice
```

---

## How the Approval Flow Works

Timesheets which are managed by the YunoJuno platform follow this workflow.

1. **Timesheet generated** — at the start of each contract week, the platform automatically creates a timesheet in the `DRAFT` state.

2. **Contractor fills in entries** — the contractor logs their time (and any expenses) and submits the timesheet. It moves to `SUBMITTED`.

3. **Hirer review and decision:**
   * **Approve** — the timesheet moves to `APPROVED` and invoicing and payroll are triggered. A PDF record is generated.
   * **Reject** — the timesheet moves to `REJECTED`. The contractor is notified and must correct and resubmit.

4. **Resubmission** — when the contractor resubmits after rejection, the timesheet moves to `RESUBMITTED` and follows exactly the same approval path as a fresh submission.

Third party integrations submit timesheets in the `APPROVED` state.

---

## Skip and Recall

### Skipping a Timesheet

If a contractor did no billable work during a period, they can **skip** the timesheet rather than submitting zero hours. This moves the timesheet to `ZERO_TIME`.

### Recalling a Timesheet

If a contractor needs to correct a submission before you have approved it, they can **recall** it. This returns the timesheet to `DRAFT` so they can edit and resubmit.

---

## Timesheet Entries

Each timesheet contains one or more **entries** representing individual units of work or cost within the billing period.

| Entry type   | What it represents                                                             |
| ------------ | ------------------------------------------------------------------------------ |
| `STANDARD`   | Regular billable time for the period.                                          |
| `OVERTIME`   | Overtime hours beyond the standard working day, billed at a the overtime rate. |
| `ADJUSTMENT` | A positive lump sum, often used for corrections.                               |
| `EXPENSE`    | A claimed expense submitted by the contractor, with a proof document.          |

---

## What Happens on Approval

When you approve a timesheet:

* The timesheet moves to `APPROVED`.
* Invoicing is triggered, starting our billing process.