Stripe Balance Report vs Payout Reconciliation Report

Stripe ships two cash reconciliation reports and documents them as alternatives. Which one is right for you was decided by one QuickBooks setup choice:...

Acodei Content Team · 9/12/2026 · 14 min read

Stripe gives you two reports for reconciling cash, and they do not agree with each other. That is not a bug. The Balance report and the Payout reconciliation report group the same transactions in two different ways, on purpose, because Stripe assumes you are doing one of two different things in your accounting system.

Pull the wrong one and the numbers will not tie. Not because anything is broken, but because you are comparing a period balance against a settlement batch, which are two genuinely different questions.

The good news is that you do not have to guess. Which report is right for you was decided the moment you chose how Stripe money lands in QuickBooks, and you almost certainly made that choice during setup without being told it had a reconciliation consequence. Start a free trial if you want the QuickBooks side built correctly from the beginning.

The two reports, and the model each one assumes

Stripe's own guidance on selecting a report is unusually direct about this, and the wording is worth reading closely because it is describing accounting models rather than features.

The Balance report "resembles a bank statement and is optimized for users who treat their Stripe account similar to a bank account in their accounting system." It records all activity that happened in Stripe during a date range. Payouts appear as "simple transfers between your Stripe account and your bank account, which don't correspond to any specific payments." Like a bank account, the balance is reconciled at the end of the period to confirm everything has been accounted for.

The Payout reconciliation report is "optimized for users on automatic payout plans who model their Stripe balance as a temporary clearing account in their accounting system." It helps you reconcile each payout against the transactions included in that batch, after the payout settles.

Read those twice. One report treats your Stripe balance as an account with a balance you prove at month end. The other treats it as a pass-through that empties into your bank, where the thing you prove is each individual payout. Both are legitimate. They are not interchangeable, and Stripe notes that most reconciliation workflows do not require using both.

First question: which one are you allowed to run

Before deciding which report fits your books, check which one Stripe will even produce for you.

The Payout reconciliation report is available only to accounts with automatic payouts enabled, or to a platform on manual payouts whose connected accounts have automatic payouts enabled. If you are on manual payouts and you are not such a platform, the decision is already made for you: the Balance report is your report.

The logic is mechanical. A payout reconciliation report exists to tell you which transactions settled in which batch. Stripe can only know that when Stripe chose the batch. Which is also why instant payouts sit outside this report entirely, and Stripe says so plainly: "You control the timing and amount of instant payouts, so Stripe can't identify which transactions are included in each payout. You're responsible for reconciling instant payouts against your transaction history."

If instant payouts are a routine part of how you move money, build your month-end process knowing that a meaningful slice of your cash movement will never appear as a reconcilable batch.

Timing matters too. Stripe computes report data daily, where a day is 12:00 am to 11:59 pm, and that day's data is normally available by 12:00 pm the following day. Two cases break that twelve-hour expectation on the payout reconciliation side: the first automatic payout for an account that was previously on manual payouts, and an automatic payout that happens more than 180 days after the previous one. Dashboard reports always cover a complete day, so a partial-day cutoff has to come from the Reporting API.

The same five days, seen twice

Stripe publishes a worked example that makes the difference concrete, and it is the fastest way to see why two reports over the same dates produce different totals.

Take an account on a two day rolling payout schedule, opened on the 1st, which takes 10 USD of charges on day one, 20 on the 2nd, 30 on the 3rd, 50 on the 4th and 70 on the 5th. Because of the two day schedule, the first payout (10 USD) arrives on the 3rd, then 20 on the 4th, then 30 on the 5th. The balance closes the 5th at 120 USD.

Now run both reports for the 3rd through the 5th.

The Balance summary reads: starting balance 30 USD, balance change from activity 150 USD, total payouts negative 60 USD, ending balance 120 USD. The activity figure covers the transactions that happened on the 3rd, 4th and 5th.

The Payout reconciliation report, over those same dates, contains the transactions from the 1st through the 3rd, because those are the transactions that were paid out during the window. Their sum is the 60 USD that appears as total payouts on the balance summary.

And the Ending balance reconciliation section at the bottom of that report contains the transactions from the 4th and 5th, the ones not yet settled as of the end date. Their sum is the 120 USD ending balance.

So the two reports do tie to each other, but only through specific line items, and neither one's transaction list is a subset of the other's. The Balance report answers "what happened in this window." The Payout reconciliation report answers "what settled in this window," which includes activity from before the window and excludes activity inside it.

Which date each report keys off

This is where a month-end cutoff quietly goes wrong, so it is worth stating the three dates separately.

The Balance report selects transactions by the balance transaction's created date, with one exception: automatic payout transactions are included based on their available_on date instead.

The Payout reconciliation report selects by automatic_payout_effective_at, which Stripe defines as the date it expects the payout to arrive in your bank account, and which is also when the funds are deducted from your Stripe balance.

On the itemized payouts download, the effective_at column carries a dual meaning that catches people out. For automatic payouts it is the date funds are expected to arrive in the bank. For manual payouts it is the date the payout was initiated. In both cases it is the date the money left your Stripe balance.

Acodei's own payout records have a third date behavior worth knowing: the date on the QuickBooks record honors your payout-date setting and timezone. If your report window and your QuickBooks records disagree by a day at the edges of the month, that setting is the first place to look, not the sync.

Your holding account already chose your report

Here is the part that nobody writes down.

The Stripe report you should be pulling is determined by one QuickBooks setup decision: whether your holding account is QuickBooks' built-in Undeposited Funds, or a regular asset clearing account. Acodei calls these UF and Non-UF, and that choice decides the shape of the payout record. With a clearing account, each payout becomes a single QuickBooks Transfer for the net amount. With Undeposited Funds, each payout becomes an itemized Deposit that lists the underlying charges, refunds, fees and mapped uncommon types.

Those two shapes correspond exactly to Stripe's two reports.

If your holding account is an asset clearing account, your report is the Balance report. Acodei documents the correct method here as balance reconciliation: the QuickBooks clearing-account balance should equal the Stripe balance. Because every sale, fee and payout posts against that clearing account as it happens, the two balances can be compared daily, which is the gold standard, and should be reconciled monthly at minimum. That is precisely the job the Balance report is built for, with its starting balance, activity and ending balance lines.

This is more than doctrine at Acodei. There is automated daily tracking built for this mode and only for this mode: a tracker scoped explicitly to non-UF connections fetches the Stripe balance and the QuickBooks holding balance into per-day rows and records whether they matched.

If your holding account is Undeposited Funds, your report is the Payout reconciliation report. Acodei's documented method for UF is narrower: match each payout Deposit against the bank feed, then reconcile the bank account. Did the payout match, and is the bank amount right? If yes, the reconciliation work is done.

And there is a hard stop worth knowing before you plan a close around it: Acodei does not support balance-reconciling the Undeposited Funds account itself. The reason is timing. Sales sit in Undeposited Funds until the payout deposit sweeps them out, and some items, such as deferred fees and mapped uncommon types, are only added at deposit time. Those timing differences mean the Undeposited Funds balance can legitimately diverge from the Stripe balance at any given moment, so a point-in-time balance comparison is not meaningful the way it is for a clearing account.

That asymmetry is the real argument for a clearing account on a complicated set of books. A clearing account can be balanced daily, so drift surfaces within a day. Under Undeposited Funds, discrepancies inside the balance are invisible between payouts, and your only checkpoint is whether each payout landed correctly. The two documented approaches to the holding account cover that tradeoff in full, and the clearing account itself covers what a non-zero balance in it means.

What ties to what

With the model settled, the tie-out is mechanical. Both reports group transactions by reporting_category, and the summary downloads give you count, gross, fee and net per category, which is the grain your books actually need.

Stripe report lineClearing account (Non-UF)Undeposited Funds (UF)
Balance change from activity, chargesSales receipts and invoice payments deposited to the clearing accountSame records, deposited to Undeposited Funds
Balance change from activity, feesFee expense, or fees on the sales recordsCan appear per sale, or deferred to the payout deposit
Total payoutsOne Transfer per payout, net amount, clearing account to bankOne itemized Deposit per payout, out of Undeposited Funds
Ending balanceShould equal the clearing-account balanceNot reconcilable, by design
Payout reconciliation batchNot the method for this modeThe batch behind each Deposit's line items
Ending balance reconciliationActivity not yet settled at cutoffSales still sitting in Undeposited Funds

If you want the category axis rather than the cash axis, reporting category versus transaction type is the post that owns how Stripe classifies each line, and the balance transaction itself is the object every one of these rows is built from.

The lines that will never tie

Four categories of movement will not reconcile against a QuickBooks record no matter which report you pull, and knowing them in advance saves an hour of hunting.

Failed and canceled payouts. The Payout reconciliation report has a Failed payouts section, visible only when there are failures in the window, and the itemized version carries a retried_payout_id naming the later payout that retries the failed batch's transactions. Acodei books nothing for a failed or canceled payout: those events are closed out without creating a record, because the money never moved. So a failed payout is a line in Stripe with deliberately no counterpart in QuickBooks, and the retry payout is the one you will find in your books.

Instant payouts. Covered above on the Stripe side. On the QuickBooks side, the instant-payout fee is captured on the daily balance summary, where all fees are recorded daily, rather than on the payout record itself. If you are reconciling a payout amount and the fee is missing from it, that is why. How instant payouts land in QuickBooks goes deeper on the mechanics.

Withheld tax inside the fee column. If you are reconciling fees rather than cash, recording Stripe fees in QuickBooks is the guide that owns that process. The itemized downloads carry withheld_tax for sales tax, VAT or GST withheld, and Stripe notes that this amount is already included within the fee column. There is also fee_net_of_withheld_tax, which is the processing fee with that tax removed. If you are reconciling fees to the cent, decide which of those two numbers your fee expense account is supposed to represent before you start.

Currency presentation. The Balance summary report shows all transactions in your settlement currency, after any foreign currency conversion. If you sell in several currencies, the report is already converted while your QuickBooks records may not be, which is a different reconciliation problem from the one this report solves.

One more, in the category of things worth knowing rather than things that break: Stripe states that it does not support third-party accounting tool reconciliation for Stripe reports. The reports are an artifact you reconcile against, not an integration point.

A short month-end sequence

For a clearing account, Acodei's documented monthly process is three steps, and it uses exactly the report this post has been pointing you at: compare the ending Stripe balance report to the holding account, use the Reconcile button on the account register, and match the payouts in the bank feed.

For Undeposited Funds, drop the first step. Match each payout Deposit in the bank feed, reconcile the bank account, and stop. The balance itself is not the checkpoint.

Either way, pull the report for a complete day range, pull the itemized version rather than the summary if you intend to chase a specific difference, and keep the download. A reconciliation you cannot reproduce in six months is not really documentation. The month-end close checklist puts this in sequence with the rest of the close, and payout reconciliation end to end covers the edge cases around holds, reserves and partial refunds.

Frequently asked questions

What is the difference between Stripe's balance report and the payout reconciliation report?

They group the same transactions by different questions. The Balance report is organized like a bank statement: starting balance, activity during the period, payouts, ending balance. It suits books that treat the Stripe balance as an account with a balance to prove. The Payout reconciliation report is organized by settlement batch, showing which transactions made up each payout that reached your bank. It suits books that treat the Stripe balance as a temporary clearing account emptied by each payout.

Why do the two Stripe reports show different totals for the same dates?

Because they select transactions by different dates. The Balance report includes what happened in your window. The Payout reconciliation report includes what settled in your window, which pulls in activity from before the window and leaves out activity inside it that has not been paid out yet. In Stripe's own example, a window of the 3rd to the 5th gives a balance report covering the 3rd to the 5th and a payout reconciliation report covering the 1st to the 3rd.

Which Stripe report should I use with QuickBooks Online?

It depends on your holding account. If Stripe money lands in an asset clearing account, use the Balance report and reconcile the clearing-account balance against the Stripe balance. If it lands in Undeposited Funds, use the Payout reconciliation report and match each payout deposit against the bank feed.

Can I run the payout reconciliation report on manual payouts?

No, unless you are a platform whose connected accounts have automatic payouts enabled. The report is otherwise available only to accounts with automatic payouts. On manual payouts, use the Balance report.

Why are my instant payouts missing from the payout reconciliation report?

Because you control their timing and amount, so Stripe cannot identify which transactions each one contains. Stripe states that reconciling instant payouts against your transaction history is your responsibility. Expect to handle them separately from your batch reconciliation.

Should I reconcile the Undeposited Funds balance against my Stripe balance?

No. Acodei does not support that, and the reason is timing rather than preference. Sales sit in Undeposited Funds until a payout deposit sweeps them out, and some items such as deferred fees are only added at deposit time, so the two balances can legitimately differ at any moment. Payout matching is the reconciliation method for that mode.

How often should I compare my clearing account to the Stripe balance?

Daily is the gold standard, and monthly is the minimum. Because every sale, fee and payout posts against the clearing account as it happens, a daily comparison catches drift within a day instead of at the end of the month.

What does a failed payout look like in QuickBooks?

Like nothing, deliberately. A failed or canceled payout is closed out without creating a record, because the money never moved. Stripe will show it in the Failed payouts section of the payout reconciliation report, and the itemized download names the retry payout in retried_payout_id. That retry is the payout you will find in your books.

The point

Stripe did not ship two reconciliation reports to be confusing. It shipped two because there are two defensible ways to model a payment processor in a general ledger, and each one needs a different view of the same ledger.

The mistake is not picking the wrong report. The mistake is not knowing that the decision was already made for you, in a QuickBooks setup field, possibly years ago. Find out which holding account your Stripe activity lands in, pull the matching report, and the tie-out stops being an argument with a spreadsheet.

Acodei posts the QuickBooks side of this automatically, in whichever of the two shapes your books are set up for, which is what makes either report reconcilable rather than merely downloadable. Start a free trial or read how Acodei handles reconciliation end to end.

Share

Automate your Stripe to QuickBooks sync

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

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.