EUQR

QR code on invoices: payment, portal and documents in one scan

A QR code on invoices lets customers pay, open their account or download a document without typing a long address. This page follows an installation company that sends 1,200 invoices a month, shows which code does what, and explains how an editable EUQR code next to the payment code keeps working when your portal or terms change.

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?
No. EUQR does not generate EPC or other payment codes. Your bank, accounting software or payment provider creates the payment code for each invoice. EUQR makes the dynamic codes next to it: one to your customer portal and one to a PDF page with terms or manuals, both editable after printing and counted without cookies.
What should a QR code on an invoice link to?
To one clear task per code. The payment code opens the payment for this invoice. A portal code opens the customer account or a booking page. A document code opens terms, a manual or warranty conditions. Label each code in the footer so customers know what happens before they scan, and keep personal data behind your portal login.
Will the code keep working if our portal address changes?
Yes, if it is a dynamic EUQR code. The printed code contains a short EUQR address, and you change the destination behind it in the dashboard. Pre-printed invoice stationery and PDFs already sent keep working. A static code with the portal address inside would break the day the address changes, and you would have to reprint.
Can I see which customers scanned the code?
No, and that is deliberate. EUQR counts scans per code as aggregate numbers by country, device, browser and language. It stores no raw IP addresses and sets no tracking cookies. You see which invoice stream gets scanned, such as paper, PDF or reminder, but not which person. Keep customer numbers out of the link as well.
Which EUQR plan do I need for invoice codes?
Starter at €0.99 per month covers 10 dynamic codes and 50 short links, enough for a portal code per invoice stream. For a PDF page with terms or manuals you need Pro at €9 per month, which adds 50 codes, 250 links and four seats. Prices exclude VAT and every plan can be cancelled monthly.

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