Skip to main content

How to Merge Bank and Stripe CSVs into One Cash Flow Sheet

10 min readPipeSheets Team

If you run an online business, your money flows through multiple systems. Customers pay via Stripe, Stripe batches those payments into daily or weekly payouts, and those payouts appear in your bank account as cryptic 'STRIPE TRANSFER' entries. Understanding your actual cash flow requires combining data from both sources.

Why This Is Harder Than It Sounds

Bank and Stripe exports speak different languages. Banks use one date format, Stripe uses another. Banks show amounts with a currency symbol, Stripe splits each payment into gross, fee and net. Banks have cryptic descriptions, Stripe has detailed metadata. Before you can merge them, you need to normalize both datasets.

Data Format Differences

Common mismatches:

  • Dates: Bank uses MM/DD/YYYY, Stripe uses ISO timestamps
  • Amounts: Bank shows $99.00 as one figure, Stripe shows 99.00 gross, 3.17 fee and 95.83 net
  • Descriptions: Bank shows 'STRIPE TRANSFER', Stripe shows payment details
  • Time zones: Bank uses local time, Stripe uses UTC

Step 1: Export Your Data

Bank Statement Export

Log into your bank and download a CSV export of your transaction history. Most banks offer this in the account activity section. Choose a date range that covers the period you want to analyze.

Stripe Dashboard Export

In Stripe Dashboard, go to Payments > All payments and click Export. Select 'All columns' to get the most detail. Match the date range to your bank export.

Step 2: Clean Each File

Cleaning the Bank Statement

Bank exports often have header rows, footer summaries, and inconsistent formatting. You need to remove non-transaction rows, standardize the date format, and clean up the amount column to remove currency symbols.

Before:
Date,Description,Amount,Balance
*** Account Summary ***
01/15/24,STRIPE TRANSFER,$2847.33,$15432.10
01/14/24,ACH DEPOSIT,$1500.00,$12584.77
*** End of Statement ***

After:
Date,Description,Amount,Source
2024-01-15,Stripe Transfer,2847.33,Bank
2024-01-14,ACH Deposit,1500.00,Bank

Cleaning the Stripe Export

Stripe exports have many columns you don't need. Extract just the date from timestamps and keep only the columns relevant to cash flow. Check the amount unit too: Stripe's downloadable CSV reports use normal decimal amounts (10.00 for $10), while its API works in cents (1000), as Stripe's Reports API docs explain. If your file came from an API script or a connector and a $99 payment reads 9900, divide the amount columns by 100; if it reads 99.00, leave them alone.

Before:
Created (UTC),Amount,Fee,Net,Description,Status
2024-01-15 14:32:05,99.00,3.17,95.83,Payment for Invoice 123,succeeded

After:
Date,Description,Amount,Source
2024-01-15,Payment Invoice 123,99.00,Stripe

Step 3: Align the Columns

Before merging, both files need identical column structures. Rename columns to match, add a 'Source' column to identify where each row came from, and ensure date formats are identical.

Target structure for both files:
Date        | Description        | Amount  | Source
2024-01-15  | Stripe Transfer    | 2847.33 | Bank
2024-01-15  | Payment Invoice 123| 99.00   | Stripe

Step 4: Merge and Sort

Combine both cleaned files into one. In a spreadsheet, copy all rows from one file and paste them below the other, then sort by date. In PipeSheets, select both cleaned files on the Files page, choose Merge Files, pick Vertical (stack rows), and switch on Add Source File Column so every row records which file it came from. The Source column lets you filter to see just bank entries or just Stripe payments.

Understanding the Combined Data

Matching Stripe Payouts to Bank Deposits

Stripe batches payments and transfers them to your bank on a schedule (daily, weekly, or custom). The bank deposit amount should match the sum of Stripe payments minus fees. Use the combined view to verify these match up.

Finding Discrepancies

If your bank deposits don't match expected Stripe payouts, check for refunds, disputes, or timing differences. Stripe shows the payout date, but banks may take 1-2 business days to post the deposit.

Time saver: PipeSheets can do most of this for you. Upload both files, clean each with a saved cleanup, then stack them with Merge Files, previewing every change along the way. The matching itself is still a sort-and-compare job, covered in our Stripe payout reconciliation guide.

Advanced: Monthly Cash Flow Summary

Once you have clean, merged data, you can create monthly summaries. Group by month and source to see patterns: total Stripe revenue, total bank deposits, and any other income sources.

Try the automated solution

PipeSheets can fix these issues automatically. Create a free account to clean your first file.

Create a free account

Or see how it works: Merge Bank & Stripe Exports