Used by 700,000+ people
Free EPC QR code generator.
Put a SEPA (Single Euro Payments Area) credit transfer on your invoices as a QR code. The payer's banking app reads beneficiary, account number and amount from it.
How to create an EPC QR code
-
01
Enter your name and IBAN
Enter your name as beneficiary and your IBAN. The generator writes version 002, where the BIC (Business Identifier Code) is needed only if a bank outside the European Economic Area (EEA) takes part.
-
02
Add the amount and a reference or a note
Enter the amount in euros, such as 1456.89, or leave it to the payer. Add an RF creditor reference or a short note, such as the invoice number, to match the payment, but not both.
-
03
Size it, leave a 4-module margin, test
Take the size from national guidelines, such as about 25 × 25 mm on German invoices. By default, the downloaded image ends at the outer modules: leave 4 module widths free in your layout, then test a printout with your customers' banking apps.
What an EPC QR code is
An EPC QR code is a QR code for SEPA credit transfers, defined by the European Payments Council (EPC) in its guideline EPC069-12. German savings banks call it GiroCode, and German and Austrian banking guidelines frame it with the words “Zahlen mit Code”. On an invoice, it spares the payer typing the IBAN (International Bank Account Number). The banking app fills in the SEPA credit transfer, and the payer checks and approves it.
Invoices, payment slips and donation forms
EPC069-12 is meant for documents that also show the payment data as plain text, such as paper or digital invoices. Some large Austrian billers, such as telecom and energy companies, print it on their payment slips.
Germany's banking guideline also allows it on transfer forms for donations, references and neutral payments. Austrian banks read it at branch self-service terminals as well as in their apps. For a code shown only at a till or online checkout, the EPC refers to its URL-based QR code, EPC024-22.
No typed IBAN, an intact reference, and the printed size
Payers copy no IBAN by hand, so they cannot mistype it. EPC069-12 marks name, IBAN, BIC and reference as fixed, and SEPA banks forward the reference unaltered to you, ready for automatic matching.
The generator always encodes level M, which restores about 15% of the codewords: enough for slight stains and paper folds, says the Austrian definition. At 0.5 mm per module, the smallest Finance Finland recommends, the sample measures 18.5 mm, or 22.5 mm with its quiet zone. At the 69-module maximum, the code is 34.5 mm wide.
Downloads, Word mail merges and SAP invoice runs
The generator downloads PNG, GIF or JPG; SVG and higher print resolution come with a plan. TBarCode Office puts each invoice's code into Word mail merges, TBarCode SDK into .NET, ActiveX or DLL applications. In both, choose QR Code, code page UTF-8 and level M, and write line breaks as \n with escape sequences on.
TBarCode/SAPwin draws the code in printed SAPscript and Smart Forms, where SAP passes 70–255 characters per field, depending on the setup; longer data is split across fields. SAP's own PDF generator does not call it, so print PDFs through a Windows PDF printer.
EPC QR code at a glance
- Type
- QR Code (ISO/IEC 18004) with up to 12 lines of data
- Defined by
- EPC069-12 version 3.1 (2024), European Payments Council
- Also known as
- GiroCode (Germany); “Zahlen mit Code” frame (Germany, Austria)
- Payment
- SEPA credit transfer (SCT) in euros, 0.01–999,999,999.99
- Required data
- Beneficiary name and IBAN; BIC in version 001 or with non-EEA banks
- Character sets
- UTF-8 or ISO 8859-1, -2, -4, -5, -7, -10, -15
- Error correction
- Level M, about 15% of codewords restorable
- Capacity
- 331 bytes, up to version 13 (69 × 69 modules)
- Quiet zone
- 4 modules per side
The 12 lines of an EPC QR code
One element per line, in a fixed order; the examples are the EPC's own, for version 002.
| Line | Content | Required | EPC example |
|---|---|---|---|
| 1 | Service tag BCD | Yes | BCD |
| 2 | Version 001 or 002 | Yes | 002 |
| 3 | Character set 1–8; 1 = UTF-8 | Yes | 2 (ISO 8859-1) |
| 4 | Identification SCT | Yes | SCT |
| 5 | BIC, 8 or 11 characters | In 001; in 002 with non-EEA banks | empty |
| 6 | Beneficiary name, up to 70 characters | Yes | François D'Alsace S.A. |
| 7 | IBAN, up to 34 characters | Yes | FR1420041010050500013M02606 |
| 8 | EUR and amount, 0.01–999999999.99 | No | EUR12.3 |
| 9 | Purpose code, up to 4 characters | No | empty |
| 10 | Structured reference, up to 35 characters | No; only 10 or 11 | empty |
| 11 | Remittance text, up to 140 characters | No; only 10 or 11 | Client:Marie Louise La Lune |
| 12 | Information for the payer, up to 70 characters | No | none |
A line feed (LF) or a carriage return plus line feed (CRLF) separates the lines. Empty elements keep their line, and nothing follows the last line with content, so the example ends after line 11.
The generator has no field for lines 9 and 12, so it cannot add the purpose code CHAR that Germany's banking guideline specifies for donation forms. It ends each code after the last line with content, as EPC069-12 requires. The German guideline recommends leaving line 12 unused.
An RF creditor reference is RF, two check digits and up to 21 letters or digits. To check the EPC's RF18539007547034, move RF18 to the end and replace R with 27 and F with 15. Divided by 97, 539007547034271518 leaves 1: the check digits are right.
Version 001 or 002
Version 001 requires the BIC. In version 002 it may stay empty unless a bank in a non-EEA SEPA country, such as Switzerland or the United Kingdom, takes part. The German and Belgian guidelines specify version 002.
Which countries and banks support it
Scanning is optional for banks under EPC069-12, so ask your bank, as the EPC advises. National banking bodies and banks report:
| Country | Source | What it says |
|---|---|---|
| Austria | PSA Payment Services Austria | Banks' apps and branch self-service terminals read it. |
| Germany | German banking associations (2016); Sparkassen | Recommend it as an option on forms and invoices; the Sparkasse app reads it as GiroCode. |
| Belgium | Febelfin (2025) | Almost all banks' apps support it; national guideline from 1 February 2026, with the Belgian structured communication instead of the RF reference. |
| Finland | Finance Finland (2015) | Approved on credit transfer forms; each bank sets its own app schedule. |
| Netherlands | Dutch Payments Association | Some banks' apps read it; the association calls the standard outdated. |
The SEPA credit transfer scheme covers 41 countries (EPC list, 2025). The Sparkasse app also pays codes on invoices from other SEPA countries.
Before you print: size, position and the “Zahlen mit Code” frame
National guidelines set the print size; EPC069-12 does not:
| Country | Size | Position |
|---|---|---|
| Germany | About 25 × 25 mm on invoices, 15 × 15 mm on transfer forms | Invoice: top right corner preferred |
| Austria | Modules of 15–20 mil (0.38–0.51 mm); 0.4 mm on payment slips | Invoice: lower left or right edge |
| Belgium | At least 2 × 2 cm | On the invoice, not on the transfer form |
| Finland | Modules of 0.5 mm or more | Top right corner of the transfer form |
- Quiet zone and frame: keep 4 modules clear on every side. On invoices in Germany and Austria, a frame runs at that distance, with “Zahlen mit Code” on the right, sans serif, at least 7 pt.
- Plain text: print the same data beside the code. On German payment slips, the printed text takes priority if the two differ.
Common mistakes in EPC QR code data
The generator checks none of the following, nor the IBAN's check digits:
- Reference and payment note together. EPC069-12 allows only one of the two lines. Put the invoice number in one of them.
- Too much text. EPC069-12 caps the payload at 331 bytes, a limit PSA bases on phone cameras. The generator writes UTF-8, where ä or é take two bytes each: shorten long names and notes.
- Separators in the amount. The amount takes a dot as decimal sign and no thousands separators: type
1000.50in the generator, not1.000,50, which it misreads. The generator drops trailing zeros (EUR1000.5), as the German and Austrian guidelines ask. - Characters outside the allowed set. German banks may convert ü to u or ue, ß to s or ss and
&to+; other characters can stop processing at the bank. Plain letters, digits, spaces and' : ? , - ( + . ) /are safe.
EPC QR code or another payment code
The Swiss QR Code on QR-bills pays into CH or LI IBANs, in francs or euros, and has a Swiss cross in the middle.
A plain QR Code with a link leads to a store's payment page; the EPC QR code opens a ready transfer in the banking app.
Frequently asked questions
Learn more about EPC QR code.
Is GiroCode the same as an EPC QR code?
Can I create an EPC QR code without an amount?
Can an EPC QR code be scanned with the phone camera?
Can a fraudster change the IBAN in an EPC QR code?
More resources
QR Code® (2D Barcode)
QR Code ® is a two-dimensional barcode created by the Japanese corporation Denso-Wave in 1994. The QR is derived from Quick Response , as the code is intended…
ProductTBarCode SDK
The developer package for Windows: .NET, OCX and DLL components generate and print 100+ barcode symbologies from your applications.
ProductTBarCode Office
Add compliant barcodes to documents, mail merges and spreadsheets.
ProductTBarCode/SAPwin
The Barcode DLL for SAP: print barcodes from SAPscript, Smart Forms and ABAP on almost every printer – via SAPSprint, SAPGUI or WWI.