Bulk Upsert Employee Enrollments

Bulk enables, disables, or reassigns employee enrollments. The body is a top-level JSON array of between 1 and 1000 upsert records; each record requires employeeId and applies the same merge-patch semantics as the single-employee PATCH. Request-level validation (payload shape, record cap, missing employeeId) runs synchronously; the records themselves are applied asynchronously, so the response is 202 with a requestId for log correlation rather than the resulting enrollments. Confirm the final state by reading the enrollments back through GET /api/v1/time-tracking/employees. Per-record processing errors, such as an unknown employeeId or configurationId, do not surface in the response. Send atomic=true to commit the whole batch as one unit instead, in which case any per-record failure aborts the batch and returns 422 with nothing applied.

OAuth Scopes: time_tracking:employees.write

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Query Params
boolean
Defaults to false

When true, the whole batch is committed as a single transaction and any per-record failure returns 422 with nothing applied. Defaults to false, which keeps the successful records and silently drops the failing ones.

Body Params

One record of a bulk employee enrollment upsert. employeeId is required; the remaining properties carry the same semantics as the single-employee PATCH.

integer
required

The employee the record applies to.

boolean

True to enable time tracking for the employee, false to disable it. Disabling retains the enrollment record for history.

The configuration to enroll the employee in. Null falls back to the company's GLOBAL configuration. Cannot be sent in the same record that sets enabled to false.

date

Effective date for the enable, in YYYY-MM-DD format. Only honored while enabled is being set to true; defaults to today.

Headers
string

Optional client-supplied key for safe retries. Replaying the same key with the same body and the same atomic mode returns the original response; reusing it with either changed is a conflict.

Responses

Language
Credentials
:
URL
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json