OneShot

All packsMarketplace Payouts & Connected AccountsSolve

stripe connect won dispute fee not refunded ledger

Winning a dispute still doesn't get the dispute fee back

Stripe's own docs say it: 'we never return the dispute received fee' unless your contract states otherwise -- a won dispute still leaves the platform down the dispute fee, which the ledger has to book as real (D9).

This is one of the things Marketplace Payouts & Connected Accounts already handles. Take payment from buyers and pay out sellers, with the onboarding and identity checks Stripe requires.

Buy for $1993 of 3 clean-room builds passed · full refund if it fails on your machine

Is this you?

Assuming a won dispute is financially neutral -- the charge stands, so nothing was lost -- misses that Stripe's dispute fee is charged when the dispute is opened and is not refunded on a win, with narrow contractual exceptions. A ledger or P&L model that treats 'won' as 'no cost' is wrong by the dispute fee on every single dispute the platform wins, which compounds silently across a marketplace's whole dispute history.

Why this one is easy to get wrong

'Won' reads as the good outcome, and the natural assumption is that a good outcome means no lasting cost -- Stripe's fee-retention policy on a won dispute is a specific, easy-to-miss detail buried in its disputes documentation, not something implied by the word 'won' or by how PaymentIntent and Charge objects represent a resolved dispute.

What you get instead

The five-bucket ledger (D9) books a lost dispute's stripeFee and disputeFee explicitly, and the acceptance suite's money-conservation check pins the consequence directly: a won dispute still leaves platform-available at commission minus stripeFee minus disputeFee for that order, never back to a full commission as if the dispute cost nothing. Bucket semantics are deliberately kept close to Stripe's own balance_transaction types specifically so the ledger reconciles against a real Stripe balance-transaction export.

Source: ARCHITECTURE.md D9 — checkable in the pack you receive

How you actually use this

You don’t install a library or wire up an SDK. Your own coding agent builds the code in your project, and you keep it — no runtime dependency on us.

  1. Step 1

    Download and unzip

    You get a folder: the docs that tell an agent what to build, a starting skeleton, and the test suite that decides when it's done.

  2. Step 2

    Open it in Claude Code or Cursor

    Point your coding agent at the folder. Nothing to install, no account with us, no API key.

  3. Step 3

    Paste one prompt

    The pack contains the exact prompt. Paste it as your first message and leave it alone — it works through the build itself, choosing a cheaper or stronger model per task.

  4. Step 4

    Run ./verify.sh

    One command. It prints a pass or fail for every check. Green means the build is done — the same script we ran to produce the receipt on this page.

Typical build: about 25 minutes of your agent working, mostly unattended. Then you integrate the working module into your app the way you would any code you’d written yourself.

Why you can believe this

3 of 3 runs passed

We ran this pack from an empty folder 3 times and published exactly what happened — every check, the model, the token cost, the wall time. Not a testimonial, and not our opinion: the same verify.sh you run yourself. Read the full receipt →

Buy for $19914-day refund if verify.sh fails →

Related problems