Advertisement

Payment QR Code Generator (UPI, PayPal, Bitcoin)

Create a payment request QR code for UPI, PayPal.me, Bitcoin (BIP-21), Ethereum (EIP-681), Litecoin, Bitcoin Cash or Dogecoin, with address checks.

UPI: name@handle · PayPal: the name after paypal.me/ · crypto: the receiving address copied from your wallet.
UPI "pn" (required for UPI) and the crypto label. PayPal.me and Ethereum links have no name field.
UPI: rupees · PayPal: in the currency below · crypto: in coins (BTC, ETH …), not dollars. Leave empty to let the payer type it.
UPI "tn" and the crypto message. PayPal.me and Ethereum links cannot carry a note.
Catches typos in crypto addresses: base58check, bech32/bech32m, CashAddr and EIP-55.
Higher levels survive dirt and damage but make a denser code.
Blank border around the code. The QR standard asks for 4.
Download as

A payment QR code saves the payer from typing a UPI ID or a 34-character wallet address. This generator builds the standard request link for each system — UPI, PayPal.me, Bitcoin, Ethereum, Litecoin, Bitcoin Cash or Dogecoin — checks the address for typos, draws the code and decodes it again. The code only encodes a payment request: no money moves until the payer confirms it in their own app, and nothing you type leaves your browser.

How to use this tool

  1. Pick the payment type.
  2. Paste your UPI ID, PayPal.me name or receiving wallet address, and the payee name or label.
  3. Optionally add an amount (rupees for UPI, the chosen currency for PayPal, coins for crypto) and a note.
  4. Keep the checksum check on, then download the code and scan it once with your own app before printing.

Formula

upi://pay?pa=VPA&pn=Name&am=100.00&cu=INR&tn=Note · https://paypal.me/name/25USD · bitcoin:ADDRESS?amount=0.001&label=…&message=… · ethereum:0xADDRESS?value=WEI

UPI follows the NPCI linking spec (amount with two decimals, currency INR). Bitcoin, Litecoin, Bitcoin Cash and Dogecoin use BIP-21 style links with the amount in coins (up to 8 decimals). Ethereum uses EIP-681 with the value in wei (1 ETH = 10^18 wei). Names and notes are percent-encoded as UTF-8. Addresses are checked with base58check, bech32/bech32m (BIP-173/350), CashAddr or EIP-55.

Example

UPI ID shop@okaxis, name Shop and amount 100 give upi://pay?pa=shop@okaxis&pn=Shop&am=100.00&cu=INR. A request for 0.001 BTC to the BIP-173 example address becomes bitcoin:bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4?amount=0.001, and 2.014 ETH is written as value=2014000000000000000.

Frequently asked questions

Does scanning the code pay automatically?

No. It opens the payer's app with the details filled in; they still review and confirm the payment.

Why does a wallet ignore my Ethereum amount?

Support for the EIP-681 value parameter is patchy, and many wallets open an empty send screen. Tell the payer the amount as well.

What does the checksum check catch?

Crypto addresses carry a built-in checksum, so one wrong or swapped character is detected. It cannot tell whether the address is really yours — always copy it from your own wallet.

What about SEPA bank transfers in Europe?

Use the EPC QR code generator: it writes the European Payments Council format that banking apps read.

Sources

Last updated: 2026-10-30

Advertisement