If Patrick reads this, their support had us going around in circles. We originally had an account manager, then we got a new one, then we got told we're not having an account manager and ended up getting a different person for the same expensive issue...
We were using managed accounts for our customers, wrapping Stripe to provide payment accounts to our customers. Stripe was allowing our customers to process refunds on payments even if they had negative balances and had no automated notifications in place to send us notice of these negative balances.
Stripe gave us no notice, and shut down payments for all of our customers and accounts until the balance was cleared. We basically got an email one day saying pay 40k~ and we'll unlock your accounts. This behaviour was going on for about 18 months I think, it wasn't just some issue that came about over 2 weeks. We were running our business in such a way that to us looked profitable and well-ran but Stripe was keeping an internal debit against us which they decided had reached it's cap and email us.
Their thinking was that they didn't have any responsibility to send notifications to us and they also didn't need to restrict refunds, we should do it on our application.. except the information we needed wasn't even available to us.
About 3 months afterwards, their platform magically started doing exactly what we were saying should have been their responsibility from day one. When you hit robotic support people who are reading from a script, your account manager is removed and your business depends on processing payments they really had all the power.
Very unhappy about this and we're still paying off the $40k that they decided to collect overnight from us...
Running this type of custom platfom with managed accounts for your users isn't a light responsibilty—if those users start going into the negative, you'll have to communicate with them to prevent that. (We have the `balance_retrieve` API call designed for this purpose.) Please don't take this as some sort of shunning of responsibilities on our part—managed accounts were designed like this so Stripe doesn't have a direct relationship with your customer (they may not even know Stripe exists!). But like you said, it allows you to wrap Stripe for payments, so you can own this relationship and the health of their account. For _standard_ accounts with Stripe Connect, Stripe would own this and we'd send notifications warning of negative balances. We have a guide on how this works: https://stripe.com/docs/connect/account-balances.
That said, it does sound like we could've handled this better—and we really shouldn't be that abrupt. Could you get in touch with me at edwin@stripe.com and I can look into what happened and see what we can improve for future cases?
I'm still emotionally invested in how angry this episode got me because we ended up needing to downsize because of it and it wasn't like we were printing money from the decision to use managed accounts and we absolutely didn't budget for an overnight 40k expense. We understood the liability issues, that's why ultimately we had no leg to stand on, but the crux of how poorly Stripe handled this was:
- "0 day" notice. Boom, account shut down. Don't like it? Well pay clear every single account.
- You let accounts process refunds even with active chargebacks. This isn't a default "sane" position. We had no way of reacting to this.
- The period this went on. From the first negative balance to "Day 0" was well over a year. Not once did you send a notice or friendly email this was happen. It literally went from happy days to business destroying lock outs overnight. We had customers leave us with serious negative balances which we could have possibly collected if they were still customers. Overall we only managed to get about 1k back from our customers.
I think this is a real issue as I suffered from a very similar issue with Stripe Connect (see my post below) yet support seemed oblivious that you could fall into this trap. In my case, refunds were going through even when we were checking the available balance was greater than the refund amount on our server before permitting the refund request to be sent to Stripe. I do understand and agree with Edwin that a Stripe Connect custom account is responsible for its users but it just feels a bit un-Stripe that it's really not clear how to handle refunds and what the edge cases are.
Only when I realised Stripe was treating funds that were already allocated to an upcoming payout as 'available' or 'cleared' did the penny finally drop. So the refund for $100 would go through, the payout of $200 would then go through and then the customer account would be $100 in the red which would be deducted from our company Stripe account. Now we have learned to count the value of upcoming payouts as unavailable when working out the balance available for refunds.
Luckily for me this didn't happen too many times and I was lucky that my customers were billing enough that the shortfall on their accounts was cleared within a few days/weeks, but I can easily see how this could spiral into a big problem for a startup where customers are not billing so much.
We were using managed accounts for our customers, wrapping Stripe to provide payment accounts to our customers. Stripe was allowing our customers to process refunds on payments even if they had negative balances and had no automated notifications in place to send us notice of these negative balances.
Stripe gave us no notice, and shut down payments for all of our customers and accounts until the balance was cleared. We basically got an email one day saying pay 40k~ and we'll unlock your accounts. This behaviour was going on for about 18 months I think, it wasn't just some issue that came about over 2 weeks. We were running our business in such a way that to us looked profitable and well-ran but Stripe was keeping an internal debit against us which they decided had reached it's cap and email us.
Their thinking was that they didn't have any responsibility to send notifications to us and they also didn't need to restrict refunds, we should do it on our application.. except the information we needed wasn't even available to us.
About 3 months afterwards, their platform magically started doing exactly what we were saying should have been their responsibility from day one. When you hit robotic support people who are reading from a script, your account manager is removed and your business depends on processing payments they really had all the power.
Very unhappy about this and we're still paying off the $40k that they decided to collect overnight from us...