Crypto QR Code Payments: The Checkout That Works on a Phone, a Counter, or a Poster
A QR code turns any surface into a checkout — phone screens, shop counters, invoices, event stands. What a payment QR must encode to actually work (amount included, always), where merchants deploy them, and why the same code accepts wallets and exchange apps alike.
The short answer: a payment QR code is a checkout compressed into an image — recipient, amount, token, and order reference, encoded so a phone camera can pay in two taps. Done right (using the Solana Pay and EIP-681 standards, with the amount inside the code), it works anywhere a customer can point a camera: your website's checkout on their desktop, a counter card at a market stall, a printed invoice, a conference banner. Every Finality payment ships with its QR automatically, each carrying a dedicated address — so scans reconcile themselves, and the same code works whether the customer scans with Phantom or with their exchange app's withdrawal screen. Here's what makes a QR payment work, and where merchants actually use them.
Why QR is the natural shape of mobile crypto checkout
Desktop checkout has browser wallets; mobile is where crypto payments used to get awkward — copy an address in one app, switch to the wallet, paste, type an amount, triple-check, send, switch back. Every switch loses customers.
A QR code collapses that dance into: point camera, confirm, done. The wallet opens with everything pre-filled because everything was in the code. And since a huge share of paying customers keep funds on exchanges, the same pattern works there too: exchange apps can scan a payment QR into their withdrawal flow, or the customer copies the encoded address into it. One image, every kind of payer.
There's also a subtler win: a QR code needs no hardware. The "terminal" is your customer's phone. A laminated card does what a $300 payment terminal does, which is why this pattern scales down to a market stall and up to an event with ten thousand attendees.
The one rule: the amount goes in the code
Here's the difference between a payment QR and a tip jar: a bare address in a QR is not a checkout. If the code only says where, the customer types how much — and hand-typed amounts break exact-amount matching: a payment of $48.99 against a $49.00 order is a stuck order and a support ticket, not a sale.
The standards solve this — Solana Pay URIs on Solana, EIP-681 on EVM chains — encoding recipient, amount, token, and a label the customer sees in their wallet's confirm screen. (The two standards disagree about decimal versus atomic amounts, which is a real implementation trap — we wrote the developer's guide to it.) On Finality, you don't build any of this: every payment's hosted checkout renders the correct QR for the chain the customer picked, amounts encoded, dedicated address included.
That dedicated address is what makes QR payments bookkeepable: each scan pays into an address that maps to exactly one order. Ten customers scanning ten codes at your stall never blur together — reconciliation is 1:1 by construction.
Where merchants actually deploy QR payments
- The checkout page itself. Desktop shows the QR beside the pay button; the customer whose funds live on their phone scans instead of connecting anything. This alone rescues the "my wallet's on my phone" customer that extension-only checkouts lose.
- Invoices and quotes. A payment link prints as a QR — the paper invoice becomes payable (the full invoicing workflow).
- Counters, stalls, and pop-ups. A laminated code beside the register accepts stablecoins with zero hardware. For per-order amounts, generate per-order codes from the dashboard; for fixed-price items, one code per price does fine.
- Events and donations. Posters, banners, pitch decks, stream overlays — anywhere eyeballs land can now take payment. Tips and donations tolerate open amounts; sales should still use amount-encoded codes per the rule above.
- Person-to-person business — consultants and service providers showing a code across a table: "scan this" beats reading out a 44-character address in every possible way.
What happens after the scan
The part the customer never sees is where the machine earns its keep: Finality's own full nodes detect the transfer the moment it enters a block — sub-second on Solana — the checkout flips to "paid" while the phone is still in hand, and settlement executes atomically into your wallet, flat 1% carved out on-chain. A signed webhook tells your system to fulfill. At a physical counter, the practical loop is: customer scans, you watch your dashboard (or email) confirm, you hand over the goods — seconds, no terminal, no card network, no chargebacks.
FAQ
Do customers need a specific wallet app to scan?
Any Solana Pay–aware wallet (Phantom and peers) or EVM wallet supporting EIP-681 links handles the standards. Exchange payers can use the encoded address in their withdrawal flow — same dedicated address, same result.
Can I print one code and reuse it forever?
For donations and tips, yes. For sales, use per-order codes (or per-price codes for fixed items) — reuse breaks the 1:1 mapping that makes reconciliation automatic.
What if the customer scans but pays the wrong amount anyway?
With the amount encoded, wrong amounts mostly stop happening. When an edge case slips through (an exchange fee shaves the total), the order shows the shortfall and accepts a top-up to the same address — the partial-payment flow has it covered.
Does QR checkout cost extra?
No — QR codes are part of every Finality payment and payment link. Same flat 1% on settlement, same on-chain auditability.
How do crypto QR code payments work?
The code encodes destination and amount; the customer's wallet scans, pre-fills, and sends — the payment then detects and settles like any other. The design rule doing all the work: the amount rides in the code, not in the customer's fingers.
How do I create a crypto payment QR code?
Every payment and payment link already carries one — dashboard, print or display, done. No generator tools, no manual URI assembly (the format pitfalls are the gateway's problem, not yours).
Can customers scan a QR code and pay from an exchange app?
Where the exchange app scans QR, yes; otherwise they copy the address and amount into the withdrawal screen — the exchange path takes a minute instead of seconds and still settles identically.
Which wallets can scan crypto payment QR codes?
The mainstream mobile wallets on each enabled chain handle the standard URI formats. The customer's wallet choice is their business — the dedicated address matches the payment regardless of what scanned it.
Are QR code crypto payments safe?
The classic QR risk is sticker-swapping — mitigated because the amount is encoded and the page shows your business name, so a swapped code fails obviously. The address itself only ever pays you; nobody can redirect settlement.
Is a QR code enough for in-store crypto payments?
It's the entire terminal: the counter guide builds both store modes — laminated fixed-price codes and per-order screens — on exactly this mechanism, with no hardware beyond a printer.
Can I put a crypto QR code on an invoice?
Yes — print the payment link's QR beside the bank details, the invoice workflow stays otherwise unchanged, and clients pick their rail.
Do QR payments confirm fast enough for a queue?
On fast chains, sub-second detection — the confirmation appears on your screen at conversational speed. Ethereum-side payments take longer; for counters, default the code to a fast chain.
Can I accept tips or donations with one printed QR code?
Yes — that's the one reuse-approved case: no order to reconcile means the tip-jar model works, donations included. The moment an order exists, switch to per-order codes.
What's the difference between a payment QR and just showing my address?
Everything this article exists to say: a bare address makes the customer type the amount — the customer-service-ticket machine. Amount-in-code turns the same scan into a complete, mistake-proof payment.
The demo is the point with QR: create a sandbox payment on your laptop, scan it with your phone, and watch the laptop confirm before you've put the phone down. Then imagine that loop at your counter.