Integration

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.

Stripe to QuickBooks
Direction
On payout, typically daily
Latency
payout.paid
Common trigger
Template, then pick the accounts
Setup

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.

  1. 1Trigger: Stripe Event received for payout.paid, carrying the payout ID, amount, and arrival_date.
  2. 2Expand: list the balance transactions in the payout, each with gross, fee, net, and a type of charge, refund, or adjustment.
  3. 3Idempotency: query QuickBooks for a deposit whose PrivateNote holds the payout ID. If one exists, stop.
  4. 4Deposit: QuickBooks Create deposit to the Stripe Clearing bank account, with a line per charge to a Sales Income account, and one negative line for total fees to Merchant Fees.
  5. 5Note and date: set PrivateNote to the payout ID and TxnDate to arrival_date.
  6. 6Exceptions: any balance transaction of a type the mapping does not cover is posted to #finance-review with the payout link, rather than guessed at.
  7. 7Sales detail (optional): a second flow on charge.succeeded books 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.

StripeQuickBooks OnlineNotes
payout.idDeposit.PrivateNoteIdempotency key. The flow queries for it before creating.
payout.arrival_dateDeposit.TxnDateUnix timestamp in Stripe. Date only in QuickBooks.
(fixed)Deposit.DepositToAccountRefThe Stripe Clearing bank account, chosen once in setup.
balance_txn.gross / 100Deposit.Line.Amount (positive)One line per charge. Stripe amounts are integer cents; divide by 100.
(fixed)Deposit.Line.AccountRefSales Income for charge lines, mapped by charge.metadata.product where present.
sum(balance_txn.fee) / 100Deposit.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.currencyDeposit.CurrencyRefOnly 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
See it on your data

Bring one real integration

We will build it with you against your own systems, with the run log open.