---
title: "Create a time off ledger entry"
method: POST
path: "/v1/org/{orgId}/timeoff-ledger"
tags: ["Time off ledger"]
---

# Create a time off ledger entry

`POST /v1/org/{orgId}/timeoff-ledger`

## Path parameters

- `orgId` string, required

## Request body

- CreateTimeOffLedgerEntry — Time off ledger entry
  - `orgId` string, required — org that the time off belongs to
  - `personId` string, required — person taking the time off
  - `timeOffPolicyId` string — Time off policy to which this entry pertains.
  - `entryType` 'EXPIRATION' | 'BALANCE_RESET' | 'CARRYOVER' | 'UPFRONT_BALANCE' | 'ACCRUAL' | 'ADJUSTMENT' | 'TIME_OFF', required — Ledger entry type
  - `externalId` string — external identifier, if this entry exists in an external system
  - `fromDate` string, date — For time off, from date of time off, inclusive
  - `fromDatePartialDay` number — For time off, portion of the from date to take
  - `fromDatePartialDayPeriod` 'AM' | 'PM' — Portion of the from day requested (e.g. AM or PM)
  - `untilDate` string, date — For time off, until date of time off, exclusive
  - `endDatePartialDay` number — For time off, portion of the end date (day before the until date) to take
  - `endDatePartialDayPeriod` 'AM' | 'PM' — Portion of the end day requested (e.g. AM or PM)
  - `date` string, date, required — date on which this entry appears in the ledger
  - `days` number, required — Change to the balance made by this ledger entry. This value is always nonnegative; it is interpreted in the context of entryAction.
  - `hours` number — For time off, number of hours taken
  - `entryAction` 'SET' | 'MIN' | 'EXPIRE' | 'CARRYOVER' | 'ADD' | 'ADD_CLAMP' | 'SUBTRACT', required — Action this entry takes on the balance.
  - `typeDescription` string — type of time off
  - `note` string — notes on the time off
  - `approval` 'APPROVED' | 'PENDING' | 'CANCELLED' | 'REJECTED' | 'SUPERSEDED' — approval status of the time off
  - `approvalAt` string — timestamp of approval
  - `approvalUserId` string — user who either is the next one requesting approval, or the user who did the final approval or rejection
  - `createId` string — created by user id
  - `createAt` string — created timestamp
  - `requestAt` string — requested at timestamp -- often the same as createAt

## Response `201`

ledger entry created

## Other responses

- `400` — bad request
- `401` — not authorized
- `403` — forbidden

---

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