Working with the Stripe Payouts API
blog.chriswinn.com
blog.chriswinn.com
Balanced initially reached out to me, and I initially somewhat dismissed them, because I didn't have the time to look in to their platform as I was busy building a marketplace product for which we thought we had already picked the payment provider for, PayPal.
However, few weeks later I decided to take the time to investigate Balanced's offering and I was quite simply blown away by what they had to offer at the time (since then their offering has significantly expanded). As a result, I decided to make some time to rewrite our payments to use their APIs, because they solved the one hard problem I had yet to solve, which is the payouts.
I distinctly remember that I had just spent the earlier part of that week going over the various alternatives to how we could handle payout, and none of them seemed optimal. While paypal certainly would've gotten the job done, it was far from ideal especially considering that our merchants would've had to sign up for a paypal account and the fact that they have a track record of mistreating individuals and businesses by freezing accounts and funds. The other alternatives I had considered would've been much more work to integrate with and would've probably eventually driven me up a wall.
This was the first thing that struck me as the truly valuable feature of their product.
When I actually began integrating with Balanced, my "developer relations" experience with Balanced has been quite the opposite. Heck, I had a phone call with one of the Balanced founders (Jareau) where he took the time to answer all of my questions and explain to me how everything worked. In addition, I was able to simply hop on to Balanced's IRC channel (#balanced on Freenode) and talk to their whole team right there and then in real time. When I had questions about any of the functionality, there would always be someone from Balanced's team available to answer my questions. I should also mention that even some people outside of Balanced (i.e. customers) are also helping out on that channel.
Yet again, I was impressed. I never had issues with getting the kind of support I needed from Balanced, they are very responsive and helpful in solving any problems I have encountered.
Not to knock on Stripe or anything, but I never quite felt like their product was suitable for the situation that Balanced is suitable, a marketplace that needs to do payouts (or nowadays I suppose anything that needs to payouts). I feel like Balanced really hits the sweet spot when it comes to payouts, and they continue to work hard on making sure that their product is the best that there is in that category, and I certainly think that is the case right now.
One thing that I think bears mentioning is the fact that Balanced is also very receptive to customer feedback. In my experience, they are constantly weighing out what's the next thing they should be building/doing to make their customer's lives easier, and so their process is very much driven by the feedback provided by their customers (check out their API docs github to see the process in action, https://github.com/balanced/balanced-api/issues)
Overall, I do think that Stripe and Balanced to have overlap in what they do for you (charging a credit card), but I also feel like both of them have their strengths in differing features. I do think that for marketplaces that need payouts, Balanced is vastly superior because of the feature set that they have built, but if you had to something like subscriptions, then Stripe would be the way to go.
This is what I love about stripe. It may seem to an outsider like HN is full of Stripe fanboys but to someone who has worked with 10-20 other payment gateways its a godsend. Documentation that is simple, a reliable api, webhooks that work and a fantastic team behind it make stripe so much better than the other big players.
Square offers same-day payouts and the best in-person dongle experience. But - and I have NO idea why this is - they offer no web API. Ridiculous.
Stripe has the best third-party plugin support and best documentation.
For now, I use Stripe, and they've worked with me to speed up payments. But you can't beat same-day payments that Balanced offers (I do use WF) and if Balanced ever starts funding and encouraging developers to work on plugins for major shopping carts, I will switch immediately.
We'll fix this.
In Stripe's case, you can make the business choice in your logic to pay out quicker to your end user, so long as you understand the risks (which you assume) and keep a comfortable account balance to cover it. Payouts to you, the Stripe account holder, is another matter!
EDIT: Not sure who downvoted you; it was a fair question. I countered it with an upvote.
You could reach out to Balanced about API wrappers libs, I'm sure they would love someone to write language idiomatic libraries for them. It might be a nice contract gig.
I have, they suggested I open a ticket, and I did many months ago. No movement since.
I am not good enough to write a wrapper and frankly time/money preference dictates I spend it elsewhere, in any case.
It's true Stripe is integrated with more shopping carts and invoicing systems, but Balanced will get there. Personally, it would be great to see a Balanced credit card and ACH FreshBooks/Harvest integration because we're moving more into invoicing, as we're now dealing with larger companies and larger payments.
Edit: I'm using the words seller and recipient interchangeably: https://stripe.com/docs/api#update_recipient
You have some really good comments here, so maybe re-register and post them again. You were likely banned for submitting/spamming your chriswinn.com posts.
It’s been stated before, and I’ll reiterate, Balanced’s merchant account underwriting for marketplaces is performed via their API. This means the marketplace retains complete visibility into the account signup process. With Stripe Connect, you are redirected to their website, which means your potential user may or may not ever make it back to your system for whatever reason.
During merchant underwriting, Stripe Connect requires each merchant to create an account on their system with their own username and password. This means they are free to access their account on Stripe outside of your system. While good for the merchant, it might not be so for the marketplace trying to ensure all transactions continue to run smoothly.
Also, because each merchant account in Stripe Connect is separate, the marketplace does not gain any economies of scale when it comes to pooling together all credit card transactions for volume pricing purposes. Balanced has a single escrow account that all funds are held in and does offer volume pricing based upon that.
In my opinion, Stripe’s focus originally seemed to be on the individual merchant and have recently made changes to make them more attractive to marketplaces. However, Balanced’s approach has been to offer a more complete solution for a marketplace, while still allowing for all the same features to be used as a single merchant.
<shameless plug>
I'm working on a guide to integrating Stripe with Rails and I'll be covering Payouts and Stripe Connect in a whole section about building marketplaces.
http://www.petekeen.com/mastering-modern-payments
</plug>
"in order to determine how much money you owe a specific merchant, you can easily query and all the outstanding debits tied to this merchant and subtract the payouts you've already done to the merchant."
This seems like a nice advantage of Balanced especially if you don't want to go the Stripe connect route.
Frankly they are what makes the easy user experience possible @ CryptoSeal (http://privacy.cryptoseal.com).
It seems like anytime you are offering a conduit between a credit card number and a bank account you are at risk of someone push a large number of fraudulent transactions through and hoping to cash out before the chargebacks start.
Payment providers clearly have this problem (ie. Stripe does itself), but as a small startup it seems like a pretty daunting risk. Why not use Stripe connect in this case and simply get the couple to sign up for their own Stripe account?
For the OPs case though there seems to be a huge amount of risk: a 'couple' sign up, then other 'friends' start sending them money.
(100$ - Stripe fee to accept money) - Stripe fee to give money == ???
When you pay money out to users, it is deducted from your Stripe balance. In that sense, the initial charge, and the transfer later, are not explicitly connected to each other. It's up to you to persist some business logic on the application side.
In our case, we build in Stripe's fees (the standard 2.9% + $0.30) and make an assumption about our transfer fees (25 cents per transfer) to make sure we come out on top. The payer (when we create the Charge object) is paying this fee.
That way, when I gift money to a couple, they are receiving EXACTLY what I intended to send them. We don't want the couple feel in any way like there's a "gotcha" — someone sent you $25, but you can withdrawal only $22! We are, of course, transparent to the payer about the additional fees they're covering.
We let users withdrawal their full amount. This is in part to encourage fewer transfer fees, but it also simplifies things for our end-user.
It's been great to work with Stripe. I can't say enough about the quality of their staff and the love and care they put into their API. It's something we should all appreciate and replicate.
Chris
From your example, Balanced will also let you factor in the cost of the processing and include it in your total e.g. 25 + 2.9% + 0.30 + 0.25. Then, you can specify the amount to pay out that is completely independent of the total amount processed.
How is that different?