Skip to content

Payments

What is EPC GiroCode (European Payment QR)?

By Codexengr, QR Systems Engineer · Last reviewed: 2026-10-19

The European Payments Council QR format for SEPA credit transfers — a line-based BCD payload with beneficiary, IBAN, and amount that banking apps scan to pre-fill a bank transfer.

GiroCode is the consumer brand name for the EPC QR code: a standardized payload defined by the European Payments Council that encodes a SEPA credit transfer as a scannable QR code. Print it on an invoice, and the customer's banking app scans it and opens a transfer screen with the beneficiary name, IBAN, amount, and reference already filled in — eliminating the transcription errors that plague manual IBAN entry.

The BCD payload format

The payload is a strict line-based structure beginning with the service tag BCD, followed by the version (001), the character encoding indicator (1 for UTF-8), and the function code SCT (SEPA credit transfer). After the header come the business fields in fixed order: beneficiary BIC, beneficiary name (up to 70 characters), beneficiary IBAN, the amount as a currency code plus decimal value (EUR123.45 with a dot separator), an optional 4-character purpose code, a reference (either a structured creditor reference starting with RF or up to 140 characters of unstructured remittance text), and an optional hint line. Each field sits on its own line; empty optional fields are represented by empty lines, and the total payload is capped so the resulting symbol stays practical.

Why banks trust it

Banking apps validate the payload structurally before presenting it: the BCD tag and version must match, the IBAN checksum must verify, and the amount format must parse. Because the data is fully self-contained and static, there is no redirect to compromise and no server that can be taken over to reroute payments — the payer's app shows exactly what the code contains, and the IBAN's built-in check digits catch most corruption or tampering. This static, verifiable design is why the format works for printed invoices that circulate for months.

GiroCode versus EPC QR

The two names describe the same technical format. "EPC QR code" is the standards body's name (defined in the EPC's QR code guidelines for SEPA credit transfers); "GiroCode" is the brand under which German banks and payment providers market it to consumers and businesses. A code generated to the EPC specification scans correctly in any compliant banking app regardless of which name the generator uses.

Practical generation guidance

Generate GiroCodes statically — the payload is final at invoice time and must not depend on any service. Validate the IBAN (including its check digits) before encoding; a single wrong digit produces a valid-looking code that fails at the bank. Keep the beneficiary name within its length limit and prefer the structured RF creditor reference for automated reconciliation, falling back to unstructured remittance text for human-readable references. Test the scan with at least two banking apps, since field-label rendering varies, and print at a size where the modules remain crisp — these codes often appear on invoices printed on office printers, where ink spread is the main enemy.

Diagram description: Annotated GiroCode payload with each line (BCD tag, version, BIC, name, IBAN, amount, reference) labeled, mapped onto a banking app transfer screen with matching fields highlighted.

Frequently asked questions

What is the difference between GiroCode and EPC QR code?

Technically nothing — they are the same format. EPC QR code is the European Payments Council’s standards name; GiroCode is the consumer brand German banks use. Codes generated to the EPC specification work in any compliant banking app.

How is the amount formatted in a GiroCode?

As a three-letter ISO currency code followed by the decimal amount with a dot separator, e.g. EUR123.45. The amount line is one of the fixed-order lines in the BCD payload.

Do GiroCodes work outside the Eurozone?

The format targets SEPA credit transfers, which cover the Eurozone plus several additional European countries. The beneficiary account must be SEPA-reachable; the payer’s bank must support scanning EPC payloads.

Can a GiroCode be tampered with to redirect my payment?

The payload is static and self-contained, so there is no server to compromise. The banking app displays the beneficiary name and IBAN before you confirm — always verify these match the invoice, since a reprinted code could physically replace the original.

Related terms

Related tools