Ask HN: How do you handle failed charges for your SaaS?
Aside from restricting a users account when the charge fails, and attempting to retry the card multiple times, how do you try to recover the charge? Especially if someone is being rebilled and hasn't used the service in months? We handle this exact problem for lots of SaaS products, start-ups, and other companies at http://churnbuster.io/ . After a few failed re-attempts over a few days, we begin a drip campaign of notifications where we email them every few days with a sequence of different emails until they update their payment information or cancel their account. If the emails don't produce a response and we've got their phone number on file, we'll also try to ring them up on the phone (we have a real person to do this) and send them a follow-up email for whatever the outcome of the phone call was (e.g. customer wants to update online, we left a voicemail, it was the wrong number, etc. etc.) Some companies will have the majority of their success with just the emails, but we have customers where the success rate is split is 50/50 for emails and phone calls. Either way, everyone benefits from the phone calls enough to justify doing it (or in our case paying us to do it.) As for the "not signed in for months" part, I recommend you not assume someone wants to cancel their account just because they haven't signed into the service in months and their payment information randomly goes bad. Let them tell you this. Depending on the service you provide, people may use it seasonally, but pay each month for you to keep their data on hand. (I've used Basecamp this way before, although now they let you pause your account for up to 6 months.) Sometimes people use services that are "set it and forget it" where the user doesn't actually need to sign into the service to receive value from it. The absolute worst would be for a customer of any type of service to have their account closed for non-payment with no notice whatsoever. That's really just the tip of the iceberg for thoughts that we've got on this subject, so feel free to reply or email me at andrew@churnbuster.io if you've got any other questions. Four requests to update their card on file (the day of the failure, the next day, three days after that, and seven days after that). Then the account is suspended. The whole "drip campaign" for dunning mails is a SQL query, two prewritten mails with some placeholders, and 21 lines of code that runs as a cron job once a day. Recommended reading: https://training.kalzumeus.com/newsletters/archive/rainy_day... http://images1.bingocardcreator.com/blog-images/hn/sample-du... If the user logs in to a suspended account, they're welcomed back and asked to update their payment information to reactivate the account. All their data is still waiting for them. Lots of people that disappear come back and reactivate at some point in the following months. We setup a series of emails that get more and more punitive as time goes on. But after a certain number of retries (let's say 3-5), we just lock the user out and move on...assuming that the user is doing this deliberately. Once they're locked out, if they ever try to login again they won't be able to do anything but pay us. This tactic isn't advisable for all services though. If I was running a high-ticket PAAS service or something I'd probably have Account Managers reach the person on the phone before taking any action at all. Phone number is required so account managers will reach the client before taking any action at all.