Реквізити оператора ще не заповнені
Документ не має юридичної сили, доки в ньому не названо сторону, а еквайринг не проходить перевірку. Позначені поля заповнюються у lib/legal.ts за витягом з ЄДР — по одному місцю на всі пʼять сторінок.
Правові документи
Безпека
InvestKit тримає чутливі фінансові записи, тому ця сторінка описує, як вони захищені, що ми навмисно не зберігаємо, чого ми не сертифікували і як повідомити про проблему. Це не юридичний документ, а опис механізмів — але він частина обіцянки так само, як і решта сторінок тут.
На цій сторінці
Оператор сервісу
- Виконавець
- {{OPERATOR_LEGAL_NAME}}
- Адреса
- {{OPERATOR_ADDRESS}}
- РНОКПП
- {{OPERATOR_TAX_ID}}
- Запис в ЄДР
- {{OPERATOR_REGISTRY_RECORD}}
- Електронна пошта
- {{OPERATOR_EMAIL}}
- Телефон
- {{OPERATOR_PHONE}}
Коротко
- Немає жодного підключення до ваших брокерських чи банківських рахунків. Сервіс фізично не може виконати операцію з вашими грошима.
- Ми не зберігаємо паролів: єдиний вхід — через Google.
- Ізоляція даних забезпечена на рівні Postgres, а не лише в коді застосунку.
- Ми не запитуємо РНОКПП, і в застосунку немає поля для нього.
- Файли брокерських виписок не зберігаються — лише розпізнані з них операції.
- XML-файли для ДПС заповнюються у вашому браузері й не надсилаються на сервер.
- Немає аналітики, рекламних пікселів і записування сесій.
- Повних реквізитів платіжних карт ми не отримуємо.
1. Вхід і сесії
Автентифікація працює через Supabase Auth з єдиним провайдером — Google OAuth. Власного пароля InvestKit не має і не створює, тому не існує бази паролів, яку можна викрасти або підібрати.
Безпека вашого акаунта дорівнює безпеці вашого Google-акаунта. Двофакторна автентифікація там — найкорисніша річ, яку ви можете зробити для захисту свого портфеля тут.
Вхід використовує PKCE: код авторизації, перехоплений у дорозі, без відповідного значення у вашому браузері не спрацює. Сесія тримається в cookie й поновлюється автоматично; вихід із акаунта її відкликає.
Сесія перевіряється на сервері при кожному запиті — звертанням до сервера автентифікації, а не читанням того, що надіслав браузер. Це різниця між «токен виглядає правильно» і «токен справді чинний».
2. Ізоляція даних
Кожен рядок з вашими даними належить вашому ідентифікатору, і доступ до нього обмежений політиками Row Level Security у самому Postgres. Запит, виконаний з вашою сесією, фізично не повертає чужих рядків — навіть якщо код застосунку припустився помилки й забув умову фільтрації.
Це рівень, на якому проходить межа між користувачами. Перевірки в застосунку існують теж, але вони другі, а не єдині.
Привілейований службовий ключ, що обходить ці політики, використовується лише серверними завданнями — резервним копіюванням і щоденними знімками — і ніколи не входить до коду, що виконується в браузері. Кожна функція за цією межею приймає ідентифікатор користувача явним параметром, щоб помилку доступу треба було написати навмисно, а не забути.
Журнал операцій ведеться лише додаванням. Виправлення й скасування — це нові записи, а не перезапис старих, тому історію змін не можна безслідно переписати.
3. Інфраструктура і постачальники
| Постачальник | Роль | Публічні сертифікації |
|---|---|---|
| Supabase | Postgres, автентифікація, приватне сховище резервних копій. Шифрування у стані зберігання (AES-256) і передавання (TLS) | SOC 2 Type 2, ISO 27001 |
| Vercel | Хостинг застосунку, HTTPS, планові завдання | SOC 2 Type 2, ISO 27001 |
| Вхід через Google-акаунт | ISO 27001, SOC 2 і SOC 3 | |
| LiqPay (ПриватБанк) | Інтернет-еквайринг: сторінка оплати й обробка реквізитів карт | PCI DSS |
База даних і резервні копії розміщені в регіоні {{DATA_REGION}}.
Ми спираємося на сертифікації цих постачальників щодо інфраструктури й відповідаємо за власний код, конфігурацію, секрети та доступи.
4. Що ми навмисно не тримаємо
- Паролі
- — ні власних, ні брокерських. Ні до сервісу, ні до ваших рахунків.
- Доступи до брокерів і банків
- — жодного підключення не існує — ні через агрегатор, ні через API брокера. Дані потрапляють у сервіс лише вашими руками.
- РНОКПП та ідентифікаційні дані платника податків
- — у застосунку немає для них поля. Розділ I декларації заповнює кабінет ДПС.
- Файли брокерських виписок
- — від кожного файлу зберігається назва, розмір і контрольна сума SHA-256, щоб розпізнати повторне завантаження. Сам вміст не зберігається ні в базі, ні в журналах.
- Повні реквізити карт
- — номер, строк дії та CVV бачить лише платіжний провайдер. Нам він повертає токен і замаскований номер.
5. Брокерські виписки
Виписка обробляється в межах одного запиту: сервер читає файл, розпізнає операції й показує вам, що знайшов. У базу потрапляють лише ті операції, які ви підтвердили, і запис про сам факт імпорту.
Контрольна сума файлу зберігається навмисно: вона дає змогу впізнати виписку, яку ви вже завантажували, і не подвоїти операції. Відновити з неї вміст файлу неможливо.
Імпорт можна скасувати. Скасування — це подія, а не стирання: запис про імпорт залишається з позначкою скасування, а створені ним операції знімаються.
6. XML для ДПС заповнюється у вашому браузері
Порожні XML-файли декларації та додатка Ф1, вивантажені з Електронного кабінету ДПС, містять у шапці ваші ПІБ, РНОКПП і податкову адресу. Сервіс заповнює лише клітинки із сумами — і робить це у вашому браузері.
Ці файли не завантажуються на наш сервер, не потрапляють у журнали й не зберігаються. Ми не читаємо шапки і не можемо її прочитати.
У базі залишається тільки те, що сервіс і так обчислив із вашого журналу: суми за роками. Не ваша особа.
7. Резервні копії
Раз на тиждень сервіс формує копію даних кожного користувача в приватне сховище, окрема тека на користувача. Зберігається вісім останніх копій — приблизно два місяці.
Копії потрібні від пошкодження даних: помилковий масовий імпорт або видалення можуть залишитися непоміченими тижнями, і єдина копія, що перезаписується, встигла б замінити хорошу версію зіпсованою.
Сховище приватне: обʼєкти недоступні за посиланням і не читаються з браузера. Доступ до них має лише серверне завдання зі службовим ключем.
Сховище копій розміщене в тому самому проєкті Supabase, що й база даних. Це усвідомлений компроміс раннього етапу: він захищає від пошкодження даних, але не від втрати всього проєкту. Перенесення копій у незалежне від бази місце стоїть у планах до запуску платних планів.
Найкраща резервна копія — та, що у вас. Експорт вивантажує весь журнал у форматі, який читає будь-який табличний редактор, і не залежить ні від нас, ні від наших постачальників.
8. Чого ми не сертифікували
InvestKit не проходив SOC 2, ISO 27001 чи іншого зовнішнього аудиту безпеки й не проходив зовнішнього тестування на проникнення. Сертифікації в таблиці вище належать постачальникам інфраструктури, а не нам.
Ми пишемо це прямо, бо перелік чужих сертифікацій легко прочитати як власний. Наша частина відповідальності — код, конфігурація, секрети, доступи й операційні процеси — не сертифікована жодною третьою стороною.
9. Ваша частина
- Увімкніть двофакторну автентифікацію в Google-акаунті, через який входите.
- Виходьте з акаунта на спільних пристроях: офлайн-кеш браузера може містити відкриті сторінки з вашими сумами.
- Користуйтеся режимом приватності, коли поруч хтось є: одна кнопка розмиває всі суми на екрані.
- Тримайте власний експорт даних — він не залежить від нашої доступності.
- Перевіряйте розрахунки перед поданням декларації.
10. Повідомити про проблему безпеки
Якщо ви знайшли вразливість, побачили чужі дані або помітили підозрілу активність у своєму акаунті — напишіть на нашу електронну пошту з темою SECURITY. Ми відповідаємо протягом 3 робочих днів.
Корисно вказати: адресу сторінки, послідовність дій для відтворення, час події, браузер і скриншот. Не надсилайте паролів, токенів, службових ключів чи повних реквізитів карт — щоб перевірити повідомлення, вони нам не потрібні.
Програми винагород за знайдені вразливості ми не маємо й виплат не обіцяємо. Але й не будемо переслідувати за добросовісне дослідження, яке не порушує приватності інших користувачів, не руйнує даних і не виводить сервіс з роботи.
Про порушення захисту персональних даних, яке створює ризик для ваших прав, ми повідомляємо без невиправданої затримки — не пізніше 72 годин з моменту, коли нам стало про нього відомо.
11. Джерела постачальників
Твердження про постачальників у таблиці вище перевіряються за їхніми власними публічними сторінками:
Документ складено українською та англійською мовами. У разі розбіжностей переважає українська версія.
Залишилося питання?
Напишіть нам на адресу з реквізитів вище. Ми відповідаємо протягом 3 робочих днів.
{{OPERATOR_EMAIL}}