Privacy Policy

Last updated: October 9, 2026

1. Who We Are

GetALife (package name: app.tinygiants.getalife) is operated by GetALife by Michael Hofmann, c/o POSTFLEX PFX-197-086, Emsdettener Straße 10, 48268 Greven, Germany, which is the controller within the meaning of the GDPR.

For any privacy-related inquiries, please contact us at:
Email: info@getalife.app

2. What Data We Collect and Why

2.1 Account and Sign-In (Firebase Authentication, Cloud Firestore)

Using GetALife requires an account. For this we process your email address and your password, which Google only stores in hashed form. If you sign in with Google or Apple, we receive an identifier, your email address, and, where available, your name and profile picture from that provider. On first launch, the app already creates an anonymous account without an email address, which becomes your account when you register. For your account, we also store a user profile with your name, your email address, the address of your profile picture, your push token (see 2.7), and technical details (for example, the time of registration, sign-in method, app version, which store the app was installed from, the country of your store account, whether you allowed notifications, subscription and entitlement status, settings, and consents) as well as the progress of the initial setup, meaning which steps you completed and when, but not your inputs within it. We store the user profile in Google Cloud in Frankfurt am Main.

Profile picture: If you upload a profile picture in the app, we store it in our cloud storage (Firebase Storage). It is deleted when you replace or remove it, and at the latest when your account is deleted.

Changing your email address: If you change your email address, we send a confirmation link (valid for 24 hours) to the new address. After the change, your previous address and, if configured, your vault's warning address receive a message with a link that lets you undo the change for 7 days. Of these links, we only store an irreversible checksum.

2.2 Your Financial Data and Encryption

The app stores your budgets, accounts, transactions, and savings goals encrypted on your device. They are not uploaded to our servers; individual details only leave your device for the features described below (such as AI features, logo search, or the optional sharing of your progress with AI assistants).

So that you can access your data again after switching devices or resetting your password, we store the key that encrypts your data on our servers. There it is additionally encrypted with Google Cloud Key Management Service (Frankfurt am Main) and is only released to your app after a fresh sign-in with a confirmed email address. If the key is retrieved, replaced, or deleted, you receive a warning by email. We keep the logs of these events for 90 days.

2.3 Emails (Resend)

We send emails about your account (address confirmation, password reset, email change, account deletion, security alerts, a reminder before a trial ends) through Resend (Plus Five Five, Inc., USA). This involves processing your email address, the content of the message, and delivery information. We do not send marketing emails.

Reminder before your trial ends: If you start a free trial through the App Store or Google Play, we remind you by email shortly before it ends so that you can decide in time. To do this, we schedule the message when the trial starts using Google Cloud Tasks (Frankfurt am Main). This processes your user identifier, the end date of the trial, the store, the chosen product, and your device's language and time zone, which we receive through RevenueCat (see 2.9). The email is not sent if you cancel the trial beforehand, the subscription is already running, or you delete your account. We note in your user profile that the reminder was sent.

2.4 Abuse Protection (Firebase App Check)

To ensure that only the genuine GetALife app can use our servers, we verify requests with Firebase App Check. This processes information about the authenticity of the app and device through Google Play Integrity (Android) or Apple App Attest (iOS).

2.5 Crash Reporting (Firebase Crashlytics)

We collect crash logs, stack traces, basic device information (device model, OS version, app version), the most recently opened screen, and your user identifier to identify bugs, attribute them to an account, and fix them. This data is collected automatically when a crash or non-fatal error occurs.

2.6 Performance Monitoring (Firebase Performance)

We collect app performance metrics such as startup time, network request latency, and screen rendering times to improve the user experience.

2.7 Push Notifications (Firebase Cloud Messaging)

We collect a device push token to send you notifications and store it in your user profile. You can disable push notifications at any time in your device settings.

For messages within the app, we also use Firebase In-App Messaging. This processes an installation identifier of the app and basic device information in order to fetch and display relevant messages.

2.8 Customer Support (Crisp Chat)

We use Crisp for the in-app chat. So that we can match you to your account in the chat, the app passes your user identifier, your name, your email address, and the address of your profile picture to the Crisp chat component as soon as you sign in, not only when you open the chat; technical details (platform, language, app version, sign-in method, subscription status) are added. When you write to us, we additionally process your chat messages to provide customer support.

Your chat messages are transmitted through our servers to Anthropic (Claude) so that an AI assistant can draft a suggested reply for our team; your message is currently answered only by a person from our team. For this, we store the message together with the previous conversation and your user identifier in our database (Google Cloud, Frankfurt am Main). From our team's answers, Claude uses your first question and our answer to create a generalized entry (question and answer) for our help collection so that similar questions can be answered directly in the future; your name and email address are not transmitted for this. The help collection is kept in a non-public repository at GitHub (GitHub, Inc., USA).

2.9 Subscriptions and Purchases (RevenueCat)

We use RevenueCat to manage subscriptions and in-app purchases. The app signs in to RevenueCat with your user identifier (Firebase user ID) and transmits your email address, your name, your push token, the analytics identifier of this app installation (Firebase App Instance ID), your device's language and time zone, and the variant of the initial setup you saw. RevenueCat processes your purchase history and subscription status for this and reports changes to our servers so that your access is unlocked. On iOS, the app additionally transmits an attribution token from Apple (AdServices) that lets RevenueCat recognize whether the installation came from one of our ads in App Store search; no advertising identifier (IDFA) is used for this. No payment details (such as credit card numbers) are collected by us; payments are handled by the respective app store (Apple App Store or Google Play).

If you never bought anything, meaning you neither started a subscription (including a free trial) nor made a one-time purchase nor received access from us as a gift, we delete your customer record at RevenueCat together with your account. If you did buy something, your customer record at RevenueCat remains in place after your account is deleted, meaning your user identifier, your email address, your name, the purchase history, and the subscription status. The purpose is to document purchases and to process refunds and payment inquiries, for which we need to be able to find you by your email address and name. The legal basis is Art. 6(1)(c) GDPR (statutory retention obligations under commercial and tax law) and Art. 6(1)(f) GDPR (legitimate interest in resolving payment claims). The data is deleted once the statutory retention period of ten years has expired.

2.10 Paywall Analytics (Superwall)

We use Superwall to manage and optimize our paywalls. The app signs in to Superwall with your user identifier (Firebase user ID) and transmits the main goal you chose from a fixed list during the initial setup, so that the matching purchase screen appears. Superwall also collects data about paywall impressions, interactions, and conversion events as well as basic device information.

2.11 Banking Data (finAPI) - coming soon

The optional bank connection is not yet available. Once it becomes available, processing will be handled by finAPI GmbH (Munich, Germany), a BaFin-regulated payment institution, as our open banking provider to access your account data and transactions. GetALife will never store your bank login credentials. Authentication will happen directly and securely between you and finAPI. We will receive read-only access to account balances and transaction data to provide our budgeting features.

2.12 AI Features (Anthropic Claude, fal.ai)

Some features of GetALife use artificial intelligence to process your inputs. For this we use the Claude AI models of Anthropic PBC (USA). Requests are always routed through our own servers (Firebase Cloud Functions); the app never talks to Anthropic directly. The following features send data to Anthropic:

  • Voice entry: When you dictate a transaction, speech-to-text conversion is performed by your operating system's speech recognition service (Google on Android, Apple on iOS). The app does not require this service to run on the device only; whether the audio is processed on your device or on Google's or Apple's servers is decided by your operating system in accordance with the respective provider's privacy policy. We never receive the audio recording ourselves. Only the recognized text is sent to Anthropic together with the names of your categories, accounts, payees, and tags so the transaction can be filled in for you; if you use your voice to correct a transaction that was already recognized, its previous details (amount, date, description, category, payee) are added.
  • Receipt scanning: When you photograph a receipt, the photo is processed together with your category and payee names to extract the transaction details.
  • Automatic categorization of bank transactions: Only the payee name and the amount of imported transactions are processed to suggest a matching category - no IBAN, no account balance, and no transaction date. This feature only runs after you have explicitly agreed to it in the app, and you can turn it off at any time in your profile settings.
  • Budget rebalancing (Smart Fix): When you request a suggestion for covering overspent categories, the names and emoji of the affected categories, the overspent amounts, the available surpluses of other categories, whether a category is marked as essential, and the days until the next payment is due are processed.
  • Emoji suggestions: For new categories and payees, their name is processed to suggest a matching emoji.
  • Savings-goal background images: When you create a savings goal with a custom name, that name is processed to derive a short visual scene description for the background image of your goal.
  • Support chat: Your chat messages and the previous conversation (see 2.8).

Where supported by your device, some of these features run entirely on-device, in which case no data is sent to Anthropic. Under Anthropic's commercial terms, data submitted via its API is not used to train AI models and is retained only temporarily for abuse prevention before being deleted.

Usage counters: We count how often you use each AI feature per month and feature in your user profile, as well as the calls per day in order to enforce daily limits. The counters contain no content from your requests; they serve cost monitoring and abuse prevention and are deleted with your account.

AI-generated images (fal.ai): The background image for a savings goal is generated by fal.ai (Features and Labels, Inc., USA). Our servers send only the scene description derived from your goal name (or, if it cannot be generated, the goal name itself), never your budget figures, your user identifier, or other personal data, to fal.ai, which processes it solely to generate the image in accordance with its privacy policy. The generated image is stored in our cloud storage and deleted when you delete the goal or your account.

2.13 Payment Recognition from Notifications (Android only) - coming soon

This feature is not yet available. Once it becomes available, the following will apply: when you set up the “Detect payments” feature, GetALife reads the notifications of the apps you select yourself in order to suggest payments for your budget. You choose each app individually and can deselect it at any time; without your selection, not a single notification is evaluated. The feature requires the Android notification access permission, which you can revoke in your system settings at any time. This feature does not exist on iOS.

The reading itself happens exclusively on your device. The notification text is matched there against known recognition patterns; it is not transmitted to us and not stored by us.

Learning unknown bank formats (optional, off by default). If no known pattern matches a notification that looks like a payment, you can allow us to create a new recognition pattern from it. This consent is not granted by default, requires an active subscription, and can be withdrawn in the app at any time. Without it, no notification text ever leaves your device.

If you have consented, the following happens: the sending app's name plus the title and text of that single notification are transmitted once to our servers (Firebase Cloud Functions) and from there to Anthropic in order to derive a recognition pattern. Only the recognition pattern itself (a technical search expression) is then stored. The notification text, the amount, and the payee name are not stored by us. At most ten such requests are possible per day.

A newly created pattern is initially only a proposal. To prevent a lucky single match from becoming generally valid, it must work for three different users before it is added to a shared pattern catalogue from which all users of the same bank receive it. To count how many different people have confirmed a pattern, we store an irreversible checksum of your user identifier with each proposal, not the identifier itself. It serves solely to avoid counting the same person twice; it cannot be traced back to you, and once your account is deleted it can no longer be attributed to anyone. The shared pattern catalogue itself contains only the search expressions and no information about individuals.

2.14 Usage Analytics (Firebase Analytics, own usage log and onboarding answers)

After you accept our terms, we use Google Analytics for Firebase to understand how the app is used (for example, which screens are opened and which features are used). The data is linked to your user identifier. This data is used solely to improve the app. We do not use it for advertising and do not combine it with advertising identifiers.

In addition, we keep our own usage log for your account in our database (Google Firebase, Frankfurt data centre). It contains what you tell us during onboarding (the name we address you by, your worries and goals, and your life picture: household, children, pets, housing, getting around and employment), which screens you open in which order, which features you use, how you move through the purchase screen (plan chosen, purchase, cancellation, trial), whether you open the app from a notification, whether you allow notifications, your display and reminder settings, your device's language and time zone, how you unlock your vault (device, code or password, never the code itself) and where on the screen you tap. Amounts, balances, transactions and the names of your categories, accounts or payees are not included. The information that you use a wheelchair never leaves your device. We use this log only to improve the app and do not share it.

Before this acceptance, we only count how many different people reach the welcome screen. For this, we store an irreversible checksum of the anonymous sign-in identifier together with the time of the first visit, and nothing else.

2.15 Logos for Accounts and Payees (Brandfetch)

So that accounts and transactions appear with the right logo, our servers send the name of an account or payee as a search term to Brandfetch Sàrl (Switzerland) whenever we cannot match it ourselves. Each name is looked up at most once; no further details, such as amounts or your user identifier, are transmitted. The app then loads the logo it found directly from Brandfetch's servers (cdn.brandfetch.io); for technical reasons, Brandfetch receives your IP address and the web address (domain) of the brand in question. You can turn off logo search in the settings.

2.16 Sharing Your Progress with AI Assistants (optional, off by default)

In your profile, you can turn on the “Share progress with AI assistants” switch. Only then does the app store a small summary of your progress in our database (Google Cloud, Frankfurt am Main) and keep it up to date: league tier and phase, league score, days in the current tier, your current and longest streak, budget adherence and savings rate as percentages, your financial runway as a rough range (for example, “1 to 3 months”), and the partial scores that make up your league score. Amounts, transactions, balances, and the names of your categories, accounts, or payees are never included.

If you connect an AI assistant to your GetALife account, it can read this summary through our interface (Google Cloud Run, Frankfurt am Main). The company operating the assistant then also receives it and is itself responsible for any further processing there. The legal basis is your consent. If you turn sharing off, we delete the summary from our servers; at the latest, it is deleted with your account.

2.17 Website Contact Form

If you write to us using the contact form on getalife.app, we process your name, your email address, the subject and your message in order to answer your request. The message is delivered to us by email via our servers (Google Cloud Functions, Frankfurt am Main) and Resend; your email address is used as the reply address. To protect against abuse, we check the request with Firebase App Check and count requests per email address and per IP address; for this we store only a keyed check value (HMAC), never the address itself, and delete it automatically after two days at the latest. The legal basis is Art. 6(1)(b) GDPR where your request concerns a contract, otherwise Art. 6(1)(f) GDPR (legitimate interest in answering requests). We delete your message once your request has been dealt with, unless statutory retention obligations apply.

2.18 Data We Do NOT Collect

  • Advertising: We do not show ads and do not use advertising SDKs or advertising identifiers (IDFA or Android advertising ID). The only exception is the measurement described in 2.9 of whether an iOS installation came from our own ad in App Store search.
  • Location data: We do not collect your location.
  • Cross-app tracking: We do not track your activity across other apps or websites.

3. Legal Basis for Processing

Under the General Data Protection Regulation (GDPR), we process your personal data based on the following legal grounds:

Legal Basis Applies To
Contract performance (Art. 6(1)(b) GDPR) Account and sign-in including profile picture, storage of the data key, emails about your account including the reminder before a trial ends (Resend), banking data (finAPI, coming soon), subscription management (RevenueCat) - necessary to provide the core service.
Legitimate interest (Art. 6(1)(f) GDPR) Crash reporting (Crashlytics), performance monitoring (Firebase Performance), in-app messages (Firebase In-App Messaging), paywall optimization (Superwall), measurement of our App Store ads (Apple AdServices, iOS only), abuse protection (App Check), security alert emails, logo search (Brandfetch, can be disabled), emoji suggestions, usage counters for AI features, matching your account in the support chat (Crisp), help collection built from support answers (GitHub), counting visits to the welcome screen, retention of the customer record at RevenueCat after account deletion (additionally Art. 6(1)(c) GDPR, see 2.9) - necessary to maintain, secure, and improve the app.
Consent (Art. 6(1)(a) GDPR) Push notifications (FCM), customer support chat (Crisp, including AI responses), usage analytics (Firebase Analytics), own usage log and onboarding answers, AI categorization of bank transactions (explicit in-app consent), payment recognition from notifications and the learning of unknown bank formats (each a separate in-app consent that can be withdrawn at any time), AI processing of voice entries, receipt photos, budget rebalancing (Smart Fix), and savings-goal images (based on your explicit action of using these features), sharing your progress with AI assistants (a separate in-app consent that can be withdrawn at any time).

4. Data Retention

Data Retention Period
Account and profile data including profile picture, stored data key, usage counters for AI features Until your account is deleted
Email change links Until they expire: 24 hours (confirmation) or 7 days (undo)
Data key access logs 90 days
Crash reports (Crashlytics) 90 days
Performance data 90 days
Push notification tokens Until you uninstall the app or revoke permission
Crisp chat messages 12 months after last interaction, or until your account is deleted, whichever comes first
Support conversations handed over to our team (copy in our database) Until your account is deleted
Help collection entries (GitHub) Indefinite; only a generalized question and answer is stored, and your name and email address are not transmitted for this
Scheduled reminder before a trial ends Until it is sent or no longer needed; the note that it was sent until your account is deleted
Subscription data (RevenueCat) Without a purchase until your account is deleted; after a purchase, the customer record with user identifier, email address, name, purchase history, and subscription status for 10 years from purchase (statutory retention period), even after account deletion
Paywall interaction data (Superwall) 12 months
Banking data (finAPI, coming soon) Until you disconnect your bank account or delete your account
AI requests (Anthropic) Not stored by us (except support conversations, see above, and usage counters without content); retained by Anthropic only temporarily for abuse prevention, then deleted
AI-generated goal images (fal.ai) Image stored in our cloud storage until you delete the goal or your account; the request itself is not stored by us
Notification texts used for payment recognition Not stored by us; the evaluation happens on your device
Bank format recognition patterns and the accompanying checksum of the user identifier Indefinite, as the pattern serves all users of the same bank; it contains no personal data, and the checksum can no longer be attributed to anyone once your account is deleted
Analytics data (Firebase Analytics) 14 months
Progress summary for AI assistants Until you turn sharing off, or until your account is deleted at the latest
Checksum of the anonymous sign-in identifier (welcome screen count) Indefinite; it is irreversible and cannot be attributed to anyone
Onboarding answers in the usage log Until you delete your account
Usage log (screens, features) 180 days; tap positions 60 days

If you delete your account in the app, we delete your data immediately. A deletion requested through our website is carried out after a 24-hour waiting period, during which you can still cancel it. After that, a technical deletion marker with your user identifier remains in place for 48 hours so that other signed-in devices recognize the deletion. This deletion covers the account data on our own servers. With the processors listed in section 5, data is kept until the end of the periods in the table above (for example Analytics 14 months, crash and performance data 90 days, purchase records at RevenueCat 10 years from the purchase). Statutory retention obligations remain unaffected. You can request account deletion here.

5. Third-Party Data Processors

We share data with the following third-party processors, each bound by data processing agreements:

Processor Purpose Location
Google Ireland Limited / Google LLC (Firebase, Google Cloud) Sign-in, database, server functions, cloud storage, task scheduling (Cloud Tasks), interface for AI assistants (Cloud Run), key management (Cloud KMS), App Check, Remote Config, Crashlytics, Performance Monitoring, Cloud Messaging, In-App Messaging, Analytics EU (Frankfurt am Main) / USA
Anthropic PBC AI processing of voice entries, receipt photos, transaction categorization, budget rebalancing (Smart Fix), emoji suggestions, savings-goal scene descriptions, and support chat (Claude) USA
Features and Labels, Inc. (fal.ai) AI generation of savings-goal background images USA
Crisp IM SAS Customer support chat EU (France)
RevenueCat Inc. Subscription and purchase management USA
Superwall Inc. Paywall management and analytics USA
Plus Five Five, Inc. (Resend) Sending emails about your account USA
Brandfetch Sàrl Logo search for accounts and payees, loading of logo images Switzerland
GitHub, Inc. Storage of the help collection built from support answers (non-public) USA
finAPI GmbH Banking data access (PSD2-regulated, BaFin-licensed) - coming soon Germany

6. International Data Transfers

Some of our processors are based in the United States. For these transfers, we rely on:

  • EU-U.S. Data Privacy Framework (DPF): Google, Resend, GitHub, and other processors certified under the DPF.
  • EU Standard Contractual Clauses (SCCs): For processors not covered by the DPF (including Anthropic and fal.ai), we use the European Commission's standard contractual clauses to ensure an adequate level of data protection.

For Switzerland (Brandfetch), an adequacy decision of the European Commission applies.

Once the optional bank connection becomes available, your banking data processed through finAPI will be processed in Germany and will remain within the EU.

7. Your Rights

Under GDPR, you have the following rights regarding your personal data:

  • Right of access (Art. 15) - Request a copy of your data.
  • Right to rectification (Art. 16) - Correct inaccurate data.
  • Right to erasure (Art. 17) - Request deletion of your data ("right to be forgotten").
  • Right to restrict processing (Art. 18) - Limit how we use your data.
  • Right to data portability (Art. 20) - Receive your data in a structured, machine-readable format.
  • Right to object (Art. 21) - Object to processing based on legitimate interest.
  • Right to withdraw consent - Where processing is based on consent, you may withdraw it at any time without affecting the lawfulness of prior processing.

To exercise any of these rights, contact us at info@getalife.app. We will respond within 30 days.

You also have the right to lodge a complaint with your local Data Protection Authority (DPA).

8. Children's Privacy

GetALife is not directed at children under 16 years of age. We do not knowingly collect personal data from children under 16. If we become aware that we have inadvertently collected data from a child under 16, we will delete it promptly.

9. Changes to This Policy

We may update this Privacy Policy from time to time. When we make material changes, we will notify you through the app or by other appropriate means. The "Last updated" date at the top of this page reflects the most recent revision.

10. Contact

If you have any questions about this Privacy Policy or how we handle your data, please contact us:

GetALife by Michael Hofmann
Email: info@getalife.app

← Back to homepage