---
agentTools:
  projectIndex: https://apidoc.factorialhr.com/llms.txt
---

# 2026-10-01 Release Notes

## Attendance > Edit timesheet request

An edit timesheet request — an employee's request to create, edit or delete a shift on their timesheet, going through an approval flow. `request_type` says which of the three it is, and `approved` is tri-state — null while the request is pending, true once approved, false once rejected.

### [Creates an Edit timesheet request](https://apidoc.factorialhr.com/v2026-10-01/reference/post_api-2026-10-01-resources-attendance-edit-timesheet-requests)

### Request

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `workplace_id` has been added
*Id of the workplace (location) for the shift.*

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `clock_in_work_area_id` has been added
*Id of the clock-in work area within the workplace.*

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `clock_out_work_area_id` has been added
*Id of the clock-out work area within the workplace.*

### [Updates an Edit timesheet request](https://apidoc.factorialhr.com/v2026-10-01/reference/put_api-2026-10-01-resources-attendance-edit-timesheet-requests-id)

### Request

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `workplace_id` has been added
*Id of the workplace (location) for the shift.*

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `clock_in_work_area_id` has been added
*Id of the clock-in work area within the workplace.*

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `clock_out_work_area_id` has been added
*Id of the clock-out work area within the workplace.*

### All Responses

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `workplace_id` has been added
*Id of the workplace (location) for the shift*

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `clock_in_work_area_id` has been added
*Id of the clock-in work area within the workplace*

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `clock_out_work_area_id` has been added
*Id of the clock-out work area within the workplace*

## Attendance > Shift

A shift — one worked-time interval for an employee (a clock-in and clock-out on a given day), the atomic record of tracked attendance. It carries the day it counts towards, its clock-in and clock-out, whether it is `workable`, and how it was clocked.

### [Creates a Shift](https://apidoc.factorialhr.com/v2026-10-01/reference/post_api-2026-10-01-resources-attendance-shifts)

### Request

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `workplace_id` has been added
*Id of the location related*

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `project_worker_id` has been added
*Id of the project worker the shift is imputed to. a time record for that project is created with the shift.*

## Attendance > Worked time

Attendance worked time

### [Reads all Worked times](https://apidoc.factorialhr.com/v2026-10-01/reference/get_api-2026-10-01-resources-attendance-worked-times)

### Request

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `ids` has been added
*Composite worked time id combining the employee\_id and date, formatted as \<employee\_id>*<yyyy-mm-dd>.\_

### [Reads a single Worked time](https://apidoc.factorialhr.com/v2026-10-01/reference/get_api-2026-10-01-resources-attendance-worked-times-id)

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Endpoint

## Companies > Legal entity

A legal entity of the company — a registered business entity with its own country, currency and legal name. Employees are contracted under a legal entity and finance records are booked against one; a company typically has one legal entity per country it operates in.

### All Responses

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `siret` has been added
*Siret number (france-specific). system for identifying french establishments. 14-digit identifier for each french establishment.*

## Compensations > Additional compensation

An additional compensation attached to a contract version — a recurring or one-off amount (Fixed, Variable, or PerWorkedDay strategy) that feeds into the employee's payroll runs.

### [Reads all Additional compensations](https://apidoc.factorialhr.com/v2026-10-01/reference/get_api-2026-10-01-resources-compensations-additional-compensations)

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Endpoint

### [Reads a single Additional compensation](https://apidoc.factorialhr.com/v2026-10-01/reference/get_api-2026-10-01-resources-compensations-additional-compensations-id)

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Endpoint

### [Creates an Additional compensation](https://apidoc.factorialhr.com/v2026-10-01/reference/post_api-2026-10-01-resources-compensations-additional-compensations)

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Endpoint

### [Updates an Additional compensation](https://apidoc.factorialhr.com/v2026-10-01/reference/put_api-2026-10-01-resources-compensations-additional-compensations-id)

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Endpoint

### [Deletes an Additional compensation](https://apidoc.factorialhr.com/v2026-10-01/reference/delete_api-2026-10-01-resources-compensations-additional-compensations-id)

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Endpoint

## Compensations > Concept

A compensation concept — the type of pay item a compensation row is classified under (a fixed salary, a bonus, a deduction, ...), carrying its accounting category and the unit its amounts are measured in.

### [Reads all Concepts](https://apidoc.factorialhr.com/v2026-10-01/reference/get_api-2026-10-01-resources-compensations-concepts)

### Request

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `enabled` has been added
*When true, returns active concepts only; when false, only inactive*

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `default` has been added
*Set to true to return only the concepts factorial ships by default, leaving out the ones the company created itself. passing false has no effect.*

### All Responses

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `enabled` has been added
*Whether the concept is enabled for the company*

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `created_at` has been added
*Timestamp when the concept was created*

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `updated_at` has been added
*Timestamp when the concept was last updated*

### [Creates a Concept](https://apidoc.factorialhr.com/v2026-10-01/reference/post_api-2026-10-01-resources-compensations-concepts)

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Endpoint

### [Updates a Concept](https://apidoc.factorialhr.com/v2026-10-01/reference/put_api-2026-10-01-resources-compensations-concepts-id)

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Endpoint

## Compensations > Cycle

A compensation cycle — a recurring payroll schedule (e.g. monthly) scoped to a country, currency and optional people group, that payroll runs are grouped under.

### [Reads all Cycles](https://apidoc.factorialhr.com/v2026-10-01/reference/get_api-2026-10-01-resources-compensations-cycles)

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Endpoint

## Compensations > Employees compensation

An employee compensation record represents a single concept's amount entry for one employee within a specific payroll run — the granular input produced by an amount strategy, optionally overridden by a reviewer. Multiple entries for the same employee and concept can exist (e.g. one per source). For the final, aggregated amount per concept plus the payroll results the bookkeeper calculated for that payroll run, use `compensations/payroll_run_employees_compensation` instead.

### [Reads all Employees compensations](https://apidoc.factorialhr.com/v2026-10-01/reference/get_api-2026-10-01-resources-compensations-employees-compensations)

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Endpoint

### [Reads a single Employees compensation](https://apidoc.factorialhr.com/v2026-10-01/reference/get_api-2026-10-01-resources-compensations-employees-compensations-id)

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Endpoint

### [Creates an Employees compensation](https://apidoc.factorialhr.com/v2026-10-01/reference/post_api-2026-10-01-resources-compensations-employees-compensations)

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Endpoint

### [Updates an Employees compensation](https://apidoc.factorialhr.com/v2026-10-01/reference/put_api-2026-10-01-resources-compensations-employees-compensations-id)

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Endpoint

### [Deletes an Employees compensation](https://apidoc.factorialhr.com/v2026-10-01/reference/delete_api-2026-10-01-resources-compensations-employees-compensations-id)

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Endpoint

## Compensations > Payroll result

Payroll Result — employee compensation rows with result\_type=payroll\_result, readable and importable

### [Reads all Payroll results](https://apidoc.factorialhr.com/v2026-10-01/reference/get_api-2026-10-01-resources-compensations-payroll-results)

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Endpoint

### [Reads a single Payroll result](https://apidoc.factorialhr.com/v2026-10-01/reference/get_api-2026-10-01-resources-compensations-payroll-results-id)

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Endpoint

### [Bulk creates a Payroll result](https://apidoc.factorialhr.com/v2026-10-01/reference/post_api-2026-10-01-resources-compensations-payroll-results-bulk-create)

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Endpoint

## Compensations > Payroll run

A payroll run — the batch that compensates a set of employees for a period, moving through a lifecycle (open → completed) and lockable once finalised. It carries the period it covers, its status and whether it is locked.

### [Reads all Payroll runs](https://apidoc.factorialhr.com/v2026-10-01/reference/get_api-2026-10-01-resources-compensations-payroll-runs)

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Endpoint

## Compensations > Payroll run employees compensation

A payroll-run employee compensation record represents the final amount for one concept and one employee within a specific payroll run, aggregated from the individual entries in `compensations/employees_compensation`. It also includes the payroll results the bookkeeper calculated during that payroll run (net pay, taxes, etc.), distinguished from aggregated compensations via `result_type`.

### [Reads all Payroll run employees compensations](https://apidoc.factorialhr.com/v2026-10-01/reference/get_api-2026-10-01-resources-compensations-payroll-run-employees-compensations)

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Endpoint

### [Reads a single Payroll run employees compensation](https://apidoc.factorialhr.com/v2026-10-01/reference/get_api-2026-10-01-resources-compensations-payroll-run-employees-compensations-id)

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Endpoint

## Contracts > Contract

An employment contract held by an employee — the container under which versioned contract terms (salary, hours, dates) live. It has a start/end date, a country and legal entity, and may be discontinuous (intermittent).

### [Reads all Contracts](https://apidoc.factorialhr.com/v2026-10-01/reference/get_api-2026-10-01-resources-contracts-contracts)

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Endpoint

### [Reads a single Contract](https://apidoc.factorialhr.com/v2026-10-01/reference/get_api-2026-10-01-resources-contracts-contracts-id)

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Endpoint

## Contracts > Contract activity period

A single stretch of time within a contract during which the employee is either working (activity) or not working (inactivity). A change of terms, such as a raise or a promotion, does not break a period: consecutive stretches of the same kind are reported as one, so a continuous contract resolves to a single activity period. Discontinuous (intermittent) contracts alternate activity and inactivity, so use this resource to know when such an employee is actually working. Periods are read one contract at a time.

### [Reads all Contract activity periods](https://apidoc.factorialhr.com/v2026-10-01/reference/get_api-2026-10-01-resources-contracts-contract-activity-periods)

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Endpoint

## Contracts > Contract version

A contract version — a versioned, effective-dated snapshot of an employee's contract terms (salary, working hours, job title, leveling, trial period, dates). The current terms are the version flagged `is_reference`.

### [Creates a Contract version](https://apidoc.factorialhr.com/v2026-10-01/reference/post_api-2026-10-01-resources-contracts-contract-versions)

### Request

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `country_data_inputs` has been added
*List of country-specific field inputs (e.g. contract\_type). each entry sets one templated field. discover valid field\_name/value\_id combinations per country and legal entity via get /resources/contracts/materialized\_templates.*

### [Updates a Contract version](https://apidoc.factorialhr.com/v2026-10-01/reference/put_api-2026-10-01-resources-contracts-contract-versions-id)

### Request

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `country_data_inputs` has been added
*List of country-specific field inputs (e.g. contract\_type). each entry sets one templated field. discover valid field\_name/value\_id combinations per country and legal entity via get /resources/contracts/materialized\_templates.*

### All Responses

<span style={{backgroundColor: 'orange', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>Modified</strong></span> Field `version_data` type has been changed to Proc
*Country-specific contract data (template fragments and fields).*

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `default_work_type` has been added
*Internal field used to derive part\_time / full\_time? from the seeded default work-type row. not intended for direct external use.*

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `salary_currency` has been added
*The currency of the salary amount, inherited from the governing legal entity.*

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `contracts_contract_id` has been added
*Contract identifier, refers to the /contracts/contracts endpoint. use it to read the contract this version belongs to, and its activity periods.*

## Contracts > Legal entity change

Change an employee's legal entity by creating a new contract and contract version under the target legal entity. Always opens a new contract; the country data fields resolve against the target legal entity, not the employee's current one.

### [Creates a Legal entity change](https://apidoc.factorialhr.com/v2026-10-01/reference/post_api-2026-10-01-resources-contracts-legal-entity-changes)

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Endpoint

## Contracts > Reference contract

Contracts reference contract

### All Responses

<span style={{backgroundColor: 'orange', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>Modified</strong></span> Field `version_data` type has been changed to Proc
*Country-specific contract data (template fragments and fields).*

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `default_work_type` has been added
*Internal field used to derive part\_time / full\_time? from the seeded default work-type row. not intended for direct external use.*

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `salary_currency` has been added
*The currency of the salary amount, inherited from the governing legal entity.*

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `contracts_contract_id` has been added
*Contract identifier, refers to the /contracts/contracts endpoint. use it to read the contract this version belongs to, and its activity periods.*

## 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.

### [Updates an Employee](https://apidoc.factorialhr.com/v2026-10-01/reference/put_api-2026-10-01-resources-employees-employees-id)

### Request

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `bank_number_format` has been added
*Format of bank\_number. required when bank\_number is set.*

## Expenses > Mileage

A mileage claim — the detail record behind an expensable of type "mileage", reimbursing distance driven on company business (route, distance, rate per unit).

### All Responses

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `rate_measurement_unit` has been added
*The distance unit the `rate` is denominated in (e.g. mi). the distance is converted into this unit before the rate is applied.*

## Finance > Financial document

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

### [Creates a Financial document](https://apidoc.factorialhr.com/v2026-10-01/reference/post_api-2026-10-01-resources-finance-financial-documents)

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Endpoint

### [Updates a Financial document](https://apidoc.factorialhr.com/v2026-10-01/reference/put_api-2026-10-01-resources-finance-financial-documents-id)

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Endpoint

## Integrations > Sync run

Integrations SyncRun represents a synchronization execution for a marketplace integration. This endpoint is designed to be used by integrators building an integration between Factorial and an external system through the Factorial Integration Framework.

### [Reads all Sync runs](https://apidoc.factorialhr.com/v2026-10-01/reference/get_api-2026-10-01-resources-integrations-sync-runs)

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Endpoint

### [Reads a single Sync run](https://apidoc.factorialhr.com/v2026-10-01/reference/get_api-2026-10-01-resources-integrations-sync-runs-id)

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Endpoint

### [Creates a Sync run](https://apidoc.factorialhr.com/v2026-10-01/reference/post_api-2026-10-01-resources-integrations-sync-runs)

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Endpoint

## Integrations > Sync run output

Integrations SyncRunOutput represents the output file produced by a sync run (e.g. a CSV export). This endpoint is designed to be used by integrators building an integration between Factorial and an external system through the Factorial Integration Framework.

### [Creates a Sync run output](https://apidoc.factorialhr.com/v2026-10-01/reference/post_api-2026-10-01-resources-integrations-sync-run-outputs)

### Request

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `file_name` has been added
*Optional custom name for the uploaded file. when omitted, a standardized name is generated.*

## Integrations > Syncable item

Integrations SyncableItem represents the item data that needs to be synced within a SyncRun. A SyncRun represents each synchronization execution of a set of items. This endpoint is designed to be used by integrators building a integration between Factorial and an external systems.

### [Reads all Syncable items](https://apidoc.factorialhr.com/v2026-10-01/reference/get_api-2026-10-01-resources-integrations-syncable-items)

<span style={{backgroundColor: 'red', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>Removed</strong></span> Endpoint

## Integrations > Syncable state

The sync or export current state of a syncable object, along with validation messages and errors

### All Responses

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `sync_type` has been added
*The type of synchronization this state represents, in "namespace/resource" form. describes what is being synced independently of the resource\_syncable\_type that carries the id.*

### [Reads all Syncable states](https://apidoc.factorialhr.com/v2026-10-01/reference/get_api-2026-10-01-resources-integrations-syncable-states)

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Endpoint

### [Reads a single Syncable state](https://apidoc.factorialhr.com/v2026-10-01/reference/get_api-2026-10-01-resources-integrations-syncable-states-id)

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Endpoint

## Integrations > Syncable sync run

Integrations SyncableSyncRuns represents all the resources that are included in a sync or export, in other words, a SyncRun. This endpoint is designed to be used by integrators building an integration, in order to fetch all the data that needs to be synced or exported in a given run.

### All Responses

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `syncable_state_id` has been added
*Identifier of the syncable state this run item is linked to. refers to the integrations/syncable\_state resource*

### [Bulk upserts a Syncable sync run](https://apidoc.factorialhr.com/v2026-10-01/reference/post_api-2026-10-01-resources-integrations-syncable-sync-runs-bulk-upsert)

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Endpoint

### [Reads all Syncable sync runs](https://apidoc.factorialhr.com/v2026-10-01/reference/get_api-2026-10-01-resources-integrations-syncable-sync-runs)

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Endpoint

## ItManagement > Asset category

Global asset category (Group or Subtype in the 2-level taxonomy)

### [Reads all Asset categories](https://apidoc.factorialhr.com/v2026-10-01/reference/get_api-2026-10-01-resources-it-management-asset-categories)

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Endpoint

## ItManagement > It asset

IT Asset (device, keys, etc)

### [Reads all It assets](https://apidoc.factorialhr.com/v2026-10-01/reference/get_api-2026-10-01-resources-it-management-it-assets)

### Request

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `asset_category_ids` has been added
*Asset category ids to filter assets by group*

## ItManagement > It asset model

IT Asset Model (make/model of device)

### [Creates an It asset model](https://apidoc.factorialhr.com/v2026-10-01/reference/post_api-2026-10-01-resources-it-management-it-asset-models)

### Request

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `asset_category_id` has been added
*Id of the asset subtype from the `it_management.asset_category` catalog (e.g. the id of 'vehicles.car'). takes precedence over `type_name` when both are given.*

### [Updates an It asset model](https://apidoc.factorialhr.com/v2026-10-01/reference/put_api-2026-10-01-resources-it-management-it-asset-models-id)

### Request

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `asset_category_id` has been added
*Id of the asset subtype from the `it_management.asset_category` catalog (e.g. the id of 'vehicles.car'). takes precedence over `type_name` when both are given.*

### All Responses

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `asset_category_id` has been added
*Fk to the leaf assetcategory (subtype). null if not yet categorised.*

## Marketplace > Installation setting

Represents the settings of an integration installation

### [Reads all Installation settings](https://apidoc.factorialhr.com/v2026-10-01/reference/get_api-2026-10-01-resources-marketplace-installation-settings)

### Request

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `integration_uuid` has been added
*Uuid of the integration*

<span style={{backgroundColor: 'red', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>Removed</strong></span> Field `integration_id` has been removed

### All Responses

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `company_code` has been added
*Company-level code*

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `legal_entities` has been added
*Legal entity codes (id is the legal entity id)*

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `locations` has been added
*Workplace codes (id is the location id)*

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `payroll_concept_codes` has been added
*Payroll concept codes per legal entity (id is the payroll concept id)*

<span style={{backgroundColor: 'red', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>Removed</strong></span> Field `file_numbers` has been removed

<span style={{backgroundColor: 'red', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>Removed</strong></span> Field `establishment_codes` has been removed

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `consultant_id` has been added
*Consultant identifier for the installation (e.g. the datev beraternummer)*

## PayrollEmployees > German employee datum

German-specific payroll data fields for an employee, used for DATEV payroll integrations

### [Reads all German employee data](https://apidoc.factorialhr.com/v2026-10-01/reference/get_api-2026-10-01-resources-payroll-employees-german-employee-data)

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Endpoint

### [Reads a single German employee datum](https://apidoc.factorialhr.com/v2026-10-01/reference/get_api-2026-10-01-resources-payroll-employees-german-employee-data-id)

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Endpoint

### [Creates a German employee datum](https://apidoc.factorialhr.com/v2026-10-01/reference/post_api-2026-10-01-resources-payroll-employees-german-employee-data)

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Endpoint

### [Updates a German employee datum](https://apidoc.factorialhr.com/v2026-10-01/reference/put_api-2026-10-01-resources-payroll-employees-german-employee-data-id)

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Endpoint

## Performance > Review process

Performance Review Process

### [Creates a Review process](https://apidoc.factorialhr.com/v2026-10-01/reference/post_api-2026-10-01-resources-performance-review-processes)

### Request

<span style={{backgroundColor: 'red', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>Removed</strong></span> Field `cycle_id` has been removed

### All Responses

<span style={{backgroundColor: 'red', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>Removed</strong></span> Field `cycle_id` has been removed

## Processes > Materialized process

A workflow run — one person going through one workflow (onboarding, offboarding, training or custom). Creating one assigns the person to the workflow and starts its first step, which is what materializes their tasks.

### [Creates a Materialized process](https://apidoc.factorialhr.com/v2026-10-01/reference/post_api-2026-10-01-resources-processes-materialized-processes)

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Endpoint

## Processes > Process

A workflow — the configured sequence of steps and tasks a person goes through. Onboarding, offboarding, training and custom workflows are all processes; the category says which one. Assigning someone to one creates a workflow run (/processes/materialized\_processes).

### [Reads all Processes](https://apidoc.factorialhr.com/v2026-10-01/reference/get_api-2026-10-01-resources-processes-processes)

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Endpoint

### [Reads a single Process](https://apidoc.factorialhr.com/v2026-10-01/reference/get_api-2026-10-01-resources-processes-processes-id)

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Endpoint

## Procurement > Po field value

Field value stored for a purchase order (header or line-item level)

### [Reads all Po field values](https://apidoc.factorialhr.com/v2026-10-01/reference/get_api-2026-10-01-resources-procurement-po-field-values)

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Endpoint

### [Reads a single Po field value](https://apidoc.factorialhr.com/v2026-10-01/reference/get_api-2026-10-01-resources-procurement-po-field-values-id)

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Endpoint

## Procurement > Po line item

A line item within a purchase order

### [Reads all Po line items](https://apidoc.factorialhr.com/v2026-10-01/reference/get_api-2026-10-01-resources-procurement-po-line-items)

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Endpoint

### [Reads a single Po line item](https://apidoc.factorialhr.com/v2026-10-01/reference/get_api-2026-10-01-resources-procurement-po-line-items-id)

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Endpoint

## Procurement > Po template

Purchase order template that defines the structure and fields of a PO

### [Reads all Po templates](https://apidoc.factorialhr.com/v2026-10-01/reference/get_api-2026-10-01-resources-procurement-po-templates)

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Endpoint

### [Reads a single Po template](https://apidoc.factorialhr.com/v2026-10-01/reference/get_api-2026-10-01-resources-procurement-po-templates-id)

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Endpoint

## Procurement > Po template field definition

One field a purchase-order template declares: its stable `field_key`, the type its values are read as, and the section it sits in.

### [Reads all Po template field definitions](https://apidoc.factorialhr.com/v2026-10-01/reference/get_api-2026-10-01-resources-procurement-po-template-field-definitions)

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Endpoint

### [Reads a single Po template field definition](https://apidoc.factorialhr.com/v2026-10-01/reference/get_api-2026-10-01-resources-procurement-po-template-field-definitions-id)

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Endpoint

## Procurement > Po template version

Version history entry for a PO template

### [Reads all Po template versions](https://apidoc.factorialhr.com/v2026-10-01/reference/get_api-2026-10-01-resources-procurement-po-template-versions)

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Endpoint

### [Reads a single Po template version](https://apidoc.factorialhr.com/v2026-10-01/reference/get_api-2026-10-01-resources-procurement-po-template-versions-id)

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Endpoint

## Procurement > Purchase order

A purchase order: money the company has committed to a vendor, with the lines it covers, the template fields filled in on it and the invoices received against it.

### All Responses

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `po_template_version_id` has been added
*Identifier of the pinned po template version this purchase order uses. fetch that version (and its field definitions) to interpret the purchase order's header and line-item field keys. null for legacy purchase orders created without a template.*

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `header_field_values_by_key` has been added
*Custom header field values, addressed by the field\_key of the purchase order's pinned template version, as an array of `{field_key, value}` pairs — exactly the shape the update endpoint accepts, so a get -> modify -> put roundtrip works verbatim. predefined fields (vendor, order\_date, currency, due\_date, payment\_method, legal\_entity) surface as top-level parameters instead, and computed or hidden values never appear (they are preserved server-side on update). null for purchase orders without a template version.*

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `line_items_by_key` has been added
*Line items with their field values addressed by the field\_key of the purchase order's pinned template version — the same shape the update endpoint accepts: modify and send the whole set back. rows are addressed by id (rows without an id are created, persisted rows missing from the set are deleted). null for purchase orders without a template version.*

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `deadline` has been added
*Deadline date for the purchase order delivery or completion. writable through the update endpoint (omitted or null keeps it); readable here so the get -> modify -> put roundtrip is complete.*

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `preferred_payment_method` has been added
*Preferred payment method for this purchase order*

### [Creates a Purchase order](https://apidoc.factorialhr.com/v2026-10-01/reference/post_api-2026-10-01-resources-procurement-purchase-orders)

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Endpoint

### [Updates a Purchase order](https://apidoc.factorialhr.com/v2026-10-01/reference/put_api-2026-10-01-resources-procurement-purchase-orders-id)

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Endpoint

## Procurement > Purchase request

A purchase request: what somebody asked the company to buy, under which purchase type, and the order it turned into once it was approved.

### All Responses

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `rejection_reason` has been added
*Reason for rejection if the purchase request was rejected*

## Procurement > Type

A purchase type: the kind of spending a request is raised under (software, training, hardware, and so on), which decides the form it is asked to fill in and the workflow it runs through.

### All Responses

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `workflow_currency` has been added
*Currency for workflow approval thresholds*

## 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.

### [Creates a Project](https://apidoc.factorialhr.com/v2026-10-01/reference/post_api-2026-10-01-resources-project-management-projects)

### Request

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `project_viewers` has been added
*Array of employee ids who are project viewers*

## ProjectManagement > Rate

Project Management Rates

### [Reads all Rates](https://apidoc.factorialhr.com/v2026-10-01/reference/get_api-2026-10-01-resources-project-management-rates)

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Endpoint

## ProjectManagement > Subproject

Project Management Subprojects

### [Updates a Subproject](https://apidoc.factorialhr.com/v2026-10-01/reference/put_api-2026-10-01-resources-project-management-subprojects-id)

### Request

<span style={{backgroundColor: 'orange', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>Modified</strong></span> Field `name` is now mandatory
*The name of the subproject.*

<span style={{backgroundColor: 'orange', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>Modified</strong></span> Field `status` is now mandatory
*The status of the subproject.*

## ProjectManagement > Time record

Project Management Time Records

### [Creates a Time record](https://apidoc.factorialhr.com/v2026-10-01/reference/post_api-2026-10-01-resources-project-management-time-records)

### Request

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `imputed_minutes` has been added
*Imputed minutes for the time record (used when no attendance shift is provided)*

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `date` has been added
*Reference date for the time record (used when no attendance shift is provided)*

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `project_task_id` has been added
*Id of the project task assigned to the time record. refers to project\_management/project\_tasks endpoint.*

### [Reads all Time records](https://apidoc.factorialhr.com/v2026-10-01/reference/get_api-2026-10-01-resources-project-management-time-records)

### Request

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `project_task_ids` has been added
*Project task ids to retrieve*

### [Update project workers a Time record](https://apidoc.factorialhr.com/v2026-10-01/reference/post_api-2026-10-01-resources-project-management-time-records-update-project-worker)

### Request

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `project_task_id` has been added
*Id of the project task assigned to the time record. refers to project\_management/project\_tasks endpoint.*

### All Responses

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `project_task_id` has been added
*Id of the project task assigned to the time record. refers to project\_management/project\_tasks endpoint.*

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `employee_id` has been added
*Id of the employee the time record belongs to*

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `project_id` has been added
*Id of the project the time record belongs to*

### [Update observations a Time record](https://apidoc.factorialhr.com/v2026-10-01/reference/post_api-2026-10-01-resources-project-management-time-records-update-observations)

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Endpoint

## Tasks > Task

Factorial task element

### [Bulk creates a Task](https://apidoc.factorialhr.com/v2026-10-01/reference/post_api-2026-10-01-resources-tasks-tasks-bulk-create)

### Request

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `author_employee_id` has been added
*Employee that will be set as the author of the tasks. only taken into account when authenticating with an api key, requests performed on behalf of a user always use that user as the author. when omitted, the tasks are authored by the first active employee of the company.*

### [Creates a Task](https://apidoc.factorialhr.com/v2026-10-01/reference/post_api-2026-10-01-resources-tasks-tasks)

### Request

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `author_employee_id` has been added
*Employee that will be set as the author of the task. only taken into account when authenticating with an api key, requests performed on behalf of a user always use that user as the author. when omitted, the task is authored by the first active employee of the company.*

## Teams > Membership

A team membership — the join record placing one employee on one team, with a `lead` flag marking whether they lead that team.

### [Reads all Memberships](https://apidoc.factorialhr.com/v2026-10-01/reference/get_api-2026-10-01-resources-teams-memberships)

### Request

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `with_source_attribution` has been added
*Populate `direct`, `source_team_ids` and `parent_team_ids` on each returned membership (nested teams). only honoured when filtering by a single `employee_ids` value without `team_ids` — the read that attributes one employee's own memberships, and the only one that resolves `direct`. reads filtered by a single team already return `source_team_ids`/`parent_team_ids` without this flag (`direct` stays null there); bulk reads ignore it entirely. unsupported filter combinations return `200` with empty attribution rather than an error. attribution is resolved per employee and is significantly more expensive than a plain read: intended for per-profile lookups, not bulk synchronization.*

### All Responses

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `source_team_ids` has been added
*Ids of the teams this membership originates from (nested teams). in a company with nested teams, a direct membership includes the team itself; an inherited one, the sub-team(s) where the employee is a direct member. only populated on reads that compute source attribution — reads filtered by a single team, or by a single employee with `with_source_attribution` enabled. empty otherwise, including create, update and delete responses, and always empty for companies without nested teams. an empty array does not distinguish "computed and genuinely empty" from "not computed for this read" or "could not be computed", so only apply attribution-dependent logic to a read you explicitly shaped for it. a team-anchored read stops attributing above roughly a thousand members of the filtered team: past that the attribution is not computed at all and every row comes back empty, behind a normal `200`.*

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `parent_team_ids` has been added
*Ids of the ancestor teams that receive an inherited membership through this row (nested teams) — the teams this membership rolls up into. populated under the same conditions as `source_team_ids`; empty otherwise.*

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `direct` has been added
*Whether the employee is a direct member of the team (nested teams). always present. `true` means direct member; `false` means the row exists only through inheritance from a sub-team; `null` means not computed for this read. only computed on reads filtered by a single employee with `with_source_attribution` enabled — always `null` otherwise, including create, update and delete responses and companies without nested teams. `null` is also returned when directness could not be resolved for a transient reason, even with `with_source_attribution` enabled, so never treat `null` as `false` — retry the read instead.*

### [Moves a Membership](https://apidoc.factorialhr.com/v2026-10-01/reference/post_api-2026-10-01-resources-teams-memberships-move)

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Endpoint

## Teams > Team

A team in the company's org chart — a named group employees belong to (through memberships), optionally with one or more leads and nested under a parent team.

### [Creates a Team](https://apidoc.factorialhr.com/v2026-10-01/reference/post_api-2026-10-01-resources-teams-teams)

### Request

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `parent_team_id` has been added
*Id of the parent team to nest the new team under (omit or null for a root team). requires the nested teams feature and permission to manage the parent team; the hierarchy is capped at 4 levels.*

### All Responses

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `parent_team_id` has been added
*Id of the parent team this team is nested under (null for a root team). returned by read, create and move; null on update and delete, which do not change the hierarchy, and always null for companies without nested teams.*

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `depth` has been added
*Depth of this team in the nested-team hierarchy: 1 for a top-level team, 2 for its children, and so on. returned by read, create and move; null on update and delete, which do not change the hierarchy, and always null for companies without nested teams.*

### [Moves a Team](https://apidoc.factorialhr.com/v2026-10-01/reference/post_api-2026-10-01-resources-teams-teams-move)

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Endpoint

## Timeoff > Allowance stat

Timeoff allowance stat

### [Reads all Allowance stats](https://apidoc.factorialhr.com/v2026-10-01/reference/get_api-2026-10-01-resources-timeoff-allowance-stats)

### Request

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `simulate_policy_change_to_id` has been added
*When provided, computes the stats as if the employee were moved to this target time off policy effective the day after reference\_date, so pass the day before the change date - for a change effective on 2026-08-03, send reference\_date=2026-08-02. this truncates the source policy's current cycle at that boundary so available\_days reflects the prorated balance that would actually transfer or be discarded on the change, rather than the full entitlement. purely a read - nothing is persisted. requires the policy timeline feature; without it the result is identical to an un-simulated read. can only be used together with employee\_ids, because a simulation needs every employee in the read to belong to the target policy's company - which a company-wide read cannot guarantee.*

## Timeoff > French leave day count

The French "décompte des congés" for a single leave — the day-vs-hour count that French payroll needs, with forfait jours, public holidays, RTT and congés payés forced to days, the JNT cap applied, and ouvrés/ouvrables/calendaires resolved from the employee's work schedule. Exposed as its own resource rather than as fields on timeoff.leave so the France-specific concern stays out of the generic leave read path.

### [Reads all French leave day counts](https://apidoc.factorialhr.com/v2026-10-01/reference/get_api-2026-10-01-resources-timeoff-french-leave-day-counts)

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> 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.

### [Reads all Leaves](https://apidoc.factorialhr.com/v2026-10-01/reference/get_api-2026-10-01-resources-timeoff-leaves)

### Request

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `include_duration_by_day` has been added
*Retrieve the per-day breakdown of the leave's duration (`duration_by_day_attributes`)*

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `forced_finish_on` has been added
*Caps the per-day duration walk at this date. for endless leaves (`finish_on = nil`) it pins the walk end; for closed leaves whose `finish_on` sits past this date it truncates the walk. never extends a leave past its real `finish_on`. must fall inside the read window (from/to or overlaps\_range\_from/overlaps\_range\_to).*

### All Responses

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `duration_by_day_attributes` has been added
*Per-day breakdown of the leave's workable and used units, keyed by calendar date. populated only when the read requests `include_duration_by_day=true`; null otherwise.*

### [Bulk deletes a Leave](https://apidoc.factorialhr.com/v2026-10-01/reference/post_api-2026-10-01-resources-timeoff-leaves-bulk-delete)

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Endpoint

## Timeoff > Policy

A time off policy — a named configuration that groups a set of allowances and governs the leaves of the employees assigned to it. A company has one main policy that employees fall under by default, plus optional policies for specific populations (e.g. remote employees).

### [Creates a Policy](https://apidoc.factorialhr.com/v2026-10-01/reference/post_api-2026-10-01-resources-timeoff-policies)

### Request

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `based_on_policy_id` has been added
*Id of an existing policy to copy. when set, the new policy is created with a copy of that policy's allowances and no employees assigned. omit it to create a policy from scratch.*

## TimeSettings > Split custom time range category

Resource to manage split work time categories

### [Reads all Split custom time range categories](https://apidoc.factorialhr.com/v2026-10-01/reference/get_api-2026-10-01-resources-time-settings-split-custom-time-range-categories)

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Endpoint

### [Reads a single Split custom time range category](https://apidoc.factorialhr.com/v2026-10-01/reference/get_api-2026-10-01-resources-time-settings-split-custom-time-range-categories-id)

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Endpoint

## Webhooks

### [Companies > LegalEntity > Creates](https://apidoc.factorialhr.com/v2026-10-01/reference/post_webhooks-companies-legalentity-creates)

### Payloads

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `siret` has been added
*Siret number (france-specific). system for identifying french establishments. 14-digit identifier for each french establishment.*

### [Contracts > ContractVersion > Creates](https://apidoc.factorialhr.com/v2026-10-01/reference/post_webhooks-contracts-contractversion-creates)

### Payloads

<span style={{backgroundColor: 'orange', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>Modified</strong></span> Field `version_data` type has been changed to Proc
*Country-specific contract data (template fragments and fields).*

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `default_work_type` has been added
*Internal field used to derive part\_time / full\_time? from the seeded default work-type row. not intended for direct external use.*

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `salary_currency` has been added
*The currency of the salary amount, inherited from the governing legal entity.*

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `contracts_contract_id` has been added
*Contract identifier, refers to the /contracts/contracts endpoint. use it to read the contract this version belongs to, and its activity periods.*

### [Contracts > ContractVersion > Deletes](https://apidoc.factorialhr.com/v2026-10-01/reference/post_webhooks-contracts-contractversion-deletes)

### Payloads

<span style={{backgroundColor: 'orange', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>Modified</strong></span> Field `version_data` type has been changed to Proc
*Country-specific contract data (template fragments and fields).*

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `default_work_type` has been added
*Internal field used to derive part\_time / full\_time? from the seeded default work-type row. not intended for direct external use.*

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `salary_currency` has been added
*The currency of the salary amount, inherited from the governing legal entity.*

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `contracts_contract_id` has been added
*Contract identifier, refers to the /contracts/contracts endpoint. use it to read the contract this version belongs to, and its activity periods.*

### [Contracts > ContractVersion > Updates](https://apidoc.factorialhr.com/v2026-10-01/reference/post_webhooks-contracts-contractversion-updates)

### Payloads

<span style={{backgroundColor: 'orange', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>Modified</strong></span> Field `version_data` type has been changed to Proc
*Country-specific contract data (template fragments and fields).*

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `default_work_type` has been added
*Internal field used to derive part\_time / full\_time? from the seeded default work-type row. not intended for direct external use.*

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `salary_currency` has been added
*The currency of the salary amount, inherited from the governing legal entity.*

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `contracts_contract_id` has been added
*Contract identifier, refers to the /contracts/contracts endpoint. use it to read the contract this version belongs to, and its activity periods.*

### [Performance > ReviewProcess > Creates](https://apidoc.factorialhr.com/v2026-10-01/reference/post_webhooks-performance-reviewprocess-creates)

### Payloads

<span style={{backgroundColor: 'red', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>Removed</strong></span> Field `cycle_id` has been removed

### [Performance > ReviewProcess > Create from templates](https://apidoc.factorialhr.com/v2026-10-01/reference/post_webhooks-performance-reviewprocess-create-from-templates)

### Payloads

<span style={{backgroundColor: 'red', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>Removed</strong></span> Field `cycle_id` has been removed

### [Performance > ReviewProcess > Deletes](https://apidoc.factorialhr.com/v2026-10-01/reference/post_webhooks-performance-reviewprocess-deletes)

### Payloads

<span style={{backgroundColor: 'red', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>Removed</strong></span> Field `cycle_id` has been removed

### [Performance > ReviewProcess > Duplicates](https://apidoc.factorialhr.com/v2026-10-01/reference/post_webhooks-performance-reviewprocess-duplicates)

### Payloads

<span style={{backgroundColor: 'red', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>Removed</strong></span> Field `cycle_id` has been removed

### [Performance > ReviewProcess > Remind in bulks](https://apidoc.factorialhr.com/v2026-10-01/reference/post_webhooks-performance-reviewprocess-remind-in-bulks)

### Payloads

<span style={{backgroundColor: 'red', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>Removed</strong></span> Field `cycle_id` has been removed

### [Performance > ReviewProcess > Remove schedules](https://apidoc.factorialhr.com/v2026-10-01/reference/post_webhooks-performance-reviewprocess-remove-schedules)

### Payloads

<span style={{backgroundColor: 'red', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>Removed</strong></span> Field `cycle_id` has been removed

### [Performance > ReviewProcess > Reopens](https://apidoc.factorialhr.com/v2026-10-01/reference/post_webhooks-performance-reviewprocess-reopens)

### Payloads

<span style={{backgroundColor: 'red', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>Removed</strong></span> Field `cycle_id` has been removed

### [Performance > ReviewProcess > Schedules](https://apidoc.factorialhr.com/v2026-10-01/reference/post_webhooks-performance-reviewprocess-schedules)

### Payloads

<span style={{backgroundColor: 'red', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>Removed</strong></span> Field `cycle_id` has been removed

### [Performance > ReviewProcess > Starts](https://apidoc.factorialhr.com/v2026-10-01/reference/post_webhooks-performance-reviewprocess-starts)

### Payloads

<span style={{backgroundColor: 'red', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>Removed</strong></span> Field `cycle_id` has been removed

### [Performance > ReviewProcess > Stops](https://apidoc.factorialhr.com/v2026-10-01/reference/post_webhooks-performance-reviewprocess-stops)

### Payloads

<span style={{backgroundColor: 'red', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>Removed</strong></span> Field `cycle_id` has been removed

### [Performance > ReviewProcess > Toggle archives](https://apidoc.factorialhr.com/v2026-10-01/reference/post_webhooks-performance-reviewprocess-toggle-archives)

### Payloads

<span style={{backgroundColor: 'red', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>Removed</strong></span> Field `cycle_id` has been removed

### [Performance > ReviewProcess > Update agreements configurations](https://apidoc.factorialhr.com/v2026-10-01/reference/post_webhooks-performance-reviewprocess-update-agreements-configurations)

### Payloads

<span style={{backgroundColor: 'red', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>Removed</strong></span> Field `cycle_id` has been removed

### [Performance > ReviewProcess > Update basic infos](https://apidoc.factorialhr.com/v2026-10-01/reference/post_webhooks-performance-reviewprocess-update-basic-infos)

### Payloads

<span style={{backgroundColor: 'red', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>Removed</strong></span> Field `cycle_id` has been removed

### [Performance > ReviewProcess > Update competencies assessments configurations](https://apidoc.factorialhr.com/v2026-10-01/reference/post_webhooks-performance-reviewprocess-update-competencies-assessments-configurations)

### Payloads

<span style={{backgroundColor: 'red', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>Removed</strong></span> Field `cycle_id` has been removed

### [Performance > ReviewProcess > Update deadlines](https://apidoc.factorialhr.com/v2026-10-01/reference/post_webhooks-performance-reviewprocess-update-deadlines)

### Payloads

<span style={{backgroundColor: 'red', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>Removed</strong></span> Field `cycle_id` has been removed

### [Performance > ReviewProcess > Update employee score configurations](https://apidoc.factorialhr.com/v2026-10-01/reference/post_webhooks-performance-reviewprocess-update-employee-score-configurations)

### Payloads

<span style={{backgroundColor: 'red', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>Removed</strong></span> Field `cycle_id` has been removed

### [Performance > ReviewProcess > Update reviewer strategies](https://apidoc.factorialhr.com/v2026-10-01/reference/post_webhooks-performance-reviewprocess-update-reviewer-strategiess)

### Payloads

<span style={{backgroundColor: 'red', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>Removed</strong></span> Field `cycle_id` has been removed

### [Performance > ReviewProcess > Update schedules](https://apidoc.factorialhr.com/v2026-10-01/reference/post_webhooks-performance-reviewprocess-update-schedules)

### Payloads

<span style={{backgroundColor: 'red', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>Removed</strong></span> Field `cycle_id` has been removed

### [Performance > ReviewProcess > Update target strategies](https://apidoc.factorialhr.com/v2026-10-01/reference/post_webhooks-performance-reviewprocess-update-target-strategys)

### Payloads

<span style={{backgroundColor: 'red', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>Removed</strong></span> Field `cycle_id` has been removed

### [ProjectManagement > TimeRecord > Creates](https://apidoc.factorialhr.com/v2026-10-01/reference/post_webhooks-projectmanagement-timerecord-creates)

### Payloads

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `project_task_id` has been added
*Id of the project task assigned to the time record. refers to project\_management/project\_tasks endpoint.*

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `employee_id` has been added
*Id of the employee the time record belongs to*

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `project_id` has been added
*Id of the project the time record belongs to*

### [ProjectManagement > TimeRecord > Deletes](https://apidoc.factorialhr.com/v2026-10-01/reference/post_webhooks-projectmanagement-timerecord-deletes)

### Payloads

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `project_task_id` has been added
*Id of the project task assigned to the time record. refers to project\_management/project\_tasks endpoint.*

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `employee_id` has been added
*Id of the employee the time record belongs to*

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `project_id` has been added
*Id of the project the time record belongs to*

### [ProjectManagement > TimeRecord > Update imputed minutes](https://apidoc.factorialhr.com/v2026-10-01/reference/post_webhooks-projectmanagement-timerecord-update-imputed-minutess)

### Payloads

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `project_task_id` has been added
*Id of the project task assigned to the time record. refers to project\_management/project\_tasks endpoint.*

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `employee_id` has been added
*Id of the employee the time record belongs to*

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `project_id` has been added
*Id of the project the time record belongs to*

### [ProjectManagement > TimeRecord > Update observations](https://apidoc.factorialhr.com/v2026-10-01/reference/post_webhooks-projectmanagement-timerecord-update-observationss)

### Payloads

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `project_task_id` has been added
*Id of the project task assigned to the time record. refers to project\_management/project\_tasks endpoint.*

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `employee_id` has been added
*Id of the employee the time record belongs to*

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `project_id` has been added
*Id of the project the time record belongs to*

### [ProjectManagement > TimeRecord > Update project workers](https://apidoc.factorialhr.com/v2026-10-01/reference/post_webhooks-projectmanagement-timerecord-update-project-workers)

### Payloads

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `project_task_id` has been added
*Id of the project task assigned to the time record. refers to project\_management/project\_tasks endpoint.*

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `employee_id` has been added
*Id of the employee the time record belongs to*

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `project_id` has been added
*Id of the project the time record belongs to*

### [Teams > Membership > Bulk upserts](https://apidoc.factorialhr.com/v2026-10-01/reference/post_webhooks-teams-membership-bulk-upserts)

### Payloads

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `source_team_ids` has been added
*Ids of the teams this membership originates from (nested teams). in a company with nested teams, a direct membership includes the team itself; an inherited one, the sub-team(s) where the employee is a direct member. only populated on reads that compute source attribution — reads filtered by a single team, or by a single employee with `with_source_attribution` enabled. empty otherwise, including create, update and delete responses, and always empty for companies without nested teams. an empty array does not distinguish "computed and genuinely empty" from "not computed for this read" or "could not be computed", so only apply attribution-dependent logic to a read you explicitly shaped for it. a team-anchored read stops attributing above roughly a thousand members of the filtered team: past that the attribution is not computed at all and every row comes back empty, behind a normal `200`.*

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `parent_team_ids` has been added
*Ids of the ancestor teams that receive an inherited membership through this row (nested teams) — the teams this membership rolls up into. populated under the same conditions as `source_team_ids`; empty otherwise.*

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `direct` has been added
*Whether the employee is a direct member of the team (nested teams). always present. `true` means direct member; `false` means the row exists only through inheritance from a sub-team; `null` means not computed for this read. only computed on reads filtered by a single employee with `with_source_attribution` enabled — always `null` otherwise, including create, update and delete responses and companies without nested teams. `null` is also returned when directness could not be resolved for a transient reason, even with `with_source_attribution` enabled, so never treat `null` as `false` — retry the read instead.*

### [Teams > Membership > Creates](https://apidoc.factorialhr.com/v2026-10-01/reference/post_webhooks-teams-membership-creates)

### Payloads

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `source_team_ids` has been added
*Ids of the teams this membership originates from (nested teams). in a company with nested teams, a direct membership includes the team itself; an inherited one, the sub-team(s) where the employee is a direct member. only populated on reads that compute source attribution — reads filtered by a single team, or by a single employee with `with_source_attribution` enabled. empty otherwise, including create, update and delete responses, and always empty for companies without nested teams. an empty array does not distinguish "computed and genuinely empty" from "not computed for this read" or "could not be computed", so only apply attribution-dependent logic to a read you explicitly shaped for it. a team-anchored read stops attributing above roughly a thousand members of the filtered team: past that the attribution is not computed at all and every row comes back empty, behind a normal `200`.*

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `parent_team_ids` has been added
*Ids of the ancestor teams that receive an inherited membership through this row (nested teams) — the teams this membership rolls up into. populated under the same conditions as `source_team_ids`; empty otherwise.*

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `direct` has been added
*Whether the employee is a direct member of the team (nested teams). always present. `true` means direct member; `false` means the row exists only through inheritance from a sub-team; `null` means not computed for this read. only computed on reads filtered by a single employee with `with_source_attribution` enabled — always `null` otherwise, including create, update and delete responses and companies without nested teams. `null` is also returned when directness could not be resolved for a transient reason, even with `with_source_attribution` enabled, so never treat `null` as `false` — retry the read instead.*

### [Teams > Membership > Deletes](https://apidoc.factorialhr.com/v2026-10-01/reference/post_webhooks-teams-membership-deletes)

### Payloads

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `source_team_ids` has been added
*Ids of the teams this membership originates from (nested teams). in a company with nested teams, a direct membership includes the team itself; an inherited one, the sub-team(s) where the employee is a direct member. only populated on reads that compute source attribution — reads filtered by a single team, or by a single employee with `with_source_attribution` enabled. empty otherwise, including create, update and delete responses, and always empty for companies without nested teams. an empty array does not distinguish "computed and genuinely empty" from "not computed for this read" or "could not be computed", so only apply attribution-dependent logic to a read you explicitly shaped for it. a team-anchored read stops attributing above roughly a thousand members of the filtered team: past that the attribution is not computed at all and every row comes back empty, behind a normal `200`.*

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `parent_team_ids` has been added
*Ids of the ancestor teams that receive an inherited membership through this row (nested teams) — the teams this membership rolls up into. populated under the same conditions as `source_team_ids`; empty otherwise.*

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `direct` has been added
*Whether the employee is a direct member of the team (nested teams). always present. `true` means direct member; `false` means the row exists only through inheritance from a sub-team; `null` means not computed for this read. only computed on reads filtered by a single employee with `with_source_attribution` enabled — always `null` otherwise, including create, update and delete responses and companies without nested teams. `null` is also returned when directness could not be resolved for a transient reason, even with `with_source_attribution` enabled, so never treat `null` as `false` — retry the read instead.*

### [Teams > Membership > Moves](https://apidoc.factorialhr.com/v2026-10-01/reference/post_webhooks-teams-membership-moves)

### Payloads

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `source_team_ids` has been added
*Ids of the teams this membership originates from (nested teams). in a company with nested teams, a direct membership includes the team itself; an inherited one, the sub-team(s) where the employee is a direct member. only populated on reads that compute source attribution — reads filtered by a single team, or by a single employee with `with_source_attribution` enabled. empty otherwise, including create, update and delete responses, and always empty for companies without nested teams. an empty array does not distinguish "computed and genuinely empty" from "not computed for this read" or "could not be computed", so only apply attribution-dependent logic to a read you explicitly shaped for it. a team-anchored read stops attributing above roughly a thousand members of the filtered team: past that the attribution is not computed at all and every row comes back empty, behind a normal `200`.*

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `parent_team_ids` has been added
*Ids of the ancestor teams that receive an inherited membership through this row (nested teams) — the teams this membership rolls up into. populated under the same conditions as `source_team_ids`; empty otherwise.*

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `direct` has been added
*Whether the employee is a direct member of the team (nested teams). always present. `true` means direct member; `false` means the row exists only through inheritance from a sub-team; `null` means not computed for this read. only computed on reads filtered by a single employee with `with_source_attribution` enabled — always `null` otherwise, including create, update and delete responses and companies without nested teams. `null` is also returned when directness could not be resolved for a transient reason, even with `with_source_attribution` enabled, so never treat `null` as `false` — retry the read instead.*

### [Teams > Membership > Updates](https://apidoc.factorialhr.com/v2026-10-01/reference/post_webhooks-teams-membership-updates)

### Payloads

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `source_team_ids` has been added
*Ids of the teams this membership originates from (nested teams). in a company with nested teams, a direct membership includes the team itself; an inherited one, the sub-team(s) where the employee is a direct member. only populated on reads that compute source attribution — reads filtered by a single team, or by a single employee with `with_source_attribution` enabled. empty otherwise, including create, update and delete responses, and always empty for companies without nested teams. an empty array does not distinguish "computed and genuinely empty" from "not computed for this read" or "could not be computed", so only apply attribution-dependent logic to a read you explicitly shaped for it. a team-anchored read stops attributing above roughly a thousand members of the filtered team: past that the attribution is not computed at all and every row comes back empty, behind a normal `200`.*

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `parent_team_ids` has been added
*Ids of the ancestor teams that receive an inherited membership through this row (nested teams) — the teams this membership rolls up into. populated under the same conditions as `source_team_ids`; empty otherwise.*

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `direct` has been added
*Whether the employee is a direct member of the team (nested teams). always present. `true` means direct member; `false` means the row exists only through inheritance from a sub-team; `null` means not computed for this read. only computed on reads filtered by a single employee with `with_source_attribution` enabled — always `null` otherwise, including create, update and delete responses and companies without nested teams. `null` is also returned when directness could not be resolved for a transient reason, even with `with_source_attribution` enabled, so never treat `null` as `false` — retry the read instead.*

### [Teams > Team > Creates](https://apidoc.factorialhr.com/v2026-10-01/reference/post_webhooks-teams-team-creates)

### Payloads

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `parent_team_id` has been added
*Id of the parent team this team is nested under (null for a root team). returned by read, create and move; null on update and delete, which do not change the hierarchy, and always null for companies without nested teams.*

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `depth` has been added
*Depth of this team in the nested-team hierarchy: 1 for a top-level team, 2 for its children, and so on. returned by read, create and move; null on update and delete, which do not change the hierarchy, and always null for companies without nested teams.*

### [Teams > Team > Deletes](https://apidoc.factorialhr.com/v2026-10-01/reference/post_webhooks-teams-team-deletes)

### Payloads

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `parent_team_id` has been added
*Id of the parent team this team is nested under (null for a root team). returned by read, create and move; null on update and delete, which do not change the hierarchy, and always null for companies without nested teams.*

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `depth` has been added
*Depth of this team in the nested-team hierarchy: 1 for a top-level team, 2 for its children, and so on. returned by read, create and move; null on update and delete, which do not change the hierarchy, and always null for companies without nested teams.*

### [Teams > Team > Moves](https://apidoc.factorialhr.com/v2026-10-01/reference/post_webhooks-teams-team-moves)

### Payloads

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `parent_team_id` has been added
*Id of the parent team this team is nested under (null for a root team). returned by read, create and move; null on update and delete, which do not change the hierarchy, and always null for companies without nested teams.*

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `depth` has been added
*Depth of this team in the nested-team hierarchy: 1 for a top-level team, 2 for its children, and so on. returned by read, create and move; null on update and delete, which do not change the hierarchy, and always null for companies without nested teams.*

### [Teams > Team > Projects](https://apidoc.factorialhr.com/v2026-10-01/reference/post_webhooks-teams-team-projects)

### Payloads

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `parent_team_id` has been added
*Id of the parent team this team is nested under (null for a root team). returned by read, create and move; null on update and delete, which do not change the hierarchy, and always null for companies without nested teams.*

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `depth` has been added
*Depth of this team in the nested-team hierarchy: 1 for a top-level team, 2 for its children, and so on. returned by read, create and move; null on update and delete, which do not change the hierarchy, and always null for companies without nested teams.*

### [Teams > Team > Updates](https://apidoc.factorialhr.com/v2026-10-01/reference/post_webhooks-teams-team-updates)

### Payloads

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `parent_team_id` has been added
*Id of the parent team this team is nested under (null for a root team). returned by read, create and move; null on update and delete, which do not change the hierarchy, and always null for companies without nested teams.*

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `depth` has been added
*Depth of this team in the nested-team hierarchy: 1 for a top-level team, 2 for its children, and so on. returned by read, create and move; null on update and delete, which do not change the hierarchy, and always null for companies without nested teams.*

### [Timeoff > Leave > Approves](https://apidoc.factorialhr.com/v2026-10-01/reference/post_webhooks-timeoff-leave-approves)

### Payloads

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `duration_by_day_attributes` has been added
*Per-day breakdown of the leave's workable and used units, keyed by calendar date. populated only when the read requests `include_duration_by_day=true`; null otherwise.*

### [Timeoff > Leave > Bulk deletes](https://apidoc.factorialhr.com/v2026-10-01/reference/post_webhooks-timeoff-leave-bulk-deletes)

### Payloads

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `duration_by_day_attributes` has been added
*Per-day breakdown of the leave's workable and used units, keyed by calendar date. populated only when the read requests `include_duration_by_day=true`; null otherwise.*

### [Timeoff > Leave > Creates](https://apidoc.factorialhr.com/v2026-10-01/reference/post_webhooks-timeoff-leave-creates)

### Payloads

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `duration_by_day_attributes` has been added
*Per-day breakdown of the leave's workable and used units, keyed by calendar date. populated only when the read requests `include_duration_by_day=true`; null otherwise.*

### [Timeoff > Leave > Deletes](https://apidoc.factorialhr.com/v2026-10-01/reference/post_webhooks-timeoff-leave-deletes)

### Payloads

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `duration_by_day_attributes` has been added
*Per-day breakdown of the leave's workable and used units, keyed by calendar date. populated only when the read requests `include_duration_by_day=true`; null otherwise.*

### [Timeoff > Leave > Rejects](https://apidoc.factorialhr.com/v2026-10-01/reference/post_webhooks-timeoff-leave-rejects)

### Payloads

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `duration_by_day_attributes` has been added
*Per-day breakdown of the leave's workable and used units, keyed by calendar date. populated only when the read requests `include_duration_by_day=true`; null otherwise.*

### [Timeoff > Leave > Updates](https://apidoc.factorialhr.com/v2026-10-01/reference/post_webhooks-timeoff-leave-updates)

### Payloads

<span style={{backgroundColor: 'green', color: 'white', padding: '3px 8px', borderRadius: '12px', fontSize: '0.8em'}}><strong>New</strong></span> Field `duration_by_day_attributes` has been added
*Per-day breakdown of the leave's workable and used units, keyed by calendar date. populated only when the read requests `include_duration_by_day=true`; null otherwise.*