WooPayments 10.9 begins rolling out opt-in reconciliation reports under Payments > Reports. The Balance report bridges starting balance through charges, fees, refunds, disputes, and payouts to ending balance. Because the feature is beta and uses UTC, finance teams should validate a closed sample period before using it for accounting decisions.
Use this for WooPayments merchants, bookkeepers, accountants, agencies, and developers reconciling WooCommerce orders, Stripe activity, bank payouts, refunds, and disputes.
Quick answer
Enable the beta on a controlled store, choose a closed UTC period, and calculate the balance bridge independently from source transactions. Match starting balance, charges, fees, refunds, disputes, payouts, and ending balance to WooPayments and Stripe records. Document timing differences, multi-currency limitations, pending events, and the exact cutoff used.
Test scenarios to run
Run the same controlled fixture across these branches. Write down the expected result before testing so a surprising response is easy to identify.
| Scenario | Fixture | Expected result |
| Simple period | Charges and one payout, no refund or dispute | Independent bridge equals the report ending balance |
| Adjustments | Full refund, partial refund, dispute, and fee | Each event appears once with the correct sign and UTC date |
| Boundary | Transactions around 00:00 UTC and local midnight | Rows fall into the period according to the documented UTC basis |
| Open item | Pending charge or payout at cutoff | The item is explained and reconciles in the correct later period |
Diagnostic table
Use this table to connect the observed behavior to evidence and a verification step.
| Action | Evidence to collect | How to verify |
| Enable on a controlled store | Confirm WooPayments 10.9 beta eligibility and enable the reports area only for the planned validation. | The independent bridge equals the WooPayments ending balance for the closed sample period. |
| Define the UTC close period | Choose a closed period and translate finance cutoffs to UTC before exporting or comparing transactions. | Every charge, fee, refund, dispute, and payout appears once with the correct sign. |
| Build an independent balance bridge | Recalculate starting balance plus charges minus fees, refunds, disputes, and payouts to the ending balance. | UTC cutoff behavior is documented and matches the exported rows. |
| Trace every exception | Trace exceptions to WooCommerce order, WooPayments transaction, Stripe object, payout, currency, and timestamp. | Finance has reviewed beta limitations and approved the intended use. |
What to check first
- Confirm WooPayments 10.9 beta eligibility and enable the reports area only for the planned validation.
- Choose a closed period and translate finance cutoffs to UTC before exporting or comparing transactions.
- Recalculate starting balance plus charges minus fees, refunds, disputes, and payouts to the ending balance.
- Trace exceptions to WooCommerce order, WooPayments transaction, Stripe object, payout, currency, and timestamp.
- Record beta limitations, including the current lack of multi-currency support, before finance adopts the report.
Field notes
- Keep the raw CSV and report printout with the exact filters and generation time.
- Use stable IDs to explain every exception instead of forcing a manual plug entry.
- Treat the beta report as a reconciliation aid until the finance owner approves its controls.
Useful command or data shape
Adapt paths, IDs, and privacy handling to the site before running commands or storing data on production.
# Opt in on a controlled WooPayments 10.9 beta store
wp option update _wcpay_feature_reports_area 1
# Independent balance bridge
ending_balance = starting_balance + charges - fees - refunds - disputes - payouts
# Use UTC timestamps and trace each exception by transaction and payout ID.
Why this usually happens
- Order date, payment date, settlement date, payout date, and bank posting date are different accounting events.
- A local-time close can disagree with a report calculated in UTC near day or month boundaries.
- Refunds, disputes, and pending payouts can move after the original order was recorded.
Decision rule
Do not use the beta report as the sole close source when the bridge does not tie, UTC boundaries are not documented, pending items are forced into the wrong period, multi-currency activity is present, or exceptions lack stable source IDs.
Production verification checklist
- The independent bridge equals the WooPayments ending balance for the closed sample period.
- Every charge, fee, refund, dispute, and payout appears once with the correct sign.
- UTC cutoff behavior is documented and matches the exported rows.
- Finance has reviewed beta limitations and approved the intended use.
Safe fix order
Use a sequence that makes each result easy to prove. Stop when new evidence changes the scope or owner of the problem.
- Enable on a controlled store
- Define the UTC close period
- Build an independent balance bridge
- Trace every exception
- Obtain finance approval
Mistakes to avoid
- Do not compare a UTC report to a local-time order export without translating the cutoff.
- Do not use order totals as a substitute for settled payment activity.
- Do not hide unexplained differences in a manual adjustment.
- Do not assume beta reports support multi-currency activity.
Questions teams ask during testing
Where is the Balance report?
WooCommerce describes it under Payments > Reports after the reports beta is enabled.
Which components form the bridge?
Starting balance, charges, fees, refunds, disputes, payouts, and ending balance.
Which timezone is used?
The WooCommerce announcement says calculations use UTC to match Stripe.
What to tell the client or owner
Share report filters, UTC cutoff, starting and ending balances, component totals, exception IDs, Stripe and bank records, and finance approval status.
When HandL WP should help
HandL WP can enable the beta safely, build an independent balance bridge, trace WooCommerce and Stripe IDs, and document close controls with finance.
If this is active on a production site, validate WooPayments reconciliation.
Related HandL WP guides
Use these related guides when the same issue touches tracking, security, checkout, or crawler visibility.
Reconcile currencies and payout timing
For stores that accept more than one currency, use the WooPayments multi-currency reconciliation workaround. When the ending balance still differs from a payout or bank deposit, build the payout and ending-balance variance bridge.
Bridge report timing to the accounting ledger
Use the WooPayments UTC to local month-end bridge when report and business cutoffs differ, then track unsettled money through the payout-in-transit cash clearing ledger until the bank deposit arrives.
Age reserve balances through actual release
Build the WooPayments reserve aging and release ledger so each hold maps to its source transaction, expected rule, actual release, payout, bank movement, and aged exception.
Helpful references