Privacy Policy

Effective Date: March 28, 2026  |  Last Updated: October 9, 2026

This Privacy Policy describes how Contracts Manager (referred to as "the App", "we", "us", or "our"), developed by TProM Team, collects, uses, stores, and protects your information. The App is available as a web application and on Android (with iOS planned).

We are committed to transparency and to complying with the General Data Protection Regulation (GDPR) and other applicable data protection laws. This policy is based on the actual behavior of the App as implemented in its source code.

Key Points at a Glance

1. Data We Collect

1.1 Account Data

You can use the App without an account (guest mode). If you want an account, you either create one with an email address and password or sign in with Google Sign-In. Accounts are managed for us by Firebase Authentication (operated by Google). Depending on how you sign in, the following account data is processed:

DataSourcePurpose
Email addressYou (email accounts) or your Google Account (Google Sign-In)Signing in, account management, confirming the address, password recovery and account e-mails
Password (email accounts only)YouSigning in. The App sends your password directly to Firebase Authentication over an encrypted connection; Firebase stores it only in hashed form. We never receive your password and cannot read it.
Display nameYour Google Account, or the name you may enter when creating an email accountPersonalization within the App (for example the greeting and the welcome e-mail)
Profile photo URLGoogle Account (Google Sign-In only)Avatar display in the App
Unique user ID (UID)Firebase AuthenticationInternal account identifier
Sign-in method (authentication provider)Firebase AuthenticationShowing the right account and security options (for example password controls only for email accounts)
Email verification statusFirebase AuthenticationEmail accounts can use features that need an account only after confirming their address
Account creation date and last sign-in dateFirebase AuthenticationAccount metadata and account security
Verification-code records (email accounts)Our backendConfirming a new account's address with a 6-digit code and limiting attempts (see Section 3.4)
Password-reset and email-change requestsYouSending a password-reset link, or a link that confirms a new email address (see Section 6.1)
Security information (IP address, browser or device information, time of the request)Processed by Firebase Authentication when you sign in or use account functionsProtecting accounts, for example against repeated sign-in attempts
Player nickname (optional)Provided by you in-appShared EarnPoints leaderboard display; stored in Firebase Firestore only if you choose a nickname

Guest Mode: You may use the App without signing in. In guest mode, no personal data is collected. All data remains on your device only.

Email accounts before confirmation: when you create an account with an email address, we e-mail you a 6-digit code to confirm it. Until you enter that code in the App, the App works as in guest mode (on this device only), and our backend does not allow the account to connect Google Drive or Google Calendar, use AI features, write to the shared leaderboard or create an e-mail import forwarding address.

Google Drive and Google Calendar are not part of signing in. They are separate, optional connections, described in Sections 3.2 to 3.4 and 6.2.

1.2 Contract Data (User-Provided Content)

You create and manage contract records that may include:

Important: We do not control or review the content you enter into contracts. Your contracts may contain personal or sensitive data (e.g., names, addresses, financial details). The App processes this content to provide its core functionality but does not classify, profile, or make automated decisions based on it.

1.3 Notes, Secure Vault and My Storage (User-Provided Content)

Since version 5.2 the App also keeps the following, only if you use these features:

We never receive this content. It is stored on your device and, if you choose, end-to-end encrypted in your own Google Drive (Section 3.2). The Secure Vault's content is always encrypted with your master password; the App never stores or sends that password.

Fingerprint or face unlock for the Secure Vault (Android only, optional) uses Android's own biometric prompt. The App never receives fingerprint or face data: Android only tells it whether the check succeeded and then releases a key kept in the Android Keystore.

1.4 App Preferences

The App stores your settings locally, including: language, theme, font size, currency preference, and notification preferences.

1.5 Technical Data

DataWhenPurpose
Browser/OS informationDuring cloud syncIncluded in the sync metadata in your Google Drive (end-to-end encrypted once encryption is on) to help you identify which device last synced
Short-lived Google access tokensWhile Google Drive or Google Calendar is connectedLet the App use your Google Drive app folder or its own Google Calendar calendar; kept on your device and sent only to Google

1.6 Data We Do NOT Collect

2. Data Sources

2.1 Directly from You

2.2 From Third Parties

Third PartyData ReceivedWhen
Google (via Firebase Authentication)Email, display name, profile photo URLWhen you sign in with Google
Google (Drive or Calendar connection)The ID and email address of the Google account you choose for the connection, and the permission you grantWhen you connect Google Drive or Google Calendar
Groq APIStructured extraction result (JSON) based on text you sentWhen you use AI contract analysis

3. How We Store Your Data

3.1 Local Storage (Your Device)

All core App data is stored locally on your device using browser storage (IndexedDB and localStorage) on the web and native device storage on Android (via Capacitor). This includes:

On Android, the App's data is kept in its private storage, which other apps cannot read, and Android's file-based encryption protects it while the phone has not been unlocked since a restart. In addition, notes, My Storage (records and files) and the App's sync queue are encrypted with a random key of this installation that is kept in the Android Keystore, and so is the key of your end-to-end encryption. Contracts, their documents and the settings are not additionally encrypted by the App. The Secure Vault's entries are always encrypted with your master password.

In a browser, data is kept in this website's storage in your browser profile and is not additionally encrypted by the App, except the Secure Vault. Anyone with access to your computer account or browser profile could read it; protect them with your operating system's account password and disk encryption.

Android backups and device transfers (Google's backup of your phone, or copying to a new phone) include your contracts, their documents, the settings and the Secure Vault (still encrypted). They do not include notes, My Storage, the encryption keys on the device, Smart Import data or your sign-in: these are tied to a key that never leaves the phone, so a copy would be unreadable. On a new phone they come back from Google Drive (with your encryption password) or from a backup file you exported. Settings → Storage & sync shows which notes and files exist only on your device. Android's backup is provided by Google under Google's terms.

3.2 Cloud Storage (Your Google Drive)

Google Drive backup is optional. When you connect Google Drive (Settings → Storage & sync), you choose the Google account to use — the one you sign in with or a different one. The App then automatically stores synced data in the hidden application-specific folder (appDataFolder) within that Google account's Drive, using the permission drive.appdata (see Section 8). This folder is:

What is stored there depends on whether you turned on end-to-end encryption (Settings → End-to-end encryption). Attached documents and files are synced so they are available on your other devices.

DataWith end-to-end encryptionWithout it
Contract records (including records of deleted contracts)cme-c-contracts.json, end-to-end encryptedcontracts.json, scrambled with an app key*
Attached documents (PDFs, images)cmd__<id>, end-to-end encrypteddoc__<id>.b64, scrambled with an app key*
Settings (for example language and the e-mail address for reminders)cme-c-settings.json, end-to-end encryptedsettings.json, scrambled with an app key*
A cached copy of your AI points and game progresscme-c-premium.json, end-to-end encryptedpremium.json, scrambled with an app key*
Sync metadata (version, time, number of contracts, device type)cme-c-sync.json, end-to-end encryptedsync-metadata.json, not encrypted
Notes and note folderscme-notes-<n>.json, end-to-end encryptedNot uploaded — they stay on your device
My Storage file list and folders, and the files themselves (only if My Storage is set to sync with Google Drive)cme-files-<n>.json and cme__<id>, end-to-end encryptedNot uploaded — they stay on your device
Secure Vaultcm-vault-<n>.json — always encrypted with your vault master password (the vault's own end-to-end encryption)
Encryption key ringcm-keyring.json: your data key, locked with your encryption password and with your recovery key; it contains no key in readable form—
Storage markerscm-protocol.json (storage version) and sync-metadata.json containing only the text "Update app to sync", which stops older app versions—
End-to-end encryption means the data is encrypted on your device (AES-256-GCM) before it is uploaded, with a random key that only your devices hold. Neither Google nor we can read it, and our servers never receive your encryption password, your recovery key or the key itself. Google can still see some metadata, such as the number, sizes and change times of the files (Section 10.4).

*Without end-to-end encryption, contracts, documents and settings are only scrambled (AES-256-GCM) with a key that the App derives from a value built into the App and your user ID. Because that key is part of the App, this is not end-to-end encryption and should not be relied on as such: what protects this data is your Google account and the fact that Google Drive lets only Contracts Manager open its app folder. Backup files that you protect with a password are different — see Section 10.1.

Turning end-to-end encryption on moves existing contracts, documents and settings into the encrypted files; the readable copies are deleted only after their encrypted replacements have been checked. Notes written with versions before 5.2 move into the encrypted notes and leave the settings. From then on the account never goes back to the readable format. Older versions of the App can no longer sync this account until they are updated. Android versions older than 4.3.3 may in some cases still upload a readable copy of their contracts and settings; the next sync of an updated device encrypts it again and removes it, and the App tells you to update the older device (Section 10.4).

Your encryption password and recovery key. Each of your devices asks for the encryption password once and then keeps the key. If you forget the password, the recovery key (shown once when you turn encryption on) lets you choose a new one. If you lose both and no device still holds the key, nobody — including us — can open the encrypted copies: you can only delete them and start over, and documents and files that existed only in Google Drive are then lost. On a device that holds the key you can change the password, create a new recovery key, or replace the key itself ("Change encryption key").

Disconnecting Google Drive ends the App's access and stops cloud sync. The backup stays in your Google Drive, and your other Drive files are never read, changed or deleted. Deleting the backup is a separate action ("Delete the Google Drive backup" in Settings → Storage & sync). If you delete your Contracts Manager account, the backup also stays in your Google Drive unless you choose to delete it in the same step (Section 14). Because the scrambling key includes your user ID, a backup left behind after deleting your account cannot be restored into a new account; an end-to-end encrypted backup can only be opened with your encryption password or recovery key. You can remove it at any time in Google Drive (Settings → Manage apps → Contracts Manager → Delete hidden app data). Neither action deletes your Google account.

3.3 Google Calendar (Your Google Account)

Google Calendar reminders are optional. When you connect Google Calendar (Settings → Reminders, or Settings → Account & security), you choose the Google account to use — it can be the same as for Google Drive or a different one, and it can differ from the account you sign in with. The App uses the permission calendar.app.created (see Section 8), which only lets it work with calendars it created itself:

Disconnecting Google Calendar stops the updates and ends the App's access. The "Contracts Manager" calendar and its events stay in your Google account unless you choose "Also remove the calendar and its events" when disconnecting; your other calendars and events are never touched. The same applies when you delete your Contracts Manager account (Section 14). Neither action deletes your Google account.

3.4 Firebase Authentication & Firestore

Your account record (email address, display name, profile photo URL for Google accounts, UID, sign-in method, email verification status and account timestamps; for email accounts also your password in hashed form) is stored in our Firebase Authentication project (contracts-manager-e82c5). Firebase is operated by Google and processes this data on our behalf, including the security information described in Section 1.1 and the account e-mails described in Section 15. As the Firebase project administrator, we have access to your email address, display name, sign-in method, verification status and account metadata through the Firebase Console — never to your password. This data is used solely for account management, account security and support purposes. No contract data is stored in Firebase.

If you connect Google Drive or Google Calendar, on the web or in the Android app, our backend keeps one Firestore record for your account (googleTokens/{userId}) with a separate entry for each connected service, so that each connection lasts without asking Google again. Each entry holds a Google refresh token encrypted with AES-256-GCM using a key held only by our backend, the ID and email address of the Google account you chose for that service, the permissions granted, the platform and connection timestamps. It contains no contract data. Apps and browsers cannot read it (Firestore security rules deny all access); only our backend uses it, to hand short-lived access tokens to you while you are signed in to your Contracts Manager account — after checking that the account still exists and, for email accounts, that its address is confirmed.

While a new email account confirms its address, our backend keeps a Firestore record for it (emailVerification/{userId}): a keyed hash of the current 6-digit code (HMAC-SHA-256 with a key held only by our backend) — never the code itself — plus a keyed hash of the address, when the code expires, the attempts left and when codes were sent. Separate records (emailVerificationLimits) count recent codes and wrong entries per keyed hash of the email address and of the IP address, to limit abuse. Apps and browsers cannot read these records (Firestore security rules deny all access). Only our backend can mark an address as confirmed in Firebase Authentication, after the right code. The records are deleted automatically (Section 11).

When you disconnect a service, its entry is deleted and the access is revoked at Google, unless your other connected service uses the same Google account: Google can only revoke all of an account's permissions for the App at once, so in that case the access ends at Google when you disconnect the second service as well. When your Contracts Manager account is deleted — in the App or in any other way — the whole record is deleted and the access revoked automatically. Connections made with older versions of the App may instead use short-lived tokens on your device (in the Android app provided by Google Play services); disconnecting removes them from the App.

The App also uses Google Cloud Firestore (within the same Firebase project) to store EarnPoints leaderboard data. This data is only created if you voluntarily participate in the EarnPoints system and set a player nickname. Specifically:

This Firestore data is accessible by us as Firebase project administrators. It is used solely to power the shared leaderboard feature and is never used for advertising or profiling. You can delete your Firestore profile data by deleting your account via Settings.

3.5 Our Own Servers

We use Firebase Cloud Functions and Cloud Firestore as a secured backend for AI operations and AI points. The backend verifies Firebase Authentication, can verify Firebase App Check, enforces request-size and rate limits, deducts points transactionally, masks common identifiers where possible, and validates structured AI responses. We do not store the original uploaded file or full extracted document text in this backend. We store the final extraction result, point balance, point-usage history, request status, and limited security metadata needed to prevent abuse and support retries. Your saved contracts remain on your device or in your own Google Drive account.

3.6 Google Cloud Platform Monitoring

Our use of Google APIs (Firebase Authentication, Google Drive) is managed through Google Cloud Platform. Google Cloud automatically records API usage metrics (such as request counts, error rates, and quota usage) in the Google Cloud Console. This is infrastructure-level monitoring provided by Google and does not contain your personal contract data. However, it may include aggregated usage statistics such as the number of API calls made by the App.

4. How We Use Your Data

PurposeData UsedLegal Basis (GDPR)
Provide core App functionality (manage contracts) Contract data, settings Contract performance (Art. 6(1)(b))
Create your account and sign you in (email and password, or Google) Email address, password (processed only by Firebase Authentication), display name, profile photo URL (Google), UID, sign-in method Consent (Art. 6(1)(a)) — you choose to create an account or sign in
Confirm your email address, recover a forgotten password, change your password or email address Email address (and the new address for a change), verification status, verification-code records (Section 3.4), password-reset and email-change requests Contract performance (Art. 6(1)(b)) — account functions you request
Keep accounts secure (features that need an account require a confirmed email address; repeated attempts are limited; other sessions end after a password or email change) UID, sign-in method, verification status, sign-in times; IP address and browser/device information processed by Firebase Authentication; keyed hashes of the email address and IP address to limit verification-code attempts Legitimate interest (Art. 6(1)(f)) — protecting accounts and preventing abuse
Connect Google Drive or Google Calendar (optional) ID and email address of the Google account you choose, encrypted refresh token, granted permissions Consent (Art. 6(1)(a)) — you connect the service
E-mails from Contracts Manager (welcome e-mail; reminder and status e-mails if you turn them on) Your account's confirmed email address and name; for reminders the contract title, amount and dates Contract performance (Art. 6(1)(b)); optional reminder e-mails: consent (Art. 6(1)(a)) — you turn them on
Notes, Secure Vault and My Storage The content you add (Section 1.3), stored on your device Contract performance (Art. 6(1)(b))
Cloud sync across devices Contract data, attached documents, settings, notes, Secure Vault and My Storage (stored in your own Google Drive; end-to-end encrypted as described in Section 3.2) Consent (Art. 6(1)(a)) — you opt in to sync
Google Calendar reminders (optional) Contract names, deadline dates, reminder times and amounts, written to a calendar in your own Google account Consent (Art. 6(1)(a)) — you turn it on
AI-powered contract analysis Masked extracted text from uploaded documents (up to 24,000 characters) Consent (Art. 6(1)(a)) — you initiate each analysis
Send contract reminders Contract title, amount, end date Contract performance (Art. 6(1)(b))
Load application fonts Your IP address (standard HTTP request to Google Fonts CDN) Legitimate interest (Art. 6(1)(f))

5. Legal Bases for Processing

5.1 European Economic Area (EEA), United Kingdom (UK), and Switzerland

The General Data Protection Regulation (GDPR) and UK GDPR require us to explain the valid legal bases we rely on to process your personal information. We may rely on the following legal bases:

If you are located in the EEA or UK and believe we are unlawfully processing your personal information, you have the right to complain to your Member State data protection authority or the UK data protection authority. If you are located in Switzerland, you may contact the Federal Data Protection and Information Commissioner.

5.2 Canada

If you are located in Canada, we may process your information if you have given us specific permission (express consent) to use your personal information for a specific purpose, or in situations where your permission can be inferred (implied consent). You can withdraw your consent at any time.

In some exceptional cases, we may be legally permitted under applicable law to process your information without your consent, including:

6. Data Processing & Flow

6.1 Account and Sign-In Flows

Signing in with Google

  1. You choose "Sign in with Google" and pick your Google account in Google's own window.
  2. Firebase Authentication receives your Google identity (email address, name, photo URL) and creates or updates your account record.
  3. The App stores your profile (email, name, photo URL, UID, sign-in method) locally on your device.
  4. Signing in with Google does not give the App access to your Google Drive or Google Calendar (see Section 6.2).

Creating an account with an email address

  1. You enter your email address, a password (at least 8 characters) and, if you like, a name.
  2. The App sends them directly to Firebase Authentication, which creates your account and stores the password only in hashed form.
  3. Our server e-mails you a 6-digit code, which you enter in the App. The code is valid for 10 minutes and stops working after 5 wrong entries. After a minute you can ask for a new code; it replaces the previous one. Until the code is accepted, the App works as in guest mode (Section 1.1).
  4. When the code is right, our server marks your address as confirmed in Firebase Authentication. The App then signs you in, and our server sends you a welcome e-mail.

6.2 Connecting Google Drive or Google Calendar

  1. You choose "Connect" for Google Drive (Settings → Storage & sync) or Google Calendar (Settings → Reminders), or in Settings → Account & security.
  2. Google's account chooser and consent screen are shown. You can pick any of your Google accounts: the one you sign in with or another one. Google Drive and Google Calendar can use the same Google account or different ones.
  3. Google gives the App a one-time code, which our backend exchanges with Google and keeps as described in Section 3.4.
  4. From then on, your signed-in devices receive short-lived access tokens for that service without asking again.
  5. Each service is disconnected on its own. Disconnecting never deletes anything in your Google account.

6.3 Contract Management Flow

  1. You create or edit a contract via the App's form.
  2. Contract data (including any attached documents) is saved to your device's local storage.
  3. With Google Drive connected, local changes trigger an automatic sync after a short delay (after any sync questions are resolved).
  4. During sync, contract data, settings and attached documents are uploaded to your Google Drive app folder (end-to-end encrypted once you turned encryption on, otherwise scrambled with an app key; see Section 3.2).
  5. Notes, the Secure Vault and My Storage sync through the same connection: notes and My Storage only end-to-end encrypted, the Secure Vault always encrypted with its master password.
  6. If you turn on Google Calendar reminders, the App keeps a calendar named "Contracts Manager" in your Google account in line with your contracts' deadlines and reminders.

6.4 AI Analysis Flow

  1. You upload a PDF or image and choose to analyze it.
  2. Text is extracted from the document entirely on your device (using PDF.js or Tesseract.js OCR).
  3. The App sends up to 24,000 characters of extracted text to a Firebase callable function. The function verifies authentication, App Check when enforced, available AI points, request limits, and rate limits.
  4. The backend masks common identifiers where possible, including IBANs, email addresses, phone numbers, customer numbers, personal IDs, addresses, and signature lines.
  5. The masked text is sent to Groq. Groq returns a strict JSON result with extracted fields and confidence scores.
  6. The backend validates dates, amounts, currencies, categories, field lengths, and the response schema before returning the result.
  7. The result is shown in a review screen. Nothing is saved as a contract until you confirm or edit the fields.

7. AI Processing

The App offers an optional AI-powered feature to analyze contract documents and extract key information.

PropertyDetail
AI Service ProviderGroq, Inc. (San Francisco, USA)
AI ModelA Groq-hosted structured-output model selected by our backend configuration
Data SentUp to 24,000 characters of extracted text after common identifiers are masked where possible
When Data Is SentOnly when you initiate an analysis — never automatically
Authentication and Abuse ProtectionEvery paid AI request requires Firebase Authentication and a server-authoritative point balance. The backend also applies per-user, per-device, and per-IP rate limits. Firebase App Check can be enforced after deployment monitoring.
Response ValidationAll AI-extracted fields are checked against a strict JSON schema and validated for type, allowed values, dates, amounts, confidence, and maximum length before being used in the App
Data Stored by GroqGroq states that inference customer data is not retained by default, but inputs and outputs may be temporarily retained for system reliability or abuse investigations for up to 30 days unless Zero Data Retention is enabled. We recommend reviewing Groq's current data documentation for the most current information on their data retention practices.
What May Be Included in TextCompany names, contract terms, dates, amounts, and other unmasked information needed for extraction. Automated masking reduces exposure but cannot guarantee removal of every identifier.
User NoticeA privacy notice is displayed in the App before analysis is performed
Note: Text extraction from documents (PDF parsing and OCR) is performed entirely on your device. Only masked extracted text (not the original file) is sent to Groq, and only when you explicitly initiate the analysis.

7a. AI-Generated Cancellation Emails

The App includes a contract cancellation assistance feature that uses a Groq-hosted AI model to generate draft cancellation email text based on your contract details (provider name, contract number).

7b. EarnPoints System & Shared Leaderboard

The App features a points-based system called EarnPoints that allows users to earn AI scan credits and compete on a shared leaderboard.

7c. Smart Import (Contracts from E-mail)

Smart Import is optional. It helps you find the subscriptions and contracts you already have in your e-mail. Nothing it finds is added to your contracts until you approve it. Possible contracts you have not imported yet, and the ones you dismissed, are kept only on your device (not in our systems, not in cloud sync and not in the Android device backup). A contract you import remembers the mailbox and the e-mail (sender, subject, date) it came from, and the contact addresses and cancellation or account pages of the provider named in that e-mail, so the App can suggest where to cancel it; like all your contracts, this stays on your device and in your own sync and backups. Smart Import never asks for your Google or Microsoft password: you sign in on Google's or Microsoft's own page. You can connect several mailboxes and disconnect each of them at any time; contracts you imported stay.

SourceWhat happens with your data
Gmail (Google) Only if you connect it. The App requests read-only access (gmail.readonly) and searches your mailbox for messages that are likely to be about contracts or subscriptions: right after you connect it, the messages of the last 30 days (once); afterwards only messages received since the previous check. It never searches further back than 30 days. It reads the headers of matching messages and the text of the likely ones directly from Google on your device. Your e-mails and the access token do not pass through our servers and are not stored there; the token is kept in memory for about one hour. Attachments are not downloaded. What is kept on your device for a possible contract: the sender, subject, date and a short excerpt with bank, card and phone numbers and e-mail addresses removed. New messages are checked automatically (you can switch this off for each mailbox): in the Android app every few hours, also while the App is closed (the check runs on your phone, in an isolated part of the App without network or storage access of its own; Google gives the App a short-lived token for it); on the web while the App is open, for as long as the access from your last connection is valid (about one hour). When something new is found, a notification on your device tells you. On the web, "Disconnect" asks Google to revoke the access; in the Android app, and at any time, you can remove it in your Google Account.
Outlook / Hotmail (Microsoft), when available in your version of the App The same principle and the same 30-day limit through Microsoft Graph with read-only mail access (Mail.Read). So that new messages can be checked automatically, the App also receives a refresh token (offline_access). It is kept only on your device: in the Android app encrypted with a key held in the Android Keystore (and excluded from device backups), in the browser only in memory until you close the tab. It never reaches our servers. Disconnecting deletes it; you can also remove the permission in your Microsoft account.
Forwarded e-mails, when available You can create a private, random forwarding address. E-mails sent to it are received by our e-mail processing provider (Cloudflare Email Routing) and our server (Netlify Functions). Only e-mails from your own addresses are accepted. The message is reduced to text; bank, card and phone numbers and e-mail addresses are masked; attachments are checked but not stored. The result is stored encrypted (AES-256-GCM) until your App fetches it, at most 14 days, and then deleted. A hash of each message ID is kept for up to 30 days so the same e-mail is not processed twice. You can turn the address off or replace it at any time; deleting your account deletes the address and all waiting e-mails.
Optional AI check Only when you choose it, for the message you choose: a short excerpt of the message (at most 3,500 characters, with bank, card and phone numbers and e-mail addresses masked) is sent through our Firebase backend to Groq to read out the contract details (1 AI point per check). The answer only fills in or suggests values on your review screen. We do not store the text; only point and security metadata (such as counts and lengths) are recorded. Groq's handling is described in Section 7.

Google user data (Gmail): Contracts Manager uses information received from Gmail only to show you possible contracts in the App at your request. It is not used for advertising, not sold, not used to train AI models, and not read by people. It is transferred to a third party (Groq) only when you choose the AI check for specific messages. Our use and transfer of information received from Google APIs adheres to the Google API Services User Data Policy, including the Limited Use requirements.

7d. Smart Offer (Comparing Your Contracts with the Market)

Smart Offer is optional and, when available in your version of the App, compares your internet and mobile contracts with current market offers. The comparison runs on your device. Your contracts are never sent to us or to any provider for it. To compare, the App downloads a public list of offers (product names, prices, speeds, terms) from our server (Netlify); the request contains no account or contract data. Like any request to a website, our hosting provider processes your IP address to deliver it.

8. Third-Party Services

The App integrates with the following third-party services:

ServiceProviderPurposeData Shared
Firebase Authentication Google LLC Accounts: sign-in with an email address and password or with Google; e-mails to reset a password or confirm an email-address change Email address, password (stored by Firebase only in hashed form), display name, profile photo URL (Google), sign-in method, verification status, IP address and browser/device information for security
Google Drive API Google LLC Cloud sync after Google Drive connection Contract data, attached documents, settings, sync metadata, notes, Secure Vault and My Storage files — end-to-end encrypted once you turn encryption on (notes and My Storage only ever this way, the Secure Vault always with its own encryption), otherwise contracts and settings scrambled with an app key (Section 3.2) — stored in your own Google Drive
Google Calendar API Google LLC Deadline and reminder events (optional, when you turn on Calendar reminders) Contract names, deadline dates, reminder times and amounts — stored in a "Contracts Manager" calendar in your own Google account
Google OAuth 2.0 Google LLC Authorization for the optional Google Drive and Google Calendar connections, each with a Google account you choose Standard OAuth exchange; the ID and email address of the chosen Google account
Groq API Groq, Inc. AI contract text analysis (optional, user-initiated) Up to 24,000 characters of extracted text after common identifiers are masked where possible. Groq's current retention terms apply.
Firebase Cloud Functions & Firestore Google LLC Authenticated AI processing, point ledger, rate limiting, request status, and final extraction result; Google Drive / Google Calendar connection records (Section 3.4) and their clean-up when an account is deleted; verification codes for new email accounts (Section 3.4) Firebase identity, masked extracted text during processing, final extraction result, point usage, and limited abuse-prevention metadata; encrypted Google refresh tokens with the ID and email address of the connected Google account; keyed hashes of verification codes, email addresses and IP addresses
Google Cloud Firestore Google LLC EarnPoints shared leaderboard (optional, if you set a nickname) Player nickname, point score, anonymity preference, Firebase UID (as document key)
Netlify Netlify, Inc. Hosts the web application and our server functions (e-mails from Contracts Manager, e-mail import, provider lookups) Your IP address and standard HTTP request metadata (handled by Netlify infrastructure); for e-mails the data listed in the next row; send times per account ID to enforce sending limits
E-mail delivery (SMTP) Our e-mail service provider Delivering e-mails from Contracts Manager (verification codes for new email accounts; welcome e-mail; reminder and status e-mails if you turn them on) Your account's email address and name, and the contract details contained in the e-mail; a verification e-mail contains only the code
Google Fonts CDN Google LLC Loading application fonts Your IP address (standard HTTP request)
jsDelivr / unpkg CDN jsDelivr / unpkg Downloading OCR language model (on first use of document scanning) Your IP address (standard HTTP request)

Google OAuth Scopes

The App asks Google for different permissions for different purposes, each only when you start that action:

Google API Services User Data Policy

Our use of information received from Google APIs adheres to the Google API Services User Data Policy, including the Limited Use requirements.

Social Login (Google Sign-In)

The App offers you the ability to register and log in using your Google account, as an alternative to an account with an email address and password. Where you choose to do this, we receive certain profile information from Google, specifically: your name, email address, and profile picture. We do not receive your friends list, contacts, or any other social information. Signing in with Google identifies you only: connecting Google Drive or Google Calendar is a separate, optional step with its own Google permission request, for a Google account of your choice (Section 6.2).

We will use the information we receive only for the purposes described in this Privacy Policy. We do not control, and are not responsible for, other uses of your personal information by Google. We recommend that you review Google's Privacy Policy to understand how they collect, use, and share your personal information.

Third-Party Websites

The App may contain links to third-party websites or services that are not operated by us. We are not responsible for the privacy practices of any third-party websites. We encourage you to review the privacy policies of any third-party services you access through the App.

Business Transfers

We may share or transfer your information in connection with, or during negotiations of, any merger, sale of company assets, financing, or acquisition of all or a portion of our business to another company. If such a transfer occurs, the acquiring party will be bound by the terms of this Privacy Policy.

9. Cookies & Tracking

9.1 Cookies

The App uses one functional cookie:

Cookie NamePurposeDurationType
sidebar_state Remembers whether the sidebar is open or closed (stores true or false) 7 days Strictly necessary / Functional (first-party)

The App does not use any tracking, advertising, or third-party cookies.

9.2 Analytics & Tracking

The App does not use any analytics or tracking services. Specifically:

9.3 Crash Reporting

The App does not use external crash reporting services (no Sentry, Crashlytics, or similar). Application errors are logged locally on your device for debugging purposes only and are never transmitted to any external server. Sensitive data (such as contract text content and AI responses) is not included in any local diagnostic logs.

9.4 Do-Not-Track Signals

Most web browsers and some mobile operating systems include a Do-Not-Track ("DNT") feature or setting you can activate to signal your privacy preference not to have data about your online browsing activities monitored and collected. Since the App does not use any analytics, tracking, advertising, or profiling technologies, DNT signals have no practical effect on how the App operates — we do not track you regardless of whether DNT is enabled.

10. Data Security

10.1 Encryption and Protection

10.2 Data Transmission

10.3 Access Control

10.4 Limits of This Protection

We want you to know what encryption can and cannot do:

11. Data Retention

12. Your Rights (EEA, UK, Switzerland — GDPR)

If you are located in the EEA, UK, or Switzerland, you have the following rights under applicable data protection laws:

RightHow to Exercise
Right of Access (Art. 15) All your data is stored locally on your device and visible within the App. You can also view your cloud data by syncing.
Right to Rectification (Art. 16) You can edit any contract or setting directly within the App. For an email account you can change your email address and password in Settings → Account & security.
Right to Erasure (Art. 17) You can delete individual contracts, notes, Secure Vault entries and My Storage files within the App, and delete the Secure Vault as a whole. You can delete the Google Drive backup via Settings → Storage & sync → "Delete the Google Drive backup". You can delete your account via Settings → Account & security → "Delete Contracts Manager account" (see Section 14). You can clear all local data by clearing the App's browser/app storage.
Right to Data Portability (Art. 20) You can export your contracts, documents, settings, notes and Secure Vault (which stays encrypted with its master password) as a backup file (.zip), protected with a password or — after confirming — without; your contracts as a PDF report; and your My Storage files as a ZIP of the original files.
Right to Restrict Processing (Art. 18) You can use the App in guest mode without signing in. You can stop cloud sync by signing out or disconnecting Google Drive, and stop Calendar reminders by disconnecting Google Calendar. AI analysis is always optional.
Right to Withdraw Consent (Art. 7(3)) You can sign out at any time. You can disconnect Google Drive or Google Calendar at any time, each on its own. You can choose not to use AI analysis.
Right to Object (Art. 21) Contact us using the details below.

13. US State Privacy Rights

If you are a resident of California, Colorado, Connecticut, Delaware, Florida, Indiana, Iowa, Kentucky, Maryland, Minnesota, Montana, Nebraska, New Hampshire, New Jersey, Oregon, Rhode Island, Tennessee, Texas, Utah, Virginia, or other US states with privacy laws, you may have additional rights regarding your personal information.

13.1 Categories of Personal Information We Collect

CategoryExamplesCollected?
A. IdentifiersEmail address, display name, unique user ID, IP addressYes
B. Personal information (California Customer Records)Name, email addressYes
C. Protected classificationsRace, gender, age, etc.No
D. Commercial informationPurchase history, payment informationNo
E. Biometric informationFingerprints, voiceprintsNo
F. Internet or network activityBrowsing history, search historyNo
G. Geolocation dataDevice locationNo
H. Audio, electronic, sensory dataImages, audio recordingsNo
I. Professional or employment informationJob title, work historyNo
J. Education informationStudent recordsNo
K. Inferences from collected dataProfiles or predictions about preferencesNo
L. Sensitive personal informationAccount log-in credentials; health, race, religion, sexual orientation, etc.Only account log-in credentials (email address and password of email accounts), used only to sign you in. The password is handled by Firebase Authentication and never visible to us.

We retain collected personal information (Categories A and B) for as long as you have an account with us.

13.2 Your Rights Under US State Privacy Laws

Depending on your state of residence, you may have the right to:

Note: We do not sell your personal information. We do not use your personal information for targeted advertising. We do not engage in profiling that produces legal or similarly significant effects.

13.3 How to Exercise Your Rights

To exercise these rights, you can contact us at info@contracts-manager.eu or by submitting a data subject access request. We will verify your identity before processing your request by matching information you provide against the information we hold.

13.4 California "Shine The Light" Law

California Civil Code Section 1798.83 ("Shine The Light") permits California residents to request information about personal information disclosed to third parties for direct marketing purposes. We do not disclose personal information to third parties for direct marketing purposes.

13.5 Appeals

If we decline to take action regarding your request, you may appeal our decision by emailing us at info@contracts-manager.eu. We will inform you in writing of any action taken or not taken in response to the appeal. If your appeal is denied, you may submit a complaint to your state attorney general.

14. Data Deletion

14.1 Available Deletion Actions

ActionWhat Is DeletedPermanent?
Delete individual contract Contract record, associated reminders, and status tracking from local storage Yes (locally). Reflected in cloud on next sync.
Delete a note, or a file in My Storage Moves it to the trash; after 30 days, or with "Delete forever", it is removed from this device and, with sync, from Google Drive and your other devices Yes, after the trash period.
Delete a Secure Vault entry, or the whole Secure Vault The entry (or the vault) on this device and, with sync, in Google Drive and on your other devices Yes.
Delete the Google Drive backup (Settings → Storage & sync) All files in your Google Drive app folder (contracts, documents, settings, notes, Secure Vault, My Storage, the encryption key ring, sync metadata); for an account that used end-to-end encryption, two small marker files without personal data stay (Section 11); Google Drive is then disconnected Yes. Local data is not affected. Your other Drive files are never touched.
Start over with new end-to-end encryption ("I have neither the password nor the recovery key") The key ring and every end-to-end encrypted copy in your Google Drive. What is stored on your devices is kept and uploaded again under a new password; documents and files that existed only in Google Drive are lost. The Secure Vault is not affected. Yes.
Reset the app on this device (Settings → Storage & sync) All contracts, documents, notes, Secure Vault, My Storage files, settings and encryption keys on this device Yes, on this device. Google Drive is not affected; the App shows first which notes and files exist only on this device.
Delete Contracts Manager account (Settings → Account & security) Your Firebase Authentication account (you can no longer sign in with it), AI points data and usage history, leaderboard profile and entries, your e-mail import forwarding address and waiting e-mails, the e-mail import connections on this device (Gmail access is revoked where possible), Smart Offer history on this device, and the Google connection record (Section 3.4) with its access revoked at Google, so the App can no longer use Google Drive or Google Calendar Yes. Your Google account, your Google Drive files and your Google calendars and events are not deleted. Contracts on your device stay until you also reset the App.
Optional, when deleting your account Only if you tick these options in the same step: the Contracts Manager backup in your Google Drive, and the "Contracts Manager" calendar with its events Yes. Both options are off by default; nothing else in your Google account is deleted.
Sign Out Authentication session and OAuth tokens from local storage Your data remains on device and in cloud.
Disconnect Google Drive Local sync state and the Drive entry of the Google connection record, with the access revoked at Google unless Google Calendar uses the same Google account The backup remains in your Google Drive until you delete it. Google Calendar stays connected.
Disconnect Google Calendar The Calendar entry of the Google connection record, with the access revoked at Google unless Google Drive uses the same Google account; the calendar is no longer updated The "Contracts Manager" calendar remains unless you choose "Also remove the calendar and its events". Google Drive stays connected.
Clear App Data (browser/OS) All local storage, session storage, cookies, and cached data Yes for local data. Cloud data is not affected.

Deleting your Contracts Manager account requires you to confirm that it's you (your password, or Google for Google accounts). If an account is deleted in any other way (for example by us at your request), our backend automatically revokes and removes its Google connections and deletes its AI points and leaderboard data. Afterwards, no device can use the account's Google Drive or Google Calendar access any more.

14.2 Cloud Sync & Deletion

15. Notifications

16. Children's Privacy

The App is not directed at children under the age of 16. We do not knowingly collect personal data from children. If you believe a child has provided personal data through the App, please contact us and we will take steps to delete that information.

17. Android Permissions

The Android version of the App requests the following permissions:

PermissionPurpose
Internet, Network stateRequired for authentication, cloud sync, and AI analysis; the network state lets the App wait while you are offline
Storage (Read/Write, only on Android 12 and older)Import and export contract files and backups
Post NotificationsDeliver local contract reminder notifications (Android 13+)
VibrateHaptic feedback for notifications
Schedule Exact Alarm, Use Exact AlarmSchedule precise contract reminder notifications
Receive Boot CompletedRe-schedule reminder notifications after device restart
Wake Lock, Foreground ServiceLet short background tasks (Android's WorkManager, for example scheduled checks) finish reliably
Use CredentialsGoogle sign-in on Android through Google Play services
Use Biometric / Use FingerprintOptional fingerprint or face unlock of the Secure Vault. The check is done by Android; the App never receives biometric data

The App does not request access to your location, camera, microphone, contacts, or phone.

18. International Data Transfers

Your data may be processed outside your country of residence through the following services:

These services may process data in the United States or other countries. We rely on these providers' compliance with applicable data protection regulations, including appropriate safeguards for international data transfers as required by the GDPR.

19. Changes to This Policy

We may update this Privacy Policy from time to time. The updated version will be indicated by an updated "Last Updated" date at the top of this page. If we make material changes, we may notify you by prominently posting a notice within the App. We encourage you to review this policy periodically for any changes. Continued use of the App after changes are posted constitutes acceptance of the updated policy.

20. Contact Us

If you have questions about this Privacy Policy or wish to exercise your data protection rights, please contact us:

You also have the right to lodge a complaint with your local data protection supervisory authority if you believe your data has been processed in violation of the GDPR.

21. How Can You Review, Update, or Delete Your Data?

Based on the applicable laws of your country or state of residence, you may have the right to request access to the personal information we collect from you, details about how we have processed it, correct inaccuracies, or delete your personal information. You may also have the right to withdraw your consent to our processing of your personal information.

To review, update, or delete your personal information, you can: