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.