Податковий календар на JavaScript: строки для сайту і кабінету
Оновлено 26.09.2026
Сервіс для підприємців, онлайн-бухгалтерія або кабінет клієнта бухгалтерської фірми виграють, коли на головному екрані видно найближчі податкові строки. Людина заходить і одразу бачить: через тиждень декларація, через два тижні сплата. Initask API повертає строки на місяць для обраної ролі платника запитом `GET https://dani.initask.com/v1/deadlines`. Нижче приклад на JavaScript і поради, як зробити з відповіді зрозумілий інтерфейс.
Приклад
```javascript const r = await fetch("https://dani.initask.com/v1/deadlines?role=fop-3&month=2026-11", { headers: { Authorization: `Bearer ${process.env.INITASK_KEY}` }, }); const { ok, data, error } = await r.json(); console.log(r.headers.get("X-RateLimit-Remaining"), data); ```
Ключ читається зі змінної середовища на сервері. Кабінет у браузері отримує строки від вашого сервера, і ключ Initask API назовні не потрапляє.
Від даних до екрана
У відповіді є роль, місяць і перелік строків за датою. Кожен строк містить назву, дату, вид, опис дії, норму закону, посилання на сторінку і позначку для звірки. Для ФОП третьої групи на листопад 2026 там, серед іншого, декларація єдиного податку за III квартал зі строком 9 листопада і військовий збір за III квартал зі строком 19 листопада.
Групування за видом
Поле `kind` має три значення: `report` для звітності, `pay` для сплати, `register` для реєстрації. В інтерфейсі їх варто розрізняти кольором чи значком. Людина одразу бачить, де треба заплатити гроші, а де лише подати документ.
Відлік днів
Дата строку вже врахувала перенесення з вихідного на наступний робочий день за п. 49.20 ПКУ. Інтерфейсу лишається порахувати, скільки днів лишилось, і підсвітити строки ближчого тижня. Рахуйте дні за київським часом, інакше для користувачів в інших часових поясах строк «сьогодні» може показуватися як «завтра».
Позначка verify
Строки з `verify: true` варто показувати з підказкою «звірте з календарем ДПС». Це строки, які можуть зсунутися, наприклад через свято під час воєнного стану. Чесна позначка в інтерфейсі краще за впевнену дату, яка потім виявиться неправильною.
Ролі
Параметр `role` приймає девʼять значень: усі строки разом, ФОП кожної з трьох груп єдиного податку, ФОП на загальній системі, ТОВ, ТОВ на єдиному податку, платник ПДВ і роботодавець. Точні коди ролей наведено в документації. Якщо користувач має кілька ролей, сервер робить кілька запитів і обʼєднує строки за датою. Параметр `month` у форматі YYYY-MM, без нього береться поточний місяць за Києвом.
Сторінка строку і пояснення
Кожен строк має посилання на окрему сторінку з поясненням і посилання на текст закону. У кабінеті це дозволяє не писати власних довідок: коротка картка строку веде на повний опис. Опис дії в полі `description` написаний для людини, наприклад для декларації третьої групи там нагадують, що ФОП додають до неї відомості про ЄСВ за себе. Показуйте цей текст у розгорнутій картці строку дослівно.
Порожній місяць
Для деяких ролей у деяких місяцях строків небагато або немає зовсім. Інтерфейс має чесно показати «цього місяця строків немає» і, можливо, найближчий строк наступного місяця. Для цього сервер може заздалегідь запитувати і наступний місяць.
Ліміти і 429
Заголовки лімітів приходять у кожній відповіді. Після вичерпання ліміту приходить код 429 і заголовок `Retry-After`. Кабінет спокійно переживає таку паузу, якщо строки кешуються: вони однакові для всіх користувачів однієї ролі, і сервер може тримати їх у памʼяті до кінця дня. Шлюз і сам кешує відповідь на 360 хвилин.
| План | Запитів | Ціна, грн на місяць |
|---|---|---|
| Безкоштовний | 100 на добу | 0 |
| Старт | 10000 на місяць | 990 |
| Про | 100000 на місяць | 2990 |
Помилки
| Код | Помилка | Коли |
|---|---|---|
| 400 | bad_request | невідома роль або місяць у форматі, відмінному від YYYY-MM |
| 404 | not_found | рік поза календарем (зараз 2026 і 2027) |
Що робити
- Отримуйте строки на сервері за ролями користувачів і кешуйте їх на день.
- Показуйте звітність, сплату і реєстрацію різними значками.
- Рахуйте дні до строку за київським часом і підсвічуйте найближчі.
- Додайте підказку для строків з `verify: true`; для видів діяльності користувачів підключіть API КВЕД.
- Опис полів у документації податкового календаря, тарифи на сторінці Ціни і ліміти.
Питання і відповіді
Як показати податкові строки на сайті через JavaScript?
Запит fetch з сервера до https://dani.initask.com/v1/deadlines з параметрами role і month повертає перелік строків за датою. Кешуйте відповідь і віддавайте її кабінету.
Як розрізнити звіт і сплату в інтерфейсі?
Поле kind має значення report для звітності, pay для сплати і register для реєстрації.
Що робити з кодом 429?
Зачекати час із заголовка Retry-After. Щоб рідше впиратися в ліміт, кешуйте строки: вони однакові для всіх користувачів однієї ролі.