Stripe Reconciliation

Stripe Reconciliation
How to Reconcile Payouts, Invoices, and Fees to Your Ledger

A Stripe payout is one net number that hides charges, fees, refunds, and disputes for many invoices across two months. This guide breaks a real payout apart, shows the six places reconciliation goes wrong, and compares the ways teams fix it in QuickBooks and NetSuite.

Last updated: September 2026By Bailey Spell, Founder & CEO, LedgerUp

Stripe Reconciliation Definition

Stripe reconciliation is proving that each Stripe payout equals the sum of its underlying balance transactions (charges, fees, refunds, disputes, and transfers), and that every component is recorded correctly in the accounting system: gross charges applied to the invoices they paid, fees posted as an expense, refunds and disputes posted against the original invoices, and the net payout matched to the bank deposit. It is done per payout, not per bank statement.

Anatomy of a Stripe payout

One deposit on the bank statement. Five things that have to be recorded, in four different places.

Payout lineAmountWhere it belongs
Charges (gross)$12,640.00Nine invoice payments. This is the revenue-side number: it should be applied to invoices in full.
Processing fees($394.36)Deducted per charge before payout. Post to a fees expense account, never net against revenue.
Refunds($1,200.00)One refunded invoice. Credit memo or refund receipt against the original invoice and customer.
Dispute and dispute fee($835.00)A $820 chargeback plus the $15 fee. Reopen the invoice balance, post the fee, track through resolution.
Net payout to bank$10,210.64The only number your bank feed sees. The reconciliation is proving the four lines above add up to it.

Where Stripe reconciliation goes wrong

None of these produce an error. They produce books that are slightly wrong every month and a clearing account that never quite zeroes.

1

Recording the net deposit as revenue

The bank shows $10,210.64, so that is what gets booked. Revenue is understated by fees, refunds, and disputes, and the nine invoices stay open in AR. This is the most common Stripe reconciliation error and it compounds every payout.

2

Importing charges as new sales instead of payments

Most native and marketplace syncs create a sales receipt per Stripe charge. If the sale was already invoiced from QuickBooks or NetSuite, revenue is now counted twice and the original invoice is still outstanding.

3

One payout, many invoices, and partial payments

A single payout can carry a customer paying two invoices with one card, another paying half of one, and a third overpaying. Matching by total amount fails; the match has to happen per charge with the invoice reference or customer and amount.

4

Timing across the period boundary

A charge on the 30th pays out on the 2nd. Revenue and the receivable belong to the month of the charge; the cash belongs to the next month. Reconciling only from bank deposits gets the cut-off wrong every month end.

5

Disputes that resolve weeks later

A chargeback pulls money out of one payout, and a won dispute returns it in a payout 45 days later. Without tracking the dispute as its own object, the reversal shows up as unexplained income.

6

Multi-currency and Stripe Connect

Foreign-currency charges settle at Stripe's conversion rate, creating FX differences. Connect platforms add application fees and transfers to the payout. Both need their own lines or the payout never ties.

How to reconcile a Stripe payout

The same six steps whether you do it by hand, with a connector, or with Ari. The difference is who does them and when.

1

Start from the payout, not the bank line

Pull the payout and its balance transactions from Stripe (the payout reconciliation report or the API). Each balance transaction carries the gross amount, fee, net, type, and the source charge, refund, or dispute.

2

Match each charge to an open invoice

Use the invoice ID in Stripe metadata where it exists, then customer plus amount, then payment history. Apply the gross charge as a payment on the invoice. Flag anything without a confident match instead of posting it.

3

Post fees, refunds, and disputes separately

Fees go to a fees expense account. Refunds become credit memos or refund receipts against the original invoice. Disputes reopen the invoice balance and post the dispute fee; track each dispute to resolution.

4

Record the net deposit to the Stripe clearing or bank account

The deposit equals the payout net. Match it to the bank feed line. If you use a Stripe clearing account, it should return to zero after every payout.

5

Handle cut-off and FX

Charges and receivables are dated by the charge; cash is dated by the payout. Post FX gain or loss for non-base-currency charges at Stripe's settled rate.

6

Review exceptions before close, not after

Unmatched charges, partial payments, and disputes should be resolved the day they land. A month-end exception list is a sign the process runs too late.

Five ways teams reconcile Stripe, compared

The right answer depends on whether your invoices originate in Stripe or in your accounting system.

ApproachInvoice matchingFeesExceptionsBest for
Manual from Stripe reportsBy hand per chargeManual journal entryWhatever gets noticedUnder 20 payouts a month
Native QuickBooks Stripe importCreates sales receipts, does not match invoicesRecorded, revenue often netPosted anyway or skippedEcommerce with no open invoices
Sync connectors (Synder, A2X, and similar)Rule-based, needs mapping upkeepConfigurableError queue inside the toolBookkeeping firms, ecommerce
iPaaS (Celigo, Workato, custom scripts)Whatever you buildWhatever you buildWhatever you buildTeams with an integration engineer
LedgerUp (Ari)Per charge to the existing invoice, grossPosted to expense, deposit matches bankRouted to Slack for one-click decisionsB2B SaaS invoicing from QuickBooks or NetSuite, collecting through Stripe

How LedgerUp reconciles Stripe

Ari reconciles every payout the day it lands, posts each component where it belongs in QuickBooks or NetSuite, and asks in Slack when it is not sure. Paid invoices drop off the collections queue the same minute.

A $9,420 payout reconciles 14 invoices and posts $283 of fees in seconds. The net $9,137 deposit matches the bank feed line exactly, and the two charges Ari could not match with confidence are waiting in Slack with the candidate invoices already attached.

Stripe Reconciliation FAQ

What is Stripe reconciliation?

Stripe reconciliation is proving that every Stripe payout equals the sum of its underlying charges, fees, refunds, and disputes, and that each of those components is recorded correctly in your accounting system: charges applied to the invoices they paid, fees posted as an expense, refunds and disputes posted against the original invoices, and the net payout matched to the bank deposit.

Why does my Stripe payout not match my invoices?

Because a payout is a net number. Stripe deducts processing fees per charge, subtracts refunds and disputes that happened since the last payout, and pays out the remainder, usually on a rolling schedule two to seven days after the charge. A payout can also contain charges for several invoices, partial payments, and charges from the previous month. Reconcile from the payout's balance transactions, not from the deposit amount.

How should Stripe fees be recorded in accounting?

Record the gross charge as the payment on the invoice, and post the fee to a processing fees expense account. The net deposit then matches the bank feed. Recording only the net amount as revenue understates revenue and expenses by the same figure, which distorts gross margin and leaves invoices partially open.

How do I reconcile Stripe in QuickBooks Online?

For each payout: receive payments on the matched invoices at the gross charge amounts into a Stripe clearing account, post the fees as an expense from the clearing account, record refunds as credit memos or refund receipts, then transfer the net payout from clearing to the bank and match it to the bank feed line. The clearing account should return to zero. LedgerUp automates this end to end; see the Stripe to QuickBooks page.

How do I reconcile Stripe in NetSuite?

The same logic applies with NetSuite objects: customer payments applied to invoices, a journal entry for fees to the correct GL account, credit memos for refunds, and a deposit record for the net payout matched in bank reconciliation. Multi-subsidiary and multi-currency setups need the payout routed to the right subsidiary with FX gain or loss posted. See the Stripe to NetSuite page for the automated version.

What does Stripe provide natively for reconciliation?

Stripe provides the balance transactions API, payout reconciliation and balance summary reports in the Dashboard, and accounting integrations that export transactions. These give you the data. They do not match charges to invoices that were created in your accounting system, decide how fees and disputes should be posted in your chart of accounts, or resolve ambiguous cases.

How often should Stripe be reconciled?

Per payout, which usually means daily. Reconciling at month end means a month of exceptions to work through at the worst possible time and receivables that looked overdue in collections when they were actually paid weeks earlier.

How does LedgerUp automate Stripe reconciliation?

Ari receives each payout event, splits it into charges, fees, refunds, and disputes, matches each charge to the open invoice in QuickBooks or NetSuite, posts fees and adjustments to the right accounts, records the net deposit to match the bank feed, and sends a Slack summary. Anything it is not confident about is routed to Slack for a one-click decision, and it never posts on a guess. Because Ari also creates invoices and runs collections, paid invoices come off the collections queue the moment the payout lands.

Stop babysitting billing ops.

Let Ari run contract-to-cash for your team.

Book a demo →