Skip to main content
OpenQRS
Tools
Current language: English
100% Private

PayPal QR code generator

100% Private & Local — Your data never leaves your browser. These QR codes are permanent and will never expire.

PayPal settings

The part after paypal.me/ in your own link. Enter it without the domain and without a leading slash.

Enter your PayPal.Me username — the part after paypal.me/ in your own link.

Optional. Leave it empty to let the payer enter the amount themselves.

Only used when an amount is set. PayPal decides which currencies your account can actually receive.

Design

Module shape
Presets
Corner frame
Add a centre logo
Choose an image, or drop one herePNG, JPEG, WebP or GIF, up to 1000 KB

The image is read in this page and embedded in the code as a data: URL. It is not uploaded, and it stays inside the file you download.

More design options

The dark half of the code. Keep it well below the background in lightness.

Covers the quiet zone as well as the gaps between modules. A transparent background leaves it out of the file, so nothing is drawn with it.

Contrast 11.5:1 between the modules and the background.

Presets

PNG and WebP keep an alpha channel; the SVG simply omits the background rectangle. Whatever the code is placed on becomes the light half of the contrast.

Gradient

A gradient fills the dark modules only. Its lighter end sets the contrast a scanner actually gets, so both ends have to stay dark.

The second colour, used only while a gradient is selected. It is measured for contrast alongside the first.

45°

Degrees clockwise from a left-to-right sweep. A radial gradient spreads from the centre outwards, so the angle applies to a linear one only.

Module shape

Rounded shapes cover less of each cell. The centre stays covered, which is where a decoder samples, but a small print of a dense code reads more reliably as squares.

Corner frame

The ring of the three finder patterns.

Corner centre

The eye inside each finder pattern.

4 modules

The blank margin around the code, measured in modules. 4 is the specified minimum.

Higher recovery survives more damage and costs capacity, so the same content produces a denser symbol.

A logo sits at the centre and holds the level at H. Its width limit follows the symbol: 14% on the smallest code, 30% on a dense one.

Live preview & export

Export

Export

Raster, for screens

Complete the form to enable the downloads.

Export size and encoded text
Payload
Nothing encoded yet
Symbol
Not built yet
Recovery
Q

Waiting for input

Export size

Between 64 and 4096 pixels. Exporting at 1024 px.

Encoded text

Turn your PayPal.Me username into a scannable payment link, with an optional amount already filled in. This site never touches the payment; it only writes the URL.

When someone scans it

The phone opens paypal.me in the browser or the PayPal app, showing your profile and, when you set one, a pre-filled amount the payer can still change.

How the link is assembled

The base is https://www.paypal.me/ followed by your username. With an amount, the amount becomes the next path segment: www.paypal.me/janedoe/25. With a currency selected as well, its three-letter code is appended directly to the number with no space or separator: www.paypal.me/janedoe/25GBP.

Leaving the currency on the account default omits the code, and PayPal then interprets the number in whatever default currency your account is set to. That is fine when payer and payee share a currency and a quiet source of confusion when they do not, so set the code explicitly whenever the sign might be read by someone abroad.

Amounts are written with a full stop as the decimal separator and no thousands separator, because that is what the URL expects. Currencies without a minor unit — the yen among the options here — take a whole number.

  • No amount: https://www.paypal.me/janedoe
  • Amount only: https://www.paypal.me/janedoe/25
  • Amount and currency: https://www.paypal.me/janedoe/25GBP

What the link does not do

The amount is a suggestion. PayPal shows it pre-filled and the payer can edit it before confirming, which is the correct behaviour for a tip jar and a poor fit for an invoice that must be paid exactly. If the exact figure matters, send a PayPal invoice from your account instead of relying on a printed number.

The link carries no reference, order number or note, so a payment arriving this way is identified only by whoever sent it. It also does not choose the payment type: the sender picks that inside PayPal, and which of PayPal's protections applies follows from their choice and from PayPal's own terms, not from anything encoded here.

PayPal.Me is not offered in every country and the username must already exist — PayPal issues it when you create your link. This page cannot check whether a username is real, available or yours, because checking would mean sending it somewhere.

Scan it yourself before it goes to print

A username typed one character wrong is still a valid URL. It may resolve to a stranger's PayPal.Me page, and money sent there arrives in their account, not yours. Nothing in the pattern gives that away — the code looks entirely correct.

So test the finished code the way a customer will. Scan it with a phone, let the page load, and confirm the name and photo on the PayPal.Me profile are yours and that any pre-filled amount and currency read as expected. Do that before the code is printed, laminated or engraved, because a wrong code on a hundred table cards is a hundred reprints.

Questions and answers

Does OpenQRS take a cut of payments made through this code?

No. The code contains a plain paypal.me URL pointing at your username, with no intermediary account, no affiliate parameter and no redirect through this site. The money moves between the payer and your PayPal account, subject to whatever fees PayPal charges you.

Where do I find my PayPal.Me username?

In your PayPal account, under the PayPal.Me section, where you create the link if you have not already. Your link looks like paypal.me/something — the something is what this field wants. Enter it without the domain, since the tool adds that.

Can I set a fixed amount the payer cannot change?

Not through a PayPal.Me link. The amount in the URL only pre-fills the field, and the payer can overwrite it. A PayPal invoice or a Buy Now button generated from your PayPal account is what locks a figure, and you can encode the resulting link with the URL tool.

Will the same code work for someone paying in another currency?

The link opens for anyone, but the currency written into it must be one your account can receive. If it cannot, PayPal will either convert or refuse depending on your account settings and region. Where the audience is international, check with PayPal which currencies your account accepts before printing a code with a code in it.

How a static QR code works

Every code on this site is static: the payload is written into the black and white modules themselves. Nothing is looked up when the code is read, no server of ours takes part, and no subscription holds the printed code up. The same property is the limit — once it is printed, what it contains cannot be changed.

Three things then decide whether a printed code reads: how many bytes the payload came to, which recovery level absorbs the damage, and how wide a single module ends up on paper. These guides work through each of them with the numbers.