Assign Employee Time Off Policy
Changed onAssigns a time off policy to an employee, effective from effectiveDate. An employee holds at most one assignment per time off category at any point in time, and this call keeps that true rather than refusing: an assignment in the same category that is in force on effectiveDate is end-dated to the day before, and any assignment in that category starting on or after effectiveDate, scheduled or already in effect, is archived: it is no longer in effect for any date and is kept as history. Neither is an error: both changed assignments are returned in the response's supersededAssignments, the end-dated one with its new endDate and status ACTIVE, the archived ones with status ARCHIVED. A subsequent GET of the employee's policies shows the end-dated assignment; archived assignments are not listed anywhere else, so this response is the one place a caller sees them. The one conflict is assigning the policy the employee already holds with the same effectiveDate, which would change nothing and returns 409; that applies to any active assignment on that policy and date, scheduled or already ended, not only the one in force today. effectiveDate is required for every policy type and must not precede the employee's hire date. endDate is not accepted: new assignments are always open ended, and are ended later by unassigning or by a successor assignment. Accruals for the category are recalculated from the effective date.
OAuth Scopes: time_off:policies.write
Request
- Base URLhttps://companySubDomain.bamboohr.com
- Auth
- HTTP basic
- or OAuth 2Authorization code/authorize.phpToken URL/token.phpScopestime_off:policies.write
- TypeScriptA function with typed inputs. Its response is checked against the schema.
Path parameters
The employee ID.
Request body
Example request
{
"policyId": 15,
"effectiveDate": "2026-10-01"
}Response
The created assignment, with supersededAssignments listing every assignment in the same category the write end-dated or archived (empty when nothing collided).
Example response
{
"id": 821,
"employeeId": 40341,
"policyId": 15,
"categoryId": 64,
"effectiveDate": "2022-05-02",
"createdAt": "2025-05-27T22:34:07Z",
"updatedAt": "2025-05-27T22:34:07Z",
"status": "ACTIVE",
"supersededAssignments": [
{
"id": 821,
"employeeId": 40341,
"policyId": 15,
"categoryId": 64,
"effectiveDate": "2022-05-02",
"createdAt": "2025-05-27T22:34:07Z",
"updatedAt": "2025-05-27T22:34:07Z",
"status": "ACTIVE"
}
]
}Changes
- info
endpoint added
- info