← Blog
Stripe Reconciliation 7 min read

Stripe Reconciliation Checklist for Month-End Close

A step-by-step checklist for reconciling Stripe with your bank and general ledger at month-end. Covers payouts, fees, refunds, disputes, and in-transit items.

This is the reconciliation checklist we recommend for any business processing payments through Stripe. It covers the common failure points — timing gaps, fee netting, refunds, and disputes — and produces a clean reconciliation you can hand to your accountant or auditor.

If you need context on why these steps exist, read the full Stripe-QBO reconciliation guide first. If specific numbers don’t match, why payouts don’t match bank deposits covers the six root causes.

Run this at month-end close or, better, weekly.

Before you start

Gather these three data sources for the reconciliation period:

SourceWhere to get itKey fields
Stripe balance reportDashboard → Balance → Download (or API)Payout ID, amount, date, status, balance transactions
Bank statementBank portal or QBO bank feedDeposit amount, posting date, reference
General ledgerQBO P&L + balance sheet trial balanceRevenue, Stripe fees, refunds, clearing account

You need all three. Stripe-to-bank reconciliation tells you the cash is correct. Stripe-to-GL reconciliation tells you the books are correct. They’re different exercises.


Part 1: Payout reconciliation (Stripe → Bank)

This confirms that every dollar Stripe sent actually arrived at your bank.

1.1 — List all Stripe payouts for the period

Pull every payout with a creation date in the period. Record:

  • Payout ID
  • Amount
  • Creation date
  • Expected arrival date
  • Status (paid, pending, failed)

1.2 — List all bank deposits from Stripe

From your bank statement, identify every deposit originating from Stripe. Record:

  • Deposit amount
  • Posting date
  • Reference (payout ID if available)

1.3 — Match payouts to deposits

For each Stripe payout, find the corresponding bank deposit. Match on:

  • Amount: Exact match (to the penny)
  • Date: Bank posting date within 1-3 business days of Stripe creation date

Mark each pair as matched.

1.4 — Identify in-transit items

Payouts created in the last 2-3 business days of the period may not have arrived at the bank yet. These are in-transit items — they’ll appear in next period’s bank statement.

  • Each in-transit payout has status “paid” or “in_transit” in Stripe
  • Total in-transit amount is reasonable (typically 1-3 days of payouts)
  • Last month’s in-transit items cleared this month

1.5 — Investigate unmatched items

Any Stripe payout without a bank match (and not in-transit) needs investigation:

  • Failed payouts: Check Stripe status. Failed payouts are retried automatically — look for a retry.
  • Amount mismatch: Could indicate a fee adjustment or dispute deduction included in the payout.
  • Missing deposit: Contact your bank. Rare, but ACH failures happen.

Any bank deposit without a Stripe match also needs investigation:

  • Non-Stripe payments miscategorized
  • Duplicate deposits
  • Test transactions

1.6 — Confirm totals

Total Stripe payouts (period)
+ In-transit payouts (prior period, now cleared)
− In-transit payouts (current period, not yet cleared)
= Total bank deposits from Stripe (period)
  • This equation balances

Part 2: Revenue reconciliation (Stripe → GL)

This confirms that revenue in your books matches what Stripe processed.

2.1 — Pull gross charges from Stripe

Sum all charges (successful) for the period. This is your gross revenue from Stripe.

Include:

  • One-time charges
  • Subscription invoices
  • Connect direct charges (if applicable)

Exclude:

  • Failed charges
  • Uncaptured authorizations

2.2 — Pull revenue from GL

Run a P&L for the period. Pull the total from your Stripe revenue account(s).

2.3 — Compare

  • Stripe gross charges = GL revenue (within tolerance)

If they don’t match, common causes:

  • Charges not synced to accounting system (sync lag or failure)
  • Manual journal entries adjusting revenue
  • Revenue recorded on a different date basis (charge date vs. deposit date)
  • Multi-currency FX differences

2.4 — Reconcile refunds

Sum all refunds in Stripe for the period.

  • Stripe refunds = GL refund/contra-revenue entries
  • Refunds are recorded in the correct period (refund issue date, not original charge date)

2.5 — Reconcile fees

Sum all Stripe fees for the period (from balance transactions or fee report).

  • Stripe fees = GL Stripe fees expense

If you’re on monthly fee billing:

  • Prior month’s fee invoice has been recorded
  • Current month’s fee accrual is booked (if accrual basis)

2.6 — Reconcile disputes

List all disputes opened and resolved in the period.

  • Dispute debits recorded (chargeback amounts)
  • Dispute credits recorded (won disputes refunded)
  • Net dispute impact matches Stripe’s dispute report

Part 3: Balance sheet check

3.1 — Stripe balance

Check your Stripe available + pending balance at period end.

  • Balance is reasonable (typically a few days of charges)
  • No unexpected holds or reserves

3.2 — In-transit reconciliation

  • In-transit payouts (from 1.4) are documented as reconciling items
  • They clear in the first few business days of the next period

3.3 — Clearing account (if used)

If you use a Stripe Clearing account:

  • Clearing account balance = in-transit payouts + any unreconciled items
  • Clearing account is not growing month over month (indicates items not clearing)

Summary sign-off

After completing all three parts:

  • Payout reconciliation balances (Part 1.6)
  • Revenue matches (Part 2.3)
  • Refunds match (Part 2.4)
  • Fees match (Part 2.5)
  • Disputes match (Part 2.6)
  • Balance sheet items documented (Part 3)
  • All exceptions investigated and resolved or documented

Save the reconciliation workbook, the Stripe reports, and the bank statement together. If you’re audited, this is what they’ll ask for.


Why tools fail here

Stripe can export its side of the data. Your bank can export its side. QuickBooks can export its side. But the reconciliation is the comparison between them — and none of these systems produces that comparison for you.

That’s why most teams still do this in a spreadsheet: VLOOKUP the payout ID, check the amount, flag the exceptions. It works, but it’s manual, error-prone, and produces no verifiable proof that it was done correctly.

A reconciliation control automates the comparison: pull from all three sources, match on keys, compare amounts, and produce a signed exception report. You review the exceptions and sign off. The matching — which is 90% of the work — happens automatically.

Generate your Stripe reconciliation pack →

Upload your Stripe payout report, bank deposit CSV, and QBO export. Get back a matched/unmatched list, variance summary, in-transit items, and a signed proof — in 60 seconds. Print it, save it, hand it to your auditor.

Troubleshooting

Stripe deposit not matching QuickBooks

Most common cause: you’re comparing the net payout (bank deposit) to the gross entry (QBO). They should differ by the fee amount. If the gap doesn’t equal fees, check for refunds or disputes included in that payout. See Part 2.3 above.

Stripe payout missing in bank

If the payout is fewer than 3 business days old, it’s likely in transit. Check Stripe Dashboard → Payouts for the payout status. “Paid” means ACH was submitted. “Failed” means it’ll be retried. See Part 1.5.

Clearing account balance keeps growing

Items are entering the clearing account (payout created) but not leaving (bank deposit matched). Investigate each item — look for failed payouts, mismatched amounts, or deposits miscategorized in your bank feed.

Reconciliation passes but P&L is wrong

The payout reconciliation (Stripe → Bank) can pass while the revenue reconciliation (Stripe → GL) fails. Check Part 2 separately. Common issue: manual journal entries that adjust revenue without a corresponding Stripe event.

FAQ

What data do I need to reconcile Stripe?

Three exports: (1) Stripe balance/payout report for the period, (2) bank statement showing Stripe deposits, (3) general ledger P&L showing revenue, fees, and refunds. See the Before you start table above.

How often should I run this checklist?

Monthly at minimum. Weekly is better — it keeps the exception list short and investigation fresh. Daily is ideal and achievable with automation, since the logic is entirely deterministic.

Can I skip Part 2 (revenue reconciliation)?

Only if you have a reliable automated sync between Stripe and QBO (e.g., Synder, PayTraQer) and you trust it completely. Even then, run Part 2 quarterly as a validation check. Sync tools fail silently more often than you’d expect.

What if I have too many exceptions to investigate?

If your unmatched list is long (more than 10% of transactions), the root cause is usually systemic: a sync integration that’s failing, a changed payout schedule, or a recording method that doesn’t match your Stripe configuration. Fix the systemic issue first, then reconcile.

Is this checklist sufficient for an audit?

This checklist covers the standard reconciliation controls an auditor would expect for payment processing. Save the completed checklist alongside your source data (Stripe export, bank statement, GL report) as a reconciliation package. For SOC 2 or financial statement audits, you may also need evidence of who performed the reconciliation and when — a signed proof automates that.

Generate your Stripe reconciliation pack →