Two Types of QR Payment
Merchant-presented QR: The merchant displays a QR code. The customer opens their payment app and scans it. The QR encodes the merchant's payment details and amount. Used by: UPI (India), WeChat Pay (China), Alipay (China), PayPal, Square.
Customer-presented QR: The customer displays a QR from their payment app. The merchant's scanner reads it. Used by: supermarket app loyalty-payment combos, some transit apps, and Starbucks' payment system.
UPI (India) — The World's Largest QR Payment System
Unified Payments Interface processes over 14 billion transactions per month in India. Every UPI QR encodes a payment URI:
```
upi://pay?pa=merchant@upi&pn=MerchantName&am=500&cu=INR
```
- pa: Payment address (VPA — Virtual Payment Address)
- pn: Payee name
- am: Amount (optional — can be left blank for customer to enter)
- cu: Currency (INR)
Any UPI-certified app (Google Pay, PhonePe, Paytm, BHIM) scans the QR and initiates the transfer in under 5 seconds. Settlement is immediate.
WeChat Pay and Alipay (China)
Both use merchant-presented QR codes. The QR encodes a merchant ID and the payment platform handles authentication, amount entry, and settlement. Customers open WeChat or Alipay, tap Scan, and point at the QR. The total is deducted from the linked bank account or e-wallet balance.
For international acceptance: Alipay+ and WeChat Pay's global programs allow overseas merchants to accept these QRs from Chinese tourists without a Chinese bank account.
PayPal QR Code (UK and Global)
PayPal generates a merchant QR in the PayPal Business app. Customers scan with the PayPal app to pay from their PayPal balance or linked card. Fees apply (standard PayPal transaction rates). Useful for market stalls, pop-ups, and small retailers without card terminals.
UK-Specific Options
-
Monzo: Personal Monzo payment QR in the app — useful for personal money requests
-
Revolut: QR payment for Revolut Business accounts in the app
-
Open Banking PayByBank: Several UK banks and fintechs offer QR-initiated Open Banking payments — zero interchange fee, instant settlement via Faster Payments
-
SumUp / Square: POS systems with QR payment support for small businesses
Security Considerations
Always verify you are scanning a genuine merchant QR — not a sticker placed over the real code by a fraudster. In merchant-presented QR contexts, check the merchant name displayed by the payment app before confirming payment.
Putting this into practice
Start with the smallest real test you can run. Generate the code, print it at the exact size you plan to use, and scan it with two different phones in the lighting where it will live. Check that the destination page loads quickly on a mobile connection and that the call to action next to the code tells people what they will get. If anything feels slow or unclear, fix it before you print a full batch, because reprints cost more than a short test. Keep a note of the size, material, and placement that worked so the next batch starts from a proven setup.
Common mistakes to avoid
The most common mistakes are easy to avoid once you know them. Long payloads make modules tiny, low contrast makes edges hard to read, and text placed too close to the border eats the quiet zone the scanner needs. Covering a corner finder pattern with a logo or a sticker breaks detection entirely, and a code placed behind glare or on a curved surface fails even when the print is perfect. Review each of these points on a proof copy, and treat any failure as a reason to adjust the design rather than a reason to blame the scanner.
Quick checklist
- Keep the payload as short as practical so modules stay large.
- Keep dark modules on a light background with strong contrast.
- Leave a clear quiet zone on all four sides of the symbol.
- Test the printed code at the real viewing distance and lighting.
- Confirm the destination page loads fast on a phone.
- Recheck the code after any change to the link, design, or placement.
Related tools and guides
- Use the [QR size calculator](/qr-size-calculator) to match the printed size to the expected scan distance before you commit to a print run.
- The [error correction simulator](/error-correction-simulator) shows how damage tolerance changes the density of the symbol at each level.
- For local payments, the [Pakistan payment QR](/pakistan-payment-qr) page explains the regional flow and what customers see.
- The [regional payment QR](/regional-payment-qr) guide covers payment codes used across different markets.
- The [UPI QR code generator](/upi-qr-code-generator) builds payment codes for UPI-based transfers.
- Test every code with the [QR scanner](/qr-scanner) on more than one phone before you publish or print it.