99testsStart a job

Test case library · KYC, lending & investing

Test cases for digital loan application and EMI repayment

This page covers a digital personal loan from eligibility check to repayment: credit-bureau consent, income and bank statement collection, the offer and key facts summary, e-sign, the repayment mandate, disbursal, EMIs and cancellation. It fails in the field at the handoffs, when budget phones kill the app during a UPI or account-aggregator step, when numbers drift between the offer and the agreement, and when a repayment succeeds but the app never hears about it.

40 test cases17 release-blocking (P1)14 need a real phoneUpdated 2026-10-29

From the reviews. In loan apps, failed or stuck payments were the top malfunction (6 of 14), while 70.2% of complaints were about fees, collections and loan decisions rather than the app.

category page · India App Quality Report

In scope

  • Eligibility check with PAN and credit-bureau consent
  • Income details, account-aggregator consent and statement upload
  • Offer screen, key facts summary and e-sign
  • Repayment mandate set-up and disbursal status
  • EMI schedule, UPI repayment and cancellation
  • Permission requests across the flow

Out of scope

  • Underwriting and credit decision logic
  • Collections, overdue reminders and recovery
  • Aadhaar eKYC steps, covered on their own page

Before you start

  • UAT build connected to sandbox credit-bureau, account-aggregator, e-sign and mandate services
  • Test identities set up to pass, fail and partly match each check
  • Test bank accounts with UPI apps installed, plus password-protected PDF statements
  • Phones: a 3–4 GB RAM Android with OEM battery saver on, a dual-SIM Android and an iPhone
  • Jio, Airtel or Vi SIMs and a Wi-Fi network you can switch off
Show
Add to a test plan

Happy path11

LN-01

Check eligibility with PAN, date of birth and PIN code

P1functional
  1. Log in with a new test account and tap Check eligibility.
  2. Enter the test PAN, date of birth and a serviceable PIN code.
  3. Read the credit-bureau consent, tick it and tap Check.

Expected: A progress indicator shows while the check runs, then the eligible amount or range appears in rupees with lakh grouping, such as ₹1,50,000.

LN-02

Enter income details for a salaried applicant

P2functional
  1. Choose Salaried as the employment type.
  2. Enter an employer name, a monthly take-home of 85000 and the salary credit date.
  3. Tap Continue, then go back to the income screen.

Expected: The income field shows the amount as ₹85,000 while typing or after leaving the field, and every entry is still filled in after going back.

LN-03

Share bank statements through account-aggregator consent

P1functionalreal phone
  1. Choose account aggregator as the way to share bank statements.
  2. Pick the test bank and read the purpose, date range and validity on the consent screen.
  3. Approve with the OTP and wait for the return to the app.

Expected: The consent screen names the data, the period and how long access lasts before approval. After approval the app shows that statements were received and moves to the next step.

Why a real phone: Approval switches to an account-aggregator app or page and back, with an SMS OTP.

LN-04

Upload a password-protected PDF bank statement

P2functional
  1. Choose Upload statement and pick a password-protected PDF statement from Downloads.
  2. Enter the password the bank set for the file and tap Submit.

Expected: The app asks for the password, opens the file and shows the statement period and bank name for confirmation, then marks the statement as received.

LN-05

Compare the offer screen with the key facts summary before accepting

P1functional
  1. On the offer screen, note the amount, interest rate, fees, EMI, number of EMIs and total payable.
  2. Open the key facts or loan summary screen.
  3. Compare every value, then open the agreement and compare again.

Expected: All three show the same amount, rate, fees, EMI, number of EMIs and total payable, and the net amount to be credited after fees is stated.

LN-06

E-sign the loan agreement with the method the app offers

P1functional
  1. After accepting the offer, open the agreement and scroll to the end.
  2. Choose e-sign, such as with an Aadhaar OTP, and complete it with the test identity.
  3. Open the signed agreement from the loan details screen.

Expected: The app shows the agreement as signed with the date and time in IST, and the signed copy opens with the same values as the key facts summary.

LN-07

Set up the repayment mandate with UPI AutoPay

P1functionalreal phone
  1. On the repayment set-up screen, choose UPI AutoPay.
  2. Pick an installed UPI app and check the mandate amount, frequency and end date shown there.
  3. Approve with the UPI PIN and return to the loan app.

Expected: The UPI app shows the same maximum amount and frequency as the loan app. Back in the loan app the mandate shows as active, or as pending with a clear message.

Why a real phone: Mandate approval happens in a separate installed UPI app and returns to the loan app.

LN-08

Follow disbursal status until the money reaches the bank account

P1functional
  1. After e-sign and mandate set-up, open the loan status screen.
  2. Pull to refresh until the status changes, noting each stage shown.
  3. Compare the credited amount with the statement of the test bank account.

Expected: Status moves through clear stages to disbursed, showing the amount, a reference number and the account with only its last four digits. The amount credited equals the net amount stated in the key facts summary.

LN-09

Read the EMI schedule after disbursal

P1functional
  1. Open the EMI schedule from the loan details screen.
  2. Note each due date, EMI amount and outstanding balance.
  3. Add up all EMIs and compare with the total payable in the key facts summary.

Expected: The EMIs add up to the total payable, with any rounding shown in the final EMI. Due dates match the agreement and the first one falls after the disbursal date.

LN-10

Pay the upcoming EMI early through a UPI app

P1functionalreal phone
  1. On the loan screen, tap Pay now for the next EMI.
  2. Choose an installed UPI app and pay with the UPI PIN.
  3. Return to the loan app and open the EMI schedule.

Expected: The app shows payment received with a reference number, the EMI is marked paid and the next due amount is updated.

Why a real phone: Payment completes in a separate installed UPI app before returning to the loan app.

LN-11

Cancel the loan within the cancellation window the app offers

P1functionalreal phone
  1. Within the cancellation window the app states, open loan details and tap Cancel loan.
  2. Read the amount to repay and any charges the app lists.
  3. Pay that amount through UPI and return to the loan app.

Expected: After payment the loan shows as cancelled or closed with a reference, the EMI schedule is withdrawn and the repayment mandate shows as revoked.

Why a real phone: Repayment for cancellation goes through a separate installed UPI app and back.

Validation & negative7

LN-12

Decline credit-bureau consent

P2negative
  1. Start the eligibility check and leave the credit-bureau consent unticked.
  2. Tap Check, then tap Back and try another route to the offer screen.

Expected: The consent box is unticked by default. Without it the check does not run, the app says why, and no offer can be reached by another route.

LN-13

Reject invalid income entries

P2negative
  1. In monthly income, enter 0, then letters, then a 12-digit number.
  2. Paste an amount with commas and paise, such as 85,000.50.
  3. Tap Continue after each entry.

Expected: Zero, letters and absurd values show inline errors and block Continue, while the pasted amount is read as the right number or rejected with a clear message.

LN-14

Reject an unreadable or mismatched bank statement

P2negative
  1. Upload a password-protected statement and enter a wrong password three times.
  2. Upload a photo of a statement instead of the PDF.
  3. Upload a test statement in a different person's name.

Expected: Each upload shows a specific reason, such as wrong password or unsupported file, and the statement in another name is rejected or flagged for review, not silently accepted.

LN-15

Show a clear result when the applicant is not eligible

P2negative
  1. Run the eligibility check with a test profile set up to fail, such as a low credit score.
  2. Repeat with a PIN code outside the serviceable area.

Expected: Each time the app shows a plain message that no offer is available, without a raw error code, and says when the user can check again if the product allows it.

LN-16

Try to accept the offer without viewing the key facts summary

P1negative
  1. On the offer screen, tap Accept without opening the summary.
  2. Open the summary, go back and tap Accept with the agreement box unticked.

Expected: Accept is possible only after the summary has been shown and the agreement box is ticked, and no loan is created by either attempt.

LN-17

Decline the UPI mandate or enter a wrong UPI PIN

P1negativereal phone
  1. Start UPI AutoPay set-up and decline the request in the UPI app.
  2. Return to the loan app and note the mandate status.
  3. Retry, enter a wrong UPI PIN, then return again.

Expected: Both times the loan app shows the mandate as not set up, never as active, and offers a retry or another repayment method.

Why a real phone: Declining and PIN entry happen inside a separate installed UPI app.

LN-18

Try to cancel after the cancellation window has ended

P2negative
  1. Use a test loan disbursed before the start of the cancellation window the app states.
  2. Open loan details and look for the cancel option.

Expected: The cancel option is hidden or disabled with a clear note, and the app points to its closure or prepayment option instead.

Edge cases6

LN-19

Move the amount and tenure to their limits on the offer screen

P2edge
  1. Drag the amount slider to its lowest and highest values, then type an amount above the maximum.
  2. Change tenure to the shortest and longest options.
  3. Open the key facts summary after each change.

Expected: Amounts above the approved limit are blocked, and the EMI, interest and total payable update together with each change and match the summary.

LN-20

EMI due dates for a loan disbursed at the end of a month

P2edge
  1. Use a test loan disbursed on the 30th or 31st of a month.
  2. Open the EMI schedule and check February and the 30-day months.

Expected: Every due date is a real calendar date, short months follow one consistent rule, and the schedule matches the agreement and the mandate dates.

LN-21

Use account aggregator when the bank account has a different mobile number

P2edge
  1. Log in with a number that differs from the one registered with the test bank account.
  2. Start account-aggregator consent and search for accounts at that bank.

Expected: The flow explains that no accounts were found for this number and offers another way, such as a PDF upload, instead of a blank list or endless loading.

LN-22

Bank account check returns a name different from the PAN

P2edge
  1. Add a disbursal account whose test account-holder name uses initials or a married surname.
  2. Let the app run its bank account check.

Expected: The app shows the name the bank returned and either accepts it under its matching rules or explains the mismatch with a next step, without a raw error.

LN-23

Disbursal fails because the bank account cannot receive money

P2edge
  1. Use a test disbursal account set up to reject credits, such as a closed account.
  2. Complete e-sign and mandate set-up, then open the loan status screen.

Expected: Status shows disbursal failed with a plain reason and a way to add another account, and no EMI schedule or mandate debit starts for money never received.

LN-24

Pay an EMI manually on the day the mandate debit is due

P1edgereal phone
  1. On an EMI due date, pay that EMI through UPI in the loan app.
  2. Check the test bank account over the next two days.
  3. Open the EMI schedule and payment history.

Expected: Only one EMI is collected, or any second debit is shown and refunded as the app explains, and the EMI is never marked overdue or charged a late fee.

Why a real phone: Manual payment runs through a separate installed UPI app alongside a live mandate debit.

Interruptions & network6

LN-25

App killed by the system while approving the mandate in the UPI app

P1interruptionreal phone
  1. On a 3–4 GB RAM Xiaomi, Realme or Vivo phone, open several heavy apps.
  2. Start UPI AutoPay set-up and stay in the UPI app for a minute.
  3. Approve with the UPI PIN, then return through recent apps.

Expected: The loan app reopens on the repayment step showing the mandate as active or pending, and tapping set-up again does not create a second mandate.

Why a real phone: OEM battery savers kill backgrounded apps on budget phones, unlike emulators.

LN-26

Lose network right after tapping Accept or submitting the e-sign OTP

P1interruption
  1. Tap Accept on the offer and turn on airplane mode at once.
  2. Turn airplane mode off after a few seconds and reopen the loan screen.
  3. Repeat right after submitting the e-sign OTP.

Expected: After reconnecting the app shows the real state, such as accepted or signed, and does not create a second loan or ask for a second signature.

LN-27

Switch from Wi-Fi to mobile data during a statement upload

P2interruptionreal phone
  1. Start uploading a large PDF statement on Wi-Fi.
  2. Turn Wi-Fi off mid-upload so the phone moves to Jio, Airtel or Vi data.

Expected: The upload resumes or restarts with visible progress, or fails with a retry option, and a partly uploaded file is never marked as received.

Why a real phone: A real Wi-Fi to mobile data handover cannot be reproduced faithfully on an emulator.

LN-28

Wait for a delayed e-sign OTP on a weak signal or SIM 2

P2interruptionreal phone
  1. Put the Aadhaar-linked test number in SIM 2 of a dual-SIM phone.
  2. Move to a weak-signal spot and request the e-sign OTP.
  3. When the countdown ends, tap Resend and enter the latest OTP.

Expected: The OTP screen stays open with manual entry available, Resend unlocks only after the countdown, and the latest OTP signs the agreement once.

Why a real phone: SMS delivery and auto-read depend on the real carrier, signal and SIM slot.

LN-29

Take a call or lock the screen during account-aggregator or e-sign steps

P2interruptionreal phone
  1. Start the account-aggregator approval and answer an incoming call midway.
  2. Return to the app after the call ends.
  3. Start e-sign, lock the screen for a minute, then unlock.

Expected: Both steps continue where they stopped or restart cleanly with a clear message, and neither consent nor signature is recorded twice.

Why a real phone: Carrier calls and screen lock interrupt in-app browser pages differently across real phones.

LN-30

UPI repayment is debited but the app shows failed or pending

P1interruptionreal phone
  1. Tap Pay now for an EMI and complete payment in the UPI app.
  2. Turn on airplane mode before switching back to the loan app.
  3. Reconnect, reopen the app and check the EMI status.

Expected: The app shows the payment as pending with a reference rather than failed, then updates to paid once confirmed, and adds no late fee while it is pending.

Why a real phone: Needs a real UPI app debit while the loan app loses its confirmation.

Device & OS3

LN-31

Open e-sign and account-aggregator pages with different default browsers

P2compatibilityreal phone
  1. Complete the e-sign and account-aggregator steps with the browser the phone shipped with as default.
  2. On a Xiaomi or Samsung phone, make the maker's own browser the default and repeat.

Expected: With each browser the page opens, completes and returns to the right step in the loan app instead of leaving the user on a browser tab.

Why a real phone: Default browsers and web view versions differ by phone maker and update level.

LN-32

Choose a UPI app when several or none are installed

P2compatibilityreal phone
  1. On a phone with three UPI apps, start mandate set-up and then Pay now.
  2. Uninstall or disable all UPI apps and repeat both.

Expected: With several apps, the chooser lists the installed UPI apps that support the action. With none, the app offers another method, such as a UPI ID or eNACH, instead of a dead button.

Why a real phone: The list of UPI apps comes from what is actually installed on the phone.

LN-33

Download the agreement and EMI schedule with low storage

P3compatibility
  1. Fill the phone's storage until less than 100 MB is free.
  2. Download the signed agreement and the EMI schedule PDFs.
  3. Free some space and download both again.

Expected: With low storage the app shows a storage message rather than saving a broken file, and after freeing space both PDFs open in the phone's PDF viewer.

Security & privacy3

LN-34

Ask only for the permissions each step needs

P1security
  1. Install fresh and go through the whole flow, noting every permission prompt and when it appears.
  2. Deny any prompt that the current step does not need and continue.
  3. Compare the prompts with the permissions listed on the app's store page.

Expected: No prompt asks for contacts, call logs, reading SMS or all photos and files unless a step needs it, each prompt follows an in-app reason, and the flow continues after optional ones are denied.

LN-35

Block screenshots and hide loan details in recent apps

P2securityreal phone
  1. Take a screenshot on the income, bank statement and agreement screens.
  2. Try the phone's own gesture too, such as a three-finger swipe.
  3. Open the recent apps view while on the agreement screen.

Expected: Screens showing statement data or full account numbers block screenshots or save them blank, and the recent apps preview hides loan details.

Why a real phone: OEM screenshot gestures and recents previews behave differently on Xiaomi and Samsung phones.

LN-36

Log out on a shared family phone and log in as someone else

P1security
  1. As user A, finish an application and download the agreement, then log out.
  2. Log in as user B on the same phone.
  3. Open the loan, documents and notification screens.

Expected: User B sees none of user A's offer, income, statements or agreement, and the app's document list does not show user A's files.

Accessibility & language4

LN-37

Use the offer and key facts screens with TalkBack

P2accessibility
  1. Turn on TalkBack and open the offer screen.
  2. Adjust the amount and tenure using TalkBack gestures.
  3. Swipe through the key facts summary and the Accept button.

Expected: Sliders announce their current value and change with gestures, amounts are read as rupee values rather than single digits, and each summary row reads its label with its value.

LN-38

Read the key facts and EMI schedule at the largest font size

P2accessibility
  1. Set font size and display size to the maximum.
  2. Open the offer, key facts summary and EMI schedule.

Expected: No amount, rate or date is cut off or overlapping, tables scroll or reflow, and the Accept button stays reachable.

LN-39

Show amounts in lakh grouping and dates in IST everywhere

P2localization
  1. Use a test offer of at least ₹2,50,000.
  2. Check the amount on the offer, summary, agreement PDF, schedule and notifications.
  3. Change the phone's time zone to one outside India and recheck the due dates.

Expected: Every amount uses lakh grouping, such as ₹2,50,000 and never ₹250,000, and due dates stay the same after the time zone change.

LN-40

Run the offer and key facts screens in Hindi

P2localization
  1. Switch the app language to Hindi.
  2. Open the offer, key facts summary and repayment set-up screens.
  3. Compare the values with the English version.

Expected: Labels, fees and terms appear in Hindi with no English placeholders or clipped text, and every number matches the English screens exactly.

In the field

Where digital loan application breaks on real phones

  • Budget phones with Xiaomi, Realme or Vivo battery savers kill the loan app while the user approves the UPI mandate or account-aggregator consent elsewhere, and the app restarts the step or creates a second mandate.
  • Account-aggregator discovery fails quietly when the bank account is linked to an older mobile number, leaving users on an empty account list with no route to a PDF upload.
  • The offer, key facts summary, agreement and EMI schedule come from different services and drift apart: a fee added in one place, a rounded EMI in another, a total that does not add up.
  • E-sign and consent pages open in whichever browser the phone maker set as default, and some never hand the user back to the app.
  • A UPI repayment that succeeds in the UPI app shows as failed when the network drops on the way back, so users pay twice or see a late fee.
  • Due dates shift by a day or land on dates that do not exist, such as 31 February, when month-end disbursals and time zone conversions are not handled.

Run these 40 cases on real phones

They fit the Standard package: 10 × 45-minute sessions on 4 phones or browsers of your choice, up to ~50 cases, ₹18,999 + GST ($249), verified report in 3 business days. The 17 P1 cases alone fit Starter (₹9,999 + GST).

Download the CSV, pick the package at checkout and upload the file with your build. Testers run them on their own phones, on Jio, Airtel and Vi.

Questions

About testing digital loan application

How do you test a loan app's key facts or summary screen?

Treat it as a numbers check, not a copy check. Note the amount, rate, fees, EMI, number of EMIs and total payable on the offer screen, then compare them with the summary, the signed agreement and the EMI schedule. Repeat after changing the amount and tenure, because mismatches usually appear only after a recalculation.

Which permissions should a loan app ask for?

Only the ones a step in the flow actually uses, asked when that step needs them and after an in-app reason. Go through the full flow on a fresh install and list every prompt; anything like contacts, call logs or reading SMS needs a specific justification from the product team. Also confirm the app keeps working when optional permissions are denied.

How can testers check UPI AutoPay or eNACH mandates without risking real money?

Most mandate logic can be tested in a sandbox with test bank accounts from your payment provider. The switch to an installed UPI app and back usually needs a real phone, and some teams run it with small amounts on internal accounts. Revoke every test mandate afterwards, in both the loan app and the UPI app, and confirm the status matches in both.

Related flows

Test these next

Your AI wrote the test cases. Run them on real phones.

99tests runs your cases, AI-generated ones included, on the phones, laptops and browsers your users own. Every finding is verified, serious bugs come with a screen recording, and each case comes back pass, fail, blocked or not run.