Skip to content
SEPA.tr

SEPA / EPC QR (GiroCode) Generator

Generate a payment QR code in the EPC standard (GiroCode) from the recipient name, IBAN and amount. The payer scans it with their bank's app to auto-fill the recipient and amount.

Updated:

Privacy: The calculation runs in your browser; the full IBAN, account number, amount and reference you enter are not sent to a server, logged or passed to analytics. Some tools may pass only a non-sensitive term (e.g. bank code, BIC, currency) to a lookup service for search/matching. Per-tool detail: Privacy.

How does this tool calculate?

Definite — mathematical/standard result
Method/formula used
EPC069-12 (GiroCode) payload generation + an in-house QR encoder (Reed-Solomon EC-M); the output is verified by decoding it with jsQR.
Data used
EPC069-12 QR standard; for German IBANs, Bundesbank data for BLZ→BIC
Unsupported cases
  • EUR SEPA transfer only
  • Does not prove the IBAN is actually active

What is an EPC QR (GiroCode)?

The payment QR code in the EPC069-12 standard (commonly known as GiroCode) contains the recipient name, IBAN, amount and description of a SEPA Credit Transfer. The payer scans this QR in their bank's mobile app and the payment screen fills in automatically — the risk of mistyping the IBAN disappears.

How do I use this tool?

  1. Enter the recipient details: Name and IBAN are required; amount, description and BIC are optional. If you leave the amount empty, the payer enters it in the app.
  2. Generate QR: The tool produces the payload in the EPC standard, validates it and draws the QR code.
  3. Use it: Display the QR on screen, print it, or save it with "Download SVG" and attach it to an invoice/email. You can also copy the payload text.

BIC auto-fill and bank name

German banking apps usually expect the BIC field to be filled in to recognise the QR instantly. So when a German IBAN (DE…) is entered, the tool auto-fills the BIC and the bank name from the Bundesbank (Germany's central bank) BLZ database (the field is locked) — so the QR becomes a complete GiroCode and the name, IBAN, amount and description appear correctly in the app. The description is written to the EPC standard's free text (unstructured, field 11) field.

Why only Germany? We only have official Bundesbank BLZ→BIC data. For other countries the BIC cannot be reliably derived from the IBAN; since a wrong BIC could cause a payment error we do not make one up. The good news: in SEPA the BIC is optional (the IBAN is enough), so leaving the BIC empty for other countries is fine — you can also enter it manually.

Everything runs in your browser (the BIC lookup uses the edge-cached BLZ API; your IBAN/amount is not sent to a server). It is not guaranteed that the QR will be read by every banking app; test the scan with your own bank.

Related: IBAN validation, how to make a SEPA transfer.

Sources

SEPA scheme rulebooks & geographical scope

European Payments Council (EPC)

A
Document date:
2025
Last checked:
2026-07-16

Other tools