How do you record Stripe transactions in QuickBooks Online?Create a "Stripe Clearing" account (type: Other Current Asset) in QBO. For each Stripe payout, post a journal entry that debits the clearing account for gross charges, credits revenue accounts, debits fee expense, handles refunds as contra-revenue, and debits your bank account for the net deposit. The clearing account should zero out after every payout. This method captures gross revenue, fee expense, and refund activity accurately, unlike the bank feed alone.
Key Takeaways
- The bank feed alone is wrong. It records the net deposit as revenue, understating gross revenue and omitting fee expense entirely.
- The clearing account method is the correct approach, whether you do it manually or automate it. Other Current Asset, not bank, not A/R.
- Every journal entry follows the same structure: debit clearing for gross, credit revenue, debit fee expense, credit clearing for refunds, debit bank for net.
- At 10 payouts/month, manual JEs take 5 to 7 hours. Automation cuts that to 15 to 30 minutes of review.
- Low-volume Stripe users (under 10 transactions/month, weekly payouts) may skip the clearing account. Everyone else needs it.
The Three Approaches to Stripe + QuickBooks (And Which One Works)
There are three ways bookkeepers handle Stripe in QBO. Two of them produce accurate books. One of them is very popular, costs almost no time, and is wrong.
Bank feed only: Stripe deposits the net payout to your bank account, and the QBO bank feed picks it up as a single transaction. You categorize it as revenue and move on. The problem: that net number is gross charges minus fees minus refunds. You've understated gross revenue by the fee amount, you have no fee expense line at all, and refunds disappear from your P&L. The error compounds every month.
Clearing account + manual journal entries: This is the correct method. You create a "Stripe Clearing" account in QBO, then build a journal entry for each payout that captures every component: gross charges, fees by type, refunds, and the net bank deposit. Accurate books, but it takes 30 to 45 minutes per payout.
Clearing account + automation: Same accounting logic as option 2, but software reads the Stripe payout detail via API and generates the journal entry automatically. You review exceptions instead of building every entry by hand.
The clearing account is not optional for any Stripe client with meaningful volume. The question is whether you build the JE by hand or let software handle it.
Setting Up the Stripe Clearing Account in QBO
Before you can record a single payout, you need three accounts. Here's the exact setup.
Step 1: Create the Stripe Clearing account.
In QBO: Settings > Chart of Accounts > New.
- Account type: Other Current Assets
- Detail type: Other Current Assets
- Name: Stripe Clearing
- Account number: Put it in your 1200-1299 range (short-term asset accounts)
Why Other Current Asset and not a bank account? The clearing account holds a temporary balance between when charges land in Stripe and when the net deposit hits your bank. It's not a real bank account; it's a transit account. Using the bank type would make it appear in bank feeds and confuse reconciliation.
Step 2: Create your Stripe Fees expense account.
- Account type: Cost of Goods Sold (e-commerce/product businesses) or Expenses (service businesses)
- Detail type: Supplies and Materials or Other Business Expenses depending on your COA structure
- Name: Stripe Processing Fees
- Account number: 5050 range for COGS or 6050 range for expenses
If you want full fee breakdowns, create sub-accounts for processing fees, dispute fees, and international fees separately. For most clients, one Stripe Processing Fees account covers it.
Step 3: Create the Stripe Refunds account (if needed).
- Account type: Income
- Detail type: Sales of Product Income or Service/Fee Income (match your revenue account type)
- Name: Sales Refunds - Stripe (or Stripe Refunds)
- Mark it as a contra-revenue account by keeping balances negative
Refunds are not expenses. They reverse revenue. A separate contra-revenue account keeps your gross revenue clean and your refund volume visible as a management metric.
Recording a Stripe Payout Manually (Step by Step)
Here's a real payout walkthrough. A client receives a Stripe payout of $4,109.57 hitting their bank on April 18. Pull the payout detail from the Stripe Dashboard (Payments > Payouts > select the payout > View transactions).
The payout detail shows:
- Gross charges: $4,321.50 (43 transactions)
- Processing fees: $(127.43)
- Refunds: $(84.50)
- Net deposit: $4,109.57
The journal entry:
Account | Debit | Credit
Stripe Clearing | $4,321.50 |
Sales Revenue | | $4,321.50
Stripe Processing Fees | $127.43 |
Stripe Clearing | | $127.43
Sales Refunds - Stripe | $84.50 |
Stripe Clearing | | $84.50
Business Checking | $4,109.57 |
Stripe Clearing | | $4,109.57
After posting, the Stripe Clearing account nets to zero: $4,321.50 debited at the top, then $127.43 + $84.50 + $4,109.57 credited back out. That's exactly $4,321.50. The account is clear.
Verification step: Always check the Stripe Clearing balance after posting. If it's not zero, something doesn't reconcile. Common culprits: pending transactions from the prior period carried forward, a dispute hold that Stripe hasn't released, or a data entry error on the gross charge total.
A non-zero clearing balance is a flag, not a catastrophe. Pull the Stripe payout detail again and compare line by line against your JE.
Handling disputes in the journal entry:
Disputes are a slightly different animal. When a customer files a chargeback, Stripe immediately deducts the disputed amount plus a $15 dispute fee from your balance. If you win the dispute, the held amount returns (but not the $15). If you lose, neither comes back.
For an open dispute, credit Stripe Clearing for the held amount and debit a "Stripe Disputes Held" asset account. Once resolved, move it to either revenue (won) or expense (lost) and clear the $15 fee to your dispute fee expense account. Keeping disputes in a separate asset account gives you visibility into how much is tied up in open chargebacks at any point in time.
Most QBO files I've seen lump disputes directly into fee expense and hope for the best. That works until a client has three open disputes in different states of resolution and the balance sheet has a mystery $2,400 variance.
Why the Bank Feed Alone Gets It Wrong
The bank feed deposits $4,109.57 and presents it as one transaction to categorize. If you call that "Sales Revenue," here's what your books show:
- Revenue understated by $211.93 ($127.43 fees + $84.50 refunds)
- No fee expense recorded anywhere
- Refunds invisible on the P&L
The balance sheet error is worse. Because the net deposit is hitting revenue directly, there's no clearing account to zero out. Every month, the under-reported revenue accumulates. By December, you've got 12 months of entries to unwind.
The CPA doing the tax return has to reconstruct gross revenue from Stripe exports and manually calculate fee deductions. At a billing rate of $300 to $400/hour, that unwinding exercise is expensive.
In practice, this mistake is common. Bookkeepers inherit QBO files where the bank feed has been categorized as revenue for 18 months straight. The fix isn't difficult, but it requires touching every payout period. Get the clearing account set up before the first payout, not after.
There's also a tax implication. If gross revenue is understated, the S-Corp or sole proprietor may have filed a return showing lower sales than Stripe actually processed. That's a discrepancy the IRS can find easily by comparing Form 1099-K (which Stripe files for any account processing over $600) against the reported gross receipts. The correction cost at the CPA layer runs $500 to $1,500 depending on how many years need amending. The clearing account setup takes about 15 minutes.
Manual vs. Automated: Time and Error Comparison
The clearing account method is correct regardless of how you execute it. The question is how long it takes.
Manual JE time per payout:
You need to pull the payout CSV from Stripe, calculate gross charges, sum fees by type, verify refund amounts, and build the JE in QBO. For a straightforward payout with 40 to 60 transactions and no disputes, that's 30 to 45 minutes. Add a dispute or a fee category you haven't seen before, and it stretches to 60 minutes.
The scale problem:
Payouts/month | Manual time/month | Automated review time/month
4 (weekly) | 2 to 3 hours | 15 to 20 minutes
10 | 5 to 7 hours | 20 to 30 minutes
22 (daily, business days) | 11 to 16 hours | 30 to 45 minutes
At daily payouts (Stripe's default for high-volume accounts), manual JEs aren't viable for a bookkeeper managing multiple clients. The error rate climbs too.
Where manual errors happen:
Fee allocation is the most common failure point. Processing fees and dispute fees are both in the payout report, but they sit in different columns. Bookkeepers misread totals, especially when multiple partial refunds are involved. One transposition turns a zero-balance clearing account into a $47 mystery.
Automation reads from Stripe's reporting_category field in the API, which tags each transaction (charge, refund, dispute, fee) before the numbers are touched. The JE builds from categorized data, not raw totals you calculate by hand.
When You Need the Clearing Account (And When You Don't)
Not every Stripe client needs a clearing account. Here's the actual decision:
Skip the clearing account if:
- Fewer than 10 Stripe transactions per month
- Weekly payouts (one payout = one or two transactions to look up)
- Client invoices customers individually and matches each payment to an invoice in QBO
In this scenario, you can match each Stripe charge to its invoice in QBO as it comes in. The bank feed payout reconciles naturally because the individual payments are already in the books. The clearing account adds complexity without adding accuracy.
Use the clearing account if:
- 10+ Stripe transactions per month
- Daily or every-two-day payouts
- Mix of products, subscriptions, and one-time charges
- Any refund activity
- Dispute volume above zero
Most Stripe clients above the 10-transaction threshold also have refunds and varying fee structures. The clearing account is the only way to keep gross revenue, fee expense, and refund contra-revenue in separate accounts without manually matching 200 transactions.
If you're not sure, look at the client's last three payout reports. If you see more than one fee type or more than five transactions per payout, set up the clearing account now. Retrofitting it later means recreating every journal entry from the date the client started using Stripe.
For a deeper look at why Stripe deposits never match your sales, including the exact breakdown of how Stripe nets payouts, that article covers the mechanics in more detail.
Once your clearing account is set up, where Stripe fees go in your chart of accounts covers the full GL mapping for processing fees, international surcharges, dispute fees, and more.
After recording, the next step is reconciliation. The full Stripe reconciliation workflow covers how to close each period and verify your clearing account is genuinely zeroed.
Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice. Full disclaimer.
Get Started with Growthy
Related: Why Stripe Deposits Don't Match, Stripe Fees GL Mapping, Stripe Reconciliation Guide