99testsStart a job

Test case library · Payments

Test cases for mobile recharge and BBPS bill payment

This flow covers prepaid mobile recharges, from operator and circle detection to the plan list, and bill payments through BBPS for electricity, DTH, broadband and FASTag, through to the receipt and reminders. It fails in the field when a ported number is detected as its old operator, a biller does not answer the bill fetch, or a payment succeeds while the recharge sits in Pending and the user pays again.

39 test cases9 release-blocking (P1)10 need a real phoneUpdated 2026-10-29

From the reviews. 42 of the 317 malfunction reviews in our India App Quality Report describe a failed, stuck or double-debited payment. 34 of them are on apps other than UPI and banking apps, where paying is one step inside a booking, order, premium, top-up or repayment; 11 on travel apps alone.

category page · India App Quality Report

In scope

  • Prepaid recharge plans by operator and circle, with operator auto-detection
  • BBPS bill fetch and payment for electricity, DTH, broadband and FASTag
  • Bill-fetch failures and the biller's amount rules
  • Pending recharges, refunds, reminders and receipts

Out of scope

  • Postpaid plan changes and new SIM connections
  • Biller-side reconciliation and settlement

Before you start

  • Real prepaid SIMs from Jio, Airtel and Vi, including a ported number and one with its data used up
  • Test billers for electricity, DTH, broadband and FASTag, including ones set up to fail or answer late
  • Test numbers set up so the operator confirms late or rejects a recharge
  • A 3–4 GB RAM dual-SIM Android phone with a UPI app installed
Show
Add to a test plan

Happy path10

BIL-01

Recharge a prepaid number with a plan from the list

P1functionalreal phone
  1. Enter a test prepaid number and wait for the operator and circle
  2. Pick a plan and check its price, validity and benefits
  3. Pay and wait on the result screen
  4. Repeat on Jio, Airtel and Vi SIMs and check each operator's SMS

Expected: Each result shows Recharge successful with the operator's reference. Each operator's SMS on the recharged SIM confirms the same plan and amount.

Why a real phone: Operator confirmation SMS and new validity show up only on real Jio, Airtel or Vi SIMs.

BIL-02

Detect the operator and circle from the number

P1functional
  1. Enter test numbers from Jio, Airtel and Vi in different circles
  2. Check the operator and circle shown for each
  3. Open the plan list for each one

Expected: Each number shows the right operator and circle, and the plan list matches that operator and circle.

BIL-03

Correct the operator for a number that has been ported

P2functional
  1. Enter a test number that moved from one operator to another
  2. If the old operator is shown, change the operator and circle by hand
  3. Pick a plan and pay

Expected: The plan list reloads for the chosen operator and circle. The recharge is credited by the operator the number now uses.

BIL-04

Browse plans by category and open a plan's details

P2functional
  1. Open the plan list for a test number
  2. Switch between categories such as unlimited, data and top-up
  3. Open one plan's details

Expected: Each category lists only its own plans. The details show the price, validity, data and other benefits the operator provides.

BIL-05

Fetch and pay an electricity bill through BBPS

P1functional
  1. Choose Electricity, pick the test board and enter a consumer number
  2. Tap Fetch bill and check the name, bill date, due date and amount
  3. Pay the amount and open the receipt

Expected: The fetched bill shows the consumer's name and the amount due before payment. The receipt shows the biller, consumer number, amount and a BBPS transaction reference.

BIL-06

Recharge DTH with the subscriber ID or registered mobile number

P2functional
  1. Choose DTH, pick the test operator and enter the subscriber ID
  2. Check the subscriber name and any amount suggested
  3. Repeat with the registered mobile number, if the operator supports it
  4. Pay and open the receipt

Expected: Both ways find the same subscriber. The receipt shows the subscriber ID, the amount and the operator's reference.

BIL-07

Fetch and pay a broadband bill

P2functional
  1. Choose Broadband, pick the test provider and enter the account ID
  2. Fetch the bill and check the amount and due date
  3. Pay, then fetch the bill again

Expected: The bill shows the amount due before payment. Fetching again shows no pending amount, or says the payment is being updated.

BIL-08

Recharge a FASTag by vehicle number

P2functional
  1. Choose FASTag, pick the test issuer and enter a vehicle number
  2. Check the tag holder's name and the details fetched
  3. Enter an amount and pay

Expected: The fetched details match the test vehicle. The receipt shows the vehicle number, the amount and the issuer's reference.

BIL-09

Download and share a recharge or bill receipt

P2functional
  1. Open a completed recharge and a completed bill payment from history
  2. Download each receipt and share one to a messaging app

Expected: Each receipt shows the number or consumer ID, the operator or biller, the amount with lakh grouping, the reference number and the IST date and time. The payment method is masked.

BIL-10

Get reminders for a bill due and a plan about to expire

P2functionalreal phone
  1. Save an electricity biller and a prepaid number with reminders on
  2. Wait for a new bill and for the plan to near the end of its validity
  3. Tap each reminder

Expected: Each reminder names the biller or number and the due or expiry date. Tapping it opens the right bill or plan list.

Why a real phone: Reminder delivery depends on real push channels and OEM battery savers.

Validation & negative6

BIL-11

Reject an invalid mobile number

P2negative
  1. Enter nine digits, then eleven digits
  2. Enter letters and symbols

Expected: Each one shows an inline error, and plans do not load until a valid 10-digit number is entered.

BIL-12

Enter a malformed or unknown consumer number

P2negative
  1. Pick a biller and enter a consumer number with the wrong length or characters
  2. Enter a well-formed number that the biller does not recognise

Expected: The malformed number shows the biller's format hint inline. The unknown number shows that no bill was found, and Pay is not offered.

BIL-13

Pay less than the bill when the biller needs the exact amount

P1negative
  1. Fetch a bill from a test biller that accepts only the exact amount
  2. Try to change the amount to less than the bill

Expected: The amount cannot be edited, or the app blocks the change with the biller's rule. Only the exact bill amount can be paid.

BIL-14

Enter a recharge amount that matches no plan

P2negative
  1. Type an amount that is not any listed plan's price
  2. Tap Recharge

Expected: Before payment, the app says no plan matches and shows what the amount will give or the nearest plans. It does not charge for an amount the operator will reject.

BIL-15

Show a clear message when the bill fetch fails

P2negative
  1. Fetch a bill from a test biller set up to be unavailable
  2. Retry after the biller is back

Expected: The first attempt says the biller is not responding and offers a retry, with no blank bill or zero amount. The retry fetches the bill normally.

BIL-16

Enter a wrong vehicle number or recharge a FASTag above its limit

P2negative
  1. Enter a vehicle number in the wrong format, then one with no FASTag
  2. Enter a valid vehicle and an amount above the tag's configured limit

Expected: The wrong format shows an inline error, and the unknown vehicle shows that no tag was found. The amount above the limit is blocked before payment.

Edge cases8

BIL-17

Pick a contact saved with +91, a leading 0, spaces or dashes

P2edge
  1. Save test contacts with +91, a leading 0, spaces and dashes in the number
  2. Pick each one from the contacts picker
  3. Paste one of them into the number field

Expected: Each one becomes the same 10-digit number and the operator is detected. No digit is dropped or added.

BIL-18

Payment succeeds but the recharge stays pending

P1edge
  1. Use a test number set up so the operator confirms late
  2. Pay and stay on the result screen
  3. Check history and notifications later

Expected: The screen says the payment succeeded and the recharge is pending, with advice not to pay again. It later shows Successful with the operator's reference, or Failed with a refund.

BIL-19

Recharge fails after payment and the money is refunded

P1edge
  1. Use a test number set up so the operator rejects the recharge
  2. Pay and open the result screen
  3. Open the transaction in history

Expected: The result shows that the recharge failed and the refund has started, with a reference. History shows the refund status until it reaches the source account.

BIL-20

Pay more or less than the bill where the biller allows it

P2edge
  1. Fetch a bill from a test biller that accepts part and advance payments
  2. Pay less than the bill, then fetch again and pay more than the remainder

Expected: Both payments go through and each receipt shows the amount paid. The next fetch shows the remaining amount or the advance as the biller returns it.

BIL-21

Fetch bills that are already paid or overdue

P2edge
  1. Fetch a test bill that has just been paid
  2. Fetch a test bill whose due date has passed

Expected: The paid bill shows no pending amount and is not offered for payment again. The overdue bill is marked overdue with the amount the biller returns, including any late charges.

BIL-22

Recharge a number that is roaming in another state

P2edge
  1. Enter a test number from one circle whose SIM is now in another state
  2. Check the circle shown and the plans listed

Expected: The app shows the number's home circle, not the state where the phone is, and lists that circle's plans.

BIL-23

Repeat the same recharge within a few minutes

P2edge
  1. Recharge a test number with a plan
  2. Start the same plan for the same number again straight away

Expected: The app warns that the same recharge was just made and asks the user to confirm before taking payment.

BIL-24

Pay for a plan whose price changed after the list loaded

P2edge
  1. Open the plan list and leave it open
  2. Have the test plan's price changed in the test setup
  3. Pick that plan from the old list and pay

Expected: The app shows the new price before payment, or the recharge fails with a refund and a clear reason. The user is never charged the old price for a plan that no longer applies.

Interruptions & network7

BIL-25

Network drops right after paying for a recharge

P1interruptionreal phone
  1. Pay for a recharge and turn on airplane mode at once
  2. Turn the network back on and open history
  3. Repeat, paying just as you walk into a lift or basement

Expected: The app shows Pending or Checking, not Failed, and then the final status. It does not ask the user to pay again while the status is unknown.

Why a real phone: Real dead zones lose packets slowly; an emulator's network cut is instant and clean.

BIL-26

Pay through a UPI app and return on a low-RAM phone

P1interruptionreal phone
  1. On a 3–4 GB RAM phone, choose UPI and pick a UPI app
  2. Before the PIN, open a few heavy apps, then return to the UPI app
  3. Pay, then reopen the recharge app from the launcher

Expected: The recharge app checks the status on reopening and shows the recharge as pending or successful. It does not ask for payment again.

Why a real phone: Low-RAM phones and OEM memory managers kill background apps during the UPI app switch.

BIL-27

Fetch a bill on a weak or 2G connection

P2interruptionreal phone
  1. Go where the phone shows a weak or 2G signal, with Wi-Fi off
  2. Start a bill fetch and wait without tapping anything

Expected: A loading state shows until the bill arrives, or a retry appears after the app's timeout. A half-loaded bill with an empty name or amount never shows with Pay enabled.

Why a real phone: Needs a real SIM on a weak, slow carrier network.

BIL-28

Recharge the phone's own SIM after its data has run out

P2interruptionreal phone
  1. Use a SIM whose data pack has run out, with Wi-Fi off
  2. Open the app on that SIM's mobile data
  3. On a dual-SIM phone, switch mobile data to the other SIM and recharge

Expected: With no data, the app quickly says it is offline and suggests Wi-Fi or the other SIM. After switching, the recharge completes and the first SIM's data works once the plan is applied.

Why a real phone: Needs a real SIM with its data pack used up on a carrier network.

BIL-29

Get the result notification when a pending recharge completes

P2interruptionreal phone
  1. Make a recharge that stays pending, then close the app
  2. Leave the phone locked until the operator confirms
  3. Tap the notification

Expected: A notification says the recharge succeeded or was refunded. Tapping it opens that transaction with its final status.

Why a real phone: Notification delivery with the app closed depends on OEM battery savers.

BIL-30

Incoming call while the recharge payment is processing

P3interruptionreal phone
  1. Pay for a recharge
  2. Answer an incoming call while the processing screen is showing
  3. End the call and return to the app

Expected: The app shows the current status of that payment, not a fresh payment form. No second payment is started.

Why a real phone: Needs a real incoming SIM call over the payment screen.

BIL-31

Switch from Wi-Fi to mobile data during a bill payment

P3interruptionreal phone
  1. Fetch a bill on Wi-Fi
  2. Turn Wi-Fi off just before tapping Pay
  3. Complete the payment on mobile data

Expected: The payment completes on mobile data, or shows a clear error with a retry. The bill is not paid twice.

Why a real phone: Needs a real SIM on Jio, Airtel or Vi for the handover.

Device & OS2

BIL-32

Recharge either SIM's own number on a dual-SIM phone

P3compatibilityreal phone
  1. On a dual-SIM phone, open recharge and look for the phone's own numbers
  2. Pick the SIM 2 number and recharge

Expected: If the app offers the phone's own numbers, both appear with their correct operators and the recharge goes to the chosen SIM. Otherwise, typing the number works the same way.

Why a real phone: Reading both SIMs' numbers and operators needs two real SIMs.

BIL-33

Deny the contacts permission and type the number instead

P2compatibility
  1. Tap the contacts icon and deny the permission
  2. Type a test number by hand and recharge

Expected: The app explains why it asked and links to settings, and the user can still type the number and recharge.

Security & privacy3

BIL-34

Show whose bill it is when a consumer number is mistyped

P1security
  1. Enter a consumer number one digit off, belonging to another test consumer
  2. Fetch the bill and read the name
  3. Go back and correct the number

Expected: The fetched bill shows the other consumer's name clearly before Pay, so the mistake can be caught. Going back clears the wrong bill.

BIL-35

Ask for the app lock when paying from a reminder

P2security
  1. Turn on the app lock and close the app
  2. Tap a bill reminder notification

Expected: The app asks for its lock before showing the bill or the payment screen.

BIL-36

Clear saved billers and numbers on logout

P2security
  1. Save a few billers and recharge numbers
  2. Log out, then log in with a different test account

Expected: None of the first account's billers, numbers or history appear in the second account.

Accessibility & language3

BIL-37

Hear plan details with TalkBack

P2accessibility
  1. Turn on TalkBack and open a plan list
  2. Move through two plan cards and open one

Expected: Each card is read as one item with its price, validity and data. Buttons such as Recharge are announced with the plan they belong to.

BIL-38

Use plans and bills in Hindi

P2localization
  1. Switch the app language to Hindi
  2. Open a plan list, fetch a bill and open a receipt

Expected: Labels, plan benefits and statuses appear in Hindi, and biller and consumer names show without broken characters. Amounts keep lakh grouping, such as ₹1,00,000.

BIL-39

Recharge with the largest font and display size

P3accessibility
  1. Set font size and display size to the maximum
  2. Open a plan list, pick a plan and open a fetched bill

Expected: Plan prices, validity and the Pay button stay visible without cut-off text, and long biller names wrap.

In the field

Where mobile recharge and bill payment breaks on real phones

  • Numbers ported between Jio, Airtel and Vi are detected as their old operator or circle, so users pick plans the new operator rejects.
  • Users whose data pack has run out cannot load the app on that SIM, and the app hangs on a spinner instead of suggesting Wi-Fi or the other SIM.
  • Billers that answer slowly or not at all make the bill fetch hang on weak networks, and some apps show a zero or blank amount with Pay enabled.
  • Recharges stuck in Pending after a successful payment look like failures, so users recharge again and end up with two packs or a refund to chase.
  • Plan lists cached before an operator's price change show old prices, and the recharge fails after the payment is taken.
  • On 3–4 GB RAM phones the recharge app is killed while the user pays in a UPI app, and the order shows unpaid when they return.

Run these 39 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 9 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 mobile recharge and bill payment

What is a BBPS bill fetch and what should a tester check?

A bill fetch asks the biller, through BBPS, for the current bill against a consumer number before payment. Check that the consumer name, bill date, due date and amount appear before Pay, and that wrong or unknown numbers return a clear message. A slow or unavailable biller must never produce a blank or zero bill that can be paid.

How do you test operator and circle auto-detection?

Use numbers from each operator and from several circles, including numbers that have been ported to another operator. Check the detected operator and circle, the plan list that loads, and that the user can correct a wrong detection by hand. Then confirm the recharge is credited by the operator the number actually uses.

What should happen when the payment succeeds but the recharge is pending?

The app should say clearly that the payment went through and the recharge is pending, and advise against paying again. It should update to Successful with the operator's reference, or to Failed with a refund, and notify the user even when the app is closed. Also test that a second recharge for the same number warns the user first.

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.