How to Reconcile WooCommerce Payments with Stripe
WooCommerce tells you what customers ordered. Stripe tells you what was charged, refunded, deducted in fees and paid out. Reconciliation is the process of matching those records so you can identify missing payments, unexplained differences and transactions that need investigation.
Why WooCommerce and Stripe totals can differ
A WooCommerce order total and a Stripe payout are not the same accounting object. WooCommerce records commerce activity, while Stripe records payment processing and settlement activity. A payout can contain multiple charges, refunds, processing fees, disputes and other balance transactions.
This means comparing a WooCommerce sales total directly with a Stripe payout total can produce an apparent discrepancy even when every customer payment is correct. A useful reconciliation starts at the transaction or order level and keeps Stripe fees separate from the amount the customer paid.
Which WooCommerce and Stripe exports you need
WooCommerce
In WordPress, go to WooCommerce → Analytics → Orders, select the period you want to reconcile and download the CSV. The order-level export gives you order identifiers and revenue information that can be matched against payment records.
Stripe
In Stripe, download the itemized payout reconciliation CSV for a period covering the same dates. The useful fields include transaction description, gross amount, fee, net amount and payout information.
A practical WooCommerce–Stripe reconciliation workflow
- Normalize WooCommerce orders. Group rows belonging to the same order, especially when refunds create additional rows.
- Identify WooCommerce order numbers in Stripe. Stripe descriptions often contain the originating WooCommerce order number.
- Match charges and refunds to each order. Compare customer payment amounts rather than Stripe settlement net after fees.
- Keep fees separate. Record Stripe fees independently so a processing fee is not reported as an order mismatch.
- Separate confirmed exceptions from unknowns. A missing match is not automatically an error; the order may have used another payment gateway or fall outside the Stripe export period.
- Review payout-level totals. Only call out a payout variance when the export contains enough information to support that conclusion.
How refunds and Stripe fees should be handled
Refunds are a common source of false mismatches. A full customer refund does not necessarily reverse the original Stripe processing fee. For order reconciliation, compare the charge and refund activity associated with the order. For settlement reconciliation, preserve Stripe's fee and net fields separately.
Partial refunds need the same treatment: aggregate all payment events for the order before deciding whether the WooCommerce and Stripe amounts disagree.
What should you investigate?
The most useful output is a short exception list, not hundreds of rows marked as failures. Prioritize orders where both systems provide enough evidence and the amounts genuinely disagree. Also review Stripe transactions that reference an order number absent from the WooCommerce export, ambiguous refunds or disputes, and payout differences where all required balance activity is present.
By contrast, a WooCommerce order with no Stripe transaction should usually be classified as not observed in Stripe until you know the order's payment gateway. Standard WooCommerce Analytics exports do not necessarily provide enough information to prove that such an order should have been processed by Stripe.
Reconciling a bank deposit? Read our Stripe payout reconciliation for WooCommerce guide for a payout-focused workflow.
Reconcile your exports automatically
Reconaro matches WooCommerce orders with Stripe transactions, groups refunds and fees, and highlights the items that deserve review. The current tool is free and requires no account.
Reconcile WooCommerce & Stripe CSVs →