Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Monthly billing best practices
39 points by matt1 on Sept 16, 2010 | hide | past | favorite | 28 comments
I'm integrating a recurring billing service into my web app and am at a point where I have to make some decisions on how I want to handle various situations. I don't have much experience with this and am hoping to get your feedback on these questions and monthly billing in general:

1) If a customer cancels their account should you offer a prorated refund for the unused time? Or do you establish a policy that your monthly payment will not be refunded at all when you cancel your subscription?

2) Should you let customers cancel their subscription to your service without deleting their account? In other words, should there be a "standby" state that locks down their account so they have the ability to resubscribe in the future and keep their data, or do you make canceling their subscription and deleting their account/data a single, inseparable action?

And for those of you who have been faced with similar decisions, can you remember other important decisions that you had to make? Appreciate it.

Long time recurring biller here.


If a customer cancels their account they have access to the end of the rebill cycle. This is what 99% of them will expect (they've already paid after all), and it is more money in the bank for you, it averages out to 1/2 a month of turnover that you throw away on every users retention.

The few users that bitch loudly enough or that have really good reasons to want their money back can always be refunded.

Do a 5 or 10 day trial next to your instant monthly rebill. This will significantly increase the conversion rate for your higher priced product and it will attract a few people that would otherwise not buy in.

Make the monthly one the default, and price the 5 or 10 day trial at half your monthly rate to make it look good.

A/B test your pricing! (see http://jacquesmattheij.com/Double+your+price+%28and+no,+I%27... ) just to make sure you're not leaving money on the table.

Get yourself an IPSP that is in it for the long haul.

Hi Jacques, useful information, but what's an IPSP?

Internet payment service provider, the party between you and the card companies. You can go it alone in this respect but it's not worth your time and the trouble, until you reach a very large scale.

Fraud control and compliance are the major problem areas in that respect.

Oh, I completely forgot to add: keep an eye on your tax obligations, especially VAT / Sales tax, it can make a huge difference where your corporation is located, the golden rule is do not incorporate in your target market or you'll likely be liable for a lot of sales tax.

Simplicity in pricing structure is a feature. Spare your users the burden and charge them a consistent amount. Prorate this, discount that, and you'll quickly confuse not just your users, but your billing code (if you're handling it in-house) as well as your legal documents.

For example, with our app, the TOS specifies you're paying for a monthly interval with no refunds for unused time. Feel free to take a look at the TOS for our app. IANAL, but I'm willing to help.

That said, I'm not so sure what I've said can be classified as "best practice", but I think it's a fairly common way to run SaaS billing for a small shop.

Thanks, your Terms of Service are excellent [1]. For others, here's the applicable section:

Service of the Applications is billed in advance on a monthly basis and is non-refundable. There will be no refunds or credits for partial months of service, upgrade/downgrade refunds, or refunds for months unused with an open account.

What if a customer signs up for your Solo plan ($15/mo), and then immediately upgrades to Agency ($49/mo). How much is he charged and when?

And what about the other way around: Agency to Solo. They don't get a credit for $34 when they downgrade to apply to future payments? With a service like Recurly, they're credited that $34 and that's applied to future bills. In your app, it seems like they'd pay the $49, then $15 when they downgrade and then $15/mo thereafter, correct?

[1] http://www.roninapp.com/site/tos

Let the user win in the normal case.

If they pay for the smaller plan, and the next day they upgrade, they'll happily receive the larger plan until the next billing cycle. This also means they can cheat the system by paying, the next day upgrading, then downgrading right before the next billing cycle. Oh well, we've got bigger fish to fry. If they love your service enough to live with the pain of having to time their upgrades and downgrades, you have a gold mine in your hands and you're probably not hurting from being unable to collect your $34.

As for the downgrade case, the TOS applies in this case. Fortunately, very rarely do our customers downgrade. After all, we've built a service that helps them build their company (and I gather jMockups is much the same). It hurts us more than just financially to see them shrink in size.

At the end of the day, we're running on a streamlined billing system that doesn't take more than a paragraph to explain. And this helps because we also put up an explanation right on the account upgrade page. More importantly, we're not wrestling with unmanageable amounts of code or fretting about a third party vendor meeting business needs - more time to spend improving the product in more important ways.

We have run a recurring billing for 8 years.

We also do monthly prepay with no refunds -- it keeps things really simple. I cannot even recall a time when someone wanted a pro-rata refund.

The only thing you'll have to deal with is the "receipt" often reminds people they want to unsubscribe, so you have to decide how strict you'll be with the no-refunds policy in that case. We typically refund them since we don't email ahead of time about the renewal.

We also allow people to "deactivate" accounts to resurrect later. We have had people come back alive many times, and I doubt if we deleted everything that they would have bothered to start up again.

IMO, send an invoice, not a receipt, that says "You will be auto-debited in a nonrefundable way tomorrow". I get warm tinglies every time I get one of those.

As a customer, I don't except a refund, but I do expect to keep my access until the last day.

Example : If a payment go through on the 1st of the month and I cancel 5 days later, I would expect to still have 25 days of service after that.

However, if a customer is adamant about getting a refund, just do it and move on.

I would also be interested in hearing what services people use to handle monthly billing as well as plusses and minuses.

For example, is it true with pay pal that on their credit card statement it will say something like Paypal <company name>

I am also about to launch a service with a recurring billing component.

Paypal lets you specify the name you want to appear on credit card statements. You get to specify an 11 character and a 19 character name for the charge:


PayPal and Authorize.net's CIM (in front of a merchant account). CIM (Customer Information Manager) lets you store customers' payment information on Authorizenet's servers, and charge it by reference at any time. A daily cron job checks which accounts have not been billed in over 30 days and issues the charges through the CIM API. It's not terribly complicated, and a lot easier than the type of setup you need to store credit card numbers yourself while complying with PCIDSS.

If you ever look at the "subscription management as a service" companies, avoid Recurly. Chargify and Spreedly seem alright, but having implemented recurring billing with CIM and PayPal a few times already, they don't save me anything worth paying for.

Anything I pay for with paypal appears as PAYPAL <company name> <some account number> <3 letter country code>.

1) Speaking as a customer I don't see any reason to offer a pro-rated refund, it's nice but I have no expectation of it, and so it doesn't bother me. However if your would rather going the refund route you may be better off letting people delay the cancellation until the end of the billing period i.e. I'm paying monthly on the 15th, on the 27th I decide to cancel, I won't get billed again but my subscription stays active until the 15th of the next month.

2) It depends on your service, if it doesn't cost much to keep user's info saved you may want to go the route I believe Netflix takes by separating the user account and their subscription. Canceling the subscription makes it so that I can't use the main feature of their service (i.e. watch/rent movies) but I can still log in and restart my subscription easily. Additionally I can delete my account to remove my data from their servers (at least in theory).

Obviously all of this depends on the specific product your offering but thats my $.02

Netflix keeps your data, probably, because it helps with their recommendation algorithms.

If they presented to you that they had fully deleted your data, they'd have to remove the data from the collaborative filtering graph. Ultimately they can do that if you explicitly ask, but as a routine matter of course why would they make their graph less smart off the back of you leaving the service?

Keep data when account is closed: If the removal of the closed customer's data would render your system less smart and you are not in the EU.

Remove data upon account close: If it doesn't impact the overall level of 'smart' of your service, if the user explicitly asks or if your servers are in the EU (data protection rules).

I think a lot of the people saying that customers have no expectations of pro-rating have got the usual $20 per month SaaS pricing stuck in their head.

Not all apps cost that. If the app is $299 a month, and a customer cancels one day after being rebilled, I think you'd find they appreciate the option to have a pro-rated refund!

It might be appreciated, but it doesn't go without saying. I used to spend more than that each month on dedicated servers and the hosts (I used a few at the time) generally had a policy that you had to cancel a few days before the renewal to get out that month. If you missed it, then you could still cancel, but you had the server till the end of the month. Seemed quite acceptable to me as a customer.

1) If a customer cancels their account should you offer a prorated refund for the unused time?

Yes. You might not want to actually put such a policy in writing, so that you'll have flexibility if you think it's being abused; but only in very exceptional circumstances is it a good idea to piss off your ex-customers.

2) Should you let customers cancel their subscription to your service without deleting their account?

No. If a subscription lapses for some potentially accidental reason (e.g., a credit card expiring) then you should definitely allow the customer a chance to fix this; but if they take deliberate action to close their account, there's no reason to keep it around (and some people will get very upset if you continue to hold on to information which they consider to be personal).

Anyone got tips on payment gateways & merchant accounts outside of the US. I'd love to use chargify.com but getting a merchant account seems to be a PITA in Europe and I absolutely refuse to do any more business with PayPal.

Yeah, getting a merchant account is a royal PITA in the UK. I first applied over six weeks ago now and I won't get one for another 2 week minimum. This was mainly due to my ignorance of the process and the glacial pace at which some of these institutions move.

There's probably a blog post in this but I'm taking 2 approaches simultaneously, both will use Recurly to handle the subscription billing and the onerous part of PCI compliance and both use SagePay as my payment gateway as they face off to Recurly:

1. Applying for a merchant account with Elavon. This was initially rejected as I was taking payments in USD and they had some problem settling to a GBP business account (no idea why). So I've opened a USD business account with my bank, this has just come through so I now need to go through the application process with Elavon again.

2. Applying for a merchant account with Lloyds TSB Cardnet. They initially declined as the underwriters saw too much risk in the fact that I'm taking a recurring monthly payment, said they would only consider that sort of arrangement if I'd been taking regular cc payments with them for 12 months(!). I asked them whether they would reconsider if they could hold to the money for 60 or even 90 days... they reconsidered, and 2 weeks ago they set up a meeting for yesterday (15th), so 2 weeks of no progress. I got a phone call yesterday morning telling me the account manager was sick but we could do it all over email anyway (a pointless 2 weeks of no progress then). They have all my stuff, I'm going to chase them this afternoon.

We need something like Braintree in the UK, or at least someone to come in and disrupt the market a little.


Maybe in the future - right now it's quite enough for my tiny brain to wrap my head around the process of applying for one of these accounts.

I suppose, it's not a trivial task to complete, otherwise it would've been done already, as I can only imagine that there is a lot of cash to get in that game.

We are using RBS WordPay at the moment (purely because our bank account is with RBS), but to be honest, the interface is crap, the hosted payment page is crap and the support via the phone is far from brilliant.

I'm actually investigating using Chargify myself even though it means signing up for a new IPSP and getting a new business bank account with Barclays (the only one they support).

I run three services with monthly subscriptions, the oldest having gone from free to freemium about 6 years ago.

1) Keep it simple. Don't prorate things, just let their subscription continue until the end of the month they already paid for. Rarely someone asks for a refund after canceling, and I give it to them.

2) If there's any chance they might return in the future as a subscriber, yes. Keep accounts and subscriptions as separate entities in your code/data. Subscriptions can come and go, the account doesn't change.

At $10/month there isn't much value in providing refunds as a matter of policy.

At $1000/month a refunding is more appropriate.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact