Звільнення співробітника (Employee Offboarding)
Звільнення співробітника — це задача, яка автоматизує процес припинення трудових відносин з працівником, включаючи формування та підписання необхідних документів, валідацію підстави та оновлення статусу співробітника на fired.
Налаштування шаблону задачі "Звільнення" доступне лише через веб-інтерфейс Вчасно.Кадри. Публічний API дозволяє лише створювати та керувати задачами на основі вже налаштованих шаблонів.
Особливості задачі "Звільнення"
- Прив’язка до співробітника в статусі
working — задачу можна створити лише для діючого працівника.
- Вказівка підстави звільнення — обов’язкове поле
offboarding_basis із переліку офіційних підстав.
- Дата звільнення — обов’язкове поле
offboarding_date у форматі YYYY-MM-DD.
- Автоматичне оновлення статусу — після завершення задачі співробітник автоматично отримує статус
fired.
Статуси задачі
| Статус |
Опис |
new |
Задача створена, але документи ще не відправлені на підписання |
in_progress |
Документи відправлені на підписання, процес в процесі виконання |
completed |
Всі документи підписані, задача завершена, співробітник звільнений |
canceled |
Задача скасована |
Статуси маршруту задачі (Task Route)
| Статус |
Опис |
new |
Маршрут створений, але неактивний |
in_progress |
Маршрут активний, документи в процесі підписання |
completed |
Маршрут завершений, всі підписи зібрано |
canceled |
Маршрут скасований |
Статуси документів
| Статус |
Опис |
new |
Документ створений, але не відправлений |
in_progress |
Документ відправлений на підписання |
completed |
Документ підписаний усіма підписантами |
canceled |
Документ скасований |
Статуси підписантів
| Статус |
Опис |
new |
Підписант доданий, але документ ще не відправлено |
completed |
Підписант підписав документ |
declined |
Підписант відхилив документ |
Аутентифікація
Для всіх ендпоінтів необхідно передавати заголовок:
X-Vchasno-Public-Token: <token>
Ендпоінти Public API
1. Створення задачі звільнення
- Метод:
POST
- Шлях:
/api/public/v1/employee-offboarding
- Статус:
201 Created
Запит
{
"initiator_id": "00000000-0000-0000-0000-000000000000",
"external_id": "external-id-123",
"manager_id": "11111111-1111-1111-1111-111111111111",
"offboarding_basis": "by_own_will",
"offboarding_date": "2025-12-01"
}
Відповідь
{
"id": "22222222-2222-2222-2222-222222222222",
"initiator_id": "00000000-0000-0000-0000-000000000000",
"manager_id": "11111111-1111-1111-1111-111111111111",
"status": "new",
"description": null,
"cancellation_reason": null,
"cancelled_by": null,
"cancelled_by_employee_id": null,
"cancelled_by_user_id": null,
"cancellation_date": null,
"external_id": "external-id-123",
"offboarding_basis": "by_own_will",
"offboarding_date": "2025-12-01",
"name": null,
"date_created": "2025-11-16T10:00:00Z",
"date_updated": "2025-11-16T10:00:00Z"
}
Помилки
| Код |
Помилка |
| 403 |
PublicApiCompanyAccessError |
| 400 |
InvalidTaskRouteIdError, InvalidTaskStatusError, InvalidManagerError, PlainBadRequestError |
2. Отримання списку задач звільнення
- Метод:
GET
- Шлях:
/api/public/v1/employee-offboarding
- Статус:
200 OK
Підтримувані фільтри
status — фільтр по статусу задачі (new, in_progress, completed, canceled)
initiator_id — фільтр за ID працівника (ініціатора задачі)
manager_id — фільтр за ID менеджера задачі
external_id — фільтр за зовнішнім ID задачі
Помилки
| Код |
Помилка |
| 403 |
PublicApiCompanyAccessError |
3. Отримання задачі звільнення
- Метод:
GET
- Шлях:
/api/public/v1/employee-offboarding/{task_id}
- Статус:
200 OK
Помилки
| Код |
Помилка |
| 403 |
PublicApiCompanyAccessError |
| 404 |
NotFoundError |
4. Часткове оновлення задачі звільнення
- Метод:
PATCH
- Шлях:
/api/public/v1/employee-offboarding/{task_id}
- Статус:
200 OK
Запит
{
"status": "canceled",
"cancellation_reason": "Причина скасування",
"manager_id": "11111111-1111-1111-1111-111111111111",
"name": "Завдання зі звільнення"
}
Відповідь
{
"id": "22222222-2222-2222-2222-222222222222",
"initiator_id": "00000000-0000-0000-0000-000000000000",
"manager_id": "11111111-1111-1111-1111-111111111111",
"status": "canceled",
"description": null,
"cancellation_reason": "Причина скасування",
"cancelled_by": "manager",
"cancelled_by_employee_id": "11111111-1111-1111-1111-111111111111",
"cancelled_by_user_id": "33333333-3333-3333-3333-333333333333",
"cancellation_date": "2025-11-17T12:00:00Z",
"external_id": "external-id-123",
"offboarding_basis": "by_own_will",
"offboarding_date": "2025-12-01",
"name": "Завдання зі звільнення",
"date_created": "2025-11-16T10:00:00Z",
"date_updated": "2025-11-17T12:00:00Z"
}
Помилки
| Код |
Помилка |
| 403 |
PublicApiCompanyAccessError |
| 404 |
NotFoundError |
| 400 |
InvalidTaskRouteStatusError, InvalidTaskStatusError, InvalidManagerError, PlainBadRequestError |
5. Робота з документами
5.1. Створення документа
- Метод:
POST
- Шлях:
/api/public/v1/employee-offboarding/{task_id}/document
- Статус:
201 Created
Помилки
| Код |
Помилка |
| 403 |
PublicApiCompanyAccessError |
| 404 |
NotFoundError |
| 400 |
InvalidTaskRouteStatusError |
5.2. Список документів
- Метод:
GET
- Шлях:
/api/public/v1/employee-offboarding/{task_id}/document
- Статус:
200 OK
Помилки
| Код |
Помилка |
| 403 |
PublicApiCompanyAccessError |
| 404 |
NotFoundError |
5.3. Оновлення документа
- Метод:
PATCH
- Шлях:
/api/public/v1/employee-offboarding/{task_id}/document/{document_id}
- Статус:
200 OK
Помилки
| Код |
Помилка |
| 403 |
PublicApiCompanyAccessError |
| 404 |
NotFoundError |
5.4. Видалення документа
- Метод:
DELETE
- Шлях:
/api/public/v1/employee-offboarding/{task_id}/document/{document_id}
- Статус:
204 No Content
Помилки
| Код |
Помилка |
| 403 |
PublicApiCompanyAccessError |
| 404 |
NotFoundError |
6. Завантаження та завантаження файлів
6.1. Завантаження файлу документа
- Метод:
POST
- Шлях:
/api/public/v1/employee-offboarding/{task_id}/document/{document_id}/upload
- Статус:
200 OK
Помилки
| Код |
Помилка |
| 403 |
PublicApiCompanyAccessError |
| 404 |
NotFoundError |
6.2. Завантаження підписаного документа
- Метод:
GET
- Шлях:
/api/public/v1/employee-offboarding/{task_id}/document/{document_id}/download
- Статус:
200 OK
Помилки
| Код |
Помилка |
| 403 |
PublicApiCompanyAccessError |
| 404 |
NotFoundError |
7. Підписанти документів
7.1. Список підписантів
Помилки
| Код |
Помилка |
| 403 |
PublicApiCompanyAccessError |
| 404 |
NotFoundError |
7.2. Додати підписанта
Помилки
| Код |
Помилка |
| 403 |
PublicApiCompanyAccessError |
| 404 |
NotFoundError |
7.3. Видалити підписанта
Помилки
| Код |
Помилка |
| 403 |
PublicApiCompanyAccessError |
| 404 |
NotFoundError |
7.4. Нагадування підписанту
Помилки
| Код |
Помилка |
| 403 |
PublicApiCompanyAccessError |
| 404 |
NotFoundError |
8. Відправка всіх документів на підписання
Помилки
| Код |
Помилка |
| 403 |
PublicApiCompanyAccessError |
| 404 |
NotFoundError |
| 400 |
InvalidTaskRouteIdError, InvalidTaskStatusError, InvalidTaskRouteStatusError, InvalidManagerError |
Очікувана послідовність дій для задачі "Звільнення"
-
Створити задачу звільнення
2. Отримати задачу та маршрути
3. Отримати документи
4. За потреби створити або відредагувати документи
5. Завантажити файли документів
6. Керувати підписантами
7. Відправити документи на підписання
Помилки
| Код |
Помилка |
| 403 |
PublicApiCompanyAccessError |
| 404 |
NotFoundError |
| 400 |
InvalidTaskRouteIdError, InvalidTaskStatusError, InvalidTaskRouteStatusError, InvalidManagerError |
| 8. При потребі надіслати нагадування |
|
Помилки
| Код |
Помилка |
| 403 |
PublicApiCompanyAccessError |
| 404 |
NotFoundError |
| 9. Завантажити підписані документи |
|
<swagger-ui src="/openapi-filter/by-opids?opids=public_download_employee_offboarding_document" docExpansion='list'/>
Дозволені формати файлів для завантаження
- PNG, JPEG, JPG, SVG
- PDF
- XLS, XLSX, CSV
- DOC, DOCX
- TXT, XML
Поля для створення задачі "Звільнення"
| Поле |
Тип |
Опис |
Обов'язкове |
initiator_id |
UUID |
ID працівника, для якого створюється задача (повинен бути в статусі working) |
Так |
external_id |
string |
Зовнішній ідентифікатор задачі для інтеграції |
Ні |
manager_id |
UUID |
ID менеджера задачі |
Ні |
offboarding_basis |
OffboardingBasisType |
Підстава звільнення |
Так |
offboarding_date |
date (YYYY-MM-DD) |
Дата звільнення |
Так |
Перелік підстав звільнення
| Значення |
Опис та стаття законодавства |
by_own_will |
за власним бажанням, ст. 38 КЗпП України |
mutual_agreement |
за угодою сторін, п. 1 ст. 36 КЗпП України |
contract_term_end |
у зв’язку із закінченням строку трудового договору, п. 2 ст. 36 КЗпП України |
staff_reduction |
у зв’язку зі скороченням чисельності (штату), п. 1 ч. 1 ст. 40 КЗпП України |
health_position_mismatch |
у зв’язку з невідповідністю працівника займаній посаді за станом здоров’я, п. 2 ч. 1 ст. 40 КЗпП України |
previous_employee_reinstatement |
у зв’язку з відновленням на роботі працівника, п. 6 ч. 1 ст. 40 КЗпП України |
absenteeism |
за прогул без поважних причин, п. 4 ч. 1 ст. 40 КЗпП України |
intoxication_at_work |
у зв’язку з появою на роботі в нетверезому стані, п. 7 ч. 1 ст. 40 КЗпП України |
gross_misconduct_by_manager |
за одноразове грубе порушення трудових обов’язків керівником, ст. 41 КЗпП України |
immoral_act_incompatible |
за вчинення аморального проступку, ст. 41 КЗпП України |
refusal_to_transfer |
у зв’язку з відмовою від переведення на іншу роботу, п. 6 ст. 36 КЗпП України |
transfer_to_another_company |
у зв’язку з переведенням на інше підприємство, п. 5 ст. 36 КЗпП України |
production_and_labor_organization_changes |
у зв’язку зі змінами в організації виробництва і праці, п. 1 ч. 1 ст. 40 КЗпП України |
employee_death |
у зв’язку зі смертю працівника, п. 8 ст. 36 КЗпП України |
employer_death_individual |
у зв’язку зі смертю роботодавця — фізичної особи, п. 8-1 ст. 36 КЗпП України |
contract_termination |
у зв’язку з розірванням контракту, п. 3 ст. 36 КЗпП України |
refusal_due_to_change_in_essential_work_conditions |
у зв’язку з відмовою продовжувати роботу через зміну істотних умов праці, п. 6 ст. 36 КЗпП України |
attestation_commission_decision |
на підставі рішення атестаційної комісії, п. 11 ст. 36 КЗпП України |
conscription_military_service |
у зв’язку з призовом на військову службу, п. 3 ст. 36 КЗпП України |
temporary_work_completion |
у зв’язку із завершенням тимчасових робіт, п. 2 ст. 23 КЗпП України |
Поля в відповіді при отриманні задачі
| Поле |
Тип |
Опис |
id |
UUID |
ID задачі |
initiator_id |
UUID |
ID ініціатора задачі |
manager_id |
UUID | null |
ID менеджера задачі |
status |
TaskStatus |
Статус задачі: new, in_progress, completed, canceled |
description |
string | null |
Опис задачі |
cancellation_reason |
string | null |
Причина скасування задачі |
cancelled_by |
TaskCancelledByType | null |
Хто скасував задачу: initiator, manager, api, document_decline |
cancelled_by_employee_id |
UUID | null |
ID співробітника, який скасував задачу |
cancelled_by_user_id |
UUID | null |
ID користувача, який скасував задачу |
cancellation_date |
datetime | null |
Дата скасування задачі |
external_id |
string | null |
Зовнішній ID задачі |
offboarding_basis |
OffboardingBasisType | null |
Підстава звільнення |
offboarding_date |
date | null |
Дата звільнення |
name |
string | null |
Назва задачі |
date_created |
datetime |
Дата створення задачі |
date_updated |
datetime |
Дата останнього оновлення задачі |
Відправка документів на підписання
Структура SendEmployeeOffboardingDocumentsSerializer
{
"documents_to_send": [
{
"document_id": "00000000-0000-0000-0000-000000000000",
"offboarding_application_document_info": {
"company_leader_position_name": "Головний бухгалтер",
"company_name": "ТОВ «Приклад»",
"company_leader_full_name": "Іваненко Іван Іванович",
"position_name": "Аналітик",
"full_name": "Петренко Петро Петрович",
"offboarding_body_text": "Дякуємо за роботу",
"application_date_created": "2025-11-16"
},
"offboarding_order_document_info": {
"company_name": "ТОВ «Приклад»",
"company_edrpou": "12345678",
"order_date_created": "2025-11-16",
"order_number": "-",
"company_number": "1",
"full_name": "Петренко Петро Петрович",
"group_name": "Аналітики",
"position_name": "Аналітик",
"offboarding_reason": "за власним бажанням",
"offboarding_basis": "by_own_will",
"offboarding_date": "2025-12-01",
"severance": true,
"severance_hrn": 10000,
"severance_kop": 0,
"company_leader_full_name": "Іваненко Іван Іванович",
"order_date_signed": "2025-11-20"
},
"offboarding_checklist_document_info": {
"company_name": "ТОВ «Приклад»",
"company_edrpou": "12345678",
"full_name": "Петренко Петро Петрович",
"position_name": "Аналітик",
"group_name": "Аналітики",
"offboarding_date": "2025-12-01",
"rows": [
{ "name": "Здати пропуск", "employee_id": "00000000-0000-0000-0000-000000000001" },
{ "name": "Повернути комп’ютер", "employee_id": "00000000-0000-0000-0000-000000000002" }
]
},
"tags": ["hr", "offboarding"],
"new_tags": ["priority-high"]
}
]
}