How an EPC QR code works
The code holds a short text defined by the European Payments Council in its guideline EPC069-12 for SEPA credit transfers. It has up to twelve lines separated by line feeds: BCD, the version 002, the character set 1 for UTF-8, the service SCT, the optional BIC, the recipient's name (up to 70 characters), the IBAN, the amount as EUR12.50, a purpose code that is left empty, either a structured creditor reference or a free-text reference (up to 140 characters), and a note to the payer (up to 70). Empty lines at the end are dropped and the whole payload is kept within 331 bytes, as the guideline requires.
Banking apps in Germany and Austria know this format as GiroCode, in the Netherlands and Belgium as EPC QR, in Finland as the payment QR code; it is also supported in Luxembourg, Italy, Estonia, Latvia and Lithuania. The payer opens the app, chooses to scan or photograph a transfer, and the recipient, IBAN, amount and reference appear in the transfer form. The payer checks the details and approves the transfer as usual.
The IBAN is cleaned and verified before the code is built: spaces are removed, letters are capitalized, the length is checked against the country and the check digits are validated with the mod-97 algorithm. A reference that is a valid ISO 11649 creditor reference (RF followed by check digits) is placed in the structured field automatically; any other text goes into the unstructured field.
Where it helps
- A freelancer or small business prints the code on an invoice next to the bank details, so the customer pays without typing the IBAN.
- A club or association puts a code with the yearly fee and a reference like Membership 2026 on its letter to members.
- A landlord shares a rent code with tenants, with the amount and the reference the bank statement should show.
- A charity or parish displays a donation code with no amount on a poster or in a newsletter.
Tips before you print
- The BIC is optional for SEPA transfers within the EU since version 002, so leave it empty unless your bank asks for it.
- Keep the reference meaningful but short: an invoice number or customer id is what you will search for in your statement later.
- Use a dot or a comma for the amount; both are accepted and written as EUR49.90 in the code. Only euro amounts are possible in this format.
- Scan the code with your own banking app before printing. If the IBAN or name does not match your account, fix the typo now.