Updated 5 min read By Sarah Karbach

GiroCode Payments: How the EPC QR Code Works

A GiroCode puts the data for a SEPA credit transfer into a QR code, allowing a banking app to prefill the transfer form after one scan.

The code can reduce manual entry and typing errors on invoices and donation forms. It is not a payment authorization: Docutain validates the returned IBAN, while the banking app applies its own business rules, presents the values to the user and performs its normal approval process.

Format
EPC QR code
Payment type
SEPA credit transfer
Typical data
Recipient, IBAN, amount, reference
Fallback
Invoice text recognition

What is a GiroCode?

GiroCode is the common name for an EPC QR code used to transport payment data for a SEPA credit transfer. Invoice issuers can print it on paper documents or include it in digital invoices. A compatible banking app scans the code and maps the encoded values to a transfer form.

This is different from a SEPA direct debit. A GiroCode prepares a credit transfer initiated and approved by the payer; it does not give a creditor permission to debit an account.

Which data can a GiroCode contain?

Depending on the invoice and the applicable EPC format, the payload can include:

  • the recipient's name;
  • the recipient's IBAN and, where applicable, BIC;
  • the transfer amount and currency;
  • a structured or unstructured payment reference;
  • optional information intended for the payer.

Docutain returns an IBAN only when it is valid. The banking app should still treat all decoded values as input rather than authorization data, apply its payment rules and display them before the user approves the transfer.

How does paying with GiroCode work?

  1. The invoice issuer creates an EPC-compatible QR code with the intended transfer data.
  2. The user opens the scan or photo-payment function in a compatible banking app.
  3. The app reads the code and prefills its transfer form.
  4. The user reviews recipient, IBAN, amount and reference.
  5. The banking app performs its normal authentication and submits the SEPA credit transfer.

GiroCode compared with invoice OCR

CriterionGiroCodeInvoice text recognition
SourceStructured EPC QR payloadVisible text on the invoice
RequirementA valid code must be present and readableThe relevant fields must be visible and legible
Typical useDirectly decode prepared payment fieldsExtract fields from invoices without a usable code
Best app experienceOne entry point that chooses the suitable extraction path automatically

For this reason, GiroCode and OCR complement each other. A banking app that supports both can process more invoice layouts without forcing the user to choose a separate scanner.

Integrating GiroCode into a banking app

Docutain SDK 1.9 integrates GiroCode extraction into Photo Payment and enables it by default. The same flow can scan a code, capture an invoice or import a PDF or image. If no usable GiroCode is available, invoice text recognition can extract the payment fields.

Developers can follow the Android integration guide for Photo Payment and GiroCode for current dependencies, Kotlin setup, JSON output and a practical test checklist.

Review and security

  • Show recipient, IBAN, amount and reference before authorization.
  • Apply the app's business rules to required fields, amounts, currencies and supported characters.
  • Offer manual correction or invoice OCR when a code is damaged or incomplete.
  • Test printed, screen-displayed and low-contrast codes on physical devices.
  • Keep payment authorization within the banking app's established security controls.

Docutain evaluates supported GiroCode and invoice data locally on the device. The host app controls the returned result and all subsequent payment processing.

FREQUENTLY ASKED QUESTIONS

GiroCode and photo payment




Contact us and receive your quote

Our pricing is tailored to your use case. Let our colleague Harry Beck know how we can help and receive your quote.




Information about how we process your details is available in our Privacy Policy.