A few months ago I upgraded a client’s website to support Stripe along side the prior Paypal implementation. The result: sales are up slightly and about 60% of customers are choosing to pay with Stripe.
VS.
Quick summary: I’m impressed with Stripe as a developer. Customers obviously prefer Stripe. On the business side, the feedback I got from my client is, if you can put up with some of Stripe’s reporting and accounting limitations it is a clear win because the implementation cost is lower.
The Developer Experience:
Stripe has an easy to use control panel, a great API, and pretty decent documentation. They are by developers for developers and it shows. You basically drop in some JavaScript, and then write a very simple call to their API on the backend to complete the purchase. Your server never sees the credit card number. That makes life easy. Stripe supports REST, PHP, Ruby, Python, Java, iOS, and there are many third party libraries which offer additional language support: https://stripe.com/docs/libraries
Stripe is particularly strong because of their clear distinction between testing mode and live mode. Both modes are built on top of the exact same API. Testing failure codes (like a bad zip code) is so easy. The Stripe testing page has a list of special card numbers which trigger certain error conditions: https://stripe.com/docs/testing
Paypal’s developer experience is clunky and reflects the 10 year old design. Their documentation can be pretty hard to navigate. Paypal has a developer sandbox site that requires a separate set of logins. You have to stay logged into the sandbox site in order to test checking out when using paypal buttons. This makes it annoying to test across multiple browsers. You are also forced to setup sandbox accounts and make sure they maintain a balance. Good luck figuring out how to add money… I wound up just making new accounts. It also appears the dev backend and the live backend are at times running different builds, which scares me.
Paypal has a callback system called IPN (instant payment notification). This is actually fairly simple to work with. I did not work with the Stripe’s callback hooks. However, in reading Stripe’s documentation on the subject it appears to be far superior, especially when setting up recurring payments.
The Experience for the Customer Buying at Your Website:
Stripe’s checkout interface is incredibly streamlined and simple – follow this link for their demo: https://stripe.com/docs/checkout. Even customer address fields are optional. The credit card collection screen operates as an overlay on your checkout page. Stripe supports just about all major browsers though at the time of this writing Opera is not supported. A Stripe account is not required to make the purchase. Stripe has a nice looking email receipt that goes out automatically.
A lot of customers don’t like Paypal, I tend to agree. Paypal is slow and when using Paypal buttons there are more opportunities to stop the purchase because of the extra screen changes. While customers in the USA can proceed through the checkout and pay without needing a Paypal account, we had numerous complaints from customers outside the USA because Paypal was forcing them to open an account! This is actually what pushed my client over the edge in terms of pulling the trigger on the Stripe integration.
The Business User Experience:
Paypal integrates nicely with the bank, allows payments and invoices to be sent, and overall just works. Paypal has solid reports that make sense to business people.
Stripe wants to credit the bank account every day, creating a flurry of transactions. This can be really annoying, especially if you are used to transferring money from the Paypal account to the company bank account. At the time of this writing Stripe is very thin on reporting capabilities. Since I started drafting this post they did introduce a way of downloading transactions as CSV, but it requires setting up a report filter each time and then clicking download (still as CSV). What my client wanted is a monthly PDF report with a summary total at the bottom. If Stripe emulates Paypal in this respect they will make most people very happy.
In terms of fees, Stripe and Paypal start off the same for small retailers. However, Paypal reduces their fees as your sales volume grows. I wish Stripe did this! Paypal cuts businesses a break after monthly sales hit $3,000, $10,000, and $100,000. Paypal also offers Micropayment fees which are good for companies that have an average transaction under $10. I’d say this is the only way Paypal really wins, but it is a substantial advantage until Stripe can scale out enough to offer volume discounts.
Paypal Merchant Fees:
https://www.paypal.com/us/webapps/mpp/merchant-fees
Stripe Pricing:
https://stripe.com/us/help/pricing
Customer Support:
Paypal customer support experience gets a 1 out of 5 stars. Typical situation with outsourced technical support and a phone tree from hell. I was hold for way too long, tell them the problem with their system (echecks were not clearing), they act confused at first, transfer me to some other department, deny the problem exists, then out of the blue a few days later tell me it is already fixed…
Stripe is good about getting back with qualified people who understand my needs. 4/5 stars here – just wish they responded faster. Stripe has an interesting policy at their company where employee email works more like lists. This creates at atmosphere of transparency: https://stripe.com/blog/email-transparency Sounds good to me!
System Performance:
For the most part, both Paypal and Stripe have had solid up time. Very rarely an email from Paypal gets lost or take several hours. Very rarely Stripe email receipts are 90 minutes behind the actual transaction.