Privacy Policy for PriceFuse

Last updated: October 7, 2026

Overview

PriceFuse is developed by Valerii Nikolaev ("we", "us", "the developer").

This Privacy Policy describes how data may be processed when you use PriceFuse, including the portfolio, charts, rate alerts, and optional usage analytics introduced in version 2.2.0. Processing depends on the app version, features you use, permissions, and choices you make. Features unavailable in an older version do not cause that version to collect the data described for those features.

We aim to collect and use as little data as reasonably possible for core functionality.

Data We Collect

Data you provide through app features

Portfolio, charts, and file import/export

Portfolio names, asset quantities, purchase prices and dates you enter, recorded changes in holdings, and calculated portfolio values are stored and processed on your device. PriceFuse does not connect to your bank, brokerage account, or crypto wallet to retrieve balances or transactions.

To display charts or retrieve historical prices, the app requests reference data from our backend using asset/currency identifiers, a requested date range, and rate-snapshot references. These requests can reveal which assets and periods you are viewing. They do not include portfolio names, asset quantities, portfolio balances, or the contents of your imported files. Portfolio calculations are performed on your device.

When you import a CSV or JSON file, the app reads the file you select to add portfolio data locally. When you export or share a portfolio, the resulting file can contain portfolio names, holdings, quantities, purchase information, and, for a JSON backup, recorded history. The app sends the file to the destination or recipient you choose through the system file picker or share sheet. A cloud storage provider or receiving app processes that file under its own policies. Local app data may also be included in device backups according to your Apple settings.

Rates, crypto assets, icons, and network requests

App authentication and abuse prevention

We use Apple App Attest to help verify requests from a genuine installation of PriceFuse and protect the rates and notification services from abuse. The app sends an App Attest key identifier and cryptographic proof to our backend. The backend stores a hashed installation-related identifier, the associated public key, an Apple attestation receipt, a replay-protection counter, and an expiry time. Short-lived challenge records and session tokens support this verification.

These identifiers allow the service to recognize an app installation for authentication, rate limiting, and security. Hashing does not make an installation identifier anonymous. We do not use it as an advertising identifier or link it to subscription analytics for advertising purposes. Authentication records expire after 90 days without successful registration or authentication; successful authentication renews that period. Expired records are removed by periodic cleanup.

Rate alerts and push notifications

When you use the Alerts feature, the app connects to our notification backend on Cloudflare. To verify access and associate alert settings with your app entitlement, it sends an Apple-signed app transaction, an Apple device-verification identifier, and App Attest proof. The backend verifies this information with Apple and stores an app-specific transaction identifier, relevant subscription transaction identifiers and entitlement status, and the association with the authenticated installation. These identifiers can link records to the same app user or installation; they are not anonymous, even though we do not receive your Apple Account email address or payment card details.

The backend stores your alert rules, including selected currency/asset pairs, schedules, enabled state, percentage thresholds, reference prices and times, and recent check or delivery results. If you allow notifications and enable alerts, the app registers an Apple Push Notification service (APNs) device token, device locale, time zone, and per-pair number-formatting preferences so the service can format and deliver notifications. Notification records do not include your portfolio holdings or balances. Rate-alert settings are separate from portfolio data.

Our backend evaluates rules using reference market data and sends notifications through APNs. Notification text can include currency pairs, rates, and changes and may appear on your lock screen or connected devices depending on your Apple settings. Disabling or deleting a rule in the app takes effect on the server after the change successfully syncs. Revoking notification permission stops presentation according to the operating system, but does not itself delete backend records.

Optional usage analytics

On iPhone and iPad, PriceFuse uses Google Analytics for Firebase only after you agree to share usage analytics. Collection is disabled by default. You can change your choice in Settings under Privacy > Share usage analytics. Declining analytics does not prevent use of the app's features.

With your permission, Firebase receives usage events such as screen visits, converter use, camera/photo scan starts and completions, portfolio actions, import/export success or failure, alert configuration actions, and interactions with subscription screens. The SDK can also collect app lifecycle and purchase/subscription events, device and app information, analytics identifiers, and approximate location derived from IP addresses. This is not precise GPS location.

With your analytics permission, PriceFuse sends events when you select a subscription plan, start a purchase attempt, or the app handles its result. These events include the selected plan, where you opened the subscription screen, and, for plan selection and purchase attempts, whether the app presents a trial offer for that plan. Result events describe the outcome observed by the app, such as active access, cancellation, a pending purchase, or failure. An active-access result does not by itself confirm that a payment was charged.

We do not send conversion amounts, calculator expressions, portfolio names or balances, asset quantities, imported file contents, photos, recognized scan text, or voice recordings to Firebase. Our custom alert analytics describe choices such as schedule type or whether a threshold is enabled, rather than the entered threshold value or selected currency pair.

Analytics events can be associated with a pseudonymous app-instance identifier. We do not set a custom Firebase user ID or send our notification-service transaction identifiers to Firebase. The app disables advertising storage, advertising user data, ad personalization, and IDFV collection in its analytics configuration. We use analytics to understand feature usage and improve PriceFuse, not for advertising or cross-app advertising tracking.

Turning sharing off disables further analytics collection and resets analytics data on the device. It does not automatically erase data already received by Google. Google's processing and retention are described in Privacy and Security in Firebase and the Google Privacy Policy.

Operational diagnostics

Our backend records limited operational events, such as authentication operation and result codes, processing duration, scheduled refresh failures, notification-service status, and notification delivery errors. Cloudflare can retain these custom logs and associated service metadata to help us diagnose failures and maintain the service. Our custom log messages do not include entered amounts, scanned images, voice recordings, raw authentication proofs, or client IP addresses. Cloudflare's network and security processing is separate from these custom log messages.

Purchases

Accounts, advertising, and crash reporting

How We Use Data

We may use data to:

Sharing

We may share limited data with service providers for app functionality and, with your consent, usage analytics:

For voice recognition, audio/transcript handling may be performed by Apple according to Apple’s platform behavior and policies. We do not control Apple’s independent data practices.

We do not share personal data with data brokers or sell personal data. Cloudflare describes its network processing in its Privacy Policy.

Subscription and Purchase Events

Apple sends the developer an App Store Server Notification when there is activity on a purchase or subscription for the app — for example a trial, a renewal, a cancellation, a billing problem, an expiry, or a refund. These events arrive server-to-server from Apple. Separately, when the app connects to the notification service, it sends the signed app transaction and verification information described above; consent-based Firebase analytics may also record purchase-related events.

These notifications describe a purchase or subscription and include pseudonymous transaction information. They contain details such as the product identifier, the price and currency, the App Store storefront country, the app build number, relevant dates, how long a subscription has been active, whether the purchase is Family Shared, and a pseudonymous Apple transaction identifier. They do not contain your name, email address, Apple Account, payment card details, device model, or location.

The developer receives these notifications on a serverless endpoint hosted by Cloudflare. Relevant events are relayed to the notification service to refresh stored entitlement status. The endpoint also forwards a subscription-event summary to a private developer Telegram chat. In the Telegram summary, the Apple transaction identifier is truncated, so the message keeps only enough of it to connect events belonging to the same subscription. The notification backend separately retains the identifiers needed for entitlement verification. These records are pseudonymous, rather than guaranteed to be anonymous. This information is used for subscription analytics: how many subscriptions start, renew, or end, and the overall health of the app's paid features. Subscription information can be matched to Apple-verified app and transaction identifiers to maintain notification-service access. It is not used for advertising, sold, or shared with data brokers.

Cloudflare and Telegram provide the infrastructure used for subscription-event handling and summaries and may process data outside your country of residence. We share data with them only for the purposes described here and require the same or equal protection of user data as stated in this Privacy Policy and required by applicable platform rules. Their service terms and privacy policies also describe their processing. We do not use the summaries for advertising or authorize advertising use on our behalf.

We do not normally receive your name or contact details with these notifications. Transaction references can nevertheless connect subscription events to the pseudonymous notification-service record associated with your app transaction. Contact us if you have a privacy request. We may need sufficient information to locate relevant records and verify your authority; if we cannot identify the relevant records, we will explain that limitation.

We keep subscription summaries only for as long as reasonably needed to monitor paid features and handle related issues. Cancelling a subscription stops future renewal according to Apple's rules; it does not erase previous records or prevent subsequent cancellation, expiry, refund, or other relevant notifications from Apple.

Data Retention

Security

We use reasonable technical measures and strive to protect data to the extent possible, including HTTPS for rate requests and platform-provided iOS security controls. No method of transmission or storage can be guaranteed to be 100% secure.

Your Choices

You can typically:

Children’s Privacy

PriceFuse is not specifically directed to children under 13. We do not knowingly collect personal data from children in a manner inconsistent with applicable law. If you believe a child provided data inappropriately, please contact us.

International Users

Data may be processed outside your country of residence through Apple, Cloudflare, Google, Telegram, and any storage or sharing provider you choose. Data-protection laws may differ by region.

Changes

We may update this Privacy Policy from time to time. We will update the "Last updated" date when changes are made.

Contact

Developer: Valerii Nikolaev

Contact email: valnikodeveloper@gmail.com