Politika privatnosti
Ova politika opisuje kako aplikacija MajsterGO pristupa podacima, koje podatke sprema lokalno na uređaju, koje minimalne podatke obrađuje putem Google/Firebase usluga te kako možete ostvariti svoja prava.
1. Voditelj obrade i kontakt
Voditelj obrade za aplikaciju MajsterGO je MAXIMIZE, obrt za usluge, vl. Ivan Marcinko, Budimska ulica 29, 10360 Sesvete, Hrvatska.
Za pitanja o privatnosti i osobnim podacima možete se javiti na support@maximize.hr.
2. Lokalni podaci u aplikaciji
MajsterGO je prvenstveno local-first aplikacija. Poslovni podaci korisnika spremaju se lokalno na korisnikov uređaj i ne šalju se u Firebase samo zato što se koriste u aplikaciji.
Lokalni podaci mogu uključivati:
- podatke poslovnog profila korisnika, poput naziva obrta/tvrtke, adrese, OIB-a, kontaktnih i drugih podataka potrebnih za izradu ponuda;
- podatke o klijentima, poput imena/naziva, telefona, e-maila, adrese, OIB-a i internih napomena;
- ponude/predračune, stavke, cijene, napomene, uvjete, statuse i evidenciju naplate;
- preddefinirane stavke i mjerne jedinice, postavke aplikacije, lokalnu evidenciju korištenja Free plana te druge podatke potrebne za rad aplikacije;
- lokalne sigurnosne kopije i izvoze koje korisnik sam izradi.
MAXIMIZE nema udaljeni pristup tim lokalnim poslovnim podacima putem Firebasea.
3. Google prijava i Firebase Authentication
Ako se korisnik prijavi Google računom radi korištenja Pro triala i funkcija povezanih s računom, MajsterGO koristi Google Sign-In i Firebase Authentication.
U tom slučaju mogu se obrađivati minimalni podaci potrebni za identitet računa: Firebase UID, e-mail adresa i prikazano ime Google računa, zajedno s tehničkim autentikacijskim podacima koje obrađuju Google/Firebase usluge.
Ti se podaci koriste za prijavu, prepoznavanje istog MajsterGO računa, upravljanje trialom i kasnije povezivanje statusa pretplate s korisničkim računom. Ne koriste se za oglašavanje.
4. Jednokratni Pro trial i identitet računa
Cloudflare Worker provjerava Google identitet putem Firebase Authenticationa i izvodi dvije odvojene HMAC-SHA-256 oznake: za trial i za povezivanje pretplate. Sirovi Google identifikator obrađuje se u memoriji, a ne sprema u D1. Te su oznake pseudonimni osobni podaci, ne anonimni podaci. Stabilna billing oznaka šalje se Google Playu pri kupnji radi provjere vlasništva.
D1 čuva aktivni početak i kraj triala te minimalnu oznaku da je trial iskorišten. Raniji Firestore trial zapisi koriste se samo za migraciju postojećeg triala i brišu se pri brisanju računa. Poslovni podaci ne šalju se u te zapise.
Minimalna trial oznaka ostaje i nakon brisanja računa dok MajsterGO nudi jednokratni trial, kako ponovno stvaranje računa ne bi omogućilo novi trial. Sadrži samo pseudonimnu trial oznaku, iskorištenost i verziju modela, ne ime, e-mail, Firebase UID ili purchase token. Potrebu za čuvanjem preispitujemo i zapis brišemo kada ta svrha prestane.
5. Uvoz kontakta s uređaja
MajsterGO omogućuje korisniku da po vlastitom izboru uveze kontakt iz imenika uređaja. Aplikacija pristupa kontaktima samo kada korisnik pokrene tu radnju i, ovisno o verziji Androida, može zatražiti Android dozvolu za kontakte ili koristiti sustavski odabir kontakta.
Pri uvozu se iz odabranog kontakta mogu preuzeti ime ili naziv, telefonski broj, e-mail adresa i poštanska adresa ako postoje. Uvezeni podaci spremaju se lokalno u MajsterGO bazu. MajsterGO ne učitava cijeli imenik u Firebase niti ga šalje MAXIMIZE-u.
6. Google Play Billing i Pro pretplata
Kada korisnik kupuje MajsterGO Pro pretplatu, naplatu obrađuje Google Play. MAXIMIZE ne prima niti sprema broj platne kartice korisnika.
Radi sigurne provjere prava na Pro aplikacija preko HTTPS-a šalje svježi Firebase identifikacijski token i Google Play purchase token našem Cloudflare Workeru. Worker provjerava prijavljeni račun putem Firebase Authenticationa i stanje pretplate putem Google Play Developer API-ja.
U Cloudflare D1 spremamo pseudonimni SHA-256 identifikator Firebase UID-a, SHA-256 identifikator purchase tokena, proizvod i base plan, status, vrijeme isteka i provjere te minimalne tehničke podatke potrebne za povezivanje kupnje, sprječavanje dvostrukog korištenja i zaštitu od zlouporabe. Sirovi Firebase ID token, sirovi purchase token, ime, e-mail, broj kartice i lokalni poslovni podaci ne spremaju se u D1.
7. PDF, Excel, backup i dijeljenje
MajsterGO može lokalno generirati PDF dokumente, Excel izvoze i sigurnosne kopije. Ti sadržaji ne šalju se automatski MAXIMIZE-u.
Kada korisnik odabere spremanje ili dijeljenje datoteke izvan aplikacije, odabrana aplikacija, cloud spremište, e-mail usluga ili druga destinacija može obrađivati sadržaj prema vlastitim pravilima privatnosti. Nakon izvoza korisnik je odgovoran za sigurno čuvanje i brisanje kopija koje je sam izradio.
8. Analitika, oglasi i praćenje
MajsterGO trenutačno ne koristi oglašivačke SDK-ove, ne prikazuje oglase i ne koristi Google/Firebase Analytics za praćenje ponašanja korisnika. Ako bi se to u budućnosti promijenilo, ova politika i odgovarajuće Google Play deklaracije bit će ažurirane prije takve obrade.
9. Pružatelji usluga i primatelji podataka
Za funkcije opisane u ovoj politici koriste se Google i njegove povezane usluge, uključujući Firebase Authentication, Cloud Firestore, Google Play Billing i Google Play Developer API. Cloudflare Workers i Cloudflare D1 koriste se za sigurnu poslužiteljsku provjeru pretplate, povezivanje kupnje s pseudonimnim računom, zaštitu od zlouporabe i brisanje povezanih cloud podataka. Kod komunikacije sa službenom adresom podrške e-mail može biti tehnički obrađen putem Cloudflare Email Routing i Google Gmail infrastrukture.
MAXIMIZE ne prodaje osobne podatke korisnika i ne dijeli ih s oglašivačima.
10. Sigurnost podataka
Mrežna komunikacija s Google/Firebase i Cloudflare uslugama koristi sigurne HTTPS/TLS veze. Cloud podaci ograničeni su na minimum potreban za račun, trial i pretplatu. Firestore štite sigurnosna pravila, a Worker provjerava svježi Firebase identitet, veže kupnju uz jedan račun, primjenjuje ograničenja prometa i ne priznaje lokalni Google Play status bez potvrđenog odgovora poslužitelja.
Lokalni podaci čuvaju se unutar aplikacijskog prostora uređaja. MajsterGO onemogućuje Androidov automatski cloud backup baze aplikacije; korisnik može svjesno izraditi vlastitu lokalnu sigurnosnu kopiju kroz MajsterGO.
11. Rokovi čuvanja
- Lokalni poslovni podaci: ostaju na uređaju dok ih korisnik ne izbriše, anonimizira, ne obriše podatke aplikacije ili ne ukloni aplikaciju; korisnički izrađene izvozne/backup kopije ostaju tamo gdje ih je korisnik spremio dok ih sam ne ukloni.
- Firebase račun: podaci identiteta čuvaju se dok MajsterGO račun postoji ili dok nisu potrebni za izvršenje zahtjeva za brisanje.
- Trial: aktivni datumi i veza s računom brišu se pri brisanju računa ili nakon isteka triala kroz dnevno čišćenje. Minimalna oznaka iskorištenosti iz odjeljka 4 ostaje dok nudimo jednokratni trial.
- Pseudonimni pretplatni podaci u D1: koriste se za trajanje Pro prava, a rok čuvanja nakon prestanka prava iznosi 90 dana. Samo otkazivanje ne pokreće rok dok Pro još traje. Sustav rok računa iz posljednjeg potvrđenog Play isteka; ako taj datum nije dostupan, iz zadnje provjere odnosno brisanja. Ne prima automatske obavijesti o svakom refundiranju ili revokaciji, pa takva promjena može biti otkrivena tek pri sljedećoj provjeri. Istekli zapisi uklanjaju se dnevnim čišćenjem, ne nužno u točnoj sekundi isteka roka.
- Iznimke nakon brisanja: uklanjaju se aktivne billing i trial veze. Minimalni billing arhiv može ostati do navedenog roka; nije anoniman. Za dokazano migrirane stare kupnje može ostati pseudonimna veza vlasništva do zadnjeg poznatog isteka plus 90 dana. Zaštitni hash starog Firebase UID-a traje 24 sata do sljedećeg dnevnog čišćenja (u redovnom radu manje od 48 sati). Kratkotrajni rate-limit zapisi služe zaštiti od zlouporabe. IP adresa koristi se za ograničavanje prometa na Cloudflare rubnoj mreži i ne sprema se u D1.
- Povijesne D1 kopije: brisanje uklanja podatke iz aktivne baze. Cloudflare D1 Time Travel za Workers Paid omogućuje povrat stanja do 30 dana unatrag, pa obrisani podaci mogu postojati u providerovoj povijesti do isteka tog prozora. Te kopije nisu aktivna baza i ne koriste se za redovan rad aplikacije. Dio evidencije kupnje neovisno čuva Google Play prema svojim pravilima.
- Komunikacija s podrškom: čuva se onoliko dugo koliko je potrebno za odgovor, rješavanje zahtjeva, sigurnost i primjenjive zakonske obveze.
12. Brisanje MajsterGO računa i podataka
Korisnik može pokrenuti brisanje u aplikaciji kroz Postavke → Račun i plan → Izbriši račun. Radi sigurnosti potrebno je ponovno potvrditi Google račun. Brišu se Firebase Authentication račun, raniji Firestore trial zapisi i aktivne D1 billing/trial veze, uz minimalne iznimke navedene u odjeljku 11. Google/Gmail račun se ne briše.
Ponovna prijava istim provjerenim Google računom može vratiti još aktivnu Play pretplatu na novi MajsterGO račun, nakon poslužiteljske provjere. Ne dodjeljuje novi trial. Za stare kupnje bez ranije sačuvanog dokaza vlasništva automatski prijenos nije moguć; obratite se podršci.
Brisanje MajsterGO računa ne otkazuje Google Play pretplatu. Pretplatom treba zasebno upravljati u Google Playu.
Poslovni podaci koji postoje samo lokalno na uređaju nisu pohranjeni na MAXIMIZE poslužiteljima i zato ih MAXIMIZE ne može daljinski izbrisati. Korisnik ih može ukloniti unutar aplikacije, brisanjem podataka aplikacije ili deinstalacijom; izvozne i backup kopije treba zasebno izbrisati s mjesta na koje su spremljene.
Za pokretanje zahtjeva za brisanje računa otvorite stranicu za brisanje MajsterGO računa. Za dodatna pitanja možete se javiti na support@maximize.hr.
13. Pravna osnova obrade
Ovisno o konkretnoj funkciji, podaci se obrađuju radi izvršenja usluge koju korisnik traži, poduzimanja radnji na zahtjev korisnika, ispunjenja ugovornih i zakonskih obveza te legitimnih interesa kao što su sigurnost, sprječavanje zlouporabe, pouzdan rad aplikacije i provedba pravila triala. Kada je za pojedinu funkciju potrebna Android dozvola ili pristanak, korisnik ga može dati ili odbiti kroz odgovarajući sustavski ili aplikacijski postupak.
14. Vaša prava
Ovisno o okolnostima i primjenjivim propisima, možete zatražiti pristup, ispravak, brisanje ili ograničenje obrade osobnih podataka, ostvariti pravo na prenosivost gdje je primjenjivo te uložiti prigovor na određenu obradu.
Za ostvarivanje prava javite se na support@maximize.hr. Također imate pravo podnijeti pritužbu nadležnom tijelu za zaštitu osobnih podataka, uključujući Agenciju za zaštitu osobnih podataka (AZOP) u Hrvatskoj.
15. Promjene ove politike
Politika se može ažurirati kada se promijene funkcije MajsterGO-a, korištene usluge ili pravni zahtjevi. Datum zadnje izmjene bit će naveden na ovoj stranici. Prije produkcijskog uključivanja novih vrsta obrade, politika će biti usklađena sa stvarnim ponašanjem aplikacije.
Na snazi od / zadnja izmjena: 4. listopada 2026.
Privacy Policy
This policy explains how the MajsterGO application accesses data, which information is stored locally on the device, which minimal data is processed through Google/Firebase services, and how users can exercise their rights.
1. Data controller and contact
The data controller for MajsterGO is MAXIMIZE, obrt za usluge, owned by Ivan Marcinko, Budimska ulica 29, 10360 Sesvete, Croatia.
For privacy and personal-data inquiries, contact support@maximize.hr.
2. Data stored locally in the app
MajsterGO is primarily a local-first application. A user's business data is stored locally on the user's device and is not uploaded to Firebase merely because it is used in the app.
Local data may include:
- the user's business profile, such as business name, address, tax identifier, contact information and other details required to create offers;
- client data such as name/business name, phone, email, address, tax identifier and internal notes;
- offers/quotes, items, prices, notes, terms, statuses and payment tracking;
- saved items and units, app preferences, local Free-plan usage records and other information required for app functionality;
- local backups and exports created by the user.
MAXIMIZE does not have remote access to this local business data through Firebase.
3. Google sign-in and Firebase Authentication
If a user signs in with a Google account to use the Pro trial and account-related functionality, MajsterGO uses Google Sign-In and Firebase Authentication.
In that case, the minimum account identity data may be processed: Firebase UID, email address and Google account display name, together with technical authentication data processed by Google/Firebase services.
This information is used to sign the user in, recognize the same MajsterGO account, manage the trial and later associate subscription status with the user's account. It is not used for advertising.
4. One-time Pro trial and account identity
The Cloudflare Worker verifies Google identity through Firebase Authentication and derives two separate HMAC-SHA-256 identifiers for trial and subscription ownership. The raw Google identifier is processed in memory, not stored in D1. These identifiers are pseudonymous personal data, not anonymous data. The stable billing identifier is sent to Google Play at purchase to verify ownership.
D1 stores active trial dates and a minimal trial-consumed marker. Earlier Firestore trial records are read only to migrate an existing trial and deleted on account deletion. Business data is not sent to these records.
The minimal trial marker survives account deletion while MajsterGO offers a one-time trial, preventing another trial through account recreation. It contains only the pseudonymous trial identifier, consumption flag and model version, not a name, email, Firebase UID or purchase token. We review the need for retention and delete it when that purpose ends.
5. Importing a contact from the device
MajsterGO allows a user to import a contact from the device address book at the user's initiative. The app accesses contacts only when the user starts this action and, depending on the Android version, may request the Android contacts permission or use the system contact picker.
When importing, the app may use the selected contact's name or business name, phone number, email address and postal address when available. Imported information is stored locally in the MajsterGO database. MajsterGO does not upload the user's full address book to Firebase or send it to MAXIMIZE.
6. Google Play Billing and Pro subscription
When a user purchases MajsterGO Pro, payment is processed by Google Play. MAXIMIZE does not receive or store the user's payment-card number.
To verify Pro entitlement securely, the app sends a fresh Firebase identity token and the Google Play purchase token over HTTPS to our Cloudflare Worker. The Worker verifies the signed-in account through Firebase Authentication and the subscription state through the Google Play Developer API.
Cloudflare D1 stores a pseudonymous SHA-256 identifier of the Firebase UID, a SHA-256 identifier of the purchase token, the product and base plan, status, expiry and verification time, and minimum technical data required to bind a purchase, prevent duplicate use and protect against abuse. Raw Firebase ID tokens, raw purchase tokens, names, email addresses, card numbers and local business data are not stored in D1.
7. PDF, Excel, backups and sharing
MajsterGO can generate PDFs, Excel exports and backups locally. These files are not automatically sent to MAXIMIZE.
If a user chooses to save or share a file outside the app, the selected application, cloud-storage provider, email service or other destination may process the content under its own privacy terms. After export, the user is responsible for securely storing and deleting copies they created.
8. Analytics, advertising and tracking
MajsterGO currently does not use advertising SDKs, does not display ads and does not use Google/Firebase Analytics to track user behaviour. If this changes in the future, this policy and the relevant Google Play disclosures will be updated before such processing begins.
9. Service providers and recipients
Functions described in this policy use Google and related services, including Firebase Authentication, Cloud Firestore, Google Play Billing and the Google Play Developer API. Cloudflare Workers and Cloudflare D1 are used for secure server-side subscription verification, pseudonymous purchase binding, abuse prevention and deletion of associated cloud data. When communicating with the official support address, email may be technically processed through Cloudflare Email Routing and Google Gmail infrastructure.
MAXIMIZE does not sell users' personal data and does not share it with advertisers.
10. Data security
Network communication with Google/Firebase and Cloudflare services uses secure HTTPS/TLS connections. Cloud data is limited to the minimum needed for account, trial and subscription functionality. Firestore is protected by security rules, while the Worker verifies a fresh Firebase identity, binds a purchase to one account, applies traffic limits and never grants Pro solely from a local Google Play state without a verified server response.
Local data is kept in the app's private storage area on the device. MajsterGO disables Android's automatic cloud backup of the app database; users may intentionally create their own local backup through MajsterGO.
11. Data retention
- Local business data: remains on the device until the user deletes or anonymizes it, clears app data or removes the app; user-created export/backup copies remain wherever the user saved them until the user deletes them.
- Firebase account: identity data is retained while the MajsterGO account exists or until it is no longer required to complete an account-deletion request.
- Trial: active dates and account links are deleted on account deletion or by daily cleanup after trial expiry. The minimal consumption marker described in section 4 remains while we offer the one-time trial.
- Pseudonymous D1 subscription data: is used while Pro entitlement lasts, with a 90-day retention period after entitlement ends. Cancellation alone does not start the period while Pro remains valid. The system calculates the deadline from the last verified Play expiry; if unavailable, from the last verification or deletion time. It does not receive automatic notifications of every refund or revocation, so these changes may only be discovered during the next verification. Expired records are removed by daily cleanup, not necessarily at the exact second of the deadline.
- Exceptions after deletion: active billing and trial links are removed. A minimal billing archive may remain until the stated deadline; it is not anonymous. Proven legacy purchases may retain a pseudonymous ownership link until the last known expiry plus 90 days. A protective hash of the old Firebase UID lasts 24 hours until the next daily cleanup (normally less than 48 hours). Short-lived rate-limit records prevent abuse. IP addresses are used for edge rate limiting by Cloudflare and are not stored in D1.
- Historical D1 copies: deletion removes data from the active database. Cloudflare D1 Time Travel on Workers Paid can restore state from up to 30 days in the past, so deleted data may remain in the provider's history until that window expires. These copies are not the active database and are not used for normal app operation. Some purchase records are independently retained by Google Play under Google's policies.
- Support communications: are retained as long as necessary to respond, resolve requests, maintain security and comply with applicable legal obligations.
12. Deleting a MajsterGO account and data
Users can start deletion under Settings → Account and plan → Delete account and reauthenticate their Google account. The Firebase Authentication account, earlier Firestore trial records and active D1 billing/trial links are removed, subject to the minimal exceptions in section 11. The Google/Gmail account is not deleted.
Signing in again with the same verified Google account can restore an active Play subscription to a new MajsterGO account after server verification, but does not grant another trial. Legacy purchases without previously preserved ownership proof cannot be transferred automatically; contact support.
Deleting a MajsterGO account does not cancel a Google Play subscription. The subscription must be managed separately in Google Play.
Business data that exists only locally on the device is not stored on MAXIMIZE servers and therefore cannot be remotely deleted by MAXIMIZE. Users can remove it within the app, by clearing app data or by uninstalling the app; exported and backup copies must be separately deleted from wherever the user saved them.
To initiate an account-deletion request, open the MajsterGO account deletion page. For additional questions, contact support@maximize.hr.
13. Legal basis
Depending on the feature, data is processed to provide the service requested by the user, take steps at the user's request, meet contractual and legal obligations, and pursue legitimate interests such as security, abuse prevention, reliable operation and enforcement of trial rules. Where an Android permission or consent is required for a feature, the user can grant or refuse it through the relevant system or in-app flow.
14. Your rights
Depending on the circumstances and applicable law, users may request access, correction, deletion or restriction of processing of their personal data, exercise portability rights where applicable, and object to certain processing.
To exercise your rights, contact support@maximize.hr. You also have the right to lodge a complaint with the competent data protection authority, including the Croatian Personal Data Protection Agency (AZOP) in Croatia.
15. Changes to this policy
This policy may be updated when MajsterGO features, service providers or legal requirements change. The latest revision date will be shown on this page. Before new categories of processing are enabled in production, the policy will be aligned with the app's actual behaviour.
Effective / last updated: 4 October 2026.