In , Daniel Jalkut talks about switching from PayPal to Stripe as the payment method for his Mac app . This sparked a discussion about the pros and cons of different ways to handle selling your digital products. the latest episode of Core Intuition MarsEdit on the corresponding Slack team European VAT rules, accounting and other distractions make this harder than you think! In this article, I will outline the common payment options for digital products and their individual advantages and disadvantages. This is from the perspective of a Mac developer, but apart from the licensing aspect, it applies to all other digital products as well, including SaaS subscriptions and online courses. Note that I am neither a lawyer nor an accountant; these are just my personal recommendations. Having people send you cash or checks in the mail Fees: None (I guess) This used to be the state of the art in accepting payments — in 1992.In 2017, it is the fastest way to kill your business. Advantages That warm, fuzzy feeling when someone really goes through the hassle of putting cash in an envelope with postage and going to the post office, just to buy your software. No third-party dependencies (other than your local mail provider). Disadvantages Everything else. Let’s move on. Having people send you money via PayPal or Stripe Fees: 2.9 % + 30 ¢/transaction ( Stripe , PayPal , Braintree ) You could either just have a PayPal “send me money” link on your website, or create a payment form with an automated process that delivers your license code. This might be the option that naturally comes to mind, but keep in mind that you are still responsible for creating proper invoices and charging (and deducting) VAT in countries that charge it, including about all EU countries — which also charge varying VAT rates per country. If you are based in the US, you might get away with ignoring the EU’s VAT rules altogether, but I don’t recommend that. You would be in good company there — looks like and have just that approach — but I still don’t recommend it. (I’m German. We like to avoid risks.) Panic The Omni Group really Advantages The cheapest way to accept payments online. Just one dependency that is also easy to switch out in case you need to. Disadvantages You are responsible for proper handling of VAT, which is a mess. if you’d like to learn more. Read this article You’d also be responsible for creating proper invoices and accounting for your payments. You might get away in just booking the lump sums sent to you every month by Strip/Paypal/Braintree, but in some cases you might need to have every individual transaction in your books. If unsure, talk to an accountant. You also need to implement the whole licensing system yourself. This can be a of work. (See the bottom of the article for some pointers on how to deal with that.) lot In the case of PayPal: You have to deal with PayPal, which is a terrible company ( , ). Source Source Having people send you money via Stripe, but letting someone else deal with that whole VAT mess Fees: 2.9 % + 30 ¢/transaction ( Stripe ) plus $31/month ( Taxamo ), $31/month ( Octobat ) or €29/month ( Quaderno ) If you ask me, this is a much better approach. VAT is such a complex matter that it’s hard to get right, and as with all taxes it is something you don’t want to mess up. With some services (such as ), you might also have some of the accounting and invoicing done for you. really Quaderno Advantages Much less work in terms of VAT/invoicing/accounting. Disadvantages You probably still need to sign up for an EU VAT ID and yourself. (Not 100% sure about that, though.) file your VATMOSS return You now need to manage two services. Slightly more expensive. Still have to deal with licensing yourself. (Again, see the bottom of the article for some pointers on how to deal with that.) Having a reseller handle payments, invoicing and VAT for you — but with your own licensing system Fees: 5 % + 50 ¢/transaction ( Paddle ), slightly more with FastSpring , $10/month plus 3.5 % + 30 ¢/transaction ( Gumroad ) In this case, your reseller acts as your . This means that they are the actual business taking your customers payment, and thus responsible for creating a proper invoice, dealing with VAT, and so on. At the end of the month, you just get a nice lump sum transferred into your bank account, which also makes your accounting easier. Merchant of Record This is actually the option I use: I use , which lets me avoid dealing with all the payment stuff, and combine it with a completely homegrown licensing system. That way, I retain full flexibility in terms of pricing, discounts and licensing. I can offer paid upgrades, limited-time licenses and whatever else the business requires. And in case there’s a problem with one reseller, it is still fairly easy to switch to another one as just the payment-handling part (but not the licensing) is affected. Paddle To be honest, Paddle isn’t terrific, either. Their checkout process looks nice and is very straightforward, but they have been slow in implementing new features and there are a few edge cases I’d like to have handled differently. I’d say they definitely are the service that sucks the least, though ;-) FastSpring is fairly similar to their service, though, but costs a bit more. (Their pricing page no longer shows their pricing, but it used to be around either 8.9 % or 5.9 % + 95 ¢/transaction). Gumroad might look like the cheapest option, but keep in mind that their service was not built for selling Mac apps or subscriptions. So while it might be possible to make these work with Gumroad, you’ll likely have to jump through more hoops than with Paddle or FastSpring to accomplish the same goals. Advantages VAT, invoicing, accounting all done for you. You are still able to switch resellers, as you are not locked into a particular licensing system. Disadvantages Still more expensive, but I’d say it’s worth it. have to deal with licensing yourself. (See below for tips…) Still Using a reseller and their existing licensing system Fees: Same as above — 5 % + 50 ¢ ( Paddle ) This is the most convenient option, most similar to the Mac App Store. Just plug in an SDK and have that deal with all payment and licensing issues. For example, the reseller also offers . To be honest, I tried to use their system but found their licensing system way too inflexible for my needs (unless you replace most parts with your own, custom solution, in which case you could just build the whole thing yourself). Paddle an SDK to handle licensing for you However, you could also use a third-party licensing system such as . In fact, . Given that DevMate was originally developed by the great people at , makers of the service), I would imagine their system to be in much better shape than the original Paddle SDK. DevMate DevMate was recently acquired by Paddle MacPaw Setapp However, in either case you are locked fairly tightly to a specific reseller when you use their licensing system. , but I would still be a bit worried in case you’d ever want to switch resellers or migrate to a different licensing system. DevMate might still be compatible with FastSpring Advantages Very easy and worry-free, almost drop-in. VAT, invoicing, accounting all done for you. No need to worry about licensing, either. Disadvantages Fairly tight lock-in. Switching to a different reseller (and a different licensing system) would be painful. These are the payment options that I could think of. For my app , I went with a combination of for payments, invoicing and VAT handling plus my own, homegrown, licensing system. Timing Paddle For most Mac developers, it would be wise to combine a reseller such as or with an open source licensing system such as (also see ) or . Both are fairly easy to integrate. This lets you avoid worrying about all the payment problems, while retaining full control of the licensing system. (Alternatively, my friend wrote .) Paddle FastSpring CocoaFob my Python-based CocoaFob license generator and server Aquatic Prime Christian Tietze a book on how to sell your Mac app with FastSpring What licensing system do you use? Are there any points I missed? Let me know with a comment or a tweet to @daniel_a_a !