Skip to content

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 calls setInvalidatedByBiometricEnrollment(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.

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

sca flow coverage reportSCA flow coverage report: card payments and account access
SCA flow coverage report: card payments and account access
FlowRTS article or EMV 3DS elementCases runCases passedOpen defect IDsStatus
SCA-01 3DS2 frictionless card payment in a browser checkoutEMV 3DS 2.2.0 AReq device channel 02 and ARes transStatus Y, with the authentication value passed to authorisation1414NonePassed
SCA-02 3DS2 challenge card payment in a browser checkout and a mobile appEMV 3DS 2.2.0 ARes transStatus C, CReq and CRes, and RReq final transStatus; RTS Article 5(1)(a) and 5(1)(c) dynamic linking1816DEF-0412 (high): the challenge screen shows 105.00 XTS and the authorisation request carries 110.00 XTS after a basket changeBlocked for release until the DEF-0412 fix passes retest
SCA-03 Low-value exemption on card payments of 25.00 XTSRTS Article 16(a) to 16(c); EMV 3DS 2.3.1 threeDSRequestorChallengeInd 101211DEF-0419 (medium): the consecutive payment counter does not reset after a challenged paymentFailed, retest scheduled after the DEF-0419 fix
SCA-04 Transaction risk analysis exemption, with an issuer soft decline retried as a challengeRTS Article 18(2) and the Annex exemption threshold values; EMV 3DS threeDSRequestorChallengeInd 05, and 04 on the retry1515NonePassed
SCA-05 Recurring card payment series with the same amount and the same payeeRTS Article 14(1) and 14(2); EMV 3DS threeDSRequestorAuthenticationInd 02 on the first payment109DEF-0423 (high): a plan upgrade from 20.00 XTS to 35.00 XTS charges the next payment without a new SCABlocked for release until the DEF-0423 fix passes retest
SCA-06 Merchant-initiated card payment after a customer-initiated payment with SCAEMV 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 payments99NonePassed
SCA-07 Direct account access to balance and 90-day transactions, with SCA renewal at 180 daysRTS Article 10(2)(b) as amended by Delegated Regulation (EU) 2022/236088NonePassed
SCA-08 Account access through an account information service provider, with SCA renewal at 180 daysRTS Article 10a(1) to 10a(3), inserted by Delegated Regulation (EU) 2022/23601110DEF-0431 (medium): the dedicated interface requests SCA on day 120 with no fraud reason loggedBlocked 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?

Banking application testing verifies that a banking or finance app moves money correctly and protects the customer's account. On mobile, banking application testing covers biometric login and step-up, strong customer authentication for payments, push-based approvals, local data protection against OWASP MASVS, accessibility, and the app store rules for financial apps.

Why is banking application testing important?

Banking application testing matters because an app defect can authorise a payment the customer did not approve. Under PSD2 Article 74(2), where the payer's payment service provider does not require strong customer authentication, the payer shall not bear any financial losses unless the payer has acted fraudulently. A missed step-up in the app therefore leaves the loss with the provider.

What is OWASP MASVS?

OWASP MASVS, the Mobile Application Security Verification Standard, is the OWASP set of security controls for iOS and Android apps. Version 2.1.0, released on 18 January 2024, groups the controls into eight categories: storage, cryptography, authentication, network, platform, code, resilience, and privacy. Control MASVS-AUTH-3 states that the app secures sensitive operations with additional authentication.

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