IBAN Toolkit logoIBAN Toolkit

SEPA QR Code Generator

Create EPC/GiroCode QR codes for invoices: scannable by European banking apps. Free, private, no signup.

Create a SEPA QR code

Fill in the payment details: the QR encodes them per the EPC069-12 standard.

Your QR code will appear here

EPC payload is validated: IBAN checksum is checked, amount is capped at €999,999,999.99, and total payload at 331 bytes per the standard.

How this tool works

This tool is designed for testing, education and workflow prototyping. It validates or generates structurally correct values based on published format rules and clearly states where no live-bank lookup is performed.

Explanatory diagram

What is a SEPA QR code?

A SEPA QR code (officially EPC QR, nicknamed GiroCode in Germany) lets someone pay you by scanning instead of typing. Banking apps across the SEPA area read the code and pre-fill the transfer: recipient, IBAN, amount, and reference. Put one on invoices or donation pages and you get paid faster, with fewer typos.

The EPC069-12 payload

The QR encodes plain-text lines in a fixed order:

LineContentExample
1Service tagBCD
2Version002
3Character set1 (UTF-8)
4IdentificationSCT
5BICCOBADEFFXXX
6Recipient nameAcme GmbH
7IBANDE89370400440532013000
8AmountEUR99.50
9Purpose (optional)SUPP
10ReferenceInvoice 2026-001

Rules worth knowing

  • Amount maxes out at €999,999,999.99; leave it empty for an open amount.
  • The whole payload must fit in 331 bytes.
  • Use either a structured RF creditor reference or free-text remittance: not both.
  • The IBAN is checksum-validated before the QR is drawn, so you never ship a broken code.

Who is it for?

  • Freelancers & small businesses adding scan-to-pay to PDF invoices.
  • Clubs & nonprofits collecting membership fees and donations.
  • Developers embedding payment QRs in checkout and billing flows.

Frequently asked questions

Most banking apps in the SEPA area (Germany, Austria, Netherlands, Belgium, France and others) support scanning EPC/GiroCode QR codes to pre-fill transfers.
No: since 2016 the BIC is optional for SEPA transfers within the standard (version 002). Include it only if your recipient's bank needs it.
Yes: an empty amount creates an open QR where the payer enters the sum. Fixed amounts are better for invoices.
No. The QR is generated entirely in your browser with an embedded open-source library. Nothing is uploaded.
Confirm payment details. A QR code encodes the information supplied; it does not verify the account holder, approve a payment or guarantee bank-app support. Use bank-confirmed receiving details for a real invoice. Use synthetic identifiers only in isolated tests.