Skip to content
QA Knowledge Hub

Test cases for UPI payment

Updated 2026-11-13 · 6 min read

Thirty cases for merchant UPI Intent and dynamic QR flows. Distinguishes app handoff from confirmed payment and identifies the limits of simulator evidence.

How to answer in an interview

Ask whether the merchant uses app Intent, QR, or another explicitly supported flow, and which devices are eligible. Describe a payment that completes while the customer never returns to the merchant. The key assertion is agreement between the provider-confirmed transaction and the merchant order, not whether an app opened.

Scope and test data

Assume a ₹499 INR test order, mobile Intent and desktop dynamic QR with a configured validity period. For the expiry fixtures, the provider accepts initiation strictly before expiry and refuses initiation at or after expiry; adapt this boundary to the selected provider contract. Use provider sandbox fixtures or an approved simulator; never scan a production QR or enter a real PIN for this suite. Razorpay’s current UPI documentation directs integrations toward Intent or QR and describes restrictions and exemptions for Collect. Confirm merchant eligibility instead of assuming a manual UPI-ID field exists. These cases exclude mandates, refunds to arbitrary recipients and UPI app enrolment. Device handoff and bank outcomes need separate authorised integration testing; a simulator cannot prove them.

The 30 cases below are a test design, not an execution report. Replace the example rules with approved requirements before recording pass or fail. Performance budgets and supported device versions must be agreed before execution.

Entry and app handoff

IDCategoryTest caseExpected result
U01FunctionalChoose UPI for the ₹499 order on an eligible mobile deviceMerchant creates a linked attempt for ₹499 INR
U02FunctionalOpen the chosen supported UPI app through IntentApp receives the configured test payee, amount and transaction reference
U03FunctionalChoose between two supported installed test appsSelected app opens and attempt remains tied to the same order
U04NegativeLaunch Intent when no compatible app is installedMerchant shows a supported fallback instead of a success message
U05NegativeCancel the app chooserOrder remains unpaid and user returns to a usable checkout
U06NegativeReturn from the app without authorisingMerchant checks status and does not infer success from the return alone
U07FunctionalSimulate approval and a verified successful provider resultOrder becomes paid exactly once
U08UICompare merchant review with the app test confirmation screenAmount and configured merchant identity agree before approval

QR lifecycle

IDCategoryTest caseExpected result
U09FunctionalDisplay the dynamic QR for the test orderQR belongs to the active attempt and the page shows ₹499 and validity information
U10FunctionalScan a valid QR in an approved test environmentPayment references the intended order and test payee
U11BoundaryScan immediately before configured QR expiryInitiation is accepted; merchant still waits for verified payment success
U12BoundaryScan at or after configured QR expiryExpired request is not presented as a fresh valid payment; UI offers a new attempt
U13FunctionalRefresh QR after expiryNew reference is tracked and old reference remains available for reconciliation
U14NegativeScan a QR for another test orderOnly the referenced order can become paid
U15UIView QR at supported zoom and phone widthsEntire QR and surrounding quiet area remain visible without clipping
U16SecurityAlter QR amount or recipient in a controlled test fixtureMismatched payment cannot satisfy the merchant order

Asynchronous outcomes and recovery

IDCategoryTest caseExpected result
U17NegativeSimulate insufficient funds or provider-declared failureFailure is shown without fulfilment and the attempt is retained for audit
U18NegativeSimulate pending status after returning from the appMerchant shows pending and offers status recovery without claiming failure
U19FunctionalDeliver success after a period of pendingPending changes to paid once and duplicate submission is prevented
U20NegativeDrop network access after approval in the simulatorMerchant restores authoritative status after reconnection
U21FunctionalClose and reopen checkout while payment is pendingExisting attempt is recovered rather than automatically starting another charge
U22FunctionalDeliver duplicate successful notificationsOne paid transition and one fulfilment action occur
U23FunctionalDeliver an older pending notification after successPaid state is retained
U24NegativeSimulate debit reported by customer but no provider confirmationOrder stays under reconciliation with a reference; no invented success or refund promise
U25NegativeReceive success for an older attempt after a retry also succeedsDuplicate payment is flagged for the approved refund workflow; order is fulfilled once
U26SecuritySend a fake app-return success parameterServer ignores the unverified success claim

Privacy, speed and platform coverage

IDCategoryTest caseExpected result
U27SecurityInspect merchant forms, telemetry and support logsNo UPI PIN is requested or recorded in this external-app integration
U28UIUse keyboard or screen reader to choose UPI and check pending statusMethod label, status and recovery control are accessible
U29PerformanceMeasure attempt creation and status refresh at agreed peak loadMerchant operations meet their budgets; bank delay is measured separately
U30CompatibilityRepeat Intent and QR flows on each supported OS, browser and app combinationSupported flows complete; unsupported combinations show an explicit fallback

Evidence and prioritisation

Prioritise U06, U16, U18, U22 and U25. Capture order/attempt references, selected app and status timestamps; do not collect PINs or unrelated account data. A common mistake is treating a screenshot of a debit as enough to fulfil an order. Ask how reconciliation finds late success and who owns a duplicate-payment refund. Use the gateway cases for signature validation and refund accounting.

Downloads

Quick answers

Should I always test entering a UPI ID?

Only if that flow is supported for the merchant and platform. This suite focuses on Intent and QR.

Can a sandbox prove a real bank transfer?

No. It can exercise merchant state handling; real device and provider certification testing is a separate activity.

Sources

Want a project you can show in interviews?

The portfolio project kit walks you through testing a deliberately buggy app with Selenium or Playwright and API tests, then explaining it. The app itself is free.