Skip to content

UPI QR Format

This page explains the structure behind the generated QR code and intent link.

The app uses the following fields when generating a QR code:

  • payeeVPA — the UPI ID of the receiver (e.g. success@upi).
  • payeeName — the registered name of the receiver.
  • amount — payment amount (optional, e.g. 150.00).
  • currency — defaults to INR.
  • transactionNote — optional note shown in the payment app.
  • transactionId — a unique ID that must be generated by the implementing app.

The generated intent link follows the UPI deep-link spec:

upi://pay?pa=payeeVPA&pn=payeeName&am=amount&cu=currency&tn=transactionNote
Parameter Description Required
pa Payee VPA (UPI ID) ✅
pn Payee name ✅
am Amount optional
cu Currency (default INR) optional
tn Transaction note optional
tr Transaction reference ID optional

The QR encodes a upi://pay URI. When scanned by a UPI app, the app parses the URI, pre-fills the payment fields, and prompts the user to confirm.