Integrations and platforms
Mobile banking and finance app testing
Mobile banking and finance app testing verifies iOS and Android finance apps on real devices: biometric login and step-up, strong customer authentication on the phone, push-based payment approvals, deep links into payments, and app store rules for financial apps. FintechAssuranceLabs delivers a device and OS coverage matrix, a biometric step-up test report, OWASP MASVS checks, and a release regression suite.
What mobile banking app testing covers
Sources in this section were checked on 2026-09-16.
Biometric login and step-up
- Keys bound to the enrolled biometric. A payment approval must unlock a key in the iOS Keychain or the Android Keystore; a prompt success flag alone can be forced true by hooking. Apple states that a Keychain item protected with
biometryCurrentSet"is invalidated if fingers are added or removed for Touch ID, or if the user re-enrolls for Face ID". On Android, a key that requires user authentication and has no positive validity duration is valid for biometric authentication only, and by default is irreversibly invalidated when a new biometric is enrolled or when all existing biometrics are deleted, unless the app callssetInvalidatedByBiometricEnrollment(false). Tests reproduce the failure pattern: a person who knows the device passcode enrols their own face and approves transfers. - Sensor class on Android. The Android 17 Compatibility Definition, section 7.3.10 [C-6-2], states that in order for device implementations to allow access to keystore keys to third-party applications, they "MUST present only Class 3 biometrics when the authentication requires BIOMETRIC_STRONG, or the authentication is invoked with a CryptoObject". Tests run step-up on devices with Class 2 face unlock and check that the app requests BIOMETRIC_STRONG or a CryptoObject.
- Fallback and lockout. Under PSD2 RTS Article 4(3)(b), consecutive failed attempts after which the actions referred to in PSD2 Article 97(1) are "temporarily or permanently blocked" "shall not exceed five within a given period of time". Device cases cover biometric lockout, the in-app PIN fallback, a cancelled prompt, and backgrounding during the prompt; the counter across channels is covered on the PSD2 SCA testing requirements page.
- Step-up triggers. MASVS-AUTH-3 states that "the app secures sensitive operations with additional authentication". Step-up is checked before a new payee, a card details reveal, a raised card limit, and a phone number or email change.
Push-based approvals and SCA on the device
- Dynamic linking on the approval screen. RTS Article 5(1)(a) requires that the payer is made aware of the amount and the payee. Tests change the amount or payee on the server after the push is sent; under Article 5(1)(d), that change invalidates the authentication code, so the approval must fail.
- Delivery faults. Cases deliver the push after challenge expiry, twice, to a second device of the same customer, and after logout or device unbinding. A double tap must not create a second payment.
- Notification content. MASVS-PLATFORM-3 lists OTP codes in notifications as sensitive UI data. Tests read the lock screen preview for one-time codes, balances, and full account numbers.
- Device integrity. RTS Article 9(3)(b) requires "mechanisms to ensure that the software or device has not been altered by the payer or by a third party". Login and approval run on rooted and jailbroken devices, with a repackaged app binary, and with Frida attached (MASVS-RESILIENCE-1, 2, and 4).
Screens, local data, and deep links
- Card details and balances. Test builds use synthetic cards, so no real cardholder data reaches a test device. Tests look for the revealed card number and security code in the app switcher snapshot, screen recordings, the clipboard, local databases, and device logs (MASVS-STORAGE-2 and MASVS-PLATFORM-3).
- Deep links into payments. A payment link that prefills amount and payee is opened with altered parameters, while logged out, and from a second app registering the same custom URL scheme. The app must show the confirmation screen and ask for step-up before execution.
- Traffic. For MASVS-NETWORK-2 identity pinning, the proxy CA is trusted in the system store on a rooted Android device, or fully trusted on iOS, and the app must still refuse the connection. Full penetration tests of the app and its API sit in security testing.
App store rules for financial apps
- Apple. The App Review Guidelines state in 5.1.1(ix) that banking and financial services apps "should be submitted by a legal entity that provides the services, and not by an individual developer". Guideline 3.2.2(ix) states that loan apps "may not charge a maximum APR higher than 36%, including costs and fees, and may not require repayment in full in 60 days or less". Guideline 3.1.5(iii) allows apps to facilitate cryptocurrency transactions "on an approved exchange", provided they are offered only in countries or regions where the app has appropriate licensing and permissions.
- Google Play. The Financial Services policy states that any app with financial features "must complete the Financial features declaration form within Play Console". Personal loan apps must disclose the minimum and maximum repayment period, the maximum APR, and a representative total cost example in app metadata. The pre-submission check compares these values with the loan offer screens for consumer lending apps.
Related
Segments
Standards
Deliverables
Device and OS coverage matrix
A table of device models, iOS and Android versions, biometric sensor types, and VoiceOver and TalkBack versions with the test result per flow, for the release manager and the engineering lead.
Biometric login and step-up authentication test report
Test results for biometric login, step-up before payments and payee changes, biometric enrolment changes, fallbacks, and lockouts, mapped to PSD2 RTS (Delegated Regulation (EU) 2018/389) Articles 4, 5, 8, and 9, for the engineering lead and the SCA auditor.
Mobile app security checks against OWASP MASVS
Results per OWASP MASVS v2.1.0 control for storage, network, authentication, platform, and resilience, with reproduction steps on rooted and jailbroken devices, as input to the security lead's penetration test scope.
Release regression suite for the app stores
An automated suite of login, step-up, payment approval, card control, and deep link cases on the device matrix, plus a pre-submission check against App Store and Google Play rules for financial apps, for the release manager.
How mobile app testing fits your release process
On every pull request. UI tests for login, step-up, and payment screens run on simulators and emulators in your CI with a mocked biometric result. A failure blocks the merge. A pass on a simulator proves nothing about Keychain or Keystore binding, so binding cases stay on real devices.
Nightly on real devices. The release regression suite runs on each row of the device and OS coverage matrix in a device lab. Test users, cards, and balances are synthetic and seeded in your sandbox backend. The suite repeats the clause 11 app checks from the EAA and WCAG testing page with VoiceOver and TalkBack. Server-side authorisation, capture, and refund states behind an in-app payment are covered by payment flow testing.
When Apple or Google ships an OS beta. The beta enters the matrix as a new row, and the suite runs on it before the public release. A changed biometric prompt, notification preview, or deep link handling shows up as a failed case with a device log attached.
Before store submission. The release candidate, built with store signing and code obfuscation on, gets the full suite, the biometric enrolment-change cases, and the MASVS checks. The pre-submission check for financial app rules runs on the same build. Results update the biometric step-up report, which is test evidence input to the SCA audit under RTS Article 3.
After release. A smoke run installs the store build during the staged rollout and repeats login, step-up, and one sandbox payment approval on the oldest and newest supported OS versions for each platform.
Cadence and handover. Suites live in your repository and run in your CI; device lab jobs run on your device cloud account. The matrix, reports, and device logs go to your shared evidence folder. Your team owns signing keys, store accounts, production push credentials, the list of supported OS versions, and the release decision.
Sample deliverable
Sample, synthetic data
| Flow | RTS article or EMV 3DS element | Cases run | Cases passed | Open defect IDs | Status |
|---|---|---|---|---|---|
| SCA-01 3DS2 frictionless card payment in a browser checkout | EMV 3DS 2.2.0 AReq device channel 02 and ARes transStatus Y, with the authentication value passed to authorisation | 14 | 14 | None | Passed |
| SCA-02 3DS2 challenge card payment in a browser checkout and a mobile app | EMV 3DS 2.2.0 ARes transStatus C, CReq and CRes, and RReq final transStatus; RTS Article 5(1)(a) and 5(1)(c) dynamic linking | 18 | 16 | DEF-0412 (high): the challenge screen shows 105.00 XTS and the authorisation request carries 110.00 XTS after a basket change | Blocked for release until the DEF-0412 fix passes retest |
| SCA-03 Low-value exemption on card payments of 25.00 XTS | RTS Article 16(a) to 16(c); EMV 3DS 2.3.1 threeDSRequestorChallengeInd 10 | 12 | 11 | DEF-0419 (medium): the consecutive payment counter does not reset after a challenged payment | Failed, retest scheduled after the DEF-0419 fix |
| SCA-04 Transaction risk analysis exemption, with an issuer soft decline retried as a challenge | RTS Article 18(2) and the Annex exemption threshold values; EMV 3DS threeDSRequestorChallengeInd 05, and 04 on the retry | 15 | 15 | None | Passed |
| SCA-05 Recurring card payment series with the same amount and the same payee | RTS Article 14(1) and 14(2); EMV 3DS threeDSRequestorAuthenticationInd 02 on the first payment | 10 | 9 | DEF-0423 (high): a plan upgrade from 20.00 XTS to 35.00 XTS charges the next payment without a new SCA | Blocked for release until the DEF-0423 fix passes retest |
| SCA-06 Merchant-initiated card payment after a customer-initiated payment with SCA | EMV 3DS 2.2.0 3RI with device channel 03, threeRIInd 01 or 02, and the prior authentication reference; EBA Q&A 2018_4031 on payee-initiated payments | 9 | 9 | None | Passed |
| SCA-07 Direct account access to balance and 90-day transactions, with SCA renewal at 180 days | RTS Article 10(2)(b) as amended by Delegated Regulation (EU) 2022/2360 | 8 | 8 | None | Passed |
| SCA-08 Account access through an account information service provider, with SCA renewal at 180 days | RTS Article 10a(1) to 10a(3), inserted by Delegated Regulation (EU) 2022/2360 | 11 | 10 | DEF-0431 (medium): the dedicated interface requests SCA on day 120 with no fraud reason logged | Blocked for release until the DEF-0431 fix passes retest |
Amounts use XTS, the ISO 4217 code reserved for testing. Card payments run on scheme sandbox test cards masked to BIN and last four, and account access runs against a test account information provider with generic account names.
Questions
What is banking application testing?
Why is banking application testing important?
What is OWASP MASVS?
Scope your mobile app testing
Send your supported iOS and Android versions, login and step-up flows, push approval design, and store release schedule, and we return a test scope for the four deliverables.
Scope your testing