Skip to content

The European Invoicing Adventures of my SaaS Apps

Invoicing can be a time-consuming annoyance. Sure, things improve once they’re paid, but at the beginning, the whole process can quickly become a confusing and time-consuming mess. Here’s what I wanted to achieve for my SaaS apps, and for my consultancy work, hopefully saving you some time along the way.

At the start of 2012, I made the welcome return to consulting, setting up my company, TBB Polska, and planning to put all my income through this entity, rather than through my personal tax allowance.

The initial requirements for invoicing my consultancy clients were not major, but big enough to be a pain:

1. Creating dual-language invoices, written in both English and Polish. Vital for both clients and my accountant to understand what’s going on.
2. Supporting charging VAT – a European-wide sales tax – on some clients, and not on others.
3. Support switching between payment currencies in US Dollars, British Pounds and Polish Złoty

So far, so good; my accountant pointed me to Centrum Faktur, and I started billing.

When it came to invoicing my SaaS apps, though, I hit a problem: invoicing using PayPal alone would only support the absolute basics – not even the full list above.

This turned out to be the real challenge: do I go with a third-party such as Stripe (difficult, being based in Poland), try to find and buy a suitable bit of software, or write something myself?

Before I continue, I should mention that VAT in the EU is a nightmare. Simplified, if the client is based in Poland, I charge them VAT at 23%. If the client is based in the EU and is VAT-registered, I don’t charge them, otherwise I do charge them. If the client is outside the EU, I don’t include the charge. If the client is not charged VAT, I need to include a piece of text on the invoice about Article 9(2)(e) of the 6th EU VAT Directive.

With this in mind, I wanted my invoicing solution to support the following:

1. Handle VAT automatically. The user should be able to select their country and have the VAT calculation handled without any further work.
2. It would be great if VAT numbers (how a company identifies that it’s VAT-registered) are validated.
3. Add the EU VAT Directive text if necessary.>
4. Receive payment notifications from PayPal.
5. Support one-off and subscription charges
6. Create invoices automatically
7. Nice to have: email the invoices for me
8. Nice to have: invoices in PDF format
9. Support multiple products from different websites

After agonising about whether to build my own solution, I finally stumbled across nBill. Oh happy days, I can now do all of the above!

The order form needs to be made a bit prettier, but for the time being is at least functional:

The same can be said for the invoices:

There are definitely a few quirks with the initial set up of the system – it generates the order forms for you, and you have to set things just right – but now that it’s up and running, I’m quite happy. Next steps are to make everything a bit prettier, and start hunting down a merchant account and gateway processor.

I’m tempted to write a basic setup guide for nBill, illustrating how I got everything running and talking to the right bits of software.
Let me know if this’d be useful :-)

Written by Tom

Are you looking for web development or just someone who will work with your business needs and not against them? Get in touch with me here, or take a look at my consultancy’s website: Moo Unlimited. I’m confident I can help you.

Published inFreelancingWeb Apps


  1. Hi,

    I like the idea of this article, but I would like some more detailed info. I can only see you have chosen nBill, and I don’t understand if it was nBill that supported all the requirements or you had to combine it with the other software – a setup guide would be great!

    • Tom Tom

      Hi there,

      Ah, I’d hoped that I’d made that clearer: nBill does indeed support all of my requirements :-)

      Yours is the second request for a setup guide. I think I’ll start writing one over the next week or so :-)

  2. John Brown John Brown

    just a strain thought, but shouldn’t the company be named “TBB Poland” ? Your website (quite nice :) ) is in english. You’re english and in Poland (I’m polish) “TBB Poland” sounds better than “TBB Polska” + it would be clearer to foreigners… One more thing is that in your contact info (on your website) you say “Warszawa, Poland” I think you should decide on using one language…

    I’m sorry if you don’t like my comments, just wanted to be helpful.

    Other than that thanks for an insightful post! :)

    • Tom Tom

      Hi John,

      Honestly, there’s a certain amount of stubbornness involved; I refuse to believe that “Polska” is a difficult word for the majority of English-speakers, and I now identify so much with Poland, I want to emphasize that in my branding. This country has done an awful lot for me, and day-by-day I see so much growth and excitement here, I don’t want to hide behind “Poland” when “Polska” will work just as well.

      With all that said, I think you’re very much right about Warszawa – that really should be Warsaw :-)


  3. Had you considered Handles VAT, international recurring billing, purchase orders, etc.

    • Tom Tom

      I did consider going with you guys, but for anything above a handful of sales you’re very expensive. I also didn’t like having to wait 2 weeks for payment.

      I’d be interested to know how you handle VAT though. My understanding is that you charge VAT on my behalf – how would that fit in with my regular accounting, given that my company’s VAT-registered?

  4. Kgil Kgil

    “If the client is outside the EU, I don’t include the charge. If the client is not charged VAT, I need to include a piece of text on the invoice about Article 9(2)(e) of the 6th EU VAT Directive.”

    I have a Saas business with a monthly subscription. My company is based in Belgium. I’m selling to consumers (they don’t have tax registrations). So for exemple if I sell to a canadian customer. Do I need to charge their local tax (HST) on top of my monthly amount ? In this case I would need to be resitered in Canada to pay this tax back to the government… and in all other countries where I have customers :-(

    How do you do if you are in the same situation?

Leave a Reply

Your email address will not be published. Required fields are marked *