Clearmargin
GuidesPayouts & Reconciliation

Payouts & Bank Reconciliation

Clearmargin captures Stripe processing fees and groups payments by Stripe payout, so your reports match what actually hit your bank account.

Most freelance and accounting tools show you gross receipts — the total your clients paid — and leave you to reconcile Stripe processing fees yourself at tax time. Clearmargin does that reconciliation automatically.

What we capture

Every time Stripe settles a payment, we record:

  • Gross amount — what your client paid
  • Processing fee — the 2.9% + $0.30 (card) or 0.8% capped at $5 (ACH) that Stripe deducts
  • Net amount — what actually hit your Stripe balance
  • Balance transaction ID — links the payment to the exact Stripe payout that settled it

What you see

/dashboard/payouts — every bank deposit you've received, grouped by arrival date. Click a deposit to see:

  • The exact dollar amount that hit your bank
  • Every payment that settled in that deposit (client, invoice, gross, fee, net)
  • A reconciliation line: gross − fees − refunds = deposit amount

/dashboard/reports (Overview tab) — the Net Revenue chart shows gross, net, and the fee line, side-by-side over 12 months. Summary cards show gross, processing fees, net to bank, and payment count at a glance.

Tax exports — the CSV, QuickBooks IIF, QuickBooks Online CSV, and Tax Summary now all include Stripe fees as a real expense line (Schedule C line 10: "Commissions and fees"). The Tax Summary has a dedicated Payment Processing section: gross receipts before fees, fees paid, and the amount deposited to your bank.

Refunds, disputes, and chargebacks

  • Refund — when you refund a client, we capture whether Stripe returned the processing fee (some account settings keep it). The refund appears as a negative-amount Payment linked to the original, with the correct fee reversal recorded.
  • Dispute fee — the $15 Stripe charges for every dispute (win or lose) is recorded as its own dispute_fee Payment. If you win the dispute, a positive reversal Payment lands automatically.
  • Chargeback — the full charge-back is recorded as a negative Payment.

Automation

  • Webhook: subscribe to payout_paid and payout_failed at Settings > Webhooks.
  • Zapier: use the Payout Deposited and Payout Failed triggers.
  • Slack / Discord / Telegram: enable payout events in Settings > Notifications.

Backfill for existing data

If you have historical Stripe payments, run the one-time backfill to populate fee data across all of them: Settings > Exports > Backfill Stripe fees (owner only). This retrieves each payment's balance transaction from Stripe and populates gross/fee/net on both the Payment and its Receipt.

FAQ

Does this work without Stripe? Only Stripe payments show fee breakdowns — we can't capture fees for payments we don't see. Check, cash, bank transfer, and other methods still show as gross-only, which is correct (there's no processing fee to subtract).

What about Stripe's instant payouts? The 1% instant-payout fee is surfaced via the balance transaction, same as regular processing fees, and flows through to reports automatically.

I switched Stripe accounts. Will old payouts show up? Payouts are created going forward from when you connect Stripe. The backfill populates fee data on past Payments, but we don't synthesize historical Payouts from the Stripe API yet. Your existing reports will show the correct fees starting the month you run the backfill.

On this page