Free EPC / GiroCode QR code generator

OpenQR

Checksum-validated (mod-97) before you print; spaces are stripped.

As the bank knows it, up to 70 characters.

Only needed outside the Single Euro Payments Area.

Dot decimals. Empty lets the payer choose.

Four characters, e.g. GDDS.

Up to 140 characters, shown to the payer.

· Enter the beneficiary name.

· Enter an IBAN.

Enter an IBAN and beneficiary name to see your EPC / GiroCode.

Pre-fill a SEPA transfer with one scan

Enter an IBAN, beneficiary name and optional amount, and download an EPC QR code (also sold as GiroCode in Germany, BezahlCode on invoices) that European banking apps scan to open a pre-filled SEPA credit transfer. The payer confirms and sends — the code carries transfer details, not a payment instruction, so it works with the bank the customer already uses. Free, no sign-up, no watermark, generated entirely in your browser.

To make yours:

  1. 1

    Enter the IBAN

    Spaces are fine — they are stripped. The generator validates the IBAN checksum (mod-97), because one wrong digit sends a transfer nowhere.

  2. 2

    Name and optional BIC

    The beneficiary name as the bank knows it. A BIC is only needed for accounts outside the Single Euro Payments Area; inside it, banks resolve from the IBAN.

  3. 3

    Amount, reference or text

    A fixed EUR amount, and either a creditor reference (ISO 11649, RF…) or a free remittance text — one of the two, not both, matching the spec.

  4. 4

    Download and scan-test

    PNG for screens, SVG for print. Scan with a German or Austrian banking app to see the pre-filled transfer.

What an EPC code contains

Ten to eleven lines in the EPC069-12 layout: service tag, version, character set, the SCT scheme identifier, BIC, name, IBAN, optional EUR amount, purpose, and remittance information. It is static: the same details every scan, no expiry, no confirmation coming back. The payer's app always shows the transfer for approval before anything moves.

Where EPC codes earn their keep

GiroCode is a fixture of German invoicing: the code sits on the PDF or letter, the accounts payable clerk scans it, and the transfer is typed in — reference included, so incoming payments reconcile themselves. The same pattern suits club membership invoices, utility bills, school fees, charity donation slips and public-sector payment requests anywhere in the eurozone. For physical retail, note that EPC is a transfer-initiation code, not a card replacement: it pre-fills, the bank executes a normal SEPA transfer, which can take a day rather than seconds.

NameWhere you'll see it
EPC QR CodeThe European Payments Council's own name (EPC069-12 guideline)
GiroCodeGerman retail banking's branding
BezahlCodeCommon on German invoices and payment requests
SEPA QR codeGeneric shorthand used across the eurozone

Getting the details right

The amount is euros with a dot as decimal separator (EUR123.45), optional, and capped by the spec at EUR 999,999,999.99. The character set is narrower than the whole of Unicode: Latin letters, digits and the euro sign are safe, and the form warns you about anything a banking app may not read instead of failing you. A creditor reference and a free remittance text are mutually exclusive in the spec — the form enforces that for you. Prefer the customer to choose the amount? Leave it empty and the app opens with a blank field.

Also collecting in Brazil or India? The PIX generator and UPI generator build those markets' equivalents; all three sit in the payment QR codes section. Printing onto invoices? The print-size guide covers minimum sizes, and the logo guide keeps a branded code scannable.

Yes. GiroCode is German banking's brand for EPC QR codes; BezahlCode and SEPA QR code are other names for the same EPC069-12 payload. One code, every name.