99testsStart a job

Test case library · Payments

Test cases for UPI AutoPay mandates and recurring debits

This flow covers UPI AutoPay mandates: approving a recurring debit with the UPI PIN, the alert before each debit, the debit itself, and pausing, changing or revoking the mandate later. It fails in the field because one mandate lives in three places, the merchant app, the UPI app and the bank, and they drift apart when a status update is missed, an alert is stopped by a battery saver or the user manages the mandate from another app.

40 test cases13 release-blocking (P1)12 need a real phoneUpdated 2026-10-29

From the reviews. In loan apps, where most payments are repayments and EMI debits, failed or stuck payments were the top malfunction (6 of 14 malfunction reviews).

category page · India App Quality Report

In scope

  • Creating a mandate with the UPI PIN from a merchant app or a request
  • Pre-debit alerts and the recurring debit
  • Pause, resume, revoke and changes to amount or frequency
  • Failed debits and merchant retries
  • Mandate status in the merchant app, the UPI app and a second UPI app

Out of scope

  • One-time UPI and QR payments
  • Card and net banking e-mandates

Before you start

  • A test merchant app and dashboard that can create mandates and trigger debits
  • Two UPI apps on a real dual-SIM Android phone, linked to the same test bank account
  • Test bank accounts with known balances, including one that can be emptied for failure cases
  • Test mandates with a debit due today, so debits can be checked without waiting a full cycle
Show
Add to a test plan

Happy path10

UPA-01

Create a monthly mandate from a merchant app with the UPI PIN

P1functionalreal phone
  1. In the test merchant app, pick a monthly plan and choose UPI AutoPay
  2. Pick the UPI app from the app chooser
  3. Check the merchant name, maximum amount, frequency, start date and end date
  4. Enter the UPI PIN and let the phone return to the merchant app

Expected: The merchant app shows the subscription as Active with the next debit date. The UPI app lists the mandate as Active with the same merchant, amount, frequency and dates.

Why a real phone: Needs two real installed apps and an Android app switch and return.

UPA-02

Approve a mandate request sent to a UPI ID

P2functional
  1. From the merchant's test dashboard, send a mandate request to the tester's UPI ID
  2. Open the request from the pending requests list in the UPI app
  3. Review the terms, tap Approve and enter the UPI PIN

Expected: The mandate moves from pending to Active and shows the merchant's verified name. The request no longer appears in the pending list.

UPA-03

Take the first payment at sign-up when the plan charges upfront

P2functional
  1. Choose a plan that charges the first period at sign-up
  2. Approve the mandate with the UPI PIN
  3. Check history, the bank balance and the merchant app

Expected: Exactly one debit for the first period appears, linked to the mandate. The next debit date is the same in the UPI app and the merchant app.

UPA-04

Receive the pre-debit alert before a scheduled debit

P1functionalreal phone
  1. Use a test mandate with a debit due soon in the test environment
  2. Leave the UPI app in the background and lock the phone
  3. When the alert arrives, tap it

Expected: The alert names the merchant, the amount and the debit date in IST. Tapping it opens that mandate, where pause and revoke are available.

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

UPA-05

Take the recurring debit once on the scheduled date

P1functional
  1. Let a test mandate reach its scheduled debit date
  2. Open the mandate's history in the UPI app and check the bank balance
  3. Open the subscription in the merchant app

Expected: One debit of the notified amount appears on the scheduled date, marked as AutoPay with the mandate reference. The merchant app shows the subscription renewed for the next period.

UPA-06

Pause a mandate and confirm nothing is debited during the pause

P1functional
  1. Open an Active mandate and tap Pause
  2. Choose a pause end date after the next debit date and confirm
  3. Let the next debit date pass, then check history and the balance

Expected: The mandate shows Paused with the end date in the UPI app and the merchant app. No debit or pre-debit alert happens while it is paused.

UPA-07

Resume a paused mandate before the pause end date

P2functional
  1. Open a Paused mandate and tap Resume
  2. Confirm with the UPI PIN if asked
  3. Check the next debit date in the UPI app and merchant app

Expected: The mandate shows Active again and both apps show the same next debit date. No debit is taken at the moment of resuming unless the app said so before the user confirmed.

UPA-08

Revoke a mandate from the UPI app

P1functional
  1. Open an Active mandate in the UPI app and tap Revoke or Cancel
  2. Read the confirmation, confirm and enter the UPI PIN if asked
  3. Open the subscription in the merchant app
  4. Let the next debit date pass

Expected: The UPI app shows Revoked with the date, and the merchant app shows the subscription as cancelled or ending. No alert or debit follows on the next debit date.

UPA-09

Approve a merchant's request to change the amount or frequency

P2functional
  1. From the merchant's test dashboard, request a higher maximum amount on an Active mandate
  2. Open the change request in the UPI app
  3. Compare old and new values, approve and enter the UPI PIN

Expected: The request shows old and new values side by side. After approval the mandate shows the new values and a change entry in its history.

UPA-10

Manage a mandate from a different UPI app than the one that created it

P2functionalreal phone
  1. Create a mandate in UPI app A with test bank account X
  2. In UPI app B, linked to the same account, open the mandates section
  3. Open the mandate and try Pause

Expected: App B either lists the mandate with the same merchant, amount and status, or says it was set up in another app. It never shows a different status from app A.

Why a real phone: Each UPI app needs its own SIM-based device binding on a real phone.

Validation & negative5

UPA-11

Enter a wrong UPI PIN while approving a mandate

P2negative
  1. Open a pending mandate request in the UPI app and tap Approve
  2. Enter an incorrect UPI PIN
  3. Check the mandates list and the merchant's test dashboard

Expected: An incorrect PIN message appears and no mandate is created. The request stays pending so the user can try again, and the dashboard shows no Active mandate.

UPA-12

Decline a change request and keep the current terms

P2negative
  1. Raise a change request for a higher amount from the merchant's test dashboard
  2. Open it in the UPI app and tap Decline
  3. Open the mandate details

Expected: The mandate keeps its original amount and frequency and stays Active. The merchant dashboard shows the change as declined.

UPA-13

Recurring debit fails for insufficient balance

P2negative
  1. Bring the linked test account's balance below the mandate amount
  2. Let the scheduled debit run
  3. Open the mandate in the UPI app and the subscription in the merchant app

Expected: The UPI app shows the failed debit with the insufficient balance reason, and the mandate stays Active. The merchant app shows the payment as failed and what the user can do next.

UPA-14

Merchant tries to debit more than the approved maximum

P1negative
  1. On an up-to-maximum mandate, raise a debit above the maximum from the test dashboard
  2. Check the UPI app history and the bank balance

Expected: The debit is declined and no money moves. The UPI app shows no debit, or shows the attempt as declined.

UPA-15

Let a mandate request expire without approving it

P3negative
  1. Send a mandate request to the tester's UPI ID
  2. Wait past the expiry time shown on the request
  3. Try to approve it

Expected: The request shows Expired and cannot be approved. The merchant dashboard shows it as expired, not pending.

Edge cases9

UPA-16

Merchant retries after a failed debit and only one debit succeeds

P1edge
  1. Let a scheduled debit fail for low balance
  2. Top up the account
  3. Let the merchant's configured retry run, then check history and the balance

Expected: Exactly one successful debit appears for that cycle, next to the failed attempt. The merchant app shows the period as paid once.

UPA-17

Revoke in a second UPI app and check every place the mandate appears

P1edgereal phone
  1. Create a mandate in UPI app A
  2. Revoke it from UPI app B
  3. Refresh app A and the merchant app
  4. Let the next debit date pass

Expected: App A, app B and the merchant app all show Revoked. No alert or debit happens on the next date.

Why a real phone: Needs two real UPI apps bound to the SIM on the same phone.

UPA-18

Cancel the subscription inside the merchant app

P1edge
  1. In the merchant app, cancel an active subscription
  2. Open the mandates list in the UPI app
  3. Let the next debit date pass

Expected: The UPI app shows the mandate as revoked or ended by the merchant, with no next debit date. No alert or debit follows.

UPA-19

Monthly debit date falls on a day some months do not have

P2edge
  1. Create a monthly mandate starting on the 31st
  2. Check the next debit dates in the UPI app and merchant app
  3. Look at the dates for a 30-day month and February

Expected: Both apps show the same next debit date for every month, and the pre-debit alert uses that same date.

UPA-20

Mandate reaches its end date

P2edge
  1. Use a test mandate whose end date is today
  2. Let the end date pass
  3. Open the mandate in the UPI app and the merchant app

Expected: The mandate shows Completed or Expired in both apps, and no further alerts or debits occur.

UPA-21

Remove the bank account that funds an active mandate

P2edge
  1. Open linked bank accounts in the UPI app
  2. Start removing the account that funds an Active mandate

Expected: Before removal the app warns which mandates use this account and what will happen to them. After removal, the mandate list shows the result the warning described.

UPA-22

Reset the UPI PIN while a mandate is active

P3edge
  1. Reset the UPI PIN for the account funding an Active mandate
  2. Open the mandate details
  3. Let the next scheduled debit run

Expected: The mandate stays Active after the reset, and the next debit is taken as scheduled without asking for a fresh approval.

UPA-23

Tap Revoke twice quickly

P2edge
  1. Open an Active mandate
  2. Tap Revoke twice very quickly and confirm
  3. Open the mandate's history

Expected: Only one confirmation and one PIN screen appear. History shows a single revoke entry and no error.

UPA-24

Show an exact-amount mandate differently from an up-to-maximum one

P2edge
  1. Open the approval screens for a fixed-amount mandate and a variable-amount mandate
  2. Compare how each one states the amount

Expected: The fixed mandate shows the exact amount per debit and the variable one says up to the maximum. Both use lakh grouping, such as ₹1,00,000.

Interruptions & network5

UPA-25

Network drops right after the UPI PIN when creating a mandate

P1interruptionreal phone
  1. Start mandate setup from the merchant app and enter the UPI PIN
  2. Turn on airplane mode within a second of submitting
  3. Turn the network back on and reopen both apps
  4. Repeat, submitting just as you walk into a lift or basement

Expected: Both apps show the setup as pending, then settle on one final status. Retrying from the merchant app does not create a second Active mandate.

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

UPA-26

Merchant app is killed while the user approves in the UPI app

P1interruptionreal phone
  1. On a 3–4 GB RAM phone, start mandate setup in the merchant app
  2. Before entering the PIN, open a few heavy apps, then return to the UPI app
  3. Approve, then reopen the merchant app from the launcher

Expected: The merchant app checks the status on reopening and shows the subscription as Active. It does not ask the user to set up the mandate again.

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

UPA-27

Press back in the UPI app before approving

P2interruptionreal phone
  1. Start mandate setup from the merchant app
  2. In the UPI app, press back or swipe back before entering the PIN

Expected: The merchant app shows setup as not completed and offers a retry. No pending or Active mandate appears in the UPI app.

Why a real phone: The return path between two installed apps depends on real gesture navigation.

UPA-28

Pause a mandate on a weak network in a lift or metro

P2interruptionreal phone
  1. On mobile data, open an Active mandate and tap Pause
  2. Confirm while moving into a lift or an underground metro station
  3. Reopen the mandate once the signal returns

Expected: The mandate shows either Paused or Active with a clear message, never stuck on a processing state. The merchant app shows the same status.

Why a real phone: Needs a real SIM losing coverage on Jio, Airtel or Vi.

UPA-29

Phone is offline on the debit date

P3interruption
  1. Turn on airplane mode the day before a scheduled debit
  2. Turn the network back on after the debit date
  3. Open notifications and the mandate's history

Expected: History shows the debit on its scheduled date. Queued alerts arrive in order, and none says the debit is still upcoming after it has happened.

Device & OS4

UPA-30

Pre-debit alert on a phone with aggressive battery saving

P2compatibilityreal phone
  1. On a Xiaomi, Vivo or Oppo phone, leave battery settings at their defaults
  2. Do not open the UPI app for several days before a debit
  3. Wait for the pre-debit alert

Expected: The alert arrives before the debit through at least one channel the app uses, push or SMS.

Why a real phone: OEM battery savers on Xiaomi, Vivo and Oppo stop background apps receiving push.

UPA-31

Mandates are still listed after moving to a new phone

P2compatibilityreal phone
  1. Create a mandate on phone 1
  2. Register the same number in the same UPI app on phone 2
  3. Open the mandates section on phone 2

Expected: Phone 2 lists the mandate with the same status and dates, and pause and revoke work there.

Why a real phone: Re-registration needs SIM-based device binding with an SMS on a real phone.

UPA-32

Create a mandate from a merchant app on an iPhone

P2compatibilityreal phone
  1. On an iPhone, start mandate setup in a merchant app
  2. Pick a UPI app from the list the merchant app shows
  3. Approve, then return using the app switcher instead of the automatic return

Expected: The merchant app checks the status when it comes back to the foreground and shows the subscription as Active.

Why a real phone: Switching between real installed iOS apps cannot be reproduced in a simulator.

UPA-33

Notifications turned off on Android 13 or later

P2compatibility
  1. Deny the notification permission when the UPI app asks
  2. Open the AutoPay or mandates section

Expected: The app shows that pre-debit alerts are off and offers a link to turn notifications on. Mandate details still show the next debit date.

Security & privacy4

UPA-34

Mandate request from an unknown merchant says it allows repeated debits

P1security
  1. Send a mandate request from a merchant the tester has never used
  2. Open the request in the UPI app

Expected: Before the PIN step, the screen states that approving allows repeated debits. It shows the verified merchant name, maximum amount, frequency and end date.

UPA-35

Block screenshots on the mandate PIN screen

P1securityreal phone
  1. Open the UPI PIN screen while approving a mandate
  2. Try the phone's screenshot buttons and gesture
  3. Start a screen recording and type a PIN

Expected: Screenshots are blocked or come out black, and the recording shows the PIN area blank.

Why a real phone: OEM screenshot gestures and recorders on Android skins must respect the secure flag.

UPA-36

Ask for the app lock before showing or changing mandates

P2security
  1. Open the app, then send it to the background
  2. Wait longer than the configured inactivity time
  3. Reopen the app and go to mandates

Expected: The app asks for its lock before showing the mandate list or allowing pause or revoke.

UPA-37

State what happens to active mandates on logout or deregistration

P2security
  1. With an Active mandate, start logging out or deregistering UPI
  2. Read the confirmation screen
  3. Finish, then check the merchant app

Expected: The confirmation lists active mandates and says whether they continue or are revoked. The merchant app status afterwards matches what the screen said.

Accessibility & language3

UPA-38

Read mandate terms and statuses with TalkBack

P2accessibility
  1. Turn on TalkBack
  2. Move through a mandate approval screen and a mandate's details
  3. Pause the mandate and listen to the result

Expected: TalkBack reads the merchant, the amount in rupees, the frequency, the dates and the status. Pause and Revoke are announced with their purpose.

UPA-39

Use the mandate screens in Hindi

P2localization
  1. Switch the app language to Hindi
  2. Open an approval screen, a pre-debit alert and a paused mandate

Expected: Frequencies, statuses such as Paused and Revoked, and dates appear in Hindi with no English leftovers. Amounts keep lakh grouping, such as ₹1,00,000.

UPA-40

Approve a mandate with the largest font and display size

P2accessibility
  1. Set font size and display size to the maximum
  2. Open a mandate approval screen and a mandate's details

Expected: All terms stay visible without cut-off text, and the Approve button can be reached by scrolling.

In the field

Where UPI AutoPay mandate breaks on real phones

  • Pre-debit alerts never reach users on Xiaomi, Vivo, Oppo and Realme phones where the UPI app has not been opened for weeks, so the debit arrives without warning and turns into a dispute.
  • On 3–4 GB RAM phones the merchant app is killed during approval; the user sets up again and ends up with two Active mandates and two debits each cycle.
  • Users cancel inside the merchant app but the mandate stays Active in the UPI app, or revoke in the UPI app while the merchant app still shows Active and keeps trying to debit.
  • Monthly mandates set on the 29th to 31st, and dates converted around midnight IST, show different next debit dates in the merchant app, the UPI app and the alert.
  • A mandate set up in one UPI app appears with a different name or status in another app, or not at all, so users cannot find where to stop it.
  • Retries after a failed debit for low balance show up as several entries, and users who top up after cancelling are charged because the cancel never reached the mandate.

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 13 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 UPI AutoPay mandate

What should a tester check in a UPI AutoPay pre-debit alert?

Check that it arrives before the debit, names the merchant, states the amount and the debit date in IST, and opens the mandate where the user can pause or revoke. Run it on phones with default OEM battery settings and with the UPI app unused for days, because that is where alerts go missing.

How do you test a recurring UPI debit without waiting a full billing cycle?

Use test mandates in the test environment whose next debit is due today, or a short frequency if the setup supports it. Trigger the debit and the retry from the merchant's test dashboard, then check the alert, the debit, history and the balance in sequence. Keep notes of the mandate reference so each debit can be traced.

Why does a mandate show Active in the merchant app but Revoked in the UPI app?

The merchant app learns about pauses and revokes from status updates, and a missed or delayed update leaves it out of date. Test by pausing and revoking from each place in turn, including a second UPI app, and refreshing all of them. A mismatch can mean debit attempts on a revoked mandate or service cut off for a user who is still paying.

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.