How do I reconcile Stripe payouts independent of which ERP I use?
Every Stripe payout is backed by BalanceTransaction records — one per charge, fee, refund, or adjustment that makes up the net payout amount. Reconciling a payout means listing its BalanceTransactions by payout ID and summing them by type, a mechanic that's identical regardless of which ERP or accounting system receives the result.
Part of the finance integrations guide.
| What backs every payout | BalanceTransaction records, one per underlying charge, fee, refund, or adjustment |
|---|---|
| How to list them | List BalanceTransaction, filtered by payout=po_xxx |
| Common types | charge, refund, stripe_fee, payout (the transfer itself) |
| What this doesn't cover | Manual payouts — Stripe can't identify which transactions are in a manually triggered payout, so those need reconciling by hand |
What a payout ID actually points to
Retrieving a Payout object by itself only returns its properties — id, amount, currency, status — not the individual transactions that make up that total. The itemized detail lives in BalanceTransaction records instead, one per funds movement, each carrying a payout field that links it back to the specific payout it was included in.
Listing the transactions that make it up
A List BalanceTransaction call filtered by payout=po_xxx returns every transaction included in that payout, each with a type field — charge for a customer payment, refund for money returned, stripe_fee for Stripe's own fees, and dozens of narrower types for adjustments, disputes, and currency conversions. Passing expand[]=data.source on the same call pulls the underlying Charge or Refund object for each transaction in the same response, without a second round of API calls.
Why this is the same regardless of ERP
Everything up to this point — listing the BalanceTransactions for a payout and summing them by type — happens entirely on Stripe's side, before any of it touches NetSuite, Sage Intacct, QuickBooks, or anything else. The specific pain of mapping that itemized detail into a particular ERP's bank-deposit or journal-entry shape is a separate, ERP-specific problem; unbundling the payout itself into its component charges, fees, and refunds is not, and doesn't need to be re-solved for every accounting system a workflow might write to.
Next step
Map the finance workflow with the most exposure and prove the automation path.
Bring the invoice, contract, payment reconciliation, or customer finance workflow you have to defend at audit. Loopfour can map the trigger, controls, integrations, and approval loop.
Worked example
An $8,000 payout broken into its components
A payout of $8,000 lands in the bank. Retrieving the Payout object alone returns just that total and a status of paid — nothing about what it's made of. Listing BalanceTransactions filtered by that payout ID returns, for example, $8,340 across 41 charge transactions, -$210 across 3 refund transactions, and -$130 across stripe_fee transactions, netting to the $8,000 that actually settled. That breakdown is identical whether the workflow downstream writes to NetSuite, Sage Intacct, or QuickBooks — only what happens after this point differs by ERP.
Frequently Asked Questions
Sources
Related
Topic
Payment Reconciliation & Cash Application
Payment reconciliation is the process of proving that every dollar that hit your bank account is accounted for somewhere in your books — matched to a deposit, a payout, an invoice, or an explained var…
Read moreIntegration
Why don't my Stripe payouts tie to the NetSuite bank deposit?
A Stripe payout rarely equals one NetSuite deposit line: Stripe nets many charges, fees, and refunds into one transfer settled days later. Check, in order: the payout isn't unbundled into individual charges, the deposit date doesn't match the transaction date, fees are netted not booked separately, a partial capture created a variance, or the payout is still in Undeposited Funds.
Read moreTopic
Integrations
Every finance automation vendor publishes an integrations page: a grid of logos, a claim of "seamless" connectivity, and not much else. That page answers a marketing question — does this vendor touch…
Read moreDiagnostic
What breaks when there's no dedicated NetSuite payment action for Stripe reconciliation?
NetSuite has a dedicated Customer Payment record for applying payments to invoices, but Loopfour's NetSuite integration doesn't expose it as an action — matching a Stripe payout to NetSuite has to go through generic record search and create calls or SuiteQL instead of a purpose-built payment step, unlike Sage Intacct, QuickBooks, or Xero.
Read more