How to Create a Payment QR Code (UPI, PayPal, and Bitcoin)
"Payment QR code" isn't a single, universal format - UPI, PayPal, and cryptocurrency wallets each encode payment details in genuinely different ways, using entirely separate technical standards. Understanding exactly how each one works helps you pick the right generator, troubleshoot problems confidently, and avoid costly mistakes with a technology where errors can mean real, often irreversible, financial consequences.
UPI payment codes: India's structured link format
India's Unified Payments Interface encodes a structured link, always beginning with upi://pay, that includes your UPI ID (technically called a VPA, or Virtual Payment Address), your payee name, and optionally a fixed amount, currency code, and a short note or transaction reference. Any UPI-compatible app - Google Pay, PhonePe, Paytm, and virtually every major Indian banking app - reads this format identically and pre-fills a payment ready for the customer to review and confirm with a PIN. Our UPI QR code generator builds this exact string correctly, including proper encoding of any special characters that might appear in a payee name.
PayPal payment codes: a page link, not a payment protocol
PayPal doesn't have a dedicated QR-native payment protocol in the way UPI does - instead, a PayPal payment QR code simply encodes a standard PayPal.Me link (your personalized, human-readable payment page URL), optionally with a specific amount appended directly to that link. Scanning it opens that page in the recipient's regular mobile browser, where they complete the actual transaction entirely through PayPal's own familiar, secured interface rather than a proprietary in-app flow.
Cryptocurrency payment codes: BIP21 and EIP-681 standards
Bitcoin and Ethereum each use their own dedicated URI schemes - bitcoin: and ethereum: respectively - that encode your wallet address along with optional amount and label parameters, following published technical standards known as BIP21 (Bitcoin) and EIP-681 (Ethereum). Most modern wallet apps recognize these schemes natively and automatically pre-fill a pending transaction the moment the code is scanned, requiring only final confirmation from the sender.
A side-by-side comparison
| Format | Underlying Standard | Compatible Apps |
|---|---|---|
| UPI | NPCI UPI deep link | Google Pay, PhonePe, Paytm, most Indian banking apps |
| PayPal | Standard web URL (PayPal.Me) | Any mobile browser, then PayPal's own interface |
| Bitcoin | BIP21 URI scheme | Most Bitcoin wallet apps |
| Ethereum | EIP-681 URI scheme | Most Ethereum-compatible wallet apps |
Always verify before publishing, without exception
Because every one of these formats involves real money, and cryptocurrency transactions in particular are typically irreversible once confirmed, always personally scan and verify a test version of any payment code yourself before printing or publishing it publicly. Confirm the exact address, amount, and payee name character-by-character - a single-character typo in a cryptocurrency wallet address, especially, cannot be corrected or reversed once funds have actually been sent to the wrong destination.
Static is the right choice for almost all payment codes
Unlike marketing or campaign codes, payment QR codes rarely benefit from being dynamic, since the underlying account details - your UPI VPA, PayPal username, or wallet address - don't typically change on any regular basis. Simply regenerate a fresh static code on the rare occasion any of those details do change, rather than adding an unnecessary dependency on a hosted redirect service for something that's fundamentally a fixed, permanent identifier.
Displaying payment codes safely in public
If displaying a payment QR code at a physical counter or storefront, consider laminating or otherwise protecting it from tampering, and periodically check that the displayed code hasn't been covered by a fraudulent sticker - a known real-world attack vector covered in detail in our QR code security guide.
Recording transactions and reconciliation
Because a payment QR code itself doesn't track anything on your end - it's simply a static encoding of your account details - you'll still rely entirely on your payment provider's own app or dashboard (UPI app, PayPal account, wallet software) for transaction history and reconciliation. If you're accepting payments from a fixed code across many customers over time, make sure whoever handles your bookkeeping knows to cross-reference incoming payments against orders or invoices manually, since the QR code provides no built-in link between a specific scan and a specific transaction.
Combining a payment code with an invoice or order number
For UPI codes specifically, the optional note/reference field can be pre-filled with a specific invoice or order number, making it considerably easier to match an incoming payment to the correct transaction afterward - a small detail that saves real reconciliation effort for businesses processing many payments through the same displayed code.
What to do if you switch payment providers or accounts
If you ever change your UPI VPA, PayPal username, or wallet address - switching banks, closing an old account, moving to a new exchange - any previously printed payment codes referencing the old details will silently continue directing payments to an account you no longer control or check. Make it a habit to audit and replace displayed payment codes whenever you make this kind of change, rather than assuming customers will notice and ask separately.
Troubleshooting a payment QR code that isn't working
- The scanning app doesn't recognize the code at all. This usually means the wrong wallet or app is being used for the format - a generic camera app can display a UPI or crypto link as plain text without offering to open a payment app, since not every phone has a UPI or wallet app installed to register as the default handler. Confirm the customer has a compatible app before assuming the code itself is broken.
- The amount or payee name looks wrong once scanned. Re-check the original data entered into the generator character-by-character - a typo in a VPA, PayPal username, or wallet address is the single most common real-world cause, and for cryptocurrency in particular, it can be an expensive, irreversible mistake.
- The code scans but nothing happens. Some banking and wallet apps require the scan to originate from within their own in-app scanner rather than the phone's general camera app - if a generic camera scan does nothing, ask the customer to try scanning from directly within their payment app instead.
- A previously working code stopped working. Confirm the underlying account, VPA, or wallet address hasn't changed or been closed since the code was generated - a static payment code has no way to signal this on its own.
QR payments compared to tap-to-pay and card terminals
It's worth situating QR payments against the alternative most customers already carry: contactless card or phone tap-to-pay, built on NFC. Tap-to-pay is generally faster for the person paying - no app to open, no camera to aim - and works with hardware most banks and phones already support. Its trade-off is the opposite of a QR code's: a merchant needs an actual NFC-capable payment terminal, which costs real money to buy, maintain, and process transactions through, along with per-transaction processing fees. A payment QR code, by contrast, costs a merchant essentially nothing beyond a printed sign or a static display, and works for any payment app the customer already has installed, but asks slightly more of the customer in return - opening a camera or wallet app rather than simply tapping a card. For a small business, informal seller, or peer-to-peer transaction, the near-zero setup cost of a QR code usually wins; for high-volume retail where speed at the counter matters most, a dedicated card terminal often remains the better fit.
Conclusion
Payment QR codes work well precisely because they piggyback on standards - UPI, BIP21, EIP-681, or a plain PayPal.Me link - that were designed and published independently of any specific generator tool. That also means the responsibility for accuracy sits entirely with whoever enters the payment details: get the VPA, address, or username exactly right, verify it with a real test scan, and treat any payment code with the same care you'd give to reading out your account number over the phone. Done correctly, it remains one of the fastest, lowest-cost ways to accept a payment without hardware.
Frequently asked questions
Can one QR code support multiple payment methods at once? No - each format uses an incompatible URI scheme, so you'll need separate codes for UPI, PayPal, and each cryptocurrency you want to accept, though you can display several side by side.
Do payment QR codes expire? Static payment codes don't expire on their own, but remain accurate only as long as the underlying account details (VPA, username, address) stay unchanged.
Is it safe to generate a payment QR code with a free online tool? Yes, as long as the tool encodes the standard, publicly documented format correctly and doesn't route the payment through any intermediary of its own - our generators encode your details directly with no middleman involved.