Invoices can be thought of as the interface of every business. You send some, you receive some, you pay some and you check if you got paid on others.
Most people don’t know some countries have legal requirements for invoices. In the US it’s apparently not very strict – as long as you have something that shows you had to pay that money, it’s all good. In Europe stricter rules apply.
For some countries the VAT number of the receiving company needs to be visible. Most countries require the addresses of both parties on there. Every invoice needs a number, which should be incremental, can’t skip any numbers, and should be consistent chronologically. The list goes on but most of them are common sense, and differ from country to country.
I’ve noticed US companies are the worst offenders, probably because they don’t have that many rules themselves. Sometimes my business name and address aren’t on them, or they just show the name on the credit card that paid for it. Obviously no one can cater to every country specifically, so here’s a few tips:
- Always have a field where the customer can put in any details they want. Github does this nicely. I can put my business address and the VAT number in there and whatever else my country requires. Github doesn’t care about this, but come auditing if my VAT number isn’t on an invoice my business paid I could get in trouble. This is basically a catch-all that would avoid a lot of trouble.
- Don’t regenerate invoices when details such as the address change: Invoices should be immutable. I once had to redownload all the invoices of a year from AWS. But since my business address had changed since these were issued, they all contained the new but wrong address. I went into my account, changed the address back to the old one, and redownloaded every one of them. Unfortunately AWS cached the invoice once it’s been generated, and the wrong address was still there. After quick mail to customer service this was solved, but it was still a hassle which took a couple of days.
- Write the five lines of code it takes to generate a PDF version, or remove the navigation in print-specific stylesheets. I don’t care about a paper version, but I like to at least send my accountant clean and readable versions of the invoices I paid. Extra points if your payment notification email includes the PDF as an attachment, so I can just forward it to my accountant.
If companies would use a little more spit and polish on their invoices, a lot of frustration would be avoided. Invoices are after all just another customer-side interface, and in my opinion a very important part of the UX.