curl --request POST \
--url https://api-{region}.sesametime.com/overtime-policies/v1/adjustments \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"employeeId": "550e8400-e29b-41d4-a716-446655440000",
"operation": "add",
"from": "2026-01-01",
"to": "2026-01-31",
"balanceBeforeSeconds": 7200,
"amountSeconds": 3600,
"note": "Correction after audit"
}
'{
"data": {
"adjustmentId": "3f2b8c1e-6a0d-4c4e-9b7a-2d1f0e5c9a11",
"employeeId": "550e8400-e29b-41d4-a716-446655440000",
"operation": "add",
"appliedSeconds": 3600,
"balanceBeforeSeconds": 7200,
"balanceAfterSeconds": 10800
},
"meta": {
"currentPage": 1,
"lastPage": 1,
"total": 1,
"perPage": 1
}
}Adjust the overtime balance of an employee
Adds time to, subtracts time from, or resets the overtime balance of one employee of the company of the token, over the from-to period. The employee must belong to the company of the token and have overtime balance rows in that period.
Optimistic concurrency: for add and subtract, balanceBeforeSeconds must equal the current balance of the resolved source, as returned by GET /overtime-policies/v1/employees/{employeeId}/balance for the same from/to (key positive_balance for source positive_balance, negative_balance for negative_balance, total_balance for any other source). Otherwise the request is rejected with 409 compensable_balance_changed.
reset brings the positive and negative balances of the period to zero: source is ignored (the movement is recorded with source total_balance), amountSeconds is ignored and balanceBeforeSeconds is optional and not checked.
When nothing can be applied (amount omitted or not greater than zero, or nothing to allocate) the call still answers 200 with appliedSeconds: 0 and an empty adjustmentId, and no movement is created.
curl --request POST \
--url https://api-{region}.sesametime.com/overtime-policies/v1/adjustments \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"employeeId": "550e8400-e29b-41d4-a716-446655440000",
"operation": "add",
"from": "2026-01-01",
"to": "2026-01-31",
"balanceBeforeSeconds": 7200,
"amountSeconds": 3600,
"note": "Correction after audit"
}
'{
"data": {
"adjustmentId": "3f2b8c1e-6a0d-4c4e-9b7a-2d1f0e5c9a11",
"employeeId": "550e8400-e29b-41d4-a716-446655440000",
"operation": "add",
"appliedSeconds": 3600,
"balanceBeforeSeconds": 7200,
"balanceAfterSeconds": 10800
},
"meta": {
"currentPage": 1,
"lastPage": 1,
"total": 1,
"perPage": 1
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
- add or subtract
- reset
Adjustment operation. The validator only checks it is a non-blank string; an unknown value is rejected with 422 invalid_adjustment_operation.
add, subtract Employee whose balance is adjusted. Must belong to the company of the token.
First day of the period (Y-m-d). Must not be after to.
"2026-01-01"
Last day of the period (Y-m-d), inclusive. It can be equal to from.
"2026-01-31"
Balance the client read before adjusting, in seconds. Required unless operation is reset (then optional and not checked). See the concurrency note above.
7200
Seconds to add or subtract. Optional in the validator, but when omitted (or not greater than zero) on add/subtract nothing is applied. Ignored on reset.
3600
Balance the adjustment applies to. Optional: when omitted it defaults to total_balance, except when the policy of the employee is hybrid with separated positive/negative balances, where it is mandatory (422 hybrid_independent_policy_required). Ignored on reset. Any value outside the enum is rejected with 422 invalid_movement_source.
total_balance, positive_balance, negative_balance, multiplier_rule, typifying_rule Free text stored with the adjustment and shown in its history
Was this page helpful?