Recently updated! January 2018
Let's do a thorough review of Stripe vs PayPal. We'll compare each payment processor in five key categories: Transaction and service fees, Security, API, Data Portability, Customer Service. We won't declare a winner, but we'll point out some of the important differences, which should help you make a more informed decision.
Transaction and service fees
Stripe takes a simple approach. They charge you a flat rate of 2.9% + 30¢ per successful charge as long as you're doing under $1 million in volume per year. This rate varies country to country, but it's always flat. They don't disclose any special high volume rates.
The base fee for PayPal is the same as Stripe, 2.9% + 30¢, but PayPal throws in some extra service fees that make things a bit more complicated. Let's compare Stripe and PayPal's fees:
🎯Have an audience? Learn how to monetize with Memberful →
|Transaction fees ||2.9% + 30¢||2.9% + 30¢|
|Charge cards from your website||$30 / month ||Free|
|American Express||3.5% ||Same flat rate|
|Micropayments (less than $10)||5% + .05¢||Same flat rate|
|Refund||Fixed fee only returned ||Fees not returned|
|International cards||1% ||Free |
|Authorize card||30¢ ||Free|
|Recurring Billing||$10 / month||Free|
|Advanced Fraud Protection||$10 / month ||Free |
|Accept Apple Pay ©||Not available||Free|
- United States transaction fees. Stripe and Paypal transaction fees vary by country.
- PayPal Payments Pro allows you to provide a fully customized checkout experience on your site and includes Virtual Terminal.
- American Express fee is only charged for PayPal Payments Pro, PayPal Payments Advanced, and Virtual Terminal, which is required for certain features (see note 2).
- Fixed fee portion of the original transaction fee (for example, the refund fee is $0.30 for domestic payments).
- PayPal cross border fees.
- International cards are free, but currency conversion costs 2%. Example: You connect a GBP bank account to Stripe, but charge in USD. Stripe will automatically convert your funds to GBP (for a 2% fee) and deposit them into your GBP bank account. If you instead charged in GBP (or connected a USD bank to Stripe), it would be free.
- PayPal charges 30¢ for uncaptured authorizations and card verification transactions.
- $10 monthly + $0.05 per transaction. Excludes Express Checkout transactions.
- See Stripe Radar.
You'll notice that PayPal fees are far more complex and nuanced. For example, they only charge extra for American Express when you're on one of the paid plans, which seems a bit counterintuitive. In almost all cases, Stripe is the cheaper option because of lower service fees (unless you're exclusively processing micropayments).
When do I get paid?
PayPal usually pays out within 1 business day. Stripe has rolling 2 day transfers in the United States and Australia, and rolling 7 day transfers in most other countries (see the Stripe automatic transfer schedules). If fast access to your funds is important and you're outside the United or Australia, keep this in mind.
Both Stripe and PayPal take security seriously. At the core, they're both very stable and secure platforms. Let's talk about how they're different, and how Stripe intrinsically encourages good security.
Stripe's killer feature when they first launched was Stripe.js. When you use Stripe.js on your website, the credit card data entered into your payment form is never sent to your server. Instead, the data is sent directly to Stripe. Why is this so important?
- Automatically PCI compliant because you don't handle any sensitive credit card data on your servers.
- More secure because a breach of your servers won't result in any stolen credit card data.
- You're not tempted to store credit card data on your servers, which you really shouldn't be doing unless you're a big business and want to pay for PCI compliance.
If you follow the normal flow with Stripe, you'll just automatically store your cards in their vault. You'll never touch the sensitive data. This encourages good security.
PayPal now has a way to store cards in a vault, but it isn't quite the same as Stripe.js. The sensitive card data still has to go through your server first, and this puts a big security burden (see PCI compliance above) on the software developer or the customer.
In summary, Stripe.js encourages good developer security practices, while PayPal gives developers room to make bad decisions. They've recently taken steps to provide better options, but these options still aren't as secure as Stripe.js.
When Stripe first launched to the public, the Stripe API was a difference maker. It's clean, well documented, and extremely easy to use. Payment processor APIs of the past were buggy, inconsistent, and poorly documented. In fact, PayPal was one of the worst offenders.
In a way, Stripe has forced PayPal to up its game. The documentation and organization of their new RESTful PayPal API is vastly improved and modeled after Stripe (coincidentally). This is an example of competition benefiting customers. Stripe has set a new standard for a clean and well documented API, and the rest of the industry (including PayPal) is rushing to catch up.
This is an area where PayPal falls flat on its face. Imagine you've built a successful membership site over the years, and you powered it with PayPal subscriptions. If you want to move to another payment processor (like Stripe), you can't transfer that credit card data. PayPal simply won't give it you. All your existing customers would have to sign up again and you'd probably lose some of them during the process.
Stripe on the other hand values data portability. If you decide to leave Stripe they'll help you migrate your credit card data in a secure and PCI-Compliant way. This over accommodating stance on data portability is certainly worth noting. It's refreshing to know you have a choice, and won't be locked in forever.
We haven't used PayPal in over two years, so we don't have any recent experience with their customer service. Back when we did use PayPal, email support was slow and unreliable, and it was nearly impossible to get someone on the phone. At one point, we had a running joke because PayPal's phone system kept hanging up on us before we could ever talk to anyone. This went on for months. There are also countless horror stories of PayPal freezing funds for no reason.
Stripe has open channels for email support, and they also have an IRC channel (#stripe on Freenode) where developers can chat and get live help from real engineers. This is invaluable if you're working through a tough problem and need some live help. Stripe doesn't yet have phone support, but I'm sure it's in the plans. They've always been very open and pleasant to deal with.
To be fair, PayPal is suffering from scale, age, and bureaucracy. Stripe is new and hustling for market share. They're working hard to differentiate with great customer service. The real test will be over time. Stripe will find it more and more challenging to provide top notch customer service as they get larger and larger. Hopefully we're still raving about their customer service five years from now.
Competition is good
For Memberful, we chose Stripe, and we couldn't be happier with that decision. It's made everything we do easier from an engineering perspective, and we've been thrilled with the service and support. With that being said, PayPal has taken steps to respond to upstarts like Stripe, and has already improved their API significantly. It will be interesting to see how these two companies continue to evolve and compete. In the end, we'll all enjoy better service because of it.