---
title: "Approve or Reject Approval Request"
method: PUT
path: "/timesheets/{timesheet_id}/approval"
tags: ["Timesheets"]
---

# Approve or Reject Approval Request

`PUT /timesheets/{timesheet_id}/approval`

Approve or reject an existing timesheet approval request.

Use this endpoint to act on a request previously created with `POST /timesheets/{timesheet_id}/approval`. The response reflects the resulting approval state.

## Path parameters

- `timesheet_id` number, required

## Request body

- TimesheetApprovalReviewRequest
  - `days` ApprovalHistoryDays
    - `monday` boolean
    - `tuesday` boolean
    - `wednesday` boolean
    - `thursday` boolean
    - `friday` boolean
    - `saturday` boolean
    - `sunday` boolean
  - `status` 'approved' | 'rejected'
  - `comment` string
  - `sendNotification` boolean

## Response `200`

OK

- TimesheetApproval
  - `id` number — Timesheet ID
  - `user` number — User ID
  - `weekId` number
  - `reviewer` number — Reviewer User ID
  - `history` TimesheetApprovalHistory[]
    - `action` 'submitted' | 'rejected' | 'approved' | 'discarded'
    - `days` ApprovalHistoryDays
      - `monday` boolean
      - `tuesday` boolean
      - `wednesday` boolean
      - `thursday` boolean
      - `friday` boolean
      - `saturday` boolean
      - `sunday` boolean
    - `user` number — User ID
    - `comment` string
    - `createdAt` string — Datetime when action was created
  - `status` 'pending' | 'rejected' | 'approved' | 'partial_approved' | 'discarded'
  - `totalTime` integer, nullable — Total approved time in seconds.

## Other responses

- `401` — Unauthorized

---

[API](https://skmtc.net/everhour/apis/everhour-api.md) · [All operations](https://skmtc.net/everhour/apis/everhour-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/everhour/everhour-api/versions/fc6136e33352/schema)
