2027-01-01 Release Notes

Compensations > Payroll run participant

Payroll run participant — an employee taking part in a regular payroll run, whose payroll results can be imported through compensations/payroll_results bulk_create

New Endpoint

CostCenters > Resource distribution

How the cost of a record, such as an expense, is split across cost centers: one row per cost center with its share. When an expense keeps its employee's default cost centers, the rows are the employee's split in force on the expense date; when it was charged to other cost centers, they are the ones set on the expense. Records the caller cannot read are left out. Resolve cost_center_id with the finance/cost_centers resource.

New Endpoint

Documents > Document

Documents

Request

New Field deleted_by_id has been added
Access identifier recorded as the one who moved the documents to the trash bin, refers to /employees/employees endpoint. required for api key requests; requests made on behalf of a user ignore it and record that user.

Employees > Employee

An employee of the company — their identity, organisational placement (manager, teams, location, legal entity) and lifecycle (active, terminating, terminated). The central record the rest of the HR data hangs off.

Request

New Field identifiers has been added
Return only the employees whose identity document (the identifier field: national id, nie, passport…) is one of these. dots, dashes, spaces, letter case and leading zeros are ignored, so 12.345.678-z and 0012345678z both find an employee stored as 12345678z. at most 100 values. combined with social_security_numbers, an employee has to match both. terminated employees you can see are matched too; add only_active to leave them out. only employees whose personal information you can read are matched.

New Field social_security_numbers has been added
Return only the employees whose social security number (the social_security_number field; in spain, the nuss or naf) is one of these. anything other than a digit is ignored, and so are leading zeros, so 08/08511662/35 finds an employee stored as 080851166235. at most 100 values. combined with identifiers, an employee has to match both. terminated employees you can see are matched too; add only_active to leave them out. only employees whose personal information you can read are matched.

EmployeeUpdates > Contract change

Employee update in contract changes

All Responses

New Field type has been added
The kind of contract change. contract is an update to the contract conditions. contract_deactivation and contract_reactivation close and reopen an activity period of a fixed-discontinuous contract, and carry the conditions of the contract version in force on that date.

New Field activity_changed_on has been added
The date the activity period closed or reopened, for a contract_deactivation or contract_reactivation. null for a plain contract change, whose date is effective_on. the other dates on this payload belong to the contract version in force on this date, not to the activity change itself.

Finance > Financial document

Financial Document is a document that represents a financial transaction. Could be an invoice, a credit note or receipt.

All Responses

New Field approval_rejected_at has been added
When the current review round of the finance approval flow turned this purchase invoice down. a rejection is terminal for its own round -- the document stops being editable and deletable, and a correction goes through a credit note rather than a second review of the same round -- but it is not terminal for the document: a new round can open, for instance when the expense behind the invoice is restarted, and opening one clears this field. so it can go back to null. null also on a document that was approved, is still pending a decision, or never entered the flow.

New Field approval_approved_at has been added
When the current review round of the finance approval flow approved this purchase invoice. not the same question as validated_at: approving through the finance action seals both, but a document can be validated on its own through an update, and one that never entered the flow is neither. like its counterpart it reports the current round only, so opening a new one clears it and it can go back to null.

JobCatalog > Node attribute

JobCatalog Node Attributes

All Responses

New Field value_additional_compensation has been added
Additional-compensation payload with amount strategy, currency, recurrence and either a single amount or a min/max range (cents). the payroll concept is identified by the attribute's id (attribute_id), not the payload. internal only for now (not exposed in public rest responses).

ProjectManagement > Project

A project of the company — a named initiative (internal or for a client) that time and costs are tracked against. Expenses, time records and budgets can be charged to a project; billable projects recharge those costs to a client.

Request

New Field restrict_booking_by_phase has been added
When true, employees can only book time on the subprojects (phases) they are assigned to. leave it out to keep the current value.

All Responses

New Field restrict_booking_by_phase has been added
When true (and the phase assignment feature is enabled for the company), employees can only book time on the subprojects (phases) they are assigned to.

ProjectManagement > Subproject worker

Project Management Subproject Workers

New Endpoint

New Endpoint

New Endpoint

New Endpoint

New Endpoint

Timeoff > Allowance

An Allowance represents how a Time off counter accrues and deducts days.

All Responses

New Field limit_negative_counter_type has been added
How far the counter is allowed to go negative when negative_counter_type is negative_counter_enabled. "no_limit" allows any negative balance; "limit_negative_counter" only allows a negative the next cycle can cover. always set when negative counters are enabled; null when they are disabled.

Timeoff > Allowance incidence

Timeoff allowance incidence

New Endpoint

New Endpoint

New Endpoint

Timeoff > Leave

A time off leave — one employee's request to be absent for a date range (or part of a day) under a given leave type. Its approved status is tri-state — null while the request is pending, true once approved, false once rejected.

New Endpoint

New Endpoint

Webhooks