Live data from Hacker News

Working with the Stripe Payouts API

blog.chriswinn.com

41–50 of 52 posts

Re: Working with the Stripe Payouts API

#41
How do you deal with fraud in this type of site?

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?

Re: Working with the Stripe Payouts API

#42

Earlier quoted context omitted.

To clarify: Stripe underwrites you as the merchant. Balanced lets the API user underwrite anyone (yourself or someone else) as a merchant, allowing for example the operation of a marketplace, where each merchant has their own merchant account. Balanced allows you to underwrite an arbitrary number of merchants programmatically via API. Correct me if I am wrong, and I am sure pc will do if this is the case, but Stripe…

(I work at Stripe.) When you create a seller via the API, both Stripe and Balanced do the exact same thing: verify the identity of seller. You can run a marketplace on either. Edit: I'm using the words seller and recipient interchangeably: https://stripe.com/docs/api#update_recipient

I'm sorry, I can't see any mention of a seller resource at https://stripe.com/docs/api, nor does the Ruby library seem to implement it. Is it called something other than Seller?

Re: Working with the Stripe Payouts API

#43
post #41

How do you deal with fraud in this type of site? 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…

It's user-dependent. Stripe provides users with some protections (e.g. against card-testing), and then users will verify their platform's sellers in a way that makes sense for them. Lyft and Sidecar collect drivers' licenses from drivers, and only pays them out in proportion to the amount they drive. Homejoy trains cleaners, and each user rates the cleaner. And so on. Fraud is heterogenous by nature.

Re: Working with the Stripe Payouts API

#44
post #41

How do you deal with fraud in this type of site? 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…

It's user-dependent. Stripe provides users with some protections (e.g. against card-testing), and then users will verify their platform's sellers in a way that makes sense for them. Lyft and Sidecar collect drivers' licenses from drivers, and only pays them out in proportion to the amount they drive. Homejoy trains cleaners, and each user rates the cleaner. And so on. Fraud is heterogenous by nature.

Thanks for responding. It certainly makes a lot of sense for a business model like Lyft or Sidecar where their is a significant relationship between the company facilitating the payment and the service providers receiving payment.

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.

Re: Working with the Stripe Payouts API

#45
From my reading of Balanced documentation, its on_behalf_of parameter allows a fledgling app to lean on Balanced for accounting.

"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.

Re: Working with the Stripe Payouts API

#46
As someone who has previously used Balanced and played around with Stripe enough to get a feel for it, I feel like I need to chime in here.

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.

Re: Working with the Stripe Payouts API

#47

Earlier quoted context omitted.

(I work at Stripe.) When you create a seller via the API, both Stripe and Balanced do the exact same thing: verify the identity of seller. You can run a marketplace on either. Edit: I'm using the words seller and recipient interchangeably: https://stripe.com/docs/api#update_recipient

I'm sorry, I can't see any mention of a seller resource at https://stripe.com/docs/api , nor does the Ruby library seem to implement it. Is it called something other than Seller?

I am very curious about this as well.

Re: Working with the Stripe Payouts API

#48
post #46

As someone who has previously used Balanced and played around with Stripe enough to get a feel for it, I feel like I need to chime in here. 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…

There's plenty of good people at Balanced, but Stripe's Payout API is very capable and, in my experience, much more elegant to work with. To imply that Stripe is built just for charging cards is no longer true, as you can see in my review of the two APIs:

http://blog.chriswinn.com/working-with-stripe-payouts

Re: Working with the Stripe Payouts API

#49

> Their core product, enabling developers to charge credit cards, wasn’t the first to the market. It is, instead, the best. 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…

I've said this before, but each payment provider out there has benefits the others don't, which is a little annoying. For example, Balanced is inferior in almost all regards to Stripe except in one major area: Payment speed. Stripe offers 7-day rolling payouts (shorter for larger merchants), but Balanced offers next day payments and same day for Wells Fargo customers! Square offers same-day payouts and the best in-pe…

I've implemented Stripe, Stripe Connect and Balanced, and I consider them to be comparable in offerings if you are a traditional non-marketplace merchant. To say Balanced is inferior save for their Payout speed is not true. Their differences become more clear when you are operating as a marketplace.

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.

Re: Working with the Stripe Payouts API

#50

This is pretty neat. I wonder what the economics of this system will look like though. (100$ - Stripe fee to accept money) - Stripe fee to give money == ???

Right, so the important thing to keep in mind (and this is different from Balanced), is that you are making a standard Charge object. It's business as usual. 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, w…

> Right, so the important thing to keep in mind (and this is different from Balanced), is that you are making a standard Charge object. It's business as usual.

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?

Post reply on HN