Stripe Payout Reconciliation Skill

Stripe says it paid you. Did the money land, and does it match your orders? Feed in the itemized payout report and your bank CSV and get every payout matched or flagged, disputes and reserves broken out, and a balanced entry per payout.

Stripe Payout Reconciliation Skill cover

What it catches

SituationCodeLevel
Stripe payout landed in the bank (exact amount, within the date window)matched
Payout with no bank depositmissing_deposithigh
Deposit a few cents or dollars off the payoutdeposit_amount_mismatchhigh
A line where net is not gross minus fee (a broken or edited export)net_identity_errorhigh
Chargeback / dispute withdrawn from a payoutdisputehigh
Same order charged twice the same day, no refundpossible_duplicate_chargehigh
Paid order with no charge in the file (needs --orders)order_without_chargehigh
Charged amount differs from the order totalorder_amount_mismatchhigh
Bank deposit from Stripe with no payout in the fileunexplained_processor_deposithigh
Funds held in reservereserve_holdnormal
Payout dated at the end of the bank filedeposit_in_transitinfo
Refund of a sale from an earlier periodrefund_without_charge_in_fileinfo

Proven on a labeled example

examples/northwind-october/ is a fictional coffee roaster's October in Stripe's own export format: 6 payouts, 18 lines, a bank statement and an orders export, with 12 planted situations (a missing deposit, a short deposit, a chargeback, a reserve hold, a double charge, an under-charged order, a paid order never charged, an unexplained deposit, a payout still in transit and a refund from September). expected.json labels the outcome a careful bookkeeper would reach; the tests assert the tool reaches exactly that in any row order, that every proposed entry balances, and that a fixed month exits 0.

What you get

Outputs in out/: payouts.csv (each payout, its status and bank line), exceptions.csv (review queue, highest priority first), journal.csv (proposed entries, balanced), report.md, summary.json. Exit 0 = every payout is accounted for; 1 = something blocks the reconciliation; 2 = an input problem (the message says which flag fixes it).

Real Stripe Payout Reconciliation Skill report and passing tests from the labeled example

Quick start

./run_tests.sh
python3 -m stripepayrec --payouts examples/northwind-october/itemized_payouts.csv --bank examples/northwind-october/bank.csv \
  --orders examples/northwind-october/orders.csv --name "Northwind Coffee" --out out/

Inputs

  • Stripe Dashboard > Reports > Payout reconciliation > Download > Itemized CSV (report type payout_reconciliation.itemized). Default columns are enough; order_id, customer_email and trace_id are used when present.
  • Any bank CSV with a date and either an amount column or debit/credit columns. Map unusual headers with --map-bank date="Posted" amount="Amt". Slash dates that could be US or EU are refused until you pass --date-format.
  • Optional orders/invoices CSV with an order number and total (Shopify orders export, WooCommerce, an invoice list).

Use it from your agent

  • Claude Code plugin: this folder is a plugin (.claude-plugin/plugin.json). Try it with claude --plugin-dir ./stripe-payout-reconciliation-skill, or add the folder to your own plugin marketplace.
  • Skill only: copy skills/stripe-payout-rec/ into ~/.claude/skills/ (or your agent's skills folder) and keep this folder where the agent can run python3 -m stripepayrec.
  • No agent: the CLI works on its own; --help lists every flag.

Honest limits

  • CSV exports only: no API connection, no login, no PDF statements.
  • One currency per run (--currency); no FX conversion.
  • Matching is exact on amount within a date window (default 5 days). A deposit that combines two payouts comes out as exceptions for a person to pair, not a forced match.
  • Automatic payouts only (Stripe can't itemize instant or manual payouts; neither can this kit).
  • possible_ codes are leads: check the order and the processor dashboard before refunding anyone.
  • It proposes entries; it never posts them. It is not accounting or tax advice.

Requirements

Python 3.9+ (tested on 3.10 and 3.13), no dependencies. Not affiliated with Stripe.

Format and license

Zip, 22 KB, v1.0, 17 files. Use and modify it for yourself and for clients you serve; no resale or redistribution of the kit itself. Full terms in LICENSE.txt.

FAQ

Does it connect to my Stripe account?
No; CSV exports only (no API key needed).
Instant payouts?
No; Stripe doesn't itemize them.
QuickBooks/Xero?
It writes journal.csv you can import or key in.
Does it post entries?
Never.
How do I get the files?
Right after payment, Stripe’s confirmation page shows your download link.
Refunds?
Email hello@youraitools.co within 14 days if it doesn’t work and we can’t fix it.
Can I pay with crypto?
Yes. Pay the same price in USDC or USDT on Base, Ethereum, Arbitrum, Optimism, Polygon or Solana from the "Pay with crypto" button, with no account or KYC. We check the payment on-chain and show your download links as soon as it confirms.

Get Stripe Payout Reconciliation Skill

Reconcile Stripe payouts to your bank: missing deposits, disputes, double charges and fees, plus proposed entries. Offline CLI + agent skill. $29.

Save with a bundle

Pairs well with

Download$29

Shopify Payments Payout Reconciliation Skill

Reconcile Shopify Payments payouts to your bank: missing deposits, disputes, double charges and fees, plus proposed entries. Offline CLI + agent skill. $29.

View Shopify Payments Payout Reconciliation Skill
Download$19

PayPal Payout Reconciliation Skill

Reconcile PayPal payouts to your bank: missing deposits, disputes, double charges and fees, plus proposed entries. Offline CLI + agent skill. $19.

View PayPal Payout Reconciliation Skill
Download$29

Three-Way Match Skill

Three-way match vendor invoices to POs and receipts: approve/hold queue, price and qty variances, duplicate invoices, GRNI accruals. Offline. $29.

View Three-Way Match Skill

Related