Skip to content
GET /unified/hris/timeoff_balances/{id}

Path Parameters

idstring
required·

The ID of the resource.

Example: 23423523

Query Parameters

Refer Specifying query parameters in Truto APIs

reference_datestring

HR WORKS-specific: the reference date of the leave account (referenceDate, YYYY-MM-DD), as on the list. Accepts a date (YYYY-MM-DD), a date-time (only the date part is sent) or the operator forms [eq]/[gte]/[gt] and [eq]/[lte]/[lt]; gt and lt are treated as inclusive, because HR WORKS's window is inclusive. Several values, [ne] or a nested object are refused with a 400. HR WORKS keeps one annual-leave account per person: balance is its unplanned value ("The number of unplanned/still available vacation days"), counted in days. The entitlement, requested, approved, planned and expiring counters and the next expiration date have nowhere to land in the unified model and stay in remote_data. There is no link to a timeoff_policy: HR WORKS does not expose which vacation type a person is assigned to. The id is the identifier HR WORKS itself keys its leave-account list by (timeoff_balances.list publishes exactly that), and an employees.id (person uuid) is accepted too: Truto resolves either against the company's person list and sends the personnel number HR WORKS wants in the path. An identifier that two different persons match — one person's HR WORKS username can be another's personnel number — is refused with a 400 rather than read for the wrong person, and an identifier nobody matches is a 404. This resolution needs read permission for /persons: without it the call is refused with HR WORKS's own status and a message naming the endpoint, because GET /v2/persons/{personnelNumber}/leave-account takes nothing but a personnel number.

1 supported
HR WORKS
supported
Show Truto-specific parameters
integrated_account_idstring · uuid
required·

The ID of the integrated account to use for the request.

Example: 62f44730-dd91-461e-bd6a-aedd9e0ad79d
truto_response_formatstring

The format of the response.

  • unified returns the response with unified mappings applied.
  • raw returns the unprocessed, raw response from the remote API.
  • normalized applies the unified mappings and returns the data in a normalized format.
  • stream returns the response as a stream, which is ideal for transmitting large datasets, files, or binary data. Using streaming mode helps to efficiently handle large payloads or real-time data flows without requiring the entire data to be buffered in memory.
  • debug returns the final unified result alongside raw remote fetch information. The response is an envelope containing result (identical to unified mode output) and debug (with requestUrl, requestOptions, data, responseHeaders, and for list operations: nextCursor, isLooping, isEmptyResult, resultCount). When the upstream body exceeds 1 MiB, data is replaced by { truto_truncated: true, truto_max_bytes, truto_excerpt }. debug is null for static responses or when truto_skip_api_call=true.

Defaults to unified.

Example: unified
Possible values:
unifiedrawnormalizedstreamdebug
truto_ignore_remote_databoolean

Excludes the remote_data attribute from the response.

truto_exclude_fieldsstring[]

Array of fields to exclude from the response.

Example: truto_exclude_fields[]=id&truto_exclude_fields[]=name
remote_queryRecord<string, any>

Query parameters to pass to the underlying API without any transformations. Refer this guide to see how to structure the query parameters.

Example: remote_query[foo]=bar

Response Body

idstring
required·

The unique identifier for time off balances

1 supported
HR WORKS
supported
balancenumber

This represents the balance of the time off request.

1 supported
HR WORKS
supported
created_atstring · date-time

This represents the date when the timeoffbalances was created

employeeobject

This represents the employee the balance belongs to..

References: Employees → id
1 supported
HR WORKS
supported
idstring

The unique identifier for employees

namestring

This represents the name of the employee.

remote_dataRecord<string, any>

Raw data returned from the remote API call.

timeoff_policystring

This represents the time off policy of the time off request.

updated_atstring · date-time

This represents the date when the timeoffbalances was updated

truto unified hris timeoffbalances '<resource_id>' \
  -m get \
  -a '<integrated_account_id>' \
  -o json
import Truto from '@truto/truto-ts-sdk';

const truto = new Truto({
  token: '<your_api_token>',
});

const result = await truto.unifiedApi.get(
  'hris',
  'timeoffbalances',
  '<resource_id>',
  { integrated_account_id: '<integrated_account_id>' }
);

console.log(result);
import asyncio
from truto_python_sdk import TrutoApi

truto_api = TrutoApi(token="<your_api_token>")

async def main():
    result = await truto_api.unified_api.get(
        "hris",
        "timeoffbalances",
        "<resource_id>",
        {"integrated_account_id": "<integrated_account_id>"}
    )
    print(result)

asyncio.run(main())
curl -X GET 'https://api.truto.one/unified/hris/timeoff_balances/{id}?integrated_account_id=<integrated_account_id>' \
  -H 'Authorization: Bearer <your_api_token>' \
  -H 'Content-Type: application/json'
const integratedAccountId = '<integrated_account_id>';

const response = await fetch(`https://api.truto.one/unified/hris/timeoff_balances/{id}?integrated_account_id=${integratedAccountId}`, {
  method: 'GET',
  headers: {
    'Authorization': 'Bearer <your_api_token>',
    'Content-Type': 'application/json',
  },
});

const data = await response.json();
console.log(data);
import requests

url = "https://api.truto.one/unified/hris/timeoff_balances/{id}"
headers = {
    "Authorization": "Bearer <your_api_token>",
    "Content-Type": "application/json",
}
params = {
    "integrated_account_id": "<integrated_account_id>"
}

response = requests.get(url, headers=headers, params=params)
print(response.json())