Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

The SaaS is for real estate companies, and they can pay a monthly fee that will offer them 1000 publications but they can also consume additional publications or other services that will appear on their bill as extras.

On registration the user can choose one of the 5 available plans that the only difference will be the quantity of publications their plan allows them to make. But they can pass that limit if they wish, and additional payment will be required on the next bill.

A publication means: Publishing a property during one day, for 1 whole month would be: 30 publications. And 5 properties during one day would be 5 publications.

So basically the user can:

  • Make publications (already paid in the monthly fee, extra payment only if it passes the limit)
  • Highlight that publication (extra payment)
  • Publish on other websites or printed catalogues (extra payment)

Doubts:

  • How to handle modifications in pricing plans? Let's say quantities change, or you want to offer some free stuff.
  • How to handle unpaid invoices? I mean, freeze the service until the payment has been done and then resume it.
  • When to make the invoices? The idea is to make one invoice for the monthly fee and a second invoice for the extra services that were consumed.
  • What payment methods to use? The choosen now is by bank account, and mobile phone validation with a SMS. If user doesn't pay we call that phone and ask for payment.

Any examples on billing online services will be welcome! Thanks!

share|improve this question

closed as too broad by gnat, GlenH7, Dan Pichelman, MichaelT, mattnz Sep 6 '13 at 7:17

There are either too many possible answers, or good answers would be too long for this format. Please add details to narrow the answer set or to isolate an issue that can be answered in a few paragraphs.If this question can be reworded to fit the rules in the help center, please edit the question.

    
And also, am I soposed to use SSL when asking for bank account? Is it recommended to use bank account or better look for other real-time payment options like CC or Paypal, etc? –  Alexandru Trandafir Catalin Nov 10 '10 at 20:11
4  
This isn't a free design service, and some of the things you're asking depend on local conditions and laws. Since this is an international site, this isn't a good place to ask these sorts of questions. –  David Thornley Nov 10 '10 at 20:42
    
+1 @David Thornley. @Alexandru Trandafir Catalin: You might be better off working out a design with your peers (if any) and asking for some feedback on any potential issues you see in that design. –  Steve Evers Nov 10 '10 at 20:46
    
Leave a backdoor. –  mlvljr Nov 10 '10 at 21:39
    
Thanks for all your comments, I guess I will have to do more research and find someone that worked with something like this before. –  Alexandru Trandafir Catalin Nov 11 '10 at 9:39

3 Answers 3

The questions you have are higher level business decisions.

* How to handle modifications in pricing plans? Let's say quantities change, or you want to offer some free stuff.

It may be easiest to "upgrade" a customer's plan to the "new" plan at their next recurring billing. That is, the logic around a subscription may be difficult to change mid-term - it often raises a lot of questions that are difficult to answer.

* How to handle unpaid invoices? I mean, freeze the service until the payment has been done and then resume it.

This should depend on how and in what way customers rely on your service. With some services, an interruption is extremely detrimental (and angers your clients greatly), so there may be more reason for additional wiggle room where the service is left available while attempts at collection occur. Billing prior to the end of the service term can help.

* When to make the invoices? The idea is to make one invoice for the monthly fee and a second invoice for the extra services that were consumed.

Probably a safe bet. Unless your business makes more sense to bill at the same time each month for everything.

* What payment methods to use? The choosen now is by bank account, and mobile phone validation with a SMS. If user doesn't pay we call that phone and ask for payment.

Use a 3rd party service, something like Authorize.Net.

share|improve this answer

Based on my experience in large scale/high user systems would be the following:

As far as freezing an account (my assumption is that user records are stored in a DB but the idea could work if you've stored them some other way as well), you could create a field (i.e. status) which is set to active or frozen or 0 or 1 or whatever. When they log in this field is checked and their account access is limited or allowed at that time.

For the pricing I would recommend developing a very clear breakdown on the pricing such that you could plug it into a function of some sort. You would want to have the program store each instance of usage by user then when it goes to create the invoice it could pull those usages out then consults with the pricing structure to determine what the total cost is.

Not exactly sure what you're asking for exactly on the "when to make the invoice" question. Clarify and I'll throw out my thoughts.

On the last I would really recommend using PayPal. Its SO easy to make a solution that looks like its professionally developed while it actually is running using paypal. They have options where you can route the user to the paypal site to collect payment or you can remain on your own site and have the site send information to and from paypal to make it look more professional. There's more information available from PayPal on this matter.

share|improve this answer

There are some questions that you need to ask

  1. How are you going to charge the user for your "software" which you are offering as a service? You may be better off charging for the service part of it

  2. But then how do you charge for the scale up costs? One idea is to charge for the number of concurrent users logged in

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.