Invoices
Trades, practices, freelancers: the code next to your bank details spares customers the typing — and spares you the hunt for payments with a mistyped reference.
EPC QR code · GiroCode
Payee, IBAN, amount and reference in one code. The payer scans it with their banking app and only has to approve the transfer, already filled in. Free, no sign-up — and your account details never leave your browser.
Name and IBAN are enough, amount and reference are optional. The preview updates as you type.
The banking app takes over payee, IBAN, amount and reference. Also known as EPC QR code or GiroCode.
Exactly as registered with the bank — the payer’s bank checks that name and IBAN match.
Leave empty if the payer should enter the amount themselves.
Usually unnecessary: within the EU and EEA the IBAN is enough.
Such as an invoice or membership number, 140 characters at most.
Enter name and IBAN — the code appears as soon as both are complete.
Use SVG for print — it stays sharp at any size.
Higher levels survive scratches and logos but make the pattern denser.
For transfer codes the standard requires level M.
The light border is part of the code. Below 4 modules you are asking for trouble.
How it works
The payee’s name and IBAN, plus amount and reference if you like. The IBAN is checked as you type — a transposed digit shows up before it is printed.
As SVG in your invoice template, as PNG in an email, or printed at the till. The code is static and stays valid as long as the account exists.
The payer opens a transfer in their banking app, scans the code and finds every field filled in. They check, approve — done.
Uses
Trades, practices, freelancers: the code next to your bank details spares customers the typing — and spares you the hunt for payments with a mistyped reference.
With the membership number in the reference, every payment can be matched. One code per member, or one without an amount for everybody.
On a poster, a flyer or a collection box. Without an amount, everyone enters what they want to give.
Outing, present, team shirts: amount and purpose are fixed, and the code goes out with the parents’ letter or into the group chat.
Where there is no card terminal: put the code on the stall and the customer transfers. With an instant transfer the money arrives in seconds.
Deposit, down payment or final cleaning for the holiday flat: the code in the booking confirmation saves the question about your bank details.
What is in the code
The code follows the European Payments Council’s standard EPC069-12, which the German GiroCode is built on as well. Banking apps read exactly these fields from it:
Error correction is fixed at level M for this type, as the standard requires. You are free to pick colours — but stick to dark modules on a light background: banking app scanners are pickier than the camera app.
From practice
Since October 2025 banks in the euro area check name and IBAN before every transfer. If the two do not match, the payer sees a warning — and hesitates. If the account is called “Müller GmbH”, that is what goes into the code, not “Müller Plumbing”.
Scan the code once with your own banking app before the invoice template or the poster goes to print. If every field is right, cancel the transfer before approving it.
A transfer code holds more characters than a link and is denser as a result. On an invoice, three centimetres per side is better than two, with a light border all round.
Amount and invoice number sit inside the pattern. Use one code for every invoice and you get payments you cannot match. If one code is meant for everything, leave amount and reference empty.
Good to know
Link, contact card, address, Wi-Fi, email, phone, SMS or text — all in the same generator, just as free.
To the generator for every kindIn Germany and Austria, the apps of most banks and savings banks. Depending on the bank the feature is called “Scan”, “Photo transfer” or “GiroCode”, and it usually sits in the transfer form. The ordinary camera app, on the other hand, can rarely do anything with it — scan it in the banking app.
No. The code only fills in a transfer form, and it does so on the payer’s side. The transfer is carried out only once the payer checks and approves it in their app.
No. Without an amount, the payer enters it themselves. That suits donations and codes meant for several payments.
Almost never. Within the EU and EEA the IBAN is enough and the bank works out the rest. The field is there for special cases.
No. The code is created in your browser and the input goes to no server — ours included. You can check that yourself: the generator keeps working if you disconnect from the internet after the page has loaded.
For accounts in the SEPA area, yes. That covers every EU country plus Iceland, Liechtenstein, Norway, Switzerland, the United Kingdom and a few more. The amount is always in euros.
The code follows the European Payments Council’s standard EPC069-12, which the GiroCode is built on. Banking apps treat both the same.