Twelve people buy a $10 product from you in a week. That is $120 of sales, and the deposit that shows up at your bank is $77.92. Nothing has gone wrong. A payout was never a payment for a set of sales. It is whatever your balance came to on the day it was sent, after every fee, refund and dispute that touched the balance since the last one, including ones that belong to sales from weeks ago.
We built a payouts page for a product called Volta, which was ours and which we retired in August 2026. The page had four columns: a date, an amount, a status and Stripe's identifier for the payout. Nothing on it could tell a seller which sales a deposit contained. Volta closed before a live payout ever passed through that page, so what follows about it comes from reading our own code against Stripe's documentation, and the code does not come out of that well.
A payout is a batch
Stripe describes it this way: automatic payouts "occur routinely according to your payout schedule and can include funds from multiple transactions."[1] The payout object itself carries an amount, a currency and a status. Retrieving it, Stripe notes, "won't include the individual transactions that make up the total amount."[1]
So the number at your bank is a total with the workings removed. The workings exist, as a list of what Stripe calls balance transactions, and reading a payout means reading that list.
The sales in it are not this week's sales
Two clocks run before a sale reaches a payout. One is how long the money takes to become available, which Stripe sets per country and lists as 2 business days for the United States.[2] The other is your payout schedule: daily, weekly, monthly or manual. They are independent. "Choosing a payout schedule doesn't change how long it takes for your pending balance to become available. It only controls when payouts are sent."[2]
Put a calendar on it. On a daily schedule with that two-business-day timing, a sale made on Friday 30 October 2026 goes out in the payout of Tuesday 3 November. Add up your October sales, add up your October payouts, and the two will disagree by the last few days of both September and October. On a weekly schedule the drift is wider, and the first payout on a new account is its own case: Stripe typically schedules it "within 7-14 days" of the first live payment.[2]
A bookkeeper who matches deposits to a month of sales is comparing two different sets of transactions and will never get them to agree.
What one payout looks like itemised
Here is the $77.92 payout taken apart, for a US seller with their own Stripe account on the standard card rate of 2.9% + 30 cents[3]. Twelve sales at $10 became available. During the same days the seller refunded one earlier $10 sale, and a buyer disputed another.
| Line | Count | Gross | Fees | Net |
|---|---|---|---|---|
| Charges | 12 | $120.00 | -$7.08 | $112.92 |
| Refund of an earlier sale | 1 | -$10.00 | $0.00 | -$10.00 |
| Dispute on an earlier sale | 1 | -$10.00 | -$15.00 | -$25.00 |
| Payout | $77.92 |
The fee on each $10 charge is 59 cents. The refund takes the full $10 back out and returns none of the 59 cents the original sale paid, because "Stripe's processing fees from the original transaction aren't returned."[4] The dispute takes $10 plus the $15 dispute received fee[3], and it takes them at once: when a dispute opens, Stripe "debits your balance for the payment amount and dispute fee."[5]
Both of those earlier sales had already been paid out in full, in some previous deposit. Their undoing lands in this one. That is the part a sales report cannot show you, since the refund and the dispute are not sales and do not belong to this week.
If the bad lines outweigh the good ones, the payout does not shrink to zero and stop. Stripe's own example: receive $100, refund $200 of prior payments, and with nothing else coming in "Stripe creates a payout that debits your bank account."[2]
On your own Stripe account you can get this table for any automatic payout. The payout reconciliation report has an Itemized download that lists "every payment, refund, dispute, fee, and other balance transaction included in the payout."[6]
"Paid" can still come back
A payout is pending until it is submitted to the bank, then in transit, then paid, "or to
failed or canceled (within 5 business days). Some payouts that fail might initially show as
paid, then change to failed."[7]
The reason is that Stripe learns about a failure from your bank, late. "It can take up to 5 additional business days for your bank to return the payout and inform us that it failed."[2] For that stretch a deposit can be marked paid on a screen and absent from your account.
The date beside the status is an estimate too. The field is defined as the "date that you can expect the payout to arrive in the bank"[7], and Stripe's report groups payouts "by the estimated arrival date shown on the Payouts page, not the date your bank posts the deposit."[6]
A bank account that only accepts
credits will reject the debit described above; Stripe has a failure code for it,
debit_not_authorized, and says accounts must be "set up for both credit and debit
payouts."[7]
A mistyped account number is not guaranteed to fail at all. Stripe "might send payouts to the wrong bank account and might not be able to recover the funds."[2]
What our payouts page got wrong
Our page was filled by a job that ran once a day. For each seller it asked Stripe for the most recent payouts and wrote down any it had not seen before. A payout it had already recorded was skipped.
Skipped means the status we showed was the status on the day we first saw the payout, kept forever. A deposit first seen in transit would have read "In transit" on our page after it had landed. Worse, one first seen as paid would have gone on reading "Paid" after the bank returned it and Stripe changed it to failed. The column headed "Date" was Stripe's expected arrival date, with nothing saying it was an estimate.
And we never asked Stripe for the list of transactions inside a payout. A seller looking at $77.92 on our page had the total and an identifier, and the only route to the workings was to leave our product and open Stripe.
When the itemised list does not exist
The breakdown above depends on a setting. Stripe can list a payout's contents because, on an automatic schedule, Stripe decided what went into it. Take that decision yourself and the list is gone: "You control the timing and amount of manual payouts, so Stripe can't identify which transactions are included in each payout. You're responsible for reconciling payouts you create against your transaction history."[1] The same warning is given for instant payouts[6], and the API says listing a payout's transactions is supported "for standard automatic payouts" only.[7]
This reaches sellers on platforms too. The Stripe Express dashboard that a platform can hand its sellers has a Payout reconciliation tab, and "connected accounts on a manual payout schedule can only view the Balance summary tab."[8] Whether your schedule is automatic may be something your platform chose for you.
That is the cost of control here. Choosing when your money moves, or having it in minutes, is bought with the one report that explains a deposit.
On your next payout
Open the payout in Stripe, not in your platform, and download the itemised list. Check the refund and dispute lines against sales you thought were finished.
Reconcile deposit by deposit. Matching a calendar month of sales to a calendar month of payouts cannot work when a Friday sale is a Tuesday deposit.
Treat "paid" as provisional for five business days if the money is not in your account, and check that your bank account accepts debits before the first week your refunds exceed your sales.
If you sell through a platform, ask whether your payouts are automatic and where the itemised breakdown is. Ours could not have answered the second question.
Disclosure. The four-column payouts page, the once-a-day job that recorded each payout a single time and never updated it, and the missing per-payout breakdown are from our own build of Volta, so they carry no citation below. Volta was our product, it is retired, and it closed without a live payout passing through that page. Nothing here recommends it. The worked payout is an illustration built from Stripe's published rates, not a record of a real account. Every external quote is cited to Stripe's own page.
