Advertisement

EPC QR Code Generator (SEPA GiroCode)

Create an EPC QR code (GiroCode) for SEPA credit transfers: IBAN and RF reference checked, payload per EPC069-12, error level M. PNG and SVG.

Up to 70 characters.
Spaces are fine.
Leave empty to let the payer type the amount.
Four-letter ISO 20022 purpose code. Most invoices leave it empty.
Remittance information
RF reference: up to 35 characters, check digits verified. Free text: up to 140 characters.
Shown to the payer in some banking apps. Up to 70 characters.
Width of the PNG. The SVG scales to any size.

An EPC QR code, known as GiroCode in Germany and Austria, lets the payer scan an invoice with a banking app and get a pre-filled SEPA credit transfer: beneficiary, IBAN, amount and reference. This generator builds the payload exactly as the European Payments Council guideline EPC069-12 describes, validates the IBAN and RF reference, uses the required error-correction level M and checks that the image decodes. The account details never leave your browser.

How to use this tool

  1. Enter the beneficiary name and IBAN; add the BIC only if a bank requires it (always for version 001).
  2. Optionally enter the amount in euro and a purpose code.
  3. Choose a structured RF creditor reference or free-text remittance information, such as an invoice number.
  4. Download the code and print it next to the same details in plain text.

Formula

BCD · version · character set · SCT · BIC · name · IBAN · EUR amount · purpose · RF reference · text · note

Each element goes on its own line, trailing empty lines are dropped and the payload may not exceed 331 bytes. The guideline requires error correction M and QR version 13 or lower. An IBAN or RF reference is valid when moving its first four characters to the end, replacing letters with numbers (A = 10 … Z = 35) and dividing by 97 leaves 1.

Example

The EPC069-12 sample uses BIC BHBLDEHHXXX, beneficiary Franz Mustermänn, IBAN DE71110220330123456789, EUR 12.30, purpose GDDS and reference RF18539007547034. The payload has 10 lines, 95 characters and 96 bytes (ä takes two bytes in UTF-8), and fits a version 6 QR code of 41 × 41 modules, exactly as the guideline states.

Frequently asked questions

Will every banking app read it?

Support is widespread in countries such as Germany, Austria and Belgium, but the guideline is optional for banks and some apps cannot scan it. That is why the invoice should always show the payment details in plain text as well.

Version 001 or 002?

Version 002 makes the BIC optional within the EEA and is the usual choice today. Choose 001 only for an older app that rejects 002; it requires the BIC.

What is a structured creditor reference?

An ISO 11649 reference starts with RF and two check digits, such as RF18 5390 0754 7034. Banks pass it to the beneficiary unchanged, which makes automatic matching of payments easier. The guideline allows either the reference or free text, not both.

Does the code move money or expire?

No. It only contains the text shown under Encoded content. The payer still checks and confirms the transfer in their own app, and the code stays valid for as long as the account exists.

Sources

Last updated: 2026

Advertisement