<i>but with lots of clients and websites it becomes a faff to track the payments</i><p>how can it be difficult to track payments? either an invoice is paid or it isn't.<p>for the billing system i wrote and have used for years (<a href="http://corduroysite.com/" rel="nofollow">http://corduroysite.com/</a>), the home screen lists outstanding bills, outstanding invoices, and open projects. if an invoice is past due, it stands out in red, and (optionally) customers are emailed every n days past its due date.<p>but to answer your questions,<p>1. i use corduroy, add recurring services to each customer account, it generates invoices for all recurring services billed on a given date (monthly, yearly, etc.) and emails the customer an invoice. if they have a credit card on file, the card is charged, the invoice is paid, and the customer is emailed a paid invoice receipt instead.<p>2. corduroy, yes.<p>3. yes.<p>4. monthly for pretty much all services (email hosting, web hosting, pbx hosting, server support contracts, etc.). domain registrations are added as yearly services, so when recurring billing runs that one month, it will add the yearly registration and monthly hosting on the same invoice.<p>5. yes, but it wasn't available at the time i wrote my system so i made my own.