Payment QR Generator

Create a scannable SVG QR code for a validated payment URI. Supports Bitcoin BIP21, Litecoin, Dogecoin, Ethereum EIP-681, Lightning invoices and generic text payloads.

Try:
Payment QR SVG

About this tool

Payment QR codes are just payment URIs encoded as a QR image. This tool builds the URI for you, validates the destination where validation is possible, and renders a crisp SVG QR code that can be scanned from a screen or printed.

It supports Bitcoin-style BIP21 URIs (bitcoin:address?amount=&label=&message=), Litecoin, Dogecoin, Ethereum EIP-681, Lightning invoices, and a plain-text mode for any payload you want to encode. Everything runs locally in WebAssembly; the address or invoice never leaves your browser.

Worked example

A Bitcoin request with:

builds this payment URI before encoding it in the SVG QR code:

bitcoin:bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4?amount=0.025&label=Coffee%20Bar&message=Invoice%202026-114

The QR itself includes that URI in the SVG <title> for accessibility, and the Print URI under the code option also draws readable wrapped text below the code.

Options

OptionWhat it does
Payment schemeChoose Bitcoin, Litecoin, Dogecoin, Ethereum, Lightning, or plain text.
AmountOptional coin amount. BTC/LTC/DOGE allow up to 8 decimal places; ETH allows up to 18 and is converted to exact wei. Lightning invoices carry their own amount.
Label / messageOptional BIP21 fields for Bitcoin-style schemes. They are UTF-8 percent-encoded with spaces as %20, never +.
Error correctionL is smallest, M is a balanced default, Q/H are more robust for print but make the code denser.
Size and colorsControl the SVG viewport and QR colors. Keep strong contrast; low-contrast decorative codes often fail to scan.

Limits and edge cases

FAQ

What is BIP21?

BIP21 is the URI format many Bitcoin wallets understand: bitcoin:address plus optional query parameters like amount, label and message. This tool uses the same grammar for Bitcoin, Litecoin and Dogecoin payment requests.

Can I use this for Ethereum?

Yes. Choose Ethereum EIP-681 and paste a 0x address. If you enter an amount, the tool converts decimal ETH into exact wei for the value= parameter without floating-point rounding.

Does the QR prove the address is safe?

No. It only proves the payload is well-formed enough to encode. A checksum catches many typing mistakes, but you still need to verify the destination with your counterparty before displaying or printing the QR.

Which error-correction level should I pick?

Use M for normal screen use. Use Q or H for printed codes, stickers, receipts or anything that may be smudged. Higher recovery levels make the QR denser, so keep the printed size large enough to scan.

Can I make a transparent or branded QR?

You can set the background color to transparent and choose foreground/background colors. Keep enough contrast for scanners. Logo overlays and styled template galleries need a second image input and are intentionally left to decorative QR tools.

Developer & Automation Access

Run it from the terminal

Same engine as this page, headless — via the gizza CLI:

gizza tool payment-qr "bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4"

New to the CLI? Get gizza →

Open it by URL

Pre-fill and auto-run this tool with query parameters — the names match the API/CLI:

https://gizza.ai/tools/payment-qr/?address=bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4&scheme=bitcoin&amount=0.025&label=Coffee%20Bar&message=Invoice%202026-114&error_correction=M&size=512&foreground=%23000000&background=%23ffffff&show_uri=true

Machine-readable descriptor: tool.json — title + parameters JSON Schema for agents.