NimbleBilling V.01
UPDATE : An online demo is available here!
As a sole proprietor and “freelancer” it is never easy wearing all of the hats, especially when I am knee deep in bugs and get a sales or support call. One of the most troubling issues I have is with asking for money. I never have a problem creating the invoice but it is that bloody send button that kills me.
Because of the above – I have decided to finally get organized and put together an automated invoicing application so I don’t have to worry about billing – the computer does for me. Basically you point your browser to a web app and adda few items to a job list – then save. Here’s a screencast that should demo it better than I can type it :
Here’s some of the functionality summed up in a brief list.
- Add / Edit / Delete Clients
- Add / Edit / Delete Invoices
- Add / Edit / Delete Jobs
- Add / Edit / Delete Taxes
- Add / Edit / Delete Services / Products
- Auto Email Invoice
- Download PDF Invoice
It probably does a lot more but I am too excited to complete the PayPal module.
Be sure to check back for updates – a version will be available for you shortly!




I know you are in the development business, but isn\’t this recreating the wheel? There are plenty of decent web apps that are out there now that does all of this for you. This way you can do what you do best, not worry about billing issues.
*THIS IS NOT A SALES PITCH!*
We started looking at moving from Quickbooks to a web based for our business as we do not need all the bells and whistles of Quickbooks. I looked at https://lessaccounting.com/ and it looks decent. It is free for a majority of people!
You are absolutely correct – the only difference is that my initial goal was to integrate this application with Asterisk and have my clients called with a balance update (like the banks). Using one of the existing apps – I was unable to run my cronjob passing the calldata to my * box. This functionality has been added and works great – so mission accomplished.
I also really didn’t want my invoices branded with someone else’s business (usually you have to pay for unbranded invoices with these free services). Nor did I want someone else with all of my billing info / client list.
Thanks for the comment Dave.
It is in a way re-inventing the whell – probably the best one out there I have seen is http://invoicemachine.com/home – thing is it doesn’t do exactly what I want, nor is it “free”.
Ok, stupid question for ya
I am a company. I am at an extension. How do you call me? Do you assume that there is an IVR and push the extensions and thus not worry that a human may actually answer the phone that is not the person you intended to call? Are you going to setup ‘texting’ the bill to them?
Also, if you have to have your clients called with balance updates . . . you might want to find new clients
There is this very OLD technology that solved this issue. I didn’t require coding per se, or even ‘puters. It was called . . . a retainer. Yep. This solved the whole issue. Never have to worry about not being paid, just pull from the retainer.
Dave, I really appreciate your feedback – but the bottom line is that I wanted to write this software, you know – for me. Anyway if you think it is a bad idea; we get it. There are a few users who absolutely love it and I am very happy about that. In the case of an IVR the script waits a 30 second timeout. I totally agree with your retainer argument – and I have several; but as any independent contractor I have many loose jobs as well that sometimes need reminders. The really neat part is that there are feature requests to have a job timer and notification method – so when something is nearing a due date I am reminded by page, or email.
It is just fun to write – frankly it doesn’t make a difference to me whether you find it useful or not.
Just want to point out a problem you should look at before this would be a (for pay) product.
Once an invoice is created and set to Unpaid (vs a quote), you should no longer link the price back to the service. That is, once you bill someone, a change of a service rate should NOT update the invoice. This violates some general accounting standards.
Assume you have a \’web design\’ rate of 65/hr. You bill a client and send them an invoice. You then change the rate to 70/hr. The invoice changes to reflect this which is wrong!. Because your history does not reflect what the customer was billed originally. Even the PAID invoice!. Accountants everywhere will cringe at this. Once it\’s \’posted\’ (Invoice sent to customer and/or paid), the amount of that invoice should not change.
Have not seen the database but your invoice records should copy the price from the service rate to the invoice detail records when created. And, you may want to prevent it from being changed back to a quote once status is unpaid or paid. The only way to change a billing would be to \’credit\’ or void (delete) that entire invoice and keep an audit trail of that.
Ajax and fancy UI are nice but they cannot makeup for missing core business logic.
Keep up the good work.
You are absolutely right!
Thankfully (since this post) the db has been updated to store billed rates so future updates wont affect the original invoice.
Thank you for your comment, I have some work to do!
Hi Aster1sk,
very nice work, i really like the way you made the interactive control panel with the jqueryui library.
i am currently working on a similar project, not really a billing software, but it is a reservation software for a travel agency, i too use dompdf which i found to be one of the best and easiest to use out there. However i had some problems with it which i noticed you’ve seemed to overcome, when a cell, div or a table spanned over 1 page the dompdf class would fail and would throw some errors.
if you wouldn’t mind sharing with me the html template you used for the pdf i would really appreciate it
I am at work but I will see what I can do tonight.
Thanks for the comment.
Thank you aster1sk i am looking forward
invoicemachine.com gives free account limited to 3 invoices per month.
Will this be for free?
Hi Aster1sk,
Great application you made there! I’m just missing one or two tiny thingies:
1) It would be nive to add an item without creating a new service every time. Being a graphic and web designer (in The Netherlands), my tasks are different every time, so I will never use exactly the same servive-description more than once.
2) After creating an invoice, when I want to alter a line (by “edit invoice”), I cannot change an item. I first have to delete the line and then add a new item.
3) I would like to be able to change the order of the invoice lines.
And… I have been working on a suitable invoice programm (in plain PHP without codeigniter) for over a year already, but my lack of programming skills makes it very hard to accomplish. I have made a programm in DBase III (very, very old), than in Clipper and at last in Delphi (Pascal).
But these are all creating desktop programms, as you might know…
I think it is abou time to use an invoice-programm online by now. Therefore I want to beg you to give me some insight in your coding of this beautiful approach in NimbleBilling! Or if you’re willing: please, please send me the code
Thanks in advance,
Andy