What payment processor are you using and how did you go about setting it up? Was there a large learning curve in the implementation, or a big barrier to setting up an account with a bank?
We use Braintree. As far as setting it up, we relied on the ActiveMerchant gem to communicate with the Braintree Vault, which is where all of the credit card information is actually stored.
In terms of a learning curve, it wasn’t huge, but it definitely wasn’t trivial. In fact, our billing code is the one piece of Sifter that was rebuilt from scratch about a year after going live because we had learned so much about how billing works. We dramatically stream-lined the process and made some other significant usability improvements.
While Braintree offers recurring payment management, with Sifter, we wanted to have complete control over the billing process. This has some benefits and drawbacks, but effectively it means that all we use Braintree for is actually processing the payments. The entire billing and notification system is handled from within Sifter. So, our billing system runs nightly and just lets Braintree know which accounts are due for renewal. We send out invoices/receipts on our end as well so that we rely on Braintree for as little as possible and have the afore-mentioned control over how it works.
There are advantages and disadvantages to this approach. The disadvantage has been that we have to spend time managing billing code, and billing code isn’t what we specialize in. However, taking money from people is delicate, and we don’t want an intermediary with our customers with regards to money.
Similarly, the less we lean on Braintree, the easier it is, theoretically speaking of course, to switch providers at some point in the future if we ever needed to. Luckily, Braintree has been awesome, so I can’t imagine that we’d need to, but we didn’t know that when we started working with them.