What a GiroCode actually is
A short block of text in the EPC069-12 format, defined by the European Payments Council. Nothing proprietary, nothing that belongs to a bank:
BCD
002
1
SCT
Example GmbH
DE89370400440532013000
EUR49.90
Invoice 2026-014Recipient, IBAN, currency and amount, reference. The banking app recognises theBCD header, reads the fields and opens a transfer form with them in place.
GiroCode and EPC QR are the same thing. GiroCode is simply what the German banking industry called it when it launched the scheme.
It fills a form. It does not pay anything.
Worth being explicit, because it is the first question every customer asks. Scanning opens a transfer the customer has not yet made. They see the recipient, the amount and the reference, and they authorise it the same way they authorise any other transfer — with whatever their bank demands, be that a TAN, an app confirmation or a fingerprint.
The code removes the typing, not the decision. Which is the entire value: an IBAN is 22 characters of alternating letters and digits, and typing one from paper is where payments go wrong.
The reference field is the point
If you print one thing correctly, print the reference. Your invoice number arriving attached to the payment is what turns reconciliation from reading a bank statement into a filter.
Keep it to the invoice number. A reference that reads"Invoice 2026-014" matches cleanly; one that reads"Payment for the kitchen work from March, thanks" matches nothing, because the customer will edit it and every customer will edit it differently.
Where support actually exists
This is a European standard, and its coverage is uneven:
- Germany and Austria — near universal. Most invoice templates already have a slot for it.
- Netherlands and Finland — widely supported.
- Rest of the euro area — varies by bank; worth testing with your own before printing a run.
- Outside SEPA — no. The format has no meaning to a bank that does not do SEPA transfers.
If most of your customers are outside that footprint, a payment link on the invoice will do more good than a code most of them cannot use.
Check the IBAN twice
Nothing in this tool validates your IBAN against a real account, because nothing in this tool talks to a bank — the code is built in your browser from exactly what you typed. A transposed digit produces a perfectly valid-looking code that sends money to a rejected transfer, or worse, to somebody else.
Generate it, scan it with your own banking app, and read the recipient back before it goes to print.
Where to put it on the invoice
Near the total. That is where someone looking for the amount is already looking, and it is where the eye goes when the invoice is being paid rather than filed. Label it — "Scan to pay" — because a bare square on a bill is exactly the kind of thing a careful person will not scan.