Skip to content
UseQR

QR code type

EPC QR codes (GiroCode) — SEPA credit transfers explained

An EPC QR code — also called GiroCode — encodes a SEPA credit transfer as a short line-based text block containing the beneficiary name, IBAN and optionally an amount. European banking apps read it and prefill a transfer. The payer still authorises it; nothing is charged automatically.

The payload

Twelve lines, in fixed order, per European Payments Council guideline EPC069-12:

BCD
002
1
SCT
BPOTBEB1
Red Cross
BE72000000001616
EUR12.00
CHAR
RF18539007547034
Thanks for your support
Line Field Notes
1 Service tag Always BCD
2 Version 001 requires a BIC, 002 does not
3 Character set 1 = UTF-8
4 Identification Always SCT (SEPA Credit Transfer)
5 BIC Optional in version 002
6 Beneficiary name Max 70 characters
7 IBAN Max 34 characters, no spaces
8 Amount EUR + value, 0.01 to 999999999.99
9 Purpose code Optional, up to 4 characters, ISO 20022
10 Structured remittance ISO 11649 creditor reference
11 Unstructured remittance Max 140 characters
12 Beneficiary to originator information Rarely used

Lines 10 and 11 are mutually exclusive — supply one or the other, never both.

The 331-byte ceiling

The whole payload must not exceed 331 bytes. This is a guideline limit, not a QR limit, and banking apps enforce it. A long beneficiary name plus a 140-character remittance line will hit it. Trim the remittance first.

IBAN validation is worth doing before you print

An IBAN is two letters of country code, two check digits, then up to 30 alphanumeric characters. The check digits are a mod-97 checksum over the rearranged string. UseQR validates it, which catches the transposed digits that would otherwise produce a code that generates cleanly and fails at the bank — after printing.

Where it works

GiroCode is strongest in the German-speaking market: Sparkasse, Volksbank, most German and Austrian banking apps, and many Swiss ones read it natively. Support elsewhere in the eurozone is patchy — a French or Spanish app may not recognise it at all.

Switzerland has its own, incompatible standard: the Swiss QR-bill, which uses a Swiss cross in the centre and a different payload. Do not substitute one for the other.

For anything printed for a pan-European audience, print the IBAN as text as well.

Best uses

  • Invoices: the classic case. Amount, IBAN and creditor reference all prefilled means no transposed digits and much faster reconciliation.
  • Donation appeals: a fixed amount plus a purpose code.
  • Membership renewals and standing charges.

FAQ

Is GiroCode the same as an EPC QR code?

Yes. GiroCode is the German brand name for a QR code following the European Payments Council's EPC069-12 guideline. The payload is identical.

Does the payer get charged automatically?

No. The code prefills a SEPA credit transfer in their banking app; they still authorise it. A QR code cannot move money on its own.

Which banks support it?

It is well supported in Germany, Austria and Switzerland. Elsewhere in the eurozone, support is inconsistent, so always print the IBAN as text alongside the code.

What is the maximum payload size?

331 bytes for the whole block. Long beneficiary names combined with a 140-character remittance line will exceed it — shorten the remittance first.

Can I use it for a Swiss payment?

Switzerland has its own QR-bill standard with a different payload and a Swiss cross in the centre. Many Swiss apps also read EPC codes, but the two formats are not interchangeable.

Try it — free, no signup