What this code is
The European Payments Council publishes a standard for a QR code that holds the details of a SEPA credit transfer: who is paid, their IBAN, the amount and a reference. A payer scans it in their banking app, the app fills in the transfer, and they confirm it as they would any other. In Germany it is often called GiroCode. Nothing moves until the payer approves it in their own app.
The EPC's guidelines say the code suits a document that shows the same details in plain text beside it, such as an invoice, so the payer can check that what their app filled in matches what they can read. Put the IBAN, the amount and the reference on the invoice as usual, and the code next to them.
What it needs
- Euro only. A SEPA credit transfer is in euro, so the amount is in euro even when the account is in Sweden, Poland or the UK.
- An IBAN in a SEPA country. That is the EU and EEA, plus the UK, Switzerland, Monaco, San Marino, Andorra, Vatican City, Albania, Montenegro, North Macedonia, Moldova and Serbia, by the EPC's list.
- The BIC, outside the EEA. Since version 2 of the standard the BIC is optional, except for an IBAN from a SEPA country outside the EEA, such as GB or CH.
- At most 331 bytes. The whole payload has a limit. Long reference text with accented letters is what usually reaches it, and the sheet says when it does.
Reference: invoice number or RF
The reference box takes either. An RF creditor reference (ISO 11649, such as RF18 5390 0754 7034) goes into the code's structured reference field, where the payer's bank can check it, and this page checks its two check digits first. Anything else, such as an invoice number, goes in as free text of up to 140 characters.
What this generator does not do
- It does not check whose account it is. The IBAN is checked for typos, not for being yours. Copy it from your bank, not from an old invoice.
- It does not make other countries' codes. Switzerland's QR-bill, and payment codes outside SEPA, are different standards.
- It cannot make every app read it. Supporting the code is optional for banks under the EPC's guidelines, so a few apps still do not scan it. The plain-text details on the invoice cover those payers.
- It does not keep anything. Nothing is written to your browser's storage, and nothing you type is sent to us.
Sources
- European Payments Council, EPC069-12 Quick Response Code: Guidelines to Enable the Data Capture for the Initiation of an SCT, version 3.1, 19 March 2024.
- European Payments Council, EPC409-09 EPC List of SEPA Scheme Countries, version 8.0, 24 December 2025.
Related
The IBAN checker checks an IBAN and BIC on their own, with the bank code. What to put on an invoice covers where the payment details go, and the invoice generator has a payment details box for them.
Last updated 5 October 2026