What the generator writes into the code
- PayPal: you type your PayPal.Me username. The code holds
https://paypal.me/username. If you fill in the amount field, it becomeshttps://paypal.me/username/15. - Bitcoin: you type an address. The code holds
bitcoin:address, plus?amount=when you enter an amount. - Venmo, Cash App, Stripe, and other links: use the URL type and paste the full link. If it does not start with http:// or https://, the generator adds https://.
The code is static. Nothing passes through a Link2QR server when someone scans it, so it keeps working as long as the payment link itself works.
Advertisement
PayPal.Me
Format: paypal.me/username, with an optional amount: paypal.me/username/15. You create or find your PayPal.Me link in your PayPal account. PayPal.Me works with personal accounts as well as business accounts.
In the PayPal type, type only the username. The generator adds https://paypal.me/ itself, so pasting a full paypal.me link into that field doubles the address and breaks the code. If you already have the full link, use the URL type instead.
A fixed amount suits a single-price item, such as a class fee or a printed ticket. For tips and donations, leave the amount empty so the payer chooses.
Venmo
Format: venmo.com/u/username. In the Venmo app, open your profile, tap the share option, and copy the link. Paste it into the URL type. On a phone with Venmo installed the link opens your profile in the app; otherwise it opens in the browser.
Venmo also shows a QR code inside its app. That code is fine for a phone-to-phone payment. A code you generate from the profile link can be downloaded as SVG, sized for a sign, and styled to match the rest of your print.
Cash App
Format: cash.app/$cashtag. The dollar sign is part of the link, so keep it. Paste the link into the URL type. It opens your Cash App payment page in a browser, or in the app when it is installed.
Checkout links (Stripe and similar)
If you sell something at a fixed price and want card payments, a hosted checkout link is a better fit than a personal profile. Stripe payment links look like buy.stripe.com/.... Create the link in your provider's dashboard, paste it into the URL type, and the QR code opens that checkout page. Price, taxes, and receipts are handled by the provider.
Bitcoin
Format: bitcoin:address or bitcoin:address?amount=0.001. This is the bitcoin: URI scheme from BIP21. Wallet apps that read it fill in the address and, when present, the amount in BTC. Check the address character by character against your wallet before printing. A single wrong character sends funds to an address you do not control, and the scanner can read the code back so you can compare it.
Measured code sizes
Measured with the qrcode library used in Link2QR's 3D and animated exports. The version is the grid size: version 2 is 25 by 25 modules, and each version adds 4 modules per side. Error correction M is the generator default; H is the highest level.
| Encoded content | Version at M | Version at H |
|---|---|---|
| https://cash.app/$yourname | 2 (25x25) | 4 (33x33) |
| https://paypal.me/yourname | 2 (25x25) | 4 (33x33) |
| https://venmo.com/u/yourname | 3 (29x29) | 4 (33x33) |
| https://paypal.me/yourname/15 | 3 (29x29) | 4 (33x33) |
| https://buy.stripe.com/test_00g5kE9Qb4Xk3S0000 | 4 (33x33) | 6 (41x41) |
| bitcoin:bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq | 4 (33x33) | 6 (41x41) |
| bitcoin:bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq?amount=0.001 | 5 (37x37) | 7 (45x45) |
All of these are small codes. A profile link at version 2 or 3 stays readable at small print sizes, which is why a payment code can fit on a business card or a price tag.
Pitfalls and scams
- Sticker swaps. A known QR scam is to cover a real payment code with a sticker that points to someone else. Print your handle in plain text under the code, so payers can see that the name in the app matches. Check public codes often, and prefer codes printed directly on the sign over loose stickers.
- Shortened links. Do not wrap a payment link in a URL shortener. Payers cannot see the destination, and the Link2QR scanner flags shorteners for that reason.
- Wrong field. The PayPal type wants a username, not a link. A full link pasted there produces a broken address.
- No test payment. Scan the printed code with a phone and send a small payment to yourself or a friend before putting the sign out.
- Low contrast. Brand colors on a colored background can fail on older phones. Check the design in the reliability checker and size it with the print size calculator.
- Several services. Instead of three small codes, use one multi-link QR code that lists PayPal, Venmo, and Cash App.
Frequently Asked Questions
Does Link2QR process the payment or take a fee?
No. The QR code only holds a link or a Bitcoin address. Scanning it opens PayPal, Venmo, Cash App, or a wallet app, and the payment happens there under that service's own terms and fees. Link2QR never sees the transaction.
Can I set the amount in the QR code?
For PayPal.Me, the generator's amount field adds the amount to the end of the link, as in paypal.me/yourname/15. For Bitcoin, the amount field adds ?amount= to the address, in BTC. For Venmo and Cash App profile links, this page does not give an amount format, so let the payer type it.
Is it safe to print my payment QR code in public?
A profile link lets people send you money; it does not let them take money from you. The main risk is someone sticking their own code over yours. Print your handle in plain text next to the code and check the code regularly.
Can one QR code show PayPal, Venmo, and Cash App together?
A single link can only go to one service. A multi-link QR code can list up to 20 links on one page, so the payer taps the service they use.
What if I change my username or cashtag?
The printed code keeps pointing at the old link, because static codes cannot be edited. Generate a new code and replace the printed one.
Should the Bitcoin amount be in BTC or satoshis?
BTC. The bitcoin: URI format (BIP21) defines amount in bitcoin as a decimal number, so 0.001 means one thousandth of a bitcoin. The generator writes the number exactly as you type it.