I'm glad to see that Stripe has lit such a fire under their competitors. I'm new to the payment gateway scene—can anyone with experience give a comparison of Stripe vs Braintree's APIs?
I’ve not used Stripe, but I’ve used Braintree for a while. Braintree is an older company, and it seems to have a bigger, lower level API. Stripe’s is much higher level, and looks like it could be both simpler and easier to use. This is probably not just because of age, but also because Stripe wraps and owns your merchant account (it looks like), while Braintree works with a merchant account, exposing many more technical details of the payments process (thus making you manage them).
Braintree’s API, while REST underneath, is only supported at the library level and they have more languages supported for this reason than Stripe (Including mobile specific APIs). Obviously this makes it much easier to support newer, hipper languages with Stripe - just write your own wrapper to the REST API.
Most of the big features seem to be supported on both platforms, one off and reoccurring payments, token based transactions, etc.
Started to use Stripe recently for a project and have used Braintree extensively for work. Your comparison is spot on.
There are some small differences such as, Stripe can send credit card details through AJAX to their servers so they are never sent to yours. Whereas Braintree uses Javascript encryption to do it, so the encrypted values are sent to your server. But I haven't seen anything that only Braintree supports yet.
Tradeoff with Stripe is that while you get a much simpler API, it (likely) will cost you more than Braintree depending on scale and what cards are commonly used.
The nice part of sending the data to your servers with client side encryption is that you can do validation before sending to the payment gateway. For example, if you want to ensure everyone enters a cardholder name, you can validate the non-encrypted fields before eating the cost of calling a payment gateway.
You can do some of these validations in javascript, but javascript is error-prone (firebug) and not as flexible (have access to a lot more data server side).
Braintree’s API, while REST underneath, is only supported at the library level and they have more languages supported for this reason than Stripe (Including mobile specific APIs). Obviously this makes it much easier to support newer, hipper languages with Stripe - just write your own wrapper to the REST API.
Most of the big features seem to be supported on both platforms, one off and reoccurring payments, token based transactions, etc.