Gather round kids. There was once a day where processing payments online was something that you signed up for with a fax machine, or a merchant processing salesperson. You might even walk into a bank to get a merchant account, then they would sell you an online gateway for $20-99/month plus transaction fees. If you were lucky, it was Authorize.net, not some 5th party proprietary garbage with a ColdFusion SDK. Not to say Authorize.net was any fun at all to work with, but at least there was a Ruby Gem for it that mostly worked. Payment processing was hard. PCI audits sucked. Millions of full credit cards were stored in MySQL, unencrypted because it was left to the developer to engineer security. REST API? Hah. Hope you know SOAP and XML, and you're using the correct schema version.
Stripe made untold pain and suffering disappear. Congrats to them for getting rewarded for doing so- they have unlocked billions worth of economic value by making that process easier.
PS. Here's a fun little quote from the Authorize.net docs today, 2019-09-19:
The Authorize.Net API, which is not based on REST, offers JSON support through a translation of JSON elements to XML elements. While JSON does not typically require a set order to the elements in an object, XML requires strict ordering. Developers using the Authorize.Net API should force the ordering of elements to match this API Reference.
Do you know how to force a JSON object's elements to be specifically ordered? I don't.