---
title: "Update employee time off balances"
method: PUT
path: "/v1/time_off_policies/{time_off_policy_uuid}/balance"
tags: ["Time Off Policies"]
---

# Update employee time off balances

`PUT /v1/time_off_policies/{time_off_policy_uuid}/balance`

Updates time off hours balances for employees for a time off policy.

scope: `time_off_policies:write`

## Path parameters

- `time_off_policy_uuid` string, required

## Headers

- `X-Gusto-API-Version` '2026-06-15'

## Request body

- object
  - `employees` object[], required
    - `uuid` string, required — The UUID of the employee
    - `balance` string, required — The new balance for the employee

## Response `200`

successful

- TimeOffPolicy — Representation of a Time Off Policy
  - `uuid` string, required — Unique identifier of a time off policy
  - `company_uuid` string, required — Unique identifier for the company owning the time off policy
  - `name` string, required — Name of the time off policy
  - `policy_type` 'vacation' | 'sick' | 'bereavement' | 'custom' | 'floating_holiday' | 'jury_duty' | 'learning_and_development' | 'parental_leave' | 'personal_day' | 'volunteer' | 'weather', required — Type of the time off policy. Only "vacation" and "sick" can be created through the API, but other types may be present if the company was previously a Gusto.com customer.
  - `accrual_method` string, required — Policy time off accrual method
  - `accrual_rate` string, float, nullable — The rate at which the time off hours will accrue for an employee on the policy. Represented as a float, e.g. "40.0".
  - `accrual_rate_unit` string, float, nullable — The number of hours an employee has to work or be paid for to accrue the number of hours set in the accrual rate. Only used for hourly policies (per_hour_paid, per_hour_paid_no_overtime, per_hour_work, per_hour_worked_no_overtime). Represented as a float, e.g. "40.0".
  - `paid_out_on_termination` boolean — Boolean representing if an employee's accrued time off hours will be paid out on termination
  - `accrual_waiting_period_days` integer, nullable — Number of days before an employee on the policy will begin accruing time off hours
  - `carryover_limit_hours` string, float, nullable — The max number of hours an employee can carryover from one year to the next
  - `max_accrual_hours_per_year` string, float, nullable — The max number of hours an employee can accrue in a year
  - `max_hours` string, float, nullable — The max number of hours an employee can accrue
  - `policy_reset_date` string, nullable — The date the policy resets. Format MM-DD
  - `complete` boolean — boolean representing if a policy has completed configuration
  - `version` string, nullable — The current version of the object. See the [versioning guide](https://docs.gusto.com/embedded-payroll/docs/versioning#object-layer) for information on how to use this field. The version will be null if the policy is no longer active.
  - `is_active` boolean, required — boolean representing if a policy is active or not
  - `employees` object[], required — List of employee UUIDs under a time off policy
    - `uuid` string
    - `balance` string — The time off balance for the employee

## Other responses

- `404` — Not Found
- `422` — Unlimited policy balance update

---

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