The Scenario
End of quarter. Your controller has sent a message: the Stripe balance transaction totals don't match the bank statement, and she needs the full transaction list for Q1 to trace the discrepancy. The bank reconciliation was supposed to be done last week.
You open Stripe's Balance section. You can see individual transactions but filtering by date range and downloading a complete export requires navigating to the Reporting section, selecting the right report type, waiting for it to generate, and downloading a CSV that lands with column names that don't match your existing reconciliation sheet.
The bad version:
- Download the balance transaction CSV from Stripe Reporting, open it in a separate tab, locate the columns for type, gross, fee, net, and description among the 15 others.
- Paste the relevant columns into the reconciliation sheet, reformat the date column, and discover that some transaction descriptions are truncated in the CSV export.
- Realise the CSV uses "charge" and "payout" as type values but the bank statement uses different labels, and spend another 30 minutes adding a mapping column.
The discrepancy the controller spotted may be small or it may be material — you won't know until the data is clean enough to compare. That matters more than it sounds at the end of a quarter.
The Easy Way: One Prompt in SheetXAI
SheetXAI is an AI agent that lives inside your Google Sheet. It connects to Stripe and pulls balance transactions directly, with the columns and date range you specify — no CSV, no reformatting.
Fetch all Stripe balance transactions from the last 90 days and write type, gross amount, fee, net amount, currency, and description into Sheet1
What You Get
- Sheet1 fills with one row per balance transaction: type, gross amount, fee, net amount, currency, and description.
- Amounts are in the currency's major unit (dollars, not cents).
- Dates are formatted as readable dates, not Unix timestamps.
- The full description is preserved — no truncation from a CSV export.
What If the Data Is Not Quite Ready
You want to separate charges from payouts into two tabs
Fetch all Stripe balance transactions from the last 90 days, write all transactions of type 'charge' into Sheet1 and all transactions of type 'payout' into Sheet2 — include type, gross, fee, net, and date on both sheets
You want a running total for cross-checking the bank statement
Export every Stripe balance transaction from this quarter into Sheet1 and add a running total of net amount in column G so I can compare the cumulative figure against the bank statement row by row
You only want to see the transactions the bank would show as individual deposits
Fetch all Stripe balance transactions of type 'payout' from the last 90 days and write payout ID, net amount, currency, and expected arrival date into Sheet1 — sort by arrival date ascending
The full kill chain — pull, separate, total, and flag anomalies in one shot
Fetch all Stripe balance transactions from Q1, separate charges and payouts into Sheet1 and Sheet2, add a running net total in column G on each sheet, and flag any transaction where the fee exceeds 5% of gross in column H
The pattern: the separation, totalling, and conditional flagging all happen in one ask rather than three separate formulas.
Try It
Get the 7-day free trial of SheetXAI and open any Google Sheet you use for financial reconciliation — then ask it to pull your Stripe balance transactions into the sheet. For related reads, see how to reconcile Stripe payout history against bank deposits or export paid invoices for revenue reporting.
