This privacy policy is available in 8 languages. Select your preferred language below:
📧 Questions? Contact us: thecatsizer@gmail.com
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.
Independent Developer: CatSizer Lab
Address: 20190 ZIGLIARA VILLAGE, CORSE DU SUD, France
Contact Email: thecatsizer@gmail.com
When you create an account:
Legal Basis: Contract execution (service provision) - Art. 6(1)(b) GDPR
⚠️ Important - Profile Photo Visibility:
When you scan a receipt or create an expense:
Legal Basis: Contract execution (core app functionality) - Art. 6(1)(b) GDPR
When you create or join a group:
Legal Basis: Contract execution + Consent (sharing with other users) - Art. 6(1)(a) + (b) GDPR
When you set budgets:
Legal Basis: Contract execution (budget tracking functionality) - Art. 6(1)(b) GDPR
Automatically collected:
Legal Basis: Legitimate interest (service improvement, debugging) - Art. 6(1)(f) GDPR
ShareSpend does NOT collect ANY location data (neither GPS nor approximate location).
Currency is automatically detected via:
Legal Basis: N/A (no collection)
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).
When you join a group:
Warning: Data shared in a group is visible to all members, even if you leave the group later.
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.
We may disclose your data if required by law (court order, competent authority).
ShareSpend never sells your personal data to third parties.
/users/{userId})⚠️ 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:
Important: No system is 100% secure. We do our best to protect your data, but we cannot guarantee absolute security.
Security Tips:
| 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) |
reports_archive collection)As a European user, you have the following rights:
You can request a copy of all your personal data.
How: Email thecatsizer@gmail.com with subject "GDPR Access Request"
You can correct inaccurate data.
How:
You can request deletion of your data.
How:
Consequences:
You can request to limit processing of your data.
How: Email thecatsizer@gmail.com
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:
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
You can retrieve your data in a structured format (JSON).
How:
You can object to the processing of your data.
How: Email thecatsizer@gmail.com
You can withdraw your consent at any time (does not affect the lawfulness of prior processing).
How:
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)
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
Your data is stored on Google Cloud Platform (Firebase) servers located in:
europe-west1 - Belgium)Google Cloud complies with:
More info: https://cloud.google.com/privacy
The mobile app does not use cookies as it has no embedded web browser.
This data is stored locally on your device.
The following preferences are stored only on your device:
This data is NEVER sent to our servers.
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.
Important: Receipt photos are processed locally on your device via Google ML Kit.
Data visible to ALL authenticated users (due to QR/link invitations):
Data visible to group members ONLY:
Data NOT visible:
When you dispute an expense:
Recorded data:
Visibility:
Cloud Functions:
disputeExpense: Records dispute + notifies members (NO moderation)resolveDispute: Marks as resolved + notifiesImportant: Dispute reasons are NOT moderated. Basic local validation only (forbidden words, length check).
Legal Basis: Consent (voluntary action) - Art. 6(1)(a) GDPR
When you mark a debt as paid:
Recorded data:
Visibility:
Cloud Functions:
notifySettlement: Notifies both parties + groupWarning:
Legal Basis: Consent (voluntary action) - Art. 6(1)(a) GDPR
Invitation tokens:
invite_tokens/{token})Security: Only share links/QR with trusted people. Anyone with the link can join the group for 30 days.
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
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
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:
europe-west1 (Belgium)Legal Basis: Contract execution - Art. 6(1)(b) GDPR
You can report:
Reportable content:
Recorded data:
Processing:
reports/{reportId}User blocking:
users/{yourId}/blockedUsers)Legal Basis: Legitimate interest (community safety) - Art. 6(1)(f) GDPR
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
| 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) |
ShareSpend complies with the General Data Protection Regulation (GDPR) of the European Union.
For California users:
ShareSpend complies with Apple App Store privacy rules (if applicable).
ShareSpend complies with Google Play Store privacy rules.
Email: thecatsizer@gmail.com
Response Time: Within 72 business hours
Email Subject:
Processing Time: 1 month maximum (extendable by 2 months if complex)
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/
Current Version: 1.0 (November 7, 2025)
Initial Release Features:
By using ShareSpend, you confirm that you have:
If you do not accept this policy, please do not use the application.
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
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
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
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
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
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
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