Hidden work when launching a SaaS
Did this for our new product Construct 3:  
<a href="https:&#x2F;&#x2F;www.construct.net" rel="nofollow">https:&#x2F;&#x2F;www.construct.net</a><p>It was difficult, but built some good features that do give us a lot of flexibility:<p><pre><code>  * region based pricing
  * region based billing cycles
  * multiple plan options per region
  * auto generated pricing based on live fx rates which ar
  rounded “nicely” which is harder than it sounds
  *% based discounts and account credit
  * ability to modify seat counts
</code></pre>
Difficulties amongst many many others are:<p><pre><code>  * VAT handling (it’s different per customer type and country!) and generally having a solid grip on business finance
  * abstracting it to allow multiple payment methods (stripe and PayPal)
  * generalising it enough to support multiple products
  * dealing with fx changes during checkout
  * handling disputes, refunds, etc and their affect on product access
  * just PayPal in general god damn!  When dealing with b2c not including it is tempting but not really and option.  PayPal and stripe in my experience give 99%+ coverage
</code></pre>
Easy bits are the generating of invoices (prefer to do this in house) and all the other trim like emails etc.  That’s just grind work.<p>I’m proud of it though and so far we’ve done 6 figures through it and is holding up well (tens of thousands of LOC and probably around 6 months dev time).  We wanted it to do a lot and the design is quite sophisticated I think.<p>Second payment system with meat on it I’ve written (first cleared 7 figures but is no where nearly as well designed and mainly deals with one off payments).  I enjoy making them!<p>Would definitely of bitten off more than I could chew if I was less experienced.  Making it all scalable and reliable is another layer of complexity.<p>One gotcha which is hard to manage on a business level when dealing with sass accepting multiple currencies is forex rates that become very out of sync with your orginal price points.  Can explain more but on phone!<p>Still to do is adding a system for accepting POS,  a lot of the difficulties we face is we sell to the whole market, consumers, businesses of sizes and education.  When selling to education specifically offering native currencies is a huge competitive edge especially for sass.<p>Also still to do in a more elegant way is b2b enterprise customers sometimes like paying for multiple years in advance - high value orders so another important case to cater for!<p>ALSO still to do is create accounts for resellers to buy at discounted rates.  You can see how much work is involved on this sort of thing!<p>Winging it with “it works” won’t cut it imo (9&#x2F;10 I’m all for it!) - that is the gooiest technical debt you can take on.  Imo you need to seriously invest time into a good design from day zero.