dragotin / kraft

Kraft helps to handle your daily quotes and invoices in your small business.
http://volle-kraft-voraus.de
GNU General Public License v2.0
56 stars 18 forks source link

Integrate SEPA Credit Transfer QR-Code #153

Open dragotin opened 2 years ago

dragotin commented 2 years ago

It would be awesome to integrate the SEPA Credit Transfer QR-Code to the Kraft output documents (invoices). With that, customers can easily transfer the money using mobile apps. https://en.wikipedia.org/wiki/EPC_QR_code

https://epc-qr.eu/ provides a free API to generate the QR-Code, which for example German Sparkasse tries to charge for API- or library usage.

The integration should be optional.

noseshimself commented 2 years ago

The EPC-QR code v1 and v2 are encoded text files with positional parameters; data does not have to be sent to any public service yet to get the encoding right. It might be nicer to generate the data, stream it through a subprocess running qrencode, collect the resulting binary data, base64 it and use it as inline data for a png in the intermediate HTML file. You could use it like any other doc.item ({{ %if doc. item }}<div class="girocode">{{ doc.item }}</div>{{ %endif }}) in your template.

If that infrastructure is in place I would like to ask for a second QR-code containing the documents UUID 8-))). If the DMS ever messes up you can at least check for duplicate documents easily by comparing document UUIDs. Unlike EPC codes the UUID has to be QRed only once...

I'm not a C++ programmer but for Python I was using this: https://www.nayuki.io/page/qr-code-generator-library (https://github.com/nayuki/QR-Code-generator) and did not have any problem with it. This way you could avoid calling an external program.