Payroll

List the company's employees as short-info entries, filtered and sorted.

Returns a lightweight directory of the authenticated company's employees (id, name, email, employee number, workplace, status), resolved from the compensation and person records. Each entry's <code>id</code> is the <code>employeeId</code> consumed by other employee-scoped endpoints (e.g. <code>GET /payroll/employees/{employeeId}/addable-salary-items</code>) — call this endpoint first to resolve an employee's id. Results can be narrowed with a free-text <code>search-key</code> (matched against name, employee number and email), restricted to specific workplaces via <code>workplace-ids</code>, and filtered by contract <code>status</code>; ordering is controlled by <code>sort-field</code> and <code>sort-direction</code>. The tenant and company are derived from the authenticated token; the caller must hold the <code>COMPENSATION_GET_EMPLOYEE</code> permission on that company.

get/core/v1/employees/short-info

Request

  • Base URL: https://api.klara.ch
  • URL: https://api.klara.ch/core/v1/employees/short-info
  • Auth: one of:
    • API key in header X-API-KEY
    • HTTP bearer

Query parameters

filter-by-status'ALL' | 'ACTIVE' | 'INACTIVE' | 'DRAFT'

Contract-status filter. Allowed values: ALL, ACTIVE, INACTIVE, DRAFT. Defaults to ALL.

Example:ALL

Renamed to <code>status</code>. This name is accepted until <b>2027-09-01</b>; when both are sent, <code>status</code> wins. After that date, a request sending <code>filter-by-status</code> without <code>status</code> is rejected with <b>400</b>.<br/><br/><strong>Deprecated</strong> — use <code>status</code> instead. Contract-status filter. Allowed values: ALL, ACTIVE, INACTIVE, DRAFT. Defaults to ALL.

search-keystring

Case-insensitive substring matched against the employee's full name, employee number and email. When omitted, no text filter is applied.

sort-direction'ASC' | 'DESC'

Sort direction. Allowed values: ASC, DESC.

sort-field'NAME' | 'EMAIL' | 'EMPLOYEE_NUMBER'

Field to sort the employee listing by. Allowed values: NAME, EMAIL, EMPLOYEE_NUMBER.

Example:NAME

Field to sort by. Allowed values: NAME, EMAIL, EMPLOYEE_NUMBER. Defaults to NAME.

status'ALL' | 'ACTIVE' | 'INACTIVE' | 'DRAFT'

Contract-status filter. Allowed values: ALL, ACTIVE, INACTIVE, DRAFT. Defaults to ALL.

Example:ALL
workplace-idsinteger[]

Restrict results to employees whose current contract workplace is in this set. Repeat the parameter for multiple ids (e.g. workplace-ids=12&workplace-ids=13). When omitted, employees of all workplaces are returned.

Response

Successful operation

idinteger

Employee id. Use this as employeeId in employee-scoped endpoints.

firstNamestring

Employee's first name (resolved from the person record).

lastNamestring

Employee's last name (resolved from the person record).

employeeNumberstring

Company-assigned employee number.

emailstring

Employee's primary email (resolved from the person record).

workplaceIdinteger

Id of the workplace of the employee's current contract.

personnelNumberstring

Personnel number of the employee.

numberOfChildreninteger

<b>Deprecated and not populated. Always returns <code>0</code>; do not read this field.</b> It was published in error — the employee directory does not carry family data — and the compensation service has never supplied a value for it. Scheduled for removal in <code>/core/v2</code>; it is retained here only so the published <code>/core/v1</code> response shape is not altered.

cashPaymentboolean

<b>Deprecated and not populated. Always returns <code>false</code>; do not read this field.</b> It was published in error — the employee directory does not carry payment arrangements — and the compensation service has never supplied a value for it. Scheduled for removal in <code>/core/v2</code>; it is retained here only so the published <code>/core/v1</code> response shape is not altered.

statusstring

Contract status of the employee. Allowed values: ACTIVE, INACTIVE, DRAFT.

Example response

[
  {
    "id": 3487,
    "firstName": "Anna",
    "lastName": "Müller",
    "employeeNumber": "E-00123",
    "email": "anna.mueller@example.com",
    "workplaceId": 12,
    "personnelNumber": "P-4711",
    "status": "ACTIVE"
  }
]

Changes

No recorded changes to this operation across all 1 revision of this API.