← All teardowns
Fintech · UPITeardown / 01 · 8 min read

PhonePe's ₹1 Lakh UPI Wall.

UPI moved India to digital payments. But the regulatory ₹1,00,000 / 24-hour cap is a silent ceiling — and PhonePe lets users hit it after they type their PIN. Here's what's breaking, and the two product moves I'd ship to fix it.

50%+
UPI market share
₹1L
Daily NPCI cap
20/day
Txn count cap
₹5K
New-user cap
TL;DR

PhonePe's UPI limit failure is reactive (post-PIN), opaque (vague "try later"), and a dead-end (no fallback). Two product moves — a Live UPI Limit Tracker and an inline warning with one-tap IMPS fallback — would prevent the failure entirely, reduce support load, and keep high-value users inside the app.

§ 01The rules nobody reads.

The ₹1 lakh cap isn't one rule — it's four, layered on top of each other. Users feel the failure; they almost never know which layer broke.

LayerRuleLimit
NPCIStandard daily cap (all UPI apps combined)₹1,00,000
NPCINew user / PIN reset (first 24h)₹5,000
NPCIP2P transaction count20 / day
BankPer-bank daily cap (varies by bank)₹25K – ₹1L
AppPhonePe internal risk / fraud blocksDynamic

The midnight myth. Most users assume the limit resets at 12:00 AM. It doesn't. NPCI uses a rolling 24-hour window — a ₹70,000 transfer at 3 PM only frees up that ₹70,000 at 3 PM the next day. This single mismatch drives a huge share of "why is it still blocked?" support tickets.

§ 02Who's actually hitting this wall.

Persona A
The High-Value Payer
Renters, medical bills, school fees.
Tries to pay ₹60K hospital bill at 9 PM. Fails. No clear path forward.
Persona B
The Small Merchant
Freelancers, vendors, kirana owners.
Hits 20-txn count cap mid-afternoon. Daily ops stall.
Persona C
The Social Splitter
Friends splitting dinners, trips, rent.
Blindsided when a ₹150 transfer fails — invisible count limit.

§ 03Three UX failures, in order.

/ 01

The Post-PIN Defeat

The app lets you select recipient → enter amount → pick bank → type your 4-6 digit UPI PIN → wait 5-10 seconds, and only THEN shows 'Payment Failed: Limit Exceeded.' This violates the most basic usability heuristic: error prevention. You burned cognitive load and exposed your PIN for nothing.

/ 02

The Vague 'Why'

The error reads: "Payment failed because you have exceeded your daily limit. Please try again later or contact your bank." Which limit — bank or NPCI? How much over? When exactly is 'later' — midnight or rolling 24h? Three unanswered questions, zero way to self-serve.

/ 03

The Dead-End

On failure, the user is dumped back to home or transaction history. PhonePe doesn't offer IMPS/NEFT bank transfer, a wallet fallback, or a 'split this payment' option. So the user opens their bank app or switches to a competitor — exactly the opposite of what PhonePe wants.

§ 04What I'd ship.

Solution A

UPI Limit Tracker Dashboard

A dedicated surface inside Profile → Payment Settings showing live limit utilization across every linked bank.

  • Visual progress bar — used vs. remaining, per bank
  • Precise countdown showing exactly when limit replenishes (rolling 24h aware)
  • Transaction count meter (X of 20 used today)
  • Tap-through to recent transactions that consumed the limit
Solution B

Inline Warning + One-Tap IMPS Fallback

Calculate the user's remaining limit before the PIN screen. Warn inline, and offer alternatives without forcing a restart.

  • Proactive warn: "You have ₹15,000 left today. This payment is ₹35,000."
  • Split & queue: Pay the available amount now, auto-queue the rest for when the limit resets.
  • One-tap IMPS: Auto-pull receiver's account/IFSC (when on file) and route as IMPS/NEFT — bypassing the UPI cap entirely.

§ 05The new flow.

Friction collapses from a post-PIN failure into a pre-PIN decision.

Enter amount  →  [LIMIT CHECK]  →  Within limit?  ──Yes──►  PIN  →  ✓ Success
                       │
                       └─ Over limit ──►  Inline warning
                                          ├─ Split & queue
                                          ├─ Switch to IMPS  ──►  PIN  →  ✓ Success
                                          └─ Cancel

§ 06How we'd know it worked.

KPI
Transaction Success Rate
% of >₹50K transfers completed (vs. failed at PIN)
KPI
Support ticket volume
Drop in tickets tagged 'limit exceeded' / 'payment stuck'
KPI
IMPS adoption
Volume & value of IMPS transfers triggered from fallback
KPI
Power-user retention
Reduction in users switching to bank apps for >₹1L

§ 07Implementation: a two-phase rollout.

NPCI has a blind spot — PhonePe can't see transfers a user made on GPay, Paytm, or net banking. So accuracy has to be progressive: ship something useful on day one, then get to the truth with user consent.

Phase 1 — Local ledger (zero permissions)

Estimated, but instant

PhonePe writes every in-app transfer to a local SQLite ledger (phonepe_upi_ledger: txn_id, timestamp, amount, bank_account_id). The dashboard shows remaining limit tagged "Estimated", with a clear footnote: "Tracks PhonePe transfers only. Enable SMS sync to include GPay, Paytm, and bank transfers."

Phase 2 — SMS listener (opt-in)

Accurate, on-device

With user consent, a background listener parses incoming SMS from verified bank short-codes (e.g. AD-HDFCBK, VM-ICICIB). All parsing happens on-device — raw SMS never leaves the phone. Only the parsed debit total updates the local ledger.

  • Play Store justification: Financial Services exception — transaction tracking & fraud mitigation.
  • Dual-SIM: Match on last-4 of bank account (in SMS body), not active SIM.
  • Refunds: Scan for "credited" / "reversed" to restore limit balance.
  • Delays: Show "Last synced: 2h ago · Tap to refresh" badge when bank SMS is late.

§ 08Interactive prototype.

A live walkthrough of the proposed flow. Tap "Proceed to Pay" to trigger the limit failure, switch to the IMPS fallback, and complete a real authorisation — no page refreshes, no placeholders.

Interactive Prototype · PhonePe UPI Limit Overhaul
9:41100%
Send Money
RS
Rahul Sharma
+91 98••• ••420 · Verified
Amount
₹
Daily UPI cap: ₹1,00,000 · Used: ₹40,000
HDFC
HDFC Bank
•••• 3421 · Savings
Two solutions, one wall

Prevent the failure. Recover the user.

view: phone
step: entry
fallback: none
Try editing the amount — go below ₹60K for a direct UPI success, or above to trigger the inline warning flow.

§ 09Why this matters.

High-value transactions are where digital payment loyalty is won or lost. If PhonePe keeps shipping post-PIN failures, every blocked rent payment is a free ad for the user's bank app. A 200-line UI surface and one IMPS fallback — built right — turns the single most frustrating moment in the product into a moment of competence.

That's the move I'd push for in week one as a PM on this team.

Written by
Deepthi Brahmandlapally
PM aspirant · 5 yrs SaaS · 4 yrs operator
← More teardowns