Quickstart
Features How It Works Formulas Pricing FAQ Docs Support Quickstart

Reconcile Stripe Payouts in Microsoft Excel

Three custom functions pull your own Stripe payouts, payout items and balance straight into the grid. A free template workbook matches those payouts against the bank statement you paste in. Your restricted, read-only Stripe key stays on your device.

๐Ÿช Coming soon to Microsoft AppSource ๐Ÿ”’ Read-only Stripe key ๐Ÿ“— Free template workbook

Runs in Excel on Windows and Mac (Microsoft 365) and in Excel on the web.

๐Ÿ”’ Key never leaves your device
ยฑ 3-day match window
Stripe Payout Reconciliation add-in icon Reconciliation
G4 =IF($A4="","",IF($D4=0,"UNMATCHED","Matched"))
Payout Arrival Amount Status
po_1Kaโ€ฆ7Qd 2026-06-02 1,240.50 Matched
po_1Kbโ€ฆ3Fz 2026-06-05 318.00 Matched
po_1Kcโ€ฆ9Lm 2026-06-09 2,905.75 UNMATCHED
3 Payouts
2 Matched
1 Unmatched

Payout Data in the Grid, Matching in the Workbook

Everything the add-in does, and nothing it does not: it reads your Stripe payouts and helps you tie them to your bank.

๐Ÿ“ฅ

Pull payouts with a formula

=STRIPE.PAYOUTS(from, to) returns your payouts for a date range as Payout ID, Arrival date, Amount, Currency, Status, Bank and Description. Rows come back oldest-first and spill down and to the right from the formula cell.

๐Ÿงพ

Open up a single payout

=STRIPE.PAYOUT_ITEMS(payoutId) lists the transactions behind one payout: Txn ID, Type, Description, Created, Gross, Fee, Net and Currency. Point it at a po_โ€ฆ id, for example from the first column of STRIPE.PAYOUTS.

โš–๏ธ

Check the balance

=STRIPE.BALANCE() returns Type, Currency and Amount, with one available row and one pending row per currency. Amounts arrive in major units, and zero-decimal currencies such as JPY are handled correctly.

๐Ÿ“—

A reconciliation template

A free workbook with four sheets. Pull your payouts, paste your bank statement, and every payout is flagged Matched or UNMATCHED with a summary block of counts and totals. Built from plain SUMPRODUCT formulas a bookkeeper can read and adjust.

๐Ÿ”’

A read-only key that stays put

You use a restricted Stripe key (rk_live_ or rk_test_) with Balance: Read and Payouts: Read. It is stored only in the add-in's local storage on your device, and the functions call api.stripe.com directly from your machine, so neither the key nor your payout data passes through Innova Apps servers.

โœ…

"Test my key" before you start

Four checks run in the task pane and stop at the first failure, each with the exact fix: the key format, that the key is valid and Balance: Read works, that Payouts: Read works, and a side-effect-free write probe. The probe tells you if the key you pasted can write, so you can go back to Stripe and recreate it read-only. The add-in itself never writes: it only issues GET requests for payouts, balance transactions and balance.

From a Restricted Key to Flagged Deposits

Five steps. The Stripe key is created by you, in your own Stripe account, with read permissions only.

1

Create a restricted, read-only key in Stripe

In Stripe, go to Developers → API keys → Create restricted key and grant Balance: Read and Payouts: Read. Optionally also grant read access to external payout accounts (bank accounts) so the add-in can show bank names next to your payouts.

Restricted keys start with rk_live_ or rk_test_ and Stripe shows them only once, so copy the whole key.

2

Paste the key into the task pane and test it

Sign in with your free Innova Apps add-in account, paste the key, and choose "Test my key." Four checks run and stop at the first failure, each explaining exactly what to change. Saving only accepts restricted keys, so secret keys (sk_) and publishable keys (pk_) are refused with an explanation, and the write probe tells you if the key you pasted can write so you can recreate it read-only.

The key is saved to this device only. "Forget key" removes it again, and you can revoke it in Stripe at any time.

3

Pull your payouts with a formula

Type =STRIPE.PAYOUTS(B1,B2) with your From and To dates in B1 and B2, or write the dates as text such as 2026-06-01. The results spill down and to the right, oldest-first, with amounts in major units and dates as yyyy-mm-dd text.

4

Paste your bank statement

On the Bank Import sheet of the template, paste three columns from your bank: Date, Description and Amount. The Date cells need to be real dates rather than text for the matching to work.

5

Read the flags

The Reconciliation sheet flags each payout Matched in green or UNMATCHED in red, and every bank deposit without a payout behind it is flagged "NO MATCHING PAYOUT" in amber on the Bank Import sheet. A summary block shows payouts listed, matched and unmatched counts, and the payouts, matched and unmatched totals.

Want the full walkthrough? Read the quickstart or the documentation.

The Reconciliation Workbook

Four sheets that take you from a date range to a list of deposits you still need to explain. Free to download, with no add-in account needed just to open it.

Start Here

Instructions

What to fill in, in what order, and what each sheet is for.

Payouts

Your Stripe payouts

From and To date cells, plus a pre-placed =STRIPE.PAYOUTS(B1,B2) that fills the sheet.

Bank Import

Your bank statement

Paste Date, Description and Amount from your bank. Deposits with no payout behind them are flagged here.

Reconciliation

The matching

Every payout flagged Matched or UNMATCHED, the match window in J1, and the summary block.

How the matching rule works

A payout matches a bank row when the two amounts agree to the cent and the bank date falls inside a match window you control, in cell J1 on the Reconciliation sheet. The default is ± 3 days, because deposits often land a day or two after the payout's arrival date.

The formulas are plain and auditable, SUMPRODUCT-based with no array-entry (CSE) formulas, so a bookkeeper can inspect them and change them.

Two things to keep in mind:

If the sheet shows #NAME?, the add-in is not loaded yet. Open the task pane once, then recalculate with Ctrl+Alt+F9 (Cmd+Alt+F9 on Mac).

โฌ‡ Download the template (.xlsx)

Direct .xlsx download. The workbook opens on its own; the =STRIPE.* formulas fill in once the add-in is installed and your key is connected.

Three Functions, Exact Columns

Amounts come back in major units, for example 123.45 rather than 12345, with zero-decimal currencies such as JPY handled correctly. Dates come back as yyyy-mm-dd text.

Payouts in a date range

=STRIPE.PAYOUTS(from, to, [includeHeader])

from and to are a date cell or text such as 2026-06-01. includeHeader defaults to TRUE. Rows are oldest-first and the results spill down and to the right from the formula cell.

Output columns, with one example row.
Payout ID Arrival date Amount Currency Status Bank Description
po_1Kaโ€ฆ7Qd 2026-06-02 1240.50 USD paid Bank โ€ขโ€ข4321 STRIPE PAYOUT

The transactions inside one payout

=STRIPE.PAYOUT_ITEMS(payoutId, [includeHeader])

payoutId is a po_โ€ฆ id, for example a cell from the first column of STRIPE.PAYOUTS. includeHeader defaults to TRUE.

Output columns, with one example row.
Txn ID Type Description Created Gross Fee Net Currency
txn_1Kaโ€ฆ2Bp charge Invoice 1042 2026-05-31 120.00 3.78 116.22 USD

Your current balance

=STRIPE.BALANCE()

Takes no arguments. The spill is one header row, then one available row and one pending row per currency you hold.

Output columns, with two example rows.
Type Currency Amount
available USD 4820.15
pending USD 1310.00

What You Need

Nothing to install on a server, and no bank credentials anywhere.

๐ŸชŸ
Excel on Windows

Microsoft 365

๐Ÿ’ป
Excel on Mac

Microsoft 365

๐ŸŒ
Excel on the web

In the browser

๐Ÿ’ณ
A Stripe account

Your own

๐Ÿ”‘
A restricted key

Read-only, created by you

๐Ÿ‘ค
An add-in account

Free, email and password

Free to Start, $19 a Month for Full History

The add-in itself is free to install. The plan only changes how far back you can pull and how many payouts come back at once.

Free
$0

Enough to reconcile a recent month and see whether the matching fits how you work.

  • The last 30 days of payouts
  • Up to 25 rows per formula, for payouts and for payout items alike
  • All three functions: PAYOUTS, PAYOUT_ITEMS and BALANCE
  • The reconciliation template workbook
Read the quickstart

Pro is billed through Stripe on Innova Apps' own Stripe account, not through Microsoft, and card details never reach Innova Apps servers. Paid upgrades are still being switched on; when they are, you start an upgrade from the Upgrade button in the task pane and cancel any time from "Manage billing" there.

Frequently Asked Questions

The questions people ask before they paste a Stripe key into anything.

๐Ÿ›ก๏ธ

Can the add-in move my money?

No. Saving only accepts restricted keys, so secret keys (sk_) and publishable keys (pk_) are refused with an explanation, and the fourth check in "Test my key" is a side-effect-free write probe that fails if the key you pasted can write, telling you to recreate it read-only. The add-in itself never writes: it only issues GET requests for payouts, balance transactions and balance, so it cannot create charges, issue refunds or move money.

๐Ÿ”‘

Where is my Stripe key stored?

Only in the add-in's local storage on your device. It is never sent to, stored on, or logged by Innova Apps servers, and the =STRIPE.* functions call api.stripe.com directly from your machine, so your payout data does not pass through our servers either. "Forget key" removes it from the device, and you can revoke it in Stripe.

๐Ÿ‘€

What exactly can the key read?

You create it with Balance: Read and Payouts: Read, which is what the three functions need. If you also grant read access to external payout accounts (bank accounts), the add-in can show bank names next to your payouts; without it the Bank column falls back to the raw destination id, such as ba_1Abc.... Nothing else is requested.

๐Ÿ”—

How does the matching actually work?

A payout matches a bank row when the amounts agree to the cent and the bank date falls inside the match window in cell J1 on the Reconciliation sheet, which defaults to ± 3 days. Two payouts of the same amount inside the window can match the same deposit, so the template asks you to verify those by hand, and one copy of the workbook assumes a single currency.

๐Ÿฆ

Does it connect to my bank?

No. There is no bank feed and no bank credentials involved. You paste Date, Description and Amount from your own statement onto the Bank Import sheet, and the workbook does the matching from there.

๐Ÿ–ฅ๏ธ

Which versions of Excel does it need?

Excel on Windows or Mac with Microsoft 365, or Excel on the web. You also need a Stripe account and a free Innova Apps add-in account (email and password) that is used for sign-in and plan status.

๐Ÿ“

What happens when I hit the Free limits?

Free covers the last 30 days and caps every formula at 25 rows, for STRIPE.PAYOUTS and STRIPE.PAYOUT_ITEMS alike, so a payout with more than 25 transactions behind it needs Pro. If a range is too wide you will see a message saying so; narrow the date range and pull in chunks, or move to Pro for full history and up to 1,000 rows per call.

โš ๏ธ

My formula shows #NAME? What now?

That means the add-in is not loaded yet. Open the task pane once, then recalculate with Ctrl+Alt+F9 (Cmd+Alt+F9 on Mac). If a payout stays UNMATCHED although it is on the statement, check that the bank Date cell is a real date rather than text, that the amount matches to the cent, and widen the window in J1 if the deposit lagged.

๐Ÿช

Where do I install it?

It is coming soon to Microsoft AppSource and is not on the store yet. In the meantime, read the quickstart to see the whole setup, or email support@innovaapps.ai about early access.

Tie Your Payouts to Your Bank Statement

Download the template today, and see the whole setup (restricted key, key test, first formula) in the quickstart. Coming soon to Microsoft AppSource.