UPI / Real-time Payments — Notes
Functional
- VPA-based addressing (
name@bank).
- Push payment & collect request.
- QR codes, intent links, deep links.
- 24×7 instant settlement.
Non-functional
- Sub-5s end-to-end.
- Strong audit (NPCI mandates).
- 99.99%+ per PSP.
Capacity (India, 2024)
- 10B+ transactions/month.
- Switch peaks of thousands/s.
Schema (PSP side)
users(id, primary_vpa, devices[])
bank_links(user_id, account, ifsc)
transactions(id, switch_ref, payer_vpa, payee_vpa, amount, status, leg_states[])
disputes(id, txn_id, reason, status)
Trade-offs
- Switch-mediated = centralized scaling pressure; NPCI invests heavily.
- MPIN at bank only = strong security but extra hop.
- No card networks = lower fees; different settlement model.
Refs
- NPCI UPI specs (public).
- "UPI: A Real-Time Payment System" academic papers.
- PhonePe / GPay engineering posts on scale.
- ByteByteGo "Design a real-time payment system".