API 2.0.0: blocking changes and active contracts
For PATCH /employees/{id}, an active contract prohibits both blocked: true and blocked: false. If blocked is included, the API rejects the entire patch with HTTP 422 and EMPLOYEE_HAS_ACTIVE_CONTRACT, including when dryRun=true. Other fields in that rejected request are not applied. Sending the employee’s existing blocked value does not avoid this rule.
For profile-only updates, omit blocked entirely. Configure serializers and synchronization mappings so they do not add blocked: false as a default. For example:
Do not retry an unchanged rejected patch. Resolve the blocking request through the responsible business process, or, for an independently intended profile update, send a new patch containing only the intended supported profile fields. A successful dry run does not reserve contract state; handle the same validation on the real write.
The public employee update operation exposes the blocked property. Blocking changes account state; it is not a delete operation and must not be described as data erasure.
Recommended offboarding flow
Block the employee
Use dry run first when the change is part of an automated offboarding process.
What the public contract guarantees
- The employee resource contains a boolean
blocked state.
- The update endpoint can change that state only when no active contract exists.
- The employee remains addressable by its resource ID while available in scope.
- The public API does not expose employee deletion.
What the public contract does not specify
The OpenAPI contract does not enumerate every downstream portal or business effect of a blocked employee. Do not assume that blocking automatically:
- deletes employee data
- cancels, rejects, or archives existing orders
- deletes incidents or attachments
- deletes payroll data
- fulfills a legal erasure request
Handle those processes through the responsible JobHandy and customer business procedures.
Reactivation
Only when no active contract exists and the business process permits reactivation, set:
Validate the target state and current tenant scope before applying it.
Operational checklist
Last modified on October 20, 2026