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
- Camera and selected photo inputs are processed on your device using Apple Vision to scan prices and recognize text (OCR). The app does not upload these images or recognized amounts to our rates server.
- Optional voice input may capture audio so spoken numbers can be recognized.
- Optional voice recognition may be processed by Apple’s speech services; depending on Apple platform behavior and settings, portions of audio and recognition data may be sent to Apple for processing and service analytics/quality purposes.
- Entered amounts, calculation state, currency selections, and related settings are stored or processed locally on your device. Entered amounts and calculator expressions are not sent to our rates server.
- The paired iPhone and Apple Watch transfer rate data, selected currency information, language settings, Premium access state, and crypto catalog/icon data using Apple WatchConnectivity.
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
- The app requests currency rates, crypto quotes, historical reference rates, asset catalog information, and crypto icons over HTTPS from our backend hosted on Cloudflare Workers. Our backend obtains reference data from Open Exchange Rates and CoinMarketCap and caches it for delivery to the app.
- Requests can include currency or crypto asset identifiers needed to retrieve quotes or icons. These identifiers describe the requested assets; they do not disclose wallet addresses, private keys, balances, or actual financial transactions. PriceFuse does not provide a wallet or execute cryptocurrency transactions.
- Cloudflare receives IP addresses and other network/request metadata when it handles these requests. It may process and retain network and security data to operate and protect its services under its policies. Our rates application code does not intentionally store client IP addresses in its authentication records or custom log messages, use them to determine your location, or forward them to market-data providers.
- We do not use these requests for advertising or cross-app tracking. Our backend does not maintain a personal conversion history. Upstream market-data requests are made by our server, rather than by forwarding your scanned prices or entered amounts to those providers.
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
- If you use subscriptions, purchases are handled through Apple StoreKit. The notification backend also verifies and stores access-related transaction information as described above. With analytics consent, Firebase may receive purchase and subscription events as described under Optional usage analytics.
- We do not receive your full payment card details from Apple.
Accounts, advertising, and crash reporting
- The app does not require user account registration.
- Version 2.2.0 includes optional Google Analytics for Firebase as described above. It does not include Firebase Crashlytics or another third-party crash-reporting SDK.
- We do not run in-app advertising and we do not sell personal data.
How We Use Data
We may use data to:
- provide OCR scanning from camera/photos;
- provide voice number recognition;
- provide currency and crypto conversion, refresh reference rates, and deliver asset names and icons;
- calculate portfolio values and charts locally and support user-selected file imports and exports;
- save and evaluate rate-alert rules, verify the applicable access level, and deliver push notifications;
- with your consent, understand app usage and improve features through Firebase Analytics;
- authenticate app installations, prevent abuse and replay attacks, and diagnose service failures;
- keep a local cache so conversion can continue to work offline where possible;
- maintain app settings and purchase access state on device.
Sharing
We may share limited data with service providers for app functionality and, with your consent, usage analytics:
- Cloudflare: hosting, delivery and caching of reference and historical rates, catalogs and icons; App Attest verification; notification settings, identifier and entitlement storage; notification processing; network security; and operational diagnostics.
- Market-data providers: Open Exchange Rates and CoinMarketCap supply reference data and asset information to our backend.
- Apple services: StoreKit and App Store server services for purchases and entitlement verification, App Attest for authentication, APNs for push notifications, WatchConnectivity between paired devices, and system speech-recognition services when voice input is used.
- Google Firebase: optional usage analytics, subject to your consent and the configuration described above.
- Telegram: private subscription-event summaries, as described below.
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
- Exchange rates, crypto catalogs/icons, portfolio records and recorded history, calculation state, and app settings are stored locally and may remain until deleted, cleared, replaced, or the app is removed. Exported files and device backups are separate copies and may remain after you delete data from the app. Data already transferred to an Apple Watch is stored separately on that device.
- Backend App Attest registrations follow the 90-day inactivity period described above. Deleting the app does not immediately delete server authentication records.
- Notification-service identifiers, entitlement records, device registration, alert settings, and recent operational state are stored separately from App Attest registrations. They do not share the automatic 90-day authentication expiry. They may remain after alerts are disabled, the app is deleted, or a subscription ends, for service continuity, access verification, and issue resolution. Contact us to request deletion of identifiable server records; we may need information to locate them and verify your request. Deleting a rule removes it from active configuration after successful sync but does not guarantee removal of all related logs or provider backups.
- Firebase analytics data follows the retention settings of our Google Analytics property and Google's applicable retention rules. Turning off analytics stops new collection; it does not retroactively delete server-side records or aggregate reports. Contact us about applicable deletion requests.
- Operational logs follow the configured retention of the hosting service. Cloudflare may retain separate network/security data under its own policies; the authentication-record period is not a promise about every provider log.
- We do not retain scanned images or voice recordings on our backend. Voice processing by Apple is governed by Apple's applicable terms and policies.
- Purchase entitlement state may be retained as needed to restore access.
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:
- deny or revoke Camera, Photos, Microphone, and Speech Recognition permissions in iOS Settings;
- stop using voice input and rely on manual input;
- decline optional analytics or turn off Share usage analytics in the app's Privacy settings;
- edit, disable, or delete alert rules in the app while online, and change notification permission or lock-screen previews in system Settings;
- delete portfolios or holdings in the app and manage exported files and backups separately;
- remove local app data by deleting the app;
- manage subscriptions through your Apple Account subscription settings;
- contact us about access, correction, deletion, or other privacy requests, subject to applicable law and our ability to identify the relevant data. Deleting the app or cancelling a subscription does not automatically erase records retained by service providers.
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