Can I trust Revolut Business?
This app did not meet two or more trust checks, has a critical issue in one, or has a red flag.
- What it means for you
- The build includes code to send App usage, install attribution, and performance data to AppsFlyer, Firebase Analytics, Firebase Crashlytics, and Branch.io. The build includes code to send Identity verification data to Onfido during onboarding. Financial account and transaction data remain within Revolut's own infrastructure, and financial databases are stored in encrypted form on the device rather than backed up to third-party cloud services.
- Main concern
- Business banking account identity permanently linked to AppsFlyer advertising profile
- The developer's description
- Revolut Business is a mobile banking app for business professionals, enabling payment processing, card management, invoicing, identity verification (KYC), and fraud detection for business accounts.
- Third-party services
- 21
- Findings rated low or higher
- 7
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
StrongStrong security foundation
Why this result
This check looks for security issues at high severity or above in the code of this build, and none were recorded. Its scope covers stored credentials, how the app protects data on the device, and how it protects data in transit.
Revolut Business implements a layered security architecture with no critical or high-severity vulnerabilities. All connections to Revolut servers use certificate pinning, preventing interception even when a device trusts a rogue certificate authority. Unencrypted network connections are globally prohibited with no exceptions. Browser component SSL errors are correctly rejected rather than bypassed. Authentication credentials are stored in the Android operating system's protected credential vault, encrypted with hardware-backed keys tied to biometric enrollment. The local database is encrypted at the application layer with a passphrase derived from the hardware secure enclave. Commercial code protection prevents reverse engineering and detects tampered installations at startup. A layered stack of root detection, emulator detection, and hook-framework detection blocks the app from running in compromised environments. The weaknesses identified, including brute-force lockout counters stored without encryption and a remotely-disableable screen capture setting, require physical device access combined with root-level compromise to exploit. No remotely exploitable vulnerability was identi…
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.
No artificial barriers to leaving the service were found in the app. The app does not use proprietary data formats that would trap transaction records or account data, and no mechanisms designed to prevent account closure or data retrieval were identified. As a regulated European financial institution subject to GDPR and banking regulations, customers have legal entitlement to portability of their financial data.
Strengths
- All traffic to Revolut servers is certificate-pinned via OkHttp, preventing interception even when a device trusts a rogue CA
- Cleartext traffic is globally blocked with no domain exceptions
- SSL errors correctly cancel WebView loads — handler.proceed() is not used anywhere in the codebase
- Authentication tokens are stored in Android AccountManager and AES KeyStore-backed EncryptedSharedPreferences with biometric invalidation
- All financial databases are AES-encrypted via SQLCipher v4.8.0 with a DexProtector-protected passphrase
- Cryptographic keys use hardware-backed EC-256 KeyStore with biometric binding and StrongBox support
- Auth headers (Authorization, X-Device-Id) are scoped exclusively to Revolut-owned domains — never sent to AppsFlyer, Firebase, or other third parties
- Android Auto Backup is disabled, so banking data is excluded from Google cloud storage backups
- DexProtector commercial code protection with emulator, tamper, and unofficial-install detection
- Layered native integrity stack (RootBeer, SEON native, Play Integrity) with bootloader and custom firmware detection blocks app use on compromised devices
What the app contains
21 services
Third-party services the scan names in the build:
- AppsFlyer
- Firebase Analytics
- Firebase Crashlytics
- Firebase Performance
- Firebase Messaging
- Firebase App Check
- Firebase Remote Config
- SEON
- hCaptcha
- Google Ad Manager
- Google Play Integrity
- Onfido
- Google ML Kit
- Branch.io
- MeshConnect Link
- SQLCipher
- DexProtector
- Google Pay / Tap and Pay
- RootBeer
- youTransactor uCube
- jMRTD
Libraries
| Library | Version | Advisory |
|---|---|---|
| ExoPlayer / media3 | not recorded | none confirmed |
| Room | not recorded | none confirmed |
| Lottie | not recorded | none confirmed |
| AppsFlyer | not recorded | none confirmed |
| Shimmer | not recorded | none confirmed |
| Jackson | 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 |
Show all 28 librariesShow fewer
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
- 08e0e84369c062111fd35935a9cb9e362d1892c10c4fe8464047de2add1219e7
- Rule pack
- citt-ruleset-2026-08-v1
- Files decompiled
- 92,591
- Scan date
- 13 August 2026
Corrections
No correction is published for this app.
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.