---
title: "Approve timesheet"
method: POST
path: "/v1/timesheets/{timesheet_id}/approve"
tags: ["Timesheets"]
---

# Approve timesheet

`POST /v1/timesheets/{timesheet_id}/approve`

Approves the given timesheet.

## Scopes

| Category | Read only Scope | Write only Scope (read access implicit) |
|---|---|---|
| Manage timeoffs (`time_and_attendance`) | - | Manage timesheets (`timesheet:write`) |

## Path parameters

- `timesheet_id` string, required

## Response `200`

Success

- MinimalTimesheetResponse — Response containing a minimal timesheet representation, returned after create and approve operations.
  - `data` object
    - `timesheet` MinimalTimesheet, required — A lightweight timesheet representation returned after create and approve operations. Contains basic identification and status fields but not the detailed hours breakdown or time tracking entries.
      - `approval_required` boolean, required — Whether this timesheet requires explicit approval before processing.
      - `country_code` string, required — Country code according to ISO 3166-1 3-digit alphabetic codes.
      - `employment_id` string, uuid, required — Identifier of the employment being terminated.
      - `end_date` string, date, required — UTC date in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format
      - `id` string, uuid, required — Identifier of the employment being terminated.
      - `notes` string, nullable, required — Optional notes added by the employee.
      - `start_date` string, date, required — UTC date in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format
      - `status` 'open' | 'submitted' | 'approved' | 'in_calibration' | 'processed', required — The current status of a timesheet in its lifecycle. - `open`: The timesheet is a draft and only visible to the employee. It has not been submitted yet. - `submitted`: The employee has submitted the timesheet for review. It is awaiting approval. - `approved`: The timesheet has been approved and will be included in the next payroll run. - `in_calibration`: The timesheet was sent back to the employee for revision. The employee needs to correct and resubmit it. - `processed`: The timesheet has been processed as part of a payroll run. This is a terminal state.
      - `submitted_at` string, datetime, nullable, required — The timestamp when the employee submitted this timesheet. Null if not yet submitted.

## Other responses

- `401` — Unauthorized
- `404` — Not Found
- `422` — Unprocessable Entity

---

[API](https://skmtc.net/remote-com/apis/remote.md) · [All operations](https://skmtc.net/remote-com/apis/remote/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/remote-com/remote/revisions/7e6a0c61ac82/schema)
