These docs are for v2025-10-01. Click to read the latest docs for v2026-07-01.

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. Approval routing branches on its tri-state approved status and its request_type.

Request

New Field workplace_id has been added
Id of the workplace (location) for the shift.

New Field clock_in_work_area_id has been added
Id of the clock-in work area within the workplace.

New Field clock_out_work_area_id has been added
Id of the clock-out work area within the workplace.

Request

New Field workplace_id has been added
Id of the workplace (location) for the shift.

New Field clock_in_work_area_id has been added
Id of the clock-in work area within the workplace.

New Field clock_out_work_area_id has been added
Id of the clock-out work area within the workplace.

All Responses

New Field workplace_id has been added
Id of the workplace (location) for the shift

New Field clock_in_work_area_id has been added
Id of the clock-in work area within the workplace

New Field clock_out_work_area_id has been added
Id of the clock-out work area within the workplace

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

New Field siret has been added
Siret number (france-specific). system for identifying french establishments. 14-digit identifier for each french establishment.

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 unit. The thing compensation rules key on to decide how a row is treated.

Request

New Field enabled has been added
When true, returns active concepts only; when false, only inactive

New Field default has been added
When true, returns only default concepts

All Responses

New Field enabled has been added
Whether the concept is enabled for the company

New Field created_at has been added
Timestamp when the concept was created

New Field updated_at has been added
Timestamp when the concept was last updated

New Endpoint

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

New Endpoint

Compensations > Employees compensation

An employee compensation row — one concept's amount for one employee within a payroll run, produced by an amount strategy and optionally overridden by a reviewer. The granular unit compensation rules read and compute.

New Endpoint

New Endpoint

New Endpoint

New Endpoint

Compensations > Payroll result

Payroll Result — read-only projection of employee compensation rows with result_type=payroll_result

New 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. Compensation rules and payroll conditions branch on its status, lock state and dates.

New 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. The core record contract and compensation rules read.

All Responses

Modified Field version_data type has been changed to Proc
Country-specific contract data (template fragments and fields).

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

Contracts > Reference contract

Contracts reference contract

All Responses

Modified Field version_data type has been changed to Proc
Country-specific contract data (template fragments and fields).

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

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

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

New Endpoint

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

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

Request

New Field file_name has been added
Optional custom name for the uploaded file. when omitted, a standardized name is generated.

Integrations > Syncable state

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

New 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

New 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

New Endpoint

New Endpoint

ItManagement > Asset category

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

New Endpoint

ItManagement > It asset

IT Asset (device, keys, etc)

Request

New 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)

Request

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

Request

New 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

New 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

Request

New Field integration_uuid has been added
Uuid of the integration

Removed Field integration_id has been removed

All Responses

New Field company_code has been added
Company-level code

New Field legal_entities has been added
Legal entity codes (id is the legal entity id)

New Field locations has been added
Workplace codes (id is the location id)

New Field payroll_concept_codes has been added
Payroll concept codes per legal entity (id is the payroll concept id)

Removed Field file_numbers has been removed

Removed Field establishment_codes has been removed

PayrollEmployees > German employee datum

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

New Endpoint

New Endpoint

New Endpoint

Performance > Review process

Performance Review Process

Request

Removed Field cycle_id has been removed

All Responses

Removed Field cycle_id has been removed

Procurement > Po field value

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

New Endpoint

New Endpoint

Procurement > Po line item

A line item within a purchase order

New Endpoint

New Endpoint

Procurement > Po template

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

New Endpoint

New Endpoint

Procurement > Po template field definition

Field definition within a PO template version section

New Endpoint

New Endpoint

Procurement > Po template version

Version history entry for a PO template

New Endpoint

New Endpoint

Procurement > Purchase order

purchase_order

All Responses

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

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

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

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

New Field preferred_payment_method has been added
Preferred payment method for this purchase order

New Endpoint

New Endpoint

ProjectManagement > Project

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

Request

New Field project_viewers has been added
Array of employee ids who are project viewers

ProjectManagement > Rate

Project Management Rates

New Endpoint

ProjectManagement > Subproject

Project Management Subprojects

Request

Modified Field name is now mandatory
The name of the subproject.

Modified Field status is now mandatory
The status of the subproject.

ProjectManagement > Time record

Project Management Time Records

Request

New Field imputed_minutes has been added
Imputed minutes for the time record (used when no attendance shift is provided)

New Field date has been added
Reference date for the time record (used when no attendance shift is provided)

New Field project_task_id has been added
Id of the project task assigned to the time record. refers to project_management/project_tasks endpoint.

Request

New Field project_task_ids has been added
Project task ids to retrieve

Request

New 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

New Field project_task_id has been added
Id of the project task assigned to the time record. refers to project_management/project_tasks endpoint.

New Field employee_id has been added
Id of the employee the time record belongs to

New Field project_id has been added
Id of the project the time record belongs to

New Endpoint

Tasks > Task

Factorial task element

Request

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

Request

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

Timeoff > Allowance stat

Timeoff allowance stat

Request

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

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. It is the central object of the time off domain; approval routing and leave conditions branch on its dates, its type and its tri-state approved status (null = pending, true = approved, false = rejected).

Request

New Field include_duration_by_day has been added
Retrieve the per-day breakdown of the leave's duration (duration_by_day_attributes)

New 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

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

Webhooks

Payloads

New Field siret has been added
Siret number (france-specific). system for identifying french establishments. 14-digit identifier for each french establishment.

Payloads

Modified Field version_data type has been changed to Proc
Country-specific contract data (template fragments and fields).

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

Payloads

Modified Field version_data type has been changed to Proc
Country-specific contract data (template fragments and fields).

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

Payloads

Modified Field version_data type has been changed to Proc
Country-specific contract data (template fragments and fields).

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

Payloads

Removed Field cycle_id has been removed

Payloads

Removed Field cycle_id has been removed

Payloads

Removed Field cycle_id has been removed

Payloads

Removed Field cycle_id has been removed

Payloads

Removed Field cycle_id has been removed

Payloads

Removed Field cycle_id has been removed

Payloads

Removed Field cycle_id has been removed

Payloads

Removed Field cycle_id has been removed

Payloads

Removed Field cycle_id has been removed

Payloads

Removed Field cycle_id has been removed

Payloads

Removed Field cycle_id has been removed

Payloads

Removed Field cycle_id has been removed

Payloads

Removed Field cycle_id has been removed

Payloads

Removed Field cycle_id has been removed

Payloads

Removed Field cycle_id has been removed

Payloads

Removed Field cycle_id has been removed

Payloads

Removed Field cycle_id has been removed

Payloads

Removed Field cycle_id has been removed

Payloads

Removed Field cycle_id has been removed

Payloads

New Field project_task_id has been added
Id of the project task assigned to the time record. refers to project_management/project_tasks endpoint.

New Field employee_id has been added
Id of the employee the time record belongs to

New Field project_id has been added
Id of the project the time record belongs to

Payloads

New Field project_task_id has been added
Id of the project task assigned to the time record. refers to project_management/project_tasks endpoint.

New Field employee_id has been added
Id of the employee the time record belongs to

New Field project_id has been added
Id of the project the time record belongs to

Payloads

New Field project_task_id has been added
Id of the project task assigned to the time record. refers to project_management/project_tasks endpoint.

New Field employee_id has been added
Id of the employee the time record belongs to

New Field project_id has been added
Id of the project the time record belongs to

Payloads

New Field project_task_id has been added
Id of the project task assigned to the time record. refers to project_management/project_tasks endpoint.

New Field employee_id has been added
Id of the employee the time record belongs to

New Field project_id has been added
Id of the project the time record belongs to

Payloads

New Field project_task_id has been added
Id of the project task assigned to the time record. refers to project_management/project_tasks endpoint.

New Field employee_id has been added
Id of the employee the time record belongs to

New Field project_id has been added
Id of the project the time record belongs to

Payloads

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

Payloads

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

Payloads

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

Payloads

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

Payloads

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