Skip to main content

📋 E-invoicing is becoming mandatory across EU countries. Download UBL Buddy and be prepared.

Type something to search...

Why I Built UBL Buddy From frustration to app

  • Behind the scenes
  • 14 Jan, 2026
  • 5 min read

It started with an invoice I couldn’t open.

A supplier sent me an email with an attachment. Not a PDF — an XML file. I double-clicked it, and my Mac opened it in a text editor. Lines of code. Angle brackets. Technical jargon. Somewhere in that mess was an amount I needed to pay — but I couldn’t find it.

I did what everyone does: I searched for “open XML invoice”. The results were a mix of online viewers that require you to upload your file, and accounting packages that need a full setup before you can view anything. I didn’t want to do bookkeeping. I just wanted to look at the invoice.

The web viewers gave me pause. Upload your invoice to our server, and we’ll show it to you. I looked at the XML file again. It contained my supplier’s details. IBAN numbers. Amounts. VAT numbers. And I was supposed to send all of that to some random server — just to read an invoice that was already on my own computer?

That didn’t sit right.

This is going to become a much bigger problem

I started digging into the background. The European Union is rolling out e-invoicing across more and more countries. Italy was already mandatory. Germany, Belgium, France, Poland — mandates are coming everywhere. The EU is working on ViDA, a regulation that will require e-invoicing for all B2B transactions across the entire Union.

That means millions of business owners, freelancers, and entrepreneurs are about to receive that same XML file in their inbox. And hit the same wall: how do I open this? The existing solutions — web viewers, heavy accounting packages — work, but they all come with the same trade-off: convenience versus privacy.

Upload your invoice data to someone else, or install software that does far more than you need.

Why doesn’t this exist yet?

The thought kept coming back. As a developer, you think in solutions quickly, and this one seemed so obvious: why isn’t there just an app that opens XML invoices? Like Preview for PDFs, but for invoices.

No account. No upload. No cloud. Just double-click and see the invoice.

A native app that runs locally, works offline, and never lets your invoice data leave your device. Not because privacy is a marketing buzzword, but because there’s simply no reason to send invoice data anywhere when you can process it locally.

I decided to build it.

Building it

The challenge turned out to be bigger than I expected — in an interesting way. “XML invoice” sounds like a single format, but in practice there are dozens of variants. UBL (the standard behind Peppol), XRechnung (Germany), ZUGFeRD (a hybrid PDF/XML format), FatturaPA (Italy). They follow the same principles, but the details differ.

I built UBL Buddy as a native Apple app. Not a web wrapper, not Electron — SwiftUI and AppKit. That was a deliberate choice: I wanted the app to feel like a natural part of macOS and iOS. Double-click an XML invoice, and it opens — just like any other document.

The next step was logical. Once you can view an invoice, you want to pay it. So I built a QR code feature that extracts payment information from the invoice, letting you scan with your banking app and pay instantly. And deep links to banking apps on iPhone, so you can tap once to start the payment with pre-filled details.

Every feature I added, I tested against the same question: does data leave the device? If the answer was yes, I found a different approach. Everything happens locally. The app makes no network connections. Your invoice data is yours — and it stays yours.

Bigger than a local problem

E-invoicing isn’t a European quirk. Australia, New Zealand, and Singapore are already on board. Japan is a Peppol Authority. The United States is running pilots. This is a global shift in how businesses exchange invoices.

That’s why UBL Buddy is available in 17 languages. Not as an afterthought, but because an entrepreneur in Vienna, a freelancer in Warsaw, and a sole trader in Rotterdam all have the same problem. They receive a file they can’t open, and they deserve a simple solution that respects their privacy — regardless of which language they speak.

And that’s why UBL Buddy Pro costs EUR 14.99 per year. That’s EUR 1.25 per month. Opening and viewing invoices is free, and it will stay free. The payment features and saving attachments are in Pro. I believe that good tools should be accessible. Not every business owner has the budget for expensive software — but everyone has the right to be able to open an invoice.

Keeping simple things simple

Looking back at why I built UBL Buddy, it comes down to a conviction I’ve held for a long time: technology should make complex things simpler, not more complicated. An invoice isn’t complicated. The fact that the format is changing from PDF to XML shouldn’t matter to the person receiving it. Double-click, view, pay, done.

And it shouldn’t require uploading your financial data somewhere to make that happen.

I’m building UBL Buddy as an indie developer. No investors, no ads, no data trading. Just an app that does what it promises: open your invoices, respect your privacy, and let you get on with your day.

If you’ve ever received an XML file and thought “what am I supposed to do with this?” — I built UBL Buddy for you.

Tags:
  • Founder story
  • Indie developer
  • Privacy
  • Ubl buddy
Share: