---
title: "Create a time off entry"
method: POST
path: "/time-off/entries"
---

# Create a time off entry

`POST /time-off/entries`

## Request

- Base URL: `https://sandbox.checkhq.com`
- URL: `https://sandbox.checkhq.com/time-off/entries`
- Auth: API key in header `Authorization`
- TypeScript: <https://skmtc.dev/checkhq/apis/check-api/docs/time-off/entries/post.ts> (a function with typed inputs; its response is checked against the schema)

Creates a manual time off entry, which adds hours to or removes hours from an assignment's balance. Use manual entries for starting balances, bonus hours, hours tracked in an external system, or corrections. The entry's `source` is `manual`.

## Request body

- object
  - `assignment` string, required: ID of the assignment whose balance the entry changes.
  - `hours` string, decimal, required: The change to the balance, in hours. Positive values are accrued; negative values are spent.
  - `metadata` object: Additional loosely structured information to associate with the object.

## Response `200`

200

- TimeOffEntry
  - `id` string: Unique identifier for the entry.
  - `assignment` string: ID of the assignment whose balance the entry changes.
  - `policy` string: ID of the assignment's policy.
  - `policy_name` string: Name of the assignment's policy.
  - `employee` string: ID of the assignment's employee.
  - `hours` string, decimal: The change to the balance, in hours. Positive values are accrued; negative values are spent.
  - `source` 'payroll' | 'annual_grant' | 'expiration' | 'manual': How the entry was created. `payroll` entries come from accrual or hours spent on a payroll; `annual_grant` entries from the lump sum granted at the start of a policy year; `expiration` entries from unused hours above `max_rollover` expiring at the end of a policy year; and `manual` entries were created through the API.
  - `payroll` string, nullable: ID of the payroll that created the entry, if `source` is `payroll`.
  - `created_at` string, date-time: When the entry was created.
  - `metadata` object: Additional loosely structured information to associate with the object.

## Other responses

- `400`: 400

## Changes

- **2026-11-03** `5a54f5eb888b`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/checkhq/apis/check-api/changes/time-off/entries/post.md)

---

[API](https://skmtc.dev/checkhq/apis/check-api.md) - [All operations](https://skmtc.dev/checkhq/apis/check-api/llms.txt) - [OpenAPI document](https://skmtc.dev/checkhq/apis/check-api/revisions/5a54f5eb888b?raw)
