Fork me on GitHub

Ruby Invoicing Framework

So… you’ve spent many nights developing your awesome application. It’s coming together nicely, and you’ve showed it to your friends, who got very excited about it too. In fact, people love your app so much that they are willing to pay you money to use it. Great news!

Keeping it simple, you start taking payments trough PayPal or even accept cheques through the post. Later you maybe integrate with the API of a more flexible credit card handling provider. Money is coming in – even better news!

The problems become apparent when you try to turn your app into a business. Suddenly everything becomes a lot more complicated. You need to start thinking about ugly things like tax and you need to pay an accountant to sort out the paperwork for you. You need to start bookkeeping, a prospect which gives you the shivers. Maybe some of your customers are awkward, accepting billing only in their own currency or requiring a special tax status. It’s all a bit of a mess, and as you grudgingly start ploughing through the Wikipedia page on “credits and debits”, you wish that you could just get the money and leave it at that.

Enter the Ruby Invoicing Framework RubyGem, or invoicing gem for short. It’s a collection of tools which provide the basic mechanisms for supporting financial transactions within your own application.

It aims to handle the most common cases neatly and concisely, but also provides you with the flexibility to grow and handle pretty complex stuff when you need it: multi-currency support, international taxation and reseller networks, for example.

The invoicing gem is both developer-friendly and accountant-friendly: on the surface you work with some fairly straightforward model objects, but inside it is basically a full double-entry ledger accounting system. It provides the information which your accountant needs to know, which means you can spend less on accountants’ fees when they fix up your business accounts at the end of the year. But it also tries very hard to be friendly to you, the code artist, so that you don’t have to worry about the ugly financial stuff and you can get on with making your app even more awesome.

The invoicing gem builds on ActiveRecord, which makes it perfectly suited for use inside Rails web applications. It doesn’t depend on the rest of Rails though, so you should be able to use it in any Ruby application using a database.

What the invoicing gem is not

Getting started

Sounds intriguing? Here’s more:

Once you’ve familiarised yourself with the basics, you might want to start browsing the API documentation – everything is documented very thoroughly there.

‘I predict @martinkl’s “invoicing” Ruby on Rails gem will be considered essential when it hits 1.0.’ – @bensummers


Subscribe to our feed to keep up-to-date with invoicing gem news!

The Ruby Invoicing Framework is developed by Martin Kleppmann, and development is sponsored by Ept Computing. It is released under the terms of the MIT License.