Перейти до змісту

Звільнення співробітника (Employee Offboarding)

Звільнення співробітника — це задача, яка автоматизує процес припинення трудових відносин з працівником, включаючи формування та підписання необхідних документів, валідацію підстави та оновлення статусу співробітника на fired.

Налаштування шаблону задачі "Звільнення" доступне лише через веб-інтерфейс Вчасно.Кадри. Публічний API дозволяє лише створювати та керувати задачами на основі вже налаштованих шаблонів.

Особливості задачі "Звільнення"

  1. Прив’язка до співробітника в статусі working — задачу можна створити лише для діючого працівника.
  2. Вказівка підстави звільнення — обов’язкове поле offboarding_basis із переліку офіційних підстав.
  3. Дата звільнення — обов’язкове поле offboarding_date у форматі YYYY-MM-DD.
  4. Автоматичне оновлення статусу — після завершення задачі співробітник автоматично отримує статус 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

Очікувана послідовність дій для задачі "Звільнення"

  1. Створити задачу звільнення

    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"]
    }
  ]
}