Thousands of Greek businesses run on old, proven invoicing software. Programs that have been working reliably for decades, that users know inside out, that cover exactly what they need and not one click more. You know the person I mean, the one who issues an invoice with their eyes closed because they have been doing it their whole working life. Then came myDATA: every invoice must be transmitted electronically to the Greek tax authority (AADE).

For a modern cloud application this is trivial. One button, and the invoice is gone. For a program written in 16bit Clarion 5.5, with no internet capability whatsoever, it looks like a dead end. And the usual “solution” you will hear is always the same one, replacement: throw away the program that works, buy a new one, retrain the users, migrate the data and hope everything goes well. Hope. Lovely engineering, wouldn’t you say?

There is another way. Let us look at it.

Let us look first at what we were up against

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. What does that mean in practice? That it cannot open an internet connection, let alone strike up a conversation with a modern REST API. It is a bit like asking someone without a phone to text you. And because obstacles rarely arrive alone, Greek characters in such old environments are encoded differently from what myDATA expects. So even if it could speak, it would be speaking a different dialect.

And the most important requirement, the one that was never up for negotiation: 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. Full stop.

The bridge I built between them

I did not try to teach the old program new tricks, because it was never going to learn them. I gave it an interpreter instead. I designed a bridge that sits between the program and the tax authority. Every invoice issued goes to myDATA, with the Greek characters intact, and the program gets back the MARK (the official registration number) and the QR code for the printout, and archives them automatically.

All of this happens silently. No black window flashing open and shut, no dialog begging for attention, no “please wait” leaving you to wonder whether it froze or is merely thinking. 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. The bridge is invisible. And the best technology, the way I see it, is the kind nobody notices.

So what came of it

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, because changes always come, they are one of the few certainties in life: 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. Every time I think about it, I smile a little.

Why it matters in the end

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. The goal was never for the program to be new. The goal was for it to do its job.

So the person who has been issuing invoices their whole working life keeps issuing them exactly as before, eyes closed. Only now, without ever needing to know it, they are also talking to the tax authority.

If your business runs on an older commercial program that needs to talk to myDATA, a bank or an e-shop, that is something I take on. I look at whether and how the program can be connected, tell you what the connection involves and, if we go ahead, build it without changing the way its users work. Send me through the contact form the name of the program and what it needs to connect to. This work is part of web applications and integrations.

The whole picture: this article covers one part of a larger subject. If you are after the whole of it, from commissioning to replacement, it is in the guide to your website.