# Girocode

> Source: https://docs.barcoder.ai/docs/standards/girocode
> research date 2026-05-29 · extracted at 2026-10-03
> Publisher: Barcoder — encyclopedia of QR, barcode and payment-code standards

Specifications:
- [EPC069-12 — Quick Response Code Guidelines (EPC)](https://www.europeanpaymentscouncil.eu/document-library/guidance-documents/quick-response-code-guidelines-enable-data-capture-initiation)
- [EPC QR code — Wikipedia](https://en.wikipedia.org/wiki/EPC_QR_code)

## Overview

**Girocode** is the German national branding of the pan-European [EPC QR / Stuzza](https://docs.barcoder.ai/docs/standards/epc-qr) standard — the same EPC069-12 BCD-format payload, locally promoted by **Die Deutsche Kreditwirtschaft (DK)** under a distinct German name since 2018 <sup>[1][1], [2][2], [Germany report](https://docs.barcoder.ai/docs/payments/DE)</sup>. It is widely used on German invoices for one-scan SEPA Credit Transfer initiation in mobile banking apps. Girocode is mandatory-compatible across **all major German banks (three-pillar system: private commercial, Sparkassen, cooperatives)** <sup>[Germany report](https://docs.barcoder.ai/docs/payments/DE)</sup>.

In strict technical terms, **Girocode == EPC QR Code** — there is no Germany-specific payload extension; the difference is only the branding name DK adopted to promote the standard domestically <sup>[1][1], [3][3]</sup>.

## History

The underlying [EPC QR / Stuzza](https://docs.barcoder.ai/docs/standards/epc-qr) standard was pioneered by Austrian payment-standards body STUZZA in 2012 and published as **EPC069-12 by the European Payments Council in February 2013** <sup>[3][3], [4][4], [Austria report](https://docs.barcoder.ai/docs/payments/AT)</sup>. Country-by-country adoption followed:

| Year | Country | Brand |
|---|---|---|
| 2012 | Austria | Stuzza QR / *Zahlen mit Code* <sup>[Austria report](https://docs.barcoder.ai/docs/payments/AT)</sup> |
| 2013 | EPC publishes EPC069-12 | — |
| 2015 | Finland | EPC QR |
| 2015 | Germany | Initial Girocode availability |
| **2018** | **Germany** | **Girocode brand actively promoted by DK** <sup>[1][1]</sup> |
| 2016 | Netherlands, Belgium | EPC QR |

The **2018 active promotion by DK** <sup>[1][1]</sup> marks Girocode's transition from a niche option to a mainstream invoice-payment standard in Germany — coinciding with smartphone QR-scanning capability becoming ubiquitous and the iOS Camera app gaining native QR detection.

**Recent context (2024–2025) affecting Girocode's deployment landscape** <sup>[Germany report](https://docs.barcoder.ai/docs/payments/DE)</sup>:
- **31 December 2024** — Giropay (a separate online banking redirect product, often confused with Girocode) discontinued.
- **July 2024** — Wero launched in Germany (P2P first, online commerce summer 2025, NFC POS 2026). Wero is an EPI (European Payments Initiative) product positioned to gradually replace several legacy national payment instruments — though Girocode for invoice payment remains active.
- **January 2025 / October 2025** — SEPA Instant Credit Transfer mandatory receiving / sending dates in Germany. SEPA Instant on the rail behind Girocode means scanned-invoice payments now settle in seconds rather than next day <sup>[Germany report](https://docs.barcoder.ai/docs/payments/DE)</sup>.

## Technical specification

Girocode uses the **identical BCD (Beneficiary Credit Data) payload format** as the pan-European [EPC QR / Stuzza](https://docs.barcoder.ai/docs/standards/epc-qr) standard <sup>[3][3], [4][4]</sup>. The payload is plain text with **11 newline-separated fields**:

| # | Field | Max length | Required |
|---|---|---|---|
| 1 | Service Tag | 3 | Yes — always `BCD` |
| 2 | Version | 3 | Yes — `001` or `002` |
| 3 | Character set | 1 | Yes — `1`–`8` (1 = UTF-8) |
| 4 | Identification | 3 | Yes — always `SCT` (SEPA Credit Transfer) |
| 5 | BIC | 11 | Mandatory in v001; optional within EEA in v002 |
| 6 | Beneficiary name | 70 | Yes |
| 7 | IBAN | 34 | Yes |
| 8 | Amount | 12 | Optional, format `EUR<value>` |
| 9 | Purpose code | 4 | Optional, ISO 20022 purpose codes |
| 10 | Structured reference (RF) | 35 | Optional (mutually exclusive with field 11) |
| 11 | Unstructured remittance info | 140 | Optional (mutually exclusive with field 10) |

**QR symbology** [[epc-ref]]:
- Underlying symbology: [QR Code](https://docs.barcoder.ai/docs/standards/qr-code) (ISO/IEC 18004)
- Error correction level: **M** (mandated)
- Maximum QR version: **13** (i.e. ≤ 331 bytes of payload)
- Encoding mode: Byte

**Sample German Girocode payload** <sup>[Germany report](https://docs.barcoder.ai/docs/payments/DE)</sup>:

```
BCD
002
1
SCT
DEUTDEFF
Max Mustermann GmbH
DE89370400440532013000
EUR150.00
RINV

Rechnung Nr. 12345
```

**German IBAN structure** <sup>[Germany report](https://docs.barcoder.ai/docs/payments/DE)</sup>:
```
DE + 2 check digits + 8-digit bank code + 10-digit account number
Example: DE89370400440532013000 (22 characters)
```

**Common German BICs** <sup>[Germany report](https://docs.barcoder.ai/docs/payments/DE)</sup>:
- Deutsche Bank: `DEUTDEFF`
- Commerzbank: `COBADEFF`
- DZ Bank: `GENODEFF`

## Use cases

Girocode is **invoice-payment infrastructure** — single-purpose by design, but the deployment surface in Germany is broad <sup>[Germany report](https://docs.barcoder.ai/docs/payments/DE)</sup>:

- **Printed utility bills** — electricity, gas, telecom, internet invoices. Pre-printed Girocode on the invoice; consumer scans with banking app camera.
- **Government and tax notices** — federal *Steuerbescheide* (tax assessments), municipal fees (*Gebühren*), social-insurance contributions.
- **Donation requests** — NGOs, religious organisations, charities print Girocode on flyers and mailings.
- **Health insurance and other recurring billers** — premium reminders carry Girocode.
- **B2B supplier invoices** — printed or PDF invoices with Girocode payable in one scan, often using SCOR structured reference (RF format) for accounting matching <sup>[3][3]</sup>.
- **POS-adjacent use cases** — some German cash registers print Girocode on receipts for split-the-bill / pay-later workflows; relatively niche compared to invoice usage.

**German banking-app coverage** <sup>[Germany report](https://docs.barcoder.ai/docs/payments/DE)</sup>:
- **Sparkasse app** — most-downloaded German banking app (9M+ downloads); Girocode scan + Photo Pay (camera scan of paper invoices).
- **Deutsche Bank app** — *Smart Transfer* with camera; Girocode scan + photo capture of PDF/JPG invoices.
- **Commerzbank**, **VR Banking** (Volksbanken/Raiffeisenbanken), **ING Germany**, **N26** — all support Girocode scan natively.

**Photo Payment** is a German-specific adjacent capability: bank apps that scan paper invoices using OCR (not Girocode QR specifically) — useful for invoices issued before Girocode adoption. Photo Pay and Girocode coexist in the same banking-app UI <sup>[Germany report](https://docs.barcoder.ai/docs/payments/DE)</sup>.

## Implementations

Girocode shares the [EPC QR / Stuzza](https://docs.barcoder.ai/docs/standards/epc-qr) implementation ecosystem — any EPC-QR library generates Girocode-compatible payloads.

**Encoder libraries:**
- **JavaScript** — [d13nde/EPC-GiroCode][5] — JavaScript Girocode generator <sup>[5][5]</sup>.
- **Python** — [Segno][6] — high-quality QR library with `segno.helpers.make_epc_qr()` helper that produces a Girocode/EPC-QR payload <sup>[6][6]</sup>.
- **PHP** — [smhg/sepa-qr-php][7] — 51★, 2020 — generates SEPA / EPC QR codes (Girocode-compatible) <sup>[7][7]</sup>.
- **PHP** — [RikudouSage/QrPaymentEU][8] — broader EU payment library including Girocode <sup>[8][8]</sup>.
- **.NET** — DevExpress XtraReports ships `QRCodeEPCGenerator` as a barcode component <sup>[9][9]</sup>.

**German-specific tooling:**
- **easybill, billbee, lexware, Datev** and other German billing/accounting software packages generate Girocode on invoices automatically <sup>[1][1]</sup>.
- **Hosted generators** — [girocodegenerator.com][1] and similar German-language services <sup>[1][1]</sup>.

**Bank apps** (canonical production scanning implementations) — see Use cases section above <sup>[Germany report](https://docs.barcoder.ai/docs/payments/DE)</sup>.

## Comparison

**vs. [EPC QR / Stuzza](https://docs.barcoder.ai/docs/standards/epc-qr) (pan-European parent standard)** — Strictly identical at the payload level. Girocode is a German *brand* for EPC QR, not a technical variant. The same Girocode payload is readable by Austrian Stuzza-QR-aware apps, Finnish bank apps, etc. The branding choice was DK's marketing decision to make the German payment landscape more recognisable to consumers <sup>[1][1], [3][3], [Austria report](https://docs.barcoder.ai/docs/payments/AT)</sup>.

**vs. [Swiss QR-bill](https://docs.barcoder.ai/docs/standards/swiss-qr-bill) (Switzerland's national invoice QR)** — Both serve the invoice-payment niche in DACH (German-speaking Europe) but with markedly different design choices. Swiss QR-bill uses an ISO 20022 pain.001-derived payload with **31–34 fields** including QRR 27-digit reference and structured billing-info; Girocode uses an 11-field BCD payload (much simpler) <sup>[Switzerland report](https://docs.barcoder.ai/docs/payments/CH), [3][3]</sup>. Switzerland is non-EU and built its own; Germany adopted the pan-European one. Both standards are used heavily in the German-speaking world but for different countries.

**vs. [HUB3](https://docs.barcoder.ai/docs/standards/hub3) (Croatia's invoice barcode)** — Different symbology entirely: HUB3 uses [PDF417](https://docs.barcoder.ai/docs/standards/pdf417) not [QR Code](https://docs.barcoder.ai/docs/standards/qr-code). HUB3 is mandatory in Croatia for domestic payment slips; Girocode is non-mandatory in Germany but de facto universal [[hub3-ref]].

**vs. earlier German alternatives**:
- **Photo Payment / Smart Transfer** — German banks' OCR-scanning of paper invoices. Coexists with Girocode in the same banking-app UI; Photo Pay handles invoices without Girocode, Girocode is the structured fast path when present <sup>[Germany report](https://docs.barcoder.ai/docs/payments/DE)</sup>.
- **Bezahlcode** (older German alternative, mostly superseded) — a pre-EPC QR-payment proposal from the early 2010s with its own format, never gained traction once EPC QR / Girocode arrived.

## Fun facts

The "Girocode" brand name reflects a deliberate alignment with Germany's existing **Girokonto** (current/checking account) terminology — making the standard immediately legible to German consumers as "the QR code for your Giro account" <sup>[1][1]</sup>. Most other countries kept the EPC QR name; Germany localised the branding.

The standard is **technically identical to Austria's Stuzza QR** <sup>[Austria report](https://docs.barcoder.ai/docs/payments/AT)</sup> — a German consumer scanning an invoice from an Austrian supplier in their German banking app gets the same auto-populated SEPA Credit Transfer experience as scanning a domestic Girocode. The pan-European single-format was the explicit EPC design goal.

Germany's **three-pillar banking structure** (private commercial banks, Sparkassen savings banks, Volksbanken/Raiffeisenbanken cooperatives) historically slowed payment-standard adoption — every change required consensus across three sub-sectors with different governance <sup>[Germany report](https://docs.barcoder.ai/docs/payments/DE)</sup>. Girocode's cross-pillar promotion by DK starting 2018 was a notable demonstration that consensus was achievable; **all three pillars' apps support Girocode scanning today** <sup>[Germany report](https://docs.barcoder.ai/docs/payments/DE)</sup>.

## Status

**Active, widely deployed.** Most recent context <sup>[Germany report](https://docs.barcoder.ai/docs/payments/DE)</sup>:
- **All major German banks** (across the three-pillar system) support Girocode scanning in their apps
- **Actively promoted by Die Deutsche Kreditwirtschaft (DK) since 2018**
- Used by all major billing categories (utilities, government, B2B, donations)
- Underlying SEPA Credit Transfer rail now settles instantly via SEPA Instant (mandatory in Germany Jan / Oct 2025) <sup>[Germany report](https://docs.barcoder.ai/docs/payments/DE)</sup>
- 1 300+ German institutions offering SEPA Instant (highest in Europe) — improves Girocode-initiated transfer settlement speed <sup>[Germany report](https://docs.barcoder.ai/docs/payments/DE)</sup>

**Future trajectory** <sup>[Germany report](https://docs.barcoder.ai/docs/payments/DE)</sup>:
- **Wero** (European Payments Initiative, launched in Germany July 2024) may eventually overlap Girocode's invoice-payment niche — Wero's QR code feature is on the 2025 / 2026 roadmap. No formal Girocode deprecation planned; the two are expected to coexist for the medium term.
- **EPC QR specification** continues to evolve (current v2.10, June 2024) — Girocode tracks the latest revision automatically as a re-brand rather than a fork [[epc-ref]].

## Sources

[1]: https://www.girocodegenerator.com/wissen/epc-standard
[2]: https://www.easybill.de/blog/der-epc-qr-code-oder-auch-girocode-genannt
[3]: https://en.wikipedia.org/wiki/EPC_QR_code
[4]: https://www.europeanpaymentscouncil.eu/document-library/guidance-documents/quick-response-code-guidelines-enable-data-capture-initiation
[5]: https://github.com/d13nde/EPC-GiroCode
[6]: https://segno.readthedocs.io/en/latest/epc-qrcodes.html
[7]: https://github.com/smhg/sepa-qr-php
[8]: https://github.com/RikudouSage/QrPaymentEU
[9]: https://docs.devexpress.com/XtraReports/404607/detailed-guide-to-devexpress-reporting/use-report-controls/use-bar-codes/epc-qr-code
[10]: https://de.wikipedia.org/wiki/Girocode
[de-cro]: https://docs.barcoder.ai/docs/payments/DE
[at-cro]: https://docs.barcoder.ai/docs/payments/AT
[ch-cro]: https://docs.barcoder.ai/docs/payments/CH
[epc-ref]: https://docs.barcoder.ai/source/standards/epc-qr
[hub3-ref]: https://docs.barcoder.ai/source/standards/hub3

1. [Girocode-EPC-Standard erklärt — girocodegenerator.com][1]
2. [EPC-QR-Code/GiroCode — easybill][2]
3. [EPC QR code — Wikipedia][3]
4. [EPC069-12 Quick Response Code Guidelines — EPC][4]
5. [d13nde/EPC-GiroCode — GitHub][5]
6. [EPC QR Codes — Segno docs][6]
7. [smhg/sepa-qr-php — GitHub][7]
8. [RikudouSage/QrPaymentEU — GitHub][8]
9. [EPC QR Code Generator — DevExpress XtraReports][9]
10. [Girocode — Wikipedia (Deutsch)][10]
11. [DE-germany.md]<sup>[Germany report](https://docs.barcoder.ai/docs/payments/DE)</sup>

## Deployments

Found in the following country reports (grep across `reports/countries/`):

- **DE** — [DE-germany.md](https://docs.barcoder.ai/docs/payments/DE)
