Thousands of Greek businesses run on old, proven invoicing software. Programs that have been working reliably for decades, that users know inside out, and that cover their needs exactly. Then came myDATA: every invoice must be transmitted electronically to the Greek tax authority (AADE).
For a modern cloud application this is trivial. For a program written in 16bit Clarion 5.5, with no internet capability whatsoever, it looks like a dead end. The usual “solution” is replacement: throw away the program that works, buy a new one, retrain the users, migrate the data and hope everything goes well.
There is another way.
The challenge
My commercial program has been in operation since 2003, used by me and by clients. It is written in Clarion 5.5, a 16bit technology: it cannot open an internet connection, let alone talk to a modern REST API. On top of that, Greek characters in such old environments are encoded differently from what myDATA expects.
And the most important requirement: the user should not have to change anything about the way they work. No second application, no extra window, no manual step. They issue the invoice as always and the program takes care of the rest.
The solution
I designed a bridge in Python that sits between the program and the tax authority:
- The program exports the invoice to an XML file and calls the Python routines.
- Python normalizes the characters into the form myDATA requires.
- It transmits the invoice to the myDATA API and receives the MARK (the official registration number) and the URL.
- It generates the QR code for the printed invoice.
- It returns everything to the program through files, and the program archives it all automatically.
All of this happens silently. The user never sees another program running: they issue the invoice and the program informs them whether everything went through or there was a problem. Python is invisible.
The result
The connection has been in production for about 3 years and has transmitted thousands of invoices, for me and for my clients. It keeps up with every change from the tax authority: delivery notes were added recently, and the upcoming connection to an e-invoicing provider is being prepared.
A program from 2003 meets obligations today that did not even exist when it was written - without changing how a single user works.
Why it matters
Software that works does not have to be thrown away because the requirements around it changed. With the right bridge, a legacy system can connect to modern services, stay compliant with legislation, and keep doing what it has always done well.
If your business relies on older software that needs to talk to myDATA, banks, e-shops or any modern service, let’s discuss it. See more about custom web applications and integrations or send me a message through the contact form.