Why Stripe Payouts Don't Match Your Bank Deposits
Your Stripe payout says one number, your bank deposit says another. Here's why they diverge — and what to do about it.
You check your Stripe dashboard. It says today’s payout is $4,812.37. You check your bank account. The deposit is $4,812.37. Everything matches.
Until it doesn’t.
One morning the payout says $6,200. The bank says $5,950. Or the bank shows a deposit you can’t find in Stripe at all. Or Stripe says it paid out yesterday but the bank shows nothing.
This isn’t a bug. It’s how the system works. Stripe and your bank are two separate institutions with different settlement mechanics, timing rules, and ways of reporting money. Mismatches are the default — matching is the exception that requires work.
If you’re trying to reconcile these mismatches against QuickBooks, read the full Stripe-QBO reconciliation guide first — it covers the end-to-end process. If your dates specifically don’t line up, payout vs. deposit timing explains the ACH settlement mechanics. And if you’re on monthly fee billing, the payout math changes — see Stripe fees billed monthly.
The six reasons payouts don’t match deposits
Here’s every scenario that causes a mismatch, how to identify it, and what to do:
| Cause | How to identify | Fix |
|---|---|---|
| Timing (ACH settlement) | Payout date ≠ deposit date by 1-3 days | Match within a date window, not exact date |
| Fee netting | Deposit < charges for the period | Track gross revenue + fees separately |
| Refund in different payout | Refund reduces a later payout, not the original | Reconcile at payout level, not charge level |
| Dispute/chargeback | Unexpected deduction from payout | Track disputes as separate line items |
| Currency conversion | Small amount differences on FX charges | Allow tolerance, book FX difference |
| Connect transfers | Payout reduced by transfers to connected accounts | Include transfers in payout decomposition |
Reason 1: Timing differences
This is the most common cause of mismatch, and the most benign.
When Stripe initiates a payout, the money doesn’t arrive at your bank instantly. The typical timeline:
- Day 0: Stripe batches your transactions and creates the payout
- Day 1: Stripe submits the ACH transfer to the banking network
- Day 2: Your bank receives and posts the deposit
This 1-2 business day gap means a payout created on Friday might not appear in your bank until Tuesday. A payout on January 31 might not land until February 2.
At month-end, this creates a timing mismatch: Stripe’s January report includes the payout, but your bank’s January statement doesn’t. Both are correct. They just disagree on when the money moved.
What to do: When reconciling, allow a 2-3 business day window for matching. Match on amount first, then confirm the payout date falls within the settlement window of the deposit date.
Reason 2: Fee netting
Stripe deducts processing fees before paying you. Your payout is the net amount — charges minus fees minus refunds.
If you recorded the gross revenue in your books, the bank deposit won’t match your revenue entries. It’ll be lower by exactly the amount of fees deducted.
Example:
Gross charges: $10,000.00
Stripe fees (2.9%): − $320.00
Net payout: $ 9,680.00 ← this is what your bank sees
Your bank sees $9,680. Your books (should) show $10,000 in revenue and $320 in processing fees. The deposit matches the net, not the gross.
This only gets confusing when you’re not explicitly tracking fees as a separate line item. If your bookkeeper records the bank deposit directly as revenue, you’re understating revenue and hiding the cost of payment processing.
What to do: Always record gross revenue and fees separately. The bank deposit is the net — it should not equal your revenue.
Exception: If you’re on Stripe’s monthly fee billing, fees are not netted from payouts at all. The payout equals the gross minus refunds, and fees come as a separate monthly charge.
Reason 3: Refunds crossing payout boundaries
A refund issued today reduces tomorrow’s payout — not the payout that contained the original charge.
Say a customer paid $200 on Monday (payout on Wednesday). They request a refund on Thursday. That refund reduces Friday’s payout, not Wednesday’s. If you’re trying to match the original charge to the original deposit, the numbers won’t reconcile because the refund happened in a different payout cycle.
What to do: Don’t try to match refunds to the original payout. Instead, reconcile at the payout level: each payout should equal the sum of all charges, refunds, and adjustments assigned to it by Stripe. Use the payout’s balance_transactions to see exactly what’s included.
Reason 4: Disputes and chargebacks
When a customer disputes a charge, Stripe reverses the amount immediately — often before the dispute is resolved. This withdrawal reduces your next payout (or creates a negative payout if the dispute amount exceeds your pending balance).
If you win the dispute, Stripe adds the money back in a later payout. Between the debit and the credit, your bank and Stripe will disagree.
What to do: Track disputes as a separate line item. When a dispute is opened, record the debit. When it’s resolved, record the credit or write-off. Don’t adjust your original revenue entry — disputes are a separate event.
Reason 5: Multiple currencies
If you accept payments in EUR but your bank account is in USD, Stripe converts the currency at payout time. The exchange rate Stripe uses is the rate at the moment of conversion, which won’t match:
- The rate at the time of the original charge
- The rate your accounting system uses
- The rate your bank reports on the deposit
These FX differences are usually small (pennies to low dollars) but they accumulate and make exact matching impossible.
What to do: Accept that FX reconciliation will have a tolerance. Match within a small percentage (0.5-1%) and investigate only material differences. Book the remainder to an FX gains/losses account.
Reason 6: Stripe Connect transfers
If you use Stripe Connect (marketplace/platform model), transfers to connected accounts reduce your payouts. The transfer amount is deducted from your balance before payout, but it won’t appear as a charge or refund — it’s a separate transaction type.
What to do: Include Connect transfers in your payout reconciliation. The payout amount equals charges minus fees minus refunds minus transfers.
Why tools fail here
Stripe can tell you exactly what’s in a payout. Your bank can show you exactly what was deposited. But neither can compare the two — and neither can tell you whether the entries in your books match both sides.
Reconciliation breaks because it’s a cross-system problem. No single system has visibility into all three ledgers. That’s why spreadsheet reconciliation is still the default — and why it’s so fragile.
The alternative is a reconciliation control that pulls from all three sources, runs the matching logic, and produces a verifiable proof that the numbers agree (or flags exactly where they don’t).
Generate your Stripe reconciliation pack →
Upload your Stripe payout CSV and bank deposit export. Get back a matched/unmatched list, variance summary, and a signed proof — in 60 seconds.
Troubleshooting
Stripe payout missing in bank
Check the payout status in Stripe Dashboard (Payouts → click the payout). If status is “Paid,” the ACH was submitted — check your bank in 1-2 business days. If status is “Failed,” Stripe will retry automatically. If the payout was sent to the wrong bank account (rare), contact Stripe support.
Stripe deposit not matching QuickBooks
You’re likely comparing the net deposit (bank) to the gross entry (QBO). They should differ by exactly the fee amount. If they don’t, check for refunds, disputes, or Connect transfers included in that payout.
Bank shows deposit Stripe doesn’t recognize
Check if the deposit is from a different Stripe account (test mode vs. live mode), a different payment processor, or a non-Stripe source miscategorized in your bank feed.
Payout amount is negative
A negative payout happens when refunds and disputes exceed new charges for the day. Stripe debits your bank. This is normal during low-volume periods with recent refunds. Record it as a withdrawal, not a reversed deposit.
FAQ
Why is my Stripe deposit different from my Stripe revenue?
Because the deposit is the net payout — revenue minus fees minus refunds. Your books should record gross revenue and fees separately. The deposit equals gross minus fees minus refunds.
How long do Stripe payouts take to reach my bank?
Typically 1-2 business days after Stripe creates the payout. Weekends and bank holidays extend this. See payout vs. deposit timing for the detailed timeline.
Why does my Stripe payout have a different date than my bank deposit?
Stripe reports the date the payout was created. Your bank reports the date it was received. There’s a 1-3 business day gap between them. This is the ACH settlement window, not an error.
How do I reconcile Stripe when I have multiple currencies?
Match within a tolerance (0.5-1% of the charge amount) and book the FX difference to a gains/losses account. Don’t try to match exact amounts — exchange rates differ between Stripe and your bank.