Recurring Billing is Hard, is Hard, is Hard.

On the surface it may seem simple enough; Collect someone's credit card information and then charge them once a month. If they fail to pay then kick them out. There's a lot more to it than that though. The truth of the matter is building an effective recurring billing (subscription) system involves a whole lot more than just charging someone's credit card and saying thanks. For example, you need to store credit card info. Which is exactly what everyone tells you not to do. Ever. For any reason. PCI compliant? You better be. Once you've got the customers information you need to actually bill them on a regular basis. But how do you deal with changing the billing interval, canceling or suspending accounts, and dunning management? What about generating metrics to go with these account actions? What happens when you want to offer a discount on a subscription? Does it apply to a single month or multiple months? Is it percentage based or a fixed value? What if you want to provide a discount on the next 2 months for someone who has already been a subscriber for 2 years? We'll also talk a little about the ins and outs of testing new features when developing for sites that use a subscription model and some related best practices. In this session I'll cover some of the ins and outs we've learned about building subscription based systems in Drupal. The presentation itself will provide useful information for anyone using Ubercart or Drupal Commerce as the majority of topics covered are going to pose problems no matter what platform you use.


Time slot: 
Wednesday 5:00pm-6:00pm
Experience level: 
Questions answered by this session: 
Ways to store, and re-use, credit card information
How to perform testing in a recurring billing environment. Safely.
Often overlooked aspects of recurring billing. Dunning management, notifications, coupons, discounts, and more.
Things to keep in mind when selecting a payment gateway to use of your recurring billing application.


I have been using's CIM to store customer information so I don't have to worry about PCI-Compliance. I have found my own solutions for some of the other issues mentioned -- no easy task for sure -- and look forward to seeing how you have approached them.

Colorado mountains