The WooPayments 10.9 reports beta includes a Fees report and CSV export with payment date, method, type, order ID, transaction ID, currency, gross amount, and total fees. Optional columns can include product, settlement date, and payout ID. Before accounting imports it, teams should prove signs, UTC timing, identifiers, and totals across a controlled sample.
Use this for finance teams, bookkeepers, tax and margin analysts, data engineers, and WooCommerce developers importing WooPayments fees into accounting or warehouse systems.
Quick answer
Export a small closed UTC period containing multiple payment methods, a refund, and a payout. Validate the header and data types, match each row to its WooPayments or Stripe transaction and WooCommerce order, recompute fee totals by method and currency, and compare the resulting journal or warehouse load. Keep order date, payment date, settlement date, and payout date as separate fields.
What to check first
- Record the CSV filters, export time, WooPayments version, timezone basis, and selected optional columns.
- Validate date and time, payment method, transaction type, order ID, transaction ID, currency, gross amount, and total fee on each sample row.
- Match optional product, settlement date, and payout ID fields to source records where enabled.
- Recompute fee totals by UTC day, method, transaction type, currency, and payout without mixing order totals.
- Test duplicate imports, corrected exports, missing order IDs, refunds, negative rows, decimal precision, and CSV escaping.
Diagnostic table
Use this table to connect the observed behavior to evidence and a verification step.
| Action | Evidence to collect | How to verify |
| Freeze the export definition | Record the CSV filters, export time, WooPayments version, timezone basis, and selected optional columns. | Every sampled CSV row matches a WooPayments or Stripe transaction and the intended WooCommerce order. |
| Validate schema and data types | Validate date and time, payment method, transaction type, order ID, transaction ID, currency, gross amount, and total fee on each sample row. | Grouped fee totals match by UTC period, method, type, currency, and payout. |
| Match source records | Match optional product, settlement date, and payout ID fields to source records where enabled. | Amounts retain exact decimal precision and identifiers remain strings. |
| Recompute grouped totals | Recompute fee totals by UTC day, method, transaction type, currency, and payout without mixing order totals. | Duplicate and corrected-file imports are idempotent and auditable. |
Why this usually happens
- Payment, settlement, payout, and order dates answer different accounting questions.
- CSV pipelines can coerce IDs to numbers, lose leading characters, round amounts, or misread quoted product names.
- A corrected export can duplicate records when transaction ID and type are not used as an idempotency key.
Useful command or data shape
Adapt paths, IDs, and privacy handling to the site before running commands or storing data on production.
fee_row:
payment_created_utc: 2026-08-05T23:58:12Z
method: card
type: charge
order_id: WC-18420
transaction_id: py_123
currency: USD
gross_minor: 12900
fee_minor: 404
payout_id: po_456
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 |
| Charge | Card charge with a known order and payout | Gross and fee match source transaction with stable IDs |
| Refund | Full and partial refund rows | Signs, type, linked transaction, and fee treatment match source records |
| Boundary | Payment near local midnight but a different UTC date | Import assigns the documented UTC accounting period |
| Idempotency | Import the identical CSV twice | The second load creates no duplicate fee journal rows |
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.
- Freeze the export definition
- Validate schema and data types
- Match source records
- Recompute grouped totals
- Test an idempotent accounting load
Decision rule
Reject the import when IDs are coerced, timezone basis is unclear, signs or precision differ, rows cannot be traced to source transactions, or reimporting the same file creates duplicates.
Production verification checklist
- Every sampled CSV row matches a WooPayments or Stripe transaction and the intended WooCommerce order.
- Grouped fee totals match by UTC period, method, type, currency, and payout.
- Amounts retain exact decimal precision and identifiers remain strings.
- Duplicate and corrected-file imports are idempotent and auditable.
Field notes
- Store money in integer minor units or an exact decimal type, never a binary floating-point field.
- Preserve the untouched source CSV and a checksum for auditability.
- Do not make product-level margin claims until allocations and refunds have been reviewed.
Questions teams ask during testing
Which core fields are available?
WooCommerce lists date and time, payment method, transaction type, order ID, transaction ID, currency, gross amount, and total fees.
Which optional fields are described?
The announcement names product, settlement date, and payout ID as optional additions.
Why preserve UTC?
WooCommerce says the report uses UTC to align calculations with Stripe.
Mistakes to avoid
- Do not use local order date as the payment-created or settlement date.
- Do not parse transaction and order IDs as numeric values.
- Do not sum multiple currencies into one fee total.
- Do not let a spreadsheet silently round or reformat money and IDs.
What to tell the client or owner
Share the untouched CSV checksum, filters, UTC period, schema mapping, sample transaction IDs, grouped totals, import key, and accounting exceptions.
When HandL WP should help
HandL WP can validate WooPayments exports, trace transaction IDs, design exact-money imports, and reconcile accounting or warehouse totals.
If this is active on a production site, reconcile WooPayments fee data.
Related HandL WP guides
Use these related guides when the same issue touches tracking, security, checkout, or crawler visibility.
Helpful references