Europe's payment QR codes are plain text with just 12 line-break-separated fields
Payment QR codes used across Europe follow the EPC069-12 standard set by the European Payments Council, and their payload is simply 12 plain-text elements separated by line breaks — no binary framing or JSON involved. The format, marketed by German banks as GiroCode, encodes details like the beneficiary name, IBAN, and transfer amount, all within a strict 331-byte limit. One notable constraint is that the standard supports only euros, ranging from €0.01 to €999,999,999.99, with no provision for other currencies. Crucially, the format contains no digital signature, meaning nothing in the code verifies who created it — a security consideration highlighted by the author. The author, who runs ibanchecker.cash, also flagged a real-world bug where their generator mistakenly placed the bank name instead of the account holder's name in the payee field, causing apps to suggest paying the bank directly.
This is an AI-generated summary. ShortSingh links to the original source for the complete article.
Discussion (0)
Log in to join the discussion and vote.
Log in