A Lost Stripe Dispute That Comes Back Months Later

Stripe documents two ways a lost dispute comes back months later: a late win and a late withdrawal. Here is how to book the money in QuickBooks without...

Acodei Content Team · 9/26/2026 · 13 min read

In July 2025 a customer pays you $1,200 by card through Stripe. In August their bank files a chargeback. You submit evidence, and in October the issuer rules for the cardholder. You book the loss, close the year, set a QuickBooks closing date of December 31, and your accountant files the return. Then on February 18, 2026, $1,200 appears in your Stripe balance with a dispute ID on it, attached to a case you stopped thinking about four months ago.

That is a lost Stripe dispute coming back, and Stripe documents two ways it happens: a late win and a late withdrawal. Neither one is common. Both land long after the dispute was settled in your books, often in a different fiscal year, and there's no entry for them in the usual chargeback playbook. This post covers where the money comes from, what Stripe records, how to book it without reopening a closed year, and how to avoid counting it twice. If you'd rather have Stripe's dispute activity reach QuickBooks through a mapping you set once, start a free trial.

Two ways a lost Stripe dispute comes back

Stripe's guide to how disputes work is firm about the normal case: once the issuer decides, "This outcome is final for all parties. Neither you nor your customer can overturn a lost dispute." Then it names two exceptions.

The late win. Stripe says that "in rare cases the status can change from lost to won. When this occurs, Stripe labels the dispute as a late win and returns the funds to your balance." It explains why: "These late-win results happen when issuers credit or debit Stripe for a dispute outside of the regular dispute lifecycle. They might do this to handle money movement or to correct amounts or decisions." And it's candid about predictability: "Because late wins are driven by the issuer, Stripe can't predict when or why they happen."

The late withdrawal. The same page says "a customer can withdraw a dispute, even after a loss." Stripe's page on dispute withdrawals gives the detail: "Every card network allows cardholders to withdraw a dispute after the response deadline, even long after a dispute is lost." Not every issuer supports it in every case, and it runs outside the network rules: "Late withdrawals often occur outside the networks' dispute systems. Unlike the regular dispute lifecycle, they aren't governed by network rules or regulations." On timing, Stripe says "The cardholder's issuer might take weeks or months to process this type of adjustment."

The practical difference between the two is who started it. A late win comes from the issuer, usually with no warning. A late withdrawal usually starts with your customer, often because you settled things with them directly. That difference matters later, when you check whether you've already been paid.

What Stripe records when the money comes back

The disputed amount moves at most twice. The Dispute object carries a balance_transactions list of "zero, one, or two balance transactions that show funds withdrawn and reinstated to your Stripe account as a result of this dispute." On a lost dispute the list holds one entry: the withdrawal. When a lost dispute comes back, look for the second, positive entry. That's the reinstatement.

Three places show it:

  • The event. Stripe sends charge.dispute.funds_reinstated, which per the event types reference "Occurs when funds are reinstated to your account after a dispute is closed."
  • The dispute itself. For a late win, the status reads won and the Dashboard labels it a late win.
  • The balance report. Both dispute rows are type=adjustment in the API. Stripe's reporting categories split adjustments into several categories, including disputes and dispute reversals, and the reinstatement is a dispute reversal.

The fees. Stripe charges two dispute fees in the US, per its dispute fee update: a $15 dispute received fee, which "is not returned if you win", and a $15 dispute countered fee for disputes initiated after June 17, 2025, which "will be returned to you if you win." For businesses in Mexico, Stripe says the received fee "might be returned if you win or the cardholder withdraws."

Stripe's documentation doesn't say whether the countered fee comes back on a late win or a late withdrawal. Don't book it on the assumption that it will. Look for a fee row next to the reinstatement in the balance report, and book it only if it's there.

A worked example across a year-end

Here is the opening story in numbers. The processing fee is Stripe's standard US card rate, 2.9% + 30¢.

DateWhat happenedStripe balance
Jul 8, 2025$1,200 card payment, less a $35.10 processing fee+1,164.90
Aug 20, 2025Chargeback filed: $1,200 withdrawn, plus the $15 received fee-1,215.00
Aug 27, 2025You counter with evidence: $15 countered fee-15.00
Oct 30, 2025Issuer rules for the cardholder. No money moves0.00
Feb 18, 2026Late win: $1,200 reinstated+1,200.00

In the 2025 books, the sale and the chargeback cancel out. The year carries a $65.10 loss on this customer: the $35.10 processing fee plus the two $15 dispute fees. That year is closed, the closing date is set, and the tax return used those numbers.

In 2026, $1,200 arrives. Over the two years you've kept $1,134.90 in cash from this sale ($1,164.90 in, $1,230.00 out, $1,200.00 back). The books have to end up at the same number: -$65.10 in 2025 plus +$1,200.00 in 2026 is $1,134.90. The question is how the $1,200 gets there.

Book the recovery in the period you receive it

The instinct is to go back to 2025 and reverse the chargeback, as if the dispute had been won all along. Usually, don't.

The 2025 books weren't wrong. On the facts available when you closed them, the dispute was lost and the money was gone. The late win is a new event: an issuer decided something in February 2026 that it hadn't decided before. The common treatment for a recovery of an amount you correctly expensed is to record it when you receive it, the same way a bookkeeper records a recovered bad debt. Your accountant makes the final call, especially near a filing deadline. The default is the current period.

Reopening 2025 has real costs as well:

  • It crosses your closing date. A QuickBooks closing date is a gate, not a wall. Anyone with the password can post into the closed year, and the main trace it leaves is a line on the Exceptions to Closing Date report.
  • It moves a filed number. QuickBooks rolls each year's net income into Retained Earnings when the new fiscal year starts. A $1,200 entry dated in 2025 changes 2025's net income, and with it the opening equity that your accountant already reported.
  • It hides the event. Anyone reading the 2026 books later sees no trace that $1,200 arrived in February.

So date the entry February 18, 2026, and choose where the credit goes:

AccountDebitCredit
Stripe Clearing1,200.00
Chargeback recoveries1,200.00

Which account to credit. You have two reasonable choices:

  • The same Stripe Chargebacks account the loss went to. This year's chargeback total then drops by $1,200. That's simple, but a month with few disputes can show negative chargebacks, which confuses anyone reading the P&L.
  • A separate Chargeback recoveries account (other income, or a contra line under your chargebacks). Each year then shows its own disputes cleanly: 2025 shows the loss that happened in 2025, and 2026 shows the recovery as a recovery.

We'd pick the separate account. The dispute loss rate you track each year then compares disputes to that year's sales, and it isn't skewed by money from a case that belongs to another year. Put the dispute ID (du_...), the original charge date, and "late win" or "late withdrawal" in the memo.

If a countered fee row does appear next to the reinstatement, book it as its own line: debit Stripe Clearing, credit your dispute fees account. The $15 received fee stays an expense either way.

Check whether you have already been paid

This is the step that catches people, and it matters most for late withdrawals.

A customer usually withdraws a dispute because the two of you settled things. Maybe you shipped a replacement. Maybe they paid again by a new card, or by bank transfer. Stripe's withdrawal guide even suggests collecting proof such as "a screenshot of their mobile banking statement that shows they were re-billed for the charge." If you were paid again after the loss and the original dispute money now comes back too, you've been paid twice for one sale.

In that case the $1,200 isn't a recovery. It's money you owe the customer. Don't credit a recovery account. Hold it in a liability until you refund it:

AccountDebitCredit
Stripe Clearing1,200.00
Customer refunds payable1,200.00

Then issue the refund through Stripe and clear the liability when the refund posts. The dispute is closed, so this is an ordinary refund. Stripe's rule that you can't refund while a dispute is open no longer applies.

A late win is less likely to overlap with a second payment, because the issuer starts it. Still run the same check before you call it income. Search the customer's history for anything received after the original dispute.

The customer record in QuickBooks

The recovery entry above fixes the money. Look at the customer's record too, because it depends on how you booked the loss in the first place.

  • The sale stayed on the books and the loss went to a chargebacks account. The invoice or sales receipt already shows as paid, and the customer owes nothing. Book the journal entry above and leave the record alone.
  • The invoice was left open after the chargeback. You recorded no chargeback expense, and the customer still shows the $1,200 as owed in Accounts Receivable. The returned money is the payment on that invoice. Receive a payment against it, deposited to Stripe Clearing and dated the day the funds arrived. Don't also post the recovery journal entry, or the $1,200 is counted twice.
  • The invoice was written off as bad debt. Treat the money as a recovered bad debt: credit your bad debt account, or a recoveries account, in the current period. Don't reopen the written-off invoice in the closed year.

The rule under all three: one source of truth for the $1,200. The money reaches your books exactly once, either as a payment on an open invoice or as a recovery. Never both.

How to find late wins you missed

Because these land months later, the easiest failure is not noticing them at all. The $1,200 sits in Stripe Clearing as an unexplained variance until someone chases it. Build a short check into your month-end:

  1. Filter the month's balance activity for dispute reversals. Stripe's balance report groups them under their own reporting category. Any dispute reversal whose dispute was created in an earlier period is a candidate.
  2. Compare each one with your list of lost disputes. A reversal on a dispute you recorded as lost is a late win or a late withdrawal. A reversal on a dispute you were still contesting is an ordinary win.
  3. Check the customer for a second payment before booking anything as income.
  4. Confirm the entry date is inside the open period. If your closing date blocks the entry, the entry is dated in the wrong period. It isn't a reason to move the closing date.
  5. Reconcile Stripe Clearing to Stripe's ending balance. An unexplained positive difference close to the amount of an old dispute is the signature of one of these.

The month-end close checklist puts these steps in context with the rest of the close. For the entries on an ordinary win or loss, see our chargeback accounting guide. If the original charge was in a foreign currency, the reinstatement brings its own exchange difference, covered in disputes on converted charges.

Where Acodei fits

What Acodei's documentation supports, and what it doesn't cover:

  • Dispute activity is mapped once. Stripe records both the withdrawal and the reinstatement as adjustment balance transactions. Disputes and other adjustments are among the uncommon types Acodei handles through Balance Transaction Mapping on the Account Mapping page. You map them to a product once, and Acodei processes them in the daily balance summary or on the payout deposit, depending on your settings. There are no per-dispute journal entries.
  • A won dispute is not re-posted as a new payment. Acodei doesn't recreate the customer's original payment when Stripe returns the funds. If a disputed invoice shows as open in QuickBooks after the chargeback, that's expected, and you can record a payment against it when the money comes back.

That changes the workflow above in one important way. If your sync already brings the reinstatement into QuickBooks, don't also post the manual recovery entry. Your job becomes classification, not data entry. Check which account the mapped dispute product points to, then decide whether this year's recovery belongs there or should be reclassified to a Chargeback recoveries account. Run the second-payment check before you treat any of it as income.

Late wins are rare, arrive without warning, and land in a different year from the loss. An integration can't decide whether that money is income or a refund you owe. It can make sure the money is visible in the right period so someone can decide. To get your Stripe dispute activity into QuickBooks through a mapping you set once, start a free trial.

Frequently asked questions

What is a late win on a Stripe dispute?

It's a dispute whose status changes from lost to won after the decision. Stripe says it happens "in rare cases" when issuers "credit or debit Stripe for a dispute outside of the regular dispute lifecycle," labels it a late win, and returns the funds to your balance. Stripe can't predict when or why they happen, because the issuer drives them.

Can a customer withdraw a Stripe dispute after I lost it?

Yes. Stripe says every card network lets cardholders withdraw a dispute "even long after a dispute is lost," though some issuers might not support it in every case. The cardholder has to ask their issuer, and the issuer might take weeks or months to process the adjustment.

Should I reverse the chargeback in the year I lost it?

Usually not. The original loss was correct when you booked it, so the returned funds are a new event. The common treatment is to record them in the period you receive them, as a chargeback recovery. Reopening a closed year crosses your QuickBooks closing date and changes net income your accountant may already have reported. Confirm the treatment with your accountant.

Does Stripe refund the dispute fee on a late win?

The $15 dispute received fee is not returned when you win, outside Mexico. The $15 countered fee is returned on a normal win, but Stripe's documentation doesn't say whether it comes back on a late win or a late withdrawal. Check the balance report for a fee row next to the reinstatement, and book one only if it's there.

How do I tell if returned dispute money is income or owed to the customer?

Check whether the customer paid you again after the original dispute. If they did, by a new charge, a transfer or any other way, the returned funds mean you've been paid twice. Hold the amount as a liability and refund it. If they didn't, the returned funds are a recovery of your earlier loss.

Share

Automate your Stripe to QuickBooks sync

Save hours every month. Acodei automatically syncs your Stripe transactions, invoices, and payouts to QuickBooks Online.

14-day free trial · card required · cancel anytime

How Acodei handles this in your stack

Stripe QuickBooks Integration

See how Acodei syncs Stripe payments, fees, refunds, invoices, and payouts into QuickBooks Online automatically.

Or go straight to a capability

Get more operational finance guides like this one

We will only send high-value product and finance content.