Ever hear of Spreedly? It’s a fantastic service I’ve been using to manage the subscriptions for NeoBudget. Spreedly specializes in one thing: recurring transaction processing, and they do it extremely well.

A brief review of Spreedly

In case you’ve never attempted handling your own recurring transactions, let me give you a hit: it’s hard. I’ve worked on projects before, where a significant portion of my time was spent creating and testing the complex logic involved with prorating, refunding, upgrading, downgrading, and generally managing subscriptions. This is why, when I heard about Spreedly, I was eager to try it out. And I wasn’t disappointed.

Everything is handled over a very simple HTTP-based API. My site makes basic GET/POST/PUT requests to their web services, and they handle all the logic. They have a set of useful functions that can be used to create and manage users, pay for subscriptions, and even administer existing customers. Not to mention that it’s free to create a test site to play with.

When I first migrated NeoBudget over to Spreedly, it literally took me about three hours of coding. I set up the test site and got it working. After I rolled the code to production, transactions started coming through without any problems. It worked just like the test site. I’ve been using it now since November 2008, and I can definitely say they’ve made my life a lot easier.

Spreedly PHP API v2.2 released

When I started with Spreedly, no one had written a PHP wrapper around their API so I undertook the task. The first few versions of the PHP wrapper were released in early 2009. Spreedly has since made many improvements and added much functionality to their API, and sadly the old v2.1 release was sorely out of date having been released 10 months ago.

This morning, I brushed the dust off the old code base and gave it a good cleaning. Much of the innards have been reworked to be more robust. On top of that, I added support for invoices, payments, lifetime comps, store credits, one-time fees, updating existing subscriber information, and allowing another free trial.

Check it out on my Spreedly PHP API project page.