We now live in a time when our first instinct is to turn to the web whenever we’re considering buying something. We perform an online search on the brand or go directly to the company’s website. Even when other people make recommendations via peer-to-peer marketing,...
Let’s do a thorough review of Stripe vs PayPal. We’ll compare each payment processor in five key categories: Transaction Fees, Security, API, Data Portability, Customer Service. We won’t declare a winner for each category, but we’ll point out some of the important differences, which should help you make a more informed decision.
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, they offer discounts as volume goes up. The discounts kick in at $3,000 (2.5% + 30¢), $10,000 (2.2% + 30¢), and $100,000 (not published) per month. This looks like a better deal, but PayPal throws in some extra service fees that make things a bit more complicated.
Let’s compare Stripe and PayPal’s service fees:
|Charge cards from your website||$30 / month ||Free|
|American Express||3.5% ||Same flat rate|
|International cards||1% ||Free |
|Authorize card||30¢ ||Free|
- $5 / month for PayPal Advanced and $30 / month for PayPal Pro. Compare the different features. PayPal Advanced requires you offer PayPal as a payment option.
- American Express fee is only charged for PayPal Advanced and PayPal Pro, which is required for certain features (see note 1).
- 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.
You’ll notice that PayPal fees are far more complex and require plenty of explaining. For example, they only charge extra for American Express when you’re on one of the paid plans, which seems counterintuitive.
So, how do the transaction fees compare in a real life scenario? Let’s take a look at a Stripe vs PayPal transaction fee comparison chart based on sales volume. Remember, if you want to charge cards on your site using PayPal and not provide PayPal as an option, you’ll need a PayPal Pro plan.
Stripe vs PayPal Payment transaction fee comparison chart
|Volume / Month||Stripe||PayPal Standard||PayPal Pro|
Assumes $20 for each transaction.
As you can see, $5,000 in monthly volume is an interesting data point. That’s right around where it starts becoming cheaper to use PayPal. Keep in mind, we’re not counting any of the service fees we discussed earlier, which would bring the PayPal costs up a bit.
When do I get paid?
PayPal usually pays out within 1 business day, while Stripe takes 7 full days. If fast access to your funds is important, keep this in mind.
Update: USA Stripe customers now get faster two day transfers.
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 has to go through your servers, and this puts a big security burden (see PCI compliance above) on the software developer or the customer who has installed the software.
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 it’s 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 evolve and compete over the next few years. In the end, we’ll all enjoy better service because of it.