Easy Charging of Credit Cards with Spreedly

When we built SQuiD (easy project management for link building), we had a problem in that the client was on a limited budget and yet the site had to charge people subscriptions for usage. Which, if we wrote that part ourselves, would take all sorts of time to research, implement, and (most importantly) not screw up. When you take people's credit card numbers there is no such thing as a small security breach.

Luckily my teammate, Joseph Leddy, remembered hearing about Spreedly -- all they do is "Make Selling Subscriptions Easy." We decided to use Spreedly and it saved us a ton of time (and consequently money). Here's 9 reasons why I loved working with Spreedly:

1. Free to start and test with!
Spreedly doesn't charge any money to sign up and run tests against their API. You start paying only as soon as you're ready to start collecting real money.

2. Ridiculously test friendly
You can create a pretend (test) area that you can charge accounts to. It looks and behaves exactly like the real version, even down to the managing of your pretend subscriptions. When you're running the site on your local machine you can follow a full path to Spreedly (with stubbed out credit card processing) and back to your local server.

3. Super easy Rails integration
This the all the code I needed to integrate with Spreedly:

class Subscriber < ActiveResource::Base
self.site = "https://secretapitoken:X@spreedly.com/api/v3/test"
end

That's it. Now I can call:
Subscribe.find(id)

and get back a Spreedly object I can interrogate.

4. No storing credit card numbers on my site
Don't have to worry about purging them from the logs, encrypting them, storing them in a secure place, or whatever. My site never sees credit card data so I don't have to care about it at all.

5. I don't have to track time left on a subscription
Spreedly will tell me when the customer's run out of time.

6. Nice notification when subscriptions have changed
I expose a controller action to Spreedly and they send me a list of Subscriber ids that have changed, when they've changed. If they can't reach me through some fluke of the internet they keep trying until they do.

7. Good documentation
Very easy to follow.

8. Great customer service
They usually got back to us in 15 minutes or so. Really.

9. Versioned API
We launched with version 3 of the API. They've since gone to version 4, but since there's a "v3" in that "self.site" above I don't have to worry about that. I can upgrade on my schedule.

Comments

Anonymous said…
And what do you do if you want to transition to a different company or service for handling of your recurring billing? Make all your customers re-submit their billing information?
Jake Scruggs said…
We can pull all of the customer's information through the API anytime we want. We'd have arrange with Spreedly for a secure transfer of the credit card data -- which they agreed they would do.
Unknown said…
Thanks for the Spreedly props Jake! You've totally made the team's day!
Anonymous said…
That's good to know. I had browsed their sight and was unable to find any mention of exporting data.

Popular posts from this blog

What's a Good Flog Score?

Point Inside a Polygon in Ruby

SICP Wasn’t Written for You