Does Stripe integrate with QuickBooks Online?
Yes. Intuit lists its own Stripe connector app for QuickBooks Online, and Stripe has QuickBooks Online options of its own. They do not cover the same things, and what each covers can change, so check the current listing and plan before you rely on one (at the time of writing).
The connectors are quick to start and get Stripe activity into QuickBooks without retyping sales. What they leave to you is the part that trips most shops up: the gap between a Stripe payout and the bank deposit. That is covered below.
If you connect nothing, the manual route is to export Stripe’s Payout reconciliation report from the Dashboard under Reports, then record one entry per payout. That works for a few payouts. It gets slow once you have daily payouts, refunds and fees on every batch.
For the two sides of the link, see our Stripe integrations page and our QuickBooks integrations page.
What syncs from Stripe to QuickBooks?
The table below is the target mapping a correct sync should produce. It is not a claim about what any single vendor app does by default, so compare it with what your connector actually posts.
| Stripe data | Should land in QuickBooks as | Why the bank feed alone misses it |
|---|---|---|
| Charge (gross amount) | Sales income, split by product or location where known | The bank only sees the net payout, not the gross sale |
| Stripe processing fee | Merchant fees expense | Fees come out before the payout, so they never show as a separate bank line |
| Refund | Refund or contra-sales line, linked to the original sale | It reduces a later payout with no label |
| Dispute (chargeback) and dispute fee | Reduction of sales or a disputes account, plus fee expense | It shows up as a smaller deposit weeks after the sale |
| Sales tax collected | Sales Tax Payable (liability), by jurisdiction | It is mixed into the gross amount |
| Tips | Tips payable (liability) until paid out, not income | It is mixed into the charge |
| Gift card sale | Gift card liability until redeemed | It looks like an ordinary sale |
| Payout | Transfer from the clearing account to the bank, matched to the bank-feed line | This is the only item the bank feed shows |
| Foreign-currency charge | Sales in the home currency, with exchange gain or loss recorded separately | The deposit arrives in the settlement currency at a different rate |
| Subscription invoice | Revenue by invoice date or payment date, applied consistently | Retries and failed payments land on different dates |
Choosing between one entry per charge and one entry per day or payout is a real decision. A café with hundreds of small card charges usually wants a daily or per-payout summary. An online store with fewer, larger orders may want one entry per charge so each order can be traced. Either way, the summary has to split fees, refunds, tax and tips into their own accounts.
Why doesn’t my Stripe payout match the bank or QuickBooks?
Because the bank sees a net payout, and the books need the parts. Here is a simple case.
This is an illustrative setup, not a customer story.
- Charges in the period: 1,200.00
- One refund: 100.00
- Stripe fees: 38.50
- Payout to the bank: 1,061.50 (1,200.00 minus 100.00 minus 38.50)
If the books record only the 1,200.00 of sales, the bank line of 1,061.50 never matches. The 138.50 gap has two causes, and they belong in different accounts. The 100.00 is a refund, which reduces sales. The 38.50 is a fee, which goes to Merchant fees expense. Lumping them together is the most common reason a Stripe deposit stays unmatched for months.
The other places the numbers drift:
- Fees netted out of payouts. Without a Merchant fees account, fees either vanish or sit in a suspense account nobody clears.
- Refunds and disputes. A refund reduces a later payout. At the time of writing, Stripe generally does not return the original processing fee on a refund, so the fee stays as expense while revenue drops. A dispute pulls back the amount and adds a dispute fee, often weeks after the sale.
- Payout timing and the clearing account. A Friday sale can reach the bank days later, and month end falls in the gap. Sales belong to the period, but the cash does not yet. The clearing account (Undeposited Funds, or a clearing current asset you create) should roughly track Stripe’s pending and available balance. If it doesn’t, something is unposted.
- Multi-currency. When a customer pays in one currency and Stripe settles in another, the balance transaction carries an exchange rate, and the deposit is in the settlement currency. In QuickBooks Online, turning on multi-currency cannot be undone, so decide before you switch it on. Exchange differences belong in a gain or loss account, not in sales.
- Subscriptions and invoices. Stripe Billing creates an invoice, then a charge, and failed or retried payments can land weeks later. Pick one rule for revenue timing, and make sure the connector and any manual entry do not both post the same sale. Duplicates are the usual cause.
- Sales tax, tips and gift cards. Tax collected is a liability (Sales Tax Payable), not income. Tips are owed to staff until paid out. Gift card sales are a liability until redeemed. A feed that posts one ‘sale’ amount mixes all of these into revenue.
A check to run today: open the Payout reconciliation report for your latest payout, then tick each balance transaction against the bank line. If the gross, fee and net totals agree with the deposit, your payout is explained. If they don’t, the difference is your first thing to fix.
How does Pandaflow connect Stripe to QuickBooks?
Pandaflow sets up the Stripe sync on request. It is not a self-serve connector today.
Once it is running, the agent maps each Stripe balance transaction type to your chart of accounts: sales, Sales Tax Payable, tips, gift card liability, Merchant fees, refunds and the clearing account. It posts the entries and repairs the sync when Stripe or QuickBooks changes. Pandaflow can be deployed in its cloud or in yours.
Pandaflow is free to start. Paid plans are Lite at $79, Silver at $299 and Gold at $499 a month. See pricing for the current details.
How do I set it up, and what will I see once it’s running?
- Request setup from Pandaflow.
- Have a short call about what you sell and how your books are kept.
- Pandaflow builds the sync and tests it on real records.
- Go live. The agent keeps it running from there.
Have these ready for the call: your chart of accounts, how you file sales tax, whether you sell tips or gift cards, whether you sell in more than one currency or run subscriptions, and your current payout schedule.
What you should see afterward: a payout-by-payout match against the bank, the clearing account close to zero apart from pending funds, fees collected in a Merchant fees account, and exceptions flagged for you to review instead of being posted silently.
What can go wrong
- Duplicate entries if an old connector or a manual entry is still active for the same sales.
- A renamed account in the chart of accounts after go-live, which can break the mapping.
- Multi-currency turned on late, which is hard to unwind because it cannot be switched off.
- Disputes that arrive weeks later, so a payout that looked matched can change after the fact.