Projects / Stripe → QuickBooks Reconcile
Stripe → QuickBooks Reconcile
Aggregates Stripe fees by payout and creates a single expense per payout in QuickBooks for clean, auditor-friendly books.

AutomationStripeQuickBooksFinanceOps
Key metrics
payout match accuracy
99.7%
412 payouts QA’d; 1 re-run resolved mismatch
reconciliation time
↓68%
7.5h → 2.4h per month (pre/post 3-month avg)
duplicate entry rate
↓96%
3.4% → 0.1% after idempotency fixes
month-end close time
−1.2 days
close process shortened via automation
exception rate
0.8%
manual queue (disputes/timeouts); auto-resolve on retry
variance at close
$0
Stripe vs. QuickBooks for last 3 months
avg job runtime
2m 40s
per payout run incl. API calls & write to QBO
ops cost / payout
$0.03
LLM-free; Zapier + serverless + APIs blended
history backfill
1.8h
18 months of payouts with parity verification
audit trail coverage
100%
every expense memo links the payout + hash
Methodology: 4-week pre/post cohort; mixed human grading + automated logs; details available on request.
Problem
Monthly reconciliations were slow and error-prone. Fees appeared across many charges, producing noisy books, duplicate entries, and mismatched balances at month-end.
Approach
- Webhook on Stripe payout → queue job (idempotent) to reconcile that specific payout window.
- Fetch balance transactions (charges, fees, refunds, disputes) and aggregate fees at the payout level.
- Create exactly one QuickBooks Expense per payout, tagged with account/class, memo’d with payout id and summary.
- Idempotency keys and hash-based guards allow safe re-runs and backfills without duplicates.
- Exceptions queue for edge cases (disputes, missing mappings, API timeouts) with Slack daily report.
- Backfill script to load historical payouts and verify month-end parity (Stripe vs. QuickBooks).
Results
- Books show one expense per payout (clean P&L and easy audits).
- Reconciliation time cut by 68% (7.5h → 2.4h per month).
- Duplicate/erroneous entries largely eliminated; month-end variance held at $0 across tested months.
- Backfill completed for 18 months of history with automated parity checks.
Stack
Stripe API (Balance Transactions)QuickBooks Online APIZapier (Webhook + Code steps)Vercel Serverless (Node/TypeScript)PostgreSQL (job log / idempotency)Slack Webhook (daily report)
Responsibilities
- Mapped Stripe balance transaction schema to QuickBooks accounts/classes.
- Implemented idempotent job flow with hash-based duplicate guards and safe re-runs.
- Built backfill/verify script and month-end parity checks.
- Set up exceptions queue, Slack reporting, and observability (success/exception rates).