It has been nine months since I started up my new server and nearly as long since I ceased being a middleman in web hosting. I say all this to suggest it was high time I got my act together on that evil thing known as “billing.”
For a long time, my primary billable service was consulting, whereas hosting was a minor add-on to those services. As such, I had been using an accounting program oriented toward traditional types of sales, rather than service oriented sales — SQL Ledger. SQL-Ledger worked pretty well, although its installation process was terrible and so I had left it on my aging Dell Inspiron 5000e (running Mandrake Linux 9.1 with some 9.0 libraries) laptop that had been superseded by my new Apple Powerbook. The final, and only, really, nail in SQL-Ledger's coffin was when the NIC in my laptop went out. SQL-Ledger is fine, but it isn't fine enough to warrant going through the install process again…
Like I said, hosting use to be a minor part of my invoicing activities. It isn't that its suddenly become my primary business — but unlike consulting work, it results in more, smaller invoices… the kind that are harder to keep track of unless you have a good accounting package.
I wanted a program that, most of all, would do reoccurring billing (hosting) automatically rather than forcing me to manually enter each invoice every billing cycle. I also wanted a billing package, ideally, that integrated directly with the server, a so-called “provisioning system,” that would automate account creation so that billing and actual creation on the server would occur at the same time. I narrowed things down to phpCoin, ModernBill, WHM AutoPilot and WHOIS.Cart().
Whois.Cart() was cheap, but seemed very immature. ModernBill is extremely popular among hosts — my old host being one of its users — but it was a pain to deal with on the user end (I thought) and the demo version made clear that it was just as much of a pain on the administrator's side. I almost went with it anyway since it offers a really nice system of integration with payment processing gateways that allows for automatic payment status changes inside MB based on payments through the processor (e.g. PayPal). phpCoin seemed relatively well designed, but its WHM/cPanel integration was more of a hack than a real solution, and I was a bit worried that its Shared Source-style license brought in the worst security issues of Open Source and proprietary software (i.e. crackers can see the flaws, as in Open Source, but the community doesn't work to quickly repair them, as in proprietary software).
In the end, I went with WHM AutoPilot (or WHMAP for short). It's price is negligibly cheaper than ModernBill for a small operation (larger hosts will benefit from its unlimited client support), but its interface is much easier to work with. Like ModernBill, Whois.Cart() and other similar programs, it uses the Zend encoder for DRM, instead of being Open Source, but it fits my needs the best since it can handle both offline clients and web hosting clients in an interface that won't confuse myself or my clients.
I've probably bored most of you to death on all of this. Why am I even talking about this today? Well, today, my 21-day trial of WHMAP expired, so I had to make the big decision: do I buy it or wait and try something else. I decided to do the former… I think it was a wise decision as a whole.