---
title: "Delete time off policy"
method: DELETE
path: "/v2/time_off_policies/{time_off_policy_id}"
tags: ["time_off_policies"]
---

# Delete time off policy

`DELETE /v2/time_off_policies/{time_off_policy_id}`

## Request

- Base URL: `https://api.hubstaff.com`
- URL: `https://api.hubstaff.com/v2/time_off_policies/{time_off_policy_id}`
- Auth: OAuth 2
  - Authorization code: `https://account.hubstaff.com/authorizations/new`
  - Token URL: `https://account.hubstaff.com/access_tokens` scopes: `hubstaff:read`, `hubstaff:write`
- TypeScript: <https://skmtc.dev/hubstaff/apis/hubstaff-v2-api/docs/v2/time_off_policies/:time_off_policy_id/delete.ts> (a function with typed inputs; its response is checked against the schema)

Deletes the time off policy.

A policy cannot be deleted if any of its members have:
- paid time off requests,
- approved time off requests, or
- used time off hours (time off adjustments).

Other balance adjustments (accruals, manual adjustments) do not prevent deletion
and are removed along with the policy.

Use the archive endpoint instead to retire a policy that has been used.

## Path parameters

- `time_off_policy_id` integer, required

## Response `204`

Deletion successful

- object
  - `time_off_policy` TimeOffPolicy: TimeOffPolicy model
    - `id` integer, required: Time off policy ID
    - `organization_id` integer, required: Organization ID
    - `created_at` string, date-time, required: When the record was created
    - `updated_at` string, date-time, required: When the record was last updated
    - `name` string, required: Time off policy name
    - `created_by_id` integer: User ID who created the policy
    - `auto_add_new_users` boolean, required: Automatically add new members to this policy
    - `allow_negative_balances` boolean, required: Member can request time off before having the balance for it.
    - `requires_approval` boolean, required: When false time off requests are automatically approved.
    - `balance_rolls_over_annually` boolean, required: balance rolls over annually
    - `paid` boolean, required: When true members will be paid for time off taken.
    - `status` string, required: Policy status
    - `policy_type` 'none' | 'annual' | 'monthly' | 'hours_worked' | 'joined_date', required: Type of policy. Submitted as `accrual_type` when creating a policy
    - `policy_config` object, required: Accrual configuration. Submitted as `accrual_policy` when creating or updating a policy
      - `starting_balance` number, float: Starting balance (hours)
      - `hours_per` integer: Hours per at amount accrued
      - `hours_worked` integer: Hours worked at amount accrued
      - `maximum_to_accrue` integer: Maximum amount of time off that can be accrued per year. (hours)
      - `hours_per_year` integer: Hours per year
      - `hours_per_month` number, float: Hours per month
      - `accrual_period` 'month' | 'year': Accrual period. If set to "month", hours_per_month is required. If set to "year", hours_per_year is required
      - `accrual_day` 'first_day_of_month' | 'monthly_anniversary' | 'last_day_of_month': Day of the month when accrual happens
      - `prorate_on_start` boolean: Whether to prorate time based on start date
    - `membership_rules` object
      - `countries` unknown, required
      - `employment_types` unknown, required

## Other responses

- `400`: Invalid parameters
- `401`: Unauthorized
- `403`: API access is only for organizations on an active plan
- `404`: Could not find record
- `429`: Rate limit exceeded

## Changes

- **2026-11-06** `c6b90e4e4bdc`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/hubstaff/apis/hubstaff-v2-api/changes/v2/time_off_policies/:time_off_policy_id/delete.md)

---

[API](https://skmtc.dev/hubstaff/apis/hubstaff-v2-api.md) - [All operations](https://skmtc.dev/hubstaff/apis/hubstaff-v2-api/llms.txt) - [OpenAPI document](https://skmtc.dev/hubstaff/apis/hubstaff-v2-api/revisions/c6b90e4e4bdc?raw)
