Privacy Policy for Passio

Last Updated: October 31, 2026

Overview

Passio ("the App") is a digital wallet app. It lets you store and manage boarding passes, loyalty cards, event tickets, and other passes on your mobile device. Your privacy is important to us.

Data Collection

Data Stored Locally on Your Device

The App stores the following data on your device:

Local data stays on the device. It is not sent to a network server unless you use a cloud feature or an error report is sent (see Crash and Error Reports below).

You can export a backup of your passes as a plain, unencrypted JSON file (.passioexport). The app does not offer a passphrase or any encrypted export. Store exported backup files safely. The app does not send the backup file anywhere; you share it yourself through the system share sheet.

Data Processed by Cloud Services

Error reports are sent automatically in production builds, and you cannot turn them off in the app. Every other cloud feature below is optional and is used only when you choose to use it.

Wallet Export

To add a pass to Apple Wallet or Google Wallet, you must be signed in. This includes anonymous sign-in.

The App sends these pass fields to our Firebase Cloud Functions:

The Apple Wallet function returns the generated .pkpass file directly to the app. The Google Wallet function returns a Google Wallet save link. Neither function writes the generated pass to Firebase Storage.

Our functions also store a hashed IP address and a user ID for rate limiting. Limits apply per account and per hashed IP. The same user ID keys a monthly usage record in Firestore that holds the month, your plan tier, and how many Apple Wallet and Google Wallet passes you generated that month. We use it to enforce monthly pass limits.

Cloud OCR

Cloud OCR is off by default. You can turn it on in Settings by selecting "Read images with cloud OCR".

When cloud OCR is off, all image reading happens on the device.

When cloud OCR is on and you submit a photo, the photo is sent over HTTPS to our Firebase function ocrImage. The function processes the photo in memory and does not write it to storage. The app keeps the returned text.

Requests are rate limited per account and per IP address. A hashed IP address is used for the limit.

Accounts

The App creates an anonymous account so that wallet export and rate limiting work. You can use the App without signing in with an email address.

An email address is stored only if you create an account with an email address and password.

Crash and Error Reports

In production builds, the App automatically sends error reports (errors, fatal errors, and unhandled promise rejections) to our Firebase project, where they are stored in the Firestore collection errors.

Each report contains the error message, a stack trace (up to 2000 characters), a context label, the platform, the time, and the app version.

When text recognition fails on a photo on your device, the report's context label also contains the local file path of that photo. The path is stored in our Firestore errors collection. Reports use the user ID "anonymous" unless the app sets a user ID for error reporting. The current code never sets one.

Reports are not sent in development builds.

The app does not use Firebase Crashlytics.

Error reports are used for app stability. They are not used for advertising or tracking.

Data We Do NOT Collect

Data Security

Third-Party Services

The App uses the following third-party services:

These services are operated by Google LLC. Their privacy policy is available at: https://policies.google.com/privacy

Your Rights

You can:

Cloud data and account deletion are handled by email request to [email protected].

Children's Privacy

The App is not directed at children under 13. We do not knowingly collect personal information from children.

Changes to This Policy

We may update this privacy policy from time to time. We will notify you of changes by updating the "Last Updated" date.

Contact

For privacy-related questions or data deletion requests:

GDPR (European Users)

If you are in the European Economic Area, you have additional rights under GDPR. These include the right to access, rectify, port, and erase your data.

Our legal basis for processing is your consent for cloud features and legitimate interest for local app functionality.

CCPA (California Users)

California residents have the right to know what personal information is collected and to request deletion. We do not sell personal information.