Dev iconDevAug 12, 2026 ~1 min source read

A payment QR code is just twelve lines of text

If you have paid an invoice in Europe recently, you have probably pointed your banking app at a small square and watched it fill in the payee, the IBAN and the amount by itself. I run ibanchecker.cash and I spent the last few weeks on both sides of those squares: generating them and reading them back.

A payment QR code is just twelve lines of text

Share this story

Send the public story page.

Useful takeaways from this story.

If you have paid an invoice in Europe recently, you have probably pointed your banking app at a small square and watched it fill in the payee, the IBAN and the amount by itself.

I run ibanchecker.cash and I spent the last few weeks on both sides of those squares: generating them and reading them back.

The format turned out to be far simpler than most people expect, and a couple of its rules surprised me even after years around IBANs.

Building the complete brief

The page is ready to read now. The fuller skim-friendly version will appear here automatically.

The useful part

If you have paid an invoice in Europe recently, you have probably pointed your banking app at a small square and watched it fill in the payee, the IBAN and the amount by itself. I run ibanchecker.cash and I spent the last few weeks on both sides of those squares: generating them and reading them back. The format turned out to be far simpler than most people expect, and a couple of its rules surprised me even after years around IBANs.

How it works

  • What is actually in there The standard is EPC069-12, published by the European Payments Council.

Details worth keeping

German banks market the result as a GiroCode. The payload is plain text, twelve elements separated by line breaks.

Keep reading in the app

Open the app view to save this story, compare related coverage, and continue from the same source.

Open in app