This week I’ve been analysing the pros and cons between different payment providers, researching heavily into how sales tax works and the complications that surround sale tax in differing countries and states. I have identified the following payment providers as potential candidates:
The following features and benefits are how I am basing my decision.
I would like to be able to provide a subscription model for Stamp where new features and bug fixes are only available to those who have purchased a yearly subscription to them. All of these payment gateways provide some kind of recurring payment plan along side a single purchase.
Global Sales Tax
Global sales tax is complicated and is a massive headache. Take a look at this Sales Tax Agony Index. Ultimately there are two ways you can approach it. The hardest is by doing it yourself by using a payment gateway such as Stripe or Mollie you then need to somehow identify where the customer is located in the world and calculate the sale tax. There are Tax Calculator API’s out there, such as taxrate but also remember that some countries and states in America require you to register for sale tax before a customer has even made a purchase. The second approach is much more easy and works around the concept of a “Merchant of Record”. Essentially you are contracting someone else to sell your product for you and dealing purely with the financials. Paddle, FastSpring and even app stores like the Apple App Store and the Google Play Store are Merchant of Records. A Merchant of Record takes on all the responsibility to deal with global sales tax, payments and even support for refunds and payment problems. Merchant of Records typically charge per transaction.
- Paddle & FastSpring act as a Merchant of Record, meaning I would not have the headache of global sales tax.
- Stripe & Mollie are payment gateways, meaning I would need to roll my own sales tax stack…
A comprehensive API would provide the needed access to payment or subscription details to allow for Stamp activate or deactivate depending on the state of purchase. Stripes API is well known for being incredibly well established and beautifully documented and has been the source of study for me throughout this Masters as I have developed my own API’s. All 4 options do produce API’s that to a reasonable degree fit the requirement to be able to ascertain whether a purchase had been made by a specific account.
API’s are great but what is even better is when a SDK (Software Development Kit) has been created to make programming and interacting with the payment provider even easier. Paddle, Stripe and Mollie are all included in Laravel Cashier which is a package that provides an expressive and fluent interface to their billing services and can easily be built into a current Laravel project. Sadly FastSpring isn’t included within Laravel Cashier but does distribute CocoaFob’s which are generated licenses keys that can be quite easily used within your application to unlock functionality. That is how Stamp currently is licensed.
I have chosen to work towards using Paddle as my payment provider for the reasons that they are a Merchant of Record. Most of what I have learnt regarding Sale Tax has been from Paddle. For example Global Sale Tax is a very helpful video to watch to get informed. Lastly Paddle has very recently been implement into Laravel Cashier and so integration should be relatively straight forward.
- CocoaFob. [online]. Available at: https://github.com/glebd/cocoafob [accessed 30 July 2020].
- Loos, Matt. 2017. Q&A with Christian Tietze [online]. Available at: https://fastspring.com/blog/questions-answers-christian-tietze/ [accessed 30 July 2020].
- TIETZE, Christian. 2016. Make Money Outside the App Store [online]. Available at: https://christiantietze.de/books/make-money-outside-mac-app-store-fastspring/ [accessed 30 July 2020].