Free Open Source Billing with phpBMS

Tuesday 24 April 2007 - Filed under Default

I’m in the market for some important software. I’ve been using Access to track my hours and to generate invoices but it’s time for something more established and supported than my one-off app.

What I’m looking for is a combination of Customer Relationship Management(CRM) and Enterprise (cough) Resource Planning(ERP) for a small business. In English, I want a billing system with a contacts database and wouldn’t it be cool if I could automate my billing with a cron job?

I looked at Compiere and SugarCRM but these are overkill. They are great at what they do but just have too much bureaucratic overhead for my small business. No matter what I go with, I want a free software package because it’s important to me that I be able to modify, examine and extend the billing software I use.

Following a search on SourceForge for “php billing software”, I found a few online demos and installed others on my server. I installed eBills, I looked at cwispy, I tried jBilling. Each of them had strong points and weak points but they weren’t for me. My search ended when I found something functional with a little web 2.0 charm.

That was phpBMS. It’s free, it’s based on my favorite duo of php and mysql, and it’s AJAXy. To try it out, I entered in some clients and prospects(the CRM side) and created a couple of product categories and products(the ERP side). Then I made an order, converted it into an invoice and printed a PDF from it. This pretty much covered my business lifecycle and here’s a video of some of that.

I do have a dream. I dream of invoices that magically get sent out without my intervention. I dream of entering my jobs daily and the software taking care of all the rest. phpBMS was built with modularity in mind so I’m working on a module to fulfill my dream.

Returning to phpBMS out-of-the-box, all I found lacking was something for recurring invoices and a way for me to record my jobs like I did in my own database. These are small issues when you consider that most of what I found that did recurring invoices was made exclusively for the web hosting business and my way of recording jobs is, well, my own special concoction.

I think phpBMS is a great platform for a business who doesn’t want to get bogged down in 7 layers of management. It’s a web-enabled business management application that’s sized right for companies of 1-20 people. You can try it out at I’m going to try it for a few months and report my results then. If you’ve got any comments on phpBMS or another app I should take a look at, let ’em fly.

Edit: After a few years of limping along with my own solution, I am now happily using phpBMS. I’ve created a module called Time Entry to allow me to build invoices from my job entries and I’ve begun to work on the entire codebase over at github.

2007-04-24  »  David Sterry

Talkback x 5

  1. Anonymous
    10 May 2007 @ 6:01 am

    I’m sure i wont be the only one, but I would have to agree with the recurring invoice feature.

  2. Robbie
    22 June 2007 @ 8:38 am

    OK I like phpBMS because of the web 2.0 features BUT if you want recurring invoice check out PHPCoin. I like it except for the background color. Ugh 😀

  3. Anonymous
    30 July 2007 @ 8:25 am

    Did you find a way to do recurring invoices? I’m in need for that too..

  4. David
    31 July 2007 @ 4:50 pm

    I didn’t do it yet. I was working on a ‘services’ module but I stopped short since I figured it would simpler to just go with the flow in phpBMS and do orders and invoices like a regular person. With my module, I was making it possible to log time and then a script I haven’t written would come along and assemble the time logs into invoices.

    As I write this, I’m realizing this would still be cool and useful for me. I’m not using phpBMS for much more than contact management at this point.

  5. Lucas
    7 January 2010 @ 8:46 pm

    phpBMS does have recurring invoicing and has for some time now. I've not used it to great extent but its there and does work pretty well.

    Good luck.