Free Tool Desk

EPC QR / GiroCode Generator

Make a SEPA payment QR code (EPC QR, "GiroCode") from name, IBAN, amount and reference, validated against the EPC guideline. SVG and PNG. In your browser.

Free to use No sign-up required Nothing is uploaded

A payment QR code on an invoice, a poster or a shop counter saves the payer from typing an IBAN. In the euro area the code is called an EPC QR code, in Germany and Austria often "GiroCode" after its original brand; a banking app scans it and fills in name, IBAN, amount and reference.

This generator builds the code exactly as the European Payments Council guideline describes, checks every field while you type, and decodes its own result as a self-test. Payment details stay in the page: they are not stored, logged or sent anywhere.

Loading the tool…

Overview

About EPC QR / GiroCode Generator

The standard. The content follows the EPC guideline EPC069-12, version 3.0 (effective 13 September 2022), "Quick Response Code: Guidelines to Enable the Data Capture for the Initiation of a SEPA Credit Transfer". The text of the code is a fixed list of lines: the service tag BCD, the version (001 or 002), a character-set code (this tool uses 1, UTF-8), the identification code SCT, then the beneficiary's BIC, name and IBAN, the amount in euro, an optional four-letter purpose code, a structured creditor reference or a free-text remittance (not both) and an optional note to the payer. The code is a QR code with error-correction level M and at most version 13, which is a payload of at most 331 bytes.

What is validated. The name (1 to 70 characters, required); the IBAN (format and mod-97 checksum, and the length for the countries in the tool's table, with a notice for others); the BIC (8 or 11 characters; required for version 001, optional for 002); the amount (0.01 to 999,999,999.99 with at most two decimals, optional); the purpose code (four letters); the structured reference (up to 35 characters, with a note when it starts with RF but is not a valid ISO 11649 reference) or the free text (up to 140 characters); the note to the payer (up to 70 characters); no line breaks inside a field; and the total payload size in bytes, counted in UTF-8, because accented characters take more than one byte.

Output. A vector SVG, a PNG, and the encoded text for inspection. The code is decoded again in the page to confirm that the generated image holds exactly the text you intended.

Banks and apps differ. The guideline is informative and optional for payment service providers. Banking apps may ignore fields such as the purpose code, may limit what they accept, or may handle amounts and references their own way. Always read the details shown in your banking app before you confirm a payment. The tool does not create a payment request and does not know whether an account exists.

Compatibility

Supported Formats

EPC QR version 001 and 002, euro (EUR) only, UTF-8 text. Output as SVG or PNG with a four-module quiet zone. IBANs of any country can be encoded; the tool knows the exact length of the IBANs of 36 countries and checksum-checks all of them. The EPC scheme is the SEPA credit transfer; payments in other currencies or schemes are outside it.

Guide

How to Use EPC QR / GiroCode Generator

  1. Enter the beneficiary name and IBAN. The IBAN is checked as you type.
  2. Add the amount if it is fixed (leave it empty to let the payer decide), and a reference or free-text remittance.
  3. Check the preview and the byte count. Fix any message shown.
  4. Download the SVG (best for print) or PNG, and scan the result with a banking app before you use it.

Highlights

Features

  • Built to EPC069-12 Fixed line order, service tag, version, character set, field limits and the 331-byte rule.
  • Validation as you type IBAN checksum, amount range, BIC length, reference rules and byte count with clear messages.
  • Self-test by decoding The generated image is read back and compared with the intended text.
  • Private by design Nothing is stored, logged or sent, and payment data never goes to analytics.

Applications

Use Cases

  • Adding a payment code to an invoice, a club membership letter or a donation page
  • A QR code on a market stall or a shop counter for quick transfers
  • Collecting a fixed amount with a reference for each payer
  • Testing what your banking app does with different fields
  • Putting the code on an invoice PDF with the Add GiroCode to PDF Invoice tool

Good to Know

Limitations

This follows the guideline but cannot guarantee how every banking app reads the code. It does not check that the account exists, that the name matches the IBAN, or that the payer's bank supports QR initiation. Instant payment, recurring payment and other schemes are not part of the EPC QR guideline and are not offered.

The guideline gives no print size for the code. Make the code large enough to scan comfortably (a square of about 3 cm or more is a common choice) and test it on paper with several devices.

This tool runs entirely in your browser — your file is never uploaded to our servers. See our Privacy Policy for full details.

Support

Frequently Asked Questions

Are my payment details stored or sent anywhere?

No. The code is built in your browser. The details are not stored, logged or sent to the server, and none of them goes to analytics.

What is the difference between EPC QR and GiroCode?

GiroCode was the name of the German implementation; the underlying format is the EPC QR code of the European Payments Council. The same code works across the SEPA area where banking apps support it.

Which version should I use?

Version 002 is the current form and leaves the BIC optional for payments inside the EEA. Use 001 only if a recipient system needs it; it requires a BIC.

Why is there a size limit?

The guideline limits the text to 331 bytes so the code stays a QR code of version 13 or smaller and scans well. Special characters count as several bytes.

Can I put both a reference and a free text?

No. The guideline allows either a structured creditor reference or an unstructured remittance, not both. The form enforces this.

My app scans the code but shows different details. Why?

Apps apply their own rules and may drop or rewrite some fields. Check the amount, IBAN and name in the app before paying.

Keep Going

Related Tools