Skip to content
All posts

Negative balances the platform ends up eating

When a reversal or a dispute drives a connected account below zero, the platform is usually the party that makes it whole — often without ever deciding to.

FeeGuard3 min read
balancespayouts

How an account goes negative

A connected account balance is not a ledger entry. It is money, and it can run out.

Every one of these pushes it down, and none of them requires anybody to do anything wrong:

  • A transfer reversal larger than what the account currently holds, because the funds were paid out days ago.
  • A dispute on a direct charge, where the seller is the merchant of record and carries the debit.
  • A refund on a direct charge against an account that has since gone quiet.
  • Stripe fees debited against a balance that had nothing left in it.

The characteristic case is a seller with a good month followed by a slow one. The reversals arrive against the slow month, and there is nothing there to take.

const account = await stripe.balance.retrieve({ stripeAccount: 'acct_EXAMPLE' });
// account.available[0].amount  →  -73100

Who makes it whole

Nominally, the seller: Stripe recovers a negative balance from that account's future earnings, applying subsequent charges against the deficit before paying anything out. If the seller keeps trading at a normal volume, it resolves itself within a payout cycle or two and nobody thinks about it again.

If they do not, it stops being a recovery and becomes a debt — and in most platform arrangements the party that ultimately absorbs an unrecovered negative balance is the platform. That is the same money as the leak you were trying to fix, arriving by a different route.

Which produces an uncomfortable and genuinely useful conclusion. Reversing aggressively against a departing seller does not recover the money; it converts an immediate loss into a receivable from someone who has already left, and adds a support conversation. The reversal feels like action and frequently is not.

There is a second-order cost that rarely makes it into the reckoning. A seller who discovers a negative balance they did not expect will usually contact support, and the conversation is expensive in a way the amount does not predict — it is about trust rather than about the number. A platform that recovers £400 and loses a seller who was producing steady volume has not come out ahead, and the arithmetic on that trade almost never gets done, because the £400 lands in one team's column and the churn lands in another's.

The other thing worth knowing is that negative balances are quiet. Stripe will recover from future earnings without telling you, so a platform can carry a slowly accumulating set of them for months with nothing surfacing. They are visible if you look:

const { data } = await stripe.accounts.list({ limit: 100 });
for (const account of data) {
  const balance = await stripe.balance.retrieve({ stripeAccount: account.id });
  const available = balance.available[0]?.amount ?? 0;
  if (available < 0) console.log(account.id, available);
}

Run that occasionally. A handful of small negatives on active sellers is ordinary and will resolve itself. A growing list, or one dominated by accounts with no recent volume, is a receivable you have not booked and are unlikely to collect.

A negative balance is not a recovery. It is a bet that the seller comes back.

The practical read: treat the account's balance and recent trading volume as inputs to the decision, not afterthoughts. An active seller with steady volume is worth reversing against, because they will earn through it. A dormant one is a write-off with extra steps, and the honest move is to net what you can against anything still owed to them and close the item.

The alternative to all of this is upstream. Every one of these situations began with money leaving Stripe before the platform knew it had a problem, which makes the payout schedule the lever that actually moves the outcome.

Run a free audit

FeeGuard is an independent product and is not affiliated with, endorsed by, or sponsored by Stripe, Inc. "Stripe" and "Stripe Connect" are trademarks of Stripe, Inc., referenced descriptively.