The Chargebee guys in particular are lovely, but for a recent project I went with plain old Stripe for a few reasons.
Firstly, I wanted to bill in multiple currencies according to where customers come from, and Chargebee required multiple API accounts, so that there could be no unified reporting of activity. Stripe, on the other hand, is perfectly happy with USD plans/subscriptions living alongside those in EUR or GBP.
Secondly, if you start with just Stripe, you can add other added-value providers like Chargebee on top later, but once you're committed to managing everything through those providers, it's hard to go back.
And finally, it would be easy to assume that you will need all that fancy Dunning process and workflow magic, but setting it up is an additional up-front time & complexity cost which might never pay for itself. Better IMO to start off simple, write a little code to track failed payments and expiring cards, and email the customers directly the old-fashioned way. This way, you're also connecting personally with your customers.
Firstly, I wanted to bill in multiple currencies according to where customers come from, and Chargebee required multiple API accounts, so that there could be no unified reporting of activity. Stripe, on the other hand, is perfectly happy with USD plans/subscriptions living alongside those in EUR or GBP.
Secondly, if you start with just Stripe, you can add other added-value providers like Chargebee on top later, but once you're committed to managing everything through those providers, it's hard to go back.
And finally, it would be easy to assume that you will need all that fancy Dunning process and workflow magic, but setting it up is an additional up-front time & complexity cost which might never pay for itself. Better IMO to start off simple, write a little code to track failed payments and expiring cards, and email the customers directly the old-fashioned way. This way, you're also connecting personally with your customers.