Can I trust Expensify - Travel & Expense?
This app did not meet two or more trust checks, has a critical issue in one, or has a red flag.
- Avoid if
- Users preferring financial activity not logged by analytics
- What it means for you
- The build includes code to send in-app interaction and session data to FullStory, Firebase Analytics, and Urban Airship. Financial account connections are managed through Plaid, and identity verification through Onfido. The app also bundles Group-IB fraud detection and Sentry error reporting.
- Main concern
- FullStory records all financial screens including credit card entry and auth tokens unmasked
- The developer's description
- Expensify helps millions track expenses, reimburse employees, manage corporate cards, send invoices, pay bills, and book travel, all integrated with chat. Supports self-employed, small business, growing teams, and enterprises with accounting software integrations.
- Third-party services
- 20
- Findings rated low or higher
- 9
Open on Google PlayOpens the app's listing on Google Play in a new tab.
Full findings
Open this scan in your dashboardThe account that ran this scan sees every finding and the Rescan button there.
Trust checks
Secure by Design
One criterion not metSecurity gaps detected
Why this result
This check looks for security issues at high severity or above in the code of this build, and at least one was recorded. Issues of this kind include a credential or token another app on the device can reach, sensitive data stored without protection, and network paths that expose information in transit.
Data Minimization
One criterion not metTracking lacks clear disclosure
Why this result
This build contains analytics or attribution code written to send data to companies other than the developer. No consent step was found before that code runs, and the app's disclosures do not describe the collection in full. Tracking by itself is ordinary; what this check reports is the combination of collection, recipient and absent disclosure.
Manifest Mismatch
One criterion not metDisclosure incomplete or contradicted
Why this result
The check compares the app's privacy disclosures against what the code does, and at least one claim did not match in this build. Mismatches of this kind include a data category collected but not disclosed, a recipient the disclosure omits, and an identifier attached to data the disclosure describes as anonymous.
User Control
StrongNo lock-in
Why this result
The check looks for a way to export the data an account has accumulated and a way to delete the account itself. In this build, either both were found, or the app has no account of its own and keeps its data on the device. For an app without an account, the developer has no server-side copy to export or delete, and deleting the app removes the data in its own storage.
The app clears all locally stored credentials and state data completely on sign-out. No proprietary data formats that would trap user content, no artificial obstacles to account deletion, and no unusual barriers to switching services were found.
Strengths
- New credential writes use hardware-backed Android Keystore AES-GCM-256 encryption
- Login sessions and auth tokens are wiped completely from the device on sign-out
- User passwords are never stored on disk at any point — only a device-specific credential token is saved
- Firebase Crashlytics disabled — crash data is not sent to Google
- Structured API call logs redact 20+ sensitive fields including auth tokens and card numbers
What the app contains
20 services
Third-party services the scan names in the build:
- FullStory
- Group-IB Fraud Hunting Platform (FHP) SDK
- Firebase Analytics
- Firebase Auth
- Firebase Messaging (FCM)
- Urban Airship
- Plaid Link
- Onfido
- Mapbox
- Pusher
- Sentry React Native
- Google Sign-In
- Google MLKit
- Google Play Install Referrer
- Realm
- React Native (Hermes)
- Expo
- Vision Camera
- Lottie
- WorkManager
Libraries
| Library | Version | Advisory |
|---|---|---|
| ExoPlayer / media3 | not recorded | none confirmed |
| Room | not recorded | none confirmed |
| Lottie | not recorded | none confirmed |
| Fresco | not recorded | none confirmed |
| FullStory | not recorded | none confirmed |
| Glide | not recorded | none confirmed |
| Datatransport | not recorded | none confirmed |
| Google Advertising ID client | 12451000 | none confirmed |
| Google Sign-In | 12451000 | none confirmed |
| Google Play Services | 12451000 | none confirmed |
Show all 36 librariesShow fewer
Changes since the previous scan
- Version 9.4.0-7 (versionCode 509040007), score 65.
- Score 79 before, 65 after.
- Score change since version 9.4.0-7 (versionCode 509040007): -14 points.
- Since the previous scan: 14 findings added, 4 removed.
- Version 9.4.0-7 (versionCode 509040007), score 79.
- First public scan of this app.
Method and limits
Static analysis: the decompiled code, manifest and resources of this build, read file by file. Network traffic at run time is established by a capture of the running app.
- Build SHA-256
- d53b8744d07e5ee3f0da9ff4dbc3c8526418809d68176a3ce75061e51e6204d9
- Rule pack
- citt-ruleset-2026-08-v1
- Files decompiled
- 29,997
- Scan date
- 11 August 2026
Corrections
- : Automated regeneration changed a published public claim.
- : Automated regeneration changed a published public claim.
- : Automated regeneration changed a published public claim.
- : Automated regeneration changed a published public claim.
- : Automated regeneration changed a published public claim.
- : Automated regeneration changed a published public claim.
- : Automated regeneration changed a published public claim.
- : Automated regeneration changed a published public claim.
- : Automated regeneration changed a published public claim.
- : Automated regeneration changed a published public claim.
- : Automated regeneration changed a published public claim.
- : Automated regeneration changed a published public claim.
Developer response
No response is published for this app.
Report an error Opens an email to [email protected] that names this app and this scan.