UPI Payment Journey
UPI ID entry, validation, transaction status, confirmation, failure and retry — designed for clarity and calm under real payment anxiety.
Client
Financial Services Client (confidential)
Role
UX/UI Designer — payment states, validation, error and recovery design.
Platform
Mobile · Web · Voice + Visual UI
Confidentiality: Client identity and transaction data are confidential. Error copy below is UX copy exploration, not shipped copy.
01Overview
The UPI payment journey: entering a UPI ID, validation, amount confirmation, async transaction status, success — and honest, calm failure states with recovery. Designed for the anxiety of moving money.
02Context
Collections and bill payments moved to UPI because it is instant and free. But UPI is asynchronous: confirmation can take seconds or minutes, and failures have many quiet flavours. Users needed to know exactly what happened to their money at every moment.
03User Journey
Payment journey
04UX Decisions
01Validate before money talk
The UPI ID is checked the moment it is entered, so users never start a payment against an ID that cannot receive it.
02The review card
Payee, amount and reference are confirmed together on one screen. Nothing about money is decided in two taps.
03Pending is a first-class state
UPI confirmations lag. Instead of a silent spinner, the pending screen carries a timer and reassurance about what is happening.
04Never guess on failure
If the provider does not respond, the flow polls before reporting failure — a timeout is not assumed to be a failure.
05Every failure ends in recovery
Retry is the default action, changing method is one step away, and every screen answers the real question: where is my money?
05Interaction Design
States, transitions and behaviour — not just the happy path.
Invalid UPI ID
Inline, immediate, and actionable — with the field refocused for correction.
Unregistered UPI ID
A distinct state from invalid: the ID exists but cannot receive payments.
Transaction pending
Timer-based pending state with periodic status checks, never a frozen spinner.
Success
Reference number, amount, payee and next steps — a receipt people can read aloud.
Failure
Reason in plain language, money state stated explicitly, retry or alternate path offered.
Double-charge prevention
If a retry happens after an uncertain outcome, the UI states clearly that the previous attempt may still complete.
06Edge Cases
Good UX is what happens when things go wrong. Each case: the problem, the user-facing message and the recovery action.
UPI ID doesn't exist
Edge caseThe entered ID is not registered anywhere.
“We couldn't find that UPI ID.”
Recovery: Correct and retry — before any amount is shown.
Connectivity failure
Edge caseThe network drops mid-payment.
“We're having connection trouble. Your payment hasn't gone through.”
Recovery: Reconnect and check status — never assume a failure debited money.
Payment failed after debit
Edge caseThe provider reports failure after the money was debited.
“Your bank debited the amount, but we didn't get a confirmation.”
Recovery: Auto-refund path with reference number and support contact — the worst state handled first-class.
Session expired
Edge caseThe payment screen is stale.
“This payment session expired. Nothing was charged.”
Recovery: Restart from amount review, not from the beginning of the journey.
Retry limit
Edge caseRepeated failures on the same ID.
“This ID keeps failing. Want to try another way?”
Recovery: Switch to a different payment method or hand off with context.
07Final Experience
UPI ID entry + validation
UPI ID entry + validation
One focused field, inline validation before any amount is shown.
Schematic placeholder — add an approved screenshot via data/case-studies.ts
Review card
Review card
Payee, amount and reference confirmed on one screen.
Schematic placeholder — add an approved screenshot via data/case-studies.ts
Pending state
Pending state
A timer, not a silent spinner — the user always knows the payment is being confirmed.
Schematic placeholder — add an approved screenshot via data/case-studies.ts
Success receipt
Success receipt
Reference number in monospace, copyable, with next steps.
Schematic placeholder — add an approved screenshot via data/case-studies.ts
08Learnings
- Money UX is state design: every screen answers 'what happened to my money?' in the first line.
- Pending is where users panic. Design it like a product, not a spinner.
- The double-charge fear is real — the interface must never create ambiguity about whether a retry is safe.
Next case study
Omni-Channel Contact Center Dashboard
← /work · case study · upi-payment