I have just finished my first integration of Braintree‘s online payments system into a ticketing and event bookings web app. I’m impressed with the overall experience and with how easy Braintree have made this integration for developers, and certainly expect to use them again. No, this is not a paid advertisement and there are no affiliate links on this page.
I discovered Braintree after deciding that if my client was going to get a decent online ticketing and event booking app for their WordPress site, I would have to build it myself. Popular WordPress plugins which claimed to handle ticketing and events were disappointing. I tried one of the best known offerings, which required a (WooCommerce) shopping cart plugin be installed first, and then a stack of unpaid and paid plugins installed on top of that. After that mess of a maintenance nightmare was all in place the plugin didn’t work properly anyway and had to be uninstalled, leaving the database in a mess.
Braintree stands out in several key areas:
- Support for payments in 130 currencies by credit card and PayPal, and additionally supports Android Pay, Apple Pay, Venmo, Bitcoin and “whatever’s next”.
- SDKs are available for most popular development languages including PHP, Node.js, Ruby, Python, Java and .NET.
- Transaction workflow is reliable, secure and regulations-compliant.
- Pricing is simple and transparent: 1.75% + $.30 AUD for most transactions.
- Payments are paid directly into a client’s bank account upon settlement.
- A great sandbox environment is available which greatly simplifies development.
- Good reporting and management tools in the web-based admin console.
- Responsive, helpful support from real people.
A couple of other points worth mentioning:
Braintree is not an “off-the-shelf” consumer solution like PayPal. It is a payment solution that requires integration into an application by a developer.
Braintree’s drop-in UI collects the usual data including credit card number, expiry date, optional CCV and optional post code, but surprisingly not the card-holder’s name. Nothing prevents you from collecting this yourself but Braintree doesn’t require it. This has had developers asking questions, because as they point out many customers are so accustomed to providing their name that the UI just doesn’t “look right”. Braintree seem to be sticking to their guns on this: https://github.com/braintree/braintree-web/issues/54 .
Even though Braintree provide payment services for the likes of Uber, AirBnb, GitHub and Pinterest, I found them to be very welcoming of our much more modest community enterprise … we were never made to feel “too small”.