# Girocode explained — Germany's name for the EPC QR code

> Girocode is the German name for the EPC QR code — the same EPC069-12 twelve-line payload that begins BCD and prefills a SEPA credit transfer. It works only when scanned from inside a banking app; a phone camera sees plain text rather than a link, so nothing opens.

Source: https://useqr.app/docs/payments/girocode-explained · Last reviewed 2026-08-21 · UseQR is free forever, MIT licensed, no signup.

---

## One standard, two names

Girocode is not a separate format. It is the German banking sector's branding for the
**EPC QR code**, defined in the European Payments Council's guideline EPC069-12 — a
twelve-line text payload that starts `BCD` and describes a single SEPA credit transfer:
beneficiary name, IBAN, optional BIC, optional amount, optional reference. The
[format page](/docs/payments/epc-qr-code-format) documents every line; this page covers what
the German framing changes, which is mostly expectations.

You will meet the same payload under other names — "Zahlen mit Code" in Austria,
"EPC QR" or "SEPA QR" elsewhere. Scan any of them and the bytes are identical. Generate one
with the [EPC builder](/epc) and it is a Girocode.

## The camera-app trap

The single most useful thing to know about Girocode: **it is not a link.**

A WiFi or URL QR contains something a phone's camera app knows how to act on. A Girocode
contains a block of bank-transfer text. Point an iPhone or Android camera at it and you get,
at best, a preview of raw text beginning `BCD` — no payment screen, nothing to tap. Users
reasonably conclude the code is broken.

The correct flow is to open the **banking app first** and use the app's own scanner —
Sparkasse, Volksbank, comdirect, ING and most other German and Austrian banking apps have a
scan function in their transfer screen. The app parses the twelve lines and prefills the
transfer for confirmation.

If you print Girocodes, print that instruction next to them. "Mit Ihrer Banking-App
scannen" prevents most support queries, and printing the IBAN as text beside the code
rescues everyone whose app lacks a scanner.

## Where it actually works

Support is strongest exactly where the branding exists: Germany and Austria, where reading
Girocodes is a standard banking-app feature. Elsewhere in the eurozone support is
inconsistent — a French or Spanish app may not recognise the payload at all. The
[format page](/docs/payments/epc-qr-code-format) covers this in detail; the practical rule
is that a Girocode on an invoice is an accelerator for DACH customers and a no-op for
others, which is acceptable because the fallback (typing the printed IBAN) always exists.

Note also what a Girocode is not:

- Not the Swiss standard — Switzerland's [QR-bill](/docs/payments/swiss-qr-bill) is a
  separate, incompatible format with a Swiss cross in the centre.
- Not a payment execution — it only prefills. The payer still authorises in their app, and
  [whether it settles instantly depends on the bank's
  rails](/docs/payments/sepa-qr-and-instant-payments), not the code.

## Making one

Use the [EPC generator](/epc): name (≤ **70 characters**), IBAN, optionally amount
(**0.01–999999999.99 EUR**) and a remittance line (≤ **140 characters**). UseQR validates
the IBAN's mod-97 check digits before generating and builds version `002` payloads, which
need no BIC. Keep the whole payload under **331 bytes** — the constraint that bites when a
long name meets a long remittance line.

Then scan the result with your own banking app before it goes on an
[invoice](/docs/payments/epc-qr-on-an-invoice). A code you have not scanned is a code you
have not tested.

## FAQ

### Is Girocode the same as an EPC QR code?
Yes, byte for byte. Girocode is the German banking sector's name for the EPC069-12 QR
payload used across SEPA. "Zahlen mit Code" in Austria refers to the same format.

### Why does my phone camera not read a Girocode?
Because the payload is bank-transfer text, not a URL — the camera app has nothing to open.
Scan it from inside your banking app's transfer screen instead, which parses the payload and
prefills the payment.

### Which banks support Girocode?
Most German and Austrian banking apps read it natively, including Sparkasse and Volksbank
apps. Support elsewhere in the eurozone is inconsistent, so always print the IBAN as text
next to the code.

### Does a Girocode take money from my account when scanned?
No. It only prefills a transfer form — name, IBAN, amount, reference. You review and
authorise the payment in your banking app exactly as with a manually typed transfer.

## Try it

- https://useqr.app/epc
- https://useqr.app/validate
