Read-only WooCommerce Stripe reconciliation for payment status, amount, currency, and refund mismatches.
View the Project on GitHub moxianyu6975-cpu/payment-truth-for-woocommerce

Payment Truth for WooCommerce compares recent orders created by the official WooCommerce Stripe Gateway with their matching Stripe PaymentIntent or charge. It reports evidence when payment status, gross amount, currency, or refunded totals disagree—without changing an order or moving money.
Install the free plugin from WordPress.org · Join the five-store validation · Share redacted scan feedback
Payment Truth is public and tested, but product-market fit requires evidence from real store operations. If you use the official WooCommerce Stripe Gateway, run one ten-minute read-only scan and tell us whether the result was useful, confusing, empty, or errored. Healthy scans are useful feedback too.
See the real-store validation steps
| Evidence pattern | Severity | What it means |
|---|---|---|
| Stripe succeeded while WooCommerce remains unpaid | Critical | The two records disagree after the grace period. |
| WooCommerce says paid while Stripe reports terminal failure | Critical | Verify the exact provider object and any later retry. |
| Gross amount or currency differs | Critical | The normalized values differ for the linked records. |
| Refunded totals differ | Critical | WooCommerce and authoritative Stripe refund evidence disagree. |
| Pending order exceeds the configured age | Warning | The local order has remained pending longer than expected. |
| No usable Stripe reference | Warning or critical | The order cannot be matched safely to a provider object. |
These findings identify disagreements, not root causes. A finding does not prove that a webhook failed, that a customer was charged incorrectly, or that either record should be edited.