Developer Uses Vibe Coding to Build Bill Payment Tool
A German programmer used Vibe Coding to build a SEPA QR code payment tool for banking apps using Go and SQLite.

Stock photo for illustration only, not from the actual event
- A software developer experimented with Vibe Coding to solve everyday paper invoice management problems.
- Leveraged the EPC QR code standard for SEPA credit transfers to convert payment data into bank-readable codes.
- Built the system using the Go language, the qrencode utility, SQLite database, and self-contained HTML documents.
- Expanded the application to include payment history search and notes to streamline recurring transactions.
Previously, an article explored when 100% Vibe Coding is acceptable, concluding that it works well when humans own the invariants, understand constraints, and have reliable ways to verify outputs, with AI acting as a fantastic accelerator. Recently, that theory was put to the test once again.
Living in Germany means dealing with a massive influx of paper invoices and notices delivered in envelopes. Sorting through this physical pile often leads to the tedious task of manually copying recipient names, IBANs, amounts, and payment references into banking applications, even with modern apps offering prefill photo features.
The initial idea was straightforward: pack all payment details into a single QR code. As it turns out, others in Europe pioneered this concept 14 years ago through the EPC QR code standard for SEPA credit transfers, commonly known as the GiroCode, which relies on structured text beneath banking terminology.
The structured EPC payload follows specific formatting rules:
- BCD 002 1 SCT
- Example Recipient
- DE69670400440672013000
- EUR 12.34
- Invoice 2026-001
Encoding this payload into a QR code allows compatible banking apps to automatically populate recipient details, IBANs, amounts, and references upon scanning, subject to a maximum transfer limit of 999,999,999.99 euros.

Stock photo for illustration only, not from the actual event
Embracing a "boring" software architecture philosophy means selecting mature, proven tools that reliably solve specific problems without adding unnecessary complexity or external dependencies, keeping maintenance overhead to an absolute minimum.
Rather than asking AI to build the entire application at once, the development process proceeded incrementally: establishing project structure, implementing the EPC payload and tests, integrating qrencode boundaries, generating self-contained HTML documents, and building CLI payment acceptance capabilities.
"This is my favorite kind of software architecture: boring."
Project Developer
The application was successfully tested in a real scenario by creating a payment entry for Wikimedia e. V. with an amount of 6.79 euros. The system validated the payment, generated the EPC payload, produced a base64-embedded HTML receipt, and archived the record in SQLite before a successful live bank transfer test.
Source: Dev.to
Found something wrong in this article? Report an issue with this article
Comments
Leave a Comment