Take a heating and plumbing installer with four vans and an office team of three. Every month it sends about 1,200 invoices: half by post to older customers, half as PDF by email. Customers call the office with the same three questions. How do I pay? Where do I see my maintenance contract? Where are the warranty terms? A few small codes in the invoice footer answer all three. The trick is to give each code one job and to keep the codes you control editable.
Three codes a QR code on invoices can be
An invoice can carry three kinds of code. Each one works differently and comes from a different tool.
- A payment code. Your bank, accounting package or payment provider makes it. It carries the payment details or opens a payment page for this one invoice.
- A portal code. A dynamic EUQR code that opens your customer portal or a page to book the next service visit. It is the same on every invoice.
- A document code. A dynamic EUQR code that opens a PDF page with your terms, a manual or the warranty conditions.
EUQR does not make payment codes. It makes the other two, and it shows you how often each one gets scanned.
The payment code comes from your bank or provider
In the euro area the common format is the EPC QR code. The European Payments Council describes it in guideline EPC069-12, version 3.1, issued on 19 March 2024. The code holds the beneficiary name, the IBAN, an optional amount and a reference, within 331 bytes. The guideline names paper invoices as its use case and expects the same data in plain text next to the code. Support is optional for banks, so not every banking app reads it.
Payment providers offer a second route. Mollie, for example, explains on its page about paying with a QR code that the code links to a payment page with the details already filled in. You create it under Payment requests in the dashboard, or through the API so invoices get a code automatically.
Both codes belong to one invoice and one amount. Keep them as your bank or provider generates them. Do not route a payment code through a redirect: a banking app expects the payment data itself, not a web address.
A QR code on invoices that stays editable: the portal code
The portal code is where a dynamic code pays off. Our installer prints its invoice stationery in batches of 5,000 sheets, with the footer already printed. Last year it moved its customer portal to new software and the address changed. With a static code, the remaining paper would have been waste. With a dynamic QR code from EUQR, the office changes the destination in the dashboard and the printed footer keeps working.
The same code also works in the PDF invoice. Add a short link under it, such as qreu.eu/portal, for customers who read the PDF on their phone and cannot scan their own screen. The EUQR link shortener lets you choose that slug yourself.
Documents behind the code: terms, manuals, warranty
Terms change. Manuals get new versions. A third code in the footer can open a PDF page from EUQR, available on Pro and up. You replace the file behind the page whenever you like, and the same printed code opens the new version. You can add a download button and an optional password. The file stays private on EU infrastructure and is not indexed as a public download.
For our installer, the code points to a page with the general terms and the boiler warranty conditions. When the warranty text changes in January, the office uploads the new PDF. Nobody reprints anything.
See which invoice stream gets scanned
Use one code per placement, not one code for everything. The installer runs three: one in the paper invoice, one in the PDF invoice and one in the payment reminder. EUQR's scan statistics show how often each one is opened, by country, device, browser and language. You see that the reminder code gets more scans than the first invoice, or that paper customers barely use the portal. You do not see which customer scanned. EUQR stores no raw IP addresses and sets no tracking cookies.
What you should not put in the code
Never put a customer number, an invoice number or an amount in the slug or in UTM parameters of the portal code. That code is the same for every customer and should stay that way. Personal data belongs behind the login of your portal. Our guide to branded short links covers how to name slugs without leaking information.
Fraudsters also send fake invoices with their own codes. Print your IBAN in plain text, label every code ("Pay this invoice", "Your account") and use a recognisable short domain. Customers learn what your real codes look like. This is not legal or financial advice; check payment wording with your bank or accountant.
Size and placement in the footer
A short link makes a smaller, less dense code than a long portal address. That matters in a crowded footer. Keep at least a quiet zone between codes, put the payment code closest to the amount and print a label under each code. The EPC guideline asks for error correction level M and caps the payment code at QR version 13, so give it the most space.
The costs are low. Dynamic codes start on Starter at €0.99 per month. The PDF page needs Pro at €9 per month, which also includes 50 dynamic codes, 250 short links and four seats. See the plans and prices for details.
Frequently asked questions
Can EUQR create the payment QR code on my invoices?
What should a QR code on an invoice link to?
Will the code keep working if our portal address changes?
Can I see which customers scanned the code?
Which EUQR plan do I need for invoice codes?
Create the portal code for your invoices
Make a dynamic QR code in minutes, test it on your invoice template and change the destination whenever your portal moves.
Create a QR code