1. Kto odpowiada za Twoje dane
Administratorem danych osobowych użytkowników aplikacji Beezz i strony beezz.app jest AKN Software Kasper Janowski (dalej „my”). Pełne dane rejestrowe - adres i NIP - są w Regulaminie.
W sprawach danych osobowych pisz na privacy@beezz.app. W pozostałych - kontakt@beezz.app. Nie wyznaczyliśmy inspektora ochrony danych; korespondencję czyta właściciel firmy.
2. Zasady, na których to stoi
- Nie łączymy się z Twoim bankiem. Nie prosimy o login do banku, nie mamy dostępu do Twojego rachunku i nie pobieramy historii transakcji. Beezz nie jest usługą finansową.
- Nie wyświetlamy reklam. W aplikacji nie ma żadnego SDK reklamowego ani sieci reklamowej.
- Nie śledzimy Cię między aplikacjami ani stronami. Nie używamy identyfikatorów reklamowych (IDFA, GAID) i nie prosimy o zgodę na śledzenie.
- Nie sprzedajemy danych i nie przekazujemy ich brokerom danych.
- Nie mamy zewnętrznej analityki. Żadnego Firebase, Amplitude, Mixpanela ani testów A/B.
- Twoje dane leżą w Unii Europejskiej - w bazie Supabase w regionie Unia Europejska (Paryż).
3. Konto: bez rejestracji, bez hasła
Konto powstaje automatycznie i anonimowo przy pierwszym uruchomieniu aplikacji. Nie ma ekranu logowania, nie ma rejestracji, nie podajesz e-maila. Na starcie wiemy o Tobie tyle, co nic: identyfikator konta w postaci losowego UUID.
Możesz - dobrowolnie - powiązać konto z Google albo Apple, żeby wejść w swoje dane na innym telefonie. Dopiero wtedy dostajemy dane z tamtego konta: adres e-mail oraz imię i nazwisko, a od Google także adres (link) zdjęcia profilowego. Ścieżki e-mail plus hasło nie ma w ogóle, więc nie przechowujemy żadnych haseł.
4. Jakie dane zbieramy i po co
| Dane | Skąd pochodzą | Po co | Podstawa prawna |
|---|---|---|---|
| Identyfikator konta (UUID) | Aplikacja tworzy go sama przy pierwszym uruchomieniu | Utrzymanie konta i przypisanie do niego danych | art. 6 ust. 1 lit. b RODO - wykonanie umowy |
| Adres e-mail, imię i nazwisko z konta Google lub Apple, a z konta Google także adres zdjęcia profilowego | Google albo Apple, gdy sam powiążesz konto | Wejście w swoje dane na innym urządzeniu | art. 6 ust. 1 lit. b RODO |
| Nazwa wyświetlana i język aplikacji | Podajesz w profilu (albo bierze się z konta Google lub Apple) | Rozpoznanie Cię w gospodarstwie, język interfejsu | art. 6 ust. 1 lit. b RODO |
| Domownicy: imię, kolor, emoji | Wpisujesz je Ty | Rozdzielenie wydatków między osoby w budżecie | art. 6 ust. 1 lit. b oraz lit. f RODO |
| Wpisy budżetowe: kwota, kierunek (wydatek albo wpływ), data, kategoria, nazwa sklepu, notatka, autor | Wpisujesz je Ty, dyktujesz albo zatwierdzasz z powiadomienia bankowego | Rdzeń aplikacji - prowadzenie budżetu | art. 6 ust. 1 lit. b RODO |
| Oszczędzanie (Skarbonka): cele - nazwa, którą wpisujesz, kwota docelowa, waluta, kolor i opcjonalny termin - oraz wpłaty i wypłaty: kwota, data, cel, autor i notatka do 500 znaków | Wpisujesz je Ty; zapisuje je serwer | Odkładanie pieniędzy na wspólne cele gospodarstwa | art. 6 ust. 1 lit. b RODO |
| Budżet gospodarstwa (nazwa, waluta, kwota, dzień rozpoczęcia miesiąca, strefa czasowa - np. Europe/Warsaw), limity kategorii, kategorie własne, opłaty cykliczne wraz z ich opisami | Ustawiasz je Ty; strefę czasową podaje telefon osoby, która prowadzi budżet | Liczenie, ile zostało do końca miesiąca, i dzielenie dni tak samo jak na Twoim telefonie | art. 6 ust. 1 lit. b RODO |
| Odpowiedź na pytanie o zgodę na AI (tak albo nie), zapisana przy Twoim członkostwie w budżecie | Udzielasz jej sam - szczegóły w sekcji 7 | Uszanowanie Twojej odmowy także wtedy, gdy raport tygodnia otwiera ktoś inny z budżetu | art. 6 ust. 1 lit. c w zw. z art. 7 ust. 1 RODO - wykazanie zgody |
| Transkrypt dyktowanego zdania i wynik jego rozłożenia na kwotę, datę i kategorię | Powstaje z Twojego dyktowania - szczegóły w sekcji 6 | Zamiana zdania na gotowy wpis; podgląd, gdy rozpoznanie się pomyli | art. 6 ust. 1 lit. b RODO |
| Podpowiedzi kategorii gospodarstwa - słowa, po których aplikacja rozpoznaje kategorię, w praktyce nazwy sklepów i produktów | Powstają z Twoich wpisów; zapisuje je serwer | Trafniejsze podpowiadanie kategorii w Twoim budżecie | art. 6 ust. 1 lit. b RODO |
| Kody zaproszeń do gospodarstwa (8 znaków, ważne 7 dni) | Generuje baza | Dołączenie domownika do wspólnego budżetu | art. 6 ust. 1 lit. b RODO |
| Plan konta (darmowy / BEEZZ), identyfikator zakupu ze sklepu, daty ważności | Apple albo Google po zakupie, za pośrednictwem RevenueCat | Odblokowanie funkcji płatnych, odnowienia, zwroty | art. 6 ust. 1 lit. b oraz lit. c RODO |
| Zapis zdarzenia płatniczego: co się stało (zakup, odnowienie, anulowanie, wygaśnięcie, zwrot), identyfikator zdarzenia i zakupu, nazwa produktu, sklep, cena, waluta, kraj sklepu, data oraz surowa treść zdarzenia od RevenueCat | Apple albo Google, za pośrednictwem RevenueCat | Rozliczenie sprzedaży, obsługa zwrotów i reklamacji, możliwość sprawdzenia, co sklep naprawdę powiedział o Twoim zakupie | art. 6 ust. 1 lit. b oraz lit. c RODO |
| Cache raportu tygodnia: zagregowane liczby tygodnia, nazwy kategorii i wygenerowane zdania | Liczy je serwer z Twoich wpisów | Żeby nie przeliczać i nie generować raportu za każdym razem | art. 6 ust. 1 lit. b RODO |
| Statystyki użycia: 7 nazwanych zdarzeń wraz z etykietami, a do tego wersja aplikacji, platforma, język interfejsu, kod kraju rynku, data oraz dni, w których aplikacja była otwierana | Zapisywane automatycznie - szczegóły w sekcji 9 | Wiedza, które funkcje działają, a które nie | art. 6 ust. 1 lit. f RODO - nasz uzasadniony interes |
| Zgłoszenie błędu: opis, który wpiszesz, miejsce w aplikacji, Twoja nazwa wyświetlana, identyfikator konta i gospodarstwa, wersja aplikacji, system i jego wersja, język interfejsu oraz kod kraju rynku | Wysyłasz je sam z Ustawień - szczegóły w sekcji 18 | Naprawienie tego, co zgłaszasz | art. 6 ust. 1 lit. f RODO - nasz uzasadniony interes |
| Raport awarii: identyfikator konta i gospodarstwa (UUID), rodzaj i miejsce błędu, ślad ostatnich kroków w aplikacji, model urządzenia, wersja systemu i aplikacji | Aplikacja wysyła go sama, gdy się zawiesi albo natrafi na błąd - szczegóły w sekcji 18 | Naprawianie tego, co psuje się na telefonach, których nie mamy | art. 6 ust. 1 lit. f RODO - nasz uzasadniony interes |
Żeby używać Beezz, nie musisz podać niczego - konto powstaje samo. Powiązanie z Google albo Apple jest dobrowolne. Resztę podajesz sam i bez tego aplikacja nie ma czego liczyć.
5. Wspólny budżet - kto widzi Twoje wpisy
Budżet w Beezz jest wspólny dla maksymalnie czterech osób. Każdy, kto do niego dołączy, widzi wszystkie wpisy gospodarstwa - kwoty, daty, kategorie, nazwy sklepów i notatki. Tak samo Oszczędzanie: nazwy celów, każdą wpłatę i wypłatę, jej notatkę i to, kto ją dodał. Także to, co powstało przed jego dołączeniem. Tak działa wspólna księga i nie da się w niej mieć osobnej, prywatnej półki.
Wpisując imię domownika i przypisując mu wydatki, przetwarzasz dane innej osoby. Podaj tyle, ile trzeba - imię albo pseudonim w zupełności wystarczy - i uprzedź tę osobę, że jej wydatki są zapisywane w aplikacji.
6. Dyktowanie wpisów
Mówisz „kupiłem chleb za 12 złotych”, a aplikacja robi z tego wpis. W środku dzieją się dwie rzeczy i warto je rozdzielić, bo dotyczą różnych firm.
- Dźwięk zamienia na tekst silnik mowy Twojego systemuNa iOS jest to rozpoznawanie mowy Apple, na Androidzie - systemowe rozpoznawanie mowy, w praktyce usługa Google. Przekazujemy mu dźwięk z mikrofonu i ten silnik może przetwarzać go na swoich serwerach, zgodnie z politykami Apple albo Google i ustawieniami Twojego telefonu. Nie mamy na to wpływu i nie obiecujemy, że rozpoznanie zostanie na urządzeniu.
- Do nas wraca sam tekst - i ten zapisujemyNagrania nie zapisujemy i nigdy nie wysyłamy go na serwery Beezz. Zapisujemy natomiast transkrypt, czyli całe wypowiedziane zdanie, słowo w słowo, razem z tym, co parser z niego wyciągnął. To najbardziej wrażliwa rzecz, jaką przechowujemy.
O mikrofon aplikacja prosi dopiero przy pierwszym tapnięciu ikony mikrofonu, nie przy starcie. Ile trzymamy transkrypty - sekcja 12.
7. Sztuczna inteligencja
W dwóch miejscach korzystamy z modelu językowego Google Gemini API (generativelanguage.googleapis.com). Wysyłamy tam mało i chcemy dokładnie powiedzieć, co.
| Funkcja | Co dokładnie wychodzi do Google | Czego tam nie ma |
|---|---|---|
| Rozłożenie dyktowanego zdania na wpis | Fragment zdania, który został po tym, jak nasz parser wyjął z niego kwotę, jednostkę, czasownik i datę - i tylko wtedy, gdy sam nie rozpoznał kategorii. Ze zdania „wczoraj wydałem 60 zł u weterynarza na szczepienie Puszka” wychodzi fraza „u weterynarza na szczepienie Puszka”. Do tego lista nazw kategorii Twojego gospodarstwa | Bez kwot, bez dat, bez identyfikatora konta, bez identyfikatora gospodarstwa i bez całego zdania - w szczególności bez tego, ile wydałeś i kiedy |
| Proza raportu tygodnia | Zagregowane liczby tygodnia: suma wydatków, liczba wpisów, liczba dni z wydatkami, suma tygodnia poprzedniego, mediana znanych tygodni, suma wpływów, suma wydatków weekendowych, łączna kwota i liczba opłat cyklicznych (także tych z nadchodzącego tygodnia) oraz trzy największe kategorie z kwotami i zmianą procentową. Do tego zakres dat tygodnia, waluta i zdania, które aplikacja napisała sama z tych liczb - model ma je tylko przeredagować | Bez pojedynczych transakcji i ich dat, bez nazw sklepów, bez nazw opłat cyklicznych, bez identyfikatora konta i gospodarstwa, bez imion domowników i bez podziału wydatków na osoby |
To są dwie różne porcje danych i celowo nie sklejamy ich w jedno zdanie: do rozłożenia dyktowania idą fragmenty tekstu bez kwot i dat, a do raportu same liczby zbiorcze. Pełne dyktowane zdanie - z kwotą i datą - zostaje u nas i do Google nie trafia.
- AI jest opcjonalna. Bez niej aplikacja działa - wpisy dodajesz ręcznie, a raport tygodnia ma wersję liczbową ze zdaniami szablonowymi, układanymi na urządzeniu.
- Warstwa AI jest dodatkowo za Planem BEEZZ. Na koncie darmowym nic do modelu nie wychodzi.
- Najpierw pytamy o zgodę. Zanim cokolwiek wyjdzie do modelu, aplikacja pokazuje okno „Wsparcie AI”, które nazywa odbiorcę (Google Gemini) i mówi, co jest wysyłane. Wybierasz „Zgadzam się” albo „Bez AI”. Bez zgody nic do modelu nie wychodzi: kategorię podpowiada sam słownik Beezz, a raport tygodnia ma wersję szablonową.
- Zgodę cofasz w każdej chwili - w Ustawieniach, w wierszu „Wsparcie AI”. Cofnięcie działa od tej chwili i nie zmienia tego, co zostało wysłane wcześniej. Odpowiedź należy do telefonu, na którym jej udzieliłeś, i zapisujemy ją też przy Twoim członkostwie w budżecie.
- Raport tygodnia opisuje cały budżet naraz, dlatego jego liczby trafiają do modelu tylko wtedy, gdy zgodziła się osoba, która otwiera raport, i nikt z domowników nie odmówił. Jedna odmowa wystarcza, żeby raport tego budżetu był układany bez AI dla wszystkich.
- Wysyłka odbywa się wyłącznie wtedy, gdy w naszej konfiguracji serwerowej ustawiony jest klucz do Gemini API. Bez niego funkcje AI po prostu się nie uruchamiają.
- Wersje sprzed 3.0.0 tego pytania nie znają. Na Planie BEEZZ wysyłają opisane wyżej fragmenty dyktowania i liczby raportu bez pytania, tak jak przed jego wprowadzeniem - podstawą jest wtedy umowa (art. 6 ust. 1 lit. b RODO). Jeśli chcesz, żeby nic nie wychodziło do modelu bez Twojej zgody, zaktualizuj aplikację.
- Podstawa prawna w wersji 3.0.0 i nowszych: Twoja zgoda (art. 6 ust. 1 lit. a RODO).
8. Import z powiadomień bankowych
Ta funkcja istnieje i działa na obu systemach. Nie jest to połączenie z bankiem - Beezz czyta wyłącznie treść powiadomienia, które bank już wysłał na Twój telefon.
- Android: aplikacja nasłuchuje powiadomień z listy aplikacji płatniczych, którą sami utrzymujemy - dziś 79 aplikacji: banki i aplikacje płatnicze z 10 krajów (Polska, Holandia, Niemcy, Francja, Belgia, Wielka Brytania, Irlandia, Stany Zjednoczone - w tym PayPal, Venmo i Cash App - Kanada i Australia), a do tego Revolut, Wise, N26 i Google Wallet, które działają ponad granicami. Dostęp do powiadomień nadajesz ręcznie, na systemowym ekranie Androida - my możemy tylko o to poprosić.
- iOS 17 i nowszy: automatyzację tworzysz sam w Skrótach Apple, a jej wyzwalaczem jest transakcja w Portfelu (Apple Pay), nie powiadomienie z banku. Powiadomień bankowych Beezz na iPhonie w ogóle nie czyta i nie prosi o dostęp do nich.
Zasada jest na obu systemach ta sama: treść powiadomienia jest parsowana na Twoim urządzeniu i nigdy go nie opuszcza. Nie wysyłamy jej na nasze serwery, nie wysyłamy jej do modelu AI, nie wysyłamy też nazwy banku ani nazwy aplikacji, z której powiadomienie przyszło. Na serwer trafia dopiero wpis, który zatwierdzisz - kwota, kategoria, data, czasem nazwa sklepu w notatce. Dokładnie tyle, ile wpisałbyś ręcznie.
- Domyślnie funkcja jest wyłączona. Nic się nie dzieje, dopóki sam jej nie włączysz.
- Wyłączasz ją jednym przełącznikiem w Beezz - a na Androidzie dodatkowo możesz odebrać dostęp do powiadomień w ustawieniach systemu.
- Powiadomienia inne niż o płatnościach są pomijane. Nie zapisujemy ich i nigdzie nie wysyłamy.
9. Statystyki użycia
Zbieramy siedem nazwanych zdarzeń, do własnej tabeli w naszej bazie, bez żadnego zewnętrznego SDK analitycznego. Lista jest zamknięta i wygląda tak:
- Pierwsze uruchomienie: ukończenie konfiguracji albo jej pominięcie.
- Ekran z planem płatnym: jego pokazanie, kliknięcie na nim przycisku, jego zamknięcie.
- Otwarcie prognozy oraz otwarcie ekranu podsumowań - po to, żeby wiedzieć, ilu ludzi w ogóle dotarło do funkcji, przy których potem pokazuje się ekran z planem.
Wersje aplikacji sprzed 3.0.0 mogą wysyłać jeszcze jedno albo oba z dwóch zdarzeń, które później wycofaliśmy: ukończenie pojedynczego kroku konfiguracji oraz ocenę aplikacji w skali od 1 do 5, jeśli ktoś na nią odpowiedział. Od wersji 3.0.0 aplikacja żadnego z nich nie zbiera.
Do każdego zdarzenia dopisujemy identyfikator konta i gospodarstwa, wersję aplikacji, platformę, datę oraz etykiety samego zdarzenia. Cała ich lista to: skąd wszedłeś na ekran z planem, jakiego okresu dotyczy plan, czy był w tej chwili dostępny do kupienia, czy przycisk oferował darmowe dni, jaki wariant miała prognoza i według czego pogrupowany był ekran podsumowań. Dopisujemy też język interfejsu (polski albo angielski) i kod kraju rynku - kraj Twojego konta sklepowego, a gdy sklep go nie poda, region z ustawień języka telefonu. To nie jest lokalizacja: nie prosimy o żadne uprawnienie lokalizacyjne i nie czytamy GPS-u ani sieci. Osobno zapisujemy jeden wiersz na każdy dzień, w którym aplikacja była otwarta. Nie zapisujemy tu żadnych kwot, notatek ani nazw sklepów.
Z danych, które już mamy, liczymy też dla każdego konta krótkie zestawienie do naszego wewnętrznego panelu: kiedy konto powstało, w ile dni aplikacja była otwierana, ile wpisów, budżetów i opłat cyklicznych ma konto, kiedy powstał pierwszy wpis, czy konto jest powiązane z Google albo Apple i jaki ma plan. Nie zbieramy do tego niczego nowego, a zestawienie przelicza się co 10 minut, więc po usunięciu konta znika przy najbliższym przeliczeniu.
10. Czego nie zbieramy
- Nagrań dźwięku. Nie zapisujemy pliku audio, nie trzymamy bufora dłużej niż trwa wypowiedź i nie wysyłamy dźwięku na nasze serwery. Co się z nim dzieje po stronie systemu - sekcja 6.
- Lokalizacji. Nie prosimy o dostęp i nie zapisujemy współrzędnych. Nazwa sklepu we wpisie to zwykły tekst, nie miejsce na mapie.
- Kontaktów. Zaproszenie działa na kod właśnie po to, żeby nie sięgać po Twoją książkę adresową.
- Zdjęć, filmów i plików z urządzenia.
- SMS-ów i dziennika połączeń.
- Treści powiadomień - patrz sekcja 8.
- Danych karty płatniczej. Płatność obsługuje w całości Apple albo Google; numer karty nie przechodzi przez aplikację ani przez nasze serwery.
- Identyfikatorów reklamowych.
- Zrzutów ekranu. Także raport awarii idzie bez zrzutu ekranu i bez drzewa widoków - sekcja 18.
- Tokenów push. Powiadomienia w Beezz są planowane lokalnie na Twoim telefonie; nie mamy serwera push ani tokenów FCM czy APNs.
- Danych szczególnych kategorii - o zdrowiu, pochodzeniu, przekonaniach, orientacji czy biometrii. Nie pytamy o nie i nie ma na nie miejsca w aplikacji.
11. Komu powierzamy dane
Nie udostępniamy danych nikomu poza dostawcami, bez których usługa nie działa. Supabase, Google (Gemini API), RevenueCat i Sentry przetwarzają je wyłącznie na nasze polecenie, na podstawie umowy powierzenia. Apple i Google występują dodatkowo we własnej roli - jako sklepy obsługujące płatność, jako dostawcy logowania i jako systemowe rozpoznawanie mowy - i w tym zakresie odpowiadają za dane samodzielnie, na podstawie własnych polityk.
| Odbiorca | Co otrzymuje | Gdzie przetwarza | Kiedy |
|---|---|---|---|
| Supabase Inc. (infrastruktura Amazon Web Services) | Konto i wszystkie dane budżetu - to jedyne miejsce, w którym leżą Twoje dane | Unia Europejska (Paryż) | Zawsze |
| Google Ireland Ltd. / Google LLC (Gemini API) | Fragmenty dyktowanego zdania bez kwot albo zagregowane liczby raportu - dokładny zakres w sekcji 7 | Serwery Google; usługa jest globalna, więc także poza EOG | Tylko przy funkcjach AI, na Planie BEEZZ i po Twojej zgodzie |
| Vercel Inc. | Techniczne logi żądań do strony beezz.app - adres IP, data, adres strony, przeglądarka. Bez danych z aplikacji | Stany Zjednoczone | Przy każdym wejściu na stronę |
| RevenueCat, Inc. | Identyfikator konta, zdarzenia zakupu i odnowienia ze sklepu oraz identyfikator urządzenia nadawany przez system - na iOS jest to identyfikator dostawcy (IDFV), na Androidzie identyfikator instalacji. Nie jest to identyfikator reklamowy i nie służy do śledzenia | Stany Zjednoczone | Zawsze, gdy aplikacja sprawdza Twój plan |
| Functional Software, Inc. (Sentry) | Raporty awarii: identyfikator konta i gospodarstwa, rodzaj i miejsce błędu, ślad ostatnich kroków, dane techniczne urządzenia. Dokładny zakres i to, co wycinamy przed wysyłką - w sekcji 18 | Unia Europejska (Frankfurt) - projekt w europejskim regionie Sentry | Gdy aplikacja się zawiesi albo natrafi na błąd; krótki sygnał sesji przy każdym uruchomieniu |
| Apple Inc. / Google Ireland Ltd. (sklepy) | Dane transakcji zakupowej. Aplikacja nigdy nie widzi danych karty | Zgodnie z politykami Apple i Google | Przy zakupie |
| Apple / Google (logowanie) | Fakt logowania do Beezz; od Apple prosimy o adres e-mail oraz imię i nazwisko, od Google dostajemy adres e-mail, imię i nazwisko oraz adres zdjęcia profilowego | Zgodnie z politykami Apple i Google | Tylko gdy sam powiążesz konto |
| Apple Inc. / Google LLC (systemowe rozpoznawanie mowy) | Dźwięk wypowiedzi - nie trafia on na serwery Beezz, tylko do silnika mowy systemu | Zgodnie z politykami Apple i Google oraz ustawieniami Twojego telefonu | Tylko gdy dyktujesz |
| Telegram Messenger Inc. (powiadomienie dla właściciela firmy) | Krótka wiadomość o sprzedaży: nazwa produktu, sklep, cena, waluta, kraj sklepu i to, czy zakup zaczął się okresem próbnym. Raz dziennie dodatkowo zestawienie samych liczb za poprzedni dzień. Bez identyfikatora konta, bez adresu e-mail, bez czegokolwiek z Twojego budżetu - z tej wiadomości nie da się wskazać osoby | Serwery Telegrama, poza Europejskim Obszarem Gospodarczym | Przy zakupie planu oraz raz na dobę |
Poza tą listą nie ma nic: żadnego SDK reklamowego, analitycznego, map, mediów społecznościowych, atrybucji ani testów A/B. Zewnętrzne SDK, które same z siebie wysyłają dane, są w aplikacji dwa: RevenueCat od zakupów i Sentry od raportów awarii - oba stoją w tabeli wyżej. Telegram nie jest SDK w aplikacji: to wiadomość, którą wysyła nasz serwer, żeby właściciel firmy wiedział, że ktoś kupił plan.
Google i RevenueCat przetwarzają dane poza Europejskim Obszarem Gospodarczym. Sentry przechowuje raporty w Unii Europejskiej, ale prowadzi je spółka ze Stanów Zjednoczonych, więc dostęp do nich spoza EOG jest możliwy. W każdym z tych przypadków przekazanie odbywa się na podstawie unijno-amerykańskich ram ochrony danych (EU–U.S. Data Privacy Framework), a tam, gdzie one nie mają zastosowania - standardowych klauzul umownych zatwierdzonych przez Komisję Europejską. Powiadomienie do Telegrama wymieniamy osobno i wprost, mimo że nie niesie żadnych Twoich danych: wolimy nazwać każdy serwer, do którego cokolwiek od nas wychodzi, niż zostawić lukę w zdaniu „poza tą listą nie ma nic”.
Dane możemy też udostępnić uprawnionym organom, jeśli obowiązek taki wynika z przepisów prawa.
12. Jak długo przechowujemy dane
- Konto, budżet, cała historia wpisów i Oszczędzanie (cele, wpłaty i wypłaty) - do usunięcia konta. Z jednym zastrzeżeniem: we wspólnym budżecie, w którym zostają inni domownicy, wpisy oraz wpłaty i wypłaty, które dodałeś, nie znikają razem z Twoim kontem. Zostają jako historia tego gospodarstwa, bez informacji, że dodałeś je Ty (sekcja 13), i znikają dopiero razem z gospodarstwem.
- Usunięty wpis - 7 dni. Usunięty wpis znika z aplikacji od razu, a z naszych serwerów po 7 dniach - kasuje go nocne zadanie. Jeśli był dniem wpisu cyklicznego, który dalej działa, zostaje po nim sama kwota, data i kategoria - bez nazwy sklepu i notatki - dopóki nie zatrzymasz tej reguły. Dzięki temu ten dzień nie wpisze się drugi raz.
- Transkrypty dyktowanych zdań - 30 dni. Potem kasujemy treść wypowiedzi, a w bazie zostaje sam wiersz techniczny: który model ją rozłożył, jak długo to trwało i ile zużył - bez tego, co powiedziałeś. Skasowanie samego wpisu w budżecie nie usuwa transkryptu wcześniej; usunięcie konta usuwa go od razu.
- Podpowiedzi kategorii (nazwy sklepów i produktów) - do usunięcia konta. To słownik Twojego gospodarstwa i działa dokładnie tak długo, jak długo gospodarstwo istnieje. Wspólna lista popularnych sklepów z sekcji 4 nie zawiera Twoich danych, więc nie ma w niej czego kasować.
- Cache raportu tygodnia - 90 dni. Zagregowane liczby tygodnia i wygenerowane zdania kasujemy po trzech miesiącach; sam raport da się wtedy policzyć od nowa z Twoich wpisów.
- Statystyki użycia i dni aktywności - 24 miesiące. Tyle wystarcza, żeby zobaczyć, jak funkcja zachowuje się przez dwa pełne lata; starsze wiersze kasuje nocne zadanie. Usunięcie konta usuwa je od razu. Sprzeciw wobec tego przetwarzania opisuje sekcja 9.
- Zgłoszenia błędów - 12 miesięcy. Po roku kasujemy je niezależnie od tego, czy błąd został naprawiony. Usunięcie konta usuwa je wcześniej.
- Raporty awarii - 90 dni. Tyle trzyma je Sentry, a potem kasuje samo; dłuższej kopii nie mamy. Usunięcie konta nie kasuje ich wcześniej, ale od tej chwili identyfikator w raporcie nie prowadzi już do żadnego konta - szczegóły w sekcji 18.
- Kody zaproszeń - tracą ważność po 7 dniach, a sam wiersz nie czeka na usunięcie konta: kod unieważniony albo przeterminowany kasujemy najpóźniej w najbliższą noc (albo wcześniej, gdy w tym gospodarstwie powstaje nowy kod), a kod, którym ktoś już wszedł, zostaje 90 dni - to jedyny ślad, którędy ta osoba dołączyła.
- Uprawnienia do Planu BEEZZ - do usunięcia konta. Zapis zdarzenia płatniczego zostaje dłużej: gdy kupujesz, odnawiasz, anulujesz albo dostajesz zwrot, zapisujemy jeden wiersz z tym, co powiedział sklep - rodzaj zdarzenia, produkt, cenę, walutę, kraj i datę. Trzymamy go, żeby rozliczyć sprzedaż, obsłużyć zwrot i odpowiedzieć na reklamację, przez co najmniej 5 lat od końca roku podatkowego, w którym zakup nastąpił - tyle wymagają przepisy podatkowe. Sprzedawcą wobec Ciebie pozostają Apple i Google i to one wystawiają Ci dokument zakupu; nasz wiersz jest zapisem transakcji, nie Twoją fakturą.
- Kopie zapasowe bazy - 7 dni. Supabase robi codziennie kopię całej bazy i trzyma każdą 7 dni. Usunięte dane mogą więc zostać w kopiach najwyżej 7 dni, a potem znikają razem z nimi. Kopii używamy wyłącznie do odtworzenia bazy po awarii, nie do przywracania pojedynczych kont - usunięcie konta jest dla Ciebie natychmiastowe i nieodwracalne. Gdybyśmy kiedyś musieli odtworzyć bazę z kopii, ponownie usuniemy konta skasowane w międzyczasie.
- Puste konto anonimowe - 30 dni (od 1 października 2026; do tego dnia 90 dni). Konto anonimowe (niepowiązane z Google ani Apple), w którego budżetach nie zapisano żadnego wydatku ani wpływu i którego nikt nie otworzył od 30 dni, jest usuwane automatycznie razem z tymi budżetami, ich ustawieniami i celami w Oszczędzaniu, jeśli jakieś w nich są. Nie dotyczy to kont z wykupionym planem ani kont będących domownikiem we wspólnym budżecie z inną osobą. Po takim usunięciu aplikacja przy kolejnym uruchomieniu założy nowe, puste konto.
13. Usunięcie konta - co znika, a co zostaje
Konto usuwasz sam w aplikacji: Ustawienia, kafel usuwania, przytrzymanie. Instrukcja krok po kroku jest na stronie Usuwanie konta.
- Znika: Twoje konto, profil, członkostwa w gospodarstwach, wszystkie Twoje transkrypty dyktowanych zdań, zgłoszenia błędów, statystyki użycia, dni aktywności i uprawnienia do planu.
- Znika też każde gospodarstwo, do którego po Twoim odejściu nie może już wejść żadne konto - razem z całą jego zawartością.
- Zostaje na 90 dni: raporty awarii w Sentry (sekcja 18). Po usunięciu konta nie da się ich już z Tobą powiązać - identyfikator, który niosą, nie prowadzi do nikogo.
- Zostaje: zapis zdarzenia płatniczego, jeśli kiedykolwiek kupiłeś plan. Wiersz przestaje być przypięty do Twojego konta, ale nie znika - jest zapisem transakcji ze sklepem, potrzebnym do rozliczenia, zwrotu i reklamacji, i podlega pięcioletniemu obowiązkowi podatkowemu. Co dokładnie jest w takim wierszu, mówi sekcja 4; jak długo leży - sekcja 12.
Jeśli nie masz już aplikacji, napisz na privacy@beezz.app - usuniemy konto na Twoje żądanie.
14. Twoje prawa
Na podstawie RODO masz prawo do:
- dostępu do swoich danych i otrzymania ich kopii,
- sprostowania danych nieprawidłowych lub niekompletnych,
- usunięcia danych („prawo do bycia zapomnianym”),
- ograniczenia przetwarzania,
- przeniesienia danych do innej usługi,
- wniesienia sprzeciwu wobec przetwarzania opartego na uzasadnionym interesie - w praktyce chodzi o statystyki użycia z sekcji 9 oraz zgłoszenia błędów i raporty awarii z sekcji 18,
- cofnięcia zgody, jeśli przetwarzanie opierało się na zgodzie - w praktyce chodzi o zgodę na AI z sekcji 7, którą cofasz w Ustawieniach, w wierszu „Wsparcie AI”.
Konkretne kanały: usunięcie - w aplikacji (sekcja 13). Sprostowanie - wpisy, kategorie, profil i domowników edytujesz bezpośrednio w aplikacji. Kopia danych - w aplikacji jest eksport wpisów do pliku CSV; to funkcja Planu BEEZZ.
Pozostałe żądania kieruj na privacy@beezz.app. Odpowiadamy najpóźniej w ciągu 30 dni. Żeby chronić Twoje dane, możemy poprosić o potwierdzenie, że konto należy do Ciebie - na przykład o wiadomość z adresu e-mail konta Google albo Apple powiązanego z Beezz. Przy koncie anonimowym, niepowiązanym z żadnym dostawcą, możemy nie mieć jak Cię zweryfikować.
Jeśli uważasz, że przetwarzamy dane niezgodnie z prawem, możesz złożyć skargę do Prezesa Urzędu Ochrony Danych Osobowych, ul. Stawki 2, 00-193 Warszawa, albo do organu ochrony danych w państwie Unii Europejskiej, w którym mieszkasz lub pracujesz.
15. Dzieci i domownicy bez konta
Beezz nie jest kierowany do dzieci. Konto zakłada osoba pełnoletnia - tak stanowi Regulamin - i to ona odpowiada za dane w swoim gospodarstwie. Świadomie nie zbieramy danych od osób, które nie ukończyły 18 lat.
Domownik na liście nie musi mieć konta - wtedy jest to sama nazwa, którą wpisał dorosły, bez własnego logowania i bez dostępu do aplikacji. Ale ta nazwa trafia na nasz serwer. Jeśli dopisujesz dziecko, wpisz imię albo pseudonim, a nie pełne dane.
Jeśli sądzisz, że dziecko założyło konto samodzielnie, napisz na privacy@beezz.app - usuniemy je.
Pytanie o wiek przy zakupie. Gdy kupujesz Plan BEEZZ w amerykańskim App Store na urządzeniu Apple z systemem w wersji 26.2 lub nowszej, aplikacja tuż przed płatnością najpierw pyta Apple, czy na Twoim koncie ciąży przepis o weryfikacji wieku - tak jest na przykład w Teksasie. Jeśli nie, zakup idzie dalej bez żadnego pytania. Jeśli tak, aplikacja prosi Apple o przedział wieku zadeklarowany na Twoim koncie Apple. Jeśli jesteś dorosły, zakup idzie dalej. Jeśli masz mniej niż 18 lat, zakupu nie ma - nie ma też ścieżki zgody rodzica. Jeśli odmówisz podania wieku albo odpowiedzi nie da się odczytać, zakup się zatrzymuje i możesz spróbować ponownie. Odpowiedź służy wyłącznie temu jednemu zakupowi: nie zapisujemy jej ani nie logujemy, więc nie ma jej w tabeli w sekcji 4. Poza amerykańskim App Store, na systemach starszych niż 26.2 (Apple nie daje na nich sposobu, żeby sprawdzić, czy przepis obowiązuje) i na Androidzie nikt nie jest pytany o wiek. Szczegóły są w sekcji 16 Regulaminu.
16. Bezpieczeństwo
- Cała komunikacja aplikacji z serwerami idzie szyfrowanym połączeniem HTTPS/TLS. W kodzie nie ma zwykłego HTTP.
- Dostęp do danych ograniczają reguły po stronie bazy: każde zapytanie widzi wyłącznie wiersze gospodarstwa, do którego należysz. Pilnuje tego baza, a nie tylko kod aplikacji.
- Nie przechowujemy haseł - uwierzytelnianie obsługują systemy logowania Apple i Google.
- Błędny kod zaproszenia zawsze wygląda tak samo, żeby nie dało się zgadywać kodów.
- Wersje publikowane w sklepach są zaciemniane, a symbole debugowania trzymamy poza aplikacją - u siebie i w Sentry, gdzie służą wyłącznie do odczytania raportu awarii.
- Dane na urządzeniu (cache i kolejka zapisów) leżą w piaskownicy aplikacji i są chronione szyfrowaniem systemu - nie szyfrujemy ich dodatkowo własnym kluczem. Nie ma tam haseł ani danych kart.
Dane na serwerze są szyfrowane na dyskach po stronie Supabase.
17. Strona beezz.app: cookies i logi
Ta strona jest zwykłą stroną statyczną: nie ma na niej pikseli, narzędzi analitycznych, wtyczek społecznościowych ani reklam. Krój pisma jest wgrany razem ze stroną, więc przeglądarka nie odpytuje o niego Google. Sama z siebie strona nie zapisuje niczego na Twoim urządzeniu. Zapisuje najwyżej trzy drobne rzeczy - każdą tylko wtedy, gdy sam klikniesz odpowiedni przycisk - po to, żeby zapamiętać ten wybór:
- Wybór języka - plik cookie o nazwie beezz_lang z wartością pl albo en, gdy klikniesz przełącznik języka w stopce albo link do angielskiej wersji strony. Leży rok. Przeglądarka odsyła go przy każdym wejściu na beezz.app i czyta go wyłącznie reguła, która decyduje, w jakim języku otworzyć stronę główną.
- Zatrzymanie animacji - wpis w pamięci lokalnej przeglądarki, gdy klikniesz „Zatrzymaj animacje” w stopce. Nie opuszcza Twojego urządzenia.
- Zamknięcie podpowiedzi o angielskiej wersji - wpis w pamięci lokalnej przeglądarki, gdy ją zamkniesz. Nie opuszcza Twojego urządzenia.
Żadna z tych rzeczy nie niesie identyfikatora, nie jest łączona z kontem w aplikacji i nie trafia do nikogo poza beezz.app. Usuniesz je, czyszcząc dane strony w przeglądarce. Język strony głównej wybieramy też bez zapisywania czegokolwiek: przeglądarka przy każdym wejściu na każdą stronę podaje listę preferowanych języków, a strona główna otwiera się po polsku, gdy polski jest na tej liście pierwszy, i po angielsku w pozostałych przypadkach. Nie prosimy o zgodę na cookies, bo niczego nie zapisujemy bez Twojego kliknięcia i tylko po to, żeby zapamiętać to kliknięcie - i piszemy to wprost, bo obowiązek poinformowania istnieje niezależnie od tego (art. 399 Prawa komunikacji elektronicznej).
Logi serwerowe. Jak każda strona w internecie, beezz.app jest serwowana przez dostawcę hostingu (Vercel), a jego serwery zapisują techniczne logi żądań: adres IP, datę i godzinę, adres odwiedzanej strony, typ przeglądarki i systemu. Logi powstają automatycznie, są potrzebne do utrzymania i bezpieczeństwa strony, i nie łączymy ich z żadnym kontem w aplikacji. Podstawą jest nasz uzasadniony interes (art. 6 ust. 1 lit. f RODO), a przechowuje je i kasuje dostawca zgodnie ze swoimi terminami - u nas nie powstaje z nich żadna baza.
Tak samo logi żądań powstają po stronie Supabase, gdy aplikacja rozmawia z bazą. Służą wyłącznie diagnostyce i utrzymaniu; nie budujemy z nich profili i nie wykorzystujemy do niczego innego.
18. Błędy i awarie: co zgłaszasz sam, a co aplikacja wysyła sama
Zgłoszenie błędu wysyłasz sam, z Ustawień w aplikacji. Trafia wtedy do nas to, co wpiszesz w opisie (do 2000 znaków), miejsce w aplikacji, którego dotyczy, Twoja nazwa wyświetlana, identyfikator Twojego konta i gospodarstwa, wersja aplikacji, system telefonu i jego wersja, język interfejsu oraz kod kraju rynku - ten sam, co w statystykach z sekcji 9. Opis jest zwykłym polem tekstowym, więc jest w nim dokładnie tyle, ile sam napiszesz - jeśli nie chcesz podawać kwot ani nazw, po prostu ich nie wpisuj. Zgłoszenia czytamy my i tylko my, po to, żeby naprawić błąd. Kasujemy je po 12 miesiącach, a razem z kontem - od razu.
Raporty awarii aplikacja wysyła sama, do narzędzia Sentry. Raport powstaje, gdy aplikacja się zawiesi, przestanie odpowiadać, zostanie zamknięta przez system z braku pamięci albo natrafi na błąd, po którym co prawda poszła dalej, ale czegoś nie udało się zrobić - na przykład nie zapisał się wpis. Do tego przy każdym uruchomieniu i zamknięciu aplikacji leci krótki sygnał sesji: kiedy się zaczęła, kiedy skończyła i czy skończyła się awarią. Bez niego nie dałoby się policzyć, jaki odsetek uruchomień przebiega bez błędu.
Co jest w raporcie. Identyfikator konta i identyfikator gospodarstwa - oba w postaci samego UUID. Rodzaj błędu, jego komunikat i miejsce w kodzie, w którym wystąpił. Ślad ostatnich kroków: ekrany, przez które przeszedłeś (sam wzorzec ekranu, bez tego, co na nim było), oraz wywołania do naszego serwera - metoda, adres bez wartości parametrów, kod odpowiedzi i czas trwania. Dane techniczne urządzenia, w szczególności: producent i model, wersja systemu, wersja i numer kompilacji aplikacji, język i strefa czasowa, orientacja i rozdzielczość ekranu, stan pamięci i baterii, to, czy telefon był online. Wreszcie data i godzina.
Czego w raporcie nie ma. Twojego adresu e-mail, imienia ani adresu IP. Kwot, notatek, nazw sklepów, nazw kategorii ani treści dyktowanych zdań. Zrzutu ekranu i drzewa widoków - zrzut ekranu tej aplikacji to czyjaś księga wydatków. Treści wysyłanych i odbieranych zapytań, ciasteczek, tokenów, kluczy i kodów zaproszeń. Etykiet tego, w co stukasz - w Beezz są to nazwy kategorii. Utrata sieci nie jest awarią i nie jest raportowana. Nie mierzymy też wydajności aplikacji: ta część narzędzia jest wyłączona.
Awarie natywne omijają sito. Gdy aplikacja pada na poziomie systemu (na przykład przez błąd pamięci), przestaje odpowiadać na Androidzie albo zostaje zamknięta przez system iOS, raport tworzy i wysyła natywna część biblioteki Sentry wbudowanej w aplikację, bez udziału sita. Taki raport niesie ramki stosu kodu natywnego, dane techniczne urządzenia oraz identyfikator konta i gospodarstwa (UUID) - nic spoza listy z akapitu „Co jest w raporcie”. Kroki śladu, które zapisała aplikacja, przeszły przez sito, zanim trafiły do takiego raportu, a blokada domyślnych danych osobowych obowiązuje i tu, więc i taki raport idzie bez adresu IP.
Gdzie i jak długo. Raporty trafiają do projektu Sentry w regionie europejskim (Frankfurt) i leżą tam 90 dni, po czym Sentry kasuje je samo - dłuższej kopii nie mamy. Usunięcie konta nie kasuje ich wcześniej, ale od tej chwili identyfikator w raporcie nie prowadzi już do żadnego konta. Narzędzie prowadzi Functional Software, Inc. ze Stanów Zjednoczonych; podstawa transferu jest ta sama co u pozostałych dostawców i opisuje ją sekcja 11. Raporty czytamy my i tylko my, po to, żeby naprawić to, co się psuje.
19. Zmiany polityki
Politykę możemy zmieniać - na przykład gdy dojdzie nowa funkcja albo zmieni się dostawca. O istotnych zmianach uprzedzimy w aplikacji lub e-mailem co najmniej 14 dni przed ich wejściem w życie. Data ostatniej aktualizacji jest zawsze na górze tej strony.
O istotnej zmianie tej polityki, Regulaminu albo sposobu, w jaki aplikacja pobiera opłaty, zawiadamiamy też App Store i Google Play. W niektórych miejscach - na przykład w Teksasie - to właśnie takie zawiadomienie pozwala Sklepowi ponownie zapytać rodzica o zgodę w imieniu osoby niepełnoletniej.