---
title: "Cancel Time Off Request"
method: POST
path: "/api/v1/time-off/requests/{id}/cancellations"
tags: ["Time Off", "Public API"]
---

# Cancel Time Off Request

`POST /api/v1/time-off/requests/{id}/cancellations`

## Request

- Base URL: `https://companySubDomain.bamboohr.com`
- URL: `https://companySubDomain.bamboohr.com/api/v1/time-off/requests/{id}/cancellations`
- Auth: one of:
  - HTTP basic
  - OAuth 2
    - Authorization code: `/authorize.php`
    - Token URL: `/token.php` scopes: `time_off:requests.write`
- TypeScript: <https://skmtc.dev/bamboohr/apis/bamboohr-api/docs/api/v1/time-off/requests/:id/cancellations/post.ts> (a function with typed inputs; its response is checked against the schema)

Cancels a time off request. Available to the employee who requested the time off and to anyone with authority to manage it. A request can be canceled while it is REQUESTED, and after approval only while it has not started yet. Takes no request body.

OAuth Scopes: time_off:requests.write

## Path parameters

- `id` integer, required

## Query parameters

- `returnActions` boolean

## Response `200`

The updated time off request.

- TimeOffRequestV1: A request of time off to be taken by an employee.
  - `id` integer: The unique identifier for the time off request.
  - `employeeId` integer: The id of the employee requesting time off.
  - `categoryId` integer: The id of the time off category for the request.
  - `startDate` string, date: The date the time off starts, in ISO 8601 format (YYYY-MM-DD).
  - `endDate` string, date: The date the time off ends, in ISO 8601 format (YYYY-MM-DD).
  - `amount` number: The amount of time off requested, measured in the unit defined by the time off category (e.g. 3.5 days if the unit is days, or 3.5 hours if the unit is hours).
  - `unit` 'HOURS' | 'DAYS': The unit of measurement for the time off request.
  - `status` 'REQUESTED' | 'APPROVED' | 'DENIED' | 'CANCELED': The status of the time off request.
  - `requestedAt` string, date-time: UTC timestamp when the time off request was requested.
  - `dailyAmounts` TimeOffRequestDailyAmountV1[]: The amount of time off requested per day.
    - `date` string, date: The date, in ISO 8601 format (YYYY-MM-DD).
    - `amount` number: The amount of time off requested on this day, measured in the request unit.
  - `employeeNote` string, nullable: The free-form note left by the employee who requested the time off. Null when never set.
  - `managerNote` string, nullable: The manager's note left when the request was approved or denied. Null when never set.
  - `statusUpdatedAt` string, date-time, nullable: UTC timestamp when the status was last updated. Null when the status has never changed.
  - `statusUpdatedBy` integer, nullable: The id of the user who last updated the status. Null when the status has never changed.
  - `_links` object: The state transitions available to the caller for this request. Only present when the request was made with `returnActions=true`. `self` is always present when the block is returned, and the absence of a transition is authoritative: calling it anyway returns 403 or 409.

## Other responses

- `401`: Unauthorized. Missing or invalid authentication.
- `403`: Forbidden. The caller cannot cancel this time off request.
- `404`: The time off request does not exist.
- `409`: The request is already denied or canceled, or it is approved and has already started.
- `422`: Invalid time off request id, or the employment provider that manages this time off refused the cancellation.

## Changes

- **2026-11-03** `922fc15f43a7`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/bamboohr/apis/bamboohr-api/changes/api/v1/time-off/requests/:id/cancellations/post.md)

---

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