Growthy
AI BookkeepingFor BookkeepersBlogTopicsPricing
Sign InJoin the Alpha
Growthy

© 2026 Growthy. All rights reserved.

  1. Blog
  2. Stripe Bookkeeping

The $4,237.18 Problem: Why Stripe Deposits Never Match Your Sales

Bobby Huang

Partner, SDO CPA LLC / CEO, Growthy

April 24, 2026
8 min read
Stripe Bookkeeping
The $4,237.18 Problem: Why Stripe Deposits Never Match Your Sales

In this article

It's a Tuesday morning. You're reconciling a client's bank feed when $4,237.18 hits the screen under the description "STRIPE TRANSFER." You scan through their invoices. Nothing matches. You check their Stripe dashboard and see 47 individual charges: some from last Tuesday, some from last Friday, two refunds from the week before. The deposit doesn't match any single one of them.

You're not making an error. This is just how Stripe works.

Why don't Stripe deposits match my sales?Stripe bundles multiple charges into a single net payout before depositing to your bank. It deducts processing fees (2.9% + 30¢ per US transaction), subtracts any refunds from that period, and holds $15 per dispute. The bank deposit shows the net result of dozens of transactions. Not any individual sale. A $4,237.18 deposit might represent 47 charges, 3 refunds, and $127.43 in fees combined.

Key Takeaways

  • Stripe payouts are net amounts, not individual transactions. Matching them to invoices one-for-one will never work.
  • Three deductions reduce every deposit: processing fees, refunds (where Stripe keeps the original processing fee), and dispute holds ($15 each, win or lose).
  • Manual reconciliation costs $400-600/month in bookkeeper time per Stripe-connected client at $100/hr across 4-6 hours of monthly work.
  • The payout-period method works: group transactions by payout period, post one summary journal entry per payout, verify the clearing account zeros out.
  • Pattern-learning tools cut this to 15-30 minutes by automating the grouping and journal entry generation, leaving you to review exceptions only.

The Deposit That Doesn't Match Anything

The $4,237.18 deposit is real. It came from a real month of Growthy's Stripe account, and it took longer to reconcile than it should have.

The bank description just says "STRIPE TRANSFER": no payout ID, no date range, no transaction count. You open Stripe's dashboard and see a list of individual charges: $149.00, $299.00, $149.00, $49.00. None of them are $4,237.18. You try adding a few together. Still nothing.

Here's what's actually in that deposit: 47 charges over a multi-day payout window, minus 3 refunds that happened to land in the same period, minus $127.43 in processing fees that Stripe already deducted before sending the money.

The worst moment in Stripe reconciliation isn't finding the problem. It's thinking you found the match, then realizing the number is off by exactly the amount of a refund that happened 3 days earlier. You go back, pull the refund, recalculate, and the number still doesn't land because there's a dispute fee you didn't see yet.

This is why Stripe is harder to reconcile than Square or PayPal. Square syncs individual transactions cleanly. Stripe deposits net amounts that can include anywhere from 10 to 150 transactions depending on your client's payout schedule and volume.

How Stripe Actually Moves Money

Stripe doesn't send you money immediately when a customer pays. It collects charges into a held balance, then periodically pays out the net amount to your bank.

Here's the flow: A customer pays $299. Stripe holds that in your Stripe balance (not your bank). At the end of the payout period (daily, weekly, or on a custom schedule depending on your client's settings), Stripe tallies up every charge, subtracts every fee and refund, and sends the resulting number to your bank account in a single transfer.

The technical term is a BalanceTransaction. Every charge, fee, refund, and adjustment that settles during a payout period gets grouped under that payout's ID. Your bank sees one number. Stripe's API shows you each component.

This is the insight that makes reconciliation work: you're not matching individual transactions to the bank deposit. You're matching the entire payout group to the deposit. The sum of all BalanceTransactions for a given payout ID should equal the bank deposit amount, to the cent.

If you skip this and try to match individual charges, you'll never tie out. The numbers just don't work that way.

The Three Things Stripe Deducts Before You See a Dime

Every Stripe deposit is smaller than your gross sales by at least three types of deductions. Each one hits the books differently.

Processing fees (2.9% + 30¢ per US transaction): This is the most consistent deduction. On a $299 charge, Stripe takes $8.97 before the money ever leaves their system. Across 47 transactions, those fees add up fast: $127.43 in the $4,237.18 example. These belong in a separate expense account, usually mapped to cost of revenue for product businesses or operating expense for service businesses.

Refunds (full customer amount, plus Stripe keeps the original fee): This is the one that trips people up. When you refund a customer $149, Stripe deducts the full $149 from your next payout. But the $4.63 processing fee from the original charge? That's gone. Stripe doesn't return it. So a $149 refund actually costs $153.63 in total: the refund itself plus the eaten fee. In the books, refunds are contra-revenue, not expenses. Getting this wrong distorts gross margin.

Dispute fees ($15 per dispute, regardless of outcome): Someone files a chargeback, Stripe immediately holds the transaction amount plus charges you $15. You can win the dispute and get the held amount back, but the $15 is gone either way. Dispute fees should live in a separate account. They're an operational signal. If that account starts growing, something upstream is wrong with your client's business.

Why This Takes 4-6 Hours a Month (Bobby's Math)

Three Stripe-connected businesses. Roughly 200 transactions per month each. That's 600 transactions across 3 accounts, sorted into payouts, matched to bank deposits, with fees and refunds accounted for individually.

At $100/hour bookkeeper rates, 4-6 hours of monthly reconciliation per Stripe client costs $400-600. And that's just one payment processor. Most businesses using Stripe also have PayPal, ACH, or credit card terminals. The hours add up before you've touched anything else.

The brutal part: the time doesn't scale well. Doubling a client's transaction volume roughly doubles the reconciliation time. There's no efficiency gain from doing more of it manually. You're still pulling payout reports, cross-referencing refunds, entering journal entries line by line. The 200th transaction isn't faster than the 1st.

This is the math that makes Stripe reconciliation a real business problem, not just an annoyance. For bookkeepers managing 5-10 Stripe clients, the hours are a meaningful chunk of monthly capacity.

The Payout-Period Approach That Actually Works

The fix is conceptually simple: stop trying to match individual transactions to the bank deposit. Match the entire payout to the deposit instead.

Here's how it works in practice:

Group by payout period, not by transaction. Pull the payout report from Stripe (Dashboard → Payouts → select the payout → export). Every transaction that settled in that payout period is listed with its type (charge, refund, fee) and amount.

Build one summary journal entry per payout. The entry has four components:

  • Debit the Stripe Clearing account for the gross charge total
  • Credit Revenue for the same amount
  • Debit fee accounts (Processing Fees, Dispute Fees) for each fee type
  • Credit the Stripe Clearing account for refunds (as contra-revenue)
  • The net result: debit Bank for the deposit amount, clearing account zeros out

Verify the clearing account balance is zero. After posting the journal entry, your Stripe Clearing account should have a zero balance for that payout period. If it doesn't, something's missing: a refund you didn't catch, a fee that landed differently, a dispute hold that spans payouts.

This is the payout-period method. It's the same approach A2X built a business around validating — it works because it matches how Stripe actually settles money, not how you might wish it worked.

For a detailed step-by-step walkthrough including the exact journal entry format, see the complete Stripe reconciliation guide.

What Changes When Matching Is Automatic

The payout-period method works manually. It's just slow.

When the grouping and journal entry generation are automated, the process shifts from 4-6 hours to 15-30 minutes per month. Not because the method changes. The same payout-period logic applies, but the tedious parts (pulling payout reports, categorizing each transaction, calculating fee totals by type) happen without manual data entry.

Point Growthy at your Stripe payouts. It splits fees by type using Stripe's reporting_category field and generates clearing account journal entries automatically. Instead of reconciling 47 transactions, you review the exceptions: items where the pattern learning flagged something that needs human judgment. In a typical month, that's 10-15 items instead of 600.

The confidence scoring is the part that changes the workflow most. Instead of manually checking every transaction, you see a score on each payout component. High confidence means the entry is clean. Flagged items mean something looks off: a refund that doesn't match a known order, a fee that's higher than expected, a dispute hold that opened and closed in the same period.

For bookkeepers managing multiple Stripe clients, this is where the capacity math inverts. 15-30 minutes per client instead of 4-6 hours means you can handle more clients without adding hours, or deliver better work on the clients you have.

If you want to understand how to record Stripe transactions in QuickBooks using the clearing account method, that's the next piece to read.


Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice. Full disclaimer.

Get Early Access


Related: How to Record Stripe in QBO, Stripe Reconciliation Guide

Tags:stripebookkeepingreconciliationquickbooks

See It Work on Your Data

Free during alpha. Read-only access. You review every sync.

✓ No credit card✓ Works with QuickBooks✓ 85% accuracy
Request Early Access

Bobby Huang • Partner, SDO CPA LLC / CEO, Growthy

CPA firm partner who got tired of watching bookkeepers click categorize 500 times a day. Built Growthy to fix it.

View all articles →

Growthy is dedicated to helping businesses of all sizes make informed decisions. We adhere to strict editorial guidelines to ensure that our content meets and maintains our high standards.

Keep reading

Featured image for What Category Is Vehicle & Mileage Expenses? (Chart of Accounts Guide)
Expense Account Categories

What Category Is Vehicle & Mileage Expenses? (Chart of Accounts Guide)

Vehicle expenses split into two methods: standard mileage (a single per-mile rate that covers gas, depreciation, and maintenance) or actual expense (every cost tracked separately). The choice in year one usually locks in the rest.

B
Bobby Huang
11 min
Business traveler at airport
Expense Account Categories

What Category Is Travel Expenses? (Chart of Accounts Guide)

Travel covers airfare, hotels, rental cars, and ground transit while away from your tax home for business. Meals belong in Meals (50% deductible). Mileage belongs in Vehicle Expense. The commute is never deductible at all.

B
Bobby Huang
10 min
Team training meeting in conference room
Expense Account Categories

What Category Is Training & Education? (Chart of Accounts Guide)

Training and education go to Training & Education Expense, but the deductibility test is sharper than most articles admit. Owner career-change tuition isn't deductible; CPE for licensed pros always is; conferences split across three accounts.

B
Bobby Huang
10 min