---
title: "Updates an existing project timesheet category assignment, including billable status, rate, and budget hours. Optionally cascades rate changes to existing schedule bookings via ScheduleRateUpdateOption and to existing timesheet entries via TimesheetRateUpdateOption."
method: PUT
path: "/api/ProjectTimesheetCategory"
tags: ["ProjectTimesheetCategory"]
---

# Updates an existing project timesheet category assignment, including billable status, rate, and budget hours. Optionally cascades rate changes to existing schedule bookings via ScheduleRateUpdateOption and to existing timesheet entries via TimesheetRateUpdateOption.

`PUT /api/ProjectTimesheetCategory`

## Request body

- AssignProjectTimesheetCategory — Request model for assigning or updating a timesheet category on a project.
  - `ProjectIDFK` integer — The project ID to assign the category to.
  - `TimesheetCategoryIDFK` integer — The timesheet category ID to assign to the project.
  - `isBillable` boolean — Whether time logged under this category is billable.
  - `isPayable` boolean — Whether time logged under this category is payable.
  - `RateAmount` number, double — The billing rate per hour for this category on this project.
  - `BudgetHours` number, double — Hours budget for this category on this project.
  - `CostAmount` number, double — The cost rate per hour for this category on this project.
  - `ScheduleRateUpdateOption` string — Controls whether updated rates are applied to existing schedule bookings for this category. Possible values: "new" (default, only new bookings), "all" (all existing bookings), "active" (bookings with end date in the future).
  - `TimesheetRateUpdateOption` string — Controls whether updated rates are applied to existing timesheet entries for this category. Possible values: "new" (default, do not update existing timesheets), "uninvoiced" (update all existing uninvoiced timesheets).

## Response `200`

Returns the updated timesheet category assignment.

- ProjectTimesheetCategoryDetails — A timesheet/billing category assigned to a project, with billable status, rate, and budget hours.
  - `TimeSheetCategoryIDFK` integer — The timesheet category ID.
  - `AccountIDFK` integer — The Avaza account this category belongs to.
  - `ProjectIDFK` integer — The project this category is assigned to.
  - `Name` string — Name of the timesheet category.
  - `isBillable` boolean — Whether time logged under this category is billable.
  - `isPayable` boolean — Whether time logged under this category is payable.
  - `isDisabled` boolean — Whether this category assignment is disabled.
  - `RateAmount` number, double — The billing rate per hour for this category on this project.
  - `BudgetHours` number, double — Hours budget for this category on this project.
  - `CostAmount` number, double — The cost rate per hour for this category on this project.

---

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