[GNC-dev] EPC QR code

John Ralls jralls at ceridwen.us
Sun Jan 16 17:38:32 EST 2022



> On Jan 16, 2022, at 1:18 PM, Rainer Dorsch via gnucash-devel <gnucash-devel at gnucash.org> wrote:
> 
> Am Sonntag, 16. Januar 2022, 19:07:21 CET schrieb Rainer Dorsch via gnucash-
> devel:
>> Am Sonntag, 16. Januar 2022, 18:07:31 CET schrieb john:
>>>> On Jan 16, 2022, at 8:37 AM, Rainer Dorsch via gnucash-devel
>>>> <gnucash-devel at gnucash.org> wrote:
>>>> 
>>>> Hello,
>>>> 
>>>> many thanks for all the effort you put in gnucash. It is a really useful
>>>> and very stable tool and that for many years (even decades!)
>>>> 
>>>> I recent times I often see QR codes on invoices. I quick search revealed
>>>> that they are standardized by the European Payments Council
>>>> 
>>>> https://en.wikipedia.org/wiki/EPC_QR_code
>>>> 
>>>> Is there any plan to support reading these QR codes with e.g. the laptop
>>>> camera and extract the data required for the  SEPA credit transfer?
>>> 
>>> There isn't, and adding the ability to access the camera would involve
>>> adding GStreamer as a dependency, not an easy task.
>> 
>> Thanks for you quick reply.
>> 
>> I dug somewhat more:
>> 
>> There is a tool QtQR which e.g. produces
>> 
>> BCD
>> 001
>> 1
>> SCT
>> SOLADES1TUB
>> Landkreis T羹bingen - Kreiskasse
>> DE43641500200000000048
>> EUR693.00
>> 
>> 
>> 5.1099.220039.0
>> Geb羹hrenbescheid-Nr. 20220039 vom 12.01.2022
>> 
>> (the "Asian" letters should be the German umlaut ü, not sure what is going
>> wrong there)
>> 
>> So calling an external tool would probably be sufficient and using the
>> response.
>> 
>> 
>> QtQR is using python3-qrtools under the hood, which are less then 300 lines
>> of code.
>> 
>> python-qrtools has a
>> 
>>    def decode_webcam(self, callback=lambda s:None, device='/dev/video0'):
>> 
>> function.
>> 
>> Since I scan the invoices with the qrcode anyways using a pdf file as data
>> source would also be a good approach, though it seems with python3-qrtools
>> the webcam approach is more straight forward.
>> 
>> I can do more experimenting with python3-qrtools if you think the approach
>> is viable and somebody is willing to do the gnucash integration:
>> - Add a button in the SEPA transfer dialog
>> - Call an external tool
>> - Process the data as defined by the EPC QR code
>> - Fill them in the fields of the SEPA transfer form
> 
> I thought I do a quick test:
> 
> rd at h370:~/tmp.nobackup$ cat test-ecr-qrcode.py
> import qrtools
> 
> ecr=qrtools.QR()
> ecr.decode("Screenshot_20220116_183429.png")
> print(ecr.data_to_string().decode("utf-8"))
> rd at h370:~/tmp.nobackup$ python3 test-ecr-qrcode.py 
> BCD
> 001
> 1
> SCT
> SOLADES1TUB
> Landkreis T羹bingen - Kreiskasse
> DE43641500200000000048
> EUR693.00
> 
> 
> 5.1099.220039.0
> Geb羹hrenbescheid-Nr. 20220039 vom 12.01.2022
> 
> rd at h370:~/tmp.nobackup$ 
> 
> All data is there, the umlaut probably needs more investigation. I suspect 
> some mapping or filter needs to be added to the Python code, since the QRCode 
> accepts UTF-8 but a SEPA transfer supported character set is limited.

GnuCash has python bindings but does not itself use python internally so python-qrtools is not a useful approach, sorry.

Regards,
John Ralls



More information about the gnucash-devel mailing list