Skip to content

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".