🔒 Privacy Policy - ShareSpend v1.0

Last Updated: November 7, 2025

App Version: 1.0

🌍 Choose Your Language / Choisissez votre langue

This privacy policy is available in 8 languages. Select your preferred language below:

🇬🇧 English 🇫🇷 Français 🇮🇹 Italiano 🇪🇸 Español 🇩🇪 Deutsch 🇵🇹 Português 🇳🇱 Nederlands 🇵🇱 Polski

📧 Questions? Contact us: thecatsizer@gmail.com

1. Introduction

Welcome to ShareSpend, a shared expense management application developed by CatSizer Lab.

We take the protection of your personal data very seriously. This privacy policy informs you about:

By using ShareSpend, you accept the practices described in this policy.

2. Data Controller

Independent Developer: CatSizer Lab

Address: 20190 ZIGLIARA VILLAGE, CORSE DU SUD, France

Contact Email: thecatsizer@gmail.com

3. Data Collected

3.1 Authentication Data

When you create an account:

Legal Basis: Contract execution (service provision) - Art. 6(1)(b) GDPR

⚠️ Important - Profile Photo Visibility:

3.2 Expense Data

When you scan a receipt or create an expense:

Legal Basis: Contract execution (core app functionality) - Art. 6(1)(b) GDPR

3.3 Group Data

When you create or join a group:

Legal Basis: Contract execution + Consent (sharing with other users) - Art. 6(1)(a) + (b) GDPR

3.4 Budget Data

When you set budgets:

Legal Basis: Contract execution (budget tracking functionality) - Art. 6(1)(b) GDPR

3.5 Technical Data

Automatically collected:

Legal Basis: Legitimate interest (service improvement, debugging) - Art. 6(1)(f) GDPR

3.6 Location Data (NOT COLLECTED)

ShareSpend does NOT collect ANY location data (neither GPS nor approximate location).

Currency is automatically detected via:

Legal Basis: N/A (no collection)

4. How We Use Your Data

4.1 Core Features

4.2 Service Improvement

4.3 Advertising

Google AdMob displays banner ads in the application.

Data shared with AdMob:

Note: Personalized ads can be disabled in your device system settings (not in-app).

5. Data Sharing

5.1 With Other Users

When you join a group:

Warning: Data shared in a group is visible to all members, even if you leave the group later.

5.2 With Third Parties (Services)

We use the following services:

Service Shared Data Purpose
Firebase Authentication Email, UID, name, avatar URL Secure authentication
Cloud Firestore All app data (including avatar URLs) Cloud storage sync
Firebase Cloud Messaging FCM token, UID Push notifications
Firebase Crashlytics Error logs, device info Debugging
Google AdMob AAID/IDFA, IP, usage Advertising
Google Cloud Functions expenseId, userId, groupId, amounts, names, reasons Disputes, settlements, group notifications, invitations

All these services are GDPR compliant.

5.3 Legal Obligations

We may disclose your data if required by law (court order, competent authority).

5.4 We Do NOT Sell Your Data

ShareSpend never sells your personal data to third parties.

6. Data Security

6.1 Technical Measures

⚠️ Security Trade-offs (Required for Core Features):

Public Data Reason Mitigation
Group basic info
(name, emoji, participants, avatar URLs)
QR code/link invitations require authenticated read access to display group preview • Expense details remain private
• Only names + avatars visible
• No email/phone exposed
Invite tokens
(groupId, expiry date)
QR codes/links must work before authentication (anonymous access) • 30-day auto-expiration
• Single-use validation
• Rate limiting (10/min)
Expense list queries
(metadata only)
Firebase query limitations require list access for filtering • Queries filtered client-side
• Document content secured (GET)
• Status field prevents deleted items

🔒 What remains PRIVATE:

6.2 Organizational Measures

6.3 No Absolute Guarantee

Important: No system is 100% secure. We do our best to protect your data, but we cannot guarantee absolute security.

Security Tips:

7. Data Retention

7.1 Retention Periods

Data Duration Justification
User account While account active Service provision
Expenses While account active Financial history
Groups While at least 1 active member Ongoing collaboration
Budgets While account active Budget tracking
Avatar URLs While account active (until "Clear Solo Data" action) Profile display (Firestore + local cache)
Avatar cache (local Flutter cache) Until cache expiration or manual clear Offline display (NOT cleared on sign out)
Crashlytics logs 90 days Debugging
Invitation tokens 30 days Security
Push notifications (Firestore doc) Deleted immediately after sending Performance
Debt reminders 7 days Rate limiting (2/day per pair)
Empty groups 90 days after last activity Storage optimization (0 active members)
Reports Indefinite (manual review) Community safety
Resolved reports 1 year then archived Legal compliance (moved to reports_archive)

7.2 Automatic Deletion

8. Your Rights (GDPR)

As a European user, you have the following rights:

8.1 Right of Access (Art. 15 GDPR)

You can request a copy of all your personal data.

How: Email thecatsizer@gmail.com with subject "GDPR Access Request"

8.2 Right to Rectification (Art. 16 GDPR)

You can correct inaccurate data.

How:

8.3 Right to Erasure (Art. 17 GDPR)

You can request deletion of your data.

How:

Consequences:

8.4 Right to Restriction (Art. 18 GDPR)

You can request to limit processing of your data.

How: Email thecatsizer@gmail.com

8.4bis Difference: Sign Out vs Clear Solo Data

ShareSpend offers two distinct actions for managing your data:

Action Location in App What is DELETED What REMAINS
🚪 Sign Out
(Temporary disconnection)
Settings → Account → Sign Out ✅ Local cache (expenses, groups)
✅ FCM token (Firestore only)
✅ Session data (SharedPreferences)

⚠️ NOT deleted:
• Avatar photo cache (Flutter image cache)
✅ User profile (name, email, avatar URL)
✅ All expenses in Firestore
✅ All group memberships
✅ All budgets

You can sign back in anytime
🔥 Clear Solo Data
(Permanent deletion + sign out)
Settings → Data → Clear Solo Data 🔥 IMMEDIATE PERMANENT DELETION:
✅ All solo expenses (solo_{userId} group)
✅ All personal budgets
✅ User profile document (name, email, avatar URL)
✅ Local cache (except language/theme/tutorial preferences)
✅ FCM token

⚠️ NOT deleted:
• Avatar photo cache (Flutter image cache)
• Firebase Authentication account

✅ You will be signed out immediately
✅ Firebase Authentication account
✅ Group memberships (name becomes "Deleted User")
✅ Shared expenses (visible to other members)

You can sign back in to create a new profile

🚨 CRITICAL DIFFERENCE:

⚠️ Important Notes:

8.4ter Clear Solo Data - Personal Data Deletion

Users can permanently delete all their personal data (solo expenses, budgets, and Firestore profile) while keeping their shared group memberships intact.

This action is available in-app under Settings → Data → Clear Solo Data.

Function name in code: _clearSoloData() (see settings_tab.dart line ~280)

⚠️ What is IMMEDIATELY & PERMANENTLY deleted:

Data Type Firestore Collection/Document Deletion Method
🔥 User Profile
(name, email, avatar URL, FCM token)
users/{userId} .delete() (entire document)
Line ~356-359 settings_tab.dart
🔥 Solo Expenses
(all expenses in your personal group)
group_expenses
(where groupId == 'solo_{userId}')
Firestore batch delete
Line ~344-353 settings_tab.dart
🔥 Personal Budgets groups/{soloGroupId}/budgets BudgetService.clearBudgets()
Line ~340 settings_tab.dart
🔥 Local Cache
(expenses, groups, categories)
SharedPreferences (device only) Remove all keys except:
• app_language
• default_currency
• enable_vibrations
• auto_rounding
• privacy_policy_accepted
• tutorial_completed
• review preferences
Line ~375-386 settings_tab.dart

What is NOT deleted:

Data Type Reason
✅ Firebase Authentication Account Allows you to sign back in and create a new profile
✅ Group Memberships
(name becomes "Deleted User")
Other members still see shared expenses history
✅ Shared Expenses
(in multi-member groups)
Financial history preserved for other members
⚠️ Avatar Photo Cache
(Flutter image cache)
Not explicitly cleared (will expire or be cleared on app uninstall)
✅ User Preferences
(language, theme, currency, tutorial status)
UX continuity if you sign back in

🚫 Debt Check (Anti-Abuse):

This deletion is blocked if you have unsettled balances in shared groups:

For exceptional cases (dispute, error), contact thecatsizer@gmail.com

After deletion:

Legal Basis: Legitimate interest (service integrity) - Art. 6(1)(f) GDPR

8.5 Right to Data Portability (Art. 20 GDPR)

You can retrieve your data in a structured format (JSON).

How:

8.6 Right to Object (Art. 21 GDPR)

You can object to the processing of your data.

How: Email thecatsizer@gmail.com

8.7 Right to Withdraw Consent

You can withdraw your consent at any time (does not affect the lawfulness of prior processing).

How:

8.8 Right to Lodge a Complaint

You can file a complaint with CNIL (France) or your national supervisory authority.

CNIL: https://www.cnil.fr/

Email: thecatsizer@gmail.com (we will try to resolve the issue before complaint)

9. Children's Data

ShareSpend is intended for users aged 16 and older (13 with parental consent in some countries).

We do not knowingly collect data from children under 13.

If you believe a child under 13 is using the app without authorization, contact us immediately: thecatsizer@gmail.com

10. International Transfers

10.1 Data Hosting

Your data is stored on Google Cloud Platform (Firebase) servers located in:

10.2 GDPR Guarantees

Google Cloud complies with:

More info: https://cloud.google.com/privacy

11. Cookies and Similar Technologies

11.1 ShareSpend Does NOT Use Cookies

The mobile app does not use cookies as it has no embedded web browser.

11.2 Technologies Used

This data is stored locally on your device.

11.3 Data Stored Locally (SharedPreferences)

The following preferences are stored only on your device:

This data is NEVER sent to our servers.

12. Policy Changes

We may modify this privacy policy at any time.

In case of major changes:

Your continued use of the app after modification constitutes acceptance of the new terms.

13. Specific Data Processing

13.1 Receipt Photos (OCR)

Important: Receipt photos are processed locally on your device via Google ML Kit.

13.2 Group Data (Visibility)

Data visible to ALL authenticated users (due to QR/link invitations):

Data visible to group members ONLY:

Data NOT visible:

13.3 Disputes and Conflicts

When you dispute an expense:

Recorded data:

Visibility:

Cloud Functions:

Important: Dispute reasons are NOT moderated. Basic local validation only (forbidden words, length check).

Legal Basis: Consent (voluntary action) - Art. 6(1)(a) GDPR

13.4 Settlements/Reimbursements

When you mark a debt as paid:

Recorded data:

Visibility:

Cloud Functions:

Warning:

Legal Basis: Consent (voluntary action) - Art. 6(1)(a) GDPR

13.5 QR/Link Invitations

Invitation tokens:

Security: Only share links/QR with trusted people. Anyone with the link can join the group for 30 days.

13.6 Content Moderation

To protect all users, we use local moderation only:

Important: No external API is used for moderation. All content validation is performed locally on your device or via Firebase Cloud Functions.

Legal Basis: Legitimate interest (community safety) - Art. 6(1)(f) GDPR

13.7 Receipt Templates

To improve OCR scan accuracy, ShareSpend memorizes:

Data stored locally (SharedPreferences):

Usage:

This data remains on your device, never sent to our servers.

Legal Basis: Legitimate interest (UX improvement) - Art. 6(1)(f) GDPR

13.8 Cloud Functions Used

List of automated backend functions:

Function Processed Data Purpose
notifyNewExpense groupId, expenseTitle, amount, paidByUserId Notify new expense
disputeExpense expenseId, userId, reason Record dispute + notify
resolveDispute expenseId, disputeId Mark resolved + notify
notifyDebtDirect groupId, fromUserId, toUserId, amount Individual debt reminder
notifySettlement groupId, fromUserId, toUserId, amount, method Notify reimbursement
notifyMemberAdded groupId, newMemberName Notify member added
notifyMemberRemoved groupId, removedMemberName, removedBy Notify member removed
notifyGroupInvitation groupId, inviterName, inviteeToken Notify group invitation
notifyMemberLeft groupId, memberName Notify member left
notifyAdminTransferred groupId, newAdminName Notify admin transfer
notifyAdminRoleChanged groupId, targetUserName, isPromotion Notify admin role change
sendPushNotification tokens, title, body, type FCM trigger (onCreate)

All these functions:

Legal Basis: Contract execution - Art. 6(1)(b) GDPR

13.9 Inappropriate Content Reporting

You can report:

Reportable content:

Recorded data:

Processing:

User blocking:

Legal Basis: Legitimate interest (community safety) - Art. 6(1)(f) GDPR

13.10 Product Database (OCR Improvement)

To improve automatic item recognition:

Data used:

Storage:

Usage:

Your purchases are NOT collected to enrich the database

Legal Basis: Legitimate interest (UX improvement) - Art. 6(1)(f) GDPR

14. Detailed Legal Bases (GDPR)

Processing Legal Basis GDPR Article
Account creation Contract execution Art. 6(1)(b)
Expense storage Contract execution Art. 6(1)(b)
Avatar URL storage Contract execution (profile display) Art. 6(1)(b)
Push notifications Consent Art. 6(1)(a)
AdMob advertising Consent (IDFA) or Legitimate interest (AAID) Art. 6(1)(a) or (f)
Crashlytics Legitimate interest (service improvement) Art. 6(1)(f)
Group data sharing Consent (voluntary action) Art. 6(1)(a)
Content moderation Legitimate interest (community safety) Art. 6(1)(f)

15. Specific Declarations

15.1 GDPR Compliance

ShareSpend complies with the General Data Protection Regulation (GDPR) of the European Union.

15.2 CCPA Compliance (California)

For California users:

15.3 Apple App Store Compliance

ShareSpend complies with Apple App Store privacy rules (if applicable).

15.4 Google Play Store Compliance

ShareSpend complies with Google Play Store privacy rules.

16. Contact and Complaints

16.1 User Support

Email: thecatsizer@gmail.com

Response Time: Within 72 business hours

16.2 GDPR Requests

Email Subject:

Processing Time: 1 month maximum (extendable by 2 months if complex)

16.3 CNIL Complaint

If you are not satisfied with our response:

CNIL (France)

3 Place de Fontenoy
TSA 80715
75334 PARIS CEDEX 07

Tel: +33 (0)1 53 73 22 22

Web: https://www.cnil.fr/

17. Glossary

18. Version and History

Current Version: 1.0 (November 7, 2025)

Initial Release Features:

19. Policy Acceptance

By using ShareSpend, you confirm that you have:

If you do not accept this policy, please do not use the application.

20. Useful Links

🇫🇷 Version Française

Note: La version française complète sera disponible prochainement. En attendant, veuillez consulter la version anglaise ci-dessus.

Contact: Pour toute question en français, contactez thecatsizer@gmail.com

🇮🇹 Versione Italiana

Nota: La versione italiana completa sarà disponibile a breve. Nel frattempo, consultare la versione inglese sopra.

Contatto: Per domande in italiano, contattare thecatsizer@gmail.com

🇪🇸 Versión Española

Nota: La versión española completa estará disponible próximamente. Mientras tanto, consulte la versión en inglés arriba.

Contacto: Para preguntas en español, contactar thecatsizer@gmail.com

🇩🇪 Deutsche Version

Hinweis: Die vollständige deutsche Version wird in Kürze verfügbar sein. In der Zwischenzeit lesen Sie bitte die englische Version oben.

Kontakt: Für Fragen auf Deutsch kontaktieren Sie thecatsizer@gmail.com

🇵🇹 Versão Portuguesa

Nota: A versão portuguesa completa estará disponível em breve. Enquanto isso, consulte a versão em inglês acima.

Contato: Para perguntas em português, entre em contato com thecatsizer@gmail.com

🇳🇱 Nederlandse Versie

Opmerking: De volledige Nederlandse versie komt binnenkort beschikbaar. Raadpleeg ondertussen de Engelse versie hierboven.

Contact: Voor vragen in het Nederlands, neem contact op met thecatsizer@gmail.com

🇵🇱 Polska Wersja

Uwaga: Pełna polska wersja będzie wkrótce dostępna. W międzyczasie zapoznaj się z angielską wersją powyżej.

Kontakt: W przypadku pytań w języku polskim, skontaktuj się z thecatsizer@gmail.com