The path towards a good-enough software for invoices was quite thorny, I would say. I have been using from self-hosted Craterapp instance for a year and a half. Crater worked almost fine. It had no major issue, I would say. But it had a lot of small-ish issues that bugged me a lot. I mean, it was livable but, hey, this is administrative work. It is not very fun, usually boring and tedious. Using software that makes this even more painful, even though just a little, meant a death by a thousand cuts for me.

I was looking at a solution to this problem for some time. Tried Revolut Business invoicing platform. That was very limited in features. The only upside it had was an automatic payment pairing, which is nice, but for low volume of invoices it was not a deal-breaker. Then I found Paypal had quite a mature invoicing platform built-in as well and fiddled with it for a bit. I would have almost settled there, not for the recommendation from a friend.

Enter faktury-online.com

One year ago I have started using https://faktury-online.com to handle my invoices and a price offers. At first, I was skeptical, I do not even remember why. But since it is made by slovak team, I instantly fell in love, because it had all the bureaucratic hurdles of our country solved, unlike all the aforementioned options, which were either very general or even optimized the most for US.

As a year passed, I ave found no major obstacle in that software. There was just a one catch: I had not backup of the data, apart from PDFs that I keep in electronic form and the accountant keeps in their archive. Disclaimer: I am not associated in any way with faktury-online.com and I have never received any sponsorship from them. If you like them, just go using and pay them, the first year is free.

Back to the backup problem. They offer a backup service, which costs around twice the amount of base fee for the usage, if I am not mistaken. It is still in the low tenths for a whole year, so not expensive at all, but they also offer an API. After considering its abilities, I decided, I'll do backup myself via API.

Backup via API

This recipe needed these ingredients:

  1. script, either in PHP or JS that will call the API and grab all the data
  2. way to store the data, preferably as a JSON file
  3. way to call the script either when I do a change or at least periodically

This was a perfect opportunity to seize Github Actions. I have a lot of free Github Actions minutes just sitting there, and they could be doing some useful automation. But I had not learned how to use it so far, so I pushed myself over the weekend to do it.

The result works well for my needs and can be seen in this template repository. I am not going to explain here what it does or how it is doing, as it is really a crude solution, but someone else could benefit from this and save time. If you are lucky, the README there already contains more information, on how to use it. If not, please ping me somewhere, I'll try to update. Enjoy!