Privacy Policy
This is the long, legal version. Skim the plain-English summary below first. It covers what most people actually want to know.
Plain-English summary
The legal text below is detailed because Canadian privacy law (PIPEDA + Quebec Law 25) requires it. But here's the gist:
- We collect what we need to show you your finances, and nothing else.
- We connect to your accounts through Plaid and SnapTrade. Read-only. No money movement.
- We do not sell your data to anyone. Ever.
- Your data is stored in Canada (Google Cloud Montreal) and follows PIPEDA + Quebec Law 25.
- Google's Gemini AI model, run in the same Montreal region, writes the short notes on your dashboard, budgets and goals from your figures, and on a paid plan suggests categories for your transactions. Section 4 lists exactly what it receives.
- You can export or delete your data anytime from Settings. Deletion is permanent within 30 days.
- Our Privacy Officer is Laurent Risser (laurent.risser@mozaicfinance.com). Real human, replies personally.
1. Identity and Contact Information
Mozaic Finance is committed to protecting your privacy. This Privacy Policy explains how we collect, use, disclose, and safeguard your information.
Organization: Mozaic Finance
Privacy Officer (as required by Quebec Law 25 and PIPEDA):
Laurent Risser
Email: laurent.risser@mozaicfinance.com
The Privacy Officer is responsible for ensuring compliance with privacy legislation, handling privacy inquiries, and overseeing the protection of your personal information. For any privacy-related questions or concerns, please contact our Privacy Officer directly.
2. Information We Collect
We collect the following types of personal information:
Account Information:
- Email address, from the way you sign in: Google, Apple, email and password, or a sign-in link sent by email, all handled by Google Cloud Identity Platform. If you sign in with Apple and choose to hide your email, we receive the relay address Apple creates for Mozaic instead
- Name and profile picture
- User preferences and settings
- If you sign in with Apple: a token Apple issues for that sign-in, stored encrypted, which we keep only so we can revoke your Apple sign-in when you delete your account
Subscription Information:
- If you subscribe on the web: the billing details Stripe shares with us (see section 4)
- If you subscribe in the iOS app: the signed purchase record Apple sends us (transaction identifiers, the plan, its renewal or expiry date, and whether it is a free trial) and Apple's later notices about renewals, billing problems and refunds. Apple takes the payment; we never see your payment details or your Apple Account password
Financial Data:
- Account balances and holdings (from connected institutions)
- Transaction history
- Investment positions and portfolio data
Roadmap Board Content:
- The text of any feature request, improvement or defect report you post, and of any reply you write
- Which requests you have voted for
This is the only content in Mozaic that becomes public. A request is reviewed before it appears, and once published it can be read by anyone, including people without a Mozaic account, and may be indexed by search engines. Nothing about who posted is shown: no name, no email address and no pseudonym. We scrub card numbers, SIN/SSN-shaped numbers and email addresses automatically before storing this text, but that scrub cannot catch everything: please do not put account numbers, balances or anyone else's details in a request. Posting is optional, and deleting your account deletes your posts, replies and votes.
Technical Data:
- Browser type and version
- Device information
- Usage patterns and analytics
We collect information directly from you when you create an account and connect your financial institutions through our third-party partners (Plaid and SnapTrade). We never receive or store your bank or brokerage password. Your login credentials go directly from you to your financial institution through these partners.
3. How We Use Your Information
We use your personal information to:
- Provide and maintain our financial dashboard service
- Aggregate and display your financial data
- Generate insights and analytics about your finances
- Suggest categories for your transactions and write the short notes on your dashboard, budgets and goals, with Google's Gemini model (see section 4)
- Improve our services and user experience
- Send service-related communications
- Limit the free trial to one per payment card
- Comply with legal obligations
We do not sell your personal information to third parties.
4. Information Sharing and Disclosure
We share your information with the following third parties:
Financial Data Providers:
- Plaid Technologies Inc. (United States) - Connecting your bank accounts, and the investment accounts some banks carry (read-only)
- SnapTrade Inc. (Canada) - Connecting your brokerage accounts (read-only)
Service Providers:
- Stripe, Inc. (United States) - Subscription billing and payment processing (email, name, billing metadata, and the payment card you enter at checkout, which Stripe collects directly; we never see the card number). Every account gets a Stripe customer record with its email address, including accounts that subscribe through the App Store
- Resend (United States) - Delivery of transactional and notification emails. Some emails carry your financial details in their body: the weekly summary includes your name, net worth, and account activity (spending, merchants, upcoming bills, and goal names), and the trial-ending email includes your name and net worth.
- Google Cloud and Google Identity Platform (United States and other regions) - Authentication, application hosting, and infrastructure
- Apple Inc. (United States) - Sign in with Apple and subscriptions bought in the iOS app. When you sign in with Apple, Apple confirms your identity and shares the email address you choose (your own or a relay address) and, in the iOS app, your name. We keep the token Apple issues for each Apple sign-in, encrypted, and ask Apple to revoke it when you delete your account. If Apple does not accept the revocation, we keep the encrypted token to retry it a limited number of times. If those retries fail, we follow up by hand, and we delete the token 30 days after the last retry, whether or not Apple has revoked it. When you subscribe in the iOS app, Apple processes the payment. We give Apple a random identifier to attach to the purchase so we can match it to your Mozaic account, and Apple sends us the purchase record and its later changes.
Artificial Intelligence:
Google Gemini, through Google Cloud Vertex AI (Google LLC; processed in the Montreal / northamerica-northeast1 region). We use Google's Gemini model in two places:
- Transaction categories, on a paid plan when Auto-categorization is on in Settings: for transactions your own rules and past choices have not already filed, we send the merchant name (or the transaction description when there is no merchant name), the amount, whether it is money in or out, and whether the account is in a business ledger, along with your category and group names, your category descriptions, your categorization rules, and the usual amounts per category for a merchant you file more than one way. Turning Auto-categorization off in Settings stops this.
- The short notes on your dashboard, budget suggestions and goal suggestions, on every plan: we send the figures each note describes, such as your net worth and its change this month, this month's income and spending, the share of your largest asset class, budget category names with their top merchants and average spending, and the savings capacity, cash on hand, total debt and highest debt interest rate behind goal suggestions.
We do not add your name, email address or account numbers to what we send to Gemini, but a transaction description can still contain a name or reference number your bank put there. It runs in our own Google Cloud project as our processor, and under Google Cloud's terms Google does not use this data to train its models without our permission.
We send nothing to Gemini until you allow AI features, when you sign up or when the app first asks you. You can turn them off at any time in your consent settings, and Gemini then receives nothing more from your account.
Analytics, Advertising, and Error Monitoring:
- Sentry, by Functional Software, Inc. (United States) - Error reports and sampled performance traces from the app and our servers: the error message, technical details of the failure, and the requests and database queries involved. We do not link reports to your account, and we mask email addresses and credentials we detect before sending. In the app, reports are sent only if you allow analytics.
- Microsoft Clarity, by Microsoft Corporation (United States) - Session recordings (clicks, scrolling, and page content) of our public pages and the sign-up and sign-in screens. A recording that starts on those screens can continue after you sign in, until the page is reloaded.
- Google Analytics, by Google LLC (United States) - Page visits and sign-up and sign-in events on the same pages. We do not send your name or email address.
- Reddit, Inc. (United States) - Advertising measurement. The Reddit pixel records visits to the same pages. If you arrive from a Reddit ad, we also send Reddit a SHA-256 hash of your email address, which lets Reddit match it to a Reddit account, when you sign up and again, with the amount and currency, on your first paid subscription.
- Meta Platforms, Inc. (United States) - Advertising measurement for Facebook and Instagram ads. The Meta pixel records visits to the same pages and clicks on our sign-up and sign-in buttons, and tells Meta when you complete a sign-up. We do not send your name or email address. Meta can link these events to your Facebook or Instagram account if you are signed in to one in the same browser.
These providers act as our processors: they are bound by their own privacy commitments and security certifications, and receive only the personal information necessary for their specific function.
Microsoft, Google, Reddit, and Meta may also use the analytics and advertising data they receive under their own privacy terms.
Cross-Border Transfers:
Your primary data, including your financial records, is stored in Canada (Google Cloud, Montreal / northamerica-northeast1 region). Some of the service providers listed above process limited personal information in the United States: Plaid (bank-connection data), Stripe (billing email, metadata, and payment cards), Apple (Sign in with Apple and App Store subscriptions), Resend (email delivery, including the financial details in some emails), Google (authentication, infrastructure, and Google Analytics), Sentry (error reports), Microsoft (Clarity session recordings), Reddit (advertising measurement), and Meta (advertising measurement). We have assessed these cross-border transfers under Quebec's Law 25 (s. 17) and PIPEDA: we minimize the personal information disclosed to each provider, protect it with encryption in transit (HTTPS/TLS), and rely on each provider's data-protection terms and security certifications. Contact our Privacy Officer for more information about these transfers.
We may also disclose information when required by law or to protect our rights and safety.
5. Consent
By using Mozaic Finance, you consent to the collection, use, and disclosure of your personal information as described in this Privacy Policy.
You may withdraw your consent at any time by:
- Disconnecting your financial accounts
- Turning off AI features in your consent settings, which stops sending anything to Gemini
- Turning off Auto-categorization in Settings, which stops sending transactions to Gemini for categorization
- Deleting your account through the Privacy & Data settings
- Contacting us at laurent.risser@mozaicfinance.com
Withdrawing consent may affect your ability to use certain features of our service.
6. Access and Correction
You have the right to:
Access Your Information:
- View all data we have collected about you
- Export your data in a portable format
Correct Your Information:
- Update your account settings
- Request corrections to inaccurate data
To exercise these rights, visit the Privacy & Data section in your account settings or contact us at laurent.risser@mozaicfinance.com.
We respond to access, correction, and deletion requests within 30 days, as required by Quebec Law 25.
7. Data Retention
We retain your personal information for as long as your account is active or as needed to provide you services. When your subscription ends, your data follows a defined lifecycle so that abandoned accounts are not kept indefinitely.
When your subscription expires:
- We revoke your connected bank and brokerage links, so no further data is pulled from those providers
- Your existing data stays fully usable on the free plan: you keep reading it and you keep adding to it by hand. If you resubscribe you will be asked to reconnect your accounts, as expired connections cannot be silently restored
Dormant accounts:
- If your account stays expired and you do not sign in for 12 months, it is treated as dormant
- We email you 30 days and 7 days before deletion, so you can sign in or export your data first
- At the deadline we permanently delete your account, both your identity information and your financial data, through the same deletion process used for user-requested deletions
When you delete your account yourself:
- Your data is permanently deleted within 30 days
- You have a 30-day grace period to cancel the deletion
- If you tell us why you are leaving, we keep that answer without your name or account attached. The reason you pick is kept; any comment you type is deleted 90 days after your account is deleted
Free trial limit:
- Each payment card gets one free trial. When a trial starts, Stripe records a fingerprint of the card on its own billing record for you. Stripe computes the fingerprint from the card; it is not the card number
- That record stays with Stripe after you delete your Mozaic account, and we keep no copy in our database. Its only use is to check whether a card has already had a free trial, so a card that has had one cannot start another on a new account
Mozaic is an account aggregator, not your financial institution of record. Your bank or brokerage remains the system of record for tax and regulatory recordkeeping, so we do not retain your transaction history after your account is deleted. Deleted data also ages out of our backups on a schedule aligned with these deletion windows.
8. Security Measures
We use the following security measures to protect your information. We've kept the language exact rather than aspirational. If a claim isn't true, it isn't here.
Encryption in transit:
- All traffic to Mozaic uses HTTPS (TLS 1.2 or higher; TLS 1.3 supported), terminated by Google Cloud Run
- HSTS is enforced with a 1-year max-age, so browsers refuse to downgrade to insecure connections
Encryption at rest:
- Sensitive fields in our database (such as the access tokens that link to your bank or brokerage, plus transaction merchant names, descriptions, and locations) are encrypted at the application layer under a per-user key: each user's data is encrypted with their own key, not one shared key
- Each user's key is itself wrapped (encrypted) by a master key held in Google Cloud KMS, which never leaves the key store and is never stored in our database or application, so decrypting any field requires an authenticated Cloud KMS call whose access we grant through IAM and can revoke centrally
- The field cipher is Fernet (AES-128-CBC with HMAC-SHA256); the per-user keys are wrapped by Cloud KMS (AES-256); the underlying database storage is independently encrypted by Google Cloud SQL (AES-256). A database dump on its own holds only ciphertext and wrapped keys, not the master key needed to read them
Authentication:
- Sign-in is handled by Google Cloud Identity Platform (Firebase Authentication). You can sign in with Google, with Apple, with an email address and password, or with a sign-in link sent by email. A password sign-up must confirm its email address before it can reach any data.
- Your browser or the app receives a short-lived Firebase ID token that the backend re-verifies on every request against Google's public keys. Token lifetime, refresh, and revocation are managed by Identity Platform.
- Optional two-factor authentication (2FA) using a TOTP authenticator app
Infrastructure:
- We run on Google Cloud Run + Cloud SQL in the northamerica-northeast1 (Montreal) region
- Google Cloud is SOC 2 Type II and ISO 27001 certified. This describes our hosting infrastructure; Mozaic itself is not separately SOC 2 certified, and we have not yet commissioned a formal external penetration test. We will update this page when we do.
Ongoing monitoring:
- Every code change is automatically scanned for vulnerabilities (Bandit static analysis) and known bad dependencies (pip-audit) before it can be merged
- Server-side logging of integration security events and Google Cloud Monitoring for anomaly detection
- Per-endpoint rate limiting is applied to prevent abuse
What we never store:
- We never receive or store your bank or brokerage password. When you connect an account, you log in directly with that institution through Plaid or SnapTrade. We only receive an opaque access token, which we encrypt before storing.
- Our connections are read-only: we have no permission to move money or place trades, even if our system were compromised.
9. Changes to This Policy
We may update this Privacy Policy from time to time. A "material change" means any change affecting how we collect, use, share, or retain your personal data.
We will notify you of any material changes by:
- Posting the new Privacy Policy on this page
- Updating the "Last Updated" date
- Sending an email notification for significant changes
We encourage you to review this Privacy Policy periodically for any changes.
10. Language Preference Data Handling
When you select a language preference, we store this locally in your browser. Your language preference is not transmitted to our servers or shared with third parties.
Last Updated: October 2026
Manage Your Data
Access, export, or delete your personal data anytime. laurent.risser@mozaicfinance.com