
Ask HN: What's the most simple way to accept monthly subscription fees? - arnorhs
I've got a web application with monthly subscription fees. What's the easiest way to implement monthly billing? Is there an app out there that handles that kind of stuff for you?<p>Side-question: what's the cheapest way? That is, requiring the lowest transaction fee.
======
dryicerx
Simplest is probably <http://cheddarGetter.com> or <http://spreedly.com> or
<http://chargify.com> (they store and abstract the payment gateway apis for
you, and do recurrence, along with managing and handling the user data, and
exposing a super simple api to your end). But the catch is they also charge a
fee...

The cheapest is to use a service like Paypale/FirstData/etc which are a bit
more tricky to setup that the cheddary/spreedly but also offer recurrance
charging. The catch is you'd have to keep track of the user data and
management, and slighly more tricker to change providers .

~~~
arnorhs
That's exactly the kind of thing I was looking for. Chargify looks really
good. The whole thing is explained nicely in the video even though it doesn't
go into any details about the gateway.

Do you guys have any idea which one of those three are the biggest? Because I
would assume the one with the most customers is the most reliable one... Even
though that logic might be broken.

~~~
wheels
The elephant in the room with all of those systems (we use Chargify) is that
you still have to sort out getting a merchant account on your own, which
depending on how well set up your company is, may be non-trivial.

If, as it would seem from your profile, you are in Iceland this will be
especially hard since you'll probably need an American entity with a bank
account to be able to use many of those systems.

~~~
dan_manges
Braintree offers managed recurring billing and is also a merchant account
provider. <http://bit.ly/braintree>

~~~
wheels
Yep, we talked with you guys as well and liked a lot of things about the
organization and product, but honestly, the terms aren't very early-startup-
friendly. (Multi-year exclusive contract and high base rates are the ones that
come to mind.)

~~~
bryanjohnson
We (Braintree) have never had contracts or termination fees. Customers can
cancel whenever they want and port the credit card data elsewhere.

As for our pricing, it's actually very competitive. It may look higher because
we disclose all our fees. Nearly every provider we know of obscures fees both
during the sales process and in the monthly reporting statements so merchants
never really understand what they're paying. Here's an example of pricing
trickery <http://bit.ly/9NSZCa> .

Prospective customers regularly do thorough pricing comparisons and we are
consistently among the most competitively priced.

~~~
wheels
This is pasted from the terms we were sent in October:

IF YOU TERMINATE THE AGREEMENT WITHIN THE FIRST 3 YEARS FOLLOWING THE DATE OF
YOUR EXECUTION OF THIS AGREEMENT (THE “PAYBACK PERIOD), YOU AGREE TO PAY DE-
CONVERSION FEES OF (I) TWO HUNDRED FIFTY DOLLARS ($250.00) FOR EACH MERCHANT
LOCATION and (II) AN AMOUNT EQUAL TO THE STORED VALUE TRANSACTION FEES
INCURRED BY YOU DURING THE CALENDAR MONTH IMMEDIATELY PRECEDING TERMINATION,
MULTIPLIED BY THE NUMBER OF MONTHS REMAINING IN THE PAYBACK PERIOD. IN THE
EVENT THE PAYMENT OF SUCH DE-CONVERSION FEES IS LIMITED BY APPLICABLE LAW, THE
AMOUNT PAYABLE TO US PURSUANT TO THIS SECTION SHALL BE LIMITED TO THE MAXIMUM
AMOUNT PERMITTED UNDER APPLICABLE LAW. SUCH AMOUNTS WILL BE FUNDED, TO THE
EXTENT POSSIBLE, ACCORDING TO THE SAME METHODS FOR COLLECTING AMOUNTS DUE
UNDER THIS AGREEMENT. We reserve the right to place you or any person owning
or controlling your business in the MATCH file (Member Alert to Control High-
Risk Merchants) maintained by Visa and MasterCard in the event this Agreement
is terminated for cause.

~~~
bryanjohnson
That's language that one of our sponsoring banks unfortunately has not yet
removed from the agreement. It's boilerplate language that is optional for us
to enforce. Regardless, we're working with them to get it removed because we
maintain that merchants can cancel their services at any time without a
termination fee, and that language is clearly inconsistent.

Since that language is in there, we have always provided an addendum to the
agreement that provides assurance to merchants that they can cancel whenever
they want without having any termination fees. The addendum is located right
next to application and is completed with every new customer that signs up. It
states the following:

"WHEREAS, Braintree wishes to assure Merchant that Merchant will not have to
pay any termination fees for the Merchant Agreement with Braintree or any of
the processors used by Braintree; NOW THEREFORE, for good and valuable
consideration, the receipt and sufficiency of which is hereby acknowledged,
the Parties agree as follows: Merchant may terminate the Merchant Agreement
with Braintree, and any processor utilized by Braintree. If Merchant exercises
this termination right then Merchant shall not have to pay any termination
fees."

We have never had contracts and have never charged a termination fee.

------
rubyrescue
We're planning on using Spreedly on <http://seoaholic.com>, however, unrelated
to Spreedly, which is easy to configure, _getting the merchant account is the
hard part._

'From scratch' it has taken close to 60 days - creating a company (LLC),
securing a bank account, having the bank verify your physical location (even
though you don't have one - don't ask) - total about 20 days.

Next, FirstData for the merchant account - talk to an account manager, then
fill out a paper application, which leads to an online application via a
relatively inflexible javascript-heavy website, then faxing supporting
documentation, then applying for a state DBA license because the company name
and the physical name don't match. Then, faxing personal bills with addresses
that must match the physical address of the business address, even though
there isn't one. All-in, this phase took about 20 days.

Next, website edits - They didn't like the word 'forever' on the pricing page,
because it was too open ended. This phase has taken about 10 days.

We think we'll get it all done this week, at this point we're just waiting for
an answer, but we had no idea how long it could take.

~~~
DTrejo
_getting the merchant account is the hard part_

Swombat wrote great article on this:
<http://news.ycombinator.com/item?id=530055>

------
lwalley
Hey, thanks to all who have mentioned Chargify. We definitely appreciate it!

The issue of long-term viability is a valid one... I would ask the same thing
when evaluating vendors, and, in fact, I used the same logic in choosing to
join Chargify last Fall.

I really like my co-founders' 6-year history running Grasshopper.com, and they
architected things right - based on roughly 10 million telephony transactions
that their existing system rates each month.

And, for what it's worth, my first company is still selling Basic Stamp
computers 23 years after we founded it, and Engine Yard is growing every
month.

I can speak for all 3 founders of Chargify when I say that we enjoy building
utilitarian businesses that deliver good value over a long time.

Thanks!

\--- Lance

~~~
cubicle67
Basic Stamps came out >= 23 years ago?! Suddenly I feel old :(

------
lunaru
Most of the responses here have been in response to whether or not there are
apps out there that do this for you.

However, if you want to go down the road of building this yourself, it's not
really that involved. Take a look at ActiveMerchant if you're doing Rails. It
helps you integrate with a good list of payment gateways. Then, sign up for
that gateway + get a merchant account. This is probably the best way to get
the lowest fees.

For example, I believe CDGCommerce offers merchant accounts at $10/month with
a free payment gateway. The typical $0.30 + 2.9% (or whatever your rate is,
depending on risk, etc.) applies.

Another path for this is Website Payments Pro via Paypal. With IPN you can
easily sync your user subscription status with the latest payment information.

Doing recurring billing via subscription fees, like all programming is
handling corner cases. For this domain, the corner case is a combination of
invalid credit card numbers, expired numbers, perpetual zero-balance but valid
numbers, overzealous anti-fraud filters, overdrawn accounts, or even temporary
credit card numbers. Which ever service or integration path you choose, make
sure you're covering the these corner cases.

Based on all this, my advice is to build in-house so you have the flexibility
of changing policies on-the-fly with regards to how you handle those above
cases. YMMV.

------
timvanloan
Thanks for the mentions of Recurly, we built our subscription billing engine
from the ground up to make it as simple and easy to deploy subscription as
possible. The untitled startup did a great unbiased review of the various
subscription billing options out there (which you can find here:
[http://www.untitledstartup.com/2010/02/accepting-payments-
on...](http://www.untitledstartup.com/2010/02/accepting-payments-on-the-real-
time-web/)). They ended up choosing Recurly for their subscription billing.

There are several items to consider when choosing a subscription billing
option. Many have already been mentioned (cost, implementation time, the
country you're doing business in) but you should also consider the size of
each transaction you're doing.

Will you be doing lots of small transactions? Fewer large transactions? The
answer to that question will have a big impact on the fees you'll pay for the
off the shelf solutions (as well as your merchant account/payment gateway).

In addition to transaction fees, there are a number of other hidden challenges
and "gotchas" to be aware of when billing online. You can see some of our
suggestions on our blog here: [http://blog.recurly.com/2010/01/lessons-
learned-in-online-su...](http://blog.recurly.com/2010/01/lessons-learned-in-
online-subscription-billing/)

Recurly also supports the largest amount of international payment gateway (you
can find the full list here: [http://support.recurly.com/faqs/payment-
gateways/payment-gat...](http://support.recurly.com/faqs/payment-
gateways/payment-gateway-support)

Let us know if you have any other questions we can assist with, we're happy to
help. Thanks! Tim

------
rufo
I've had very good experiences with Spreedly... you'll need to get a payment
gateway, but they handle all the work of renewals, expiration dates, plan
upgrading/downgrading, etc. They have a RESTful API so you can check status at
any time, and will also ping a URL you specify when somebody's status changes
so you can clear any cached data. They also do a pretty great job of support
via their Get Satisfaction site and via e-mail.

------
petercooper
<http://chargify.com/> \- the front page does a good job of selling it. It has
a good API and they take care of almost everything - you just need to list the
stuff you want to offer and either point people at a special Chargify page or
pass info through the API.

------
jdrock
We use Google Checkout. Fees are comparable to PayPal.. documentation is much
better. There are plenty of other 3rd party solutions, but GC and PP are
probably the best two.

------
jot
<http://recurly.com> is another similar option.

------
jlesk
There were even fewer options when I wanted to go this route 2 years ago, so I
just went with a standard payment processor (BMT Micro) and charge one-time
payments for users to pre-pay for time. e.g. $19.99 for 3 months or $59.99 for
a year.

If you want to get from zero to charging ASAP, this might be worth
considering. You could probably be integrated in a day or so. They are mainly
geared toward downloadable software vendors, but I just use the "serial code"
field as an Activation Code that the user enters into their profile page.

BMT Micro's royalty rate is around 10%, have awesome customer service, and
just added a recurring option. The main downside is limited control over the
template. I would also look into FastSpring since they are newer and seem to
have more flexibility with the store configuration.

------
webwright
Great article comparing the assorted vendors you can use (with pros and cons):
[http://www.untitledstartup.com/2010/02/accepting-payments-
on...](http://www.untitledstartup.com/2010/02/accepting-payments-on-the-real-
time-web/)

------
malbiniak
There was a pretty good comparison between the main ones mentioned here some
time back. Worth checking into.

<http://news.ycombinator.com/item?id=975301>

------
mootothemax
If you want quick, easy and cheap, go with PayPal. They have a button
generator tool that takes the hassle out of submitting html forms to them.
There are plenty of libraries out there that will listen for their IPNs
(instant payment notifications) so that you can update the user's subscription
record on your site. And there are no start up costs, win! ;)

That said, personally I'd start with PayPal, see if anyone gives you any
money, and the moment users start paying switch to a proper merchant account
and CC processor ;)

------
notnoop
A bit unrelated, but I found <http://pivotallabs.com/talks/88-demystifying-
online-billing> to offer a good explanation for managing recurring payments
and what to watch out for.

------
paraschopra
If you are based outside of US or Europe, 2checkout.com may be the best bet. I
have researched this question to th death and it seems 2checkout may be the
best one. With others you will need a US bank account.

------
jpcx01
Anyone know if there's similar services for non-recurring payments?

I'm currently planning on using e-junkie but its kind of a piece of crap.
Looking for a slicker integration similar to spreedly or chargify.

~~~
bryanh
I actually run a site called BitBuffet that let's you sell individual files
(like PDFs). Or are you wanting to charge a one time fee for access to a site?

------
proee
Check out <http://www.cariboucms.com> \- it's great for recurring billing and
managing members. Supports multiple gateways as well.

------
shadowz
Take a look over here: <http://news.ycombinator.com/item?id=1182653>

I posted the same question 10 days ago :P

------
stympy
Don't forget the SaaS Rails Kit at <http://railskits.com/saas/> if you're
writing a Rails app. :)

------
DanBlake
www.amember.com - Its a script you install to your server and gives you the
ability to accept over 50+ gateways. Very nice and only a one time fee.

~~~
jpalmer
Just used amember for a small project I needed to get up and running quickly.
Easy to use, simple to setup. Downsides: requires apache/php.

------
mogston
Does anyone have any experience with Amazon Payments? I Was considering them
as a viable alternative to our existing PayPal solution.

------
fossguy
The best cheapest and easiest one is Paypal.

~~~
jellicle
Until they steal all your money.

~~~
dangrossman
PayPal never steals all of your money. The worst that can happen is a 180 day
freeze before funds are turned over to you, which is exactly the same way all
payment processors handle risk issues. That's how long Visa/MC tells MAPs to
hold the funds because that's the standard time limit on customers performing
chargebacks, which becomes the basis of the policies set by the 3rd party
processors that are in contract with MAPs to do the actual card charging.

~~~
dan_manges
The worst that can happen is your company goes out of business.
<http://whiteelephantmedia.com/> \- Paypal requested $600k to keep the account
open.

~~~
dangrossman
That is a pretty amazing story, the likes of which I've never read before. I
can't even imagine how that situation came to be!

------
kapitti
CheddarGetter.com

------
zackattack
I used Amazon Payments for CustomerFind.com. It's really easy to use, but the
documentation is kind of outdated. If you want I could tutor you, send me an
email.

~~~
idlewords
I liked the developer side of Amazon Payments, but had a lot of complaints
about them from non-US customers, who found that they couldn't pay without a
US credit card or address.

~~~
smakz
To be clear they should be able to use international credit cards, but not
international bank accounts.

<http://aws.amazon.com/fps/faqs/#c3>

