QR code payments exceeded $3 trillion globally in 2024, according to Juniper Research. In China, they handle over 90% of mobile retail transactions. In cryptocurrency, they are the standard method for sharing wallet addresses. This guide covers how payment QR codes work, the technical standards behind them, and how to implement them.
QR Payment Statistics (2024-2025)
$3+ trillion
Global QR payment volume in 2024 (Juniper Research)
$5.4 trillion
Projected by 2028 (Juniper Research)
10+ billion/month
UPI QR transactions in India (NPCI, 2024)
90%+
Mobile payments in China via QR (Statista)
2.2 billion
Global QR code users (Statista, 2025)
26-62 characters
Typical crypto address length
The Rise of QR Payments
QR codes became a payment method almost by accident. In 2011, Alipay introduced QR code payments as a way for small vendors to accept mobile payments without expensive card terminals. WeChat Pay followed in 2013. By 2020, QR payments had become the dominant payment method in China, processing trillions of dollars annually.
The COVID-19 pandemic accelerated adoption globally. Contactless payments became a health consideration, and QR codes offered a touch-free alternative. Today, QR payments are common across Asia, growing rapidly in Europe and Latin America, and gaining traction in North America.
How Payment QR Codes Work
There are two main approaches to QR payments:
Merchant-Presented
The merchant displays a QR code. The customer scans it with their payment app, enters the amount, and confirms. Common in shops and restaurants.
Consumer-Presented
The customer displays a QR code from their app. The merchant scans it with their terminal. Common at supermarkets and larger retailers.
Both methods work, but merchant-presented codes are cheaper to implement. A printed QR code costs nothing. That is why they dominate in markets where QR payments are most popular.
Major Payment Platforms Using QR Codes
Alipay and WeChat Pay
These two platforms process the majority of retail transactions in China. Together, they handle over 90% of mobile payments in the country. Both use QR codes as the primary interface, whether for buying street food or paying rent.
PayPal and Venmo
PayPal introduced QR code payments in 2020, allowing users to pay at checkout by scanning a merchant's QR code. Venmo (owned by PayPal) uses QR codes for peer-to-peer transfers. Scan a friend's Venmo QR code to send them money without typing their username.
Square and Stripe
Square offers QR code payments through its point-of-sale system. Merchants can display a QR code that links directly to a checkout page. Stripe provides similar functionality for online businesses, generating QR codes that link to hosted payment pages.
Banking Apps
Most major banks now support QR payments through their mobile apps. In Europe, SEPA Instant Credit Transfer can be initiated via QR code. In India, the Unified Payments Interface (UPI) processes over 10 billion QR transactions monthly.
QR Codes in Cryptocurrency
Cryptocurrency addresses are long, complex strings that are impractical to type manually. A Bitcoin address looks like this: bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh. One typo sends funds to the wrong address, often irrecoverably.
QR codes solve this problem elegantly. Every crypto wallet can generate a QR code containing its address. Scanning eliminates typing errors entirely.
Bitcoin QR Codes
Bitcoin QR codes typically use the BIP-21 URI scheme:
bitcoin:bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh?amount=0.001 This format can include optional parameters like the amount, a label, and a message. When scanned, the wallet app automatically fills in the recipient address and amount.
Ethereum and ERC-20 Tokens
Ethereum uses EIP-681 for QR codes:
ethereum:0x89205A3A3b2A69De6Dbf7f01ED13B2108B2c43e7?value=1e18 This can also encode smart contract calls, making it possible to create QR codes that trigger token transfers or interact with DeFi protocols.
Lightning Network
Bitcoin's Lightning Network uses QR codes for invoices. A Lightning invoice QR code contains all the information needed to complete a payment: the amount, destination, expiry time, and a description. Lightning invoices use the BOLT-11 specification and begin with lnbc (mainnet) or lntb (testnet).
Crypto QR Code Types
- Address only - Simple wallet address for receiving
- Payment request - Address plus amount and optional memo
- Lightning invoice - Time-limited payment request for instant transfers
- Smart contract call - Encoded function call with parameters
Cryptocurrency URI Format Reference
This section provides copy-paste URI formats for the major cryptocurrencies. These are the standards wallets use when generating and scanning QR codes.
| Currency | Standard | URI Format |
|---|---|---|
| Bitcoin | BIP-21 | bitcoin:<address>?amount=<BTC>&label=<name>&message=<text> |
| Ethereum | EIP-681 | ethereum:<address>@<chainId>?value=<wei> |
| Lightning | BOLT-11 | lightning:<invoice> or lnbc... |
| Litecoin | BIP-21 | litecoin:<address>?amount=<LTC> |
| Bitcoin Cash | BIP-21 | bitcoincash:<address>?amount=<BCH> |
| Monero | Custom | monero:<address>?tx_amount=<XMR> |
BIP-21 Parameters (Bitcoin)
The BIP-21 standard defines optional parameters that can be appended to a Bitcoin URI:
amount- Payment amount in BTC (e.g.,amount=0.001)label- Recipient label for the address book (e.g.,label=Donation)message- Message describing the transaction (e.g.,message=Thanks)
Full example:
bitcoin:bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh?amount=0.001&label=Coffee%20Shop&message=Order%20%23123 EIP-681 Parameters (Ethereum)
The EIP-681 standard supports these parameters:
value- Amount in wei (1 ETH = 10^18 wei)gas- Gas limit for the transactionchainId- Network ID (1 = mainnet, 137 = Polygon, 42161 = Arbitrum)
Send 0.1 ETH example:
ethereum:0x89205A3A3b2A69De6Dbf7f01ED13B2108B2c43e7?value=100000000000000000 ERC-20 token transfer (calls the transfer function):
ethereum:0xTokenAddress/transfer?address=0xRecipient&uint256=1000000 Security Considerations
QR payments introduce specific security risks that both merchants and consumers should understand.
Common Attacks
- QR code replacement - Attackers place their own QR code over a legitimate merchant's code. Payments go to the attacker instead. Always verify the merchant name in your payment app before confirming.
- Phishing codes - A QR code leads to a fake payment page that captures credentials. Only use official payment apps, never web browsers for QR payments.
- Crypto address swapping - Malware on a device can replace a copied crypto address with an attacker's address. Always verify the first and last few characters of an address before sending.
Best Practices
- Verify before confirming - Check the recipient name and amount before approving any payment
- Use official apps - Only scan payment QR codes with the official app from your bank or payment provider
- Check for tampering - Look for stickers placed over original QR codes, especially at unattended payment points
- Verify crypto addresses - Always compare at least the first 6 and last 6 characters of a crypto address
- Use fresh addresses - Many crypto wallets generate new addresses for each transaction, improving privacy
Static vs Dynamic for Payments
Payment QR codes can be either static or dynamic, and the choice matters:
| Use Case | Static | Dynamic |
|---|---|---|
| Crypto wallet address | Not needed | |
| Lightning invoice | Single use | |
| Fixed donation amount | Optional | |
| Retail point of sale | Basic only | |
| Transaction tracking | Via blockchain | |
| Variable pricing | No |
For cryptocurrency, static codes are standard. Your wallet address does not change (though many wallets generate fresh addresses for privacy). The address is encoded directly in the QR code.
For traditional payments, dynamic codes offer more flexibility. A restaurant can display a single QR code that connects to their payment system, with the amount entered by the customer or calculated by the POS system.
Creating Payment QR Codes
Most payment platforms generate QR codes automatically. If you need to create a payment QR code manually:
For Cryptocurrency
Use your wallet's built-in QR generator. It will format the address correctly with the proper URI scheme. For Bitcoin, this means using the bitcoin: prefix. For Ethereum, the ethereum: prefix.
If you need to generate a crypto QR code externally, ensure you use the correct format. A plain address works, but including the protocol prefix ensures compatibility with all wallet apps.
For Traditional Payments
Most businesses should use their payment provider's tools. Square, Stripe, PayPal, and others all provide QR code generation as part of their merchant services.
For simple payment links, you can create a QR code that links to a payment page. This works well for donations, tips, or invoice payments where the amount is predetermined.
The Future of QR Payments
QR payments continue to evolve:
- Interoperability - Standards like EMVCo QR Code Specification are making it possible to scan one QR code with multiple payment apps
- Central Bank Digital Currencies - Several countries are developing CBDCs that will use QR codes for transactions
- Offline payments - Some systems now support QR payments without internet connectivity
- Cross-border payments - QR codes are simplifying international transfers, particularly in Asia
Summary
QR codes have become infrastructure for moving money. They work because they solve a real problem: entering payment details accurately and quickly. In traditional payments, they eliminated the need for expensive card terminals. In cryptocurrency, they eliminated the risk of typing errors on 34-character addresses.
For businesses, QR payments offer lower costs than card processing. For consumers, they offer speed and convenience. For the crypto ecosystem, they are simply essential.
Whether you are accepting payments at a market stall or receiving Bitcoin donations, QR codes make the transaction simpler and safer.
Create your payment QR code
Generate QR codes for URLs, crypto addresses, or payment links. Free, no account required.