← Back to articles

How to Generate a Payment QR Code for Apple Wallet, Venmo, or PayPal

May 27, 2026

A payment QR code lets someone pay you — or tip you, or settle a check — by pointing a camera at a printed square. No typing handles. No fumbling with bank info. And for most of the apps people already have on their phones, the code is already built in. This guide covers the three most common ones: Venmo, PayPal, and Apple Wallet passes. It also shows how to print the code so it can't be sticker-swapped by a scammer.

Generate a Venmo QR code from your profile

Every Venmo account has a personal QR code. To find yours, open the Venmo app, tap your avatar in the top-left corner, then tap the QR icon. The code resolves to https://venmo.com/u/<your-username> and supports both pay and request flows — whoever scans it picks which one.

9to5Mac noted that the same QR mechanism powers Venmo's in-store payments and Venmo Credit Card activation. Android Police's Venmo guide walks through the screenshot path: tap the QR icon, save the image, then AirDrop it, print it on a flyer, or stick it on the side of a tip jar.

If you'd rather skip the app and make a printable code straight from your username, paste https://venmo.com/u/<your-username> into QRDock's QR creator and download the PNG.

Generate a PayPal payment QR code

PayPal rolled out in-app QR payments in May 2020. Inside the PayPal app, tap the QR icon in the header and switch between "Show to get paid" and "Scan to pay." That same screen lets you save the code as an image.

For a printable code outside the app, paypal.me is the easier path. Every PayPal personal account ships with a free paypal.me/<your-username> link. Two useful tricks:

Wrap any of those URLs in a QR creator — the same approach we used for vCard contact QR codes — and you get a printable PNG or SVG you can drop into an invoice, a market-stall sign, or a Patreon thank-you card.

Add a QR code to an Apple Wallet pass

An Apple Wallet pass is a signed .pkpass bundle that lives in the Wallet app on iPhone and Apple Watch — boarding passes, loyalty cards, event tickets, and store cards all share the format. A pass is defined by a pass.json file at the root of the bundle, and the QR code lives in the barcodes array near the top of that file.

A minimal entry looks like this:

"barcodes": [
  {
    "format": "PKBarcodeFormatQR",
    "message": "https://venmo.com/u/your-username",
    "messageEncoding": "iso-8859-1"
  }
]

A few things worth knowing:

The pass is then cryptographically signed with a PKCS #7 detached signature against Apple's WWDR intermediate certificate. The signing matters here. Once a pass is issued, the embedded QR can't be modified without breaking that signature — useful for tickets and loyalty cards where the payment link should stay pinned to the issued pass.

Static vs dynamic payment QR codes

The codes above — Venmo profile, paypal.me, Wallet-embedded URL — are all static. The QR encodes one fixed URL that works forever. Easy to print, easy to share. But if your account name changes, you reprint.

A dynamic QR code is generated per transaction by a payment processor and usually has the amount, a unique reference, and a short expiry baked in. The EMVCo-standard schemes powering more than $4.5 trillion in 2024 global QR payment volume — QRIS in Indonesia, PayNow in Singapore, India's UPI — are almost all dynamic. Each code is short-lived, which makes cloning much harder.

For a tip jar, a creator donation page, or a small-merchant counter, static is enough. If you're running point-of-sale and want each transaction to confirm an exact amount, use whatever your processor (Square, Stripe, PayPal Zettle) emits as a dynamic code.

Print and share your payment QR code safely

The risk with a printed payment QR code isn't that someone scans it. At worst, they send you money you didn't expect. The real risk is that someone covers your code with a sticker pointing to their account.

The FTC has documented this pattern most prominently on parking meters, where scammers covered the legitimate code with a near-identical one that took drivers to a spoofed payment page. The same trick works on tip jars, tabletop menus, and unattended signage.

Two practical defenses:

When you're the one scanning, the same principle runs in reverse: when QRDock or your camera shows the destination URL, make sure the destination URL is what you expect before you tap through to a payment screen.

Frequently Asked Questions

Is it safe to share a Venmo or PayPal QR code in public?

Yes, as long as the code is yours and resolves to your own profile URL. Sharing it can only let someone send you money or trigger a payment request you have to approve before any funds move. The real risk runs the other way — a scammer covering your printed code with a sticker that points to their account. Laminate the code or scan it yourself once a week to confirm the destination URL still matches your handle.

Can I put a Venmo or PayPal payment link directly into an Apple Wallet pass?

You can. A Wallet pass's barcodes field accepts any text or URL as the message, so a venmo.com/u/<username> or paypal.me/<username> link works. Wallet won't process the payment itself — scanning the QR opens the URL, which launches the Venmo or PayPal app on the scanner's phone. The pass itself stays signed and immutable, which is helpful for tickets and loyalty cards that need a fixed payment link.

What's the difference between a static and a dynamic payment QR code?

A static code is one fixed URL — for example paypal.me/jane — that anyone can scan at any time. A dynamic code is generated per transaction by a payment processor; it usually has the amount baked in and an expiry of a few minutes. Dynamic codes are harder to clone because each one is short-lived, which is why most national QR-payment schemes (UPI, PayNow, QRIS) use them at point-of-sale.

<script type="application/ld+json"> {"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"Is it safe to share a Venmo or PayPal QR code in public?","acceptedAnswer":{"@type":"Answer","text":"Yes, as long as the code is yours and resolves to your own profile URL. Sharing it can only let someone send you money or trigger a payment request you have to approve before any funds move. The real risk runs the other way — a scammer covering your printed code with a sticker that points to their account. Laminate the code or scan it yourself once a week to confirm the destination URL still matches your handle."}},{"@type":"Question","name":"Can I put a Venmo or PayPal payment link directly into an Apple Wallet pass?","acceptedAnswer":{"@type":"Answer","text":"You can. A Wallet pass's barcodes field accepts any text or URL as the message, so a venmo.com/u/<username> or paypal.me/<username> link works. Wallet won't process the payment itself — scanning the QR opens the URL, which launches the Venmo or PayPal app on the scanner's phone. The pass itself stays signed and immutable, which is helpful for tickets and loyalty cards that need a fixed payment link."}},{"@type":"Question","name":"What's the difference between a static and a dynamic payment QR code?","acceptedAnswer":{"@type":"Answer","text":"A static code is one fixed URL — for example paypal.me/jane — that anyone can scan at any time. A dynamic code is generated per transaction by a payment processor; it usually has the amount baked in and an expiry of a few minutes. Dynamic codes are harder to clone because each one is short-lived, which is why most national QR-payment schemes (UPI, PayNow, QRIS) use them at point-of-sale."}}]} </script>

Wrapping up

For most cases, the payment QR code you need already exists — inside Venmo, PayPal, or a Wallet pass you're already issuing. The shortcut for Venmo and PayPal is the profile QR inside each app. The shortcut for a printable code is wrapping paypal.me/<username> or venmo.com/u/<username> in QRDock's free creator. The shortcut for Apple Wallet is the barcodes array in pass.json. Whichever route you take, laminate the printed copy and check it once a week. The sticker-swap is the only attack that actually matters for static payment codes.