Refunding a Stripe Sale After You Filed Its Sales Tax

Refunded a Stripe sale after its sales tax quarter was filed? Why Stripe's reports disagree, amend or deduct, and the QuickBooks entry for each route.

Acodei Content Team · 10/1/2026 · 14 min read

A customer asks for their money back in November. The sale was in July. Your third-quarter sales tax return went in on October 20, and you paid what it said. Now $80 of tax you already sent to the state belongs to a customer who no longer owes it.

This is one of the few places where Stripe's own tools disagree with each other. Stripe's location reports move that refund back into July's quarter. Stripe's automated filing takes it off the return for the quarter the refund actually happened in. QuickBooks records it in November, because that is when the money moved. Three systems, three answers, and only one return to get right.

This guide covers what happens when you refund a Stripe sale after its sales tax period is already filed: why the old quarter's numbers change after the fact, the two ways a state may want the refund handled, the QuickBooks entry for each, a worked example with the numbers carried all the way through, and the double-claim that both routes make easy.

Start a free trial if you want the Stripe Tax on your sales to land in QuickBooks Online automatically. If you have a filed quarter and a fresh refund, read on.

Why a quarter you already filed can change

Stripe Tax keeps a record every time your tax liability goes up or down. A sale creates a tax transaction. A refund doesn't edit that record. It creates a second one, a reversal, that offsets the first with amounts of the opposite sign. What changes from one report to the next is which period each report files the reversal under.

Location reports file it under the original sale. Stripe's tax reporting documentation says location reports "include refunds associated with an original transaction in the same period as the original transaction, even if the refund occurred much later." It adds that Stripe "doesn't allow the reassigning of refunds to alternate periods."

So the third-quarter location report you filed from in October is not the third-quarter location report you'd see today. Open it after the November refund and it shows less tax due than the return you sent.

Itemized and summarized exports file it under the refund date. Each reversal is its own row with its own transaction_date, which Stripe defines as "the time at which the tax liability is assumed or reduced." A November refund lands in a November export. In the summarized export, refunds sit in their own columns: total_sales_refunded and total_tax_refunded aggregate reversal transactions only, and filing_tax_payable is tax collected minus tax refunded.

Stripe's automated filing uses the refund date too. If TaxJar files for you through Stripe, Stripe's filing documentation says "Stripe deducts refunds and returns from gross sales in the filing period when the refund occurred, regardless of the original transaction date." When refunds in a period are larger than its sales, Stripe "automatically carries those refunds forward to the next filing period."

None of these is wrong. A location report is shaped like the filing form for a period, and showing the original period is a reasonable choice for that job. Exports are a ledger, and a ledger records events when they happen. The trouble starts only when you file by hand from one view and reconcile from another.

Two ways to handle the refund, and who decides

Once a refund lands on a filed period, you have two ways to give the tax back to your customer's side of the ledger.

Route 1: take it on the current return. You leave the filed return alone and deduct the refund on the return for the period the refund happened in. This is the treatment Stripe's automated filing applies.

Route 2: amend the filed return. You correct the original period so it reports the sale net of the refund, and the state refunds or credits the overpayment.

Which one is right is not a bookkeeping question. It depends on the state's rules for refunds and returned sales, and sometimes on the size of the refund and how long ago the sale was. Read the instructions for your state's return or ask your accountant. This guide doesn't pick a route for you. What it does is show what each one looks like in QuickBooks, so the books tie out whichever way you go.

One thing is the same in both routes: the amendment, if there is one, happens with the state, not in QuickBooks. Intuit's guide to filing and recording sales tax payments is explicit: "QuickBooks Online doesn't support amended sales/use tax reporting. If you need to correct a filing, contact your tax agency." If you track Stripe-collected tax in a liability account of your own, that was already true, since the return was never prepared in QuickBooks.

First, check what the refund did in QuickBooks

Before choosing a route, confirm the refund took its tax out of your liability account. Both routes assume it did.

If you use Acodei with a United States QuickBooks company, Stripe tax arrives through the Tax Product method that Acodei's Stripe Tax documentation describes: all Stripe Tax amounts are rolled into one line on a non-inventory product (for example, "Sales Tax") that is tied to a liability account. You file from Stripe's reports and pay from that liability account. The tax sync depends on Stripe Tax being active in your Stripe account.

Refunds are where the path you used in Stripe matters. Acodei's documentation separates two kinds:

  • Payment-only refunds. Refunded on the charge, with no item breakdown. Stripe doesn't always provide line-level detail, so the refunded tax can't always be determined and may need a manual adjustment in QuickBooks.
  • Credit note refunds. Refunded through a credit note on the invoice, which carries the line-level tax breakdown.

So look at the liability account in the month of the refund. If the refund's tax came out, carry on. If it didn't, fix that first, using the manual correction in our guide to refund tax on credit notes versus payment refunds. The rest of this guide assumes the $80 has come out of the liability account in November, when the refund happened.

A worked example, carried through both routes

One state, an 8% rate, quarterly filing, every sale taxed through Stripe Tax.

Third quarter (July to September). Taxable sales of $40,000.00, so $3,200.00 of tax. The location report you file from on October 20 shows $3,200.00 due. You pay it, and the QuickBooks liability account drops from $3,200.00 to zero.

November 12. A customer is refunded in full for a July order: $1,000.00 plus $80.00 of tax. The refund's tax comes out of the liability account in November.

Fourth quarter (October to December). Taxable sales of $50,000.00, so $4,000.00 of tax.

Here is what each place says on January 2:

SourceThird quarterFourth quarter
Return you filed in October$3,200.00(not yet filed)
Location report, opened today$3,120.00$4,000.00
Summarized export, filing_tax_payable$3,200.00$3,920.00
QuickBooks liability account at quarter end$3,200.00$3,920.00

The location report moved the refund back into the third quarter. The export and QuickBooks both carry it in the fourth, as $4,000.00 collected less $80.00 refunded. The column you file from decides everything that follows.

Route 1: deduct it on the fourth-quarter return

You leave the third-quarter return as filed. On the fourth-quarter return, the refund comes off: taxable sales of $49,000.00 and tax due of $3,920.00.

In QuickBooks, record the payment the usual way: a check or expense to the state agency, categorized to the liability account, for $3,920.00. The account goes from $3,920.00 to zero. Nothing else to post.

The tie-out is clean against the summarized export, which shows filing_tax_payable of $3,920.00 for the quarter. It is not clean against the fourth-quarter location report, which still says $4,000.00 because it put the refund in the third quarter. That gap is the $80.00 you can name, not an error. Note it in your working papers so whoever reviews the quarter sees why the return and the location report differ.

If Stripe files for you, this route is what you'll see. Stripe deducts the refund in the period it occurred, so the fourth-quarter filing reflects it without any action from you.

Route 2: amend the third-quarter return

You file an amended third-quarter return showing $3,120.00 due, and the state owes you $80.00. The fourth-quarter return is prepared from the fourth-quarter location report, which shows $4,000.00 because the refund now lives in the third quarter.

In QuickBooks, you pay $4,000.00 against a liability account that holds $3,920.00. After the payment the account shows an $80.00 debit balance. That's correct: it is the $80.00 the state owes you, sitting where the overpayment was made.

How it clears depends on what the state does with the amendment:

  • The state sends a refund. Record a bank deposit from the agency, with the liability account as the account, for $80.00. The balance returns to zero.
  • The state applies a credit to a later return. Your next payment is $80.00 less than the tax accrued for that period. Record the payment for what you actually paid, and the $80.00 debit balance absorbs the difference. The account lands on zero.

If the amount is small and you'd rather see the receivable explicitly, you can move the $80.00 to an "Amount due from tax agency" asset account with a journal entry, and clear that account when the refund or credit arrives. Either way works. Leaving it in the liability account is simpler. Moving it is clearer if the state takes months.

The same refund, claimed twice

Here is the mistake both routes make easy. You amend the third quarter because the location report now says $3,120.00, and you also deduct the refund on the fourth quarter because the export and QuickBooks say $3,920.00. You've claimed $160.00 back for an $80.00 refund.

QuickBooks shows it, if you look. After paying $3,920.00 and depositing the state's $80.00, the liability account sits at an $80.00 credit balance with nothing collected to explain it. Any credit balance left after a period's payment, when no tax should be outstanding, is worth investigating.

The same refund, claimed never

The opposite happens when you file by hand from location reports and don't revisit the old quarter. The third quarter stays filed at $3,200.00. The fourth-quarter location report says $4,000.00, so you pay $4,000.00. The $80.00 never comes back.

QuickBooks shows this one too: the liability account sits at an $80.00 debit balance after the fourth-quarter payment, and nothing arrives to clear it. If you find a debit balance like that a quarter later, look for refunds of sales from earlier filed periods.

How to find the refunds that cross a filed period

The worked example has one refund. A real quarter might have forty, most of them against sales in the same quarter, which need no special handling. You only need the ones whose original sale is in a period you've already filed.

The itemized export is the tool for this:

  1. Export the itemized report for the current period, in the same time zone you file in. Location reports always use UTC, according to Stripe's guide to reconciling tax reports, so if you compare against them, export in UTC as well.
  2. Keep the rows where transaction_type is reversal.
  3. Each reversal carries reversal_original_tax_transaction_id, the ID of the sale it reversed. Look those IDs up in the export for the earlier period.
  4. Any reversal whose original sits in a filed period is a cross-period refund. Total its filing_tax_amount by state.

Sum tax_amount or filing_tax_amount here, not gross_amount. Stripe notes that the itemized export has one row per jurisdiction, and most amount columns repeat the line item's value on every row. Only the two tax-amount columns are unique per row.

The total from step 4 is the figure that goes on an amended return under Route 2, or the one you confirm was deducted under Route 1. It is also the gap you should expect between the current period's location report and its summarized export.

Keep the version you filed from

Because location reports move refunds into the original period, the report you filed from stops existing in that form after the first cross-period refund. Stripe's location reports are view-only in the Dashboard: you can't download or schedule them, and they aren't available through the API.

So save what you filed from at the time you file. A PDF of the browser view is enough, alongside the summarized export for the same period, with the same dates and the UTC time zone. When a reviewer later asks why the third-quarter location report shows $3,120.00 against a $3,200.00 return, you'll have the version that matched.

Partial refunds and refunds after a dispute

Two cases change the arithmetic.

Partial refunds. If you refund part of an order, the reversal is partial and its tax is a proportion of the original. Stripe warns that when a tax refund leaves the total tax no longer proportional to the subtotal, "your tax reporting can be unreliable." It recommends fully reversing the transaction and creating a new one instead. If you see an odd tax amount on a cross-period reversal, this is a likely cause.

Disputes. Stripe doesn't reduce reported tax for a dispute upheld by the cardholder's bank. Its example is a 100 USD disputed sale with 10 USD of exclusive tax, which still shows 10 USD collected. A lost dispute on a filed-period sale therefore creates no reversal at all, in any report. Whether the state lets you recover that tax is between you, your accountant and the state. Our guide to why the Stripe Tax report and QuickBooks disagree covers how that shows up in the liability account.

A checklist for each filing period

  1. Confirm every refund in the period took its tax out of the QuickBooks liability account. Fix payment-only refunds first.
  2. Export the itemized report in UTC and pull the reversals whose originals sit in a filed period.
  3. Total their tax by state.
  4. Check your state's instructions, or ask your accountant, whether those refunds go on the current return or an amended one.
  5. File the current return. Under Route 1, the cross-period refunds come off it. Under Route 2, they don't.
  6. Record the payment against the liability account.
  7. Under Route 2, file the amendment and record the refund or credit against the liability account when it arrives.
  8. Check that the liability account is at zero, or at a debit balance you can name.
  9. Save the location report and the summarized export you filed from.

Frequently asked questions

Why did my Stripe location report change after I filed?

Stripe's location reports include a refund in the same period as the original sale, even if the refund happened much later, and Stripe doesn't allow reassigning it. A refund issued after you filed lowers the tax due shown for the period you already filed.

Does Stripe's automated filing amend old returns for refunds?

Stripe's filing documentation says it deducts refunds from gross sales in the filing period when the refund occurred, regardless of the original transaction date. If refunds exceed sales in a period, Stripe carries them forward to the next filing period.

Should I amend my sales tax return or deduct the refund on the next one?

It depends on the state. Some returns expect refunds and returned sales to be deducted in the period they happen, and corrections to a filed period may need an amendment. Check your state's instructions or ask your accountant. Either way, do one or the other, never both.

Can I amend a sales tax return in QuickBooks Online?

No. Intuit says QuickBooks Online doesn't support amended sales and use tax reporting, and you need to contact your tax agency to correct a filing. In QuickBooks, you record the result: the payment, refund, or credit against the liability account.

How do I record a sales tax refund check from the state?

Record a bank deposit from the tax agency, with your sales tax liability account as the account. That offsets the debit balance the overpayment left behind. If you moved the overpayment to a receivable asset account, deposit it to that account instead.

Why is my sales tax liability account negative after I paid?

A debit balance after the period's payment usually means you paid more than the account held. A refund of an earlier filed sale is a common cause: the location report put it back in the old period, so the new return didn't deduct it. It clears when the state refunds or credits the amount.

Where this leaves you

A refund on a filed period is not a reason to doubt your numbers. It is a sign that two of Stripe's views are counting the same reversal in different quarters. Pick the route your state expects, record the payment for what you actually paid, and let the liability account tell you whether you got it right: zero, or a balance you can name.

Acodei's part is the Stripe side: it carries the Stripe Tax on your synced sales into the liability account you tie to your tax product, so that account can be compared with Stripe's reports every period. For the setup, see Stripe Tax in QuickBooks Online. If you are moving sales tax over from QuickBooks, see switching from QuickBooks sales tax to Stripe Tax.

Start a free trial and connect your Stripe account to QuickBooks Online.

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.