Технічне завдання: контроль сроків подачі звітності підприємствами в Україні
Головна ідея: розробити модуль для компаній, які ведуть бухгалтерський та податковий облік великої кількості клієнтів, щоб контролювати строки подачі звітності, відповідальних осіб, статуси подання, ризики прострочення та календарні події.
Важливо: строки подачі звітності повинні формуватись не тільки вручну, а й на основі довідника правил: вид оподаткування, тип платника, наявність ПДВ, працівників, ліцензій, землі, нерухомості, акцизу, ренти, статистичної звітності та інших ознак.
Ключовий результат: календар звітності + зведена таблиця по всіх організаціях на обслуговуванні з кольоровою індикацією критичності строків.
1. Мета
Метою задачі є створення модуля контролю строків подачі звітності підприємствами в Україні.
Модуль повинен дозволяти:
- вести список організацій на бухгалтерському та податковому обслуговуванні;
- фіксувати вид оподаткування кожної організації;
- фіксувати додаткові податкові ознаки організації;
- автоматично формувати перелік звітностей для кожної організації;
- розраховувати строки подачі звітності;
- відображати строки у календарі;
- призначати відповідальних осіб;
- вести статуси підготовки та подачі кожної звітності;
- показувати критичність строків кольорами;
- формувати зведену таблицю по всіх клієнтах;
- контролювати прострочення;
- надсилати нагадування відповідальним особам.
2. Область застосування
Модуль призначений для:
- бухгалтерських аутсорсингових компаній;
- податкових консультантів;
- аудиторських компаній;
- внутрішніх бухгалтерських департаментів холдингових структур;
- компаній, які ведуть багато ФОП, ТОВ, неприбуткових організацій та інших суб'єктів.
3. Основні сутності модуля
| Сутність | Опис |
|---|---|
| Організація | Компанія, ФОП або інший суб'єкт, що перебуває на обслуговуванні. |
| Вид оподаткування | Податковий режим організації. |
| Податкова ознака | Додатковий параметр, який впливає на перелік звітності. |
| Звітність | Конкретний тип звіту, декларації, розрахунку або форми. |
| Строк подачі | Гранична дата подання конкретної звітності. |
| Календар подачі | Набір подій із граничними датами по організаціях. |
| Відповідальна особа | Працівник, закріплений за організацією або конкретною звітністю. |
| Статус подачі | Поточний стан роботи зі звітністю. |
| Зведена таблиця | Контрольна таблиця по всіх організаціях, звітностях і строках. |
4. Ролі користувачів
| Роль | Опис | Основні права |
|---|---|---|
| Адміністратор | Налаштовує довідники, права доступу, календарі та правила. | Повний доступ. |
| Керівник бухгалтерської групи | Контролює групу бухгалтерів та статуси подачі. | Перегляд усіх клієнтів групи, зміна відповідальних, контроль строків. |
| Бухгалтер | Веде конкретні організації та подає звітність. | Перегляд своїх клієнтів, зміна статусів, додавання файлів і коментарів. |
| Податковий консультант | Перевіряє складні звіти та ризикові випадки. | Перегляд, коментарі, погодження. |
| Аудитор / контролер | Перевіряє повноту виконання робіт. | Перегляд журналу, статусів, історії. |
| Клієнт | Представник організації на обслуговуванні. | Обмежений перегляд власних строків і статусів, якщо потрібно. |
5. User Story
5.1. Список організацій
Як керівник бухгалтерської компанії, я хочу бачити всі організації на обслуговуванні, щоб контролювати, хто відповідає за кожного клієнта та які звіти потрібно подати.
5.2. Вид оподаткування
Як бухгалтер, я хочу вказати вид оподаткування організації, щоб система автоматично сформувала перелік обов'язкової звітності.
5.3. Календар строків
Як відповідальна особа, я хочу бачити всі строки подачі звітності в календарі, щоб не пропустити граничні дати.
5.4. Зведена таблиця
Як керівник групи, я хочу бачити зведену таблицю по всіх організаціях, щоб швидко визначати, де є ризик прострочення.
5.5. Статуси подачі
Як бухгалтер, я хочу змінювати статус кожного звіту, щоб команда бачила, що вже підготовлено, подано або прийнято.
5.6. Критичність строків
Як керівник, я хочу, щоб система підсвічувала звіти різними кольорами, щоб швидко реагувати на критичні строки.
6. Картка організації
У системі повинна бути картка організації на обслуговуванні.
6.1. Основні поля організації
| Поле | Тип | Обов'язковість | Опис |
|---|---|---|---|
| Назва організації | Рядок | Так | Повна або скорочена назва клієнта. |
| Тип суб'єкта | Довідник | Так | ФОП, юридична особа, неприбуткова організація, представництво тощо. |
| ЄДРПОУ / РНОКПП | Рядок | Так | Податковий номер організації. |
| Основний КВЕД | Рядок | Ні | Основний вид діяльності. |
| Статус обслуговування | Довідник | Так | Активний, призупинено, архів, на старті, завершено. |
| Дата початку обслуговування | Дата | Так | Дата, з якої організація ведеться компанією. |
| Дата завершення обслуговування | Дата | Ні | Заповнюється при завершенні співпраці. |
| Основний бухгалтер | Користувач | Так | Відповідальна особа за клієнта. |
| Керівник групи | Користувач | Ні | Особа, яка контролює бухгалтера. |
| Податковий консультант | Користувач | Ні | Додатковий відповідальний по складних питаннях. |
| Коментар | Текст | Ні | Додаткові примітки. |
6.2. Податкові параметри організації
| Поле | Тип | Опис |
|---|---|---|
| Вид оподаткування | Довідник | Основний режим оподаткування. |
| Платник ПДВ | Так/Ні | Впливає на декларацію з ПДВ. |
| Має найманих працівників | Так/Ні | Впливає на ПДФО, військовий збір, ЄСВ та кадрову звітність. |
| Має землю | Так/Ні | Впливає на плату за землю. |
| Має нерухомість | Так/Ні | Впливає на податок на нерухоме майно. |
| Має транспорт | Так/Ні | Впливає на транспортний податок. |
| Має акцизні операції | Так/Ні | Впливає на акцизну звітність. |
| Має рентні платежі | Так/Ні | Впливає на рентну плату. |
| Має екологічний податок | Так/Ні | Впливає на екологічну декларацію. |
| Має туристичний збір | Так/Ні | Впливає на туристичний збір. |
| Має збір за паркування | Так/Ні | Впливає на збір за місця для паркування. |
| Подає статистичну звітність | Так/Ні | Вмикає календар Держстату. |
| Подає фінансову звітність | Так/Ні | Вмикає фінансову звітність. |
| Є фінансовою установою | Так/Ні | Вмикає спеціальні календарі НБУ / регуляторні звіти. |
| Є неприбутковою організацією | Так/Ні | Вмикає звіт неприбуткової організації. |
7. Види оподаткування
Система повинна підтримувати не один жорсткий список, а комбіновану модель:
- основний вид оподаткування;
- тип суб'єкта;
- ПДВ-статус;
- наявність працівників;
- наявність спеціальних податків;
- галузеві ознаки.
7.1. Основні види оподаткування
| Код | Вид оподаткування | Для кого | Опис |
|---|---|---|---|
| GENERAL_LEGAL_ENTITY | Загальна система оподаткування юридичної особи | ТОВ, ПП, АТ, інші юрособи | Податок на прибуток або інші спеціальні режими, фінансова звітність. |
| GENERAL_FOP | Загальна система оподаткування ФОП | ФОП | Декларація про майновий стан і доходи, ПДФО, військовий збір, ЄСВ. |
| SINGLE_TAX_FOP_GROUP_1 | Єдиний податок ФОП 1 група | ФОП | Спрощена система, річна декларація. |
| SINGLE_TAX_FOP_GROUP_2 | Єдиний податок ФОП 2 група | ФОП | Спрощена система, річна декларація. |
| SINGLE_TAX_FOP_GROUP_3 | Єдиний податок ФОП 3 група | ФОП | Спрощена система, квартальна декларація. |
| SINGLE_TAX_FOP_GROUP_4 | Єдиний податок ФОП 4 група | ФОП-агровиробники | Спеціальний аграрний режим. |
| SINGLE_TAX_LEGAL_ENTITY_GROUP_3 | Єдиний податок юридична особа 3 група | Юрособи | Спрощена система, квартальна декларація. |
| SINGLE_TAX_LEGAL_ENTITY_GROUP_4 | Єдиний податок юридична особа 4 група | Юрособи-агровиробники | Спеціальний аграрний режим. |
| NON_PROFIT | Неприбуткова організація | ГО, БО, ОСББ, інші неприбуткові | Звіт про використання доходів неприбуткової організації. |
| REPRESENTATIVE_OFFICE | Представництво нерезидента | Представництва | Спеціальні правила податкової та фінансової звітності. |
| FINANCIAL_INSTITUTION | Фінансова установа | Фінансові компанії, страхові, небанківські установи | Додаткові регуляторні календарі. |
7.2. Додаткові податкові режими та ознаки
| Ознака | Впливає на звітність | Коментар |
|---|---|---|
| Платник ПДВ | Декларація з ПДВ | Зазвичай місячна звітність. |
| Податковий агент | Податковий розрахунок ПДФО, військового збору та ЄСВ | Залежить від типу платника. |
| Роботодавець | ЄСВ, ПДФО, військовий збір, кадрові та статистичні звіти | Вмикається при наявності працівників. |
| Акцизний платник | Акцизна декларація | Залежить від виду акцизних операцій. |
| Платник рентної плати | Декларація з рентної плати | Місячна або квартальна залежно від виду ренти. |
| Платник екологічного податку | Декларація екологічного податку | Зазвичай квартальна. |
| Власник / користувач землі | Декларація з плати за землю | Річна або щомісячна залежно від сценарію. |
| Власник нерухомості | Декларація з податку на нерухоме майно | Для юросіб — окремий контроль. |
| Власник дорогих авто | Декларація з транспортного податку | Для платників, які мають об'єкт оподаткування. |
| Туристичний збір | Декларація туристичного збору | Для податкових агентів. |
| Збір за паркування | Декларація збору за місця для паркування | Для операторів паркування. |
| Статистична звітність | Форми Держстату | Залежить від КВЕД, розміру, вибірки Держстату. |
| Фінансова звітність | Баланс, звіт про фінансові результати та інші форми | Залежить від категорії підприємства. |
8. Довідник видів звітності та строків
Строки повинні зберігатись у довіднику правил. Кожне правило повинно мати:
- тип звітності;
- орган подання;
- періодичність;
- правило розрахунку граничної дати;
- залежність від виду оподаткування;
- залежність від ознак організації;
- можливість перенесення строку, якщо останній день припадає на вихідний або святковий день;
- ручне коригування дати адміністратором.
8.1. Базові правила строків за Податковим кодексом
| Базовий звітний період | Загальне правило подання | Приклад використання |
|---|---|---|
| Місяць | Протягом 20 календарних днів після останнього дня звітного місяця. | ПДВ, акциз, окремі види ренти, зарплатна звітність для юросіб. |
| Квартал | Протягом 40 календарних днів після останнього дня звітного кварталу. | Єдиний податок 3 група, екологічний податок, туристичний збір. |
| Півріччя | Протягом 40 календарних днів після останнього дня звітного півріччя. | Окремі декларації, якщо передбачено формою. |
| Рік | Протягом 60 календарних днів після останнього дня звітного року. | Податок на прибуток, річна декларація єдиного податку окремих платників. |
| Рік для ПДФО / самозайнятих | До 1 травня року, що настає за звітним. | Декларація про майновий стан і доходи. |
8.2. Податкова звітність: основний довідник
| Вид звітності | Для кого | Періодичність | Базовий строк подання | Умови застосування |
|---|---|---|---|---|
| Декларація з податку на прибуток підприємств | Юридичні особи на загальній системі | Річна або квартальна | Рік — 60 календарних днів; квартал — 40 календарних днів | Залежить від категорії платника та обсягу доходу. |
| Фінансова звітність як додаток до декларації з прибутку | Платники податку на прибуток | Разом із декларацією | Разом із декларацією з податку на прибуток | Контролюється як пов'язана звітність. |
| Декларація платника єдиного податку ФОП 1 група | ФОП 1 група | Річна | 60 календарних днів після завершення року | Якщо не змінено спеціальними нормами. |
| Декларація платника єдиного податку ФОП 2 група | ФОП 2 група | Річна | 60 календарних днів після завершення року | Якщо не змінено спеціальними нормами. |
| Декларація платника єдиного податку ФОП 3 група | ФОП 3 група | Квартальна | 40 календарних днів після завершення кварталу | Для платників 3 групи. |
| Декларація платника єдиного податку юридичної особи 3 група | Юрособи 3 групи | Квартальна | 40 календарних днів після завершення кварталу | Для юросіб на спрощеній системі. |
| Декларація платника єдиного податку 4 група | ФОП / юрособи 4 групи | Річна | До 20 лютого поточного року або за актуальним правилом ДПС | Для сільгосптоваровиробників. |
| Декларація про майновий стан і доходи | ФОП на загальній системі, самозайняті особи | Річна | До 1 травня року, що настає за звітним | Для загальної системи ФОП та окремих фізичних осіб. |
| Декларація з ПДВ | Платники ПДВ | Місячна | 20 календарних днів після завершення місяця | Якщо організація має ознаку «Платник ПДВ». |
| Податковий розрахунок ПДФО, військового збору та ЄСВ | Юрособи, податкові агенти | Місячна | 20 календарних днів після завершення місяця | Для юросіб та інших податкових агентів. |
| Податковий розрахунок ПДФО, військового збору та ЄСВ | ФОП і самозайняті особи | Квартальна | 40 календарних днів після завершення кварталу | Якщо ФОП має працівників або інші підстави подання. |
| Декларація акцизного податку | Платники акцизу | Місячна | 20 календарних днів після завершення місяця | За наявності акцизних операцій. |
| Декларація екологічного податку | Платники екологічного податку | Квартальна | 40 календарних днів після завершення кварталу | За наявності об'єктів екоподатку. |
| Декларація з рентної плати | Платники рентної плати | Місячна або квартальна | Місяць — 20 днів; квартал — 40 днів | Залежить від виду рентної плати. |
| Декларація з плати за землю | Власники або користувачі землі | Річна або місячна | Річна — за спеціальним правилом; місячна — 20 днів | Налаштовується за типом землекористування. |
| Декларація з податку на нерухоме майно | Юрособи-власники нерухомості | Річна | За спеціальним правилом довідника | Для організацій з об'єктами нерухомості. |
| Декларація з транспортного податку | Власники об'єктів транспортного податку | Річна | За спеціальним правилом довідника | Якщо є об'єкт оподаткування. |
| Декларація туристичного збору | Податкові агенти туристичного збору | Квартальна | 40 календарних днів після завершення кварталу | Для готелів, хостелів та інших податкових агентів. |
| Декларація збору за місця для паркування | Оператори паркування | Квартальна | 40 календарних днів після завершення кварталу | Якщо є відповідна діяльність. |
| Звіт неприбуткової організації | Неприбуткові організації | Річна | 60 календарних днів після завершення року або за актуальним правилом | Якщо організація має неприбутковий статус. |
8.3. Фінансова звітність
| Вид звітності | Для кого | Періодичність | Строк подання | Коментар |
|---|---|---|---|---|
| Баланс | Юридичні особи | Квартальна / річна | За календарем фінансової звітності | Строк залежить від категорії підприємства. |
| Звіт про фінансові результати | Юридичні особи | Квартальна / річна | За календарем фінансової звітності | Подається разом із фінансовою звітністю. |
| Спрощена фінансова звітність | Мікро- та малі підприємства | Річна або інша | За категорією підприємства | Налаштовується у картці організації. |
| Консолідована фінансова звітність | Групи компаній | Річна | За окремим правилом | Для холдингів і груп. |
8.4. Статистична звітність
Статистична звітність повинна формуватись не тільки за видом оподаткування, а й за:
- КВЕД;
- розміром підприємства;
- наявністю працівників;
- галуззю;
- потраплянням до вибірки Держстату;
- формами, які Держстат призначив конкретному підприємству.
| Тип статистичної звітності | Приклади форм | Періодичність | Строк |
|---|---|---|---|
| Праця | 1-ПВ та інші форми | Місячна / квартальна | За календарем Держстату. |
| Промисловість | 1-П, 1-ПЕ та інші | Місячна / річна | За календарем Держстату. |
| Будівництво | 1-кб та інші | Місячна / квартальна | За календарем Держстату. |
| Транспорт | 2-тр, 51-авто та інші | Місячна / річна | За календарем Держстату. |
| Сільське господарство | 1-зерно, 21-заг, 13-заг та інші | Місячна / річна | За календарем Держстату. |
| Інвестиції | Форми інвестиційної статистики | Квартальна / річна | За календарем Держстату. |
Важливо: для статистичної звітності система повинна дозволяти вручну прикріплювати конкретні форми до організації, оскільки перелік форм може визначатись Держстатом індивідуально.
8.5. Регуляторна звітність
| Вид звітності | Для кого | Джерело строків | Коментар |
|---|---|---|---|
| НБУ-звітність | Банки, небанківські фінансові установи, учасники ринку фінансових послуг | Календар НБУ | Вмикається для фінансових установ. |
| Звітність до НКЦПФР | Учасники ринку капіталу | Регуляторний календар | Додається окремим довідником. |
| Галузева звітність | Ліцензовані види діяльності | Галузеві регулятори | Налаштовується вручну або через імпорт. |
9. Правила формування календаря
9.1. Джерела календаря
Календар строків повинен формуватись з таких джерел:
| Джерело | Опис |
|---|---|
| Довідник правил | Внутрішні правила розрахунку строків. |
| Податковий календар ДПС | Офіційні граничні дати податкової звітності. |
| Календар Держстату | Граничні дати статистичної звітності. |
| Календар НБУ | Для фінансових установ. |
| Ручні події | Події, які додає бухгалтер або адміністратор. |
| Імпортований календар | XLSX/CSV/API-імпорт строків. |
9.2. Алгоритм формування календаря
1. Отримати список активних організацій. 2. Для кожної організації визначити: - тип суб'єкта; - вид оподаткування; - ПДВ-статус; - наявність працівників; - спеціальні податкові ознаки; - статистичні та регуляторні ознаки. 3. Знайти всі правила звітності, які підходять організації. 4. Для кожного правила сформувати звітні періоди. 5. Розрахувати граничну дату подання. 6. Перевірити перенесення строку на робочий день. 7. Створити календарну подію. 8. Призначити відповідальних осіб. 9. Сформувати початковий статус. 10. Вивести подію в календарі та зведеній таблиці.
10. Статуси подачі звітності
| Статус | Код | Опис |
|---|---|---|
| Не почато | NOT_STARTED | Звітність ще не взята в роботу. |
| В роботі | IN_PROGRESS | Відповідальний готує звітність. |
| Очікуються дані від клієнта | WAITING_CLIENT_DATA | Не вистачає первинних документів або даних. |
| Очікується перевірка | WAITING_REVIEW | Звіт підготовлено, очікує перевірки. |
| На перевірці | IN_REVIEW | Звіт перевіряє керівник або консультант. |
| Готово до подачі | READY_TO_SUBMIT | Звіт перевірено і готово до подання. |
| Подано | SUBMITTED | Звіт подано до контролюючого органу. |
| Прийнято | ACCEPTED | Отримано підтвердження або квитанцію про прийняття. |
| Не прийнято | REJECTED | Звіт відхилено. |
| Потребує виправлення | NEEDS_CORRECTION | Потрібно виправити дані та подати повторно. |
| Прострочено | OVERDUE | Граничний строк минув, звіт не прийнято. |
| Не подається | NOT_REQUIRED | Для цієї організації звітність не подається. |
| Скасовано | CANCELLED | Подію скасовано адміністратором. |
11. Кольорова індикація критичності
11.1. Правила кольорів
| Колір | Стан | Умова |
|---|---|---|
| Сірий | Неактивно | Звітність не подається або подію скасовано. |
| Зелений | Безпечно | Статус Accepted або Submitted, або до строку більше 7 днів. |
| Блакитний | В роботі | Статус In Progress, строк не критичний. |
| Жовтий | Наближається строк | До строку залишилось 4–7 календарних днів. |
| Помаранчевий | Критично | До строку залишилось 1–3 календарні дні. |
| Червоний | Прострочено або ризик | Строк минув, звіт не подано або не прийнято. |
| Фіолетовий | Очікуються дані | Встановлено статус Waiting Client Data. |
| Бордовий | Відхилено | Статус Rejected або Needs Correction після граничного строку. |
11.2. Розрахунок критичності
days_left = due_date - today
if status in ["ACCEPTED"]:
color = "green"
elif status in ["NOT_REQUIRED", "CANCELLED"]:
color = "gray"
elif status in ["REJECTED", "NEEDS_CORRECTION"] and today > due_date:
color = "dark_red"
elif today > due_date and status not in ["SUBMITTED", "ACCEPTED"]:
color = "red"
elif days_left <= 3:
color = "orange"
elif days_left <= 7:
color = "yellow"
elif status == "WAITING_CLIENT_DATA":
color = "purple"
else:
color = "green"
12. Календар звітності
12.1. Види календарного відображення
Система повинна підтримувати:
- календар на місяць;
- календар на тиждень;
- календар на день;
- список строків;
- календар по бухгалтеру;
- календар по організації;
- календар по виду звітності;
- календар по групі клієнтів;
- календар по контролюючому органу.
12.2. Картка календарної події
Кожна подія календаря повинна містити:
| Поле | Опис |
|---|---|
| Організація | Клієнт, по якому потрібно подати звітність. |
| Вид звітності | Назва декларації, розрахунку або форми. |
| Період | Місяць, квартал, рік або інший період. |
| Гранична дата | Останній день подання. |
| Відповідальний | Основна відповідальна особа. |
| Статус | Поточний статус подачі. |
| Критичність | Рівень ризику за строком. |
| Коментар | Внутрішня примітка. |
| Файли | Чернетка, поданий файл, квитанція, підтвердження. |
13. Зведена таблиця контролю
13.1. Призначення
Зведена таблиця повинна показувати стан подачі звітності по всіх організаціях за вибраний період.
13.2. Мінімальні колонки
| Колонка | Опис |
|---|---|
| Організація | Назва клієнта. |
| ЄДРПОУ / РНОКПП | Податковий номер. |
| Вид оподаткування | Основний податковий режим. |
| Відповідальний бухгалтер | Закріплена особа. |
| Вид звітності | Назва звіту. |
| Звітний період | Період, за який подається звіт. |
| Гранична дата | Останній день подання. |
| Днів до строку | Розрахунок від поточної дати. |
| Статус | Поточний статус. |
| Критичність | Колір або текстовий рівень ризику. |
| Дата подання | Фактична дата подання. |
| Дата прийняття | Дата отримання підтвердження. |
| Коментар | Останній коментар відповідального. |
13.3. Фільтри зведеної таблиці
Система повинна підтримувати фільтри:
- період;
- відповідальна особа;
- керівник групи;
- організація;
- вид оподаткування;
- вид звітності;
- статус;
- критичність;
- тільки прострочені;
- тільки ті, що очікують дані від клієнта;
- тільки ті, що потребують перевірки;
- тільки не прийняті;
- тільки найближчі 7 днів;
- тільки поточний місяць.
14. Відповідальні особи
14.1. Закріплення відповідальних
Відповідальні можуть призначатися на рівні:
| Рівень | Опис |
|---|---|
| Організація | Один основний бухгалтер відповідає за всі звіти організації. |
| Вид звітності | Різні звіти організації можуть мати різних відповідальних. |
| Група організацій | Команда відповідає за групу клієнтів. |
| Контрольний рівень | Керівник групи або консультант перевіряє звітність. |
14.2. Правила заміщення
Система повинна підтримувати:
- тимчасове заміщення бухгалтера;
- передачу організації іншому бухгалтеру;
- масове перепризначення відповідальних;
- історію зміни відповідальних;
- контроль незакріплених організацій.
15. Нагадування та сповіщення
15.1. Типи сповіщень
| Подія | Кому надсилати | Коли |
|---|---|---|
| Наближається строк | Відповідальний бухгалтер | За 7, 3 та 1 день до строку. |
| Критичний строк | Бухгалтер + керівник групи | За 1 день до строку. |
| Прострочення | Бухгалтер + керівник + адміністратор | У день після граничної дати. |
| Очікуються дані від клієнта | Бухгалтер + клієнт, якщо увімкнено | За налаштуванням. |
| Звіт відхилено | Бухгалтер + керівник | Одразу після зміни статусу. |
| Звіт прийнято | Бухгалтер | Після отримання підтвердження. |
15.2. Канали сповіщень
- внутрішні повідомлення системи;
- email;
- Telegram / Viber / інший месенджер — опційно;
- push-сповіщення — опційно;
- щоденний дайджест керівнику;
- тижневий звіт по ризиках.
16. Модель даних
16.1. organizations
| Поле | Тип | Опис |
|---|---|---|
| id | uuid | ID організації. |
| name | varchar | Назва організації. |
| entity_type | varchar | ФОП, юридична особа, неприбуткова тощо. |
| tax_id | varchar | ЄДРПОУ або РНОКПП. |
| taxation_type | varchar | Основний вид оподаткування. |
| is_vat_payer | boolean | Ознака платника ПДВ. |
| has_employees | boolean | Наявність найманих працівників. |
| has_excise | boolean | Акцизні операції. |
| has_rent | boolean | Рентна плата. |
| has_ecological_tax | boolean | Екологічний податок. |
| has_land | boolean | Земля. |
| has_real_estate | boolean | Нерухомість. |
| has_transport_tax | boolean | Транспортний податок. |
| has_statistical_reporting | boolean | Статистична звітність. |
| main_responsible_user_id | uuid | Основний бухгалтер. |
| manager_user_id | uuid | Керівник групи. |
| status | varchar | Активний, архів, призупинено. |
| service_start_date | date | Початок обслуговування. |
| service_end_date | date | Завершення обслуговування. |
16.2. reporting_types
| Поле | Тип | Опис |
|---|---|---|
| id | uuid | ID виду звітності. |
| code | varchar | Код звітності. |
| name | varchar | Назва звітності. |
| authority | varchar | ДПС, Держстат, НБУ, інший орган. |
| category | varchar | Податкова, фінансова, статистична, регуляторна. |
| periodicity | varchar | Місячна, квартальна, річна. |
| base_due_rule | varchar | Правило розрахунку строку. |
| is_active | boolean | Чи використовується правило. |
16.3. reporting_rules
| Поле | Тип | Опис |
|---|---|---|
| id | uuid | ID правила. |
| reporting_type_id | uuid | Вид звітності. |
| entity_type | varchar | Тип суб'єкта. |
| taxation_type | varchar | Вид оподаткування. |
| condition_json | jsonb | Умови застосування правила. |
| due_rule_json | jsonb | Формула розрахунку строку. |
| shift_if_weekend | boolean | Переносити строк із вихідного. |
| is_required | boolean | Чи обов'язкова звітність. |
| priority | integer | Пріоритет правила. |
16.4. reporting_calendar_items
| Поле | Тип | Опис |
|---|---|---|
| id | uuid | ID календарної події. |
| organization_id | uuid | Організація. |
| reporting_type_id | uuid | Вид звітності. |
| period_type | varchar | Місяць, квартал, рік. |
| period_value | varchar | Наприклад 2026-04, 2026-Q1, 2026. |
| due_date | date | Гранична дата подання. |
| responsible_user_id | uuid | Відповідальний. |
| reviewer_user_id | uuid | Перевіряючий. |
| status | varchar | Статус подачі. |
| criticality | varchar | Рівень критичності. |
| submitted_at | timestamp | Дата подання. |
| accepted_at | timestamp | Дата прийняття. |
| comment | text | Коментар. |
16.5. reporting_status_history
| Поле | Тип | Опис |
|---|---|---|
| id | uuid | ID запису історії. |
| calendar_item_id | uuid | Календарна подія. |
| old_status | varchar | Попередній статус. |
| new_status | varchar | Новий статус. |
| changed_by | uuid | Користувач, який змінив статус. |
| changed_at | timestamp | Дата зміни. |
| comment | text | Коментар до зміни. |
17. API модуля
17.1. Створення організації
POST /api/v1/organizations
17.2. Оновлення податкових параметрів організації
PATCH /api/v1/organizations/{organization_id}/tax-settings
17.3. Генерація календаря звітності
POST /api/v1/reporting-calendar/generate
Приклад тіла запиту:
{
"year": 2026,
"organization_ids": [],
"regenerate_existing": false
}
17.4. Отримання календаря
GET /api/v1/reporting-calendar?date_from=2026-05-01&date_to=2026-05-31
17.5. Отримання зведеної таблиці
GET /api/v1/reporting-dashboard?period=2026-05&responsible_user_id=...
17.6. Зміна статусу звітності
POST /api/v1/reporting-calendar/{calendar_item_id}/change-status
Приклад тіла запиту:
{
"status": "SUBMITTED",
"comment": "Звіт подано через електронний кабінет",
"submitted_at": "2026-05-07T12:30:00Z"
}
17.7. Призначення відповідального
POST /api/v1/reporting-calendar/{calendar_item_id}/assign-responsible
18. Acceptance Criteria
18.1. Організації
| № | Критерій | Очікуваний результат |
|---|---|---|
| AC-1 | Користувач створює організацію. | Організація з'являється у списку клієнтів. |
| AC-2 | Користувач вказує вид оподаткування. | Система зберігає податковий режим організації. |
| AC-3 | Користувач вказує додаткові ознаки. | Система враховує їх при формуванні звітності. |
| AC-4 | Організацію переведено в архів. | Нові календарні події для неї не формуються. |
18.2. Календар
| № | Критерій | Очікуваний результат |
|---|---|---|
| AC-5 | Запущено генерацію календаря. | Система створює події звітності по організаціях. |
| AC-6 | Строк припадає на вихідний. | Система переносить граничну дату за правилом. |
| AC-7 | Організація є платником ПДВ. | У календарі з'являється декларація з ПДВ. |
| AC-8 | Організація має працівників. | У календарі з'являється зарплатна звітність. |
18.3. Статуси
| № | Критерій | Очікуваний результат |
|---|---|---|
| AC-9 | Бухгалтер змінює статус на «В роботі». | Статус змінюється та записується в історію. |
| AC-10 | Бухгалтер змінює статус на «Подано». | Фіксується дата подання. |
| AC-11 | Бухгалтер змінює статус на «Прийнято». | Подія позначається зеленим кольором. |
| AC-12 | Строк минув, а звіт не подано. | Подія позначається червоним кольором. |
18.4. Зведена таблиця
| № | Критерій | Очікуваний результат |
|---|---|---|
| AC-13 | Керівник відкриває зведену таблицю. | Він бачить всі організації, строки, відповідальних і статуси. |
| AC-14 | Користувач фільтрує за відповідальним. | Таблиця показує тільки організації цього бухгалтера. |
| AC-15 | Користувач фільтрує прострочені. | Таблиця показує тільки прострочені звіти. |
| AC-16 | До строку залишилось 3 дні. | Рядок підсвічується помаранчевим. |
19. MVP
До MVP входить:
- список організацій;
- картка організації;
- види оподаткування;
- податкові ознаки;
- довідник видів звітності;
- базові правила строків;
- генерація календаря;
- ручне коригування строків;
- призначення відповідальних;
- зміна статусів;
- кольорова індикація;
- зведена таблиця;
- фільтри;
- журнал зміни статусів.
До MVP не входить:
- автоматичне подання звітності;
- інтеграція з ДПС;
- автоматичне отримання квитанцій;
- автоматичне завантаження календаря ДПС через API;
- повна інтеграція з Держстатом;
- AI-прогнозування ризиків;
- клієнтський портал.
20. Етапи реалізації
Етап 1. Довідники та організації
- створити довідник організацій;
- створити довідник видів оподаткування;
- створити довідник податкових ознак;
- створити довідник звітностей;
- реалізувати картку організації.
Етап 2. Правила строків
- створити reporting_rules;
- реалізувати правила місячної, квартальної та річної звітності;
- реалізувати перенесення строків з вихідних;
- реалізувати ручне коригування дат.
Етап 3. Календар
- реалізувати генерацію календаря;
- реалізувати місячний, тижневий і списковий вид;
- реалізувати фільтри;
- реалізувати картку події.
Етап 4. Статуси та відповідальні
- реалізувати призначення відповідальних;
- реалізувати зміну статусів;
- реалізувати історію статусів;
- реалізувати коментарі та файли.
Етап 5. Зведена таблиця
- реалізувати контрольну таблицю;
- реалізувати кольорову індикацію;
- реалізувати фільтри по ризиках;
- реалізувати експорт у Excel.
Етап 6. Нагадування
- реалізувати нагадування за 7, 3 та 1 день;
- реалізувати сповіщення про прострочення;
- реалізувати щоденний дайджест керівнику.
Етап 7. Production hardening
- додати ролі та права;
- додати аудит;
- додати резервне копіювання;
- додати імпорт календарів;
- додати інтеграції з поштою або месенджерами.
21. Ризики
| Ризик | Опис | Як зменшити |
|---|---|---|
| Зміна строків подачі | Законодавство та календарі можуть змінюватись. | Зробити строки налаштовуваними та підтримати ручне коригування. |
| Неповний перелік звітностей | У різних компаній можуть бути специфічні звіти. | Дозволити додавати звітності вручну. |
| Статистична звітність індивідуальна | Держстат може призначати форми конкретним підприємствам. | Дозволити прикріплювати форми до організації вручну. |
| Людський фактор | Бухгалтер може забути змінити статус. | Реалізувати нагадування та контроль прострочень. |
| Багато клієнтів | Велика кількість організацій може перевантажити календар. | Додати фільтри, групи, відповідальних і зведену таблицю. |
| Вихідні та перенесення строків | Строки можуть переноситись. | Реалізувати календар робочих/вихідних днів. |
22. Відкриті питання
- Чи потрібно контролювати тільки податкову звітність, чи також фінансову, статистичну, кадрову та регуляторну?
- Чи потрібна інтеграція з Електронним кабінетом ДПС?
- Чи потрібно отримувати квитанції автоматично?
- Чи потрібен клієнтський портал?
- Чи потрібно надсилати клієнтам запити на документи?
- Чи потрібно інтегрувати модуль з CRM?
- Чи потрібно формувати SLA по кожному клієнту?
- Чи потрібно вести вартість обслуговування по кожній організації?
- Чи потрібно враховувати відповідальність за прострочення?
- Чи потрібно імпортувати офіційний податковий календар автоматично?
- Чи потрібно підтримувати декілька країн, чи тільки Україну?
- Чи потрібно підтримувати мобільні push-сповіщення?
23. Джерела
- https://zir.tax.gov.ua/main/calendar/
- https://www.cabinet.tax.gov.ua/calendar
- https://svp.tax.gov.ua/media-ark/news-ark/969738.html
- https://tax.gov.ua/media-tsentr/novini/984181.html
- https://rv.tax.gov.ua/media-ark/news-ark/972322.html
- https://www.pfu.gov.ua/kr/436128-zvitnist-do-pensijnogo-fondu-ukrayiny-vid-strahuvalnykiv-shho-zminylosya-z-2026-roku/
- https://bank.gov.ua/ua/statistic/nbureport/calendar-statreport
- https://www.ukrstat.gov.ua/