Text and data

How to Explain a Stripe Payout That Does Not Match the Bank

Matching a Stripe lump-sum bank deposit against sales reports rarely balances out cleanly on the first pass. Between processing fees, dispute holds, refunds, and delayed rolling windows, what lands in your company account is almost never your gross turnover. That file already lists the balance transactions inside each automatic payout. Use Stripe Payout Reconciliation to sum the net column by payout id and to show a bank line only when the amount agrees.

Itemized Stripe rows are grouped by payout id, the net column is summed, and a bank line matches only when the amount is the same.
Sum net for one payout id. Compare a payout list before calling a bank line a possible match.

What to run

In the Stripe Dashboard open Reporting, then Reports, then Payout reconciliation. Set the date range to the estimated arrival dates, not the dates the charges were created. Download the Itemized CSV from the Payout reconciliation section. Keep automatic payout id, currency, gross, fee, net and reporting category.

Open Stripe Payout Reconciliation and add that file. Optionally add the payout list, with one row per payout, its amount, currency and status. Optionally add a bank CSV with a date, a description and an amount. The check stays in the browser. A payments export, a balance summary and the summary download are rejected because they do not carry a payout id on every transaction.

Manual payouts and instant payouts are out of scope. Stripe does not attach a transaction batch to an instant payout, because you chose the amount. Do not expect this page to invent that batch.

automatic_payout_id,currency,gross,fee,net,reporting_category
po_example,usd,100.00,3.20,96.80,charge

How to read the result

The expected deposit is the sum of net for one payout id and one settlement currency. The category table is the audit: every reporting category keeps its own gross, fee and net, including reserves, disputes, Connect transfers and names this page does not rename. The plain-language lines are gross charges, refunds, disputes, other activity and fees. They are shown only when they add back to that net.

Gross charges are cash settled in the payout. They are not recognized revenue, and a customer-facing amount in another currency is not converted or added. A refund or dispute in this payout may belong to a charge from an earlier payout. A row whose payout id is blank is unsettled and stays out of the deposit. A payout row is the transfer itself and is not added on top.

If the payout list amount and the sum of net differ, the group is incomplete. A download of only the charge category looks tidy and is short. No bank line is matched until those two amounts agree. A possible bank match is one line with the same amount, from one day before the estimated arrival through five days after. A near amount is a gap, not a match. A bank fee taken after Stripe sent the money is invisible to Stripe.

Why a Stripe deposit disagrees with the bank
What you seeWhat it meansWhat to do
Sum of net is less than the payout listThe itemized file is missing rows, often because one category was downloadedDownload the full Itemized CSV for the arrival dates
Refunds exceed this week's salesThe refund settled in this payout may belong to an earlier chargeRead the payout id, not the charge created date
The bank line is a few dollars shortThe amount is not equal, so it is not matchedAsk the bank about a receiving fee. Do not force the Stripe total
Two payouts share an amountThe page will not choose a bank lineUse the trace id or the arrival date on the statement
The payout status is failedThat id is not a depositLook for the retry payout instead of adding this total again

What to open next

If the CSV opens as one column or the text is garbled, open CSV Fixer on the original download. It detects the separator and the encoding. Bring the readable file back here. The fixer does not know which column is a Stripe payout.

A bank file that QuickBooks rejected can go to QuickBooks CSV Validator after you have read the payout. That page prepares a candidate import and does not post the Stripe charges, fees or deposit. Record the payout from the category nets you checked here, using your own accounting judgment.

Keep the original Stripe download. The summary CSV from this page is a view of those totals, not a substitute for the itemized report and not evidence the bank has cleared the funds.

Stop when

Stop when every paid payout you care about has a sum of net that equals the payout list, the category rows include the refunds, disputes and fees you expected, and any bank line you accept has the same amount. Unsettled rows remain on the Stripe balance until a later payout.

Do not clear the difference by calling gross revenue, by dropping an unfamiliar reporting category, or by matching a bank line that is merely close. Currency conversion, reserves and recognition of subscription revenue are not solved by this CSV. If the payout is manual or instant, use Stripe's balance transaction history and your own records instead of this grouping.

References

Use the linked specifications and product documentation to check behavior in your own environment.

Continue troubleshooting

Related tools

Frequently asked questions

Why does the payments export fail this check?

The payments export lists charges. It does not name the automatic payout that settled each balance transaction. The itemized payout reconciliation CSV has that payout id on every row.

Should I subtract fees from gross myself?

Use the net column. The page checks whether gross and fee agree with net, and the sign of the fee column is taken from the file. Withheld tax is already inside fee on Stripe's itemized report.

Does a possible match update my bookkeeping?

No. It means one bank line has the same amount near the estimated arrival, or one line contains the trace id. You still decide whether that line is the deposit.

What about a reserve or a Connect transfer?

Those reporting categories stay on their own rows and their net stays inside the expected deposit. They are not folded into processing fees or dropped to make the total look familiar.

Need help with a tool or found a bug?

Report an issue directly to engineering. No accounts required — all client data remains private on your device.

Report an Issue →