Why Is My Stripe Payout Less Than My Sales?
A Stripe payout that is smaller than your gross sales is normal. The payout is net of Stripe’s fees, refunds and disputes, and it only includes money that has already settled — not the sales still pending in your balance.
The short answer: your “sales” counts every charge the moment it happens. Your payout is what is actually sent to your bank: gross charges, minus Stripe’s processing fees, minus refunds, minus disputes, for only the transactions that have become available under your payout schedule. A smaller payout is expected, not a mistake.
What “sales” and “payout” actually mean
Before comparing the two numbers, it helps to be precise about what each one is:
- Gross sales (volume) is the sum of your charges — the full amounts customers paid, including the fees you will owe and any money you later refund.
- A payout is the money Stripe transfers to your bank account. It is the net result of the charges, fees, refunds and disputes that settled together, not a copy of your sales total.
Why the payout is smaller: the components
Every payout is built from individual balance transactions. Each
one has an amount (gross), a fee, and a
net impact on your Stripe balance equal to amount − fee.
The payout’s amount is the sum of those net values. The usual reasons it
comes out below your sales:
-
Stripe processing fees
Every charge carries a fee (for example, 2.9% + $0.30 per successful card payment in the US). These show up as
stripe_feebalance transactions and are already subtracted before the payout. -
Refunds
Money you return to customers is a
refundbalance transaction with a negative amount. It directly reduces your balance and the payout. -
Disputes and chargebacks
A disputed payment is reversed (
dispute) and Stripe may add adispute_fee. Both reduce the payout. -
Settlement timing and the pending balance
Funds must become available before they can be paid out. Stripe uses “T+X” settlement timing (typically a few business days), so a payout only contains what has settled — sales from the last few days are usually still
pending. -
Your payout schedule
Payouts run on a daily, weekly or monthly schedule (or manual). A sale made today is spread across later payouts, so any single payout is only part of your sales.
-
Currency conversion and reserves
If you accept currencies other than your settlement currency, an FX fee (
stripe_fx_fee) applies. In some accounts Stripe also holds a reserve. And if refunds ever exceed payments, Stripe can issue a negative payout that debits your bank.
A worked example
Say your store took $5,000.00 in charges over a period, with 50 successful card payments. Stripe’s fees were 2.9% + $0.30 each, and you refunded $200.00:
| Component | Amount |
|---|---|
| Gross charges | $5,000.00 |
| Stripe processing fees (2.9% + $0.30 × 50) | −$160.00 |
| Refunds | −$200.00 |
| Payout to your bank | $4,640.00 |
That payout only covers charges that had already settled. If another $1,000 of sales was still pending on the settlement date, your “sales” for the period would be higher than what this one payout shows — the rest arrives in later payouts.
How to see the exact breakdown in Stripe
-
Open the payout
In the Stripe Dashboard go to Payouts and open the payout you want to understand (or open Reports → Payout reconciliation).
-
Download the Itemized CSV
Export the itemized report. Each row is one balance transaction included in that payout.
-
Read the columns
Rows are grouped by the payout (an automatic payout ID) and show the reporting category, amount, fee and net for each transaction.
-
Sum the Net column
Add up
netfor the payout’s rows. It should equal the payout amount — and your bank deposit.
Common mistakes
-
Using the charge date as the payout date. A balance
transaction’s
createddate (when it happened) is different from itsavailable_ondate (when it settled). Match payouts to the settlement date, not the sale date. - Forgetting refunds and disputes are already subtracted. They are negative rows in the same report, not a separate bill.
- Looking for the fee as its own bank line. The per-transaction fee is already netted out of the payout; your bank only shows the net deposit.
- Assuming a low payout means money is missing. It is often just pending balance or a later payout schedule.
- Ignoring currency conversion. Accepting other currencies adds an FX fee and can explain a gap.
- Using manual payouts. The Payout reconciliation report is built for automatic payouts; with manual payouts you choose what and when to send, so the matching is different.
How Stripe Money Detective can help. Stripe Money Detective is a macOS app that imports the Payout Reconciliation (Itemized) CSV you export from Stripe and shows the payout’s composition — charges, refunds, Stripe fees, disputes and adjustments — plus the reconciliation status and any amount errors or warnings. It supports automatic payouts in a single currency and never connects to Stripe or uploads your data. It explains the breakdown; it is not accounting or tax advice. See how it works.
Related official resources
- Stripe Docs — Receive payouts (schedules, settlement timing, pending vs available balance)
- Stripe Docs — Payout reconciliation report (itemized CSV per payout)
- Stripe API — Balance Transactions (amount, fee, net, status)