Quick overview
Stripe pays me in lumps and my invoice sheet lists single amounts, so I built this to do the matching every Monday. It opens each payout and pairs the charges inside it with your invoices. Each line gets a verdict in a report tab. I only read the exceptions.
How it works
- A schedule fires every Monday morning, and one Settings node holds everything you would ever change.
- The workflow fetches recent paid payouts inside your lookback window.
- It opens each payout to list the balance transactions behind it, then reads your invoice ledger once.
- My matcher pairs those lines to invoices on a reference first, and falls back to an exact amount inside a date window where there is none.
- A tolerance in pence stops a rounding difference from being reported as a fault, and every verdict lands in your report tab beside its payout ID.
- When something fails to match and the summary is switched on, a Gmail draft is written for you to read before anyone sends it.
Setup
- Import the workflow, then add a Stripe credential. The two HTTP Request nodes use it as a predefined credential type, so there is no key to paste anywhere.
- Add a Google Sheets credential and point both sheet nodes at your ledger document.
- In Settings, swap every placeholder for your own values, and make sure the column names match your ledger exactly.
- Give the report tab the headers listed on the canvas note beside the report node.
- I would run it once by hand and read the report before switching the schedule on. Gmail is optional, so add it only if you want the exceptions draft.
Requirements
- You need an n8n instance, cloud or self hosted. Stripe read access and a Google account for Sheets cover the rest. Gmail is optional, and I only use it for the summary draft when something failed to match.
Customization
- If your invoices live in Airtable or Postgres, swap the Google Sheets nodes and the rest keeps working. I kept the matcher to one Code node with its rules in plain view at the top, so widening the date window or matching on a customer name is a single edit. The summary stays a draft until you change that node on purpose.
Additional info
The download carries a START-HERE guide and a TESTED note that says exactly what I checked before shipping it. The headers your report tab needs are on the canvas note beside the report node.