Nope. The Stripe advantage over PayPal is that Stripe operates more like a merchant account, where the buyer sees the seller's name on the credit card statement. PayPal injects itself into the checkout process, Stripe is basically a white label. Stripe also has easier underwriting. I suspect Stripe is taking more business from merchant accounts/gateways than PayPal, because they are different markets.
As someone that selected stripe to process orders for a product were were launching somewhere around 2012, it was because of the APIs and developer sandbox.
Paypal was ugly to work with, felt crufty, etc. Stripe had pip installable modules, awesome documentation (live code samples in docs and sandbox), and was easy to integrate into our tests.
That's the least of it. Paypal automatically puts you on a 21-60 day rolling reserve once you hit a certain level. Small businesses can and have had 30%+ of their revenue unavailable for two months. That's your entire profit margin gone. It makes it impossible to grow a small business. And of course they will not respond to anything for months if ever. And it never gets better! Companies with millions in revenue still get these problems.
Paypal has no place being used by anyone trying to start a company. They are awful.
Before Stripe - I had to take a loan out, and make the switch to Authorize.net so I could get my company off PayPal and its 60 day reserve - otherwise it would have folded. They were perpetually holding tens of thousands of dollars at all times.
They'll do that sooner or later. Everyone in the money-handling industry has to randomly lock-up funds and not tell you why, because that's what anti-money-laundering laws require.
Ok, but there's a difference between doing that because you are required to by law, and doing it because you've chosen to adopt appalling business practices.
PayPal had a developer sandbox back in 2010 when I wrote our client code. Honestly I don't remember it being difficult or tricky. The worst aspect was their confusing documentation which tended to mix up various different services and APIs such that it was hard to figure out which was the current, appropriate one. Perhaps that was the Stripe advantage: a single obvious course of action to take.
One of my best upvoted stackoverflow answers is about a paypal sandbox bug (or "undocumented feature") where it would disregard the port in the pingback url.
Just generally the sandbox was horrible, it had a weird 'double login' system where it often got confused between whether you were 'inside' the sandbox logged in as a fake user or outside logged in as your paypal account.
And you're right about their woefully confusing documentation, it was definitely hard to understand which payment flow you were trying to use and which was appropriate.
I suspect also that the marketing folks re-branded the various services on a regular basis so you weren't even sure if two different names for something actually referred to the same thing.
PayPal tried to "modernize" their old crufty SOAP API with a REST-based API but ended up creating a separate half-functional, poorly documented, buggy layer on top of it that actually loses payments sometimes. I processed millions of payments through it and actually have their support people admitting the problems.
Their only hope is a reverse-takeover from Braintree. I'm not holding my breath; I've done my last PayPal integration. Forget all the "paypal will hold your money" concerns - the real problem is that they will loose your money in the wonky Rube Goldberg machine they've created to process payments.
In a series of calls with the top tier of support at Paypal, no one was able to even answer which API was the best to use. I was told not to use SOAP (or NVP), because they're ancient, not to use REST because it wasn't ready yet, and that the Braintree API around PayPal would never support the features we were trying to implement.
Ease of development was our number one reason to use Stripe for sure. We did end up adding Paypal after and it was a pain to work with.
Stripe was so reliable that we had clickety-test that used their real sandbox API to make sure in our CI that payment kept working.
Whenever someone brings up Stripe it always brings happy memories. I've never worked with a third party API that was as nice as theirs. Their Ruby SDK helped with that of course.
> The Stripe advantage over PayPal is that Stripe operates more like a merchant account, where the buyer sees the seller's name on the credit card statement. PayPal injects itself into the checkout process, Stripe is basically a white label.
You're talking about PayPal Express, which is the PayPal form most of us are familiar with.
PayPal has a number of other services, such as Payments Pro, and PayFlow, which act just like a Credit Card Processor, ie. the customer has no idea it's PayPal on the backend - they enter their credit card info on your checkout form like normal and click submit. The customer's bank statement will state your company name, not PayPal.
Majority (all?) of the PayPal horror stories you hear are from folks using PayPal Express with large amounts of money coming from weird places. Payments Pro really is a different class of service, complete with your own representative you can call up 24 hours a day. You can also setup a nightly automated sweep of any funds to your real bank account.
The Stripe advantage over PayPal is that
Stripe operates more like a merchant account ...
Stripe is an ISO with First Data Merchant Services (FDMS, I believe now owned or controlled by Wells Fargo) doing the actual processing and, as such, assumes a different legal role than PayPal (which is a VAR for Paymentech). This is how Stripe is, as you say, "basically a white label."
We moved from PayPal to Stripe. Yes, integration was much easier, because of the simple and effective API and great documentation (good examples with your own data included - brilliant!).
But we switched because PayPal just did not work. A significant percentage of card transactions failed for absolutely no reason, despite "good" customers (school teachers from first world countries), no chargebacks and no fraud. Cards would routinely magically work the next day, and in the end we came to believe PayPal arbitrarily failed card transactions to force people to set up PayPal accounts.
Moving to Stripe resolved this overnight. We'll never go back.
And don't underestimate the power of new and... different. Many founders pass on markets they think have no room for innovation or new entrants, only to leap into some small marketless crevice.
> The real break through for stripe was it was an alternative to PayPal with a modern UI.
Paypal's documentation and the sandbox process is so atrocious that I had to question my own intelligence. Turns out the problem was with paypal and not my IQ.
The PayPal form also involved redirecting all your users over to PayPal. Stripe has always integrated into your site/service which is part of what made that form so nifty.
Wait, the /your-server-side-code bit seems like the most difficult. Did Stripe not implement this aspect as well? I would have no idea how to securely process credit card transactions server-side.
If I remember how they worked (last did stripe integration a ways back), the script instruments your form's submit event to do an (ajax if possible) POST to stripe's server, which processes everything, and returns back a (merchant specific) "token" representing a redeemable charge to the customer. The form is then posted to your server, but all it gets is the "token", which it can then use your private merchant key to redeem behind the scenes with their server.
So you get an anonymous "charge" token that you can revoke if a later part of the checkout process fails, and CC data never touches your system.
(I think the markup for that was a little bit different than what was posted above though).
Correct, and the big reason for that is it means you don't have to be PCI compliant since the card never touches your server, only stripes. That's why Stripe blew up, Paypal had no such offering for allowing you to use your own checkout form but not have to pass the card through your server.
That product seems to have a marketing problem. I've heard plenty of PayPal horror stories over the years, but this thread is the first time I've ever heard of Payments Pro.
I think they did eventually. I remember trying to use Stripe for a project during college (2012ish) that involved building a website with a REST integration in C#. My rtfm'ing skills were much worse back then so I could be wrong, but yeah, you had to do a bunch of server-side implementation and make calls to their API. It seemed quite challenging to me at the time, but looking back, it really wasn't. They've gotten rid of that extra step now though. You can just drop in the javascript and their html form with api keys and you're ready to go.
It's a nice headline, but it really leaves out the tremendous amount of back-end work that went into making that front end easy to use.