How to Reconcile Stripe to QuickBooks Online: Two Approaches That Actually Work
Stripe deposits net payouts after fees, so your bank deposit never matches gross revenue. This guide shows two documented reconciliation approaches, Undeposited Funds and a custom asset holding account, with real setup steps for each.
Stripe reconciliation in QuickBooks is where most integrations break down. Stripe collects gross revenue, deducts processing fees, and deposits the net amount into your bank account, typically on a rolling 2-day schedule that bundles dozens of charges minus fees. If you record that net deposit as revenue, your P&L understates gross sales and hides the fees. If you try to match each Stripe charge to your bank deposit manually, you are signing up for hours of work every month.
There are two documented approaches to doing this correctly, and the right one depends on your volume, complexity, and reporting needs. This guide walks through both, with the setup steps that actually apply when you implement each.
Why Stripe Reconciliation Is Not Straightforward
Before looking at the two approaches, it helps to understand exactly why Stripe creates a reconciliation problem that standard bank feed matching does not solve.
Payouts are net, not gross. Stripe collects the full transaction amount, deducts its processing fee (2.9% + $0.30 for standard cards), and deposits the remaining amount. For a $1,000 sale, your bank account sees roughly $971 arrive. Recording that $971 as revenue understates your gross sales by $29 and loses the fee as a deductible expense.
Payouts bundle many transactions. A single payout might cover 50 sales, 3 refunds, 47 processing fees, and 1 dispute. Your bank deposit is one line. Your books need 101 underlying records correctly categorized.
Timing gaps create temporary imbalances. A sale on Monday posts to your Stripe balance immediately. The corresponding payout arrives in your bank on Wednesday. For those 48 hours, the money exists in Stripe but not in your bank account. Your books need to track this correctly.
Edge cases compound the problem. Refunds create negative flows. Disputes temporarily debit your balance along with a $15 chargeback fee. Reserves hold money that has not yet been released. Multicurrency transactions introduce exchange rate differences between charge date and payout date.
A reconciliation approach has to handle all of this consistently, or your books drift over time.
Two Documented Approaches
There are two holding account patterns for Stripe reconciliation in QuickBooks, and both are valid. The difference is where the Stripe balance lives in your chart of accounts and how detailed the day-to-day tracking needs to be.
Approach 1: Undeposited Funds (UF) uses the built-in QuickBooks Undeposited Funds account to temporarily hold Stripe sales until payouts clear.
Approach 2: Non-UF Asset Account uses a custom "Other Current Asset" account, sometimes called a Stripe Clearing Account or Stripe Holding Account, to track your Stripe balance continuously.
Each has tradeoffs worth understanding before you pick one.
Approach 1: Using Undeposited Funds
How It Works
Undeposited Funds is a built-in QuickBooks account that holds sales receipts until you deposit them. The reconciliation flow is:
- A Stripe sale creates a sales receipt in QuickBooks with the gross amount, deposited to Undeposited Funds.
- A Stripe refund creates a refund receipt, reducing the Undeposited Funds balance.
- When Stripe pays out to your bank, QuickBooks groups all of the sales receipts and refunds from that payout into a single bank deposit. The deposit total matches the net amount Stripe sent to your bank, and the Undeposited Funds account clears to zero for that payout.
- Stripe processing fees appear as negative line items on the bank deposit, offsetting gross revenue by the fee amount.
Your bank feed in QuickBooks sees the Stripe payout arrive. You match it to the Acodei-created bank deposit, and the whole process reconciles automatically.
Advantages
- Automatic payout reconciliation. Deposits match Stripe payouts without manual journal entries.
- Zero setup required. Every QuickBooks file has the Undeposited Funds account by default.
- Fewer reconciliation clicks. The bank feed matching is straightforward.
Limitations
- Daily balance will not match Stripe. Undeposited Funds only reflects sales that have not yet been paid out. Fees, disputes, and Stripe Capital activity post on the payout day, not the charge day. If you compare UF to Stripe's own balance report in real time, the numbers will not agree.
- High-volume activity makes the register bulky. Every individual sale creates a separate entry. At 1,000+ transactions per month, the account becomes hard to scroll through.
- Bank feed rules can break matching. If you have automated bank rules that auto-categorize Stripe deposits, they can interfere with the Acodei-created matches.
- Multicurrency limitations. Undeposited Funds cannot be used as the holding account for invoice-level multicurrency handling. If you need to invoice in multiple currencies with proper exchange rate tracking, you need the non-UF approach.
When to Choose This
Undeposited Funds works well for straightforward workflows where payout-level accuracy is sufficient and day-to-day balance tracking is not a priority. It is the right choice for:
- Single-currency businesses with moderate volume
- Teams that reconcile at month-end rather than continuously
- Setups with no invoice-based revenue or standard invoicing only
- Users who want minimum setup friction
Approach 2: Using a Custom Asset Holding Account
How It Works
A non-UF asset account is a custom "Other Current Asset" account you create in QuickBooks to represent your Stripe balance. This account is sometimes called a Stripe Clearing Account or Stripe Holding Account.
The reconciliation flow is:
- Each day, Stripe activity (sales, refunds, fees, disputes) posts as a daily summary journal entry against the holding account. Gross revenue credits your income account. Processing fees debit a Merchant Fees expense. Refunds reduce revenue. All of this flows through the holding account.
- When Stripe pays out, a transfer moves the net amount from the holding account to your checking account. Your bank feed matches this transfer.
- At any point in time, the holding account balance should equal your current Stripe balance.
Advantages
- Daily, exact balance matching. Your Stripe balance in QuickBooks always equals Stripe's own Balance Report. You can compare the two at any time and they should agree.
- Visibility into disputes, fees, and capital loans on the day they occur. Instead of waiting for the payout to land, activity posts to the holding account the day it happens in Stripe.
- Scales efficiently with daily summary entries. Compresses high-volume activity into manageable journal entries rather than thousands of individual sales receipts.
- Required for invoice-level multicurrency. If you invoice in multiple currencies and need exchange rate handling at invoice, payment, and payout stages, this is the only approach that supports it properly.
Limitations
- Requires initial setup. You have to create the holding account and record an opening journal entry that debits the new account and credits Opening Balance Equity to match your current Stripe balance.
- Monthly reconciliation step. Compare the QuickBooks register ending balance to Stripe's balance report each month to confirm they agree. Under UF, the balance is zero after each payout, so there is less to verify.
- Slightly more moving parts. More journal entries in a month than the UF approach, which can feel noisy if you are not used to seeing daily summary postings.
When to Choose This
The non-UF asset account is the right choice for:
- High-volume accounts where the UF register becomes unwieldy
- Multicurrency businesses that invoice in non-home currencies
- Teams that want daily balance accuracy rather than per-payout accuracy
- Businesses dealing with Stripe Capital, Connect payouts, reserves, or other complex balance activity
- Accounting firms with clients who need continuously auditable Stripe balances
Setup Steps
Setup for Undeposited Funds
The UF approach needs no upfront account creation because the account already exists. The setup is essentially:
- Connect Stripe and QuickBooks Online through your integration tool of choice.
- Select Undeposited Funds as the holding account.
- Map your Stripe products to QuickBooks income accounts.
- Configure whether fees should appear as line items on sales receipts, on bank deposits, or as separate expense transactions.
- Let the sync run. Stripe payouts will arrive in your bank feed and match against Acodei-created bank deposits automatically.
Setup for a Custom Asset Holding Account
The non-UF approach requires a few more steps because you are creating a new account and initializing its balance.
- Create the holding account. In QuickBooks, go to the Chart of Accounts and create a new account. Choose "Bank" or "Other Current Asset" as the account type (Other Current Asset is typical). Name it something like "Stripe Clearing Account" or "Stripe Holding Account."
- Record an opening journal entry. The new account needs a starting balance that matches your current Stripe balance on the day you start using it. Create a journal entry that debits the holding account for your current Stripe balance and credits Opening Balance Equity for the same amount. This establishes the baseline.
- Configure the integration. In your integration tool, select the new holding account as the destination. Set the sync method to daily summary (recommended) or real-time depending on your preference.
- Let the sync run. Daily summary entries will post to the holding account, and payout transfers will move net amounts from the holding account to your checking account as they arrive.
- Reconcile monthly. At month-end, compare the QuickBooks holding account ending balance to Stripe's balance report. The two should agree.
Handling Edge Cases
Both approaches need to account for common Stripe edge cases that basic setups miss.
Negative Payouts
When refunds in a given payout period exceed sales, Stripe issues a "negative payout" that debits your bank account instead of crediting it. This needs to post to a separate Clearing Refunds Account rather than Undeposited Funds or your regular holding account, because it represents money flowing the other direction.
The balance in the Clearing Refunds Account should remain at zero unless another negative payout is pending.
Disputes and Chargebacks
When a customer disputes a charge, Stripe immediately debits your Stripe balance for the dispute amount plus a $15 chargeback fee. Both of these need to post to your books:
- The disputed amount reduces your holding account balance (or Undeposited Funds)
- The $15 chargeback fee posts as a separate expense to Merchant Fees or Bank Charges
If you win the dispute later, the reversal posts back as a credit to the holding account and the fee may or may not be refunded depending on Stripe Chargeback Protection.
Stripe Capital Loans
If you have taken a Stripe Capital loan, repayments come out of your daily sales and reduce the net payout. Under UF, this shows up on the payout day as a reduction. Under the non-UF approach, it posts daily as part of the summary journal entry, giving you a more accurate real-time view of loan balance activity.
Multicurrency Payments and Payouts
Multicurrency handling is where the two approaches diverge most clearly.
Under Undeposited Funds, multicurrency is limited. You can record charges in foreign currencies, but invoice-level multicurrency with exchange rate application on payments, refunds, and payouts is not supported.
Under a non-UF asset account, you can enable Invoice Multicurrency. Invoices can be created in the Stripe transaction currency (for example, CAD for a Canadian customer even if your QuickBooks home currency is USD). Exchange rates are pulled from Stripe when available, or from QuickBooks's ExchangeRate API as a fallback. Payments, payouts, and refunds each apply the appropriate exchange rate to produce accurate home-currency equivalents.
For multicurrency businesses, the non-UF approach is essentially required.
Which Approach Should You Use?
| Factor | Undeposited Funds | Non-UF Asset Account |
|---|---|---|
| Setup effort | None | Account creation + opening entry |
| Daily balance match with Stripe | No, only at payout | Yes, continuously |
| High-volume handling | Register gets bulky | Clean summary entries |
| Multicurrency invoicing | Not supported | Fully supported |
| Reconciliation frequency | Per payout (automatic) | Monthly comparison |
| Required if you use Stripe Capital | No, but less visibility | Yes, for clear tracking |
If you are a single-currency business with moderate volume and no complex Stripe features, Undeposited Funds is the simpler choice. If you have any of the following, use the non-UF approach:
- Volume above a few hundred transactions per month
- Multicurrency sales or invoicing
- Stripe Capital, Connect, or other complex balance activity
- A need for continuously accurate balance tracking
- Accounting firm clients who need auditable Stripe balances
How Acodei Automates Both Approaches
Acodei implements both approaches automatically. You choose the holding account during setup, and Acodei handles the rest.
For Undeposited Funds: Acodei creates a sales receipt for each Stripe sale and a refund receipt for each refund, all posted to UF. When Stripe pays out, Acodei creates a bank deposit that groups the relevant sales and refund receipts with fees as negative line items. Your bank feed matches the deposit to the Stripe payout automatically.
For a non-UF asset account: Acodei creates daily summary journal entries against your custom holding account, posting gross revenue to your income accounts, fees to Merchant Fees expense, and keeping the holding account balance aligned with Stripe's balance report. When Stripe pays out, Acodei creates a transfer from the holding account to your checking account.
Both approaches support:
- Rule-based product mapping that routes each Stripe product to a specific QuickBooks income account
- Automated invoice sync with line items, payment matching, and credit memos
- Multi-currency handling with Stripe or QuickBooks exchange rates
- Class mapping for multi-entity reporting
- Historical backfill so you can switch mid-year without starting fresh
Frequently Asked Questions
Can I switch from Undeposited Funds to a non-UF asset account later?
Yes, but it requires a clean migration. Delete all Acodei transactions from the old UF setup first, create your new holding account with an opening journal entry, then configure the integration to use the new account and resync. Mixing transactions from both approaches during the transition creates duplicate revenue and balance mismatches, so the delete-and-resync step is essential.
Which approach is "better"?
Neither is universally better. They optimize for different priorities. Undeposited Funds minimizes setup and reconciliation clicks. A non-UF asset account provides continuously accurate balance tracking and supports multicurrency invoicing. Pick based on your volume, complexity, and reporting needs.
Do I need a clearing account for Stripe fees?
Fees get recorded either as line items on sales receipts, as negative line items on bank deposits, or as separate expense entries, depending on your configuration. You do not need a dedicated "fee clearing account" because fees post directly to an expense account like Merchant Fees or Bank Charges. The holding account (UF or non-UF) handles the balance between gross revenue and net payout.
What happens if my Stripe balance and QuickBooks holding account balance do not match?
Under the non-UF approach, monthly balance comparison is part of the workflow. If the two diverge, the most common causes are manual journal entries that bypassed the integration, bank rules that intercepted Acodei-created deposits, or a missed transaction during initial backfill. Acodei provides audit trails tying each QuickBooks entry back to its Stripe transaction ID so you can trace discrepancies quickly.
How do I reconcile Stripe payouts in QuickBooks manually if I am not using an integration?
Manual reconciliation requires creating sales receipts for each Stripe sale, expense entries for each fee, refund receipts for each refund, and a bank deposit that ties to each payout. You also have to handle disputes, reserves, and multicurrency conversions by hand. For low-volume businesses (under roughly 30 transactions per month), this is feasible. Above that volume, an automated integration pays for itself quickly in time saved and errors avoided.
Does Acodei support both Real-Time Sync and Daily Summary?
Yes. Real-Time Sync creates QuickBooks entries as Stripe transactions occur. Daily Summary consolidates activity into one journal entry per day, which is recommended for high-volume accounts to avoid document clutter. The non-UF asset account approach works best with Daily Summary. Undeposited Funds works with either.
Get Your Stripe-to-QuickBooks Reconciliation Clean
Both approaches documented here are valid. The choice depends on your specific situation. If you want either approach implemented automatically without building the reconciliation workflow yourself, start a free trial of Acodei to see how it works on your actual Stripe data.
Automate your Stripe to QuickBooks sync
Save hours every month. Acodei automatically syncs your Stripe transactions, invoices, and payouts to QuickBooks Online.
How Acodei handles this in your stack
Stripe to QuickBooks Integration
Automatically sync Stripe payments, fees, refunds, and payouts to QuickBooks Online. Real-time, accurate, and audit-ready — no manual exports, no spreadsheets.
Advanced Product Mapping
Map unlimited Stripe products, variants, and bundles to QuickBooks with custom tax, discount, and shipping rules for accurate transaction posting.
Automated Invoice Sync
Generate and reconcile Stripe invoices in QuickBooks with full details, multi-currency, and attachments, eliminating double-entry and enabling audit-ready records.
Multi-Currency Mastery
Sync Stripe transactions across currencies with automatic exchange rate handling from Stripe or QuickBooks, currency-specific customer records, and invoice-level multicurrency for global sellers.
Class Mapping
Map Stripe products to QuickBooks classes for scalable categorization and multi-entity reporting, enabling precise insights without manual effort.
Historical Data Import
Backfill years of Stripe data into QuickBooks in minutes, preserving relationships and metadata for seamless continuity.
Related articles
Acodei Journal
Case Study: Migrating a High-Growth Company from a Failing Stripe to QuickBooks Integration
Acodei Content Team
Case Study: Migrating a High-Growth Company from a Failing Stripe to QuickBooks Integration
4/28/2026
Acodei Journal
Best Platforms for Complex Product Categorization in Stripe-to-QuickBooks Sync (2026)
Acodei Content Team
Best Platforms for Complex Product Categorization in Stripe-to-QuickBooks Sync (2026)
4/28/2026
Acodei Journal
The 5 Best Stripe to QuickBooks Sync Tools in 2026
Acodei Content Team
The 5 Best Stripe to QuickBooks Sync Tools in 2026
4/28/2026
Get more operational finance guides like this one
We will only send high-value product and finance content.