or did you use off the shelf software, and why?
Every billing system requires some integration into your product. Do you think there are significant savings to be had by using off the shelf billing software and integrating it vs. writing your own billing software that fits just right with the rest of your system?
I use ActiveMerchant for the hard part ( http://www.activemerchant.org/ ), but built my own UI and models for storing transaction history.