Install our app 🪄 click on the icon in the top right of the address bar.

Girocode Generator: EPC QR Codes for SEPA Transfers

Created on 26 February, 2025 • 9,781 views • 23 minutes read

Create a Girocode, the EPC QR code for SEPA credit transfers. Payers scan it in their banking app and payee, IBAN, amount and reference are filled in.

No sign-up is needed. Have the payee name, IBAN, amount and payment reference to hand.

Guideline
EPC069-12version 3.0 of 13 September 2022
Payment type
SEPA credit transfereuro only
Payload
up to 331 byteserror correction M, QR version 13 at most
Price
€0 in the generatorin an account from Starter, €10 a month

What is a Girocode?

In short

A Girocode is a QR code that carries the details of a SEPA credit transfer: payee name, IBAN, amount and payment reference. The payer scans it with a banking app, the app fills in the transfer form, and the payer checks the details and approves the payment. The format is defined in guideline EPC069-12 of the European Payments Council, which is why it is also known as an EPC QR code. The code triggers nothing by itself and does not replace a TAN.

The issuer of the invoice gains two things. Nobody has to type an IBAN by hand, and the reference arrives exactly as written, invoice number included. Incoming payments become easier to match against open items.

Girocode, EPC QR code, SEPA QR code: one format, several names

Girocode is the word used in Germany. Elsewhere the same payload goes by more technical names.

Names for the same code
NameWhere it comes from
GirocodeThe usual term in Germany, seen on invoices and donation forms.
EPC QR codeThe general technical term, after the European Payments Council, which publishes the guideline.
SEPA QR codeA descriptive term, after the kind of payment the code prepares.
QR-ÜberweisungscodeThe German label of this QR type in 7pxl. It translates as ‘QR transfer code’.

To find out whether a code belongs to this family, read it with a plain QR reader, for example the one included in every 7pxl account. If the text starts with BCD and continues with the lines described below, it is an EPC QR code.

When you bill customers in several countries, the caption next to the code matters more than the name. ‘Scan with your banking app to pay’ does not depend on the reader knowing any of these terms.

PayPal, UPI and PIX have QR types of their own in 7pxl. They are not interchangeable with the EPC format.

Inside the code: the EPC payload line by line

An EPC QR code holds no web address and nothing encrypted. It contains up to twelve lines of plain text in a fixed order. The banking app identifies each field by its position, so empty lines in the middle must stay in place. Empty lines at the end may be dropped.

Payload according to EPC069-12
LineFieldExampleRule
1Service tagBCDfixed value
2Version002001 or 002
3Character set11 means UTF-8
4IdentificationSCTfixed value for a SEPA credit transfer
5BIC of the payee's bankemptyoptional within the EEA in version 002
6Payee nameMuster GmbH70 characters at most
7Payee IBANDE…without spaces
8AmountEUR119.00EUR followed by the amount, full stop as decimal separator, from 0.01, no more than nine digits before the separator
9Purpose codeemptyoptional
10Structured referenceempty35 characters at most, only if line 11 is empty
11Unstructured referenceInvoice 2026-0815140 characters at most, only if line 10 is empty
12Note to the payerempty70 characters at most

Three limits apply to the payload as a whole: 331 bytes at most, error correction level M, and QR version 13 at most. The IBAN in the example is shortened on purpose.

Watch the payload being built

This text is what the QR code will contain

The tool only shows text and runs in your browser. The printable pattern comes from the generator.

The amount uses a full stop, has no thousands separator and is prefixed with EUR. The BIC line is empty but present, because the tool writes version 002. The payload is small: the example takes up 57 bytes without an IBAN and 79 bytes with a 22-character German IBAN. Space only becomes tight when the reference and the note to the payer are used to their full length. Umlauts and accented letters take two bytes each in UTF-8.

QR version 13, the upper limit, corresponds to a pattern of 69 by 69 modules. An ordinary invoice payload needs far fewer, which gives larger modules at the same print size.

How to create a Girocode with the generator

  1. Open the generator

    The generator for the transfer code is public. You do not need an account to use it.

  2. Enter payee and IBAN

    Write the payee name the way the account is held, in no more than 70 characters. Copy the IBAN from your online banking instead of typing it. The BIC field can stay empty for payments within the European Economic Area.

  3. Set amount and reference

    The amount is in euros. For the reference there are two fields, and you fill in one of them: free text or a structured reference. Put the invoice number at the start of the text. A further field takes a short note to the payer.

  4. Download the file

    Choose SVG for invoice templates and print, PNG for word processors. Keep the code black on white and leave out any logo.

  5. Test with your own banking app

    Scan the code from a test print. If payee, IBAN, amount and reference appear correctly in the form, cancel before approving.

Placing the code on an invoice

Invoices are scanned from 20 to 30 cm, often from a copy made on the customer's office printer. The measurements follow from that.

Size
At least 2 cm along each edge, preferably 3 cm. The extra centimetre is a reserve for weak toner and photocopies.
Quiet zone
Keep a light margin of four modules on every side. No table rules, footer text or stamps may reach into it.
Position
Next to the bank details or the amount due. Avoid the fold lines of the letter and the address window.
Colour
Black on white, no logo in the centre. The guideline specifies error correction level M. A logo would call for level Q or H, so it has no place in a transfer code.
Caption
For example: ‘Pay by banking app: scan the code, check the details, approve.’ Naming the banking app matters, because the phone's ordinary camera only displays the raw text.
Plain text
Print payee and IBAN in readable form as well. Not everyone scans, and those who do should be able to compare the app with the paper.

Early-payment discounts and instalments

The code holds one amount. If you offer a discount for early payment, decide whether the full or the reduced amount goes into the code and say so in the caption.

Four typical uses compared

What goes into the code, by use
UseAmountReferenceOne code for everyone?
Invoiceinvoice totalinvoice numberNo, one code per invoice
Donation appealleft emptyfixed text such as ‘Donation youth work’Yes, the same code on flyer, poster and newsletter
Membership feethe annual fee‘Membership fee 2027’, or the member numberYes without member numbers, otherwise one per member
Till receipt or delivery noteamount duereceipt numberNo

The membership fee has a catch. One shared code saves work at the start, but the reference then lacks the member number and the treasurer has to match payments by name. With 40 members, creating one code each is an afternoon's work. With 800, it is a job for membership software.

At a till without a card terminal, the code spares the customer from typing your bank details. You see the money only when it reaches your account. There is no confirmation at the counter.

What an EPC QR code cannot do

  • Other currencies and payment methods. The format covers SEPA credit transfers in euros and nothing else. Pounds, Swiss francs, card payments and direct debits are out of scope.
  • Changes after printing. The code is static. Amount and reference are part of the pattern, so a corrected invoice needs a new code.
  • A ‘dynamic Girocode’. Dynamic QR codes contain a web address that redirects through a short link. A banking app expects the payload that begins with BCD and has no use for a web address.
  • Every banking app. Not every app has a scanner for transfer codes. Test with your own bank's app and keep the bank details in plain text.
  • Feedback. Nobody learns whether the code was scanned. Your bank statement is the only proof of payment. Scanning a static code does not contact our servers.
  • Invoice runs. If you issue hundreds of invoices a month, you need invoicing software that produces the code for each document. Our generator suits single invoices, templates with a fixed amount and donation codes.

Who checks what before money moves

An EPC QR code moves no money. It is a pre-filled form. The transfer exists only once the payer approves it in the banking app, with the same TAN or biometric step as for any other transfer.

Two parties check. As the issuer, you read the finished code once with a QR reader and compare each line with your records, because a wrong IBAN would otherwise be copied onto every invoice. The payer sees payee, IBAN, amount and reference in the app before approving and compares them with the printed document.

A code deserves as much trust as the paper it is printed on. On a poster in a public place, someone could stick a different code over yours. Print the payee name prominently, so that a mismatch in the app stands out.

Nothing in the payload is secret. Anyone with a QR reader can display it, so keep confidential remarks out of the reference.

Free generator or account: what is included where

The public generator is free and sufficient if you file the image yourself. In a 7pxl account, the transfer code is part of the Starter plan and above. There the codes stay saved and can be edited by team members with individual permissions.

Public generator

€0

  • transfer code included
  • static code as a file
  • no sign-up

Free account

€0

  • 13 QR types
  • transfer code not included
  • 2 QR codes

Starter

€10 a month

  • 14 QR types with transfer code
  • 10 QR codes
  • 1 team, 3 members

Pro

€29 a month

  • 16 QR types, adding UPI and PIX
  • 100 QR codes

Prices include VAT. Paid yearly, Starter costs €110 and Pro €319. To use a plan, create an account first. The interface is available in German, English and French.

Questions and answers about the Girocode generator

Is a Girocode the same as an EPC QR code?

Yes. Girocode is the usual German name for the QR code defined in guideline EPC069-12 of the European Payments Council. SEPA QR code is a third name for the same payload.

Is the Girocode generator free?

The public generator at 7pxl.de/qr/epc is free and works without an account. Saving transfer codes in an account and managing them in a team requires the Starter plan at €10 a month.

Do I have to include the BIC?

In version 002 of the format the BIC is optional within the European Economic Area. The line stays empty but must be present, because the app reads the fields by position.

Can I leave the amount empty?

Yes. The payer then enters the amount in the app. This suits donation codes. On invoices the amount belongs in the code, so that nobody has to type it.

Does it work for payments in pounds, Swiss francs or US dollars?

No. The format is limited to SEPA credit transfers in euros. For other currencies you still have to state your bank details as text.

Why does my phone camera only show lines of text?

A camera app reads the code as plain text and does not know what to do with it. The code has to be scanned from inside a banking app that supports transfer codes. If the text starts with BCD, the code itself is in order.

Further reading

Create a code for your next invoice

Enter bank details, amount and reference, download the file and check it with your own banking app.

Last updated: October 2026. Plans and features as listed on the pricing page.

Provider: 7pxl.de, a brand of SecondMay Design, Billigheim, Germany.