Skip to main content
2,200+ contractors in the research universe benchmarked. Do you know your gross profit per labor hour? See where you stand →
Level

Software and accounting guide

Stripe: payments, refunds, payouts and accounting

Stripe provides payment processing and billing products. Its transaction and payout records help businesses explain how customer payments become bank deposits.

By Sam Yang · Updated

How Stripe supports the workflow

Who this guide is for: Owners and finance teams accepting payments or collecting invoices through Stripe.

Everyday uses

  • Accept customer payments through the Stripe products in use.
  • Follow payment, refund and fee records.
  • Explain payouts sent to the receiving bank account.

How it connects to accounting: A customer charge is not the same record as a bank payout. Charges, refunds, fees and availability timing affect the money transferred. The accounting review connects these records to the bank deposit without treating the net payout as gross sales.

How to connect it and get the records you need

A built-in connection transfers the records its vendor supports. An API lets software read or exchange specific records directly. Browser automation may use the screens and reports your role can access when a direct connection leaves a gap. Its coverage and reliability need checking for the specific workflow. Start with the options available in your account, then check what actually reaches your books.

Supported API

Use Stripe’s documented balance transactions and related payment records. Keep the transaction ID, source and currency. Amounts use the currency’s smallest unit, such as cents for US dollars. Convert each amount using its own currency’s unit.

Native reconciliation reports

Use the payout reconciliation report to compare an automatic payout with the transactions included in it. Check whether the report supports your payout arrangement; manual and instant payouts need different checks.

Browser assistance

Inspect an unresolved payment, refund or payout and its source link. Confirm the underlying record rather than relying on a summary status alone.

Start here: Select one payout and trace its component transactions to the bank deposit before investigating a cash difference.

Integration options and their limits

An API gives software direct access to supported records. Native reports are the files and reports available inside the product. Browser automation collects through the screens you can access. Choose the route that supplies the missing records, then check that it covers the accounts and dates you need. Reports may contain filters or omit rows. Browser work depends on permitted account access and can fail when screens change. Check record IDs, counts and dates whichever route you use.

Supported API

What it supplies
Stripe’s BalanceTransaction record identifies activity affecting its balance. Its documented fields include id, source, amount, fee, net, currency, created and available_on. The last two fields distinguish when the record was created from when funds become available. Amounts use the smallest currency unit, such as cents for US dollars; net equals amount minus fee.
What to check first
Check the account, product, permissions, all pages of results and which transactions belong to each payout. Records for a Payments balance do not establish Financial Account coverage.

Choose it when: You need recurring transaction downloads with verified access to the right account and product.

Native export

What it supplies
Stripe documents an automatic-payout reconciliation report. Reconciliation here means comparing the payout with the transactions included in it; the report provides transaction-level breakdowns.
What to check first
The report is generally unavailable for manual payouts, except for a platform with automatically paid Connected Accounts. For manual payouts, including instant payouts, the user controls the timing and amount, so Stripe cannot identify a transaction batch for each payout. Verify the actual account setup.

Choose it when: You need Stripe’s original report identifying the transactions in an automatic payout.

Permitted browser

What it supplies
Use the authorized dashboard to check report settings and obtain original files when the existing approved API or connection does not provide them.
What to check first
A visible total or payment status does not prove that all transactions were included or that the bank received the payout.

Choose it when: Inspect a missing report setting or original source file without initiating transfers or refunds.

What to automate and what an accountant should review

Good work for automation

  • Collect all pages, keep currency units and transaction IDs, and check positive and negative balance and payout amounts.

Keep a person on these decisions

  • Review disputes, transfers between account products, period-end dates and uncertain bank matches. Confirm the documented policy for recording processor receipts before proposing estimated fees. This review workflow does not recommend net receipts as a universal GAAP or tax method.

Lessons from accounting and operations

Known problems and what to check

Which balance moved, and which transfer reached the bank?

Choose the correct Stripe account product and time zone first. Explain the transactions and the money transferred to the bank together. A matching amount alone does not identify a transfer.

Evidence basis: Saved balance/activity and account-product review observations. Product and account scopes require verification.

Check Balance transaction and reporting objects for the exact account and required cutoff; product exports are another source.

The owner wants to explain a payout

For an automatic payout, use the balance transactions linked to its payout ID, retaining refunds, fees and adjustments, then verify the receiving bank transaction. For a manual payout, Stripe cannot identify a transaction batch for that payout. Reconcile the transfer against transaction history and bank records, document the allocation and leave uncertain matches open.

A Financial Account is involved

Collect its own ledger and balance movement separately. Do not treat it as interchangeable with the payments balance report.

Start with an API, connection or built-in report that your account offers and you have confirmed. An authorized browser session may collect records those routes leave out; test its coverage for the workflow. Still check the totals against the books and confirm that all relevant costs are included.

Pitfalls and when to pause

Net deposits are not gross sales. Marketing spending recorded in the books is not enough to calculate acquisition cost per customer without matching customer records. Different account products need separate source definitions; date and amount alone can leave ambiguous matches. Manual payouts do not come with an identified transaction batch.

How a plausible answer can go wrong

Treating the net payout as gross sales can omit refunds and fees from the explanation. Check the documented accounting policy before deciding whether an entry is wrong. A similar total in another Stripe account product does not prove either balance has been checked against its records.

Pause if you cannot confirm the account, permission, reporting dates or completeness of the records. Return the missing evidence for review. Do not fill the gap with an invented record, a balancing entry or an assumed zero.

When the result does not make sense

A deposit was booked as sales

Check: Check the approved policy for recording processor receipts and its retained source evidence before calling the entry wrong. Compare the deposit with the payout’s charges, refunds, fees and adjustments.

Resolve the question: Explain how gross charges lead to the net deposit. Prepare an accounting correction only where the evidence supports one, and keep the existing bank entry. If the retained approved policy uses net bank receipts for this processor and period, ask the accountant whether that policy resolves the proposed fee estimate. A net deposit alone does not establish that accounting policy. Keep the supported conclusion instead of inventing fees. Actual supported discrepancies, refunds and missing source coverage still need review.

Report amounts are a hundred times too large

Check: Check the currency and whether API amounts use its smallest unit, such as cents, while the report shows formatted dollars.

Resolve the question: Convert using the source currency’s unit definition before adding amounts. Keep the original integers.

Two bank credits have the same amount

Check: Compare payout ID, transfer reference, receiving account, currency and the sequence of transaction dates.

Resolve the question: Keep both candidate deposits until the source identifies the right one. Equal amounts alone do not establish a match.

Collect the records and check nothing is missing

Charges, refunds and fees
Keep original transaction IDs and the dates and time zone used by the source.
Payout and receiving bank
Connect the transfer to its bank transaction. If several deposits have the same amount, keep the alternatives until the right one is supported.
Change from opening to ending account balance
Explain opening balance, activity, transfers and ending balance for the actual product used.

Select the exact account product, dates and time zone. Keep complete charges, refunds, fees and payout records with their original IDs. Collect Financial Account activity separately when relevant. Explain the change from opening to ending balance and identify the bank transfers. Leave uncertain matches unresolved. For automatic payouts, collect the balance transactions linked to the payout ID. For manual payouts, Stripe cannot identify which transactions belong to that payout; reconcile it against transaction history and bank evidence, documenting the allocation and leaving uncertain matches open.

Checks before using the records

  1. Align balance, activity and payout dates and timezone.
  2. Retain charge, refund, fee and payout identifiers instead of only net deposits.
  3. Review separate account products and exact bank-transfer transactions.

Fictional collection example

A fictional deposit contains several charges, a refund and processing fees. The total can add up correctly, but the charge and payout IDs are still needed to check the transactions. A separate Financial Account balance does not automatically contain the same records.

Invented teaching scenario, not a customer result or a reproduced vendor defect.

Capture the setup with the evidence

  • Company, legal entity or account, report name, period, cash or accrual accounting basis, currency and timezone.
  • Selected filters, status, page count, original record identifiers, record counts and totals used to check completeness.
  • Collection time, source route and authorized role. Record browser and automation versions when using a browser.
  • Original files and exceptions. Keep credentials, customer identifiers and financial artifacts private.

A browser version helps reproduce an interface issue. It does not validate the financial conclusion.

Practical workflows

Practical checks you can follow

Why does a successful payment not explain the bank deposit?

Stripe processes payments and sends payouts to your bank. A successful payment, funds becoming available, a payout starting and cash arriving at the bank are different events. For automatic payouts, follow the linked balance transactions, including refunds and fees, then find the receiving bank transaction. Stripe cannot identify a transaction batch for a manual payout; reconcile it against transaction history and bank records, documenting the allocation and leaving uncertain matches open. Track a Financial Account or another balance product separately. Before proposing accounting entries, check the approved processor recognition basis, meaning how this company records processor receipts, and its retained source evidence. Checking that the payout adds up does not authorize estimating missing fees and increasing recorded sales.

Reproduce an automatic payout
  1. Identify the Stripe account, balance product, automatic payout ID, currency and reporting timezone. Manual and instant payouts need their own balance and transaction checks; do not assume they contain the same identified batch as an automatic payout.
  2. Collect every balance transaction included in the payout. Keep transaction IDs, positive or negative amounts, fees and net amounts. The native automatic-payout report selects by estimated arrival date, which may differ from the bank posting date.
  3. Read the approved recognition basis for this entity, processor and period, with the retained evidence and existing postings. Here, entity means the company whose books you are reviewing. A documented net-bank-receipts accounting policy means an approved, documented choice to use bank-deposited amounts for this processor and accounting period. If that retained policy excludes a separate fee estimate for these records, it may resolve that specific proposal. Do not infer the policy from a net deposit or invent missing gross charges and fees. Have the responsible accountant confirm the policy, what it covers and whether it applies to these records.
  4. Check the transaction total against the payout total. A transfer of the payout is not another sale.
  5. Find the deposit in the actual receiving bank account. Keep delayed, failed or returned transfers visible.

Bring to the review: A table showing how charges, refunds and fees lead to the payout, alongside the bank evidence that it arrived.

Then decide: Use the payout identity and receiving account to investigate an unmatched transfer. Do not choose a bank transaction just because its amount matches.

Explain a period-end balance
  1. Choose the balance product and period-end date first. A payment’s creation date can differ from the date its funds become available.
  2. Collect the opening balance, all positive and negative transactions, and outgoing transfers. Keep pending funds separate from available funds.
  3. Recalculate the ending balance. Check for refunds, disputes, reserves or transfers missing from a charges-only file.
  4. If a Financial Account is involved, collect its separate transaction records and identify transfers between products.

Bring to the review: A calculation of opening balance plus activity to ending balance for the selected product, with unexplained items listed.

Then decide: Explain the difference or leave it open. A matching balance in one Stripe product does not prove that another product was checked.

Worked example

Fictional gross-to-net payout in cents

All records and amounts below are fictional teaching inputs. CSV files are spreadsheet-compatible text files. This example demonstrates the calculation, not a customer outcome or a reproduced software defect.

40000 captured cents less 5000 refunded cents equals 35000 signed cents. Deduct 1200 fee cents to get 33800 net cents, or 338 USD. Divide USD cents by 100 once; the fixture has no reserves, disputes or other activity.

What the CSV columns mean
  • id: teaching balance-transaction ID
  • type: charge or refund
  • amount_minor: signed USD cents
  • fee_minor: positive fee USD cents
  • net_minor: amount_minor less fee_minor
Captured gross
400 USD
Charge rows expressed in USD.
Signed activity
350 USD
Charges less the refund before fees.
Fees
12 USD
Processing costs in this fixture.
Payout net
338 USD
Expected transfer amount, requiring separate bank evidence.
Inspect stripe-balance.csv
id,type,amount_minor,fee_minor,net_minor
txn_A,charge,25000,750,24250
txn_B,charge,15000,450,14550
txn_C,refund,-5000,0,-5000
Download this CSV

Next decision: Match the payout identity to bank receipt; do not classify 338 as gross sales.

Run the example locally

Save the CSV files, expected-results.json and reproduce.mjs in one folder. With Node.js installed, run the command below. It calculates the checks from the CSV bytes and rejects a changed input or expected result.

node reproduce.mjs expected-results.json

No software login, customer records or API key is required.

AI prompt for collecting records without changing them

Replace the bracketed scope before use. This prompt collects evidence; it does not permit edits, approvals or accounting execution. Requesting an emailed report is a separate account action and requires explicit authorization.

Collect read-only evidence for Stripe to answer [financial question]. Confirm [company], [account/entity], [period], [basis], [currency] and [allowed reports]. Collect the appropriate balance and activity files for aligned dates and time zone. Preserve charge, refund, fee and payout identities. For automatic payouts, collect the balance transactions linked to the payout ID. For manual payouts, Stripe cannot identify which transactions belong to that payout; reconcile it against transaction history and bank evidence, documenting the allocation and leaving uncertain matches open. Review any Financial Account ledger separately. Explain both balance rollforwards and exact transfers, retaining unresolved matches. Retain original files, complete record IDs, counts, filters, collection timestamp and exceptions. Net deposits are not gross sales. Ledger marketing totals do not establish customer acquisition economics. Different account products need separate source definitions; date and amount alone can leave ambiguous matches. Stop if the source or scope is uncertain. Do not post, match, reconnect, delete or change settings. Return the evidence for financial review; do not claim the books are correct. Do not approve, submit payroll, pay, transfer, refund, send messages, invite users or accept terms. Stop at any login, MFA or credential prompt and hand back to the account owner. Store files only in [approved private location]. Do not paste customer artifacts into public tools. Use only preauthorized collection actions. Request an emailed report only when its delivery is explicitly authorized; otherwise ask the account owner to supply the file.

Next decision

What can you decide from these records?

Can the owner reproduce both the source balance movement and the exact transfer to the receiving account? Retain unexplained differences instead of selecting the closest amount.

Compare the same records, accounts and reporting dates. List costs or payments you cannot yet verify before using the result for pricing, cash planning or month-end review.

Read the next finance check →

References behind these workflows

Each product reference supports only the features and limits described beside that source. Level's checks and fictional calculations are separate from what the vendor documents.

Read the product and workflow references with their scopes and review datesExplore the financial diagnostic examples

Sources and scope

Base product-reference scopes were reviewed . No end-to-end dated native UI walkthrough is published for this software. Individual source rechecks are dated with their citations. Operator decision guidance was reviewed 2026-10-09. The references below support their stated product scope, not every observed interface detail. It is not a vendor capability certification, a measured customer result or an independently reconciled account. Verify current features and what your plan includes in the account you use.

  • Stripe payout transaction reconciliation

    Product reference: Payout and balance-transaction tracing, not separate Financial Account coverage.

  • Stripe automatic and manual payout reconciliation

    Product reference: Automatic payouts can be traced by payout ID; Stripe cannot identify the transactions included in a manual payout.

  • Stripe Payments product overview

    Product reference: Payment processing product scope; transaction and payout reconciliation supported by existing official technical sources. Reviewed .

  • Stripe BalanceTransaction object

    Product reference: Identity, source, smallest-unit fields and availability. Reviewed .

    Workflow reference: Identity, source, smallest-unit fields and availability. Reviewed .

  • Stripe payout reconciliation

    Product reference: Automatic-payout reconciliation population and report scope. Reviewed .

    Workflow reference: Automatic-payout reconciliation population and report scope. Reviewed .

Content revision history