Files
thijooree/docs/thijooree/07-transfer.md
T
shihaam 86e1e66a20
Auto Tag on Version Change / check-version (push) Failing after 14m45s
update docs
2026-05-30 19:33:15 +05:00

2.9 KiB

Transfer

The transfer screen initiates account-to-account fund transfers. It supports MIB, BML, and Fahipay as source banks and handles all bank-specific authentication and OTP steps.


Fragment — TransferFragment

Opened via:

  • Navigation menu
  • Quick-transfer button on an account row (source pre-selected)
  • OPEN_TRANSFER intent action
  • QR scan result (recipient and optional amount pre-filled)

Source Account Selection

A dropdown lists all visible accounts parsed via AccountListParser.from(acc)?.balance. The selected source account determines which bank's transfer flow is used.


Recipient Entry

The user can specify a recipient in three ways:

  1. Manual entry — type an account number directly
  2. Contact picker — opens ContactPickerSheetFragment to select a saved contact
  3. QR scan — opens the camera scanner; a PayMV QR result pre-fills the account number, amount, and remarks

Fields

Field Notes
Source account Dropdown; balance shown below
Recipient account number Text input or filled from contact/QR
Recipient name Auto-looked up from bank API after account number entry
Amount Numeric; pre-filled from QR if available
Remarks / purpose Free text; pre-filled from QR if available

Recipient Lookup

After the user finishes entering a recipient account number, the app calls the source bank's name-lookup API:

  • MIB: account name lookup via MIB API
  • BML: beneficiary lookup via BML API
  • Fahipay: account name resolution via Fahipay API

The resolved name is displayed below the account number field for the user to confirm.


Biometric Gate

If biometric-for-transfers is enabled in Settings → Security, BiometricPrompt is shown before the transfer is submitted. A failed or cancelled biometric blocks submission.


Bank-Specific Flows

MIB Transfer

  1. Validates fields
  2. (If biometric gate) prompts biometrics
  3. Submits transfer via MibLoginFlow using active MIB session (serialized through mibMutex)
  4. On success, shows TransferReceiptFragment

BML Transfer

  1. Validates fields
  2. (If biometric gate) prompts biometrics
  3. Initiates BML transfer — server responds with OTP required
  4. Navigates to OtpFragment to collect the TOTP
  5. Re-submits with OTP
  6. On success, shows TransferReceiptFragment

Fahipay Transfer

  1. Validates fields
  2. (If biometric gate) prompts biometrics
  3. Submits via Fahipay API using stored authID + session cookie
  4. On success, shows TransferReceiptFragment

Transfer Receipt

On success the fragment navigates to TransferReceiptFragment passing the completed transfer details.


Error Handling

All bank API errors are shown as a Snackbar or inline error message. Session expiry triggers a re-authentication prompt rather than a crash.


 


← Transfer History     Next → Contacts