Connect Stripe to QuickBooks
Get Stripe into QuickBooks Online the way an accountant would: each payout recorded as a bank deposit that matches the real bank line, processing fees posted to a fees account, and sales and refunds booked as they happen. Every entry is an ordered run you can trace back to the Stripe object.
Why teams connect Stripe and QuickBooks
Money comes in through Stripe. The books are in QuickBooks. Without an integration, someone downloads the Stripe payout report each week and hand-enters a deposit, then guesses at the fee split, and the QuickBooks bank balance never quite matches the statement.
- Each Stripe payout is recorded as a bank deposit whose total equals the amount that actually hit the bank, so reconciliation is a one-click match
- Processing fees are posted to a Merchant Fees expense account automatically, not estimated at month-end
- Individual sales and refunds are booked as sales receipts and refund receipts, categorized by product where the metadata allows
- Every entry is an ordered run log, so a deposit that looks wrong can be traced to the exact payout and the balance transactions inside it
Worked example
The reconciliation flow most small teams turn on first.
Every Stripe payout recorded in QuickBooks as a bank deposit, fees split out
Triggered when Stripe settles a payout, idempotent on the payout ID.
- Trigger: Stripe
Event receivedforpayout.paid, carrying the payout ID,amount, andarrival_date. - Expand: list the balance transactions in the payout, each with
gross,fee,net, and atypeof charge, refund, or adjustment. - Idempotency: query QuickBooks for a deposit whose
PrivateNoteholds the payout ID. If one exists, stop. - Deposit: QuickBooks
Create depositto theStripe Clearingbank account, with a line per charge to a Sales Income account, and one negative line for total fees to Merchant Fees. - Note and date: set
PrivateNoteto the payout ID andTxnDatetoarrival_date. - Exceptions: any balance transaction of a type the mapping does not cover is posted to
#finance-reviewwith the payout link, rather than guessed at. - Sales detail (optional): a second flow on
charge.succeededbooks each charge as a QuickBooks sales receipt to Undeposited Funds, which the deposit then clears.
Field mapping
The starting map for the payout to QuickBooks Deposit step.
| Stripe | QuickBooks Online | Notes |
|---|---|---|
payout.id | Deposit.PrivateNote | Idempotency key. The flow queries for it before creating. |
payout.arrival_date | Deposit.TxnDate | Unix timestamp in Stripe. Date only in QuickBooks. |
| (fixed) | Deposit.DepositToAccountRef | The Stripe Clearing bank account, chosen once in setup. |
balance_txn.gross / 100 | Deposit.Line.Amount (positive) | One line per charge. Stripe amounts are integer cents; divide by 100. |
| (fixed) | Deposit.Line.AccountRef | Sales Income for charge lines, mapped by charge.metadata.product where present. |
sum(balance_txn.fee) / 100 | Deposit.Line.Amount (negative) | Single line to Merchant Fees. QuickBooks deposits allow negative lines for fees. |
balance_txn.type = "refund" | Deposit.Line.Amount (negative) | Refund lines net the deposit down so the total matches the bank. |
payout.currency | Deposit.CurrencyRef | Only set on a multi-currency company. Must match the bank account currency. |
What syncs, each direction
- Payout deposits. Each payout becomes a bank deposit whose total matches the bank line, with fees on a negative line. (Stripe to QuickBooks)
- Sales and refunds. Charges become sales receipts to Undeposited Funds. Refunds become refund receipts. Both are cleared by the deposit. (Stripe to QuickBooks)
- Customers. A first-time Stripe customer creates a QuickBooks customer, matched on email so a repeat buyer is not duplicated. (Stripe to QuickBooks)
- Disputes and adjustments. A dispute posts a journal entry to a disputes account, reversed on resolution. Balance adjustments post to a clearing account for review. (Stripe to QuickBooks)
Governance and audit
The same controls apply to this sync as to every other Neblex workload.
- Ordered run log. Every entry is an event log with the payout, its balance transactions, and the deposit or receipt it created. Replay without re-posting.
- Review queue. Unrecognized balance-transaction types, currency mismatches, and unmapped products queue for a person rather than posting a wrong line.
- Scoped access. Stripe uses a restricted API key with read on payouts, charges, and balance transactions. QuickBooks uses an OAuth grant to one company file.
- Environments. Build against Stripe test mode and a QuickBooks sandbox company, then promote the same flow to live and production.
Frequently asked questions
Will the QuickBooks bank balance match my statement?
Yes. The deposit total is the payout amount that actually arrived, with fees and refunds as negative lines, so it matches the bank line one to one.
Do I get every transaction, or just a summary?
Your choice. The default is a per-charge line inside each deposit. Turn on the sales-receipt flow for a full sub-ledger of individual sales and refunds.
How are fees handled?
A single negative line to a Merchant Fees expense account inside the deposit, so the fee expense is booked in the same period as the revenue.
What about a redelivered Stripe event?
The flow queries QuickBooks for a deposit tagged with the payout ID before creating one, so a redelivered payout.paid is a no-op.
Is this different from QuickBooks' built-in Stripe app?
The built-in app is fine for a very simple store. Teams move to this for the fee split, multi-product categorization, dispute handling, a readable run log, and the same governance as their other integrations.
Connectors on this page
Stripe
Payments
- Operations
- 589
- Typed outputs
- 99.7%
- Change triggers
- 10 (webhook)
- Authentication
- Bearer
QuickBooks
Accounting
- Operations
- 50
- Typed outputs
- 100%
- Change triggers
- Poll or inbound webhook
- Authentication
- OAuth2
Bring one real integration
We will build it with you against your own systems, with the run log open.